@customafk/lunas-ui 0.2.64 → 0.2.66

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 (772) hide show
  1. package/dist/FeatureDeveloping-zuTTDIh_.d.cts +41 -0
  2. package/dist/FeatureDeveloping-zuTTDIh_.d.mts +41 -0
  3. package/dist/FeatureFixing-DYQlgHPk.d.cts +41 -0
  4. package/dist/FeatureFixing-DYQlgHPk.d.mts +41 -0
  5. package/dist/LoginPage-vMXvwtxf.d.cts +53 -0
  6. package/dist/LoginPage-vMXvwtxf.d.mts +53 -0
  7. package/dist/NotAuthorized-CZIQ6EaA.d.cts +41 -0
  8. package/dist/NotAuthorized-CZIQ6EaA.d.mts +41 -0
  9. package/dist/NotFound-CRSKxhV8.d.cts +41 -0
  10. package/dist/NotFound-CRSKxhV8.d.mts +41 -0
  11. package/dist/RegisterPage-BBtpEzvL.d.cts +50 -0
  12. package/dist/RegisterPage-BBtpEzvL.d.mts +50 -0
  13. package/dist/VerifyEmailPage-CsmIeYLu.d.cts +62 -0
  14. package/dist/VerifyEmailPage-CsmIeYLu.d.mts +62 -0
  15. package/dist/action-submit-42PxGLsR.cjs +2 -0
  16. package/dist/action-submit-42PxGLsR.cjs.map +1 -0
  17. package/dist/action-submit-SviPJW3i.mjs +2 -0
  18. package/dist/action-submit-SviPJW3i.mjs.map +1 -0
  19. package/dist/actions-form-Bo46j_dH.cjs +2 -0
  20. package/dist/actions-form-Bo46j_dH.cjs.map +1 -0
  21. package/dist/actions-form-QdAsKwcQ.mjs +2 -0
  22. package/dist/actions-form-QdAsKwcQ.mjs.map +1 -0
  23. package/dist/activity-heatmap-chart-DufvFndI.mjs +2 -0
  24. package/dist/activity-heatmap-chart-DufvFndI.mjs.map +1 -0
  25. package/dist/activity-heatmap-chart-gDcvIAK_.cjs +2 -0
  26. package/dist/activity-heatmap-chart-gDcvIAK_.cjs.map +1 -0
  27. package/dist/add-new-DkBwXh0Q.d.cts +16 -0
  28. package/dist/add-new-DkBwXh0Q.d.mts +16 -0
  29. package/dist/alert-dialog-Cdhz7jSj.d.cts +88 -0
  30. package/dist/alert-dialog-Cdhz7jSj.d.mts +88 -0
  31. package/dist/analysis-panel-DzsZKA9l.cjs +2 -0
  32. package/dist/analysis-panel-DzsZKA9l.cjs.map +1 -0
  33. package/dist/analysis-panel-ikcRtzG9.mjs +2 -0
  34. package/dist/analysis-panel-ikcRtzG9.mjs.map +1 -0
  35. package/dist/aspect-ratio-huscluwJ.d.cts +22 -0
  36. package/dist/aspect-ratio-huscluwJ.d.mts +22 -0
  37. package/dist/avatar-BpeFwSkQ.d.cts +33 -0
  38. package/dist/avatar-BpeFwSkQ.d.mts +33 -0
  39. package/dist/avatar-name-display-BrpnTqa_.mjs +2 -0
  40. package/dist/avatar-name-display-BrpnTqa_.mjs.map +1 -0
  41. package/dist/avatar-name-display-CLi1DJUs.cjs +2 -0
  42. package/dist/avatar-name-display-CLi1DJUs.cjs.map +1 -0
  43. package/dist/{badge-D0InQSvM.d.cts → badge-MRT40pxM.d.cts} +3 -3
  44. package/dist/{badge-D0InQSvM.d.mts → badge-MRT40pxM.d.mts} +3 -3
  45. package/dist/badge-display-9WXwgQgH.cjs +2 -0
  46. package/dist/badge-display-9WXwgQgH.cjs.map +1 -0
  47. package/dist/badge-display-Dx-dITLB.mjs +2 -0
  48. package/dist/badge-display-Dx-dITLB.mjs.map +1 -0
  49. package/dist/boolean-display-OVCtvzI1.mjs +2 -0
  50. package/dist/boolean-display-OVCtvzI1.mjs.map +1 -0
  51. package/dist/boolean-display-pmzYS-ND.cjs +2 -0
  52. package/dist/boolean-display-pmzYS-ND.cjs.map +1 -0
  53. package/dist/breadcrumb-CSpScKZm.d.cts +69 -0
  54. package/dist/breadcrumb-CSpScKZm.d.mts +69 -0
  55. package/dist/{button-DIqm3YRo.d.cts → button-Bk4Y6_9I.d.cts} +3 -3
  56. package/dist/{button-DIqm3YRo.d.mts → button-Bk4Y6_9I.d.mts} +3 -3
  57. package/dist/button-group-Cd5m5G3p.d.mts +48 -0
  58. package/dist/button-group-CiKhLVCg.d.cts +48 -0
  59. package/dist/calendar-DPKt7D3w.d.mts +43 -0
  60. package/dist/calendar-stv2bJv0.d.cts +43 -0
  61. package/dist/candlestick-chart-CiBiCU3y.mjs +2 -0
  62. package/dist/candlestick-chart-CiBiCU3y.mjs.map +1 -0
  63. package/dist/candlestick-chart-CqmRkfXj.cjs +2 -0
  64. package/dist/candlestick-chart-CqmRkfXj.cjs.map +1 -0
  65. package/dist/card-DOnx7RKz.d.cts +60 -0
  66. package/dist/card-DOnx7RKz.d.mts +60 -0
  67. package/dist/card-form-BR5kDTzB.cjs +2 -0
  68. package/dist/card-form-BR5kDTzB.cjs.map +1 -0
  69. package/dist/card-form-D9fNO-6F.mjs +2 -0
  70. package/dist/card-form-D9fNO-6F.mjs.map +1 -0
  71. package/dist/cards/grid-product-card.d.cts +2 -30
  72. package/dist/cards/grid-product-card.d.mts +2 -30
  73. package/dist/cards/product-card.d.cts +2 -30
  74. package/dist/cards/product-card.d.mts +2 -30
  75. package/dist/cards/simple-card.d.cts +2 -29
  76. package/dist/cards/simple-card.d.mts +2 -29
  77. package/dist/carousel-CV3IZ96x.d.mts +70 -0
  78. package/dist/carousel-c2XuzmYN.d.cts +70 -0
  79. package/dist/chart-sYFksFMk.d.cts +80 -0
  80. package/dist/chart-sYFksFMk.d.mts +80 -0
  81. package/dist/checkbox-XfLNnG0S.d.cts +24 -0
  82. package/dist/checkbox-XfLNnG0S.d.mts +24 -0
  83. package/dist/checkbox-field-B1vCz-Wf.cjs +2 -0
  84. package/dist/checkbox-field-B1vCz-Wf.cjs.map +1 -0
  85. package/dist/checkbox-field-FqCe38_D.mjs +2 -0
  86. package/dist/checkbox-field-FqCe38_D.mjs.map +1 -0
  87. package/dist/{cms-layout-SubgSF72.cjs → cms-layout-CGGJqbr0.cjs} +2 -2
  88. package/dist/{cms-layout-SubgSF72.cjs.map → cms-layout-CGGJqbr0.cjs.map} +1 -1
  89. package/dist/{cms-layout-CuF5ahpj.mjs → cms-layout-ePySxIQN.mjs} +2 -2
  90. package/dist/{cms-layout-CuF5ahpj.mjs.map → cms-layout-ePySxIQN.mjs.map} +1 -1
  91. package/dist/collapsible-liIHmFuw.d.cts +32 -0
  92. package/dist/collapsible-liIHmFuw.d.mts +32 -0
  93. package/dist/combobox-field-D6fiCcvU.mjs +2 -0
  94. package/dist/combobox-field-D6fiCcvU.mjs.map +1 -0
  95. package/dist/combobox-field-DLpH6J9H.cjs +2 -0
  96. package/dist/combobox-field-DLpH6J9H.cjs.map +1 -0
  97. package/dist/command-Bb6SneVI.d.mts +87 -0
  98. package/dist/command-CHSJVU9o.d.cts +87 -0
  99. package/dist/confirm-dialog-B8Vu0z8S.d.cts +142 -0
  100. package/dist/confirm-dialog-B8Vu0z8S.d.mts +142 -0
  101. package/dist/container-form-BdsEX0NH.mjs +2 -0
  102. package/dist/container-form-BdsEX0NH.mjs.map +1 -0
  103. package/dist/container-form-CxxUYctk.cjs +2 -0
  104. package/dist/container-form-CxxUYctk.cjs.map +1 -0
  105. package/dist/context-menu-BOlGSuep.d.cts +123 -0
  106. package/dist/context-menu-BOlGSuep.d.mts +123 -0
  107. package/dist/conversion-funnel-chart-CW_zDfKS.mjs +2 -0
  108. package/dist/conversion-funnel-chart-CW_zDfKS.mjs.map +1 -0
  109. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs +2 -0
  110. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs.map +1 -0
  111. package/dist/correlation-scatter-chart-Djtt7NU7.mjs +2 -0
  112. package/dist/correlation-scatter-chart-Djtt7NU7.mjs.map +1 -0
  113. package/dist/correlation-scatter-chart-HF48YUIB.cjs +2 -0
  114. package/dist/correlation-scatter-chart-HF48YUIB.cjs.map +1 -0
  115. package/dist/country-C8QijcHF.d.mts +21 -0
  116. package/dist/country-CJIaO0I7.d.cts +21 -0
  117. package/dist/currency-display-B91H66HM.cjs +2 -0
  118. package/dist/currency-display-B91H66HM.cjs.map +1 -0
  119. package/dist/currency-display-BN1i8jnU.mjs +2 -0
  120. package/dist/currency-display-BN1i8jnU.mjs.map +1 -0
  121. package/dist/data-display/country.d.cts +2 -21
  122. package/dist/data-display/country.d.mts +2 -21
  123. package/dist/data-display/data-list.d.cts +2 -38
  124. package/dist/data-display/data-list.d.mts +2 -38
  125. package/dist/data-display/date-tooltip.d.cts +2 -18
  126. package/dist/data-display/date-tooltip.d.mts +2 -18
  127. package/dist/data-display/date.d.cts +2 -39
  128. package/dist/data-display/date.d.mts +2 -39
  129. package/dist/data-display/empty.d.cts +2 -19
  130. package/dist/data-display/empty.d.mts +2 -19
  131. package/dist/data-display/name.d.cts +2 -18
  132. package/dist/data-display/name.d.mts +2 -18
  133. package/dist/data-display/phone-number.d.cts +2 -18
  134. package/dist/data-display/phone-number.d.mts +2 -18
  135. package/dist/data-display/role-badge.d.cts +2 -21
  136. package/dist/data-display/role-badge.d.mts +2 -21
  137. package/dist/data-display/statistic.d.cts +2 -45
  138. package/dist/data-display/statistic.d.mts +2 -45
  139. package/dist/data-display/user.d.cts +2 -20
  140. package/dist/data-display/user.d.mts +2 -20
  141. package/dist/data-list-Cg510z2m.d.cts +38 -0
  142. package/dist/data-list-Cg510z2m.d.mts +38 -0
  143. package/dist/date-KANPBbN4.d.cts +39 -0
  144. package/dist/date-KANPBbN4.d.mts +39 -0
  145. package/dist/date-display-BWtvWDHK.mjs +2 -0
  146. package/dist/date-display-BWtvWDHK.mjs.map +1 -0
  147. package/dist/date-display-odcC9NcB.cjs +2 -0
  148. package/dist/date-display-odcC9NcB.cjs.map +1 -0
  149. package/dist/date-field-Cxbrc0Vl.mjs +2 -0
  150. package/dist/date-field-Cxbrc0Vl.mjs.map +1 -0
  151. package/dist/date-field-RvEB9F1r.cjs +2 -0
  152. package/dist/date-field-RvEB9F1r.cjs.map +1 -0
  153. package/dist/date-tooltip-DptxGOj_.d.cts +18 -0
  154. package/dist/date-tooltip-DptxGOj_.d.mts +18 -0
  155. package/dist/description-display-BubAcFan.mjs +2 -0
  156. package/dist/description-display-BubAcFan.mjs.map +1 -0
  157. package/dist/description-display-CKe0j3q-.cjs +2 -0
  158. package/dist/description-display-CKe0j3q-.cjs.map +1 -0
  159. package/dist/dialog-form-C0W5C0u9.mjs +2 -0
  160. package/dist/dialog-form-C0W5C0u9.mjs.map +1 -0
  161. package/dist/dialog-form-CkNCwzWG.cjs +2 -0
  162. package/dist/dialog-form-CkNCwzWG.cjs.map +1 -0
  163. package/dist/dialogs/confirm-dialog.cjs +1 -1
  164. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  165. package/dist/dialogs/confirm-dialog.d.cts +2 -142
  166. package/dist/dialogs/confirm-dialog.d.mts +2 -142
  167. package/dist/dialogs/confirm-dialog.mjs +1 -1
  168. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  169. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  170. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +1 -1
  171. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +50 -38
  172. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +50 -38
  173. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  174. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +1 -1
  175. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  176. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  177. package/dist/dialogs/detail-dialog/index.d.cts +2 -36
  178. package/dist/dialogs/detail-dialog/index.d.mts +2 -36
  179. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  180. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  181. package/dist/dialogs/error-dialog.d.cts +2 -22
  182. package/dist/dialogs/error-dialog.d.mts +2 -22
  183. package/dist/dialogs/loading-dialog.d.cts +2 -19
  184. package/dist/dialogs/loading-dialog.d.mts +2 -19
  185. package/dist/donut-chart-CsPPKy0G.cjs +2 -0
  186. package/dist/donut-chart-CsPPKy0G.cjs.map +1 -0
  187. package/dist/donut-chart-eKZjuzW0.mjs +2 -0
  188. package/dist/donut-chart-eKZjuzW0.mjs.map +1 -0
  189. package/dist/drawer-Dwx99ff3.d.cts +70 -0
  190. package/dist/drawer-Dwx99ff3.d.mts +70 -0
  191. package/dist/dropdown-menu-CcMccVns.d.cts +125 -0
  192. package/dist/dropdown-menu-CcMccVns.d.mts +125 -0
  193. package/dist/edit-button-0_FLZoT3.cjs +2 -0
  194. package/dist/edit-button-0_FLZoT3.cjs.map +1 -0
  195. package/dist/edit-button-DmMFMzG0.mjs +2 -0
  196. package/dist/edit-button-DmMFMzG0.mjs.map +1 -0
  197. package/dist/edit-qfS5kOtM.d.cts +16 -0
  198. package/dist/edit-qfS5kOtM.d.mts +16 -0
  199. package/dist/email-display-BLt60GQ1.cjs +2 -0
  200. package/dist/email-display-BLt60GQ1.cjs.map +1 -0
  201. package/dist/email-display-CMme47S9.mjs +2 -0
  202. package/dist/email-display-CMme47S9.mjs.map +1 -0
  203. package/dist/email-field-BErx3liY.cjs +2 -0
  204. package/dist/email-field-BErx3liY.cjs.map +1 -0
  205. package/dist/email-field-BtcdBWL4.mjs +2 -0
  206. package/dist/email-field-BtcdBWL4.mjs.map +1 -0
  207. package/dist/empty-CaNJjp05.d.cts +65 -0
  208. package/dist/empty-CaNJjp05.d.mts +65 -0
  209. package/dist/empty-ClQptIZH.d.cts +19 -0
  210. package/dist/empty-ClQptIZH.d.mts +19 -0
  211. package/dist/error-dialog-D4jOPhmw.d.cts +22 -0
  212. package/dist/error-dialog-D4jOPhmw.d.mts +22 -0
  213. package/dist/features/charts/index.cjs +1 -1
  214. package/dist/features/charts/index.cjs.map +1 -1
  215. package/dist/features/charts/index.d.cts +2 -904
  216. package/dist/features/charts/index.d.mts +2 -904
  217. package/dist/features/charts/index.mjs +1 -1
  218. package/dist/features/charts/index.mjs.map +1 -1
  219. package/dist/features/descriptions/index.cjs +1 -1
  220. package/dist/features/descriptions/index.cjs.map +1 -1
  221. package/dist/features/descriptions/index.d.cts +2 -231
  222. package/dist/features/descriptions/index.d.mts +2 -231
  223. package/dist/features/descriptions/index.mjs +1 -1
  224. package/dist/features/descriptions/index.mjs.map +1 -1
  225. package/dist/features/search-modal/index.d.cts +2 -14
  226. package/dist/features/search-modal/index.d.mts +2 -14
  227. package/dist/features/tables/index.cjs +1 -1
  228. package/dist/features/tables/index.d.cts +2 -2
  229. package/dist/features/tables/index.d.mts +2 -2
  230. package/dist/features/tables/index.mjs +1 -1
  231. package/dist/features/tanstack-form/index.cjs +1 -1
  232. package/dist/features/tanstack-form/index.d.cts +1 -1
  233. package/dist/features/tanstack-form/index.d.mts +1 -1
  234. package/dist/features/tanstack-form/index.mjs +1 -1
  235. package/dist/features/text-editor/index.cjs +1 -1
  236. package/dist/features/text-editor/index.d.cts +1 -1
  237. package/dist/features/text-editor/index.d.mts +1 -1
  238. package/dist/features/text-editor/index.mjs +1 -1
  239. package/dist/field-BKyUqvzh.mjs +2 -0
  240. package/dist/field-BKyUqvzh.mjs.map +1 -0
  241. package/dist/field-BV5twmKA.cjs +2 -0
  242. package/dist/field-BV5twmKA.cjs.map +1 -0
  243. package/dist/file-uploader-U64lH0zG.d.cts +101 -0
  244. package/dist/file-uploader-U64lH0zG.d.mts +101 -0
  245. package/dist/filter-CMzD5h0M.mjs +2 -0
  246. package/dist/filter-CMzD5h0M.mjs.map +1 -0
  247. package/dist/filter-Cmg6SHMu.cjs +2 -0
  248. package/dist/filter-Cmg6SHMu.cjs.map +1 -0
  249. package/dist/flex-CT71VV-I.d.cts +114 -0
  250. package/dist/flex-CT71VV-I.d.mts +114 -0
  251. package/dist/form-CMP15S4r.d.cts +109 -0
  252. package/dist/form-CMP15S4r.d.mts +109 -0
  253. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs +2 -0
  254. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs.map +1 -0
  255. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs +2 -0
  256. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs.map +1 -0
  257. package/dist/google-Bl-jBW8L.d.cts +48 -0
  258. package/dist/google-Bl-jBW8L.d.mts +48 -0
  259. package/dist/grid-i7Oz2Izf.d.cts +19 -0
  260. package/dist/grid-i7Oz2Izf.d.mts +19 -0
  261. package/dist/grid-product-card-bpADqDOQ.d.cts +30 -0
  262. package/dist/grid-product-card-bpADqDOQ.d.mts +30 -0
  263. package/dist/group-field-0kStiX8n.cjs +2 -0
  264. package/dist/group-field-0kStiX8n.cjs.map +1 -0
  265. package/dist/group-field-bviEXmo4.mjs +2 -0
  266. package/dist/group-field-bviEXmo4.mjs.map +1 -0
  267. package/dist/hover-card-Prwm-0Q4.d.cts +35 -0
  268. package/dist/hover-card-Prwm-0Q4.d.mts +35 -0
  269. package/dist/image-Cln0r7Eb.d.cts +27 -0
  270. package/dist/image-Cln0r7Eb.d.mts +27 -0
  271. package/dist/{index-CGpGIM1H.d.cts → index-BRE7tL8d.d.cts} +121 -500
  272. package/dist/index-C2HFO3a9.d.mts +231 -0
  273. package/dist/index-C9eXmnvk.d.cts +36 -0
  274. package/dist/index-C9eXmnvk.d.mts +36 -0
  275. package/dist/index-CBntsHIg.d.cts +520 -0
  276. package/dist/index-CBntsHIg.d.mts +520 -0
  277. package/dist/{index-DOaKN0wJ.d.cts → index-D9bKlLiM.d.cts} +2 -22
  278. package/dist/{index-DOaKN0wJ.d.mts → index-D9bKlLiM.d.mts} +2 -22
  279. package/dist/{index-C2KjuFXQ.d.cts → index-DDROD2y9.d.cts} +596 -1117
  280. package/dist/{index-C2KjuFXQ.d.mts → index-DDROD2y9.d.mts} +596 -1117
  281. package/dist/index-DJiiPHPf.d.cts +59 -0
  282. package/dist/index-DJiiPHPf.d.mts +59 -0
  283. package/dist/index-DtIL69PB.d.cts +14 -0
  284. package/dist/index-DtIL69PB.d.mts +14 -0
  285. package/dist/{index-DueBB0rP.d.mts → index-DvoLzsh0.d.mts} +121 -500
  286. package/dist/index-fZChR7MS.d.cts +231 -0
  287. package/dist/index.cjs +1 -1
  288. package/dist/index.d.cts +92 -92
  289. package/dist/index.d.mts +92 -92
  290. package/dist/index.mjs +1 -1
  291. package/dist/indexed-performance-line-chart-CT79KOM6.cjs +2 -0
  292. package/dist/indexed-performance-line-chart-CT79KOM6.cjs.map +1 -0
  293. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs +2 -0
  294. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs.map +1 -0
  295. package/dist/{input-BJMvABEL.d.cts → input-BieGEIDf.d.cts} +2 -2
  296. package/dist/{input-BJMvABEL.d.mts → input-BieGEIDf.d.mts} +2 -2
  297. package/dist/input-otp-6hJfhBHX.d.cts +56 -0
  298. package/dist/input-otp-6hJfhBHX.d.mts +56 -0
  299. package/dist/item-DTR2f2CX.d.cts +99 -0
  300. package/dist/item-cIhkI3ZI.d.mts +99 -0
  301. package/dist/label-DPG_GY7h.d.cts +22 -0
  302. package/dist/label-DPG_GY7h.d.mts +22 -0
  303. package/dist/layouts/cms-layout/index.cjs +1 -1
  304. package/dist/layouts/cms-layout/index.mjs +1 -1
  305. package/dist/layouts/flex.d.cts +2 -114
  306. package/dist/layouts/flex.d.mts +2 -114
  307. package/dist/layouts/grid.d.cts +2 -19
  308. package/dist/layouts/grid.d.mts +2 -19
  309. package/dist/layouts/payment-layout/index.cjs +1 -1
  310. package/dist/layouts/payment-layout/index.d.cts +2 -59
  311. package/dist/layouts/payment-layout/index.d.mts +2 -59
  312. package/dist/layouts/payment-layout/index.mjs +1 -1
  313. package/dist/list-display-BuRCso6J.mjs +2 -0
  314. package/dist/list-display-BuRCso6J.mjs.map +1 -0
  315. package/dist/list-display-DEU6yFa9.cjs +2 -0
  316. package/dist/list-display-DEU6yFa9.cjs.map +1 -0
  317. package/dist/loading-dialog-C73EJx9s.d.cts +19 -0
  318. package/dist/loading-dialog-C73EJx9s.d.mts +19 -0
  319. package/dist/menubar-CFrn3S96.d.cts +133 -0
  320. package/dist/menubar-CFrn3S96.d.mts +133 -0
  321. package/dist/metric-radar-chart-6LTGQHsL.mjs +2 -0
  322. package/dist/metric-radar-chart-6LTGQHsL.mjs.map +1 -0
  323. package/dist/metric-radar-chart-DwgbXgJX.cjs +2 -0
  324. package/dist/metric-radar-chart-DwgbXgJX.cjs.map +1 -0
  325. package/dist/mirrored-bar-chart-BT7AYPJB.mjs +2 -0
  326. package/dist/mirrored-bar-chart-BT7AYPJB.mjs.map +1 -0
  327. package/dist/mirrored-bar-chart-BwjtExjh.cjs +2 -0
  328. package/dist/mirrored-bar-chart-BwjtExjh.cjs.map +1 -0
  329. package/dist/more-button-BKBcXz6E.mjs +2 -0
  330. package/dist/more-button-BKBcXz6E.mjs.map +1 -0
  331. package/dist/more-button-RYvZgYiu.cjs +2 -0
  332. package/dist/more-button-RYvZgYiu.cjs.map +1 -0
  333. package/dist/multi-select-BbiKgAYs.d.cts +116 -0
  334. package/dist/multi-select-BoBHt_Z9.d.mts +116 -0
  335. package/dist/name-7aoM5rAW.d.cts +18 -0
  336. package/dist/name-7aoM5rAW.d.mts +18 -0
  337. package/dist/name-display-B6X52ip_.cjs +2 -0
  338. package/dist/name-display-B6X52ip_.cjs.map +1 -0
  339. package/dist/name-display-DXMZ8Lug.mjs +2 -0
  340. package/dist/name-display-DXMZ8Lug.mjs.map +1 -0
  341. package/dist/navigation-menu-B1BY9Zll.d.cts +73 -0
  342. package/dist/navigation-menu-B1BY9Zll.d.mts +73 -0
  343. package/dist/number-field-BjVjf6s4.mjs +2 -0
  344. package/dist/number-field-BjVjf6s4.mjs.map +1 -0
  345. package/dist/number-field-DmKh7bbY.cjs +2 -0
  346. package/dist/number-field-DmKh7bbY.cjs.map +1 -0
  347. package/dist/number-input-CqkegUWs.mjs +2 -0
  348. package/dist/number-input-CqkegUWs.mjs.map +1 -0
  349. package/dist/number-input-kTh9zzr7.cjs +2 -0
  350. package/dist/number-input-kTh9zzr7.cjs.map +1 -0
  351. package/dist/orders-bar-chart-9RmtP6In.cjs +2 -0
  352. package/dist/orders-bar-chart-9RmtP6In.cjs.map +1 -0
  353. package/dist/orders-bar-chart-DQhJGmwY.mjs +2 -0
  354. package/dist/orders-bar-chart-DQhJGmwY.mjs.map +1 -0
  355. package/dist/pages/FeatureDeveloping.d.cts +2 -41
  356. package/dist/pages/FeatureDeveloping.d.mts +2 -41
  357. package/dist/pages/FeatureFixing.d.cts +2 -41
  358. package/dist/pages/FeatureFixing.d.mts +2 -41
  359. package/dist/pages/LoginPage.cjs +1 -1
  360. package/dist/pages/LoginPage.cjs.map +1 -1
  361. package/dist/pages/LoginPage.d.cts +2 -53
  362. package/dist/pages/LoginPage.d.mts +2 -53
  363. package/dist/pages/LoginPage.mjs +1 -1
  364. package/dist/pages/LoginPage.mjs.map +1 -1
  365. package/dist/pages/NotAuthorized.d.cts +2 -41
  366. package/dist/pages/NotAuthorized.d.mts +2 -41
  367. package/dist/pages/NotFound.d.cts +2 -41
  368. package/dist/pages/NotFound.d.mts +2 -41
  369. package/dist/pages/RegisterPage.cjs +1 -1
  370. package/dist/pages/RegisterPage.cjs.map +1 -1
  371. package/dist/pages/RegisterPage.d.cts +2 -50
  372. package/dist/pages/RegisterPage.d.mts +2 -50
  373. package/dist/pages/RegisterPage.mjs +1 -1
  374. package/dist/pages/RegisterPage.mjs.map +1 -1
  375. package/dist/pages/VerifyEmailPage.d.cts +2 -62
  376. package/dist/pages/VerifyEmailPage.d.mts +2 -62
  377. package/dist/pagination-B2fyP0J2.d.cts +64 -0
  378. package/dist/pagination-DY0PBCnI.d.mts +64 -0
  379. package/dist/paragraph-BTmvVS1S.d.mts +46 -0
  380. package/dist/paragraph-DbYYv0A0.d.cts +46 -0
  381. package/dist/password-field-C5FsQUa8.mjs +2 -0
  382. package/dist/password-field-C5FsQUa8.mjs.map +1 -0
  383. package/dist/password-field-gHYDiXWY.cjs +2 -0
  384. package/dist/password-field-gHYDiXWY.cjs.map +1 -0
  385. package/dist/payment-layout-Cb-Q8KD2.cjs +2 -0
  386. package/dist/{payment-layout-BLrXT-oc.cjs.map → payment-layout-Cb-Q8KD2.cjs.map} +1 -1
  387. package/dist/{payment-layout-Dsz6wYT1.mjs → payment-layout-DS5CEH1h.mjs} +2 -2
  388. package/dist/{payment-layout-Dsz6wYT1.mjs.map → payment-layout-DS5CEH1h.mjs.map} +1 -1
  389. package/dist/permalink-CZ3g9daG.mjs +2 -0
  390. package/dist/permalink-CZ3g9daG.mjs.map +1 -0
  391. package/dist/permalink-DeeEKhfc.cjs +2 -0
  392. package/dist/permalink-DeeEKhfc.cjs.map +1 -0
  393. package/dist/phone-number-6b_pkGI1.d.cts +18 -0
  394. package/dist/phone-number-6b_pkGI1.d.mts +18 -0
  395. package/dist/phone-number-C43z68gT.mjs +2 -0
  396. package/dist/phone-number-C43z68gT.mjs.map +1 -0
  397. package/dist/phone-number-DhThJwd6.cjs +2 -0
  398. package/dist/phone-number-DhThJwd6.cjs.map +1 -0
  399. package/dist/popover-CdOCi0xg.d.cts +50 -0
  400. package/dist/popover-CdOCi0xg.d.mts +50 -0
  401. package/dist/popover-form-B2taDBAh.mjs +2 -0
  402. package/dist/popover-form-B2taDBAh.mjs.map +1 -0
  403. package/dist/popover-form-_hQQpfAB.cjs +2 -0
  404. package/dist/popover-form-_hQQpfAB.cjs.map +1 -0
  405. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs +2 -0
  406. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs.map +1 -0
  407. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs +2 -0
  408. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs.map +1 -0
  409. package/dist/price-range-area-chart-BW6RQb_9.cjs +2 -0
  410. package/dist/price-range-area-chart-BW6RQb_9.cjs.map +1 -0
  411. package/dist/price-range-area-chart-Dy01mhWJ.mjs +2 -0
  412. package/dist/price-range-area-chart-Dy01mhWJ.mjs.map +1 -0
  413. package/dist/product-card-CvXLXbpV.d.cts +30 -0
  414. package/dist/product-card-CvXLXbpV.d.mts +30 -0
  415. package/dist/progress-Bp-5keO8.d.cts +21 -0
  416. package/dist/progress-Bp-5keO8.d.mts +21 -0
  417. package/dist/progress-display-Bp0xVhln.cjs +2 -0
  418. package/dist/progress-display-Bp0xVhln.cjs.map +1 -0
  419. package/dist/progress-display-DYj7vAe9.mjs +2 -0
  420. package/dist/progress-display-DYj7vAe9.mjs.map +1 -0
  421. package/dist/radio-group-field-McpjpLW-.cjs +2 -0
  422. package/dist/radio-group-field-McpjpLW-.cjs.map +1 -0
  423. package/dist/radio-group-field-ZqMrf9Dx.mjs +2 -0
  424. package/dist/radio-group-field-ZqMrf9Dx.mjs.map +1 -0
  425. package/dist/radio-group-ycQQrPGn.d.cts +35 -0
  426. package/dist/radio-group-ycQQrPGn.d.mts +35 -0
  427. package/dist/refresh-BiyrZAXL.d.cts +16 -0
  428. package/dist/refresh-BiyrZAXL.d.mts +16 -0
  429. package/dist/remove-button-B3qFw-M5.cjs +2 -0
  430. package/dist/remove-button-B3qFw-M5.cjs.map +1 -0
  431. package/dist/remove-button-Db5oSj4h.mjs +2 -0
  432. package/dist/remove-button-Db5oSj4h.mjs.map +1 -0
  433. package/dist/{resizable-BLfxHCf4.d.cts → resizable-CAyWR1At.d.cts} +2 -2
  434. package/dist/{resizable-BLfxHCf4.d.mts → resizable-CAyWR1At.d.mts} +2 -2
  435. package/dist/revenue-area-chart-BwzeTRzD.mjs +2 -0
  436. package/dist/revenue-area-chart-BwzeTRzD.mjs.map +1 -0
  437. package/dist/revenue-area-chart-w2FZCl_7.cjs +2 -0
  438. package/dist/revenue-area-chart-w2FZCl_7.cjs.map +1 -0
  439. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs +2 -0
  440. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs.map +1 -0
  441. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs +2 -0
  442. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs.map +1 -0
  443. package/dist/role-badge-Bl4Rimpk.d.mts +21 -0
  444. package/dist/role-badge-IdZW0tsN.d.cts +21 -0
  445. package/dist/sales-target-radial-chart-BFLxBT2m.mjs +2 -0
  446. package/dist/sales-target-radial-chart-BFLxBT2m.mjs.map +1 -0
  447. package/dist/sales-target-radial-chart-BoxSk7hW.cjs +2 -0
  448. package/dist/sales-target-radial-chart-BoxSk7hW.cjs.map +1 -0
  449. package/dist/sankey-flow-chart-CDUqIRMZ.cjs +2 -0
  450. package/dist/sankey-flow-chart-CDUqIRMZ.cjs.map +1 -0
  451. package/dist/sankey-flow-chart-bQ3Dffet.mjs +2 -0
  452. package/dist/sankey-flow-chart-bQ3Dffet.mjs.map +1 -0
  453. package/dist/scroll-area-PbkqIAaH.d.cts +35 -0
  454. package/dist/scroll-area-PbkqIAaH.d.mts +35 -0
  455. package/dist/search-input-Bq4enQzR.d.cts +27 -0
  456. package/dist/search-input-D51_mAY-.d.mts +27 -0
  457. package/dist/section-form-B9iTs2we.cjs +2 -0
  458. package/dist/section-form-B9iTs2we.cjs.map +1 -0
  459. package/dist/section-form-B_AZr7jZ.mjs +2 -0
  460. package/dist/section-form-B_AZr7jZ.mjs.map +1 -0
  461. package/dist/select-B5j4WvPM.d.cts +74 -0
  462. package/dist/select-B5j4WvPM.d.mts +74 -0
  463. package/dist/select-field-DG8sQ5iN.cjs +2 -0
  464. package/dist/select-field-DG8sQ5iN.cjs.map +1 -0
  465. package/dist/select-field-Kq5iQCRQ.mjs +2 -0
  466. package/dist/select-field-Kq5iQCRQ.mjs.map +1 -0
  467. package/dist/separator-BlNAFSJv.mjs +2 -0
  468. package/dist/separator-BlNAFSJv.mjs.map +1 -0
  469. package/dist/separator-D6_fMJtM.d.cts +32 -0
  470. package/dist/separator-D6_fMJtM.d.mts +32 -0
  471. package/dist/separator-sBz__BXC.cjs +2 -0
  472. package/dist/separator-sBz__BXC.cjs.map +1 -0
  473. package/dist/sheet-cHLLSvvt.d.cts +66 -0
  474. package/dist/sheet-cHLLSvvt.d.mts +66 -0
  475. package/dist/sidebar-core-Bh0dZXsm.mjs +2 -0
  476. package/dist/sidebar-core-Bh0dZXsm.mjs.map +1 -0
  477. package/dist/sidebar-core-DQE6ymo4.cjs +2 -0
  478. package/dist/sidebar-core-DQE6ymo4.cjs.map +1 -0
  479. package/dist/simple-array-field-4paKpxXk.cjs +2 -0
  480. package/dist/simple-array-field-4paKpxXk.cjs.map +1 -0
  481. package/dist/simple-array-field-C5XdemXa.mjs +2 -0
  482. package/dist/simple-array-field-C5XdemXa.mjs.map +1 -0
  483. package/dist/simple-boolean-field-B9T_fHk9.cjs +2 -0
  484. package/dist/simple-boolean-field-B9T_fHk9.cjs.map +1 -0
  485. package/dist/simple-boolean-field-DpJ-fSQk.mjs +2 -0
  486. package/dist/simple-boolean-field-DpJ-fSQk.mjs.map +1 -0
  487. package/dist/simple-card-6P377r4A.d.cts +29 -0
  488. package/dist/simple-card-6P377r4A.d.mts +29 -0
  489. package/dist/simple-combobox-field-Ch4SBHCH.mjs +2 -0
  490. package/dist/simple-combobox-field-Ch4SBHCH.mjs.map +1 -0
  491. package/dist/simple-combobox-field-ChMKk7xp.cjs +2 -0
  492. package/dist/simple-combobox-field-ChMKk7xp.cjs.map +1 -0
  493. package/dist/simple-date-field-BGGlsHzG.cjs +2 -0
  494. package/dist/simple-date-field-BGGlsHzG.cjs.map +1 -0
  495. package/dist/simple-date-field-CVKqIrEs.mjs +2 -0
  496. package/dist/simple-date-field-CVKqIrEs.mjs.map +1 -0
  497. package/dist/simple-email-field-98w0846B.mjs +2 -0
  498. package/dist/simple-email-field-98w0846B.mjs.map +1 -0
  499. package/dist/simple-email-field-DYqCWprP.cjs +2 -0
  500. package/dist/simple-email-field-DYqCWprP.cjs.map +1 -0
  501. package/dist/simple-number-field-otvv2xq-.cjs +2 -0
  502. package/dist/simple-number-field-otvv2xq-.cjs.map +1 -0
  503. package/dist/simple-number-field-zF3oqS8d.mjs +2 -0
  504. package/dist/simple-number-field-zF3oqS8d.mjs.map +1 -0
  505. package/dist/simple-password-field-CuC10c70.mjs +2 -0
  506. package/dist/simple-password-field-CuC10c70.mjs.map +1 -0
  507. package/dist/simple-password-field-D2UMmghM.cjs +2 -0
  508. package/dist/simple-password-field-D2UMmghM.cjs.map +1 -0
  509. package/dist/simple-radio-group-field-C2DDfIUs.cjs +2 -0
  510. package/dist/simple-radio-group-field-C2DDfIUs.cjs.map +1 -0
  511. package/dist/simple-radio-group-field-CfziNlLf.mjs +2 -0
  512. package/dist/simple-radio-group-field-CfziNlLf.mjs.map +1 -0
  513. package/dist/simple-select-field-CeNnXUHN.cjs +2 -0
  514. package/dist/simple-select-field-CeNnXUHN.cjs.map +1 -0
  515. package/dist/simple-select-field-DIaxhi1-.mjs +2 -0
  516. package/dist/simple-select-field-DIaxhi1-.mjs.map +1 -0
  517. package/dist/simple-text-field-D8jyznSd.mjs +2 -0
  518. package/dist/simple-text-field-D8jyznSd.mjs.map +1 -0
  519. package/dist/simple-text-field-LYWVIAfQ.cjs +2 -0
  520. package/dist/simple-text-field-LYWVIAfQ.cjs.map +1 -0
  521. package/dist/simple-textarea-field-DcEvaizE.cjs +2 -0
  522. package/dist/simple-textarea-field-DcEvaizE.cjs.map +1 -0
  523. package/dist/simple-textarea-field-p9qX_n7m.mjs +2 -0
  524. package/dist/simple-textarea-field-p9qX_n7m.mjs.map +1 -0
  525. package/dist/skeleton-Ct4sYEKk.d.cts +24 -0
  526. package/dist/skeleton-Ct4sYEKk.d.mts +24 -0
  527. package/dist/slider-DwR1MhR8.d.cts +24 -0
  528. package/dist/slider-DwR1MhR8.d.mts +24 -0
  529. package/dist/sonner-B6LxJMYT.d.mts +22 -0
  530. package/dist/sonner-BcNgR0GP.d.cts +22 -0
  531. package/dist/sparkline-chart-TbGzakUl.mjs +2 -0
  532. package/dist/sparkline-chart-TbGzakUl.mjs.map +1 -0
  533. package/dist/sparkline-chart-sPqaJHep.cjs +2 -0
  534. package/dist/sparkline-chart-sPqaJHep.cjs.map +1 -0
  535. package/dist/spinner-CXuqcoB5.d.cts +22 -0
  536. package/dist/spinner-CXuqcoB5.d.mts +22 -0
  537. package/dist/stacked-area-chart-DyxY96_l.cjs +2 -0
  538. package/dist/stacked-area-chart-DyxY96_l.cjs.map +1 -0
  539. package/dist/stacked-area-chart-UIWIxTmq.mjs +2 -0
  540. package/dist/stacked-area-chart-UIWIxTmq.mjs.map +1 -0
  541. package/dist/statistic-8zBJMdRa.d.cts +45 -0
  542. package/dist/statistic-8zBJMdRa.d.mts +45 -0
  543. package/dist/statistic-BUGIRhL9.cjs +2 -0
  544. package/dist/statistic-BUGIRhL9.cjs.map +1 -0
  545. package/dist/statistic-Ug9Zgi3N.mjs +2 -0
  546. package/dist/statistic-Ug9Zgi3N.mjs.map +1 -0
  547. package/dist/status-display-B-6KKttX.mjs +2 -0
  548. package/dist/status-display-B-6KKttX.mjs.map +1 -0
  549. package/dist/status-display-DkI9UwAu.cjs +2 -0
  550. package/dist/status-display-DkI9UwAu.cjs.map +1 -0
  551. package/dist/submit-button-CGBaPzE9.mjs +2 -0
  552. package/dist/submit-button-CGBaPzE9.mjs.map +1 -0
  553. package/dist/submit-button-CvINfld5.cjs +2 -0
  554. package/dist/submit-button-CvINfld5.cjs.map +1 -0
  555. package/dist/summary-bar-CZHeAORf.mjs +2 -0
  556. package/dist/summary-bar-CZHeAORf.mjs.map +1 -0
  557. package/dist/summary-bar-DTFVpBZn.cjs +2 -0
  558. package/dist/summary-bar-DTFVpBZn.cjs.map +1 -0
  559. package/dist/switch-9v4AYqJb.d.cts +24 -0
  560. package/dist/switch-9v4AYqJb.d.mts +24 -0
  561. package/dist/switch-field-CIoNsRWN.mjs +2 -0
  562. package/dist/switch-field-CIoNsRWN.mjs.map +1 -0
  563. package/dist/switch-field-n6a5SaEM.cjs +2 -0
  564. package/dist/switch-field-n6a5SaEM.cjs.map +1 -0
  565. package/dist/systems/google.d.cts +2 -48
  566. package/dist/systems/google.d.mts +2 -48
  567. package/dist/table-Dg2D0v87.d.cts +70 -0
  568. package/dist/table-Dg2D0v87.d.mts +70 -0
  569. package/dist/tables-7aC9WFs9.cjs +2 -0
  570. package/dist/tables-7aC9WFs9.cjs.map +1 -0
  571. package/dist/tables-UikqnT9q.mjs +2 -0
  572. package/dist/tables-UikqnT9q.mjs.map +1 -0
  573. package/dist/tabs-CJ6qZcFU.d.cts +42 -0
  574. package/dist/tabs-CJ6qZcFU.d.mts +42 -0
  575. package/dist/tanstack-form-CNrZQZhn.cjs +2 -0
  576. package/dist/tanstack-form-CNrZQZhn.cjs.map +1 -0
  577. package/dist/tanstack-form-PC9YNeeo.mjs +2 -0
  578. package/dist/tanstack-form-PC9YNeeo.mjs.map +1 -0
  579. package/dist/text-editor-BYE2-G5K.mjs +2 -0
  580. package/dist/text-editor-BYE2-G5K.mjs.map +1 -0
  581. package/dist/text-editor-CfQk5dIx.cjs +2 -0
  582. package/dist/text-editor-CfQk5dIx.cjs.map +1 -0
  583. package/dist/text-editor-field-fso-sw29.mjs +2 -0
  584. package/dist/text-editor-field-fso-sw29.mjs.map +1 -0
  585. package/dist/text-editor-field-gas5r-xy.cjs +2 -0
  586. package/dist/text-editor-field-gas5r-xy.cjs.map +1 -0
  587. package/dist/text-field-B67oTV62.mjs +2 -0
  588. package/dist/text-field-B67oTV62.mjs.map +1 -0
  589. package/dist/text-field-BMo-8rsq.cjs +2 -0
  590. package/dist/text-field-BMo-8rsq.cjs.map +1 -0
  591. package/dist/textarea-C8ZIZh-y.d.cts +26 -0
  592. package/dist/textarea-C8ZIZh-y.d.mts +26 -0
  593. package/dist/textarea-field-BUGcITwp.cjs +2 -0
  594. package/dist/textarea-field-BUGcITwp.cjs.map +1 -0
  595. package/dist/textarea-field-D70rGYIk.mjs +2 -0
  596. package/dist/textarea-field-D70rGYIk.mjs.map +1 -0
  597. package/dist/title-BT9guhSU.d.cts +41 -0
  598. package/dist/title-BT9guhSU.d.mts +41 -0
  599. package/dist/title-field-84EnHPvl.mjs +2 -0
  600. package/dist/title-field-84EnHPvl.mjs.map +1 -0
  601. package/dist/title-field-CKxwzMOM.cjs +2 -0
  602. package/dist/title-field-CKxwzMOM.cjs.map +1 -0
  603. package/dist/toggle-Bh4EazxT.d.cts +30 -0
  604. package/dist/toggle-Bh4EazxT.d.mts +30 -0
  605. package/dist/toggle-button-DNLtfjJC.mjs +2 -0
  606. package/dist/toggle-button-DNLtfjJC.mjs.map +1 -0
  607. package/dist/toggle-button-Dq78v8cH.cjs +2 -0
  608. package/dist/toggle-button-Dq78v8cH.cjs.map +1 -0
  609. package/dist/toggle-group-BpqkL1ds.d.cts +37 -0
  610. package/dist/toggle-group-DzNE38v5.d.mts +37 -0
  611. package/dist/tooltip-B-yLj6pe.mjs +4 -0
  612. package/dist/tooltip-B-yLj6pe.mjs.map +1 -0
  613. package/dist/tooltip-D4U-RhIu.d.cts +53 -0
  614. package/dist/tooltip-D4U-RhIu.d.mts +53 -0
  615. package/dist/tooltip-octglTPf.cjs +4 -0
  616. package/dist/tooltip-octglTPf.cjs.map +1 -0
  617. package/dist/top-products-bar-chart-5EJFSkeo.cjs +2 -0
  618. package/dist/top-products-bar-chart-5EJFSkeo.cjs.map +1 -0
  619. package/dist/top-products-bar-chart-CKYaOGWT.mjs +2 -0
  620. package/dist/top-products-bar-chart-CKYaOGWT.mjs.map +1 -0
  621. package/dist/trash-BfWSqlL4.d.cts +16 -0
  622. package/dist/trash-BfWSqlL4.d.mts +16 -0
  623. package/dist/typography/paragraph.d.cts +2 -46
  624. package/dist/typography/paragraph.d.mts +2 -46
  625. package/dist/typography/title.d.cts +2 -41
  626. package/dist/typography/title.d.mts +2 -41
  627. package/dist/ui/alert-dialog.d.cts +2 -88
  628. package/dist/ui/alert-dialog.d.mts +2 -88
  629. package/dist/ui/aspect-ratio.d.cts +2 -22
  630. package/dist/ui/aspect-ratio.d.mts +2 -22
  631. package/dist/ui/avatar.d.cts +2 -33
  632. package/dist/ui/avatar.d.mts +2 -33
  633. package/dist/ui/badge.cjs +1 -1
  634. package/dist/ui/badge.cjs.map +1 -1
  635. package/dist/ui/badge.d.cts +1 -1
  636. package/dist/ui/badge.d.mts +1 -1
  637. package/dist/ui/badge.mjs +1 -1
  638. package/dist/ui/badge.mjs.map +1 -1
  639. package/dist/ui/breadcrumb.d.cts +2 -69
  640. package/dist/ui/breadcrumb.d.mts +2 -69
  641. package/dist/ui/button-group.d.cts +2 -48
  642. package/dist/ui/button-group.d.mts +2 -48
  643. package/dist/ui/button.d.cts +1 -1
  644. package/dist/ui/button.d.mts +1 -1
  645. package/dist/ui/buttons/add-new.d.cts +2 -16
  646. package/dist/ui/buttons/add-new.d.mts +2 -16
  647. package/dist/ui/buttons/edit.d.cts +2 -16
  648. package/dist/ui/buttons/edit.d.mts +2 -16
  649. package/dist/ui/buttons/refresh.d.cts +2 -16
  650. package/dist/ui/buttons/refresh.d.mts +2 -16
  651. package/dist/ui/buttons/trash.d.cts +2 -16
  652. package/dist/ui/buttons/trash.d.mts +2 -16
  653. package/dist/ui/buttons/upload-image.d.cts +2 -23
  654. package/dist/ui/buttons/upload-image.d.mts +2 -23
  655. package/dist/ui/calendar.d.cts +2 -43
  656. package/dist/ui/calendar.d.mts +2 -43
  657. package/dist/ui/card.d.cts +2 -60
  658. package/dist/ui/card.d.mts +2 -60
  659. package/dist/ui/carousel.d.cts +2 -70
  660. package/dist/ui/carousel.d.mts +2 -70
  661. package/dist/ui/chart.d.cts +2 -80
  662. package/dist/ui/chart.d.mts +2 -80
  663. package/dist/ui/checkbox.d.cts +2 -24
  664. package/dist/ui/checkbox.d.mts +2 -24
  665. package/dist/ui/collapsible.d.cts +2 -32
  666. package/dist/ui/collapsible.d.mts +2 -32
  667. package/dist/ui/command.d.cts +2 -87
  668. package/dist/ui/command.d.mts +2 -87
  669. package/dist/ui/context-menu.d.cts +2 -123
  670. package/dist/ui/context-menu.d.mts +2 -123
  671. package/dist/ui/drawer.d.cts +2 -70
  672. package/dist/ui/drawer.d.mts +2 -70
  673. package/dist/ui/dropdown-menu.d.cts +2 -125
  674. package/dist/ui/dropdown-menu.d.mts +2 -125
  675. package/dist/ui/empty.d.cts +2 -65
  676. package/dist/ui/empty.d.mts +2 -65
  677. package/dist/ui/field.d.cts +1 -1
  678. package/dist/ui/field.d.mts +1 -1
  679. package/dist/ui/file-uploader.d.cts +2 -101
  680. package/dist/ui/file-uploader.d.mts +2 -101
  681. package/dist/ui/form.d.cts +2 -109
  682. package/dist/ui/form.d.mts +2 -109
  683. package/dist/ui/hover-card.d.cts +2 -35
  684. package/dist/ui/hover-card.d.mts +2 -35
  685. package/dist/ui/image.d.cts +2 -27
  686. package/dist/ui/image.d.mts +2 -27
  687. package/dist/ui/input-otp.d.cts +2 -56
  688. package/dist/ui/input-otp.d.mts +2 -56
  689. package/dist/ui/input.d.cts +1 -1
  690. package/dist/ui/input.d.mts +1 -1
  691. package/dist/ui/inputs/search-input.d.cts +2 -27
  692. package/dist/ui/inputs/search-input.d.mts +2 -27
  693. package/dist/ui/item.d.cts +2 -99
  694. package/dist/ui/item.d.mts +2 -99
  695. package/dist/ui/label.d.cts +2 -22
  696. package/dist/ui/label.d.mts +2 -22
  697. package/dist/ui/menubar.d.cts +2 -133
  698. package/dist/ui/menubar.d.mts +2 -133
  699. package/dist/ui/multi-select.d.cts +2 -116
  700. package/dist/ui/multi-select.d.mts +2 -116
  701. package/dist/ui/navigation-menu.d.cts +2 -73
  702. package/dist/ui/navigation-menu.d.mts +2 -73
  703. package/dist/ui/pagination.d.cts +2 -64
  704. package/dist/ui/pagination.d.mts +2 -64
  705. package/dist/ui/popover.d.cts +2 -50
  706. package/dist/ui/popover.d.mts +2 -50
  707. package/dist/ui/progress.d.cts +2 -21
  708. package/dist/ui/progress.d.mts +2 -21
  709. package/dist/ui/radio-group.d.cts +2 -35
  710. package/dist/ui/radio-group.d.mts +2 -35
  711. package/dist/ui/resizable.d.cts +1 -1
  712. package/dist/ui/resizable.d.mts +1 -1
  713. package/dist/ui/scroll-area.d.cts +2 -35
  714. package/dist/ui/scroll-area.d.mts +2 -35
  715. package/dist/ui/select.d.cts +2 -74
  716. package/dist/ui/select.d.mts +2 -74
  717. package/dist/ui/separator.d.cts +2 -32
  718. package/dist/ui/separator.d.mts +2 -32
  719. package/dist/ui/sheet.d.cts +2 -66
  720. package/dist/ui/sheet.d.mts +2 -66
  721. package/dist/ui/skeleton.d.cts +2 -24
  722. package/dist/ui/skeleton.d.mts +2 -24
  723. package/dist/ui/slider.d.cts +2 -24
  724. package/dist/ui/slider.d.mts +2 -24
  725. package/dist/ui/sonner.d.cts +2 -22
  726. package/dist/ui/sonner.d.mts +2 -22
  727. package/dist/ui/spinner.d.cts +2 -22
  728. package/dist/ui/spinner.d.mts +2 -22
  729. package/dist/ui/switch.d.cts +2 -24
  730. package/dist/ui/switch.d.mts +2 -24
  731. package/dist/ui/table.d.cts +2 -70
  732. package/dist/ui/table.d.mts +2 -70
  733. package/dist/ui/tabs.d.cts +2 -42
  734. package/dist/ui/tabs.d.mts +2 -42
  735. package/dist/ui/textarea.d.cts +2 -26
  736. package/dist/ui/textarea.d.mts +2 -26
  737. package/dist/ui/toggle-group.d.cts +2 -37
  738. package/dist/ui/toggle-group.d.mts +2 -37
  739. package/dist/ui/toggle.d.cts +2 -30
  740. package/dist/ui/toggle.d.mts +2 -30
  741. package/dist/ui/tooltip.d.cts +2 -53
  742. package/dist/ui/tooltip.d.mts +2 -53
  743. package/dist/upload-image-D4VZU3IA.d.cts +23 -0
  744. package/dist/upload-image-D4VZU3IA.d.mts +23 -0
  745. package/dist/user-BymzvsYp.mjs +2 -0
  746. package/dist/user-BymzvsYp.mjs.map +1 -0
  747. package/dist/user-CvesQf42.d.cts +20 -0
  748. package/dist/user-CvesQf42.d.mts +20 -0
  749. package/dist/user-Dn53Fu5q.cjs +2 -0
  750. package/dist/user-Dn53Fu5q.cjs.map +1 -0
  751. package/dist/volume-bar-chart-BRpC_8-X.mjs +2 -0
  752. package/dist/volume-bar-chart-BRpC_8-X.mjs.map +1 -0
  753. package/dist/volume-bar-chart-CRxZPZIn.cjs +2 -0
  754. package/dist/volume-bar-chart-CRxZPZIn.cjs.map +1 -0
  755. package/dist/waterfall-chart-CTB2f5eh.cjs +2 -0
  756. package/dist/waterfall-chart-CTB2f5eh.cjs.map +1 -0
  757. package/dist/waterfall-chart-DwetaJFJ.mjs +2 -0
  758. package/dist/waterfall-chart-DwetaJFJ.mjs.map +1 -0
  759. package/package.json +1 -5
  760. package/dist/payment-layout-BLrXT-oc.cjs +0 -2
  761. package/dist/tables-B0Jl8Osc.cjs +0 -4
  762. package/dist/tables-B0Jl8Osc.cjs.map +0 -1
  763. package/dist/tables-Cylalxey.mjs +0 -4
  764. package/dist/tables-Cylalxey.mjs.map +0 -1
  765. package/dist/tanstack-form-BMVn8ai_.cjs +0 -2
  766. package/dist/tanstack-form-BMVn8ai_.cjs.map +0 -1
  767. package/dist/tanstack-form-DTCgWGCA.mjs +0 -2
  768. package/dist/tanstack-form-DTCgWGCA.mjs.map +0 -1
  769. package/dist/text-editor-BQtIXOpM.mjs +0 -2
  770. package/dist/text-editor-BQtIXOpM.mjs.map +0 -1
  771. package/dist/text-editor-DJYQXXtP.cjs +0 -2
  772. package/dist/text-editor-DJYQXXtP.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-editor-BQtIXOpM.mjs","names":["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,2 +0,0 @@
1
- const e=require("./rolldown-runtime-CMqjfN_6.cjs"),t=require("./ui/dropdown-menu.cjs"),n=require("./ui/popover.cjs");let r=require("lucide-react"),i=require("react"),a=require("@customafk/react-toolkit/utils"),o=require("class-variance-authority"),s=require("react/jsx-runtime"),c=require("@tiptap/react"),l=require("@tiptap/extension-character-count"),u=require("@tiptap/extension-highlight"),d=require("@tiptap/extension-link"),f=require("@tiptap/extension-list-keymap"),p=require("@tiptap/extension-placeholder");p=e.t(p,1);let m=require("@tiptap/extension-task-item"),h=require("@tiptap/extension-task-list"),g=require("@tiptap/extension-text-align");g=e.t(g,1);let _=require("@tiptap/extension-text-style"),v=require("@tiptap/extension-underline");v=e.t(v,1);let y=require("@tiptap/react/menus"),b=require("@tiptap/starter-kit");b=e.t(b,1);function x({isActive:e,className:t,children:n,...r}){return(0,s.jsx)(`button`,{type:`button`,"data-slot":`toolbar-button`,"data-active":e||void 0,className:(0,a.cn)(`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 S(){return(0,s.jsx)(`div`,{"data-slot":`toolbar-divider`,className:`mx-0.5 h-5 w-px shrink-0 bg-border`})}function C({editor:e}){let[t,o]=(0,i.useState)(!1),[l,u]=(0,i.useState)(``),d=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`link`)}),f=(0,i.useCallback)(t=>{t&&u(e.getAttributes(`link`).href??``),o(t)},[e]),p=(0,i.useCallback)(()=>{let t=l.trim();t&&(e.chain().focus().setLink({href:t,target:`_blank`}).run(),o(!1))},[e,l]),m=(0,i.useCallback)(()=>{e.chain().focus().unsetLink().run(),o(!1)},[e]);return(0,s.jsxs)(n.Popover,{open:t,onOpenChange:f,children:[(0,s.jsx)(n.PopoverTrigger,{asChild:!0,children:(0,s.jsx)(x,{isActive:d,title:`Link (Ctrl+K)`,"data-slot":`toolbar-link-button`,children:(0,s.jsx)(r.Link2,{className:`h-3.5 w-3.5`})})}),(0,s.jsxs)(n.PopoverContent,{"data-slot":`link-dialog`,sideOffset:6,align:`start`,className:`w-72 p-3`,children:[(0,s.jsx)(`p`,{className:`mb-2 font-medium text-text-positive-strong text-xs`,children:d?`Edit Link`:`Insert Link`}),(0,s.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,s.jsx)(`input`,{type:`url`,placeholder:`https://example.com`,value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),p()),e.key===`Escape`&&o(!1)},autoFocus:!0,className:(0,a.cn)(`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`)}),(0,s.jsx)(`button`,{type:`button`,onClick:p,disabled:!l.trim(),className:(0,a.cn)(`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`})]}),d&&(0,s.jsxs)(`button`,{type:`button`,onClick:m,className:`mt-2 flex items-center gap-1 text-danger-strong text-xs hover:underline`,children:[(0,s.jsx)(r.Link2Off,{className:`h-3 w-3`}),`Remove link`]})]})]})}const w=(0,o.cva)([`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`}}),T=[{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`}],E=[{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 D({editor:e,className:i,enableLink:o,enableTaskList:l,enableHighlight:u,enableColor:d}){let f=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`heading`,{level:1})}),p=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`heading`,{level:2})}),m=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`heading`,{level:3})}),h=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`bold`)}),g=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`italic`)}),_=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`underline`)}),v=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`strike`)}),y=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`code`)}),b=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`bulletList`)}),w=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`orderedList`)}),D=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`taskList`)}),O=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`blockquote`)}),k=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive(`codeBlock`)}),A=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive({textAlign:`left`})}),j=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive({textAlign:`center`})}),M=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive({textAlign:`right`})}),N=(0,c.useEditorState)({editor:e,selector:e=>e.editor.isActive({textAlign:`justify`})}),P=f?`H1`:p?`H2`:m?`H3`:`P`;return(0,s.jsxs)(`div`,{"data-slot":`text-editor-toolbar`,className:(0,a.cn)(`flex flex-wrap items-center gap-0.5 border-border border-b bg-muted-muted/50 p-1.5`,i),children:[(0,s.jsx)(x,{onClick:()=>e.chain().focus().undo().run(),disabled:!e.can().undo(),title:`Undo (Ctrl+Z)`,children:(0,s.jsx)(r.Undo,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().redo().run(),disabled:!e.can().redo(),title:`Redo (Ctrl+Y)`,children:(0,s.jsx)(r.Redo,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(S,{}),(0,s.jsxs)(t.DropdownMenu,{children:[(0,s.jsx)(t.DropdownMenuTrigger,{asChild:!0,children:(0,s.jsxs)(`button`,{type:`button`,"data-slot":`toolbar-heading-trigger`,className:(0,a.cn)(`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`,(f||p||m)&&`bg-primary-muted text-primary hover:bg-primary-muted/80 hover:text-primary`),children:[(0,s.jsx)(`span`,{className:`w-5 text-center`,children:P}),(0,s.jsx)(r.ChevronDown,{className:`h-3 w-3 opacity-60`})]})}),(0,s.jsxs)(t.DropdownMenuContent,{align:`start`,className:`min-w-32`,children:[(0,s.jsx)(t.DropdownMenuItem,{onClick:()=>e.chain().focus().setParagraph().run(),children:(0,s.jsx)(`span`,{className:`text-sm`,children:`Paragraph`})}),(0,s.jsx)(t.DropdownMenuItem,{onClick:()=>e.chain().focus().toggleHeading({level:1}).run(),children:(0,s.jsx)(`span`,{className:`font-bold text-lg`,children:`Heading 1`})}),(0,s.jsx)(t.DropdownMenuItem,{onClick:()=>e.chain().focus().toggleHeading({level:2}).run(),children:(0,s.jsx)(`span`,{className:`font-semibold text-base`,children:`Heading 2`})}),(0,s.jsx)(t.DropdownMenuItem,{onClick:()=>e.chain().focus().toggleHeading({level:3}).run(),children:(0,s.jsx)(`span`,{className:`font-semibold text-sm`,children:`Heading 3`})})]})]}),(0,s.jsx)(S,{}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleBold().run(),isActive:h,title:`Bold (Ctrl+B)`,children:(0,s.jsx)(r.Bold,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleItalic().run(),isActive:g,title:`Italic (Ctrl+I)`,children:(0,s.jsx)(r.Italic,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleUnderline().run(),isActive:_,title:`Underline (Ctrl+U)`,children:(0,s.jsx)(r.Underline,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleStrike().run(),isActive:v,title:`Strikethrough`,children:(0,s.jsx)(r.Strikethrough,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleCode().run(),isActive:y,title:`Inline Code`,children:(0,s.jsx)(r.Code,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(S,{}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleBulletList().run(),isActive:b,title:`Bullet List`,children:(0,s.jsx)(r.List,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleOrderedList().run(),isActive:w,title:`Ordered List`,children:(0,s.jsx)(r.ListOrdered,{className:`h-3.5 w-3.5`})}),l&&(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleTaskList().run(),isActive:D,title:`Task List`,children:(0,s.jsx)(r.ListChecks,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(S,{}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleBlockquote().run(),isActive:O,title:`Blockquote`,children:(0,s.jsx)(r.Quote,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().toggleCodeBlock().run(),isActive:k,title:`Code Block`,children:(0,s.jsx)(r.Code2,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().setHorizontalRule().run(),title:`Horizontal Rule`,children:(0,s.jsx)(r.Minus,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(S,{}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().setTextAlign(`left`).run(),isActive:A,title:`Align Left`,children:(0,s.jsx)(r.AlignLeft,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().setTextAlign(`center`).run(),isActive:j,title:`Align Center`,children:(0,s.jsx)(r.AlignCenter,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().setTextAlign(`right`).run(),isActive:M,title:`Align Right`,children:(0,s.jsx)(r.AlignRight,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>e.chain().focus().setTextAlign(`justify`).run(),isActive:N,title:`Align Justify`,children:(0,s.jsx)(r.AlignJustify,{className:`h-3.5 w-3.5`})}),o&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(C,{editor:e})]}),(d||u)&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),d&&(0,s.jsxs)(n.Popover,{children:[(0,s.jsx)(n.PopoverTrigger,{asChild:!0,children:(0,s.jsx)(x,{title:`Text Color`,children:(0,s.jsx)(r.Palette,{className:`h-3.5 w-3.5`})})}),(0,s.jsxs)(n.PopoverContent,{align:`start`,className:`w-44 p-2`,children:[(0,s.jsx)(`p`,{className:`mb-1.5 font-medium text-text-positive-weak text-xs`,children:`Text Color`}),(0,s.jsx)(`div`,{className:`grid grid-cols-5 gap-1`,children:E.map(t=>(0,s.jsx)(`button`,{type:`button`,title:t.label,onClick:()=>{t.value?e.chain().focus().setColor(t.value).run():e.chain().focus().unsetColor().run()},className:(0,a.cn)(`h-6 w-6 rounded border border-border transition-transform hover:scale-110`,!t.value&&`bg-background text-[10px] text-text-positive leading-none`),style:t.value?{backgroundColor:t.value}:void 0,children:!t.value&&`∅`},t.label))})]})]}),u&&(0,s.jsxs)(n.Popover,{children:[(0,s.jsx)(n.PopoverTrigger,{asChild:!0,children:(0,s.jsx)(x,{title:`Highlight`,children:(0,s.jsx)(r.Highlighter,{className:`h-3.5 w-3.5`})})}),(0,s.jsxs)(n.PopoverContent,{align:`start`,className:`w-44 p-2`,children:[(0,s.jsx)(`p`,{className:`mb-1.5 font-medium text-text-positive-weak text-xs`,children:`Highlight`}),(0,s.jsx)(`div`,{className:`grid grid-cols-5 gap-1`,children:T.map(t=>(0,s.jsx)(`button`,{type:`button`,title:t.label,onClick:()=>e.chain().focus().toggleHighlight({color:t.value}).run(),className:`h-6 w-6 rounded border border-border transition-transform hover:scale-110`,style:{backgroundColor:t.value}},t.label))}),(0,s.jsx)(`button`,{type:`button`,onClick:()=>e.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 O({value:e,defaultValue:t,onChange:n,placeholder:o=`Start writing...`,readOnly:T=!1,showToolbar:E=!0,variant:O,size:k,className:A,toolbarClassName:j,editorClassName:M,maxLength:N,showCharacterCount:P,onCharacterCount:F,enableLink:I,enableBubbleMenu:L,enableTaskList:R,enableHighlight:z,enableColor:B}){let V=N!==void 0||P||F!==void 0,H=B||z,U=(0,c.useEditor)({extensions:(0,i.useMemo)(()=>{let e=[b.default,v.default,p.default.configure({placeholder:o}),g.default.configure({types:[`heading`,`paragraph`]}),f.ListKeymap];return H&&e.push(_.TextStyle),I&&e.push(d.Link.configure({openOnClick:!1,linkOnPaste:!0,defaultProtocol:`https`})),R&&e.push(h.TaskList,m.TaskItem.configure({nested:!0})),z&&e.push(u.Highlight.configure({multicolor:!0})),B&&e.push(_.Color),V&&e.push(l.CharacterCount.configure({limit:N})),e},[V,o,N,z,H,R,I,B]),content:e??t,editable:!T,onUpdate:({editor:e})=>{if(n?.(e.getHTML()),F){let t=e.storage.characterCount;F({characters:t.characters(),words:t.words()})}}});(0,i.useEffect)(()=>{!U||e===void 0||U.getHTML()!==e&&U.commands.setContent(e)},[U,e]),(0,i.useEffect)(()=>{U&&U.setEditable(!T)},[U,T]);let W=(0,c.useEditorState)({editor:U,selector:e=>{let t=e.editor?.storage?.characterCount;return t?t.characters():0}}),G=(0,c.useEditorState)({editor:U,selector:e=>{let t=e.editor?.storage?.characterCount;return t?t.words():0}}),K=P||N!==void 0,q=N!==void 0&&W>N*.9;return(0,s.jsxs)(`div`,{"data-slot":`text-editor`,className:(0,a.cn)(`lunas-text-editor`,w({variant:O,size:k}),A),children:[E&&!T&&U&&(0,s.jsx)(D,{editor:U,className:j,enableLink:I,enableTaskList:R,enableHighlight:z,enableColor:B}),L&&!T&&U&&(0,s.jsxs)(y.BubbleMenu,{editor:U,options:{placement:`top`},className:(0,a.cn)(`flex items-center gap-0.5 rounded-md border border-border bg-popover p-1 shadow-dropdown`),children:[(0,s.jsx)(x,{onClick:()=>U.chain().focus().toggleBold().run(),isActive:U.isActive(`bold`),title:`Bold (Ctrl+B)`,children:(0,s.jsx)(r.Bold,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>U.chain().focus().toggleItalic().run(),isActive:U.isActive(`italic`),title:`Italic (Ctrl+I)`,children:(0,s.jsx)(r.Italic,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>U.chain().focus().toggleUnderline().run(),isActive:U.isActive(`underline`),title:`Underline (Ctrl+U)`,children:(0,s.jsx)(r.Underline,{className:`h-3.5 w-3.5`})}),(0,s.jsx)(x,{onClick:()=>U.chain().focus().toggleStrike().run(),isActive:U.isActive(`strike`),title:`Strikethrough`,children:(0,s.jsx)(r.Strikethrough,{className:`h-3.5 w-3.5`})}),I&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(S,{}),(0,s.jsx)(C,{editor:U})]})]}),(0,s.jsx)(c.EditorContent,{editor:U,"data-slot":`text-editor-content`,className:(0,a.cn)(`flex-1 bg-white text-sm text-text-positive`,M)}),K&&V&&(0,s.jsxs)(`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:[(0,s.jsxs)(`span`,{children:[G,` words`]}),(0,s.jsxs)(`span`,{"data-warning":q||void 0,className:`data-warning:text-warning-strong`,children:[W,N?` / ${N}`:``,` characters`]})]})]})}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return O}});
2
- //# sourceMappingURL=text-editor-DJYQXXtP.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"text-editor-DJYQXXtP.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","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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"}