@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
@@ -0,0 +1,41 @@
1
+ import { JSX, ReactNode } from "react";
2
+
3
+ //#region packages/components/typography/title.d.ts
4
+ type TitleProps = {
5
+ /**
6
+ * Heading level that maps to the rendered HTML tag (`h1`–`h6`) and the corresponding
7
+ * typographic scale variant.
8
+ * - `1` — `text-3xl / md:text-4xl`, bold (default)
9
+ * - `2` — `text-2xl / md:text-3xl`, semibold
10
+ * - `3` — `text-xl / md:text-2xl`, semibold
11
+ * - `4` — `text-lg / md:text-xl`, semibold
12
+ * - `5` — `text-base / md:text-lg`, semibold
13
+ * - `6` — `text-sm / md:text-base`, semibold
14
+ * @default 1
15
+ */
16
+ level?: 1 | 2 | 3 | 4 | 5 | 6; /** Additional Tailwind classes merged with the variant classes. */
17
+ className?: string; /** Content rendered inside the heading element. */
18
+ children?: ReactNode;
19
+ };
20
+ /**
21
+ * A semantic heading component that renders the correct `h1`–`h6` element and applies a matched typographic scale.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * import { Title } from '@customafk/lunas-ui/typography/title';
26
+ *
27
+ * // Page-level heading (renders <h1>)
28
+ * <Title level={1}>Welcome to Lunas</Title>
29
+ *
30
+ * // Section sub-heading (renders <h3>)
31
+ * <Title level={3}>Account Settings</Title>
32
+ * ```
33
+ */
34
+ declare const Title: ({
35
+ level,
36
+ className,
37
+ children
38
+ }: TitleProps) => JSX.Element;
39
+ //#endregion
40
+ export { TitleProps as n, Title as t };
41
+ //# sourceMappingURL=title-BT9guhSU.d.cts.map
@@ -0,0 +1,41 @@
1
+ import { JSX, ReactNode } from "react";
2
+
3
+ //#region packages/components/typography/title.d.ts
4
+ type TitleProps = {
5
+ /**
6
+ * Heading level that maps to the rendered HTML tag (`h1`–`h6`) and the corresponding
7
+ * typographic scale variant.
8
+ * - `1` — `text-3xl / md:text-4xl`, bold (default)
9
+ * - `2` — `text-2xl / md:text-3xl`, semibold
10
+ * - `3` — `text-xl / md:text-2xl`, semibold
11
+ * - `4` — `text-lg / md:text-xl`, semibold
12
+ * - `5` — `text-base / md:text-lg`, semibold
13
+ * - `6` — `text-sm / md:text-base`, semibold
14
+ * @default 1
15
+ */
16
+ level?: 1 | 2 | 3 | 4 | 5 | 6; /** Additional Tailwind classes merged with the variant classes. */
17
+ className?: string; /** Content rendered inside the heading element. */
18
+ children?: ReactNode;
19
+ };
20
+ /**
21
+ * A semantic heading component that renders the correct `h1`–`h6` element and applies a matched typographic scale.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * import { Title } from '@customafk/lunas-ui/typography/title';
26
+ *
27
+ * // Page-level heading (renders <h1>)
28
+ * <Title level={1}>Welcome to Lunas</Title>
29
+ *
30
+ * // Section sub-heading (renders <h3>)
31
+ * <Title level={3}>Account Settings</Title>
32
+ * ```
33
+ */
34
+ declare const Title: ({
35
+ level,
36
+ className,
37
+ children
38
+ }: TitleProps) => JSX.Element;
39
+ //#endregion
40
+ export { TitleProps as n, Title as t };
41
+ //# sourceMappingURL=title-BT9guhSU.d.mts.map
@@ -0,0 +1,2 @@
1
+ import{Field as e,FieldContent as t,FieldDescription as n,FieldGroup as r,FieldLegend as i,FieldNote as a,FieldSeparator as o}from"./field-BKyUqvzh.mjs";import{jsx as s,jsxs as c}from"react/jsx-runtime";const l=({title:l,description:u,helperText:d})=>c(r,{className:`gap-y-4 px-4`,children:[c(e,{className:`gap-0`,children:[c(t,{children:[s(i,{className:`mb-1`,children:l}),s(n,{children:u})]}),s(a,{isShow:!!d,children:d})]}),s(o,{})]});export{l as TanStackTitleField};
2
+ //# sourceMappingURL=title-field-84EnHPvl.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-field-84EnHPvl.mjs","names":[],"sources":["../packages/components/features/tanstack-form/components/forms/title-field.tsx"],"sourcesContent":["import { Field, FieldContent, FieldDescription, FieldGroup, FieldLegend, FieldNote, FieldSeparator } from '../ui/field';\n\n/**\n * Renders a standalone section title with an optional description and helper note, followed by a separator.\n *\n * @example\n * import { TanStackTitleField } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackTitleField\n * title=\"Billing Address\"\n * description=\"Provide the address associated with your payment method.\"\n * helperText=\"Must match your bank records.\"\n * />\n */\nexport const TanStackTitleField: React.FC<{\n /** The heading text rendered as a legend element. */\n title: string;\n /** Optional supplementary text displayed beneath the title. */\n description?: string;\n /** Optional helper note shown below the description area. */\n helperText?: string;\n}> = ({ title, description, helperText }) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field className=\"gap-0\">\n <FieldContent>\n <FieldLegend className=\"mb-1\">{title}</FieldLegend>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"2MAcA,MAAa,GAOP,CAAE,QAAO,cAAa,gBAExB,EAAC,EAAD,CAAY,UAAU,wBAAtB,CACE,EAAC,EAAD,CAAO,UAAU,iBAAjB,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAa,UAAU,gBAAQ,CAAmB,CAAA,EAClD,EAAC,EAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,EACd,EAAC,EAAD,CAAW,OAAQ,CAAC,CAAC,WAAa,CAAsB,CAAA,CACnD,IACP,EAAC,EAAD,CAAiB,CAAA,CACP"}
@@ -0,0 +1,2 @@
1
+ const e=require("./field-BV5twmKA.cjs");let t=require("react/jsx-runtime");const n=({title:n,description:r,helperText:i})=>(0,t.jsxs)(e.FieldGroup,{className:`gap-y-4 px-4`,children:[(0,t.jsxs)(e.Field,{className:`gap-0`,children:[(0,t.jsxs)(e.FieldContent,{children:[(0,t.jsx)(e.FieldLegend,{className:`mb-1`,children:n}),(0,t.jsx)(e.FieldDescription,{children:r})]}),(0,t.jsx)(e.FieldNote,{isShow:!!i,children:i})]}),(0,t.jsx)(e.FieldSeparator,{})]});exports.TanStackTitleField=n;
2
+ //# sourceMappingURL=title-field-CKxwzMOM.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-field-CKxwzMOM.cjs","names":["FieldGroup","Field","FieldContent","FieldLegend","FieldDescription","FieldNote","FieldSeparator"],"sources":["../packages/components/features/tanstack-form/components/forms/title-field.tsx"],"sourcesContent":["import { Field, FieldContent, FieldDescription, FieldGroup, FieldLegend, FieldNote, FieldSeparator } from '../ui/field';\n\n/**\n * Renders a standalone section title with an optional description and helper note, followed by a separator.\n *\n * @example\n * import { TanStackTitleField } from '@customafk/lunas-ui/features/tanstack-form';\n *\n * <TanStackTitleField\n * title=\"Billing Address\"\n * description=\"Provide the address associated with your payment method.\"\n * helperText=\"Must match your bank records.\"\n * />\n */\nexport const TanStackTitleField: React.FC<{\n /** The heading text rendered as a legend element. */\n title: string;\n /** Optional supplementary text displayed beneath the title. */\n description?: string;\n /** Optional helper note shown below the description area. */\n helperText?: string;\n}> = ({ title, description, helperText }) => {\n return (\n <FieldGroup className=\"gap-y-4 px-4\">\n <Field className=\"gap-0\">\n <FieldContent>\n <FieldLegend className=\"mb-1\">{title}</FieldLegend>\n <FieldDescription>{description}</FieldDescription>\n </FieldContent>\n <FieldNote isShow={!!helperText}>{helperText}</FieldNote>\n </Field>\n <FieldSeparator />\n </FieldGroup>\n );\n};\n"],"mappings":"2EAcA,MAAa,GAOP,CAAE,QAAO,cAAa,iBAExB,EAAA,EAAA,KAAA,CAACA,EAAAA,WAAD,CAAY,UAAU,wBAAtB,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,MAAD,CAAO,UAAU,iBAAjB,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAa,UAAU,gBAAQ,CAAmB,CAAA,GAClD,EAAA,EAAA,IAAA,CAACC,EAAAA,iBAAD,CAAA,SAAmB,CAA8B,CAAA,CACrC,CAAA,CAAA,GACd,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,OAAQ,CAAC,CAAC,WAAa,CAAsB,CAAA,CACnD,KACP,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAiB,CAAA,CACP"}
@@ -0,0 +1,30 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { Toggle } from "radix-ui";
3
+
4
+ //#region packages/components/ui/toggle.d.ts
5
+ declare const toggleVariants: (props?: ({
6
+ variant?: "default" | "outline" | null | undefined;
7
+ size?: "sm" | "lg" | "default" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ /**
10
+ * A two-state button that switches between pressed (`on`) and unpressed (`off`).
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * import { Toggle } from '@customafk/lunas-ui/ui/toggle';
15
+ * import { Bold } from 'lucide-react';
16
+ *
17
+ * <Toggle aria-label="Toggle bold" variant="outline">
18
+ * <Bold />
19
+ * </Toggle>
20
+ * ```
21
+ */
22
+ declare function Toggle$1({
23
+ className,
24
+ variant,
25
+ size,
26
+ ...props
27
+ }: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
28
+ //#endregion
29
+ export { toggleVariants as n, Toggle$1 as t };
30
+ //# sourceMappingURL=toggle-Bh4EazxT.d.cts.map
@@ -0,0 +1,30 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import { Toggle } from "radix-ui";
3
+
4
+ //#region packages/components/ui/toggle.d.ts
5
+ declare const toggleVariants: (props?: ({
6
+ variant?: "default" | "outline" | null | undefined;
7
+ size?: "sm" | "lg" | "default" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ /**
10
+ * A two-state button that switches between pressed (`on`) and unpressed (`off`).
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * import { Toggle } from '@customafk/lunas-ui/ui/toggle';
15
+ * import { Bold } from 'lucide-react';
16
+ *
17
+ * <Toggle aria-label="Toggle bold" variant="outline">
18
+ * <Bold />
19
+ * </Toggle>
20
+ * ```
21
+ */
22
+ declare function Toggle$1({
23
+ className,
24
+ variant,
25
+ size,
26
+ ...props
27
+ }: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
28
+ //#endregion
29
+ export { toggleVariants as n, Toggle$1 as t };
30
+ //# sourceMappingURL=toggle-Bh4EazxT.d.mts.map
@@ -0,0 +1,2 @@
1
+ import{Tooltip as e,TooltipContent as t,TooltipTrigger as n}from"./ui/tooltip.mjs";import{Switch as r}from"./ui/switch.mjs";import{useCallback as i}from"react";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({checked:s,titleOn:c,titleOff:l,disabled:u,onCheckedChange:d})=>{let f=i(async e=>{await d?.(e)},[d]);return o(e,{children:[a(n,{asChild:!0,children:a(`span`,{onClick:i(e=>{e.stopPropagation()},[]),children:a(r,{checked:s,disabled:u,onCheckedChange:f})})}),a(t,{children:a(`p`,{children:s?c||`Turn off`:l||`Turn on`})})]})};export{s as UITableToggleButton};
2
+ //# sourceMappingURL=toggle-button-DNLtfjJC.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-button-DNLtfjJC.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/toggle-button.tsx"],"sourcesContent":["'use client';\nimport { useCallback } from 'react';\n\nimport { Switch } from '@/components/ui/switch';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\n/**\n * An on/off toggle switch for table row action columns.\n * Wraps the `Switch` primitive with a tooltip and stops row-click propagation.\n *\n * @example\n * import { UITableToggleButton } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableToggleButton\n * checked={row.isActive}\n * titleOn=\"Deactivate account\"\n * titleOff=\"Activate account\"\n * onCheckedChange={(checked) => updateStatus(rowId, checked)}\n * />\n */\nexport const UITableToggleButton: React.FC<{\n /** Current on/off state of the switch. */\n checked?: boolean;\n /** Tooltip shown when the switch is currently ON (describes the toggle-off action). */\n titleOn?: string;\n /** Tooltip shown when the switch is currently OFF (describes the toggle-on action). */\n titleOff?: string;\n /** Whether the switch is disabled. */\n disabled?: boolean;\n /** Called with the new boolean value after the user flips the switch. */\n onCheckedChange?: (checked: boolean) => void | Promise<void>;\n}> = ({ checked, titleOn, titleOff, disabled, onCheckedChange }) => {\n const handleCheckedChange = useCallback(\n async (value: boolean) => {\n await onCheckedChange?.(value);\n },\n [onCheckedChange]\n );\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(e => {\n e.stopPropagation();\n }, []);\n\n const tooltip = checked ? titleOn || 'Turn off' : titleOff || 'Turn on';\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <span onClick={handleClick}>\n <Switch checked={checked} disabled={disabled} onCheckedChange={handleCheckedChange} />\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"kNAoBA,MAAa,GAWP,CAAE,UAAS,UAAS,WAAU,WAAU,qBAAsB,CAClE,IAAM,EAAsB,EAC1B,KAAO,IAAmB,CACxB,MAAM,IAAkB,CAAK,CAC/B,EACA,CAAC,CAAe,CAClB,EAQA,OACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAgB,QAAA,YACd,EAAC,OAAD,CAAM,QATQ,EAAwD,GAAK,CAC/E,EAAE,gBAAgB,CACpB,EAAG,CAAC,CAO2B,WACvB,EAAC,EAAD,CAAiB,UAAmB,WAAU,gBAAiB,CAAsB,CAAA,CACjF,CAAA,CACQ,CAAA,EAChB,EAAC,EAAD,CAAA,SACE,EAAC,IAAD,CAAA,SAVU,EAAU,GAAW,WAAa,GAAY,SAUzC,CAAA,CACD,CAAA,CACT,CAAA,CAAA,CAEb"}
@@ -0,0 +1,2 @@
1
+ const e=require("./ui/tooltip.cjs"),t=require("./ui/switch.cjs");let n=require("react"),r=require("react/jsx-runtime");const i=({checked:i,titleOn:a,titleOff:o,disabled:s,onCheckedChange:c})=>{let l=(0,n.useCallback)(async e=>{await c?.(e)},[c]);return(0,r.jsxs)(e.Tooltip,{children:[(0,r.jsx)(e.TooltipTrigger,{asChild:!0,children:(0,r.jsx)(`span`,{onClick:(0,n.useCallback)(e=>{e.stopPropagation()},[]),children:(0,r.jsx)(t.Switch,{checked:i,disabled:s,onCheckedChange:l})})}),(0,r.jsx)(e.TooltipContent,{children:(0,r.jsx)(`p`,{children:i?a||`Turn off`:o||`Turn on`})})]})};exports.UITableToggleButton=i;
2
+ //# sourceMappingURL=toggle-button-Dq78v8cH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-button-Dq78v8cH.cjs","names":["Tooltip","TooltipTrigger","Switch","TooltipContent"],"sources":["../packages/components/features/tables/components/atoms/toggle-button.tsx"],"sourcesContent":["'use client';\nimport { useCallback } from 'react';\n\nimport { Switch } from '@/components/ui/switch';\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\n/**\n * An on/off toggle switch for table row action columns.\n * Wraps the `Switch` primitive with a tooltip and stops row-click propagation.\n *\n * @example\n * import { UITableToggleButton } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableToggleButton\n * checked={row.isActive}\n * titleOn=\"Deactivate account\"\n * titleOff=\"Activate account\"\n * onCheckedChange={(checked) => updateStatus(rowId, checked)}\n * />\n */\nexport const UITableToggleButton: React.FC<{\n /** Current on/off state of the switch. */\n checked?: boolean;\n /** Tooltip shown when the switch is currently ON (describes the toggle-off action). */\n titleOn?: string;\n /** Tooltip shown when the switch is currently OFF (describes the toggle-on action). */\n titleOff?: string;\n /** Whether the switch is disabled. */\n disabled?: boolean;\n /** Called with the new boolean value after the user flips the switch. */\n onCheckedChange?: (checked: boolean) => void | Promise<void>;\n}> = ({ checked, titleOn, titleOff, disabled, onCheckedChange }) => {\n const handleCheckedChange = useCallback(\n async (value: boolean) => {\n await onCheckedChange?.(value);\n },\n [onCheckedChange]\n );\n\n const handleClick = useCallback<React.MouseEventHandler<HTMLButtonElement>>(e => {\n e.stopPropagation();\n }, []);\n\n const tooltip = checked ? titleOn || 'Turn off' : titleOff || 'Turn on';\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <span onClick={handleClick}>\n <Switch checked={checked} disabled={disabled} onCheckedChange={handleCheckedChange} />\n </span>\n </TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"uHAoBA,MAAa,GAWP,CAAE,UAAS,UAAS,WAAU,WAAU,qBAAsB,CAClE,IAAM,GAAA,EAAA,EAAA,YAAA,CACJ,KAAO,IAAmB,CACxB,MAAM,IAAkB,CAAK,CAC/B,EACA,CAAC,CAAe,CAClB,EAQA,OACE,EAAA,EAAA,KAAA,CAACA,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,QAAA,aACd,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,SAAA,EAAA,EAAA,YAAA,CATgE,GAAK,CAC/E,EAAE,gBAAgB,CACpB,EAAG,CAAC,CAO2B,YACvB,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAiB,UAAmB,WAAU,gBAAiB,CAAsB,CAAA,CACjF,CAAA,CACQ,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,SAVU,EAAU,GAAW,WAAa,GAAY,SAUzC,CAAA,CACD,CAAA,CACT,CAAA,CAAA,CAEb"}
@@ -0,0 +1,37 @@
1
+ import { n as toggleVariants } from "./toggle-Bh4EazxT.cjs";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { ToggleGroup } from "radix-ui";
4
+
5
+ //#region packages/components/ui/toggle-group.d.ts
6
+ /**
7
+ * A group of connected Toggle buttons where one or multiple items can be active at a time.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { ToggleGroup, ToggleGroupItem } from '@customafk/lunas-ui/ui/toggle-group';
12
+ *
13
+ * <ToggleGroup type="single" variant="outline">
14
+ * <ToggleGroupItem value="left">Left</ToggleGroupItem>
15
+ * <ToggleGroupItem value="center">Center</ToggleGroupItem>
16
+ * <ToggleGroupItem value="right">Right</ToggleGroupItem>
17
+ * </ToggleGroup>
18
+ * ```
19
+ */
20
+ declare function ToggleGroup$1({
21
+ className,
22
+ variant,
23
+ size,
24
+ children,
25
+ ...props
26
+ }: React.ComponentProps<typeof ToggleGroup.Root> & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
27
+ /** A single item/button within a ToggleGroup that inherits the group's variant and size. */
28
+ declare function ToggleGroupItem({
29
+ className,
30
+ children,
31
+ variant,
32
+ size,
33
+ ...props
34
+ }: React.ComponentProps<typeof ToggleGroup.Item> & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
35
+ //#endregion
36
+ export { ToggleGroupItem as n, ToggleGroup$1 as t };
37
+ //# sourceMappingURL=toggle-group-BpqkL1ds.d.cts.map
@@ -0,0 +1,37 @@
1
+ import { n as toggleVariants } from "./toggle-Bh4EazxT.mjs";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { ToggleGroup } from "radix-ui";
4
+
5
+ //#region packages/components/ui/toggle-group.d.ts
6
+ /**
7
+ * A group of connected Toggle buttons where one or multiple items can be active at a time.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { ToggleGroup, ToggleGroupItem } from '@customafk/lunas-ui/ui/toggle-group';
12
+ *
13
+ * <ToggleGroup type="single" variant="outline">
14
+ * <ToggleGroupItem value="left">Left</ToggleGroupItem>
15
+ * <ToggleGroupItem value="center">Center</ToggleGroupItem>
16
+ * <ToggleGroupItem value="right">Right</ToggleGroupItem>
17
+ * </ToggleGroup>
18
+ * ```
19
+ */
20
+ declare function ToggleGroup$1({
21
+ className,
22
+ variant,
23
+ size,
24
+ children,
25
+ ...props
26
+ }: React.ComponentProps<typeof ToggleGroup.Root> & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
27
+ /** A single item/button within a ToggleGroup that inherits the group's variant and size. */
28
+ declare function ToggleGroupItem({
29
+ className,
30
+ children,
31
+ variant,
32
+ size,
33
+ ...props
34
+ }: React.ComponentProps<typeof ToggleGroup.Item> & VariantProps<typeof toggleVariants>): import("react").JSX.Element;
35
+ //#endregion
36
+ export { ToggleGroupItem as n, ToggleGroup$1 as t };
37
+ //# sourceMappingURL=toggle-group-DzNE38v5.d.mts.map
@@ -0,0 +1,4 @@
1
+ import{G as e,q as t}from"./tables-UikqnT9q.mjs";import{Input as n}from"./ui/input.mjs";import{ArrowRightIcon as r,BarChart2Icon as i,CirclePlus as a,DownloadIcon as o,RefreshCwIcon as s,SearchIcon as c}from"lucide-react";import{useCallback as l}from"react";import{cn as u}from"@customafk/react-toolkit/utils";import{jsx as d,jsxs as f}from"react/jsx-runtime";import{useDebounceCallback as p}from"@customafk/react-toolkit/hooks/useDebounceCallback";function m(e){if(e==null)return``;if(typeof e==`number`)return String(e);if(typeof e==`boolean`)return e?`true`:`false`;let t=String(e);return t.includes(`,`)||t.includes(`"`)||t.includes(`
2
+ `)||t.includes(`\r`)?`"${t.replace(/"/g,`""`)}"`:t}function h(e){if(e.length===0)return``;let t=e[0].map(e=>m(e.label)),n=e.map(e=>e.map(e=>m(e.value)).join(`,`));return[t.join(`,`),...n].join(`
3
+ `)}function g(e,t){let n=h(e);if(!n)return;let r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${t}.csv`,a.click(),URL.revokeObjectURL(i)}const _=({onSearch:e,onChange:t,...i})=>{let a=p(t=>{e?.(t)},500);return f(`div`,{className:`relative w-full max-w-80 flex-1`,children:[d(n,{...i,size:`lg`,type:`search`,placeholder:`Tìm kiếm...`,className:`flex-1 ps-9 pe-9`,onChange:e=>{t?.(e),a(e.target.value??``)}}),d(`div`,{className:`pointer-events-none absolute inset-y-0 inset-s-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:d(c,{size:16})}),d(`button`,{className:`absolute inset-y-0 inset-e-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:d(r,{size:16,"aria-hidden":`true`})})]})},v=({children:e,disabled:t,onClick:n,className:r,...i})=>d(`button`,{type:`button`,disabled:t,className:u(`flex cursor-pointer items-center gap-x-1 rounded-sm border border-border bg-background p-2.5 text-sm text-text-positive-weak outline-none transition-all hover:shadow-card focus:border-border-emphasis focus:bg-muted-muted active:border-border-emphasis active:bg-muted-muted active:text-text-positive disabled:pointer-events-none disabled:cursor-default disabled:opacity-60 [&_svg]:size-3.5`,r),onClick:n,...i,children:e}),y=({onCreate:n,onDownload:r,onRefresh:c})=>{let{table:u,csvData:p,csvFileName:m,title:h,showAnalysisPanel:_}=t(),{isOpen:y,toggle:b}=e(),x=l(()=>{if(r){r();return}if(!p||p.length===0)return;let e=u.getSelectedRowModel().flatRows;g(e.length>0?e.map(e=>p[e.index]).filter(Boolean):p,m||h)},[r,p,m,u,h]),S=!!(r||p&&p.length>0);return f(`div`,{className:`flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,children:[d(v,{disabled:!n,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:d(a,{})}),d(v,{disabled:!c,onClick:e=>{c?.(),e.stopPropagation(),e.preventDefault()},children:d(s,{})}),d(v,{disabled:!S,onClick:e=>{x(),e.stopPropagation(),e.preventDefault()},children:d(o,{})}),_&&d(v,{onClick:e=>{b(),e.stopPropagation(),e.preventDefault()},"aria-pressed":y,className:y?`bg-muted-muted text-text-positive`:void 0,children:d(i,{})})]})},b=({children:e})=>{let{title:n,description:r,headerActions:i}=t();return f(`div`,{"data-slot":`table-tooltip`,className:`relative flex w-full flex-col gap-2 px-2 py-0 text-sm`,children:[f(`div`,{className:`flex w-full items-start justify-between gap-4`,children:[f(`div`,{className:`flex flex-col gap-0.5`,children:[d(`h3`,{className:`font-semibold text-base text-text-positive`,children:n}),r&&d(`p`,{className:`text-sm text-muted-foreground`,children:r})]}),i&&d(`div`,{className:`flex items-center gap-2 shrink-0`,children:i})]}),d(`div`,{className:`flex w-full flex-1 justify-between gap-x-2`,children:e})]})};b.displayName=`TableTooltip`;export{b as UITableTooltip,y as UITableTooltipActions,_ as UITableTooltipFilter};
4
+ //# sourceMappingURL=tooltip-B-yLj6pe.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-B-yLj6pe.mjs","names":[],"sources":["../packages/components/features/tables/utils/csv.ts","../packages/components/features/tables/components/table/tooltip.tsx"],"sourcesContent":["'use client';\n\nimport type { CsvCell } from '../types';\n\nfunction formatCell(value: CsvCell['value']): string {\n if (value === null || value === undefined) return '';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n const str = String(value);\n if (str.includes(',') || str.includes('\"') || str.includes('\\n') || str.includes('\\r')) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`;\n }\n return str;\n}\n\nexport function buildCsvContent(rows: CsvCell[][]): string {\n if (rows.length === 0) return '';\n const headers = rows[0].map(cell => formatCell(cell.label));\n const dataRows = rows.map(row => row.map(cell => formatCell(cell.value)).join(','));\n return [headers.join(','), ...dataRows].join('\\n');\n}\n\nexport function downloadCsv(rows: CsvCell[][], fileName: string): void {\n const content = buildCsvContent(rows);\n if (!content) return;\n const blob = new Blob([content], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `${fileName}.csv`;\n link.click();\n URL.revokeObjectURL(url);\n}\n","/**\n * @file tooltip.tsx\n * Toolbar components rendered above the table: a debounced search input,\n * an action button group (create / refresh / download), and the outer\n * toolbar shell that displays the table title.\n */\nimport { useCallback } from 'react';\n\nimport { ArrowRightIcon, BarChart2Icon, CirclePlus, DownloadIcon, RefreshCwIcon, SearchIcon } from 'lucide-react';\n\nimport { useDebounceCallback } from '@customafk/react-toolkit/hooks/useDebounceCallback';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '@/components/ui/input';\n\nimport { useUITableAnalysisContext, useUITableContext } from '../../hooks/use-context';\nimport { downloadCsv } from '../../utils/csv';\n\n/**\n * Debounced search input rendered inside the table toolbar.\n *\n * Fires `onSearch` 500 ms after the user stops typing and delegates all other\n * native input events via the spread `props`.\n *\n * @example\n * ```tsx\n * import { UITableTooltipFilter } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableTooltipFilter\n * placeholder=\"Search users…\"\n * onSearch={value => setQuery(value)}\n * />\n * ```\n */\nexport const UITableTooltipFilter: React.FC<\n Omit<React.ComponentProps<typeof Input>, 'className'> & {\n onSearch?: (value: string) => void;\n }\n> = ({ onSearch, onChange, ...props }) => {\n const debouncedSearch = useDebounceCallback((value: string) => {\n onSearch?.(value);\n }, 500);\n return (\n <div className=\"relative w-full max-w-80 flex-1\">\n <Input\n {...props}\n size=\"lg\"\n type=\"search\"\n placeholder=\"Tìm kiếm...\"\n className=\"flex-1 ps-9 pe-9\"\n onChange={e => {\n onChange?.(e);\n debouncedSearch(e.target.value ?? '');\n }}\n />\n <div className=\"pointer-events-none absolute inset-y-0 inset-s-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50\">\n <SearchIcon size={16} />\n </div>\n <button\n className=\"absolute inset-y-0 inset-e-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label=\"Submit search\"\n type=\"submit\"\n >\n <ArrowRightIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n );\n};\n\nconst ActionButton: React.FC<React.PropsWithChildren<React.ComponentProps<'button'>>> = ({ children, disabled, onClick, className, ...props }) => {\n return (\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'flex cursor-pointer items-center gap-x-1 rounded-sm border border-border bg-background p-2.5 text-sm text-text-positive-weak outline-none transition-all hover:shadow-card focus:border-border-emphasis focus:bg-muted-muted active:border-border-emphasis active:bg-muted-muted active:text-text-positive disabled:pointer-events-none disabled:cursor-default disabled:opacity-60 [&_svg]:size-3.5',\n className\n )}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n );\n};\n\n/**\n * Grouped action buttons (create, refresh, download) displayed in the table\n * toolbar.\n *\n * Each button is disabled automatically when the corresponding handler prop is\n * omitted, so only the actions relevant to a given table need to be provided.\n *\n * @example\n * ```tsx\n * import { UITableTooltipActions } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableTooltipActions\n * onCreate={() => setOpenCreate(true)}\n * onRefresh={() => refetch()}\n * />\n * ```\n */\nexport const UITableTooltipActions: React.FC<{\n onCreate?: () => void;\n onRefresh?: () => void;\n onDownload?: () => void;\n}> = ({ onCreate, onDownload, onRefresh }) => {\n const { table, csvData, csvFileName, title, showAnalysisPanel } = useUITableContext();\n const { isOpen: isAnalysisOpen, toggle: toggleAnalysis } = useUITableAnalysisContext();\n\n const handleDownload = useCallback(() => {\n if (onDownload) {\n onDownload();\n return;\n }\n if (!csvData || csvData.length === 0) return;\n const selectedRows = table.getSelectedRowModel().flatRows;\n const rows = selectedRows.length > 0 ? selectedRows.map(row => csvData[row.index]).filter(Boolean) : csvData;\n downloadCsv(rows, csvFileName || title);\n }, [onDownload, csvData, csvFileName, table, title]);\n\n const isDownloadEnabled = !!(onDownload || (csvData && csvData.length > 0));\n\n return (\n <div className=\"flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\">\n <ActionButton\n disabled={!onCreate}\n onClick={e => {\n onCreate?.();\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n <CirclePlus />\n </ActionButton>\n <ActionButton\n disabled={!onRefresh}\n onClick={e => {\n onRefresh?.();\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n <RefreshCwIcon />\n </ActionButton>\n <ActionButton\n disabled={!isDownloadEnabled}\n onClick={e => {\n handleDownload();\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n <DownloadIcon />\n </ActionButton>\n {showAnalysisPanel && (\n <ActionButton\n onClick={e => {\n toggleAnalysis();\n e.stopPropagation();\n e.preventDefault();\n }}\n aria-pressed={isAnalysisOpen}\n className={isAnalysisOpen ? 'bg-muted-muted text-text-positive' : undefined}\n >\n <BarChart2Icon />\n </ActionButton>\n )}\n </div>\n );\n};\n\n/**\n * Outer toolbar shell for the UITable component.\n *\n * Reads the table `title` from `UITableContext` and renders it as a heading\n * above the `children` slot, which typically contains a\n * `UITableTooltipFilter` and/or `UITableTooltipActions`.\n *\n * @example\n * ```tsx\n * import {\n * UITableTooltip,\n * UITableTooltipFilter,\n * UITableTooltipActions,\n * } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableTooltip>\n * <UITableTooltipFilter onSearch={setQuery} />\n * <UITableTooltipActions onCreate={handleCreate} onRefresh={refetch} />\n * </UITableTooltip>\n * ```\n */\nexport const UITableTooltip: React.FC<React.PropsWithChildren> = ({ children }) => {\n const { title, description, headerActions } = useUITableContext();\n return (\n <div data-slot=\"table-tooltip\" className=\"relative flex w-full flex-col gap-2 px-2 py-0 text-sm\">\n <div className=\"flex w-full items-start justify-between gap-4\">\n <div className=\"flex flex-col gap-0.5\">\n <h3 className=\"font-semibold text-base text-text-positive\">{title}</h3>\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n {headerActions && <div className=\"flex items-center gap-2 shrink-0\">{headerActions}</div>}\n </div>\n <div className=\"flex w-full flex-1 justify-between gap-x-2\">{children}</div>\n </div>\n );\n};\nUITableTooltip.displayName = 'TableTooltip';\n"],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { Tooltip } from "radix-ui";
2
+
3
+ //#region packages/components/ui/tooltip.d.ts
4
+ /**
5
+ * Context provider that controls the open delay for all child `Tooltip` components; defaults to `0` ms for instant display.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { TooltipProvider } from '@customafk/lunas-ui/ui/tooltip';
10
+ *
11
+ * // Wrap at the app root to apply a shared delay:
12
+ * <TooltipProvider delayDuration={300}>
13
+ * <App />
14
+ * </TooltipProvider>
15
+ * ```
16
+ */
17
+ declare function TooltipProvider({
18
+ delayDuration,
19
+ ...props
20
+ }: React.ComponentProps<typeof Tooltip.Provider>): import("react").JSX.Element;
21
+ /**
22
+ * Floating label that reveals supplementary text when the user hovers or focuses its trigger element.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * import { Tooltip, TooltipTrigger, TooltipContent } from '@customafk/lunas-ui/ui/tooltip';
27
+ * import { Button } from '@customafk/lunas-ui/ui/button';
28
+ *
29
+ * <Tooltip>
30
+ * <TooltipTrigger asChild>
31
+ * <Button variant="ghost" size="icon" aria-label="Settings">⚙</Button>
32
+ * </TooltipTrigger>
33
+ * <TooltipContent>Open settings</TooltipContent>
34
+ * </Tooltip>
35
+ * ```
36
+ */
37
+ declare function Tooltip$1({
38
+ ...props
39
+ }: React.ComponentProps<typeof Tooltip.Root>): import("react").JSX.Element;
40
+ /** Element that opens the tooltip on hover/focus; use `asChild` to forward props to a custom child element. */
41
+ declare function TooltipTrigger({
42
+ ...props
43
+ }: React.ComponentProps<typeof Tooltip.Trigger>): import("react").JSX.Element;
44
+ /** Floating panel rendered in a portal that displays the tooltip text with a directional arrow. */
45
+ declare function TooltipContent({
46
+ className,
47
+ sideOffset,
48
+ children,
49
+ ...props
50
+ }: React.ComponentProps<typeof Tooltip.Content>): import("react").JSX.Element;
51
+ //#endregion
52
+ export { TooltipTrigger as i, TooltipContent as n, TooltipProvider as r, Tooltip$1 as t };
53
+ //# sourceMappingURL=tooltip-D4U-RhIu.d.cts.map
@@ -0,0 +1,53 @@
1
+ import { Tooltip } from "radix-ui";
2
+
3
+ //#region packages/components/ui/tooltip.d.ts
4
+ /**
5
+ * Context provider that controls the open delay for all child `Tooltip` components; defaults to `0` ms for instant display.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * import { TooltipProvider } from '@customafk/lunas-ui/ui/tooltip';
10
+ *
11
+ * // Wrap at the app root to apply a shared delay:
12
+ * <TooltipProvider delayDuration={300}>
13
+ * <App />
14
+ * </TooltipProvider>
15
+ * ```
16
+ */
17
+ declare function TooltipProvider({
18
+ delayDuration,
19
+ ...props
20
+ }: React.ComponentProps<typeof Tooltip.Provider>): import("react").JSX.Element;
21
+ /**
22
+ * Floating label that reveals supplementary text when the user hovers or focuses its trigger element.
23
+ *
24
+ * @example
25
+ * ```tsx
26
+ * import { Tooltip, TooltipTrigger, TooltipContent } from '@customafk/lunas-ui/ui/tooltip';
27
+ * import { Button } from '@customafk/lunas-ui/ui/button';
28
+ *
29
+ * <Tooltip>
30
+ * <TooltipTrigger asChild>
31
+ * <Button variant="ghost" size="icon" aria-label="Settings">⚙</Button>
32
+ * </TooltipTrigger>
33
+ * <TooltipContent>Open settings</TooltipContent>
34
+ * </Tooltip>
35
+ * ```
36
+ */
37
+ declare function Tooltip$1({
38
+ ...props
39
+ }: React.ComponentProps<typeof Tooltip.Root>): import("react").JSX.Element;
40
+ /** Element that opens the tooltip on hover/focus; use `asChild` to forward props to a custom child element. */
41
+ declare function TooltipTrigger({
42
+ ...props
43
+ }: React.ComponentProps<typeof Tooltip.Trigger>): import("react").JSX.Element;
44
+ /** Floating panel rendered in a portal that displays the tooltip text with a directional arrow. */
45
+ declare function TooltipContent({
46
+ className,
47
+ sideOffset,
48
+ children,
49
+ ...props
50
+ }: React.ComponentProps<typeof Tooltip.Content>): import("react").JSX.Element;
51
+ //#endregion
52
+ export { TooltipTrigger as i, TooltipContent as n, TooltipProvider as r, Tooltip$1 as t };
53
+ //# sourceMappingURL=tooltip-D4U-RhIu.d.mts.map
@@ -0,0 +1,4 @@
1
+ const e=require("./tables-7aC9WFs9.cjs"),t=require("./ui/input.cjs");let n=require("lucide-react"),r=require("react"),i=require("@customafk/react-toolkit/utils"),a=require("react/jsx-runtime"),o=require("@customafk/react-toolkit/hooks/useDebounceCallback");function s(e){if(e==null)return``;if(typeof e==`number`)return String(e);if(typeof e==`boolean`)return e?`true`:`false`;let t=String(e);return t.includes(`,`)||t.includes(`"`)||t.includes(`
2
+ `)||t.includes(`\r`)?`"${t.replace(/"/g,`""`)}"`:t}function c(e){if(e.length===0)return``;let t=e[0].map(e=>s(e.label)),n=e.map(e=>e.map(e=>s(e.value)).join(`,`));return[t.join(`,`),...n].join(`
3
+ `)}function l(e,t){let n=c(e);if(!n)return;let r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${t}.csv`,a.click(),URL.revokeObjectURL(i)}const u=({onSearch:e,onChange:r,...i})=>{let s=(0,o.useDebounceCallback)(t=>{e?.(t)},500);return(0,a.jsxs)(`div`,{className:`relative w-full max-w-80 flex-1`,children:[(0,a.jsx)(t.Input,{...i,size:`lg`,type:`search`,placeholder:`Tìm kiếm...`,className:`flex-1 ps-9 pe-9`,onChange:e=>{r?.(e),s(e.target.value??``)}}),(0,a.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 inset-s-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,a.jsx)(n.SearchIcon,{size:16})}),(0,a.jsx)(`button`,{className:`absolute inset-y-0 inset-e-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,a.jsx)(n.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]})},d=({children:e,disabled:t,onClick:n,className:r,...o})=>(0,a.jsx)(`button`,{type:`button`,disabled:t,className:(0,i.cn)(`flex cursor-pointer items-center gap-x-1 rounded-sm border border-border bg-background p-2.5 text-sm text-text-positive-weak outline-none transition-all hover:shadow-card focus:border-border-emphasis focus:bg-muted-muted active:border-border-emphasis active:bg-muted-muted active:text-text-positive disabled:pointer-events-none disabled:cursor-default disabled:opacity-60 [&_svg]:size-3.5`,r),onClick:n,...o,children:e}),f=({onCreate:t,onDownload:i,onRefresh:o})=>{let{table:s,csvData:c,csvFileName:u,title:f,showAnalysisPanel:p}=e.q(),{isOpen:m,toggle:h}=e.G(),g=(0,r.useCallback)(()=>{if(i){i();return}if(!c||c.length===0)return;let e=s.getSelectedRowModel().flatRows;l(e.length>0?e.map(e=>c[e.index]).filter(Boolean):c,u||f)},[i,c,u,s,f]),_=!!(i||c&&c.length>0);return(0,a.jsxs)(`div`,{className:`flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,children:[(0,a.jsx)(d,{disabled:!t,onClick:e=>{t?.(),e.stopPropagation(),e.preventDefault()},children:(0,a.jsx)(n.CirclePlus,{})}),(0,a.jsx)(d,{disabled:!o,onClick:e=>{o?.(),e.stopPropagation(),e.preventDefault()},children:(0,a.jsx)(n.RefreshCwIcon,{})}),(0,a.jsx)(d,{disabled:!_,onClick:e=>{g(),e.stopPropagation(),e.preventDefault()},children:(0,a.jsx)(n.DownloadIcon,{})}),p&&(0,a.jsx)(d,{onClick:e=>{h(),e.stopPropagation(),e.preventDefault()},"aria-pressed":m,className:m?`bg-muted-muted text-text-positive`:void 0,children:(0,a.jsx)(n.BarChart2Icon,{})})]})},p=({children:t})=>{let{title:n,description:r,headerActions:i}=e.q();return(0,a.jsxs)(`div`,{"data-slot":`table-tooltip`,className:`relative flex w-full flex-col gap-2 px-2 py-0 text-sm`,children:[(0,a.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4`,children:[(0,a.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,a.jsx)(`h3`,{className:`font-semibold text-base text-text-positive`,children:n}),r&&(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:r})]}),i&&(0,a.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:i})]}),(0,a.jsx)(`div`,{className:`flex w-full flex-1 justify-between gap-x-2`,children:t})]})};p.displayName=`TableTooltip`,exports.UITableTooltip=p,exports.UITableTooltipActions=f,exports.UITableTooltipFilter=u;
4
+ //# sourceMappingURL=tooltip-octglTPf.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip-octglTPf.cjs","names":["Input","SearchIcon","ArrowRightIcon","useUITableContext","useUITableAnalysisContext","CirclePlus","RefreshCwIcon","DownloadIcon","BarChart2Icon"],"sources":["../packages/components/features/tables/utils/csv.ts","../packages/components/features/tables/components/table/tooltip.tsx"],"sourcesContent":["'use client';\n\nimport type { CsvCell } from '../types';\n\nfunction formatCell(value: CsvCell['value']): string {\n if (value === null || value === undefined) return '';\n if (typeof value === 'number') return String(value);\n if (typeof value === 'boolean') return value ? 'true' : 'false';\n const str = String(value);\n if (str.includes(',') || str.includes('\"') || str.includes('\\n') || str.includes('\\r')) {\n return `\"${str.replace(/\"/g, '\"\"')}\"`;\n }\n return str;\n}\n\nexport function buildCsvContent(rows: CsvCell[][]): string {\n if (rows.length === 0) return '';\n const headers = rows[0].map(cell => formatCell(cell.label));\n const dataRows = rows.map(row => row.map(cell => formatCell(cell.value)).join(','));\n return [headers.join(','), ...dataRows].join('\\n');\n}\n\nexport function downloadCsv(rows: CsvCell[][], fileName: string): void {\n const content = buildCsvContent(rows);\n if (!content) return;\n const blob = new Blob([content], { type: 'text/csv;charset=utf-8;' });\n const url = URL.createObjectURL(blob);\n const link = document.createElement('a');\n link.href = url;\n link.download = `${fileName}.csv`;\n link.click();\n URL.revokeObjectURL(url);\n}\n","/**\n * @file tooltip.tsx\n * Toolbar components rendered above the table: a debounced search input,\n * an action button group (create / refresh / download), and the outer\n * toolbar shell that displays the table title.\n */\nimport { useCallback } from 'react';\n\nimport { ArrowRightIcon, BarChart2Icon, CirclePlus, DownloadIcon, RefreshCwIcon, SearchIcon } from 'lucide-react';\n\nimport { useDebounceCallback } from '@customafk/react-toolkit/hooks/useDebounceCallback';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Input } from '@/components/ui/input';\n\nimport { useUITableAnalysisContext, useUITableContext } from '../../hooks/use-context';\nimport { downloadCsv } from '../../utils/csv';\n\n/**\n * Debounced search input rendered inside the table toolbar.\n *\n * Fires `onSearch` 500 ms after the user stops typing and delegates all other\n * native input events via the spread `props`.\n *\n * @example\n * ```tsx\n * import { UITableTooltipFilter } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableTooltipFilter\n * placeholder=\"Search users…\"\n * onSearch={value => setQuery(value)}\n * />\n * ```\n */\nexport const UITableTooltipFilter: React.FC<\n Omit<React.ComponentProps<typeof Input>, 'className'> & {\n onSearch?: (value: string) => void;\n }\n> = ({ onSearch, onChange, ...props }) => {\n const debouncedSearch = useDebounceCallback((value: string) => {\n onSearch?.(value);\n }, 500);\n return (\n <div className=\"relative w-full max-w-80 flex-1\">\n <Input\n {...props}\n size=\"lg\"\n type=\"search\"\n placeholder=\"Tìm kiếm...\"\n className=\"flex-1 ps-9 pe-9\"\n onChange={e => {\n onChange?.(e);\n debouncedSearch(e.target.value ?? '');\n }}\n />\n <div className=\"pointer-events-none absolute inset-y-0 inset-s-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50\">\n <SearchIcon size={16} />\n </div>\n <button\n className=\"absolute inset-y-0 inset-e-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label=\"Submit search\"\n type=\"submit\"\n >\n <ArrowRightIcon size={16} aria-hidden=\"true\" />\n </button>\n </div>\n );\n};\n\nconst ActionButton: React.FC<React.PropsWithChildren<React.ComponentProps<'button'>>> = ({ children, disabled, onClick, className, ...props }) => {\n return (\n <button\n type=\"button\"\n disabled={disabled}\n className={cn(\n 'flex cursor-pointer items-center gap-x-1 rounded-sm border border-border bg-background p-2.5 text-sm text-text-positive-weak outline-none transition-all hover:shadow-card focus:border-border-emphasis focus:bg-muted-muted active:border-border-emphasis active:bg-muted-muted active:text-text-positive disabled:pointer-events-none disabled:cursor-default disabled:opacity-60 [&_svg]:size-3.5',\n className\n )}\n onClick={onClick}\n {...props}\n >\n {children}\n </button>\n );\n};\n\n/**\n * Grouped action buttons (create, refresh, download) displayed in the table\n * toolbar.\n *\n * Each button is disabled automatically when the corresponding handler prop is\n * omitted, so only the actions relevant to a given table need to be provided.\n *\n * @example\n * ```tsx\n * import { UITableTooltipActions } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableTooltipActions\n * onCreate={() => setOpenCreate(true)}\n * onRefresh={() => refetch()}\n * />\n * ```\n */\nexport const UITableTooltipActions: React.FC<{\n onCreate?: () => void;\n onRefresh?: () => void;\n onDownload?: () => void;\n}> = ({ onCreate, onDownload, onRefresh }) => {\n const { table, csvData, csvFileName, title, showAnalysisPanel } = useUITableContext();\n const { isOpen: isAnalysisOpen, toggle: toggleAnalysis } = useUITableAnalysisContext();\n\n const handleDownload = useCallback(() => {\n if (onDownload) {\n onDownload();\n return;\n }\n if (!csvData || csvData.length === 0) return;\n const selectedRows = table.getSelectedRowModel().flatRows;\n const rows = selectedRows.length > 0 ? selectedRows.map(row => csvData[row.index]).filter(Boolean) : csvData;\n downloadCsv(rows, csvFileName || title);\n }, [onDownload, csvData, csvFileName, table, title]);\n\n const isDownloadEnabled = !!(onDownload || (csvData && csvData.length > 0));\n\n return (\n <div className=\"flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\">\n <ActionButton\n disabled={!onCreate}\n onClick={e => {\n onCreate?.();\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n <CirclePlus />\n </ActionButton>\n <ActionButton\n disabled={!onRefresh}\n onClick={e => {\n onRefresh?.();\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n <RefreshCwIcon />\n </ActionButton>\n <ActionButton\n disabled={!isDownloadEnabled}\n onClick={e => {\n handleDownload();\n e.stopPropagation();\n e.preventDefault();\n }}\n >\n <DownloadIcon />\n </ActionButton>\n {showAnalysisPanel && (\n <ActionButton\n onClick={e => {\n toggleAnalysis();\n e.stopPropagation();\n e.preventDefault();\n }}\n aria-pressed={isAnalysisOpen}\n className={isAnalysisOpen ? 'bg-muted-muted text-text-positive' : undefined}\n >\n <BarChart2Icon />\n </ActionButton>\n )}\n </div>\n );\n};\n\n/**\n * Outer toolbar shell for the UITable component.\n *\n * Reads the table `title` from `UITableContext` and renders it as a heading\n * above the `children` slot, which typically contains a\n * `UITableTooltipFilter` and/or `UITableTooltipActions`.\n *\n * @example\n * ```tsx\n * import {\n * UITableTooltip,\n * UITableTooltipFilter,\n * UITableTooltipActions,\n * } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableTooltip>\n * <UITableTooltipFilter onSearch={setQuery} />\n * <UITableTooltipActions onCreate={handleCreate} onRefresh={refetch} />\n * </UITableTooltip>\n * ```\n */\nexport const UITableTooltip: React.FC<React.PropsWithChildren> = ({ children }) => {\n const { title, description, headerActions } = useUITableContext();\n return (\n <div data-slot=\"table-tooltip\" className=\"relative flex w-full flex-col gap-2 px-2 py-0 text-sm\">\n <div className=\"flex w-full items-start justify-between gap-4\">\n <div className=\"flex flex-col gap-0.5\">\n <h3 className=\"font-semibold text-base text-text-positive\">{title}</h3>\n {description && <p className=\"text-sm text-muted-foreground\">{description}</p>}\n </div>\n {headerActions && <div className=\"flex items-center gap-2 shrink-0\">{headerActions}</div>}\n </div>\n <div className=\"flex w-full flex-1 justify-between gap-x-2\">{children}</div>\n </div>\n );\n};\nUITableTooltip.displayName = 'TableTooltip';\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ const e=require("./features/charts/index.cjs"),t=require("./ui/chart.cjs");let n=require("react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime"),a=require("recharts");const o=({data:o,label:s=`Sales`,maxItems:c=8,color:l=`var(--chart-1)`,valueFormatter:u=e.formatCompactNumber,showValueLabels:d=!0,className:f,animate:p=!0,height:m})=>{let h=(0,n.useMemo)(()=>[...o].sort((e,t)=>t.value-e.value).slice(0,c),[o,c]);return(0,i.jsx)(t.ChartContainer,{"data-slot":`top-products-bar-chart`,config:(0,n.useMemo)(()=>({value:{label:s,color:l}}),[s,l]),className:(0,r.cn)(`w-full`,f),style:m===void 0?void 0:{height:m,aspectRatio:`auto`},children:(0,i.jsxs)(a.BarChart,{data:h,layout:`vertical`,margin:{top:0,right:d?48:12,bottom:0,left:12},children:[(0,i.jsx)(a.XAxis,{type:`number`,dataKey:`value`,hide:!0}),(0,i.jsx)(a.YAxis,{type:`category`,dataKey:`name`,tickLine:!1,axisLine:!1,tickMargin:8,width:120}),(0,i.jsx)(t.ChartTooltip,{cursor:!1,content:(0,i.jsx)(t.ChartTooltipContent,{hideLabel:!0})}),(0,i.jsx)(a.Bar,{dataKey:`value`,fill:l,radius:4,isAnimationActive:p,children:d&&(0,i.jsx)(a.LabelList,{dataKey:`value`,position:`right`,offset:8,className:`fill-muted-strong`,fontSize:12,formatter:e=>u(Number(e))})})]})})};exports.TopProductsBarChart=o;
2
+ //# sourceMappingURL=top-products-bar-chart-5EJFSkeo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"top-products-bar-chart-5EJFSkeo.cjs","names":["formatCompactNumber","ChartContainer","BarChart","XAxis","YAxis","ChartTooltip","ChartTooltipContent","Bar","LabelList"],"sources":["../packages/components/features/charts/components/top-products-bar-chart.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, LabelList, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatCompactNumber } from '../utils';\n\nexport type TopProductsBarChartProps = BaseChartProps & {\n data: NamedValue[];\n /** Series label. Defaults to `'Sales'`. */\n label?: string;\n /** Number of items shown after sorting descending. Defaults to `8`. */\n maxItems?: number;\n color?: string;\n valueFormatter?: (value: number) => string;\n /** Value labels at the end of each bar. Defaults to `true`. */\n showValueLabels?: boolean;\n};\n\n/**\n * A horizontal bar ranking chart — top products, best categories, top customers.\n *\n * @example\n * ```tsx\n * import { TopProductsBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <TopProductsBarChart\n * data={[\n * { name: 'Wireless Earbuds', value: 1245 },\n * { name: 'Smart Watch', value: 986 },\n * ]}\n * />\n * ```\n */\nexport const TopProductsBarChart = ({\n data,\n label = 'Sales',\n maxItems = 8,\n color = 'var(--chart-1)',\n valueFormatter = formatCompactNumber,\n showValueLabels = true,\n className,\n animate = true,\n height,\n}: TopProductsBarChartProps) => {\n const chartData = useMemo(() => [...data].sort((a, b) => b.value - a.value).slice(0, maxItems), [data, maxItems]);\n\n const config = useMemo<ChartConfig>(() => ({ value: { label, color } }), [label, color]);\n\n return (\n <ChartContainer\n data-slot=\"top-products-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={chartData} layout=\"vertical\" margin={{ top: 0, right: showValueLabels ? 48 : 12, bottom: 0, left: 12 }}>\n <XAxis type=\"number\" dataKey=\"value\" hide />\n <YAxis type=\"category\" dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} width={120} />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n <Bar dataKey=\"value\" fill={color} radius={4} isAnimationActive={animate}>\n {showValueLabels && (\n <LabelList\n dataKey=\"value\"\n position=\"right\"\n offset={8}\n className=\"fill-muted-strong\"\n fontSize={12}\n formatter={(value: React.ReactNode) => valueFormatter(Number(value))}\n />\n )}\n </Bar>\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"mMAuCA,MAAa,GAAuB,CAClC,OACA,QAAQ,QACR,WAAW,EACX,QAAQ,iBACR,iBAAiBA,EAAAA,oBACjB,kBAAkB,GAClB,YACA,UAAU,GACV,YAC8B,CAC9B,IAAM,GAAA,EAAA,EAAA,QAAA,KAA0B,CAAC,GAAG,CAAI,CAAC,CAAC,MAAM,EAAG,IAAM,EAAE,MAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAG,CAAQ,EAAG,CAAC,EAAM,CAAQ,CAAC,EAIhH,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CACE,YAAU,yBACV,QAAA,EAAA,EAAA,QAAA,MALuC,CAAE,MAAO,CAAE,QAAO,OAAM,CAAE,GAAI,CAAC,EAAO,CAAK,CAKrE,EACb,WAAA,EAAA,EAAA,GAAA,CAAc,SAAU,CAAS,EACjC,MAAO,IAAW,IAAA,GAA8C,IAAA,GAAlC,CAAE,SAAQ,YAAa,MAAO,YAE5D,EAAA,EAAA,KAAA,CAACC,EAAAA,SAAD,CAAU,KAAM,EAAW,OAAO,WAAW,OAAQ,CAAE,IAAK,EAAG,MAAO,EAAkB,GAAK,GAAI,OAAQ,EAAG,KAAM,EAAG,WAArH,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,KAAK,SAAS,QAAQ,QAAQ,KAAA,EAAM,CAAA,GAC3C,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,KAAK,WAAW,QAAQ,OAAO,SAAU,GAAO,SAAU,GAAO,WAAY,EAAG,MAAO,GAAM,CAAA,GACpG,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CAAc,OAAQ,GAAO,SAAS,EAAA,EAAA,IAAA,CAACC,EAAAA,oBAAD,CAAqB,UAAA,EAAW,CAAA,CAAI,CAAA,GAC1E,EAAA,EAAA,IAAA,CAACC,EAAAA,IAAD,CAAK,QAAQ,QAAQ,KAAM,EAAO,OAAQ,EAAG,kBAAmB,WAC7D,IACC,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CACE,QAAQ,QACR,SAAS,QACT,OAAQ,EACR,UAAU,oBACV,SAAU,GACV,UAAY,GAA2B,EAAe,OAAO,CAAK,CAAC,CACpE,CAAA,CAEA,CAAA,CACG,GACI,CAAA,CAEpB"}
@@ -0,0 +1,2 @@
1
+ import{formatCompactNumber as e}from"./features/charts/index.mjs";import{ChartContainer as t,ChartTooltip as n,ChartTooltipContent as r}from"./ui/chart.mjs";import{useMemo as i}from"react";import{cn as a}from"@customafk/react-toolkit/utils";import{jsx as o,jsxs as s}from"react/jsx-runtime";import{Bar as c,BarChart as l,LabelList as u,XAxis as d,YAxis as f}from"recharts";const p=({data:p,label:m=`Sales`,maxItems:h=8,color:g=`var(--chart-1)`,valueFormatter:_=e,showValueLabels:v=!0,className:y,animate:b=!0,height:x})=>{let S=i(()=>[...p].sort((e,t)=>t.value-e.value).slice(0,h),[p,h]);return o(t,{"data-slot":`top-products-bar-chart`,config:i(()=>({value:{label:m,color:g}}),[m,g]),className:a(`w-full`,y),style:x===void 0?void 0:{height:x,aspectRatio:`auto`},children:s(l,{data:S,layout:`vertical`,margin:{top:0,right:v?48:12,bottom:0,left:12},children:[o(d,{type:`number`,dataKey:`value`,hide:!0}),o(f,{type:`category`,dataKey:`name`,tickLine:!1,axisLine:!1,tickMargin:8,width:120}),o(n,{cursor:!1,content:o(r,{hideLabel:!0})}),o(c,{dataKey:`value`,fill:g,radius:4,isAnimationActive:b,children:v&&o(u,{dataKey:`value`,position:`right`,offset:8,className:`fill-muted-strong`,fontSize:12,formatter:e=>_(Number(e))})})]})})};export{p as TopProductsBarChart};
2
+ //# sourceMappingURL=top-products-bar-chart-CKYaOGWT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"top-products-bar-chart-CKYaOGWT.mjs","names":[],"sources":["../packages/components/features/charts/components/top-products-bar-chart.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, LabelList, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatCompactNumber } from '../utils';\n\nexport type TopProductsBarChartProps = BaseChartProps & {\n data: NamedValue[];\n /** Series label. Defaults to `'Sales'`. */\n label?: string;\n /** Number of items shown after sorting descending. Defaults to `8`. */\n maxItems?: number;\n color?: string;\n valueFormatter?: (value: number) => string;\n /** Value labels at the end of each bar. Defaults to `true`. */\n showValueLabels?: boolean;\n};\n\n/**\n * A horizontal bar ranking chart — top products, best categories, top customers.\n *\n * @example\n * ```tsx\n * import { TopProductsBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <TopProductsBarChart\n * data={[\n * { name: 'Wireless Earbuds', value: 1245 },\n * { name: 'Smart Watch', value: 986 },\n * ]}\n * />\n * ```\n */\nexport const TopProductsBarChart = ({\n data,\n label = 'Sales',\n maxItems = 8,\n color = 'var(--chart-1)',\n valueFormatter = formatCompactNumber,\n showValueLabels = true,\n className,\n animate = true,\n height,\n}: TopProductsBarChartProps) => {\n const chartData = useMemo(() => [...data].sort((a, b) => b.value - a.value).slice(0, maxItems), [data, maxItems]);\n\n const config = useMemo<ChartConfig>(() => ({ value: { label, color } }), [label, color]);\n\n return (\n <ChartContainer\n data-slot=\"top-products-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={chartData} layout=\"vertical\" margin={{ top: 0, right: showValueLabels ? 48 : 12, bottom: 0, left: 12 }}>\n <XAxis type=\"number\" dataKey=\"value\" hide />\n <YAxis type=\"category\" dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} width={120} />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n <Bar dataKey=\"value\" fill={color} radius={4} isAnimationActive={animate}>\n {showValueLabels && (\n <LabelList\n dataKey=\"value\"\n position=\"right\"\n offset={8}\n className=\"fill-muted-strong\"\n fontSize={12}\n formatter={(value: React.ReactNode) => valueFormatter(Number(value))}\n />\n )}\n </Bar>\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"qXAuCA,MAAa,GAAuB,CAClC,OACA,QAAQ,QACR,WAAW,EACX,QAAQ,iBACR,iBAAiB,EACjB,kBAAkB,GAClB,YACA,UAAU,GACV,YAC8B,CAC9B,IAAM,EAAY,MAAc,CAAC,GAAG,CAAI,CAAC,CAAC,MAAM,EAAG,IAAM,EAAE,MAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,EAAG,CAAQ,EAAG,CAAC,EAAM,CAAQ,CAAC,EAIhH,OACE,EAAC,EAAD,CACE,YAAU,yBACV,OALW,OAA4B,CAAE,MAAO,CAAE,QAAO,OAAM,CAAE,GAAI,CAAC,EAAO,CAAK,CAKrE,EACb,UAAW,EAAG,SAAU,CAAS,EACjC,MAAO,IAAW,IAAA,GAA8C,IAAA,GAAlC,CAAE,SAAQ,YAAa,MAAO,WAE5D,EAAC,EAAD,CAAU,KAAM,EAAW,OAAO,WAAW,OAAQ,CAAE,IAAK,EAAG,MAAO,EAAkB,GAAK,GAAI,OAAQ,EAAG,KAAM,EAAG,WAArH,CACE,EAAC,EAAD,CAAO,KAAK,SAAS,QAAQ,QAAQ,KAAA,EAAM,CAAA,EAC3C,EAAC,EAAD,CAAO,KAAK,WAAW,QAAQ,OAAO,SAAU,GAAO,SAAU,GAAO,WAAY,EAAG,MAAO,GAAM,CAAA,EACpG,EAAC,EAAD,CAAc,OAAQ,GAAO,QAAS,EAAC,EAAD,CAAqB,UAAA,EAAW,CAAA,CAAI,CAAA,EAC1E,EAAC,EAAD,CAAK,QAAQ,QAAQ,KAAM,EAAO,OAAQ,EAAG,kBAAmB,WAC7D,GACC,EAAC,EAAD,CACE,QAAQ,QACR,SAAS,QACT,OAAQ,EACR,UAAU,oBACV,SAAU,GACV,UAAY,GAA2B,EAAe,OAAO,CAAK,CAAC,CACpE,CAAA,CAEA,CAAA,CACG,GACI,CAAA,CAEpB"}
@@ -0,0 +1,16 @@
1
+ //#region packages/components/ui/buttons/trash.d.ts
2
+ type Props = {
3
+ /** Callback invoked when the button is clicked. */onClick?: () => void;
4
+ };
5
+ /**
6
+ * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.
7
+ *
8
+ * @example
9
+ * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';
10
+ *
11
+ * <TrashBtn onClick={() => deleteRecord(record.id)} />
12
+ */
13
+ declare const TrashBtn: React.FC<Props>;
14
+ //#endregion
15
+ export { TrashBtn as t };
16
+ //# sourceMappingURL=trash-BfWSqlL4.d.cts.map
@@ -0,0 +1,16 @@
1
+ //#region packages/components/ui/buttons/trash.d.ts
2
+ type Props = {
3
+ /** Callback invoked when the button is clicked. */onClick?: () => void;
4
+ };
5
+ /**
6
+ * An icon-only ghost button that triggers a delete action, rendered with a trash-can icon.
7
+ *
8
+ * @example
9
+ * import { TrashBtn } from '@customafk/lunas-ui/ui/buttons/trash';
10
+ *
11
+ * <TrashBtn onClick={() => deleteRecord(record.id)} />
12
+ */
13
+ declare const TrashBtn: React.FC<Props>;
14
+ //#endregion
15
+ export { TrashBtn as t };
16
+ //# sourceMappingURL=trash-BfWSqlL4.d.mts.map
@@ -1,46 +1,2 @@
1
- import { VariantProps } from "class-variance-authority";
2
- import { ComponentPropsWithoutRef } from "react";
3
-
4
- //#region packages/components/typography/paragraph.d.ts
5
- declare const paragraphVariants: (props?: ({
6
- variant?: "xs" | "sm" | "lg" | "lead" | "p" | "muted" | null | undefined;
7
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
- /**
9
- * Props for the {@link Paragraph} component.
10
- *
11
- * Extends all native `<p>` HTML attributes plus the CVA variant.
12
- *
13
- * @property variant - Visual style variant.
14
- * - `'lead'` — large, medium-weight introductory text (default size `text-base` / `md:text-lg`)
15
- * - `'lg'` — large normal-weight text
16
- * - `'p'` — standard body text (default)
17
- * - `'sm'` — small normal-weight text with tighter leading
18
- * - `'muted'` — subdued colour, standard body size
19
- * - `'xs'` — extra-small text in a muted colour
20
- */
21
- type ParagraphProps = ComponentPropsWithoutRef<'p'> & VariantProps<typeof paragraphVariants>;
22
- /**
23
- * A styled `<p>` element with semantic size and weight variants for body text.
24
- *
25
- * @example
26
- * ```tsx
27
- * import { Paragraph } from '@customafk/lunas-ui/typography/paragraph';
28
- *
29
- * // Default body paragraph
30
- * <Paragraph>This is body text.</Paragraph>
31
- *
32
- * // Lead paragraph with larger, medium-weight text
33
- * <Paragraph variant="lead">Introducing our new feature.</Paragraph>
34
- *
35
- * // Muted helper text
36
- * <Paragraph variant="muted">Last updated 3 days ago.</Paragraph>
37
- * ```
38
- */
39
- declare const Paragraph: ({
40
- variant,
41
- className,
42
- ...props
43
- }: ParagraphProps) => import("react").JSX.Element;
44
- //#endregion
45
- export { Paragraph, ParagraphProps, paragraphVariants };
46
- //# sourceMappingURL=paragraph.d.cts.map
1
+ import { n as ParagraphProps, r as paragraphVariants, t as Paragraph } from "../paragraph-DbYYv0A0.cjs";
2
+ export { Paragraph, ParagraphProps, paragraphVariants };