@customafk/lunas-ui 0.2.41 → 0.2.43

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 (1008) hide show
  1. package/dist/alert-2JBj0aPL.d.mts +88 -0
  2. package/dist/alert-B2PaDJp6.cjs +2 -0
  3. package/dist/alert-B2PaDJp6.cjs.map +1 -0
  4. package/dist/alert-BbvPwf2x.mjs +2 -0
  5. package/dist/alert-BbvPwf2x.mjs.map +1 -0
  6. package/dist/alert-Cm6RAKdp.d.cts +88 -0
  7. package/dist/avatar-TyOphzGo.cjs +2 -0
  8. package/dist/avatar-TyOphzGo.cjs.map +1 -0
  9. package/dist/avatar-fltdRVsJ.mjs +2 -0
  10. package/dist/avatar-fltdRVsJ.mjs.map +1 -0
  11. package/dist/badge-CDGBGq8X.mjs +2 -0
  12. package/dist/badge-CDGBGq8X.mjs.map +1 -0
  13. package/dist/badge-CnR78VnH.d.mts +42 -0
  14. package/dist/badge-KW7xu5Ca.cjs +2 -0
  15. package/dist/badge-KW7xu5Ca.cjs.map +1 -0
  16. package/dist/badge-ic9HOAa7.d.cts +42 -0
  17. package/dist/button--eH0xdF-.d.mts +174 -0
  18. package/dist/button-C--DAN1D.cjs +2 -0
  19. package/dist/button-C--DAN1D.cjs.map +1 -0
  20. package/dist/button-CCVJTHBI.mjs +2 -0
  21. package/dist/button-CCVJTHBI.mjs.map +1 -0
  22. package/dist/button-DserH5cQ.d.cts +174 -0
  23. package/dist/button.variants-4kw6plrv.cjs +2 -0
  24. package/dist/button.variants-4kw6plrv.cjs.map +1 -0
  25. package/dist/button.variants-DkMqWB8G.mjs +2 -0
  26. package/dist/button.variants-DkMqWB8G.mjs.map +1 -0
  27. package/dist/calendar-4weBDnXz.cjs +2 -0
  28. package/dist/calendar-4weBDnXz.cjs.map +1 -0
  29. package/dist/calendar-R866yyd1.mjs +2 -0
  30. package/dist/calendar-R866yyd1.mjs.map +1 -0
  31. package/dist/cards/grid-product-card.cjs +1 -1
  32. package/dist/cards/grid-product-card.cjs.map +1 -1
  33. package/dist/cards/grid-product-card.d.mts +37 -0
  34. package/dist/cards/grid-product-card.mjs +2 -0
  35. package/dist/cards/grid-product-card.mjs.map +1 -0
  36. package/dist/cards/product-card.cjs +1 -1
  37. package/dist/cards/product-card.cjs.map +1 -1
  38. package/dist/cards/product-card.d.mts +37 -0
  39. package/dist/cards/product-card.mjs +2 -0
  40. package/dist/cards/product-card.mjs.map +1 -0
  41. package/dist/cards/simple-card.cjs +1 -1
  42. package/dist/cards/simple-card.d.mts +35 -0
  43. package/dist/cards/simple-card.mjs +2 -0
  44. package/dist/cards/simple-card.mjs.map +1 -0
  45. package/dist/checkbox-Cat3i08X.mjs +2 -0
  46. package/dist/checkbox-Cat3i08X.mjs.map +1 -0
  47. package/dist/checkbox-Dsq-MSbH.cjs +2 -0
  48. package/dist/checkbox-Dsq-MSbH.cjs.map +1 -0
  49. package/dist/chunk-350yNsax.cjs +1 -0
  50. package/dist/close-Dlo1bI8x.cjs +2 -0
  51. package/dist/close-Dlo1bI8x.cjs.map +1 -0
  52. package/dist/close-_UHFeiLS.mjs +2 -0
  53. package/dist/close-_UHFeiLS.mjs.map +1 -0
  54. package/dist/cms-layout-BCH4NroR.cjs +2 -0
  55. package/dist/cms-layout-BCH4NroR.cjs.map +1 -0
  56. package/dist/cms-layout-DkCR1AfG.mjs +2 -0
  57. package/dist/cms-layout-DkCR1AfG.mjs.map +1 -0
  58. package/dist/command-CsP8a1Un.cjs +2 -0
  59. package/dist/command-CsP8a1Un.cjs.map +1 -0
  60. package/dist/command-D6_CSbwJ.mjs +2 -0
  61. package/dist/command-D6_CSbwJ.mjs.map +1 -0
  62. package/dist/data-display/country.cjs +1 -1
  63. package/dist/data-display/country.cjs.map +1 -1
  64. package/dist/data-display/country.d.cts +1 -1
  65. package/dist/data-display/country.d.mts +22 -0
  66. package/dist/data-display/country.mjs +2 -0
  67. package/dist/data-display/country.mjs.map +1 -0
  68. package/dist/data-display/data-list.cjs +1 -1
  69. package/dist/data-display/data-list.d.mts +43 -0
  70. package/dist/data-display/data-list.mjs +2 -0
  71. package/dist/data-display/data-list.mjs.map +1 -0
  72. package/dist/data-display/date-tooltip.cjs +1 -1
  73. package/dist/data-display/date-tooltip.cjs.map +1 -1
  74. package/dist/data-display/date-tooltip.d.mts +19 -0
  75. package/dist/data-display/date-tooltip.mjs +2 -0
  76. package/dist/data-display/date-tooltip.mjs.map +1 -0
  77. package/dist/data-display/date.cjs +1 -2
  78. package/dist/data-display/date.d.mts +39 -0
  79. package/dist/data-display/date.mjs +1 -0
  80. package/dist/data-display/empty.cjs +1 -1
  81. package/dist/data-display/empty.d.mts +21 -0
  82. package/dist/data-display/empty.mjs +2 -0
  83. package/dist/data-display/empty.mjs.map +1 -0
  84. package/dist/data-display/name.cjs +1 -1
  85. package/dist/data-display/name.cjs.map +1 -1
  86. package/dist/data-display/name.d.mts +19 -0
  87. package/dist/data-display/name.mjs +2 -0
  88. package/dist/data-display/name.mjs.map +1 -0
  89. package/dist/data-display/phone-number.cjs +1 -1
  90. package/dist/data-display/phone-number.cjs.map +1 -1
  91. package/dist/data-display/phone-number.d.mts +19 -0
  92. package/dist/data-display/phone-number.mjs +2 -0
  93. package/dist/data-display/phone-number.mjs.map +1 -0
  94. package/dist/data-display/role-badge.cjs +1 -1
  95. package/dist/data-display/role-badge.cjs.map +1 -1
  96. package/dist/data-display/role-badge.d.cts +1 -1
  97. package/dist/data-display/role-badge.d.mts +22 -0
  98. package/dist/data-display/role-badge.mjs +2 -0
  99. package/dist/data-display/role-badge.mjs.map +1 -0
  100. package/dist/data-display/statistic.cjs +1 -2
  101. package/dist/data-display/statistic.d.cts +3 -3
  102. package/dist/data-display/statistic.d.mts +57 -0
  103. package/dist/data-display/statistic.mjs +1 -0
  104. package/dist/data-display/user.cjs +1 -2
  105. package/dist/data-display/user.d.mts +23 -0
  106. package/dist/data-display/user.mjs +1 -0
  107. package/dist/date-D4NVl6C9.cjs +2 -0
  108. package/dist/date-D4NVl6C9.cjs.map +1 -0
  109. package/dist/date-fY3sUcLp.mjs +2 -0
  110. package/dist/date-fY3sUcLp.mjs.map +1 -0
  111. package/dist/dialog-BigPrWIj.cjs +2 -0
  112. package/dist/dialog-BigPrWIj.cjs.map +1 -0
  113. package/dist/dialog-CLDnvNH_.mjs +2 -0
  114. package/dist/dialog-CLDnvNH_.mjs.map +1 -0
  115. package/dist/dialog-CYHT9WNs.d.cts +90 -0
  116. package/dist/dialog-pWSVE0gd.d.mts +90 -0
  117. package/dist/dialogs/confirm-dialog.cjs +1 -1
  118. package/dist/dialogs/confirm-dialog.d.mts +142 -0
  119. package/dist/dialogs/confirm-dialog.mjs +2 -0
  120. package/dist/dialogs/confirm-dialog.mjs.map +1 -0
  121. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  122. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +26 -26
  123. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +209 -0
  124. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -0
  125. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  126. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  127. package/dist/dialogs/detail-dialog/index.d.mts +45 -0
  128. package/dist/dialogs/detail-dialog/index.mjs +2 -0
  129. package/dist/dialogs/detail-dialog/index.mjs.map +1 -0
  130. package/dist/dialogs/error-dialog.cjs +1 -1
  131. package/dist/dialogs/error-dialog.d.mts +25 -0
  132. package/dist/dialogs/error-dialog.mjs +2 -0
  133. package/dist/dialogs/error-dialog.mjs.map +1 -0
  134. package/dist/dialogs/loading-dialog.cjs +1 -1
  135. package/dist/dialogs/loading-dialog.cjs.map +1 -1
  136. package/dist/dialogs/loading-dialog.d.mts +21 -0
  137. package/dist/dialogs/loading-dialog.mjs +2 -0
  138. package/dist/dialogs/loading-dialog.mjs.map +1 -0
  139. package/dist/dist-Cx5ufCdr.cjs +2 -0
  140. package/dist/dist-Cx5ufCdr.cjs.map +1 -0
  141. package/dist/dist-DVrfqn8H.mjs +2 -0
  142. package/dist/dist-DVrfqn8H.mjs.map +1 -0
  143. package/dist/drawer-BB8BZzDG.cjs +2 -0
  144. package/dist/drawer-BB8BZzDG.cjs.map +1 -0
  145. package/dist/drawer-CMD7JWH8.mjs +2 -0
  146. package/dist/drawer-CMD7JWH8.mjs.map +1 -0
  147. package/dist/dropdown-menu-BWhiVsEf.mjs +2 -0
  148. package/dist/dropdown-menu-BWhiVsEf.mjs.map +1 -0
  149. package/dist/dropdown-menu-CVh520yG.cjs +2 -0
  150. package/dist/dropdown-menu-CVh520yG.cjs.map +1 -0
  151. package/dist/features/descriptions/index.cjs +1 -1
  152. package/dist/features/descriptions/index.cjs.map +1 -1
  153. package/dist/features/descriptions/index.d.cts +3 -3
  154. package/dist/features/descriptions/index.d.mts +246 -0
  155. package/dist/features/descriptions/index.mjs +2 -0
  156. package/dist/features/descriptions/index.mjs.map +1 -0
  157. package/dist/features/search-modal/index.cjs +1 -1
  158. package/dist/features/search-modal/index.d.cts +2 -2
  159. package/dist/features/search-modal/index.d.mts +17 -0
  160. package/dist/features/search-modal/index.mjs +1 -0
  161. package/dist/features/tables/index.cjs +1 -1
  162. package/dist/features/tables/index.d.cts +1 -1
  163. package/dist/features/tables/index.d.mts +3 -0
  164. package/dist/features/tables/index.mjs +1 -0
  165. package/dist/features/tanstack-form/index.cjs +1 -1
  166. package/dist/features/tanstack-form/index.d.cts +1 -1
  167. package/dist/features/tanstack-form/index.d.mts +2 -0
  168. package/dist/features/tanstack-form/index.mjs +1 -0
  169. package/dist/features/text-editor/index.cjs +1 -1
  170. package/dist/features/text-editor/index.d.cts +1 -1
  171. package/dist/features/text-editor/index.d.mts +2 -0
  172. package/dist/features/text-editor/index.mjs +1 -0
  173. package/dist/field-BrlETeXX.cjs +2 -0
  174. package/dist/field-BrlETeXX.cjs.map +1 -0
  175. package/dist/field-dYemS0hQ.mjs +2 -0
  176. package/dist/field-dYemS0hQ.mjs.map +1 -0
  177. package/dist/flex-B6YSJzGe.mjs +2 -0
  178. package/dist/flex-B6YSJzGe.mjs.map +1 -0
  179. package/dist/flex-DmWmOBn5.cjs +2 -0
  180. package/dist/flex-DmWmOBn5.cjs.map +1 -0
  181. package/dist/heading-De4Pn3mZ.mjs +2 -0
  182. package/dist/heading-De4Pn3mZ.mjs.map +1 -0
  183. package/dist/heading-tGTqk3pA.cjs +2 -0
  184. package/dist/heading-tGTqk3pA.cjs.map +1 -0
  185. package/dist/image-D7OZ13Ib.mjs +2 -0
  186. package/dist/image-D7OZ13Ib.mjs.map +1 -0
  187. package/dist/image-W_Yb0xTB.cjs +2 -0
  188. package/dist/image-W_Yb0xTB.cjs.map +1 -0
  189. package/dist/index-BsWsCPh8.d.cts +1093 -0
  190. package/dist/index-CMqwTAAq.d.mts +2348 -0
  191. package/dist/index-Cm62M0Ft.d.mts +90 -0
  192. package/dist/index-DSciiDhn.d.cts +2348 -0
  193. package/dist/index-DXU6DwLg.d.mts +1093 -0
  194. package/dist/index-DiW-62hY.d.mts +85 -0
  195. package/dist/index-FIl1Am8j.d.cts +85 -0
  196. package/dist/index-KO98y6L0.d.cts +90 -0
  197. package/dist/index.cjs +1 -1
  198. package/dist/index.d.cts +11 -11
  199. package/dist/index.d.mts +93 -0
  200. package/dist/index.mjs +1 -0
  201. package/dist/input-B_ucx08i.d.cts +44 -0
  202. package/dist/input-Drm_rLe2.d.mts +44 -0
  203. package/dist/input-NJP2wQOm.mjs +2 -0
  204. package/dist/input-NJP2wQOm.mjs.map +1 -0
  205. package/dist/input-WJ0DLHTR.cjs +2 -0
  206. package/dist/input-WJ0DLHTR.cjs.map +1 -0
  207. package/dist/label-CC6fXVbC.cjs +2 -0
  208. package/dist/label-CC6fXVbC.cjs.map +1 -0
  209. package/dist/label-CUCpwS5D.mjs +2 -0
  210. package/dist/label-CUCpwS5D.mjs.map +1 -0
  211. package/dist/layouts/cms-layout/index.cjs +1 -1
  212. package/dist/layouts/cms-layout/index.d.cts +1 -1
  213. package/dist/layouts/cms-layout/index.d.mts +2 -0
  214. package/dist/layouts/cms-layout/index.mjs +1 -0
  215. package/dist/layouts/flex.cjs +1 -1
  216. package/dist/layouts/flex.d.cts +5 -5
  217. package/dist/layouts/flex.d.mts +117 -0
  218. package/dist/layouts/flex.mjs +1 -0
  219. package/dist/layouts/grid.cjs +1 -1
  220. package/dist/layouts/grid.d.mts +19 -0
  221. package/dist/layouts/grid.mjs +2 -0
  222. package/dist/layouts/grid.mjs.map +1 -0
  223. package/dist/layouts/payment-layout/index.cjs +1 -1
  224. package/dist/layouts/payment-layout/index.d.mts +74 -0
  225. package/dist/layouts/payment-layout/index.mjs +1 -0
  226. package/dist/pages/FeatureDeveloping.cjs +1 -1
  227. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  228. package/dist/pages/FeatureDeveloping.d.cts +2 -2
  229. package/dist/pages/FeatureDeveloping.d.mts +43 -0
  230. package/dist/pages/FeatureDeveloping.mjs +2 -0
  231. package/dist/pages/FeatureDeveloping.mjs.map +1 -0
  232. package/dist/pages/FeatureFixing.cjs +1 -1
  233. package/dist/pages/FeatureFixing.cjs.map +1 -1
  234. package/dist/pages/FeatureFixing.d.cts +2 -2
  235. package/dist/pages/FeatureFixing.d.mts +43 -0
  236. package/dist/pages/FeatureFixing.mjs +2 -0
  237. package/dist/pages/FeatureFixing.mjs.map +1 -0
  238. package/dist/pages/LoginPage.cjs +1 -1
  239. package/dist/pages/LoginPage.cjs.map +1 -1
  240. package/dist/pages/LoginPage.d.cts +2 -2
  241. package/dist/pages/LoginPage.d.mts +55 -0
  242. package/dist/pages/LoginPage.mjs +2 -0
  243. package/dist/pages/LoginPage.mjs.map +1 -0
  244. package/dist/pages/NotAuthorized.cjs +1 -1
  245. package/dist/pages/NotAuthorized.cjs.map +1 -1
  246. package/dist/pages/NotAuthorized.d.cts +2 -2
  247. package/dist/pages/NotAuthorized.d.mts +43 -0
  248. package/dist/pages/NotAuthorized.mjs +2 -0
  249. package/dist/pages/NotAuthorized.mjs.map +1 -0
  250. package/dist/pages/NotFound.cjs +1 -1
  251. package/dist/pages/NotFound.cjs.map +1 -1
  252. package/dist/pages/NotFound.d.cts +2 -2
  253. package/dist/pages/NotFound.d.mts +43 -0
  254. package/dist/pages/NotFound.mjs +2 -0
  255. package/dist/pages/NotFound.mjs.map +1 -0
  256. package/dist/pages/RegisterPage.cjs +1 -1
  257. package/dist/pages/RegisterPage.cjs.map +1 -1
  258. package/dist/pages/RegisterPage.d.cts +2 -2
  259. package/dist/pages/RegisterPage.d.mts +52 -0
  260. package/dist/pages/RegisterPage.mjs +2 -0
  261. package/dist/pages/RegisterPage.mjs.map +1 -0
  262. package/dist/pages/VerifyEmailPage.cjs +1 -1
  263. package/dist/pages/VerifyEmailPage.cjs.map +1 -1
  264. package/dist/pages/VerifyEmailPage.d.cts +2 -2
  265. package/dist/pages/VerifyEmailPage.d.mts +64 -0
  266. package/dist/pages/VerifyEmailPage.mjs +2 -0
  267. package/dist/pages/VerifyEmailPage.mjs.map +1 -0
  268. package/dist/paragraph-DYLaQtTV.mjs +2 -0
  269. package/dist/paragraph-DYLaQtTV.mjs.map +1 -0
  270. package/dist/paragraph-DvTZvbzw.cjs +2 -0
  271. package/dist/paragraph-DvTZvbzw.cjs.map +1 -0
  272. package/dist/payment-layout-DrQ0kZPX.mjs +2 -0
  273. package/dist/payment-layout-DrQ0kZPX.mjs.map +1 -0
  274. package/dist/payment-layout-DyILfyVG.cjs +2 -0
  275. package/dist/payment-layout-DyILfyVG.cjs.map +1 -0
  276. package/dist/popover-C8rcemA3.mjs +2 -0
  277. package/dist/popover-C8rcemA3.mjs.map +1 -0
  278. package/dist/popover-DBsC8Ltp.cjs +2 -0
  279. package/dist/popover-DBsC8Ltp.cjs.map +1 -0
  280. package/dist/progress-CLeM0e7Z.mjs +2 -0
  281. package/dist/progress-CLeM0e7Z.mjs.map +1 -0
  282. package/dist/progress-gvBqNiHp.cjs +2 -0
  283. package/dist/progress-gvBqNiHp.cjs.map +1 -0
  284. package/dist/radio-group-Y9bhdr55.mjs +2 -0
  285. package/dist/radio-group-Y9bhdr55.mjs.map +1 -0
  286. package/dist/radio-group-_TdMkv8w.cjs +2 -0
  287. package/dist/radio-group-_TdMkv8w.cjs.map +1 -0
  288. package/dist/resizable-CpCaSCFB.mjs +2 -0
  289. package/dist/resizable-CpCaSCFB.mjs.map +1 -0
  290. package/dist/resizable-sgpaHAb8.cjs +2 -0
  291. package/dist/resizable-sgpaHAb8.cjs.map +1 -0
  292. package/dist/search-modal-B-pzGcfP.cjs +2 -0
  293. package/dist/search-modal-B-pzGcfP.cjs.map +1 -0
  294. package/dist/search-modal-Bn-GOOCy.mjs +2 -0
  295. package/dist/search-modal-Bn-GOOCy.mjs.map +1 -0
  296. package/dist/select-CWLQHh8x.cjs +2 -0
  297. package/dist/select-CWLQHh8x.cjs.map +1 -0
  298. package/dist/select-LlPCZFSF.mjs +2 -0
  299. package/dist/select-LlPCZFSF.mjs.map +1 -0
  300. package/dist/separator-D3Gmkxzq.mjs +2 -0
  301. package/dist/separator-D3Gmkxzq.mjs.map +1 -0
  302. package/dist/separator-KuymG9g0.cjs +2 -0
  303. package/dist/separator-KuymG9g0.cjs.map +1 -0
  304. package/dist/sheet-BFlIfNaA.mjs +2 -0
  305. package/dist/sheet-BFlIfNaA.mjs.map +1 -0
  306. package/dist/sheet-CvKSi0UC.cjs +2 -0
  307. package/dist/sheet-CvKSi0UC.cjs.map +1 -0
  308. package/dist/sidebar-ChtCyu-n.mjs +2 -0
  309. package/dist/sidebar-ChtCyu-n.mjs.map +1 -0
  310. package/dist/sidebar-D5J2gcTw.cjs +2 -0
  311. package/dist/sidebar-D5J2gcTw.cjs.map +1 -0
  312. package/dist/skeleton-C51IdOfK.mjs +2 -0
  313. package/dist/skeleton-C51IdOfK.mjs.map +1 -0
  314. package/dist/skeleton-CX1USu1w.cjs +2 -0
  315. package/dist/skeleton-CX1USu1w.cjs.map +1 -0
  316. package/dist/spinner-CFxorYEt.cjs +2 -0
  317. package/dist/spinner-CFxorYEt.cjs.map +1 -0
  318. package/dist/spinner-eClTgHjk.mjs +2 -0
  319. package/dist/spinner-eClTgHjk.mjs.map +1 -0
  320. package/dist/statistic-DDXilD7q.cjs +2 -0
  321. package/dist/statistic-DDXilD7q.cjs.map +1 -0
  322. package/dist/statistic-cwLwcukn.mjs +2 -0
  323. package/dist/statistic-cwLwcukn.mjs.map +1 -0
  324. package/dist/switch-BP7EPatj.mjs +2 -0
  325. package/dist/switch-BP7EPatj.mjs.map +1 -0
  326. package/dist/switch-DVfOV7wP.cjs +2 -0
  327. package/dist/switch-DVfOV7wP.cjs.map +1 -0
  328. package/dist/systems/google.cjs +1 -1
  329. package/dist/systems/google.d.mts +53 -0
  330. package/dist/systems/google.mjs +2 -0
  331. package/dist/systems/google.mjs.map +1 -0
  332. package/dist/tables-CFrsk2lM.mjs +4 -0
  333. package/dist/tables-CFrsk2lM.mjs.map +1 -0
  334. package/dist/tables-CPKHe3k-.cjs +4 -0
  335. package/dist/tables-CPKHe3k-.cjs.map +1 -0
  336. package/dist/tanstack-form-DT1TqIDl.mjs +12 -0
  337. package/dist/tanstack-form-DT1TqIDl.mjs.map +1 -0
  338. package/dist/tanstack-form-DatI41wz.cjs +12 -0
  339. package/dist/tanstack-form-DatI41wz.cjs.map +1 -0
  340. package/dist/text-editor-5mA7XyaI.mjs +2 -0
  341. package/dist/text-editor-5mA7XyaI.mjs.map +1 -0
  342. package/dist/text-editor-CvJN3nSL.cjs +2 -0
  343. package/dist/text-editor-CvJN3nSL.cjs.map +1 -0
  344. package/dist/textarea-7HDXcaK9.mjs +2 -0
  345. package/dist/textarea-7HDXcaK9.mjs.map +1 -0
  346. package/dist/textarea-Cc9CF8wD.cjs +2 -0
  347. package/dist/textarea-Cc9CF8wD.cjs.map +1 -0
  348. package/dist/tooltip-CBdoIzoM.cjs +2 -0
  349. package/dist/tooltip-CBdoIzoM.cjs.map +1 -0
  350. package/dist/tooltip-Dxl5Wa8i.mjs +2 -0
  351. package/dist/tooltip-Dxl5Wa8i.mjs.map +1 -0
  352. package/dist/types-B5nyTWtO.mjs +2 -0
  353. package/dist/types-B5nyTWtO.mjs.map +1 -0
  354. package/dist/types-BD1t0Bj8.cjs +2 -0
  355. package/dist/types-BD1t0Bj8.cjs.map +1 -0
  356. package/dist/types-Cc_mLRAn.d.cts +24 -0
  357. package/dist/types-YLu40dXY.d.mts +24 -0
  358. package/dist/typography/paragraph.cjs +1 -1
  359. package/dist/typography/paragraph.d.cts +4 -4
  360. package/dist/typography/paragraph.d.mts +48 -0
  361. package/dist/typography/paragraph.mjs +1 -0
  362. package/dist/typography/title.cjs +1 -1
  363. package/dist/typography/title.d.mts +43 -0
  364. package/dist/typography/title.mjs +2 -0
  365. package/dist/typography/title.mjs.map +1 -0
  366. package/dist/ui/alert-dialog.cjs +1 -1
  367. package/dist/ui/alert-dialog.d.cts +12 -12
  368. package/dist/ui/alert-dialog.d.mts +90 -0
  369. package/dist/ui/alert-dialog.mjs +2 -0
  370. package/dist/ui/alert-dialog.mjs.map +1 -0
  371. package/dist/ui/alert.cjs +1 -1
  372. package/dist/ui/alert.d.cts +1 -1
  373. package/dist/ui/alert.d.mts +2 -0
  374. package/dist/ui/alert.mjs +1 -0
  375. package/dist/ui/aspect-ratio.cjs +1 -1
  376. package/dist/ui/aspect-ratio.d.cts +2 -2
  377. package/dist/ui/aspect-ratio.d.mts +24 -0
  378. package/dist/ui/aspect-ratio.mjs +2 -0
  379. package/dist/ui/aspect-ratio.mjs.map +1 -0
  380. package/dist/ui/avatar.cjs +1 -2
  381. package/dist/ui/avatar.d.cts +4 -4
  382. package/dist/ui/avatar.d.mts +35 -0
  383. package/dist/ui/avatar.mjs +1 -0
  384. package/dist/ui/badge.cjs +1 -2
  385. package/dist/ui/badge.d.cts +2 -42
  386. package/dist/ui/badge.d.mts +2 -0
  387. package/dist/ui/badge.mjs +1 -0
  388. package/dist/ui/breadcrumb.cjs +1 -1
  389. package/dist/ui/breadcrumb.cjs.map +1 -1
  390. package/dist/ui/breadcrumb.d.cts +8 -8
  391. package/dist/ui/breadcrumb.d.mts +72 -0
  392. package/dist/ui/breadcrumb.mjs +2 -0
  393. package/dist/ui/breadcrumb.mjs.map +1 -0
  394. package/dist/ui/button-group.cjs +1 -1
  395. package/dist/ui/button-group.cjs.map +1 -1
  396. package/dist/ui/button-group.d.cts +7 -7
  397. package/dist/ui/button-group.d.mts +50 -0
  398. package/dist/ui/button-group.mjs +2 -0
  399. package/dist/ui/button-group.mjs.map +1 -0
  400. package/dist/ui/button.cjs +1 -2
  401. package/dist/ui/button.d.cts +1 -1
  402. package/dist/ui/button.d.mts +2 -0
  403. package/dist/ui/button.mjs +1 -0
  404. package/dist/ui/buttons/add-new.cjs +1 -1
  405. package/dist/ui/buttons/add-new.cjs.map +1 -1
  406. package/dist/ui/buttons/add-new.d.mts +17 -0
  407. package/dist/ui/buttons/add-new.mjs +2 -0
  408. package/dist/ui/buttons/add-new.mjs.map +1 -0
  409. package/dist/ui/buttons/edit.cjs +1 -1
  410. package/dist/ui/buttons/edit.cjs.map +1 -1
  411. package/dist/ui/buttons/edit.d.mts +17 -0
  412. package/dist/ui/buttons/edit.mjs +2 -0
  413. package/dist/ui/buttons/edit.mjs.map +1 -0
  414. package/dist/ui/buttons/refresh.cjs +1 -1
  415. package/dist/ui/buttons/refresh.cjs.map +1 -1
  416. package/dist/ui/buttons/refresh.d.mts +17 -0
  417. package/dist/ui/buttons/refresh.mjs +2 -0
  418. package/dist/ui/buttons/refresh.mjs.map +1 -0
  419. package/dist/ui/buttons/trash.cjs +1 -1
  420. package/dist/ui/buttons/trash.cjs.map +1 -1
  421. package/dist/ui/buttons/trash.d.mts +17 -0
  422. package/dist/ui/buttons/trash.mjs +2 -0
  423. package/dist/ui/buttons/trash.mjs.map +1 -0
  424. package/dist/ui/buttons/upload-image.cjs +1 -1
  425. package/dist/ui/buttons/upload-image.cjs.map +1 -1
  426. package/dist/ui/buttons/upload-image.d.mts +24 -0
  427. package/dist/ui/buttons/upload-image.mjs +2 -0
  428. package/dist/ui/buttons/upload-image.mjs.map +1 -0
  429. package/dist/ui/calendar.cjs +1 -2
  430. package/dist/ui/calendar.d.cts +4 -4
  431. package/dist/ui/calendar.d.mts +45 -0
  432. package/dist/ui/calendar.mjs +1 -0
  433. package/dist/ui/card.cjs +1 -1
  434. package/dist/ui/card.d.cts +8 -8
  435. package/dist/ui/card.d.mts +63 -0
  436. package/dist/ui/card.mjs +2 -0
  437. package/dist/ui/card.mjs.map +1 -0
  438. package/dist/ui/carousel.cjs +1 -1
  439. package/dist/ui/carousel.cjs.map +1 -1
  440. package/dist/ui/carousel.d.cts +7 -7
  441. package/dist/ui/carousel.d.mts +71 -0
  442. package/dist/ui/carousel.mjs +2 -0
  443. package/dist/ui/carousel.mjs.map +1 -0
  444. package/dist/ui/checkbox.cjs +1 -2
  445. package/dist/ui/checkbox.d.cts +2 -2
  446. package/dist/ui/checkbox.d.mts +26 -0
  447. package/dist/ui/checkbox.mjs +1 -0
  448. package/dist/ui/collapsible.cjs +1 -1
  449. package/dist/ui/collapsible.d.cts +4 -4
  450. package/dist/ui/collapsible.d.mts +34 -0
  451. package/dist/ui/collapsible.mjs +2 -0
  452. package/dist/ui/collapsible.mjs.map +1 -0
  453. package/dist/ui/command.cjs +1 -2
  454. package/dist/ui/command.d.cts +11 -11
  455. package/dist/ui/command.d.mts +89 -0
  456. package/dist/ui/command.mjs +1 -0
  457. package/dist/ui/context-menu.cjs +1 -1
  458. package/dist/ui/context-menu.d.cts +16 -16
  459. package/dist/ui/context-menu.d.mts +125 -0
  460. package/dist/ui/context-menu.mjs +2 -0
  461. package/dist/ui/context-menu.mjs.map +1 -0
  462. package/dist/ui/dialog.cjs +1 -2
  463. package/dist/ui/dialog.d.cts +2 -90
  464. package/dist/ui/dialog.d.mts +2 -0
  465. package/dist/ui/dialog.mjs +1 -0
  466. package/dist/ui/drawer.cjs +1 -2
  467. package/dist/ui/drawer.d.cts +11 -11
  468. package/dist/ui/drawer.d.mts +72 -0
  469. package/dist/ui/drawer.mjs +1 -0
  470. package/dist/ui/dropdown-menu.cjs +1 -2
  471. package/dist/ui/dropdown-menu.d.cts +16 -16
  472. package/dist/ui/dropdown-menu.d.mts +127 -0
  473. package/dist/ui/dropdown-menu.mjs +1 -0
  474. package/dist/ui/empty.cjs +1 -1
  475. package/dist/ui/empty.d.cts +9 -9
  476. package/dist/ui/empty.d.mts +68 -0
  477. package/dist/ui/empty.mjs +2 -0
  478. package/dist/ui/empty.mjs.map +1 -0
  479. package/dist/ui/field.cjs +1 -1
  480. package/dist/ui/field.d.cts +22 -22
  481. package/dist/ui/field.d.mts +65 -0
  482. package/dist/ui/field.mjs +1 -0
  483. package/dist/ui/file-uploader.cjs +2 -2
  484. package/dist/ui/file-uploader.cjs.map +1 -1
  485. package/dist/ui/file-uploader.d.cts +2 -2
  486. package/dist/ui/file-uploader.d.mts +103 -0
  487. package/dist/ui/file-uploader.mjs +3 -0
  488. package/dist/ui/file-uploader.mjs.map +1 -0
  489. package/dist/ui/form.cjs +1 -1
  490. package/dist/ui/form.cjs.map +1 -1
  491. package/dist/ui/form.d.cts +10 -10
  492. package/dist/ui/form.d.mts +112 -0
  493. package/dist/ui/form.mjs +2 -0
  494. package/dist/ui/form.mjs.map +1 -0
  495. package/dist/ui/hover-card.cjs +1 -1
  496. package/dist/ui/hover-card.d.cts +4 -4
  497. package/dist/ui/hover-card.d.mts +37 -0
  498. package/dist/ui/hover-card.mjs +2 -0
  499. package/dist/ui/hover-card.mjs.map +1 -0
  500. package/dist/ui/image.cjs +1 -2
  501. package/dist/ui/image.d.mts +36 -0
  502. package/dist/ui/image.mjs +1 -0
  503. package/dist/ui/input-otp.cjs +1 -1
  504. package/dist/ui/input-otp.d.cts +5 -5
  505. package/dist/ui/input-otp.d.mts +59 -0
  506. package/dist/ui/input-otp.mjs +2 -0
  507. package/dist/ui/input-otp.mjs.map +1 -0
  508. package/dist/ui/input.cjs +1 -2
  509. package/dist/ui/input.d.cts +2 -44
  510. package/dist/ui/input.d.mts +2 -0
  511. package/dist/ui/input.mjs +1 -0
  512. package/dist/ui/inputs/search-input.cjs +1 -1
  513. package/dist/ui/inputs/search-input.cjs.map +1 -1
  514. package/dist/ui/inputs/search-input.d.cts +3 -3
  515. package/dist/ui/inputs/search-input.d.mts +29 -0
  516. package/dist/ui/inputs/search-input.mjs +2 -0
  517. package/dist/ui/inputs/search-input.mjs.map +1 -0
  518. package/dist/ui/item.cjs +1 -1
  519. package/dist/ui/item.cjs.map +1 -1
  520. package/dist/ui/item.d.cts +15 -15
  521. package/dist/ui/item.d.mts +102 -0
  522. package/dist/ui/item.mjs +2 -0
  523. package/dist/ui/item.mjs.map +1 -0
  524. package/dist/ui/label.cjs +1 -2
  525. package/dist/ui/label.d.cts +2 -2
  526. package/dist/ui/label.d.mts +24 -0
  527. package/dist/ui/label.mjs +1 -0
  528. package/dist/ui/menubar.cjs +1 -1
  529. package/dist/ui/menubar.d.cts +17 -17
  530. package/dist/ui/menubar.d.mts +135 -0
  531. package/dist/ui/menubar.mjs +2 -0
  532. package/dist/ui/menubar.mjs.map +1 -0
  533. package/dist/ui/multi-select.cjs +1 -1
  534. package/dist/ui/multi-select.cjs.map +1 -1
  535. package/dist/ui/multi-select.d.cts +3 -3
  536. package/dist/ui/multi-select.d.mts +118 -0
  537. package/dist/ui/multi-select.mjs +2 -0
  538. package/dist/ui/multi-select.mjs.map +1 -0
  539. package/dist/ui/navigation-menu.cjs +1 -1
  540. package/dist/ui/navigation-menu.d.cts +11 -11
  541. package/dist/ui/navigation-menu.d.mts +77 -0
  542. package/dist/ui/navigation-menu.mjs +2 -0
  543. package/dist/ui/navigation-menu.mjs.map +1 -0
  544. package/dist/ui/pagination.cjs +1 -1
  545. package/dist/ui/pagination.d.cts +9 -9
  546. package/dist/ui/pagination.d.mts +67 -0
  547. package/dist/ui/pagination.mjs +2 -0
  548. package/dist/ui/pagination.mjs.map +1 -0
  549. package/dist/ui/popover.cjs +1 -2
  550. package/dist/ui/popover.d.cts +6 -6
  551. package/dist/ui/popover.d.mts +52 -0
  552. package/dist/ui/popover.mjs +1 -0
  553. package/dist/ui/progress.cjs +1 -2
  554. package/dist/ui/progress.d.cts +2 -2
  555. package/dist/ui/progress.d.mts +23 -0
  556. package/dist/ui/progress.mjs +1 -0
  557. package/dist/ui/radio-group.cjs +1 -2
  558. package/dist/ui/radio-group.d.cts +3 -3
  559. package/dist/ui/radio-group.d.mts +37 -0
  560. package/dist/ui/radio-group.mjs +1 -0
  561. package/dist/ui/resizable.cjs +1 -2
  562. package/dist/ui/resizable.d.cts +9 -9
  563. package/dist/ui/resizable.d.mts +63 -0
  564. package/dist/ui/resizable.mjs +1 -0
  565. package/dist/ui/scroll-area.cjs +1 -1
  566. package/dist/ui/scroll-area.d.cts +5 -5
  567. package/dist/ui/scroll-area.d.mts +37 -0
  568. package/dist/ui/scroll-area.mjs +2 -0
  569. package/dist/ui/scroll-area.mjs.map +1 -0
  570. package/dist/ui/select.cjs +1 -2
  571. package/dist/ui/select.d.cts +9 -9
  572. package/dist/ui/select.d.mts +77 -0
  573. package/dist/ui/select.mjs +1 -0
  574. package/dist/ui/separator.cjs +1 -2
  575. package/dist/ui/separator.d.cts +2 -2
  576. package/dist/ui/separator.d.mts +34 -0
  577. package/dist/ui/separator.mjs +1 -0
  578. package/dist/ui/sheet.cjs +1 -2
  579. package/dist/ui/sheet.d.cts +9 -9
  580. package/dist/ui/sheet.d.mts +69 -0
  581. package/dist/ui/sheet.mjs +1 -0
  582. package/dist/ui/skeleton.cjs +1 -1
  583. package/dist/ui/skeleton.d.cts +2 -2
  584. package/dist/ui/skeleton.d.mts +27 -0
  585. package/dist/ui/skeleton.mjs +1 -0
  586. package/dist/ui/slider.cjs +1 -1
  587. package/dist/ui/slider.d.cts +2 -2
  588. package/dist/ui/slider.d.mts +26 -0
  589. package/dist/ui/slider.mjs +2 -0
  590. package/dist/ui/slider.mjs.map +1 -0
  591. package/dist/ui/sonner.cjs +1 -1
  592. package/dist/ui/sonner.d.cts +2 -2
  593. package/dist/ui/sonner.d.mts +24 -0
  594. package/dist/ui/sonner.mjs +2 -0
  595. package/dist/ui/sonner.mjs.map +1 -0
  596. package/dist/ui/spinner.cjs +1 -2
  597. package/dist/ui/spinner.d.cts +2 -2
  598. package/dist/ui/spinner.d.mts +25 -0
  599. package/dist/ui/spinner.mjs +1 -0
  600. package/dist/ui/switch.cjs +1 -2
  601. package/dist/ui/switch.d.cts +2 -2
  602. package/dist/ui/switch.d.mts +26 -0
  603. package/dist/ui/switch.mjs +1 -0
  604. package/dist/ui/table.cjs +1 -1
  605. package/dist/ui/table.d.cts +17 -17
  606. package/dist/ui/table.d.mts +73 -0
  607. package/dist/ui/table.mjs +2 -0
  608. package/dist/ui/table.mjs.map +1 -0
  609. package/dist/ui/tabs.cjs +1 -1
  610. package/dist/ui/tabs.d.cts +5 -5
  611. package/dist/ui/tabs.d.mts +44 -0
  612. package/dist/ui/tabs.mjs +2 -0
  613. package/dist/ui/tabs.mjs.map +1 -0
  614. package/dist/ui/textarea.cjs +1 -2
  615. package/dist/ui/textarea.d.cts +2 -2
  616. package/dist/ui/textarea.d.mts +30 -0
  617. package/dist/ui/textarea.mjs +1 -0
  618. package/dist/ui/toggle-group.cjs +1 -1
  619. package/dist/ui/toggle-group.cjs.map +1 -1
  620. package/dist/ui/toggle-group.d.cts +4 -4
  621. package/dist/ui/toggle-group.d.mts +39 -0
  622. package/dist/ui/toggle-group.mjs +2 -0
  623. package/dist/ui/toggle-group.mjs.map +1 -0
  624. package/dist/ui/toggle.cjs +1 -1
  625. package/dist/ui/toggle.d.cts +4 -4
  626. package/dist/ui/toggle.d.mts +32 -0
  627. package/dist/ui/toggle.mjs +2 -0
  628. package/dist/ui/toggle.mjs.map +1 -0
  629. package/dist/ui/tooltip.cjs +1 -2
  630. package/dist/ui/tooltip.d.cts +5 -5
  631. package/dist/ui/tooltip.d.mts +55 -0
  632. package/dist/ui/tooltip.mjs +1 -0
  633. package/dist/user-DtZy4P9d.mjs +2 -0
  634. package/dist/user-DtZy4P9d.mjs.map +1 -0
  635. package/dist/user-ii4FBhO1.cjs +2 -0
  636. package/dist/user-ii4FBhO1.cjs.map +1 -0
  637. package/package.json +100 -100
  638. package/dist/alert-BVsYpWFX.d.cts +0 -88
  639. package/dist/alert-D5VmhFT9.js +0 -2
  640. package/dist/alert-D5VmhFT9.js.map +0 -1
  641. package/dist/alert-DXmXDeGs.d.ts +0 -88
  642. package/dist/alert-JwECRZfz.cjs +0 -2
  643. package/dist/alert-JwECRZfz.cjs.map +0 -1
  644. package/dist/button-BBfGvggN.d.ts +0 -174
  645. package/dist/button-BEjRVw6s.d.cts +0 -174
  646. package/dist/button.variants-BruXd4VM.js +0 -2
  647. package/dist/button.variants-BruXd4VM.js.map +0 -1
  648. package/dist/button.variants-DgVFNsVc.cjs +0 -2
  649. package/dist/button.variants-DgVFNsVc.cjs.map +0 -1
  650. package/dist/cards/grid-product-card.d.ts +0 -37
  651. package/dist/cards/grid-product-card.js +0 -2
  652. package/dist/cards/grid-product-card.js.map +0 -1
  653. package/dist/cards/product-card.d.ts +0 -37
  654. package/dist/cards/product-card.js +0 -2
  655. package/dist/cards/product-card.js.map +0 -1
  656. package/dist/cards/simple-card.d.ts +0 -35
  657. package/dist/cards/simple-card.js +0 -2
  658. package/dist/cards/simple-card.js.map +0 -1
  659. package/dist/chunk-Bmb41Sf3.cjs +0 -1
  660. package/dist/close-Dflkky9q.cjs +0 -2
  661. package/dist/close-Dflkky9q.cjs.map +0 -1
  662. package/dist/close-DrkwaVXK.js +0 -2
  663. package/dist/close-DrkwaVXK.js.map +0 -1
  664. package/dist/cms-layout-B8maJRLp.cjs +0 -2
  665. package/dist/cms-layout-B8maJRLp.cjs.map +0 -1
  666. package/dist/cms-layout-CLeGdpMb.js +0 -2
  667. package/dist/cms-layout-CLeGdpMb.js.map +0 -1
  668. package/dist/data-display/country.d.ts +0 -22
  669. package/dist/data-display/country.js +0 -2
  670. package/dist/data-display/country.js.map +0 -1
  671. package/dist/data-display/data-list.d.ts +0 -43
  672. package/dist/data-display/data-list.js +0 -2
  673. package/dist/data-display/data-list.js.map +0 -1
  674. package/dist/data-display/date-tooltip.d.ts +0 -19
  675. package/dist/data-display/date-tooltip.js +0 -2
  676. package/dist/data-display/date-tooltip.js.map +0 -1
  677. package/dist/data-display/date.cjs.map +0 -1
  678. package/dist/data-display/date.d.ts +0 -39
  679. package/dist/data-display/date.js +0 -2
  680. package/dist/data-display/date.js.map +0 -1
  681. package/dist/data-display/empty.d.ts +0 -21
  682. package/dist/data-display/empty.js +0 -2
  683. package/dist/data-display/empty.js.map +0 -1
  684. package/dist/data-display/name.d.ts +0 -19
  685. package/dist/data-display/name.js +0 -2
  686. package/dist/data-display/name.js.map +0 -1
  687. package/dist/data-display/phone-number.d.ts +0 -19
  688. package/dist/data-display/phone-number.js +0 -2
  689. package/dist/data-display/phone-number.js.map +0 -1
  690. package/dist/data-display/role-badge.d.ts +0 -22
  691. package/dist/data-display/role-badge.js +0 -2
  692. package/dist/data-display/role-badge.js.map +0 -1
  693. package/dist/data-display/statistic.cjs.map +0 -1
  694. package/dist/data-display/statistic.d.ts +0 -57
  695. package/dist/data-display/statistic.js +0 -2
  696. package/dist/data-display/statistic.js.map +0 -1
  697. package/dist/data-display/user.cjs.map +0 -1
  698. package/dist/data-display/user.d.ts +0 -23
  699. package/dist/data-display/user.js +0 -2
  700. package/dist/data-display/user.js.map +0 -1
  701. package/dist/dialogs/confirm-dialog.d.ts +0 -142
  702. package/dist/dialogs/confirm-dialog.js +0 -2
  703. package/dist/dialogs/confirm-dialog.js.map +0 -1
  704. package/dist/dialogs/detail-dialog/components/sidebar.d.ts +0 -209
  705. package/dist/dialogs/detail-dialog/components/sidebar.js +0 -1
  706. package/dist/dialogs/detail-dialog/index.d.ts +0 -45
  707. package/dist/dialogs/detail-dialog/index.js +0 -2
  708. package/dist/dialogs/detail-dialog/index.js.map +0 -1
  709. package/dist/dialogs/error-dialog.d.ts +0 -25
  710. package/dist/dialogs/error-dialog.js +0 -2
  711. package/dist/dialogs/error-dialog.js.map +0 -1
  712. package/dist/dialogs/loading-dialog.d.ts +0 -21
  713. package/dist/dialogs/loading-dialog.js +0 -2
  714. package/dist/dialogs/loading-dialog.js.map +0 -1
  715. package/dist/features/descriptions/index.d.ts +0 -246
  716. package/dist/features/descriptions/index.js +0 -2
  717. package/dist/features/descriptions/index.js.map +0 -1
  718. package/dist/features/search-modal/index.d.ts +0 -17
  719. package/dist/features/search-modal/index.js +0 -1
  720. package/dist/features/tables/index.d.ts +0 -2
  721. package/dist/features/tables/index.js +0 -1
  722. package/dist/features/tanstack-form/index.d.ts +0 -2
  723. package/dist/features/tanstack-form/index.js +0 -1
  724. package/dist/features/text-editor/index.d.ts +0 -2
  725. package/dist/features/text-editor/index.js +0 -1
  726. package/dist/field-0gaEKxov.cjs +0 -2
  727. package/dist/field-0gaEKxov.cjs.map +0 -1
  728. package/dist/field-DG-kX3HU.js +0 -2
  729. package/dist/field-DG-kX3HU.js.map +0 -1
  730. package/dist/flex-BAfCk_in.cjs +0 -2
  731. package/dist/flex-BAfCk_in.cjs.map +0 -1
  732. package/dist/flex-D_XtSjf4.js +0 -2
  733. package/dist/flex-D_XtSjf4.js.map +0 -1
  734. package/dist/heading-BX7ZVnVg.cjs +0 -2
  735. package/dist/heading-BX7ZVnVg.cjs.map +0 -1
  736. package/dist/heading-Bw3eo6IT.js +0 -2
  737. package/dist/heading-Bw3eo6IT.js.map +0 -1
  738. package/dist/index--eHW_BCk.d.ts +0 -85
  739. package/dist/index-C257sc-c.d.ts +0 -90
  740. package/dist/index-C4ZFmaZm.d.cts +0 -2348
  741. package/dist/index-DWEpRM8i.d.cts +0 -1093
  742. package/dist/index-DnQeeNHV.d.ts +0 -1093
  743. package/dist/index-_MFRCXuJ.d.cts +0 -85
  744. package/dist/index-rNI5ia8r.d.cts +0 -90
  745. package/dist/index-rZ2RtGJp.d.ts +0 -2348
  746. package/dist/index.d.ts +0 -93
  747. package/dist/index.js +0 -1
  748. package/dist/layouts/cms-layout/index.d.ts +0 -2
  749. package/dist/layouts/cms-layout/index.js +0 -1
  750. package/dist/layouts/flex.d.ts +0 -117
  751. package/dist/layouts/flex.js +0 -1
  752. package/dist/layouts/grid.d.ts +0 -19
  753. package/dist/layouts/grid.js +0 -2
  754. package/dist/layouts/grid.js.map +0 -1
  755. package/dist/layouts/payment-layout/index.d.ts +0 -74
  756. package/dist/layouts/payment-layout/index.js +0 -1
  757. package/dist/pages/FeatureDeveloping.d.ts +0 -43
  758. package/dist/pages/FeatureDeveloping.js +0 -2
  759. package/dist/pages/FeatureDeveloping.js.map +0 -1
  760. package/dist/pages/FeatureFixing.d.ts +0 -43
  761. package/dist/pages/FeatureFixing.js +0 -2
  762. package/dist/pages/FeatureFixing.js.map +0 -1
  763. package/dist/pages/LoginPage.d.ts +0 -55
  764. package/dist/pages/LoginPage.js +0 -2
  765. package/dist/pages/LoginPage.js.map +0 -1
  766. package/dist/pages/NotAuthorized.d.ts +0 -43
  767. package/dist/pages/NotAuthorized.js +0 -2
  768. package/dist/pages/NotAuthorized.js.map +0 -1
  769. package/dist/pages/NotFound.d.ts +0 -43
  770. package/dist/pages/NotFound.js +0 -2
  771. package/dist/pages/NotFound.js.map +0 -1
  772. package/dist/pages/RegisterPage.d.ts +0 -52
  773. package/dist/pages/RegisterPage.js +0 -2
  774. package/dist/pages/RegisterPage.js.map +0 -1
  775. package/dist/pages/VerifyEmailPage.d.ts +0 -64
  776. package/dist/pages/VerifyEmailPage.js +0 -2
  777. package/dist/pages/VerifyEmailPage.js.map +0 -1
  778. package/dist/paragraph-D0x3Jc6W.cjs +0 -2
  779. package/dist/paragraph-D0x3Jc6W.cjs.map +0 -1
  780. package/dist/paragraph-ESjXXqHU.js +0 -2
  781. package/dist/paragraph-ESjXXqHU.js.map +0 -1
  782. package/dist/payment-layout-CksJbGsl.js +0 -2
  783. package/dist/payment-layout-CksJbGsl.js.map +0 -1
  784. package/dist/payment-layout-O7TNw2Cr.cjs +0 -2
  785. package/dist/payment-layout-O7TNw2Cr.cjs.map +0 -1
  786. package/dist/search-modal-Db8Xp2L4.cjs +0 -2
  787. package/dist/search-modal-Db8Xp2L4.cjs.map +0 -1
  788. package/dist/search-modal-DdonKbwA.js +0 -2
  789. package/dist/search-modal-DdonKbwA.js.map +0 -1
  790. package/dist/sidebar-BCuXtop_.js +0 -2
  791. package/dist/sidebar-BCuXtop_.js.map +0 -1
  792. package/dist/sidebar-CQZlWCK4.cjs +0 -2
  793. package/dist/sidebar-CQZlWCK4.cjs.map +0 -1
  794. package/dist/skeleton-DAcbjBGp.js +0 -2
  795. package/dist/skeleton-DAcbjBGp.js.map +0 -1
  796. package/dist/skeleton-oQFT4xR2.cjs +0 -2
  797. package/dist/skeleton-oQFT4xR2.cjs.map +0 -1
  798. package/dist/systems/google.d.ts +0 -53
  799. package/dist/systems/google.js +0 -2
  800. package/dist/systems/google.js.map +0 -1
  801. package/dist/tables-DbwtCMRI.js +0 -4
  802. package/dist/tables-DbwtCMRI.js.map +0 -1
  803. package/dist/tables-DgZbLZQP.cjs +0 -4
  804. package/dist/tables-DgZbLZQP.cjs.map +0 -1
  805. package/dist/tanstack-form-C3SGhsmN.cjs +0 -2
  806. package/dist/tanstack-form-C3SGhsmN.cjs.map +0 -1
  807. package/dist/tanstack-form-Ds_Zjt20.js +0 -2
  808. package/dist/tanstack-form-Ds_Zjt20.js.map +0 -1
  809. package/dist/text-editor-DhTxCxvH.cjs +0 -2
  810. package/dist/text-editor-DhTxCxvH.cjs.map +0 -1
  811. package/dist/text-editor-DwisU9_U.js +0 -2
  812. package/dist/text-editor-DwisU9_U.js.map +0 -1
  813. package/dist/typography/paragraph.d.ts +0 -48
  814. package/dist/typography/paragraph.js +0 -1
  815. package/dist/typography/title.d.ts +0 -43
  816. package/dist/typography/title.js +0 -2
  817. package/dist/typography/title.js.map +0 -1
  818. package/dist/ui/alert-dialog.d.ts +0 -90
  819. package/dist/ui/alert-dialog.js +0 -2
  820. package/dist/ui/alert-dialog.js.map +0 -1
  821. package/dist/ui/alert.d.ts +0 -2
  822. package/dist/ui/alert.js +0 -1
  823. package/dist/ui/aspect-ratio.d.ts +0 -24
  824. package/dist/ui/aspect-ratio.js +0 -2
  825. package/dist/ui/aspect-ratio.js.map +0 -1
  826. package/dist/ui/avatar.cjs.map +0 -1
  827. package/dist/ui/avatar.d.ts +0 -35
  828. package/dist/ui/avatar.js +0 -2
  829. package/dist/ui/avatar.js.map +0 -1
  830. package/dist/ui/badge.cjs.map +0 -1
  831. package/dist/ui/badge.d.ts +0 -42
  832. package/dist/ui/badge.js +0 -2
  833. package/dist/ui/badge.js.map +0 -1
  834. package/dist/ui/breadcrumb.d.ts +0 -72
  835. package/dist/ui/breadcrumb.js +0 -2
  836. package/dist/ui/breadcrumb.js.map +0 -1
  837. package/dist/ui/button-group.d.ts +0 -50
  838. package/dist/ui/button-group.js +0 -2
  839. package/dist/ui/button-group.js.map +0 -1
  840. package/dist/ui/button.cjs.map +0 -1
  841. package/dist/ui/button.d.ts +0 -2
  842. package/dist/ui/button.js +0 -2
  843. package/dist/ui/button.js.map +0 -1
  844. package/dist/ui/buttons/add-new.d.ts +0 -17
  845. package/dist/ui/buttons/add-new.js +0 -2
  846. package/dist/ui/buttons/add-new.js.map +0 -1
  847. package/dist/ui/buttons/edit.d.ts +0 -17
  848. package/dist/ui/buttons/edit.js +0 -2
  849. package/dist/ui/buttons/edit.js.map +0 -1
  850. package/dist/ui/buttons/refresh.d.ts +0 -17
  851. package/dist/ui/buttons/refresh.js +0 -2
  852. package/dist/ui/buttons/refresh.js.map +0 -1
  853. package/dist/ui/buttons/trash.d.ts +0 -17
  854. package/dist/ui/buttons/trash.js +0 -2
  855. package/dist/ui/buttons/trash.js.map +0 -1
  856. package/dist/ui/buttons/upload-image.d.ts +0 -24
  857. package/dist/ui/buttons/upload-image.js +0 -2
  858. package/dist/ui/buttons/upload-image.js.map +0 -1
  859. package/dist/ui/calendar.cjs.map +0 -1
  860. package/dist/ui/calendar.d.ts +0 -45
  861. package/dist/ui/calendar.js +0 -2
  862. package/dist/ui/calendar.js.map +0 -1
  863. package/dist/ui/card.d.ts +0 -63
  864. package/dist/ui/card.js +0 -2
  865. package/dist/ui/card.js.map +0 -1
  866. package/dist/ui/carousel.d.ts +0 -71
  867. package/dist/ui/carousel.js +0 -2
  868. package/dist/ui/carousel.js.map +0 -1
  869. package/dist/ui/checkbox.cjs.map +0 -1
  870. package/dist/ui/checkbox.d.ts +0 -26
  871. package/dist/ui/checkbox.js +0 -2
  872. package/dist/ui/checkbox.js.map +0 -1
  873. package/dist/ui/collapsible.d.ts +0 -34
  874. package/dist/ui/collapsible.js +0 -2
  875. package/dist/ui/collapsible.js.map +0 -1
  876. package/dist/ui/command.cjs.map +0 -1
  877. package/dist/ui/command.d.ts +0 -89
  878. package/dist/ui/command.js +0 -2
  879. package/dist/ui/command.js.map +0 -1
  880. package/dist/ui/context-menu.d.ts +0 -125
  881. package/dist/ui/context-menu.js +0 -2
  882. package/dist/ui/context-menu.js.map +0 -1
  883. package/dist/ui/dialog.cjs.map +0 -1
  884. package/dist/ui/dialog.d.ts +0 -90
  885. package/dist/ui/dialog.js +0 -2
  886. package/dist/ui/dialog.js.map +0 -1
  887. package/dist/ui/drawer.cjs.map +0 -1
  888. package/dist/ui/drawer.d.ts +0 -72
  889. package/dist/ui/drawer.js +0 -2
  890. package/dist/ui/drawer.js.map +0 -1
  891. package/dist/ui/dropdown-menu.cjs.map +0 -1
  892. package/dist/ui/dropdown-menu.d.ts +0 -127
  893. package/dist/ui/dropdown-menu.js +0 -2
  894. package/dist/ui/dropdown-menu.js.map +0 -1
  895. package/dist/ui/empty.d.ts +0 -68
  896. package/dist/ui/empty.js +0 -2
  897. package/dist/ui/empty.js.map +0 -1
  898. package/dist/ui/field.d.ts +0 -65
  899. package/dist/ui/field.js +0 -1
  900. package/dist/ui/file-uploader.d.ts +0 -103
  901. package/dist/ui/file-uploader.js +0 -3
  902. package/dist/ui/file-uploader.js.map +0 -1
  903. package/dist/ui/form.d.ts +0 -112
  904. package/dist/ui/form.js +0 -2
  905. package/dist/ui/form.js.map +0 -1
  906. package/dist/ui/hover-card.d.ts +0 -37
  907. package/dist/ui/hover-card.js +0 -2
  908. package/dist/ui/hover-card.js.map +0 -1
  909. package/dist/ui/image.cjs.map +0 -1
  910. package/dist/ui/image.d.ts +0 -36
  911. package/dist/ui/image.js +0 -2
  912. package/dist/ui/image.js.map +0 -1
  913. package/dist/ui/input-otp.d.ts +0 -59
  914. package/dist/ui/input-otp.js +0 -2
  915. package/dist/ui/input-otp.js.map +0 -1
  916. package/dist/ui/input.cjs.map +0 -1
  917. package/dist/ui/input.d.ts +0 -44
  918. package/dist/ui/input.js +0 -2
  919. package/dist/ui/input.js.map +0 -1
  920. package/dist/ui/inputs/search-input.d.ts +0 -29
  921. package/dist/ui/inputs/search-input.js +0 -2
  922. package/dist/ui/inputs/search-input.js.map +0 -1
  923. package/dist/ui/item.d.ts +0 -102
  924. package/dist/ui/item.js +0 -2
  925. package/dist/ui/item.js.map +0 -1
  926. package/dist/ui/label.cjs.map +0 -1
  927. package/dist/ui/label.d.ts +0 -24
  928. package/dist/ui/label.js +0 -2
  929. package/dist/ui/label.js.map +0 -1
  930. package/dist/ui/menubar.d.ts +0 -135
  931. package/dist/ui/menubar.js +0 -2
  932. package/dist/ui/menubar.js.map +0 -1
  933. package/dist/ui/multi-select.d.ts +0 -117
  934. package/dist/ui/multi-select.js +0 -2
  935. package/dist/ui/multi-select.js.map +0 -1
  936. package/dist/ui/navigation-menu.d.ts +0 -77
  937. package/dist/ui/navigation-menu.js +0 -2
  938. package/dist/ui/navigation-menu.js.map +0 -1
  939. package/dist/ui/pagination.d.ts +0 -67
  940. package/dist/ui/pagination.js +0 -2
  941. package/dist/ui/pagination.js.map +0 -1
  942. package/dist/ui/popover.cjs.map +0 -1
  943. package/dist/ui/popover.d.ts +0 -52
  944. package/dist/ui/popover.js +0 -2
  945. package/dist/ui/popover.js.map +0 -1
  946. package/dist/ui/progress.cjs.map +0 -1
  947. package/dist/ui/progress.d.ts +0 -23
  948. package/dist/ui/progress.js +0 -2
  949. package/dist/ui/progress.js.map +0 -1
  950. package/dist/ui/radio-group.cjs.map +0 -1
  951. package/dist/ui/radio-group.d.ts +0 -37
  952. package/dist/ui/radio-group.js +0 -2
  953. package/dist/ui/radio-group.js.map +0 -1
  954. package/dist/ui/resizable.cjs.map +0 -1
  955. package/dist/ui/resizable.d.ts +0 -63
  956. package/dist/ui/resizable.js +0 -2
  957. package/dist/ui/resizable.js.map +0 -1
  958. package/dist/ui/scroll-area.d.ts +0 -37
  959. package/dist/ui/scroll-area.js +0 -2
  960. package/dist/ui/scroll-area.js.map +0 -1
  961. package/dist/ui/select.cjs.map +0 -1
  962. package/dist/ui/select.d.ts +0 -77
  963. package/dist/ui/select.js +0 -2
  964. package/dist/ui/select.js.map +0 -1
  965. package/dist/ui/separator.cjs.map +0 -1
  966. package/dist/ui/separator.d.ts +0 -34
  967. package/dist/ui/separator.js +0 -2
  968. package/dist/ui/separator.js.map +0 -1
  969. package/dist/ui/sheet.cjs.map +0 -1
  970. package/dist/ui/sheet.d.ts +0 -69
  971. package/dist/ui/sheet.js +0 -2
  972. package/dist/ui/sheet.js.map +0 -1
  973. package/dist/ui/skeleton.d.ts +0 -27
  974. package/dist/ui/skeleton.js +0 -1
  975. package/dist/ui/slider.d.ts +0 -26
  976. package/dist/ui/slider.js +0 -2
  977. package/dist/ui/slider.js.map +0 -1
  978. package/dist/ui/sonner.d.ts +0 -24
  979. package/dist/ui/sonner.js +0 -2
  980. package/dist/ui/sonner.js.map +0 -1
  981. package/dist/ui/spinner.cjs.map +0 -1
  982. package/dist/ui/spinner.d.ts +0 -25
  983. package/dist/ui/spinner.js +0 -2
  984. package/dist/ui/spinner.js.map +0 -1
  985. package/dist/ui/switch.cjs.map +0 -1
  986. package/dist/ui/switch.d.ts +0 -26
  987. package/dist/ui/switch.js +0 -2
  988. package/dist/ui/switch.js.map +0 -1
  989. package/dist/ui/table.d.ts +0 -73
  990. package/dist/ui/table.js +0 -2
  991. package/dist/ui/table.js.map +0 -1
  992. package/dist/ui/tabs.d.ts +0 -44
  993. package/dist/ui/tabs.js +0 -2
  994. package/dist/ui/tabs.js.map +0 -1
  995. package/dist/ui/textarea.cjs.map +0 -1
  996. package/dist/ui/textarea.d.ts +0 -30
  997. package/dist/ui/textarea.js +0 -2
  998. package/dist/ui/textarea.js.map +0 -1
  999. package/dist/ui/toggle-group.d.ts +0 -39
  1000. package/dist/ui/toggle-group.js +0 -2
  1001. package/dist/ui/toggle-group.js.map +0 -1
  1002. package/dist/ui/toggle.d.ts +0 -32
  1003. package/dist/ui/toggle.js +0 -2
  1004. package/dist/ui/toggle.js.map +0 -1
  1005. package/dist/ui/tooltip.cjs.map +0 -1
  1006. package/dist/ui/tooltip.d.ts +0 -55
  1007. package/dist/ui/tooltip.js +0 -2
  1008. package/dist/ui/tooltip.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-editor-DhTxCxvH.cjs","names":["Popover","PopoverTrigger","Link2","PopoverContent","Link2Off","Undo","Redo","DropdownMenu","DropdownMenuTrigger","ChevronDown","DropdownMenuContent","DropdownMenuItem","Bold","Italic","Underline","Strikethrough","Code","List","ListOrdered","ListChecks","Quote","Code2","Minus","AlignLeft","AlignCenter","AlignRight","AlignJustify","Popover","PopoverTrigger","Palette","PopoverContent","Highlighter","base: AnyExtension[]","StarterKit","Underline","Placeholder","TextAlign","ListKeymap","TextStyle","Link","TaskList","TaskItem","Highlight","Color","CharacterCount","BubbleMenu","Bold","Italic","UnderlineIcon","Strikethrough","EditorContent"],"sources":["../packages/components/features/text-editor/toolbar-primitives.tsx","../packages/components/features/text-editor/link-dialog.tsx","../packages/components/features/text-editor/text-editor.variants.ts","../packages/components/features/text-editor/toolbar.tsx","../packages/components/features/text-editor/text-editor.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\ninterface ToolbarButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n isActive?: boolean;\n}\n\nfunction ToolbarButton({ isActive, className, children, ...props }: ToolbarButtonProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"toolbar-button\"\n data-active={isActive || undefined}\n className={cn(\n 'inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors',\n 'hover:bg-muted-muted hover:text-text-positive-strong',\n 'disabled:pointer-events-none disabled:opacity-40',\n isActive && 'bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary',\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nfunction ToolbarDivider() {\n return <div data-slot=\"toolbar-divider\" className=\"mx-0.5 h-5 w-px shrink-0 bg-border\" />;\n}\n\nexport { ToolbarButton, ToolbarDivider };\n// biome-ignore lint/style/useComponentExportOnlyModules: type export needed by sibling feature files\nexport type { ToolbarButtonProps };\n","'use client';\n\nimport { useCallback, useState } from 'react';\n\nimport { Link2, Link2Off } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\n\nimport { type Editor, useEditorState } from '@tiptap/react';\nimport { ToolbarButton } from './toolbar-primitives';\n\nexport interface LinkDialogProps {\n editor: Editor;\n}\n\nfunction LinkDialog({ editor }: LinkDialogProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [url, setUrl] = useState('');\n\n const isLinkActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('link'),\n });\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n const existingHref = editor.getAttributes('link').href ?? '';\n setUrl(existingHref);\n }\n setIsOpen(open);\n },\n [editor]\n );\n\n const handleApply = useCallback(() => {\n const trimmed = url.trim();\n if (!trimmed) return;\n editor.chain().focus().setLink({ href: trimmed, target: '_blank' }).run();\n setIsOpen(false);\n }, [editor, url]);\n\n const handleRemove = useCallback(() => {\n editor.chain().focus().unsetLink().run();\n setIsOpen(false);\n }, [editor]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleApply();\n }\n if (e.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n return (\n <Popover open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <ToolbarButton isActive={isLinkActive} title=\"Link (Ctrl+K)\" data-slot=\"toolbar-link-button\">\n <Link2 className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n </PopoverTrigger>\n <PopoverContent data-slot=\"link-dialog\" sideOffset={6} align=\"start\" className=\"w-72 p-3\">\n <p className=\"mb-2 font-medium text-text-positive-strong text-xs\">{isLinkActive ? 'Edit Link' : 'Insert Link'}</p>\n <div className=\"flex gap-1.5\">\n <input\n type=\"url\"\n placeholder=\"https://example.com\"\n value={url}\n onChange={e => setUrl(e.target.value)}\n onKeyDown={handleKeyDown}\n autoFocus\n className={cn(\n 'flex-1 rounded border border-border bg-transparent px-2.5 py-1.5 text-sm text-text-positive',\n 'outline-none placeholder:text-text-positive-muted',\n 'focus:border-primary focus:ring-1 focus:ring-primary/30'\n )}\n />\n <button\n type=\"button\"\n onClick={handleApply}\n disabled={!url.trim()}\n className={cn(\n 'rounded bg-primary px-2.5 py-1.5 font-medium text-text-negative text-xs',\n 'transition-colors hover:bg-primary-strong',\n 'disabled:pointer-events-none disabled:opacity-50'\n )}\n >\n Apply\n </button>\n </div>\n {isLinkActive && (\n <button type=\"button\" onClick={handleRemove} className=\"mt-2 flex items-center gap-1 text-danger-strong text-xs hover:underline\">\n <Link2Off className=\"h-3 w-3\" />\n Remove link\n </button>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport { LinkDialog };\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const textEditorVariants = cva(['flex flex-col overflow-hidden rounded-md'], {\n variants: {\n variant: {\n outline: 'border border-border bg-background shadow-xs',\n ghost: 'border-0',\n },\n size: {\n sm: 'text-xs [&_.ProseMirror]:min-h-24 [&_.ProseMirror]:px-2.5 [&_.ProseMirror]:py-1.5',\n md: '',\n lg: 'text-base [&_.ProseMirror]:min-h-56 [&_.ProseMirror]:px-4 [&_.ProseMirror]:py-3',\n },\n },\n defaultVariants: {\n variant: 'outline',\n size: 'md',\n },\n});\n\nexport type TextEditorVariantProps = VariantProps<typeof textEditorVariants>;\n","'use client';\n\nimport {\n AlignCenter,\n AlignJustify,\n AlignLeft,\n AlignRight,\n Bold,\n ChevronDown,\n Code,\n Code2,\n Highlighter,\n Italic,\n List,\n ListChecks,\n ListOrdered,\n Minus,\n Palette,\n Quote,\n Redo,\n Strikethrough,\n Underline,\n Undo,\n} from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\n\nimport { type Editor, useEditorState } from '@tiptap/react';\nimport { LinkDialog } from './link-dialog';\nimport { ToolbarButton, ToolbarDivider } from './toolbar-primitives';\n\nconst HIGHLIGHT_COLORS = [\n { label: 'Yellow', value: '#fde047' },\n { label: 'Green', value: '#86efac' },\n { label: 'Blue', value: '#93c5fd' },\n { label: 'Pink', value: '#f9a8d4' },\n { label: 'Orange', value: '#fdba74' },\n { label: 'Purple', value: '#c4b5fd' },\n { label: 'Red', value: '#fca5a5' },\n { label: 'Cyan', value: '#67e8f9' },\n { label: 'Lime', value: '#bef264' },\n { label: 'Gray', value: '#d1d5db' },\n];\n\nconst TEXT_COLORS = [\n { label: 'Default', value: '' },\n { label: 'Red', value: '#ef4444' },\n { label: 'Orange', value: '#f97316' },\n { label: 'Yellow', value: '#eab308' },\n { label: 'Green', value: '#22c55e' },\n { label: 'Blue', value: '#3b82f6' },\n { label: 'Purple', value: '#a855f7' },\n { label: 'Pink', value: '#ec4899' },\n { label: 'Gray', value: '#6b7280' },\n { label: 'Black', value: '#000000' },\n];\n\nexport interface TextEditorToolbarProps {\n editor: Editor;\n className?: string;\n enableLink?: boolean;\n enableTaskList?: boolean;\n enableHighlight?: boolean;\n enableColor?: boolean;\n}\n\nfunction TextEditorToolbar({ editor, className, enableLink, enableTaskList, enableHighlight, enableColor }: TextEditorToolbarProps) {\n const isHeading1Active = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('heading', { level: 1 }),\n });\n const isHeading2Active = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('heading', { level: 2 }),\n });\n const isHeading3Active = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('heading', { level: 3 }),\n });\n const isBoldActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('bold'),\n });\n const isItalicActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('italic'),\n });\n const isUnderlineActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('underline'),\n });\n const isStrikeActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('strike'),\n });\n const isCodeActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('code'),\n });\n const isBulletListActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('bulletList'),\n });\n const isOrderedListActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('orderedList'),\n });\n const isTaskListActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('taskList'),\n });\n const isBlockquoteActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('blockquote'),\n });\n const isCodeBlockActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('codeBlock'),\n });\n const isAlignLeftActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'left' }),\n });\n const isAlignCenterActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'center' }),\n });\n const isAlignRightActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'right' }),\n });\n const isAlignJustifyActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'justify' }),\n });\n\n const headingLabel = isHeading1Active ? 'H1' : isHeading2Active ? 'H2' : isHeading3Active ? 'H3' : 'P';\n\n return (\n <div data-slot=\"text-editor-toolbar\" className={cn('flex flex-wrap items-center gap-0.5 border-border border-b bg-muted-muted/50 p-1.5', className)}>\n {/* History */}\n <ToolbarButton onClick={() => editor.chain().focus().undo().run()} disabled={!editor.can().undo()} title=\"Undo (Ctrl+Z)\">\n <Undo className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().redo().run()} disabled={!editor.can().redo()} title=\"Redo (Ctrl+Y)\">\n <Redo className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n <ToolbarDivider />\n\n {/* Heading dropdown */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n data-slot=\"toolbar-heading-trigger\"\n className={cn(\n 'inline-flex h-7 items-center gap-1 rounded px-1.5 font-medium text-xs transition-colors',\n 'hover:bg-muted-muted hover:text-text-positive-strong',\n 'disabled:pointer-events-none disabled:opacity-40',\n (isHeading1Active || isHeading2Active || isHeading3Active) && 'bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary'\n )}\n >\n <span className=\"w-5 text-center\">{headingLabel}</span>\n <ChevronDown className=\"h-3 w-3 opacity-60\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"min-w-32\">\n <DropdownMenuItem onClick={() => editor.chain().focus().setParagraph().run()}>\n <span className=\"text-sm\">Paragraph</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}>\n <span className=\"font-bold text-lg\">Heading 1</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}>\n <span className=\"font-semibold text-base\">Heading 2</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}>\n <span className=\"font-semibold text-sm\">Heading 3</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <ToolbarDivider />\n\n {/* Text formatting */}\n <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} isActive={isBoldActive} title=\"Bold (Ctrl+B)\">\n <Bold className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleItalic().run()} isActive={isItalicActive} title=\"Italic (Ctrl+I)\">\n <Italic className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleUnderline().run()} isActive={isUnderlineActive} title=\"Underline (Ctrl+U)\">\n <Underline className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleStrike().run()} isActive={isStrikeActive} title=\"Strikethrough\">\n <Strikethrough className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCode().run()} isActive={isCodeActive} title=\"Inline Code\">\n <Code className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n <ToolbarDivider />\n\n {/* Lists */}\n <ToolbarButton onClick={() => editor.chain().focus().toggleBulletList().run()} isActive={isBulletListActive} title=\"Bullet List\">\n <List className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleOrderedList().run()} isActive={isOrderedListActive} title=\"Ordered List\">\n <ListOrdered className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n {enableTaskList && (\n <ToolbarButton onClick={() => editor.chain().focus().toggleTaskList().run()} isActive={isTaskListActive} title=\"Task List\">\n <ListChecks className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n )}\n\n <ToolbarDivider />\n\n {/* Blocks */}\n <ToolbarButton onClick={() => editor.chain().focus().toggleBlockquote().run()} isActive={isBlockquoteActive} title=\"Blockquote\">\n <Quote className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCodeBlock().run()} isActive={isCodeBlockActive} title=\"Code Block\">\n <Code2 className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setHorizontalRule().run()} title=\"Horizontal Rule\">\n <Minus className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n <ToolbarDivider />\n\n {/* Text alignment */}\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('left').run()} isActive={isAlignLeftActive} title=\"Align Left\">\n <AlignLeft className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('center').run()} isActive={isAlignCenterActive} title=\"Align Center\">\n <AlignCenter className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('right').run()} isActive={isAlignRightActive} title=\"Align Right\">\n <AlignRight className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('justify').run()} isActive={isAlignJustifyActive} title=\"Align Justify\">\n <AlignJustify className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n {/* Link */}\n {enableLink && (\n <>\n <ToolbarDivider />\n <LinkDialog editor={editor} />\n </>\n )}\n\n {/* Color & Highlight */}\n {(enableColor || enableHighlight) && (\n <>\n <ToolbarDivider />\n {enableColor && (\n <Popover>\n <PopoverTrigger asChild>\n <ToolbarButton title=\"Text Color\">\n <Palette className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"w-44 p-2\">\n <p className=\"mb-1.5 font-medium text-text-positive-weak text-xs\">Text Color</p>\n <div className=\"grid grid-cols-5 gap-1\">\n {TEXT_COLORS.map(color => (\n <button\n key={color.label}\n type=\"button\"\n title={color.label}\n onClick={() => {\n if (!color.value) {\n editor.chain().focus().unsetColor().run();\n } else {\n editor.chain().focus().setColor(color.value).run();\n }\n }}\n className={cn(\n 'h-6 w-6 rounded border border-border transition-transform hover:scale-110',\n !color.value && 'bg-background text-[10px] text-text-positive leading-none'\n )}\n style={color.value ? { backgroundColor: color.value } : undefined}\n >\n {!color.value && '∅'}\n </button>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n )}\n {enableHighlight && (\n <Popover>\n <PopoverTrigger asChild>\n <ToolbarButton title=\"Highlight\">\n <Highlighter className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"w-44 p-2\">\n <p className=\"mb-1.5 font-medium text-text-positive-weak text-xs\">Highlight</p>\n <div className=\"grid grid-cols-5 gap-1\">\n {HIGHLIGHT_COLORS.map(color => (\n <button\n key={color.label}\n type=\"button\"\n title={color.label}\n onClick={() => editor.chain().focus().toggleHighlight({ color: color.value }).run()}\n className=\"h-6 w-6 rounded border border-border transition-transform hover:scale-110\"\n style={{ backgroundColor: color.value }}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={() => editor.chain().focus().unsetHighlight().run()}\n className=\"mt-1.5 w-full rounded border border-border py-0.5 text-center text-text-positive-weak text-xs hover:bg-muted-muted\"\n >\n Clear highlight\n </button>\n </PopoverContent>\n </Popover>\n )}\n </>\n )}\n </div>\n );\n}\n\nexport { TextEditorToolbar };\n","'use client';\n\nimport { useEffect, useMemo } from 'react';\n\nimport { Bold, Italic, Strikethrough, Underline as UnderlineIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { CharacterCount } from '@tiptap/extension-character-count';\nimport { Highlight } from '@tiptap/extension-highlight';\nimport { Link } from '@tiptap/extension-link';\nimport { ListKeymap } from '@tiptap/extension-list-keymap';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport { TaskItem } from '@tiptap/extension-task-item';\nimport { TaskList } from '@tiptap/extension-task-list';\nimport TextAlign from '@tiptap/extension-text-align';\nimport { Color, TextStyle } from '@tiptap/extension-text-style';\nimport Underline from '@tiptap/extension-underline';\nimport { type AnyExtension, EditorContent, useEditor, useEditorState } from '@tiptap/react';\nimport { BubbleMenu } from '@tiptap/react/menus';\nimport StarterKit from '@tiptap/starter-kit';\nimport { LinkDialog } from './link-dialog';\nimport { type TextEditorVariantProps, textEditorVariants } from './text-editor.variants';\nimport { TextEditorToolbar } from './toolbar';\nimport { ToolbarButton, ToolbarDivider } from './toolbar-primitives';\n\nexport interface TextEditorProps extends TextEditorVariantProps {\n value?: string;\n defaultValue?: string;\n onChange?: (html: string) => void;\n placeholder?: string;\n readOnly?: boolean;\n showToolbar?: boolean;\n className?: string;\n toolbarClassName?: string;\n editorClassName?: string;\n // Character count\n maxLength?: number;\n showCharacterCount?: boolean;\n onCharacterCount?: (stats: { characters: number; words: number }) => void;\n // Feature flags\n enableLink?: boolean;\n enableBubbleMenu?: boolean;\n enableTaskList?: boolean;\n enableHighlight?: boolean;\n enableColor?: boolean;\n}\n\nfunction TextEditor({\n value,\n defaultValue,\n onChange,\n placeholder = 'Start writing...',\n readOnly = false,\n showToolbar = true,\n variant,\n size,\n className,\n toolbarClassName,\n editorClassName,\n maxLength,\n showCharacterCount,\n onCharacterCount,\n enableLink,\n enableBubbleMenu,\n enableTaskList,\n enableHighlight,\n enableColor,\n}: TextEditorProps) {\n const needsCharCount = maxLength !== undefined || showCharacterCount || onCharacterCount !== undefined;\n const needsTextStyle = enableColor || enableHighlight;\n\n const extensions = useMemo(() => {\n const base: AnyExtension[] = [\n StarterKit,\n Underline,\n Placeholder.configure({ placeholder }),\n TextAlign.configure({ types: ['heading', 'paragraph'] }),\n ListKeymap,\n ];\n\n if (needsTextStyle) base.push(TextStyle);\n if (enableLink) {\n base.push(Link.configure({ openOnClick: false, linkOnPaste: true, defaultProtocol: 'https' }));\n }\n if (enableTaskList) {\n base.push(TaskList, TaskItem.configure({ nested: true }));\n }\n if (enableHighlight) {\n base.push(Highlight.configure({ multicolor: true }));\n }\n if (enableColor) {\n base.push(Color);\n }\n if (needsCharCount) {\n base.push(CharacterCount.configure({ limit: maxLength }));\n }\n\n return base;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [needsCharCount, placeholder, maxLength, enableHighlight, needsTextStyle, enableTaskList, enableLink, enableColor]);\n\n const editor = useEditor({\n extensions,\n content: value ?? defaultValue,\n editable: !readOnly,\n onUpdate: ({ editor: e }) => {\n onChange?.(e.getHTML());\n if (onCharacterCount) {\n const storage = e.storage.characterCount;\n onCharacterCount({ characters: storage.characters(), words: storage.words() });\n }\n },\n });\n\n useEffect(() => {\n if (!editor || value === undefined) return;\n if (editor.getHTML() === value) return;\n editor.commands.setContent(value);\n }, [editor, value]);\n\n useEffect(() => {\n if (!editor) return;\n editor.setEditable(!readOnly);\n }, [editor, readOnly]);\n\n const charCount = useEditorState({\n editor,\n selector: ctx => {\n const storage = ctx.editor?.storage?.characterCount;\n return storage ? (storage.characters() as number) : 0;\n },\n });\n\n const wordCount = useEditorState({\n editor,\n selector: ctx => {\n const storage = ctx.editor?.storage?.characterCount;\n return storage ? (storage.words() as number) : 0;\n },\n });\n\n const showCharCount = showCharacterCount || maxLength !== undefined;\n const isNearLimit = maxLength !== undefined && charCount > maxLength * 0.9;\n\n return (\n <div data-slot=\"text-editor\" className={cn('lunas-text-editor', textEditorVariants({ variant, size }), className)}>\n {showToolbar && !readOnly && editor && (\n <TextEditorToolbar\n editor={editor}\n className={toolbarClassName}\n enableLink={enableLink}\n enableTaskList={enableTaskList}\n enableHighlight={enableHighlight}\n enableColor={enableColor}\n />\n )}\n\n {enableBubbleMenu && !readOnly && editor && (\n <BubbleMenu\n editor={editor}\n options={{ placement: 'top' }}\n className={cn('flex items-center gap-0.5 rounded-md border border-border bg-popover p-1 shadow-dropdown')}\n >\n <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} isActive={editor.isActive('bold')} title=\"Bold (Ctrl+B)\">\n <Bold className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleItalic().run()} isActive={editor.isActive('italic')} title=\"Italic (Ctrl+I)\">\n <Italic className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleUnderline().run()} isActive={editor.isActive('underline')} title=\"Underline (Ctrl+U)\">\n <UnderlineIcon className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleStrike().run()} isActive={editor.isActive('strike')} title=\"Strikethrough\">\n <Strikethrough className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n {enableLink && (\n <>\n <ToolbarDivider />\n <LinkDialog editor={editor} />\n </>\n )}\n </BubbleMenu>\n )}\n\n <EditorContent editor={editor} data-slot=\"text-editor-content\" className={cn('flex-1 bg-white text-sm text-text-positive', editorClassName)} />\n\n {showCharCount && needsCharCount && (\n <div\n data-slot=\"text-editor-footer\"\n className=\"flex items-center justify-between border-border border-t bg-muted-muted/30 px-3 py-1 text-text-positive-weak text-xs\"\n >\n <span>{wordCount} words</span>\n <span data-warning={isNearLimit || undefined} className=\"data-warning:text-warning-strong\">\n {charCount}\n {maxLength ? ` / ${maxLength}` : ''} characters\n </span>\n </div>\n )}\n </div>\n );\n}\n\nexport { TextEditor };\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{AlignCenter as e,AlignJustify as t,AlignLeft as n,AlignRight as r,Bold as i,ChevronDown as a,Code as o,Code2 as s,Highlighter as c,Italic as l,Link2 as u,Link2Off as d,List as ee,ListChecks as f,ListOrdered as p,Minus as m,Palette as h,Quote as te,Redo as g,Strikethrough as ne,Underline as _,Undo as v}from"lucide-react";import{cn as y}from"@customafk/react-toolkit/utils";import{cva as b}from"class-variance-authority";import{Fragment as x,jsx as S,jsxs as C}from"react/jsx-runtime";import{useCallback as w,useEffect as T,useMemo as E,useState as D}from"react";import{DropdownMenu as O,DropdownMenuContent as k,DropdownMenuItem as A,DropdownMenuTrigger as re}from"@/components/ui/dropdown-menu";import{Popover as j,PopoverContent as M,PopoverTrigger as N}from"@/components/ui/popover";import{EditorContent as P,useEditor as F,useEditorState as I}from"@tiptap/react";import{CharacterCount as L}from"@tiptap/extension-character-count";import{Highlight as R}from"@tiptap/extension-highlight";import{Link as z}from"@tiptap/extension-link";import{ListKeymap as B}from"@tiptap/extension-list-keymap";import V from"@tiptap/extension-placeholder";import{TaskItem as H}from"@tiptap/extension-task-item";import{TaskList as U}from"@tiptap/extension-task-list";import W from"@tiptap/extension-text-align";import{Color as G,TextStyle as K}from"@tiptap/extension-text-style";import q from"@tiptap/extension-underline";import{BubbleMenu as J}from"@tiptap/react/menus";import Y from"@tiptap/starter-kit";function X({isActive:e,className:t,children:n,...r}){return S(`button`,{type:`button`,"data-slot":`toolbar-button`,"data-active":e||void 0,className:y(`inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors`,`hover:bg-muted-muted hover:text-text-positive-strong`,`disabled:pointer-events-none disabled:opacity-40`,e&&`bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary`,t),...r,children:n})}function Z(){return S(`div`,{"data-slot":`toolbar-divider`,className:`mx-0.5 h-5 w-px shrink-0 bg-border`})}function Q({editor:e}){let[t,n]=D(!1),[r,i]=D(``),a=I({editor:e,selector:e=>e.editor.isActive(`link`)}),o=w(t=>{t&&i(e.getAttributes(`link`).href??``),n(t)},[e]),s=w(()=>{let t=r.trim();t&&(e.chain().focus().setLink({href:t,target:`_blank`}).run(),n(!1))},[e,r]),c=w(()=>{e.chain().focus().unsetLink().run(),n(!1)},[e]),l=e=>{e.key===`Enter`&&(e.preventDefault(),s()),e.key===`Escape`&&n(!1)};return C(j,{open:t,onOpenChange:o,children:[S(N,{asChild:!0,children:S(X,{isActive:a,title:`Link (Ctrl+K)`,"data-slot":`toolbar-link-button`,children:S(u,{className:`h-3.5 w-3.5`})})}),C(M,{"data-slot":`link-dialog`,sideOffset:6,align:`start`,className:`w-72 p-3`,children:[S(`p`,{className:`mb-2 font-medium text-text-positive-strong text-xs`,children:a?`Edit Link`:`Insert Link`}),C(`div`,{className:`flex gap-1.5`,children:[S(`input`,{type:`url`,placeholder:`https://example.com`,value:r,onChange:e=>i(e.target.value),onKeyDown:l,autoFocus:!0,className:y(`flex-1 rounded border border-border bg-transparent px-2.5 py-1.5 text-sm text-text-positive`,`outline-none placeholder:text-text-positive-muted`,`focus:border-primary focus:ring-1 focus:ring-primary/30`)}),S(`button`,{type:`button`,onClick:s,disabled:!r.trim(),className:y(`rounded bg-primary px-2.5 py-1.5 font-medium text-text-negative text-xs`,`transition-colors hover:bg-primary-strong`,`disabled:pointer-events-none disabled:opacity-50`),children:`Apply`})]}),a&&C(`button`,{type:`button`,onClick:c,className:`mt-2 flex items-center gap-1 text-danger-strong text-xs hover:underline`,children:[S(d,{className:`h-3 w-3`}),`Remove link`]})]})]})}const ie=b([`flex flex-col overflow-hidden rounded-md`],{variants:{variant:{outline:`border border-border bg-background shadow-xs`,ghost:`border-0`},size:{sm:`text-xs [&_.ProseMirror]:min-h-24 [&_.ProseMirror]:px-2.5 [&_.ProseMirror]:py-1.5`,md:``,lg:`text-base [&_.ProseMirror]:min-h-56 [&_.ProseMirror]:px-4 [&_.ProseMirror]:py-3`}},defaultVariants:{variant:`outline`,size:`md`}}),ae=[{label:`Yellow`,value:`#fde047`},{label:`Green`,value:`#86efac`},{label:`Blue`,value:`#93c5fd`},{label:`Pink`,value:`#f9a8d4`},{label:`Orange`,value:`#fdba74`},{label:`Purple`,value:`#c4b5fd`},{label:`Red`,value:`#fca5a5`},{label:`Cyan`,value:`#67e8f9`},{label:`Lime`,value:`#bef264`},{label:`Gray`,value:`#d1d5db`}],oe=[{label:`Default`,value:``},{label:`Red`,value:`#ef4444`},{label:`Orange`,value:`#f97316`},{label:`Yellow`,value:`#eab308`},{label:`Green`,value:`#22c55e`},{label:`Blue`,value:`#3b82f6`},{label:`Purple`,value:`#a855f7`},{label:`Pink`,value:`#ec4899`},{label:`Gray`,value:`#6b7280`},{label:`Black`,value:`#000000`}];function $({editor:u,className:d,enableLink:b,enableTaskList:w,enableHighlight:T,enableColor:E}){let D=I({editor:u,selector:e=>e.editor.isActive(`heading`,{level:1})}),P=I({editor:u,selector:e=>e.editor.isActive(`heading`,{level:2})}),F=I({editor:u,selector:e=>e.editor.isActive(`heading`,{level:3})}),L=I({editor:u,selector:e=>e.editor.isActive(`bold`)}),R=I({editor:u,selector:e=>e.editor.isActive(`italic`)}),z=I({editor:u,selector:e=>e.editor.isActive(`underline`)}),B=I({editor:u,selector:e=>e.editor.isActive(`strike`)}),V=I({editor:u,selector:e=>e.editor.isActive(`code`)}),H=I({editor:u,selector:e=>e.editor.isActive(`bulletList`)}),U=I({editor:u,selector:e=>e.editor.isActive(`orderedList`)}),W=I({editor:u,selector:e=>e.editor.isActive(`taskList`)}),G=I({editor:u,selector:e=>e.editor.isActive(`blockquote`)}),K=I({editor:u,selector:e=>e.editor.isActive(`codeBlock`)}),q=I({editor:u,selector:e=>e.editor.isActive({textAlign:`left`})}),J=I({editor:u,selector:e=>e.editor.isActive({textAlign:`center`})}),Y=I({editor:u,selector:e=>e.editor.isActive({textAlign:`right`})}),ie=I({editor:u,selector:e=>e.editor.isActive({textAlign:`justify`})}),$=D?`H1`:P?`H2`:F?`H3`:`P`;return C(`div`,{"data-slot":`text-editor-toolbar`,className:y(`flex flex-wrap items-center gap-0.5 border-border border-b bg-muted-muted/50 p-1.5`,d),children:[S(X,{onClick:()=>u.chain().focus().undo().run(),disabled:!u.can().undo(),title:`Undo (Ctrl+Z)`,children:S(v,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().redo().run(),disabled:!u.can().redo(),title:`Redo (Ctrl+Y)`,children:S(g,{className:`h-3.5 w-3.5`})}),S(Z,{}),C(O,{children:[S(re,{asChild:!0,children:C(`button`,{type:`button`,"data-slot":`toolbar-heading-trigger`,className:y(`inline-flex h-7 items-center gap-1 rounded px-1.5 font-medium text-xs transition-colors`,`hover:bg-muted-muted hover:text-text-positive-strong`,`disabled:pointer-events-none disabled:opacity-40`,(D||P||F)&&`bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary`),children:[S(`span`,{className:`w-5 text-center`,children:$}),S(a,{className:`h-3 w-3 opacity-60`})]})}),C(k,{align:`start`,className:`min-w-32`,children:[S(A,{onClick:()=>u.chain().focus().setParagraph().run(),children:S(`span`,{className:`text-sm`,children:`Paragraph`})}),S(A,{onClick:()=>u.chain().focus().toggleHeading({level:1}).run(),children:S(`span`,{className:`font-bold text-lg`,children:`Heading 1`})}),S(A,{onClick:()=>u.chain().focus().toggleHeading({level:2}).run(),children:S(`span`,{className:`font-semibold text-base`,children:`Heading 2`})}),S(A,{onClick:()=>u.chain().focus().toggleHeading({level:3}).run(),children:S(`span`,{className:`font-semibold text-sm`,children:`Heading 3`})})]})]}),S(Z,{}),S(X,{onClick:()=>u.chain().focus().toggleBold().run(),isActive:L,title:`Bold (Ctrl+B)`,children:S(i,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().toggleItalic().run(),isActive:R,title:`Italic (Ctrl+I)`,children:S(l,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().toggleUnderline().run(),isActive:z,title:`Underline (Ctrl+U)`,children:S(_,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().toggleStrike().run(),isActive:B,title:`Strikethrough`,children:S(ne,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().toggleCode().run(),isActive:V,title:`Inline Code`,children:S(o,{className:`h-3.5 w-3.5`})}),S(Z,{}),S(X,{onClick:()=>u.chain().focus().toggleBulletList().run(),isActive:H,title:`Bullet List`,children:S(ee,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().toggleOrderedList().run(),isActive:U,title:`Ordered List`,children:S(p,{className:`h-3.5 w-3.5`})}),w&&S(X,{onClick:()=>u.chain().focus().toggleTaskList().run(),isActive:W,title:`Task List`,children:S(f,{className:`h-3.5 w-3.5`})}),S(Z,{}),S(X,{onClick:()=>u.chain().focus().toggleBlockquote().run(),isActive:G,title:`Blockquote`,children:S(te,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().toggleCodeBlock().run(),isActive:K,title:`Code Block`,children:S(s,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().setHorizontalRule().run(),title:`Horizontal Rule`,children:S(m,{className:`h-3.5 w-3.5`})}),S(Z,{}),S(X,{onClick:()=>u.chain().focus().setTextAlign(`left`).run(),isActive:q,title:`Align Left`,children:S(n,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().setTextAlign(`center`).run(),isActive:J,title:`Align Center`,children:S(e,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().setTextAlign(`right`).run(),isActive:Y,title:`Align Right`,children:S(r,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>u.chain().focus().setTextAlign(`justify`).run(),isActive:ie,title:`Align Justify`,children:S(t,{className:`h-3.5 w-3.5`})}),b&&C(x,{children:[S(Z,{}),S(Q,{editor:u})]}),(E||T)&&C(x,{children:[S(Z,{}),E&&C(j,{children:[S(N,{asChild:!0,children:S(X,{title:`Text Color`,children:S(h,{className:`h-3.5 w-3.5`})})}),C(M,{align:`start`,className:`w-44 p-2`,children:[S(`p`,{className:`mb-1.5 font-medium text-text-positive-weak text-xs`,children:`Text Color`}),S(`div`,{className:`grid grid-cols-5 gap-1`,children:oe.map(e=>S(`button`,{type:`button`,title:e.label,onClick:()=>{e.value?u.chain().focus().setColor(e.value).run():u.chain().focus().unsetColor().run()},className:y(`h-6 w-6 rounded border border-border transition-transform hover:scale-110`,!e.value&&`bg-background text-[10px] text-text-positive leading-none`),style:e.value?{backgroundColor:e.value}:void 0,children:!e.value&&`∅`},e.label))})]})]}),T&&C(j,{children:[S(N,{asChild:!0,children:S(X,{title:`Highlight`,children:S(c,{className:`h-3.5 w-3.5`})})}),C(M,{align:`start`,className:`w-44 p-2`,children:[S(`p`,{className:`mb-1.5 font-medium text-text-positive-weak text-xs`,children:`Highlight`}),S(`div`,{className:`grid grid-cols-5 gap-1`,children:ae.map(e=>S(`button`,{type:`button`,title:e.label,onClick:()=>u.chain().focus().toggleHighlight({color:e.value}).run(),className:`h-6 w-6 rounded border border-border transition-transform hover:scale-110`,style:{backgroundColor:e.value}},e.label))}),S(`button`,{type:`button`,onClick:()=>u.chain().focus().unsetHighlight().run(),className:`mt-1.5 w-full rounded border border-border py-0.5 text-center text-text-positive-weak text-xs hover:bg-muted-muted`,children:`Clear highlight`})]})]})]})]})}function se({value:e,defaultValue:t,onChange:n,placeholder:r=`Start writing...`,readOnly:a=!1,showToolbar:o=!0,variant:s,size:c,className:u,toolbarClassName:d,editorClassName:ee,maxLength:f,showCharacterCount:p,onCharacterCount:m,enableLink:h,enableBubbleMenu:te,enableTaskList:g,enableHighlight:v,enableColor:b}){let w=f!==void 0||p||m!==void 0,D=b||v,O=F({extensions:E(()=>{let e=[Y,q,V.configure({placeholder:r}),W.configure({types:[`heading`,`paragraph`]}),B];return D&&e.push(K),h&&e.push(z.configure({openOnClick:!1,linkOnPaste:!0,defaultProtocol:`https`})),g&&e.push(U,H.configure({nested:!0})),v&&e.push(R.configure({multicolor:!0})),b&&e.push(G),w&&e.push(L.configure({limit:f})),e},[w,r,f,v,D,g,h,b]),content:e??t,editable:!a,onUpdate:({editor:e})=>{if(n?.(e.getHTML()),m){let t=e.storage.characterCount;m({characters:t.characters(),words:t.words()})}}});T(()=>{!O||e===void 0||O.getHTML()!==e&&O.commands.setContent(e)},[O,e]),T(()=>{O&&O.setEditable(!a)},[O,a]);let k=I({editor:O,selector:e=>{let t=e.editor?.storage?.characterCount;return t?t.characters():0}}),A=I({editor:O,selector:e=>{let t=e.editor?.storage?.characterCount;return t?t.words():0}}),re=p||f!==void 0,j=f!==void 0&&k>f*.9;return C(`div`,{"data-slot":`text-editor`,className:y(`lunas-text-editor`,ie({variant:s,size:c}),u),children:[o&&!a&&O&&S($,{editor:O,className:d,enableLink:h,enableTaskList:g,enableHighlight:v,enableColor:b}),te&&!a&&O&&C(J,{editor:O,options:{placement:`top`},className:y(`flex items-center gap-0.5 rounded-md border border-border bg-popover p-1 shadow-dropdown`),children:[S(X,{onClick:()=>O.chain().focus().toggleBold().run(),isActive:O.isActive(`bold`),title:`Bold (Ctrl+B)`,children:S(i,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>O.chain().focus().toggleItalic().run(),isActive:O.isActive(`italic`),title:`Italic (Ctrl+I)`,children:S(l,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>O.chain().focus().toggleUnderline().run(),isActive:O.isActive(`underline`),title:`Underline (Ctrl+U)`,children:S(_,{className:`h-3.5 w-3.5`})}),S(X,{onClick:()=>O.chain().focus().toggleStrike().run(),isActive:O.isActive(`strike`),title:`Strikethrough`,children:S(ne,{className:`h-3.5 w-3.5`})}),h&&C(x,{children:[S(Z,{}),S(Q,{editor:O})]})]}),S(P,{editor:O,"data-slot":`text-editor-content`,className:y(`flex-1 bg-white text-sm text-text-positive`,ee)}),re&&w&&C(`div`,{"data-slot":`text-editor-footer`,className:`flex items-center justify-between border-border border-t bg-muted-muted/30 px-3 py-1 text-text-positive-weak text-xs`,children:[C(`span`,{children:[A,` words`]}),C(`span`,{"data-warning":j||void 0,className:`data-warning:text-warning-strong`,children:[k,f?` / ${f}`:``,` characters`]})]})]})}export{$ as n,Q as r,se as t};
2
- //# sourceMappingURL=text-editor-DwisU9_U.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-editor-DwisU9_U.js","names":["base: AnyExtension[]","Underline","UnderlineIcon"],"sources":["../packages/components/features/text-editor/toolbar-primitives.tsx","../packages/components/features/text-editor/link-dialog.tsx","../packages/components/features/text-editor/text-editor.variants.ts","../packages/components/features/text-editor/toolbar.tsx","../packages/components/features/text-editor/text-editor.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\ninterface ToolbarButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n isActive?: boolean;\n}\n\nfunction ToolbarButton({ isActive, className, children, ...props }: ToolbarButtonProps) {\n return (\n <button\n type=\"button\"\n data-slot=\"toolbar-button\"\n data-active={isActive || undefined}\n className={cn(\n 'inline-flex h-7 w-7 items-center justify-center rounded text-sm transition-colors',\n 'hover:bg-muted-muted hover:text-text-positive-strong',\n 'disabled:pointer-events-none disabled:opacity-40',\n isActive && 'bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary',\n className\n )}\n {...props}\n >\n {children}\n </button>\n );\n}\n\nfunction ToolbarDivider() {\n return <div data-slot=\"toolbar-divider\" className=\"mx-0.5 h-5 w-px shrink-0 bg-border\" />;\n}\n\nexport { ToolbarButton, ToolbarDivider };\n// biome-ignore lint/style/useComponentExportOnlyModules: type export needed by sibling feature files\nexport type { ToolbarButtonProps };\n","'use client';\n\nimport { useCallback, useState } from 'react';\n\nimport { Link2, Link2Off } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\n\nimport { type Editor, useEditorState } from '@tiptap/react';\nimport { ToolbarButton } from './toolbar-primitives';\n\nexport interface LinkDialogProps {\n editor: Editor;\n}\n\nfunction LinkDialog({ editor }: LinkDialogProps) {\n const [isOpen, setIsOpen] = useState(false);\n const [url, setUrl] = useState('');\n\n const isLinkActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('link'),\n });\n\n const handleOpenChange = useCallback(\n (open: boolean) => {\n if (open) {\n const existingHref = editor.getAttributes('link').href ?? '';\n setUrl(existingHref);\n }\n setIsOpen(open);\n },\n [editor]\n );\n\n const handleApply = useCallback(() => {\n const trimmed = url.trim();\n if (!trimmed) return;\n editor.chain().focus().setLink({ href: trimmed, target: '_blank' }).run();\n setIsOpen(false);\n }, [editor, url]);\n\n const handleRemove = useCallback(() => {\n editor.chain().focus().unsetLink().run();\n setIsOpen(false);\n }, [editor]);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleApply();\n }\n if (e.key === 'Escape') {\n setIsOpen(false);\n }\n };\n\n return (\n <Popover open={isOpen} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <ToolbarButton isActive={isLinkActive} title=\"Link (Ctrl+K)\" data-slot=\"toolbar-link-button\">\n <Link2 className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n </PopoverTrigger>\n <PopoverContent data-slot=\"link-dialog\" sideOffset={6} align=\"start\" className=\"w-72 p-3\">\n <p className=\"mb-2 font-medium text-text-positive-strong text-xs\">{isLinkActive ? 'Edit Link' : 'Insert Link'}</p>\n <div className=\"flex gap-1.5\">\n <input\n type=\"url\"\n placeholder=\"https://example.com\"\n value={url}\n onChange={e => setUrl(e.target.value)}\n onKeyDown={handleKeyDown}\n autoFocus\n className={cn(\n 'flex-1 rounded border border-border bg-transparent px-2.5 py-1.5 text-sm text-text-positive',\n 'outline-none placeholder:text-text-positive-muted',\n 'focus:border-primary focus:ring-1 focus:ring-primary/30'\n )}\n />\n <button\n type=\"button\"\n onClick={handleApply}\n disabled={!url.trim()}\n className={cn(\n 'rounded bg-primary px-2.5 py-1.5 font-medium text-text-negative text-xs',\n 'transition-colors hover:bg-primary-strong',\n 'disabled:pointer-events-none disabled:opacity-50'\n )}\n >\n Apply\n </button>\n </div>\n {isLinkActive && (\n <button type=\"button\" onClick={handleRemove} className=\"mt-2 flex items-center gap-1 text-danger-strong text-xs hover:underline\">\n <Link2Off className=\"h-3 w-3\" />\n Remove link\n </button>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport { LinkDialog };\n","import { cva, type VariantProps } from 'class-variance-authority';\n\nexport const textEditorVariants = cva(['flex flex-col overflow-hidden rounded-md'], {\n variants: {\n variant: {\n outline: 'border border-border bg-background shadow-xs',\n ghost: 'border-0',\n },\n size: {\n sm: 'text-xs [&_.ProseMirror]:min-h-24 [&_.ProseMirror]:px-2.5 [&_.ProseMirror]:py-1.5',\n md: '',\n lg: 'text-base [&_.ProseMirror]:min-h-56 [&_.ProseMirror]:px-4 [&_.ProseMirror]:py-3',\n },\n },\n defaultVariants: {\n variant: 'outline',\n size: 'md',\n },\n});\n\nexport type TextEditorVariantProps = VariantProps<typeof textEditorVariants>;\n","'use client';\n\nimport {\n AlignCenter,\n AlignJustify,\n AlignLeft,\n AlignRight,\n Bold,\n ChevronDown,\n Code,\n Code2,\n Highlighter,\n Italic,\n List,\n ListChecks,\n ListOrdered,\n Minus,\n Palette,\n Quote,\n Redo,\n Strikethrough,\n Underline,\n Undo,\n} from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu';\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';\n\nimport { type Editor, useEditorState } from '@tiptap/react';\nimport { LinkDialog } from './link-dialog';\nimport { ToolbarButton, ToolbarDivider } from './toolbar-primitives';\n\nconst HIGHLIGHT_COLORS = [\n { label: 'Yellow', value: '#fde047' },\n { label: 'Green', value: '#86efac' },\n { label: 'Blue', value: '#93c5fd' },\n { label: 'Pink', value: '#f9a8d4' },\n { label: 'Orange', value: '#fdba74' },\n { label: 'Purple', value: '#c4b5fd' },\n { label: 'Red', value: '#fca5a5' },\n { label: 'Cyan', value: '#67e8f9' },\n { label: 'Lime', value: '#bef264' },\n { label: 'Gray', value: '#d1d5db' },\n];\n\nconst TEXT_COLORS = [\n { label: 'Default', value: '' },\n { label: 'Red', value: '#ef4444' },\n { label: 'Orange', value: '#f97316' },\n { label: 'Yellow', value: '#eab308' },\n { label: 'Green', value: '#22c55e' },\n { label: 'Blue', value: '#3b82f6' },\n { label: 'Purple', value: '#a855f7' },\n { label: 'Pink', value: '#ec4899' },\n { label: 'Gray', value: '#6b7280' },\n { label: 'Black', value: '#000000' },\n];\n\nexport interface TextEditorToolbarProps {\n editor: Editor;\n className?: string;\n enableLink?: boolean;\n enableTaskList?: boolean;\n enableHighlight?: boolean;\n enableColor?: boolean;\n}\n\nfunction TextEditorToolbar({ editor, className, enableLink, enableTaskList, enableHighlight, enableColor }: TextEditorToolbarProps) {\n const isHeading1Active = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('heading', { level: 1 }),\n });\n const isHeading2Active = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('heading', { level: 2 }),\n });\n const isHeading3Active = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('heading', { level: 3 }),\n });\n const isBoldActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('bold'),\n });\n const isItalicActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('italic'),\n });\n const isUnderlineActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('underline'),\n });\n const isStrikeActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('strike'),\n });\n const isCodeActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('code'),\n });\n const isBulletListActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('bulletList'),\n });\n const isOrderedListActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('orderedList'),\n });\n const isTaskListActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('taskList'),\n });\n const isBlockquoteActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('blockquote'),\n });\n const isCodeBlockActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive('codeBlock'),\n });\n const isAlignLeftActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'left' }),\n });\n const isAlignCenterActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'center' }),\n });\n const isAlignRightActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'right' }),\n });\n const isAlignJustifyActive = useEditorState({\n editor,\n selector: ctx => ctx.editor.isActive({ textAlign: 'justify' }),\n });\n\n const headingLabel = isHeading1Active ? 'H1' : isHeading2Active ? 'H2' : isHeading3Active ? 'H3' : 'P';\n\n return (\n <div data-slot=\"text-editor-toolbar\" className={cn('flex flex-wrap items-center gap-0.5 border-border border-b bg-muted-muted/50 p-1.5', className)}>\n {/* History */}\n <ToolbarButton onClick={() => editor.chain().focus().undo().run()} disabled={!editor.can().undo()} title=\"Undo (Ctrl+Z)\">\n <Undo className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().redo().run()} disabled={!editor.can().redo()} title=\"Redo (Ctrl+Y)\">\n <Redo className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n <ToolbarDivider />\n\n {/* Heading dropdown */}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n type=\"button\"\n data-slot=\"toolbar-heading-trigger\"\n className={cn(\n 'inline-flex h-7 items-center gap-1 rounded px-1.5 font-medium text-xs transition-colors',\n 'hover:bg-muted-muted hover:text-text-positive-strong',\n 'disabled:pointer-events-none disabled:opacity-40',\n (isHeading1Active || isHeading2Active || isHeading3Active) && 'bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary'\n )}\n >\n <span className=\"w-5 text-center\">{headingLabel}</span>\n <ChevronDown className=\"h-3 w-3 opacity-60\" />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\" className=\"min-w-32\">\n <DropdownMenuItem onClick={() => editor.chain().focus().setParagraph().run()}>\n <span className=\"text-sm\">Paragraph</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}>\n <span className=\"font-bold text-lg\">Heading 1</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}>\n <span className=\"font-semibold text-base\">Heading 2</span>\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}>\n <span className=\"font-semibold text-sm\">Heading 3</span>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n\n <ToolbarDivider />\n\n {/* Text formatting */}\n <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} isActive={isBoldActive} title=\"Bold (Ctrl+B)\">\n <Bold className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleItalic().run()} isActive={isItalicActive} title=\"Italic (Ctrl+I)\">\n <Italic className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleUnderline().run()} isActive={isUnderlineActive} title=\"Underline (Ctrl+U)\">\n <Underline className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleStrike().run()} isActive={isStrikeActive} title=\"Strikethrough\">\n <Strikethrough className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCode().run()} isActive={isCodeActive} title=\"Inline Code\">\n <Code className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n <ToolbarDivider />\n\n {/* Lists */}\n <ToolbarButton onClick={() => editor.chain().focus().toggleBulletList().run()} isActive={isBulletListActive} title=\"Bullet List\">\n <List className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleOrderedList().run()} isActive={isOrderedListActive} title=\"Ordered List\">\n <ListOrdered className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n {enableTaskList && (\n <ToolbarButton onClick={() => editor.chain().focus().toggleTaskList().run()} isActive={isTaskListActive} title=\"Task List\">\n <ListChecks className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n )}\n\n <ToolbarDivider />\n\n {/* Blocks */}\n <ToolbarButton onClick={() => editor.chain().focus().toggleBlockquote().run()} isActive={isBlockquoteActive} title=\"Blockquote\">\n <Quote className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleCodeBlock().run()} isActive={isCodeBlockActive} title=\"Code Block\">\n <Code2 className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setHorizontalRule().run()} title=\"Horizontal Rule\">\n <Minus className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n <ToolbarDivider />\n\n {/* Text alignment */}\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('left').run()} isActive={isAlignLeftActive} title=\"Align Left\">\n <AlignLeft className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('center').run()} isActive={isAlignCenterActive} title=\"Align Center\">\n <AlignCenter className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('right').run()} isActive={isAlignRightActive} title=\"Align Right\">\n <AlignRight className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().setTextAlign('justify').run()} isActive={isAlignJustifyActive} title=\"Align Justify\">\n <AlignJustify className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n\n {/* Link */}\n {enableLink && (\n <>\n <ToolbarDivider />\n <LinkDialog editor={editor} />\n </>\n )}\n\n {/* Color & Highlight */}\n {(enableColor || enableHighlight) && (\n <>\n <ToolbarDivider />\n {enableColor && (\n <Popover>\n <PopoverTrigger asChild>\n <ToolbarButton title=\"Text Color\">\n <Palette className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"w-44 p-2\">\n <p className=\"mb-1.5 font-medium text-text-positive-weak text-xs\">Text Color</p>\n <div className=\"grid grid-cols-5 gap-1\">\n {TEXT_COLORS.map(color => (\n <button\n key={color.label}\n type=\"button\"\n title={color.label}\n onClick={() => {\n if (!color.value) {\n editor.chain().focus().unsetColor().run();\n } else {\n editor.chain().focus().setColor(color.value).run();\n }\n }}\n className={cn(\n 'h-6 w-6 rounded border border-border transition-transform hover:scale-110',\n !color.value && 'bg-background text-[10px] text-text-positive leading-none'\n )}\n style={color.value ? { backgroundColor: color.value } : undefined}\n >\n {!color.value && '∅'}\n </button>\n ))}\n </div>\n </PopoverContent>\n </Popover>\n )}\n {enableHighlight && (\n <Popover>\n <PopoverTrigger asChild>\n <ToolbarButton title=\"Highlight\">\n <Highlighter className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"w-44 p-2\">\n <p className=\"mb-1.5 font-medium text-text-positive-weak text-xs\">Highlight</p>\n <div className=\"grid grid-cols-5 gap-1\">\n {HIGHLIGHT_COLORS.map(color => (\n <button\n key={color.label}\n type=\"button\"\n title={color.label}\n onClick={() => editor.chain().focus().toggleHighlight({ color: color.value }).run()}\n className=\"h-6 w-6 rounded border border-border transition-transform hover:scale-110\"\n style={{ backgroundColor: color.value }}\n />\n ))}\n </div>\n <button\n type=\"button\"\n onClick={() => editor.chain().focus().unsetHighlight().run()}\n className=\"mt-1.5 w-full rounded border border-border py-0.5 text-center text-text-positive-weak text-xs hover:bg-muted-muted\"\n >\n Clear highlight\n </button>\n </PopoverContent>\n </Popover>\n )}\n </>\n )}\n </div>\n );\n}\n\nexport { TextEditorToolbar };\n","'use client';\n\nimport { useEffect, useMemo } from 'react';\n\nimport { Bold, Italic, Strikethrough, Underline as UnderlineIcon } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { CharacterCount } from '@tiptap/extension-character-count';\nimport { Highlight } from '@tiptap/extension-highlight';\nimport { Link } from '@tiptap/extension-link';\nimport { ListKeymap } from '@tiptap/extension-list-keymap';\nimport Placeholder from '@tiptap/extension-placeholder';\nimport { TaskItem } from '@tiptap/extension-task-item';\nimport { TaskList } from '@tiptap/extension-task-list';\nimport TextAlign from '@tiptap/extension-text-align';\nimport { Color, TextStyle } from '@tiptap/extension-text-style';\nimport Underline from '@tiptap/extension-underline';\nimport { type AnyExtension, EditorContent, useEditor, useEditorState } from '@tiptap/react';\nimport { BubbleMenu } from '@tiptap/react/menus';\nimport StarterKit from '@tiptap/starter-kit';\nimport { LinkDialog } from './link-dialog';\nimport { type TextEditorVariantProps, textEditorVariants } from './text-editor.variants';\nimport { TextEditorToolbar } from './toolbar';\nimport { ToolbarButton, ToolbarDivider } from './toolbar-primitives';\n\nexport interface TextEditorProps extends TextEditorVariantProps {\n value?: string;\n defaultValue?: string;\n onChange?: (html: string) => void;\n placeholder?: string;\n readOnly?: boolean;\n showToolbar?: boolean;\n className?: string;\n toolbarClassName?: string;\n editorClassName?: string;\n // Character count\n maxLength?: number;\n showCharacterCount?: boolean;\n onCharacterCount?: (stats: { characters: number; words: number }) => void;\n // Feature flags\n enableLink?: boolean;\n enableBubbleMenu?: boolean;\n enableTaskList?: boolean;\n enableHighlight?: boolean;\n enableColor?: boolean;\n}\n\nfunction TextEditor({\n value,\n defaultValue,\n onChange,\n placeholder = 'Start writing...',\n readOnly = false,\n showToolbar = true,\n variant,\n size,\n className,\n toolbarClassName,\n editorClassName,\n maxLength,\n showCharacterCount,\n onCharacterCount,\n enableLink,\n enableBubbleMenu,\n enableTaskList,\n enableHighlight,\n enableColor,\n}: TextEditorProps) {\n const needsCharCount = maxLength !== undefined || showCharacterCount || onCharacterCount !== undefined;\n const needsTextStyle = enableColor || enableHighlight;\n\n const extensions = useMemo(() => {\n const base: AnyExtension[] = [\n StarterKit,\n Underline,\n Placeholder.configure({ placeholder }),\n TextAlign.configure({ types: ['heading', 'paragraph'] }),\n ListKeymap,\n ];\n\n if (needsTextStyle) base.push(TextStyle);\n if (enableLink) {\n base.push(Link.configure({ openOnClick: false, linkOnPaste: true, defaultProtocol: 'https' }));\n }\n if (enableTaskList) {\n base.push(TaskList, TaskItem.configure({ nested: true }));\n }\n if (enableHighlight) {\n base.push(Highlight.configure({ multicolor: true }));\n }\n if (enableColor) {\n base.push(Color);\n }\n if (needsCharCount) {\n base.push(CharacterCount.configure({ limit: maxLength }));\n }\n\n return base;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [needsCharCount, placeholder, maxLength, enableHighlight, needsTextStyle, enableTaskList, enableLink, enableColor]);\n\n const editor = useEditor({\n extensions,\n content: value ?? defaultValue,\n editable: !readOnly,\n onUpdate: ({ editor: e }) => {\n onChange?.(e.getHTML());\n if (onCharacterCount) {\n const storage = e.storage.characterCount;\n onCharacterCount({ characters: storage.characters(), words: storage.words() });\n }\n },\n });\n\n useEffect(() => {\n if (!editor || value === undefined) return;\n if (editor.getHTML() === value) return;\n editor.commands.setContent(value);\n }, [editor, value]);\n\n useEffect(() => {\n if (!editor) return;\n editor.setEditable(!readOnly);\n }, [editor, readOnly]);\n\n const charCount = useEditorState({\n editor,\n selector: ctx => {\n const storage = ctx.editor?.storage?.characterCount;\n return storage ? (storage.characters() as number) : 0;\n },\n });\n\n const wordCount = useEditorState({\n editor,\n selector: ctx => {\n const storage = ctx.editor?.storage?.characterCount;\n return storage ? (storage.words() as number) : 0;\n },\n });\n\n const showCharCount = showCharacterCount || maxLength !== undefined;\n const isNearLimit = maxLength !== undefined && charCount > maxLength * 0.9;\n\n return (\n <div data-slot=\"text-editor\" className={cn('lunas-text-editor', textEditorVariants({ variant, size }), className)}>\n {showToolbar && !readOnly && editor && (\n <TextEditorToolbar\n editor={editor}\n className={toolbarClassName}\n enableLink={enableLink}\n enableTaskList={enableTaskList}\n enableHighlight={enableHighlight}\n enableColor={enableColor}\n />\n )}\n\n {enableBubbleMenu && !readOnly && editor && (\n <BubbleMenu\n editor={editor}\n options={{ placement: 'top' }}\n className={cn('flex items-center gap-0.5 rounded-md border border-border bg-popover p-1 shadow-dropdown')}\n >\n <ToolbarButton onClick={() => editor.chain().focus().toggleBold().run()} isActive={editor.isActive('bold')} title=\"Bold (Ctrl+B)\">\n <Bold className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleItalic().run()} isActive={editor.isActive('italic')} title=\"Italic (Ctrl+I)\">\n <Italic className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleUnderline().run()} isActive={editor.isActive('underline')} title=\"Underline (Ctrl+U)\">\n <UnderlineIcon className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n <ToolbarButton onClick={() => editor.chain().focus().toggleStrike().run()} isActive={editor.isActive('strike')} title=\"Strikethrough\">\n <Strikethrough className=\"h-3.5 w-3.5\" />\n </ToolbarButton>\n {enableLink && (\n <>\n <ToolbarDivider />\n <LinkDialog editor={editor} />\n </>\n )}\n </BubbleMenu>\n )}\n\n <EditorContent editor={editor} data-slot=\"text-editor-content\" className={cn('flex-1 bg-white text-sm text-text-positive', editorClassName)} />\n\n {showCharCount && needsCharCount && (\n <div\n data-slot=\"text-editor-footer\"\n className=\"flex items-center justify-between border-border border-t bg-muted-muted/30 px-3 py-1 text-text-positive-weak text-xs\"\n >\n <span>{wordCount} words</span>\n <span data-warning={isNearLimit || undefined} className=\"data-warning:text-warning-strong\">\n {charCount}\n {maxLength ? ` / ${maxLength}` : ''} characters\n </span>\n </div>\n )}\n </div>\n );\n}\n\nexport { TextEditor };\n"],"mappings":"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"}
@@ -1,48 +0,0 @@
1
- import { VariantProps } from "class-variance-authority";
2
- import * as react37 from "react";
3
- import { ComponentPropsWithoutRef } from "react";
4
- import * as class_variance_authority_types2 from "class-variance-authority/types";
5
-
6
- //#region packages/components/typography/paragraph.d.ts
7
- declare const paragraphVariants: (props?: ({
8
- variant?: "xs" | "sm" | "lg" | "lead" | "p" | "muted" | null | undefined;
9
- } & class_variance_authority_types2.ClassProp) | undefined) => string;
10
- /**
11
- * Props for the {@link Paragraph} component.
12
- *
13
- * Extends all native `<p>` HTML attributes plus the CVA variant.
14
- *
15
- * @property variant - Visual style variant.
16
- * - `'lead'` — large, medium-weight introductory text (default size `text-base` / `md:text-lg`)
17
- * - `'lg'` — large normal-weight text
18
- * - `'p'` — standard body text (default)
19
- * - `'sm'` — small normal-weight text with tighter leading
20
- * - `'muted'` — subdued colour, standard body size
21
- * - `'xs'` — extra-small text in a muted colour
22
- */
23
- type ParagraphProps = ComponentPropsWithoutRef<'p'> & VariantProps<typeof paragraphVariants>;
24
- /**
25
- * A styled `<p>` element with semantic size and weight variants for body text.
26
- *
27
- * @example
28
- * ```tsx
29
- * import { Paragraph } from '@customafk/lunas-ui/typography/paragraph';
30
- *
31
- * // Default body paragraph
32
- * <Paragraph>This is body text.</Paragraph>
33
- *
34
- * // Lead paragraph with larger, medium-weight text
35
- * <Paragraph variant="lead">Introducing our new feature.</Paragraph>
36
- *
37
- * // Muted helper text
38
- * <Paragraph variant="muted">Last updated 3 days ago.</Paragraph>
39
- * ```
40
- */
41
- declare const Paragraph: ({
42
- variant,
43
- className,
44
- ...props
45
- }: ParagraphProps) => react37.JSX.Element;
46
- //#endregion
47
- export { Paragraph, ParagraphProps, paragraphVariants };
48
- //# sourceMappingURL=paragraph.d.ts.map
@@ -1 +0,0 @@
1
- "use client";import{n as e,t}from"../paragraph-ESjXXqHU.js";export{t as Paragraph,e as paragraphVariants};
@@ -1,43 +0,0 @@
1
- import { JSX, ReactNode } from "react";
2
-
3
- //#region packages/components/typography/title.d.ts
4
- type TitleProps = {
5
- /**
6
- * Heading level that maps to the rendered HTML tag (`h1`–`h6`) and the corresponding
7
- * typographic scale variant.
8
- * - `1` — `text-3xl / md:text-4xl`, bold (default)
9
- * - `2` — `text-2xl / md:text-3xl`, semibold
10
- * - `3` — `text-xl / md:text-2xl`, semibold
11
- * - `4` — `text-lg / md:text-xl`, semibold
12
- * - `5` — `text-base / md:text-lg`, semibold
13
- * - `6` — `text-sm / md:text-base`, semibold
14
- * @default 1
15
- */
16
- level?: 1 | 2 | 3 | 4 | 5 | 6;
17
- /** Additional Tailwind classes merged with the variant classes. */
18
- className?: string;
19
- /** Content rendered inside the heading element. */
20
- children?: ReactNode;
21
- };
22
- /**
23
- * A semantic heading component that renders the correct `h1`–`h6` element and applies a matched typographic scale.
24
- *
25
- * @example
26
- * ```tsx
27
- * import { Title } from '@customafk/lunas-ui/typography/title';
28
- *
29
- * // Page-level heading (renders <h1>)
30
- * <Title level={1}>Welcome to Lunas</Title>
31
- *
32
- * // Section sub-heading (renders <h3>)
33
- * <Title level={3}>Account Settings</Title>
34
- * ```
35
- */
36
- declare const Title: ({
37
- level,
38
- className,
39
- children
40
- }: TitleProps) => JSX.Element;
41
- //#endregion
42
- export { Title, TitleProps };
43
- //# sourceMappingURL=title.d.ts.map
@@ -1,2 +0,0 @@
1
- "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{cva as t}from"class-variance-authority";import{jsx as n}from"react/jsx-runtime";const r=t(`scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors`,{variants:{level:{1:`text-3xl leading-tight font-bold md:text-4xl`,2:`text-2xl leading-tight font-semibold md:text-3xl`,3:`text-xl leading-snug font-semibold md:text-2xl`,4:`text-lg leading-snug font-semibold md:text-xl`,5:`text-base leading-normal font-semibold md:text-lg`,6:`text-sm leading-normal font-semibold md:text-base`}},defaultVariants:{level:1}}),i=({level:t=1,className:i,children:a})=>n(`h`+t,{"data-slot":`title`,className:e(r({level:t}),i),children:a});export{i as Title};
2
- //# sourceMappingURL=title.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"title.js","names":[],"sources":["../../packages/components/typography/title.tsx"],"sourcesContent":["'use client';\n\nimport type { JSX, ReactNode } from 'react';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { cva } from 'class-variance-authority';\n\nconst titleVariants = cva('scroll-m-20 text-start text-balance text-text-positive-strong tracking-tight transition-colors', {\n variants: {\n level: {\n 1: 'text-3xl leading-tight font-bold md:text-4xl',\n 2: 'text-2xl leading-tight font-semibold md:text-3xl',\n 3: 'text-xl leading-snug font-semibold md:text-2xl',\n 4: 'text-lg leading-snug font-semibold md:text-xl',\n 5: 'text-base leading-normal font-semibold md:text-lg',\n 6: 'text-sm leading-normal font-semibold md:text-base',\n },\n },\n defaultVariants: {\n level: 1,\n },\n});\n\nexport type TitleProps = {\n /**\n * Heading level that maps to the rendered HTML tag (`h1`–`h6`) and the corresponding\n * typographic scale variant.\n * - `1` — `text-3xl / md:text-4xl`, bold (default)\n * - `2` — `text-2xl / md:text-3xl`, semibold\n * - `3` — `text-xl / md:text-2xl`, semibold\n * - `4` — `text-lg / md:text-xl`, semibold\n * - `5` — `text-base / md:text-lg`, semibold\n * - `6` — `text-sm / md:text-base`, semibold\n * @default 1\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** Additional Tailwind classes merged with the variant classes. */\n className?: string;\n /** Content rendered inside the heading element. */\n children?: ReactNode;\n};\n\n/**\n * A semantic heading component that renders the correct `h1`–`h6` element and applies a matched typographic scale.\n *\n * @example\n * ```tsx\n * import { Title } from '@customafk/lunas-ui/typography/title';\n *\n * // Page-level heading (renders <h1>)\n * <Title level={1}>Welcome to Lunas</Title>\n *\n * // Section sub-heading (renders <h3>)\n * <Title level={3}>Account Settings</Title>\n * ```\n */\nexport const Title = ({ level = 1, className, children }: TitleProps) => {\n const Comp = ('h' + level) as keyof JSX.IntrinsicElements;\n return (\n <Comp data-slot=\"title\" className={cn(titleVariants({ level }), className)}>\n {children}\n </Comp>\n );\n};\n"],"mappings":"wJAMA,MAAM,EAAgB,EAAI,iGAAkG,CAC1H,SAAU,CACR,MAAO,CACL,EAAG,+CACH,EAAG,mDACH,EAAG,iDACH,EAAG,gDACH,EAAG,oDACH,EAAG,oDACJ,CACF,CACD,gBAAiB,CACf,MAAO,EACR,CACF,CAAC,CAmCW,GAAS,CAAE,QAAQ,EAAG,YAAW,cAG1C,EAFY,IAAM,EAAA,CAEZ,YAAU,QAAQ,UAAW,EAAG,EAAc,CAAE,QAAO,CAAC,CAAE,EAAU,CACvE,YACI"}
@@ -1,90 +0,0 @@
1
- import * as react43 from "react";
2
- import { AlertDialog as AlertDialog$1 } from "radix-ui";
3
-
4
- //#region packages/components/ui/alert-dialog.d.ts
5
-
6
- /**
7
- * Accessible alert dialog built on Radix UI's AlertDialog primitives, requiring explicit user confirmation before a destructive action can proceed.
8
- *
9
- * @example
10
- * ```tsx
11
- * import {
12
- * AlertDialog, AlertDialogTrigger, AlertDialogContent,
13
- * AlertDialogHeader, AlertDialogTitle, AlertDialogDescription,
14
- * AlertDialogFooter, AlertDialogAction, AlertDialogCancel,
15
- * } from '@customafk/lunas-ui/ui/alert-dialog';
16
- * import { Button } from '@customafk/lunas-ui/ui/button';
17
- *
18
- * <AlertDialog>
19
- * <AlertDialogTrigger asChild>
20
- * <Button variant="solid" color="danger">Delete account</Button>
21
- * </AlertDialogTrigger>
22
- * <AlertDialogContent>
23
- * <AlertDialogHeader>
24
- * <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>
25
- * <AlertDialogDescription>
26
- * This action cannot be undone. Your account will be permanently deleted.
27
- * </AlertDialogDescription>
28
- * </AlertDialogHeader>
29
- * <AlertDialogFooter>
30
- * <AlertDialogCancel>Cancel</AlertDialogCancel>
31
- * <AlertDialogAction>Continue</AlertDialogAction>
32
- * </AlertDialogFooter>
33
- * </AlertDialogContent>
34
- * </AlertDialog>
35
- * ```
36
- */
37
- declare function AlertDialog({
38
- ...props
39
- }: React.ComponentProps<typeof AlertDialog$1.Root>): react43.JSX.Element;
40
- /** Element that opens the alert dialog when clicked; typically wrapped with `asChild` around a `Button`. */
41
- declare function AlertDialogTrigger({
42
- ...props
43
- }: React.ComponentProps<typeof AlertDialog$1.Trigger>): react43.JSX.Element;
44
- /** Renders alert dialog overlay and content into a portal outside the normal React tree. */
45
- declare function AlertDialogPortal({
46
- ...props
47
- }: React.ComponentProps<typeof AlertDialog$1.Portal>): react43.JSX.Element;
48
- /** Semi-transparent backdrop rendered behind the alert dialog panel; pointer events are disabled to prevent accidental dismissal. */
49
- declare function AlertDialogOverlay({
50
- className,
51
- ...props
52
- }: React.ComponentProps<typeof AlertDialog$1.Overlay>): react43.JSX.Element;
53
- /** Animated panel that contains the alert dialog body; renders via `AlertDialogPortal` over `AlertDialogOverlay`. */
54
- declare function AlertDialogContent({
55
- className,
56
- ...props
57
- }: React.ComponentProps<typeof AlertDialog$1.Content>): react43.JSX.Element;
58
- /** Layout wrapper for the alert dialog title and description. */
59
- declare function AlertDialogHeader({
60
- className,
61
- ...props
62
- }: React.ComponentProps<'div'>): react43.JSX.Element;
63
- /** Layout wrapper for the cancel and action buttons at the bottom of the alert dialog. */
64
- declare function AlertDialogFooter({
65
- className,
66
- ...props
67
- }: React.ComponentProps<'div'>): react43.JSX.Element;
68
- /** Accessible heading for the alert dialog, styled with the h3 heading variant. */
69
- declare function AlertDialogTitle({
70
- className,
71
- ...props
72
- }: React.ComponentProps<typeof AlertDialog$1.Title>): react43.JSX.Element;
73
- /** Muted supporting text that explains the consequences of the destructive action. */
74
- declare function AlertDialogDescription({
75
- className,
76
- ...props
77
- }: React.ComponentProps<typeof AlertDialog$1.Description>): react43.JSX.Element;
78
- /** Confirm button that closes the dialog and proceeds with the action; auto-focused and styled as the primary action. */
79
- declare function AlertDialogAction({
80
- className,
81
- ...props
82
- }: React.ComponentProps<typeof AlertDialog$1.Action>): react43.JSX.Element;
83
- /** Cancel button that closes the alert dialog without performing the destructive action. */
84
- declare function AlertDialogCancel({
85
- className,
86
- ...props
87
- }: React.ComponentProps<typeof AlertDialog$1.Cancel>): react43.JSX.Element;
88
- //#endregion
89
- export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger };
90
- //# sourceMappingURL=alert-dialog.d.ts.map
@@ -1,2 +0,0 @@
1
- "use client";import{n as e}from"../button.variants-BruXd4VM.js";import{t}from"../heading-Bw3eo6IT.js";import{n}from"../paragraph-ESjXXqHU.js";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";import{AlertDialog as o}from"radix-ui";function s({...e}){return i(o.Root,{"data-slot":`alert-dialog`,...e})}function c({...e}){return i(o.Trigger,{"data-slot":`alert-dialog-trigger`,...e})}function l({...e}){return i(o.Portal,{"data-slot":`alert-dialog-portal`,...e})}function u({className:e,...t}){return i(o.Overlay,{"data-slot":`alert-dialog-overlay`,style:{pointerEvents:`none`},className:r(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=open]:fade-in-0`,e),...t})}function d({className:e,...t}){return a(l,{children:[i(u,{}),i(o.Content,{"data-slot":`alert-dialog-content`,className:r(`bg-background`,`fixed z-50`,`-translate-1/2 top-1/2 left-1/2`,`grid w-full max-w-[calc(100%-2rem)] sm:max-w-lg`,`gap-4 rounded-lg p-6 shadow-lg duration-200`,`data-[state=open]:animate-in`,`data-[state=open]:fade-in-0`,`data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0`,`data-[state=closed]:zoom-out-95`,e),...t})]})}function f({className:e,...t}){return i(`div`,{"data-slot":`alert-dialog-header`,className:r(`flex flex-col gap-2 text-center sm:text-left`,e),...t})}function p({className:e,...t}){return i(`div`,{"data-slot":`alert-dialog-footer`,className:r(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...t})}function m({className:e,...n}){return i(o.Title,{"data-slot":`alert-dialog-title`,className:r(t({level:`h3`}),e),...n})}function h({className:e,...t}){return i(o.Description,{"data-slot":`alert-dialog-description`,className:r(n({variant:`muted`}),`not-first:mt-0`,e),...t})}function g({className:t,...n}){return i(o.Action,{className:r(e(),`min-w-24`,t),...n,autoFocus:!0,tabIndex:1})}function _({className:t,...n}){return i(o.Cancel,{className:r(e({variant:`outline`,color:`muted`}),`min-w-24`,t),...n})}export{s as AlertDialog,g as AlertDialogAction,_ as AlertDialogCancel,d as AlertDialogContent,h as AlertDialogDescription,p as AlertDialogFooter,f as AlertDialogHeader,u as AlertDialogOverlay,l as AlertDialogPortal,m as AlertDialogTitle,c as AlertDialogTrigger};
2
- //# sourceMappingURL=alert-dialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"alert-dialog.js","names":["AlertDialogPrimitive"],"sources":["../../packages/components/ui/alert-dialog.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AlertDialog as AlertDialogPrimitive } from 'radix-ui';\nimport { headingVariants } from '../typography/heading';\nimport { paragraphVariants } from '../typography/paragraph';\nimport { buttonVariants } from './button.variants';\n\n/**\n * Accessible alert dialog built on Radix UI's AlertDialog primitives, requiring explicit user confirmation before a destructive action can proceed.\n *\n * @example\n * ```tsx\n * import {\n * AlertDialog, AlertDialogTrigger, AlertDialogContent,\n * AlertDialogHeader, AlertDialogTitle, AlertDialogDescription,\n * AlertDialogFooter, AlertDialogAction, AlertDialogCancel,\n * } from '@customafk/lunas-ui/ui/alert-dialog';\n * import { Button } from '@customafk/lunas-ui/ui/button';\n *\n * <AlertDialog>\n * <AlertDialogTrigger asChild>\n * <Button variant=\"solid\" color=\"danger\">Delete account</Button>\n * </AlertDialogTrigger>\n * <AlertDialogContent>\n * <AlertDialogHeader>\n * <AlertDialogTitle>Are you absolutely sure?</AlertDialogTitle>\n * <AlertDialogDescription>\n * This action cannot be undone. Your account will be permanently deleted.\n * </AlertDialogDescription>\n * </AlertDialogHeader>\n * <AlertDialogFooter>\n * <AlertDialogCancel>Cancel</AlertDialogCancel>\n * <AlertDialogAction>Continue</AlertDialogAction>\n * </AlertDialogFooter>\n * </AlertDialogContent>\n * </AlertDialog>\n * ```\n */\nfunction AlertDialog({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Root>) {\n return <AlertDialogPrimitive.Root data-slot=\"alert-dialog\" {...props} />;\n}\n\n/** Element that opens the alert dialog when clicked; typically wrapped with `asChild` around a `Button`. */\nfunction AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>) {\n return <AlertDialogPrimitive.Trigger data-slot=\"alert-dialog-trigger\" {...props} />;\n}\n\n/** Renders alert dialog overlay and content into a portal outside the normal React tree. */\nfunction AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>) {\n return <AlertDialogPrimitive.Portal data-slot=\"alert-dialog-portal\" {...props} />;\n}\n\n/** Semi-transparent backdrop rendered behind the alert dialog panel; pointer events are disabled to prevent accidental dismissal. */\nfunction AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>) {\n return (\n <AlertDialogPrimitive.Overlay\n data-slot=\"alert-dialog-overlay\"\n style={{ pointerEvents: 'none' }}\n className={cn(\n 'fixed inset-0 z-50 bg-black/50',\n 'data-[state=open]:animate-in',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=open]:fade-in-0',\n className\n )}\n {...props}\n />\n );\n}\n\n/** Animated panel that contains the alert dialog body; renders via `AlertDialogPortal` over `AlertDialogOverlay`. */\nfunction AlertDialogContent({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content>) {\n return (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.Content\n data-slot=\"alert-dialog-content\"\n className={cn(\n 'bg-background',\n 'fixed z-50',\n '-translate-1/2 top-1/2 left-1/2',\n 'grid w-full max-w-[calc(100%-2rem)] sm:max-w-lg',\n 'gap-4 rounded-lg p-6 shadow-lg duration-200',\n 'data-[state=open]:animate-in',\n 'data-[state=open]:fade-in-0',\n 'data-[state=open]:zoom-in-95',\n 'data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0',\n 'data-[state=closed]:zoom-out-95',\n className\n )}\n {...props}\n />\n </AlertDialogPortal>\n );\n}\n\n/** Layout wrapper for the alert dialog title and description. */\nfunction AlertDialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"alert-dialog-header\" className={cn('flex flex-col gap-2 text-center sm:text-left', className)} {...props} />;\n}\n\n/** Layout wrapper for the cancel and action buttons at the bottom of the alert dialog. */\nfunction AlertDialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"alert-dialog-footer\" className={cn('flex flex-col-reverse gap-2 sm:flex-row sm:justify-end', className)} {...props} />;\n}\n\n/** Accessible heading for the alert dialog, styled with the h3 heading variant. */\nfunction AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>) {\n return <AlertDialogPrimitive.Title data-slot=\"alert-dialog-title\" className={cn(headingVariants({ level: 'h3' }), className)} {...props} />;\n}\n\n/** Muted supporting text that explains the consequences of the destructive action. */\nfunction AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>) {\n return (\n <AlertDialogPrimitive.Description\n data-slot=\"alert-dialog-description\"\n className={cn(paragraphVariants({ variant: 'muted' }), 'not-first:mt-0', className)}\n {...props}\n />\n );\n}\n\n/** Confirm button that closes the dialog and proceeds with the action; auto-focused and styled as the primary action. */\nfunction AlertDialogAction({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action>) {\n return <AlertDialogPrimitive.Action className={cn(buttonVariants(), 'min-w-24', className)} {...props} autoFocus tabIndex={1} />;\n}\n\n/** Cancel button that closes the alert dialog without performing the destructive action. */\nfunction AlertDialogCancel({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Cancel>) {\n return <AlertDialogPrimitive.Cancel className={cn(buttonVariants({ variant: 'outline', color: 'muted' }), 'min-w-24', className)} {...props} />;\n}\n\nexport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogOverlay,\n AlertDialogPortal,\n AlertDialogTitle,\n AlertDialogTrigger,\n};\n"],"mappings":"2RAwCA,SAAS,EAAY,CAAE,GAAG,GAAiE,CACzF,OAAO,EAACA,EAAqB,KAAA,CAAK,YAAU,eAAe,GAAI,GAAS,CAI1E,SAAS,EAAmB,CAAE,GAAG,GAAoE,CACnG,OAAO,EAACA,EAAqB,QAAA,CAAQ,YAAU,uBAAuB,GAAI,GAAS,CAIrF,SAAS,EAAkB,CAAE,GAAG,GAAmE,CACjG,OAAO,EAACA,EAAqB,OAAA,CAAO,YAAU,sBAAsB,GAAI,GAAS,CAInF,SAAS,EAAmB,CAAE,YAAW,GAAG,GAAoE,CAC9G,OACE,EAACA,EAAqB,QAAA,CACpB,YAAU,uBACV,MAAO,CAAE,cAAe,OAAQ,CAChC,UAAW,EACT,iCACA,+BACA,kCACA,iCACA,8BACA,EACD,CACD,GAAI,GACJ,CAKN,SAAS,EAAmB,CAAE,YAAW,GAAG,GAAoE,CAC9G,OACE,EAAC,EAAA,CAAA,SAAA,CACC,EAAC,EAAA,EAAA,CAAqB,CACtB,EAACA,EAAqB,QAAA,CACpB,YAAU,uBACV,UAAW,EACT,gBACA,aACA,kCACA,kDACA,8CACA,+BACA,8BACA,+BACA,kCACA,iCACA,kCACA,EACD,CACD,GAAI,GACJ,CAAA,CAAA,CACgB,CAKxB,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAsC,CAC/E,OAAO,EAAC,MAAA,CAAI,YAAU,sBAAsB,UAAW,EAAG,+CAAgD,EAAU,CAAE,GAAI,GAAS,CAIrI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAsC,CAC/E,OAAO,EAAC,MAAA,CAAI,YAAU,sBAAsB,UAAW,EAAG,yDAA0D,EAAU,CAAE,GAAI,GAAS,CAI/I,SAAS,EAAiB,CAAE,YAAW,GAAG,GAAkE,CAC1G,OAAO,EAACA,EAAqB,MAAA,CAAM,YAAU,qBAAqB,UAAW,EAAG,EAAgB,CAAE,MAAO,KAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS,CAI7I,SAAS,EAAuB,CAAE,YAAW,GAAG,GAAwE,CACtH,OACE,EAACA,EAAqB,YAAA,CACpB,YAAU,2BACV,UAAW,EAAG,EAAkB,CAAE,QAAS,QAAS,CAAC,CAAE,iBAAkB,EAAU,CACnF,GAAI,GACJ,CAKN,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAqB,OAAA,CAAO,UAAW,EAAG,GAAgB,CAAE,WAAY,EAAU,CAAE,GAAI,EAAO,UAAA,GAAU,SAAU,GAAK,CAIlI,SAAS,EAAkB,CAAE,YAAW,GAAG,GAAmE,CAC5G,OAAO,EAACA,EAAqB,OAAA,CAAO,UAAW,EAAG,EAAe,CAAE,QAAS,UAAW,MAAO,QAAS,CAAC,CAAE,WAAY,EAAU,CAAE,GAAI,GAAS"}
@@ -1,2 +0,0 @@
1
- import { a as AlertTitle, i as AlertProps, n as AlertDescription, o as AlertTitleProps, r as AlertDescriptionProps, t as Alert } from "../alert-DXmXDeGs.js";
2
- export { Alert, AlertDescription, AlertDescriptionProps, AlertProps, AlertTitle, AlertTitleProps };
package/dist/ui/alert.js DELETED
@@ -1 +0,0 @@
1
- "use client";import{n as e,r as t,t as n}from"../alert-D5VmhFT9.js";export{n as Alert,e as AlertDescription,t as AlertTitle};
@@ -1,24 +0,0 @@
1
- import * as react57 from "react";
2
- import { AspectRatio as AspectRatio$1 } from "radix-ui";
3
-
4
- //#region packages/components/ui/aspect-ratio.d.ts
5
-
6
- /**
7
- * Constrains its child to a given aspect ratio using the Radix UI AspectRatio primitive.
8
- *
9
- * @example
10
- * ```tsx
11
- * import { AspectRatio } from '@customafk/lunas-ui/ui/aspect-ratio';
12
- *
13
- * <AspectRatio ratio={16 / 9}>
14
- * <img src="/banner.jpg" alt="Banner" className="size-full object-cover" />
15
- * </AspectRatio>
16
- * ```
17
- */
18
- declare function AspectRatio({
19
- className,
20
- ...props
21
- }: React.ComponentProps<typeof AspectRatio$1.Root>): react57.JSX.Element;
22
- //#endregion
23
- export { AspectRatio };
24
- //# sourceMappingURL=aspect-ratio.d.ts.map
@@ -1,2 +0,0 @@
1
- "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{AspectRatio as n}from"radix-ui";function r({className:r,...i}){return t(n.Root,{"data-slot":`aspect-ratio`,className:e(`bg-secondary-muted rounded-md`,r),...i})}export{r as AspectRatio};
2
- //# sourceMappingURL=aspect-ratio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aspect-ratio.js","names":["AspectRatioPrimitive"],"sources":["../../packages/components/ui/aspect-ratio.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { AspectRatio as AspectRatioPrimitive } from 'radix-ui';\n\n/**\n * Constrains its child to a given aspect ratio using the Radix UI AspectRatio primitive.\n *\n * @example\n * ```tsx\n * import { AspectRatio } from '@customafk/lunas-ui/ui/aspect-ratio';\n *\n * <AspectRatio ratio={16 / 9}>\n * <img src=\"/banner.jpg\" alt=\"Banner\" className=\"size-full object-cover\" />\n * </AspectRatio>\n * ```\n */\nfunction AspectRatio({ className, ...props }: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return <AspectRatioPrimitive.Root data-slot=\"aspect-ratio\" className={cn('bg-secondary-muted rounded-md', className)} {...props} />;\n}\n\nexport { AspectRatio };\n"],"mappings":"gJAiBA,SAAS,EAAY,CAAE,YAAW,GAAG,GAAiE,CACpG,OAAO,EAACA,EAAqB,KAAA,CAAK,YAAU,eAAe,UAAW,EAAG,gCAAiC,EAAU,CAAE,GAAI,GAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar.cjs","names":["AvatarPrimitive"],"sources":["../../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\n/**\n * Circular user avatar built on Radix UI's Avatar primitives, falling back to initials or an icon when the image fails to load.\n *\n * @example\n * ```tsx\n * import { Avatar, AvatarImage, AvatarFallback } from '@customafk/lunas-ui/ui/avatar';\n *\n * <Avatar>\n * <AvatarImage src=\"https://example.com/avatar.jpg\" alt=\"Jane Doe\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n * ```\n */\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\n/** The avatar photo; hidden automatically by Radix UI when the image fails to load, revealing `AvatarFallback`. */\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\n/** Fallback content (e.g. initials) displayed inside the avatar when the image is unavailable or still loading. */\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"2JAkBA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,KAAA,CAAK,YAAU,SAAS,WAAA,EAAA,EAAA,IAAc,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAIvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAAA,EAAA,KAACA,EAAAA,OAAgB,MAAA,CAAM,YAAU,eAAe,WAAA,EAAA,EAAA,IAAc,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAI3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAAA,EAAA,KAACA,EAAAA,OAAgB,SAAA,CACf,YAAU,kBACV,WAAA,EAAA,EAAA,IAAc,mEAAoE,EAAU,CAC5F,GAAI,GACJ"}
@@ -1,35 +0,0 @@
1
- import * as react54 from "react";
2
- import { Avatar as Avatar$1 } from "radix-ui";
3
-
4
- //#region packages/components/ui/avatar.d.ts
5
-
6
- /**
7
- * Circular user avatar built on Radix UI's Avatar primitives, falling back to initials or an icon when the image fails to load.
8
- *
9
- * @example
10
- * ```tsx
11
- * import { Avatar, AvatarImage, AvatarFallback } from '@customafk/lunas-ui/ui/avatar';
12
- *
13
- * <Avatar>
14
- * <AvatarImage src="https://example.com/avatar.jpg" alt="Jane Doe" />
15
- * <AvatarFallback>JD</AvatarFallback>
16
- * </Avatar>
17
- * ```
18
- */
19
- declare function Avatar({
20
- className,
21
- ...props
22
- }: React.ComponentProps<typeof Avatar$1.Root>): react54.JSX.Element;
23
- /** The avatar photo; hidden automatically by Radix UI when the image fails to load, revealing `AvatarFallback`. */
24
- declare function AvatarImage({
25
- className,
26
- ...props
27
- }: React.ComponentProps<typeof Avatar$1.Image>): react54.JSX.Element;
28
- /** Fallback content (e.g. initials) displayed inside the avatar when the image is unavailable or still loading. */
29
- declare function AvatarFallback({
30
- className,
31
- ...props
32
- }: React.ComponentProps<typeof Avatar$1.Fallback>): react54.JSX.Element;
33
- //#endregion
34
- export { Avatar, AvatarFallback, AvatarImage };
35
- //# sourceMappingURL=avatar.d.ts.map
package/dist/ui/avatar.js DELETED
@@ -1,2 +0,0 @@
1
- "use client";import{cn as e}from"@customafk/react-toolkit/utils";import{jsx as t}from"react/jsx-runtime";import{Avatar as n}from"radix-ui";function r({className:r,...i}){return t(n.Root,{"data-slot":`avatar`,className:e(`relative flex size-8 shrink-0 overflow-hidden rounded-full`,r),...i})}function i({className:r,...i}){return t(n.Image,{"data-slot":`avatar-image`,className:e(`aspect-square size-full`,r),...i})}function a({className:r,...i}){return t(n.Fallback,{"data-slot":`avatar-fallback`,className:e(`bg-muted flex size-full items-center justify-center rounded-full`,r),...i})}export{r as Avatar,a as AvatarFallback,i as AvatarImage};
2
- //# sourceMappingURL=avatar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"avatar.js","names":["AvatarPrimitive"],"sources":["../../packages/components/ui/avatar.tsx"],"sourcesContent":["'use client';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Avatar as AvatarPrimitive } from 'radix-ui';\n\n/**\n * Circular user avatar built on Radix UI's Avatar primitives, falling back to initials or an icon when the image fails to load.\n *\n * @example\n * ```tsx\n * import { Avatar, AvatarImage, AvatarFallback } from '@customafk/lunas-ui/ui/avatar';\n *\n * <Avatar>\n * <AvatarImage src=\"https://example.com/avatar.jpg\" alt=\"Jane Doe\" />\n * <AvatarFallback>JD</AvatarFallback>\n * </Avatar>\n * ```\n */\nfunction Avatar({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return <AvatarPrimitive.Root data-slot=\"avatar\" className={cn('relative flex size-8 shrink-0 overflow-hidden rounded-full', className)} {...props} />;\n}\n\n/** The avatar photo; hidden automatically by Radix UI when the image fails to load, revealing `AvatarFallback`. */\nfunction AvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return <AvatarPrimitive.Image data-slot=\"avatar-image\" className={cn('aspect-square size-full', className)} {...props} />;\n}\n\n/** Fallback content (e.g. initials) displayed inside the avatar when the image is unavailable or still loading. */\nfunction AvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn('bg-muted flex size-full items-center justify-center rounded-full', className)}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarFallback, AvatarImage };\n"],"mappings":"2IAkBA,SAAS,EAAO,CAAE,YAAW,GAAG,GAA4D,CAC1F,OAAO,EAACA,EAAgB,KAAA,CAAK,YAAU,SAAS,UAAW,EAAG,6DAA8D,EAAU,CAAE,GAAI,GAAS,CAIvJ,SAAS,EAAY,CAAE,YAAW,GAAG,GAA6D,CAChG,OAAO,EAACA,EAAgB,MAAA,CAAM,YAAU,eAAe,UAAW,EAAG,0BAA2B,EAAU,CAAE,GAAI,GAAS,CAI3H,SAAS,EAAe,CAAE,YAAW,GAAG,GAAgE,CACtG,OACE,EAACA,EAAgB,SAAA,CACf,YAAU,kBACV,UAAW,EAAG,mEAAoE,EAAU,CAC5F,GAAI,GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"badge.cjs","names":[],"sources":["../../packages/components/ui/badge.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center font-medium transition-colors duration-150 focus:ring-2 focus:ring-offset-2 focus:outline-hidden focus:ring-ring forced-colors:outline',\n {\n variants: {\n variant: {\n solid: 'shadow-btn',\n soft: '',\n outline: 'bg-transparent border',\n },\n color: {\n primary: '',\n secondary: '',\n muted: '',\n accent: '',\n info: '',\n success: '',\n warning: '',\n danger: '',\n },\n size: {\n xs: 'text-[10px]/3 px-1.5 py-0.5 gap-1',\n sm: 'text-xs px-2 py-0.5 gap-1',\n md: 'text-sm px-2.5 py-0.5 gap-1.5',\n lg: 'text-base px-3 py-1 gap-1.5',\n xl: 'text-lg px-3.5 py-1 gap-1.5',\n },\n pill: {\n true: 'rounded-full',\n false: 'rounded-sm',\n },\n },\n defaultVariants: {\n variant: 'solid',\n color: 'primary',\n size: 'md',\n pill: true,\n },\n compoundVariants: [\n // solid\n { variant: 'solid', color: 'primary', className: 'bg-primary text-primary-foreground' },\n { variant: 'solid', color: 'secondary', className: 'bg-secondary text-secondary-foreground' },\n { variant: 'solid', color: 'muted', className: 'bg-muted text-text-negative' },\n { variant: 'solid', color: 'accent', className: 'bg-accent text-text-negative' },\n { variant: 'solid', color: 'info', className: 'bg-info text-info-foreground' },\n { variant: 'solid', color: 'success', className: 'bg-success text-success-foreground' },\n { variant: 'solid', color: 'warning', className: 'bg-warning text-warning-foreground' },\n { variant: 'solid', color: 'danger', className: 'bg-danger text-danger-foreground' },\n // soft\n { variant: 'soft', color: 'primary', className: 'bg-primary-bg-subtle text-primary-intense' },\n { variant: 'soft', color: 'secondary', className: 'bg-secondary-bg-subtle text-secondary-intense' },\n { variant: 'soft', color: 'muted', className: 'bg-muted-bg-subtle text-muted-intense' },\n { variant: 'soft', color: 'accent', className: 'bg-accent-bg-subtle text-accent-intense' },\n { variant: 'soft', color: 'info', className: 'bg-info-bg-subtle text-info-intense' },\n { variant: 'soft', color: 'success', className: 'bg-success-bg-subtle text-success-intense' },\n { variant: 'soft', color: 'warning', className: 'bg-warning-bg-subtle text-warning-intense' },\n { variant: 'soft', color: 'danger', className: 'bg-danger-bg-subtle text-danger-intense' },\n // outline\n { variant: 'outline', color: 'primary', className: 'border-primary text-primary' },\n { variant: 'outline', color: 'secondary', className: 'border-secondary text-secondary' },\n { variant: 'outline', color: 'muted', className: 'border-muted text-muted' },\n { variant: 'outline', color: 'accent', className: 'border-accent text-accent' },\n { variant: 'outline', color: 'info', className: 'border-info text-info' },\n { variant: 'outline', color: 'success', className: 'border-success text-success' },\n { variant: 'outline', color: 'warning', className: 'border-warning text-warning' },\n { variant: 'outline', color: 'danger', className: 'border-danger text-danger' },\n ],\n }\n);\n\n/**\n * Props for the `Badge` component.\n *\n * @property variant - Visual fill style — `'solid'` (filled, default), `'soft'` (tinted background), or `'outline'` (border only).\n * @property color - Semantic color token — `'primary'` | `'secondary'` | `'muted'` | `'accent'` | `'info'` | `'success'` | `'warning'` | `'danger'`. Defaults to `'primary'`.\n * @property size - Badge size — `'xs'` | `'sm'` | `'md'` (default) | `'lg'` | `'xl'`.\n * @property pill - When `true` (default), renders with fully rounded corners (`rounded-full`); when `false`, uses `rounded-sm`.\n */\nexport type BadgeProps = VariantProps<typeof badgeVariants> & React.ComponentPropsWithoutRef<'span'>;\n\n/**\n * Inline status label rendered as a `<span>` with CVA-driven variant, color, size, and shape options.\n *\n * @example\n * ```tsx\n * import { Badge } from '@customafk/lunas-ui/ui/badge';\n *\n * <Badge variant=\"soft\" color=\"success\" size=\"sm\">Active</Badge>\n * <Badge variant=\"outline\" color=\"danger\">Overdue</Badge>\n * ```\n */\nfunction Badge({ className, variant, color, size, pill, ...props }: BadgeProps) {\n return <span className={cn(badgeVariants({ variant, color, pill, size }), className)} {...props} />;\n}\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport { Badge, badgeVariants };\n"],"mappings":"2KAMA,MAAM,GAAA,EAAA,EAAA,KACJ,iLACA,CACE,SAAU,CACR,QAAS,CACP,MAAO,aACP,KAAM,GACN,QAAS,wBACV,CACD,MAAO,CACL,QAAS,GACT,UAAW,GACX,MAAO,GACP,OAAQ,GACR,KAAM,GACN,QAAS,GACT,QAAS,GACT,OAAQ,GACT,CACD,KAAM,CACJ,GAAI,oCACJ,GAAI,4BACJ,GAAI,gCACJ,GAAI,8BACJ,GAAI,8BACL,CACD,KAAM,CACJ,KAAM,eACN,MAAO,aACR,CACF,CACD,gBAAiB,CACf,QAAS,QACT,MAAO,UACP,KAAM,KACN,KAAM,GACP,CACD,iBAAkB,CAEhB,CAAE,QAAS,QAAS,MAAO,UAAW,UAAW,qCAAsC,CACvF,CAAE,QAAS,QAAS,MAAO,YAAa,UAAW,yCAA0C,CAC7F,CAAE,QAAS,QAAS,MAAO,QAAS,UAAW,8BAA+B,CAC9E,CAAE,QAAS,QAAS,MAAO,SAAU,UAAW,+BAAgC,CAChF,CAAE,QAAS,QAAS,MAAO,OAAQ,UAAW,+BAAgC,CAC9E,CAAE,QAAS,QAAS,MAAO,UAAW,UAAW,qCAAsC,CACvF,CAAE,QAAS,QAAS,MAAO,UAAW,UAAW,qCAAsC,CACvF,CAAE,QAAS,QAAS,MAAO,SAAU,UAAW,mCAAoC,CAEpF,CAAE,QAAS,OAAQ,MAAO,UAAW,UAAW,4CAA6C,CAC7F,CAAE,QAAS,OAAQ,MAAO,YAAa,UAAW,gDAAiD,CACnG,CAAE,QAAS,OAAQ,MAAO,QAAS,UAAW,wCAAyC,CACvF,CAAE,QAAS,OAAQ,MAAO,SAAU,UAAW,0CAA2C,CAC1F,CAAE,QAAS,OAAQ,MAAO,OAAQ,UAAW,sCAAuC,CACpF,CAAE,QAAS,OAAQ,MAAO,UAAW,UAAW,4CAA6C,CAC7F,CAAE,QAAS,OAAQ,MAAO,UAAW,UAAW,4CAA6C,CAC7F,CAAE,QAAS,OAAQ,MAAO,SAAU,UAAW,0CAA2C,CAE1F,CAAE,QAAS,UAAW,MAAO,UAAW,UAAW,8BAA+B,CAClF,CAAE,QAAS,UAAW,MAAO,YAAa,UAAW,kCAAmC,CACxF,CAAE,QAAS,UAAW,MAAO,QAAS,UAAW,0BAA2B,CAC5E,CAAE,QAAS,UAAW,MAAO,SAAU,UAAW,4BAA6B,CAC/E,CAAE,QAAS,UAAW,MAAO,OAAQ,UAAW,wBAAyB,CACzE,CAAE,QAAS,UAAW,MAAO,UAAW,UAAW,8BAA+B,CAClF,CAAE,QAAS,UAAW,MAAO,UAAW,UAAW,8BAA+B,CAClF,CAAE,QAAS,UAAW,MAAO,SAAU,UAAW,4BAA6B,CAChF,CACF,CACF,CAuBD,SAAS,EAAM,CAAE,YAAW,UAAS,QAAO,OAAM,OAAM,GAAG,GAAqB,CAC9E,OAAO,EAAA,EAAA,KAAC,OAAA,CAAK,WAAA,EAAA,EAAA,IAAc,EAAc,CAAE,UAAS,QAAO,OAAM,OAAM,CAAC,CAAE,EAAU,CAAE,GAAI,GAAS"}