@customafk/lunas-ui 0.2.64 → 0.2.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (772) hide show
  1. package/dist/FeatureDeveloping-zuTTDIh_.d.cts +41 -0
  2. package/dist/FeatureDeveloping-zuTTDIh_.d.mts +41 -0
  3. package/dist/FeatureFixing-DYQlgHPk.d.cts +41 -0
  4. package/dist/FeatureFixing-DYQlgHPk.d.mts +41 -0
  5. package/dist/LoginPage-vMXvwtxf.d.cts +53 -0
  6. package/dist/LoginPage-vMXvwtxf.d.mts +53 -0
  7. package/dist/NotAuthorized-CZIQ6EaA.d.cts +41 -0
  8. package/dist/NotAuthorized-CZIQ6EaA.d.mts +41 -0
  9. package/dist/NotFound-CRSKxhV8.d.cts +41 -0
  10. package/dist/NotFound-CRSKxhV8.d.mts +41 -0
  11. package/dist/RegisterPage-BBtpEzvL.d.cts +50 -0
  12. package/dist/RegisterPage-BBtpEzvL.d.mts +50 -0
  13. package/dist/VerifyEmailPage-CsmIeYLu.d.cts +62 -0
  14. package/dist/VerifyEmailPage-CsmIeYLu.d.mts +62 -0
  15. package/dist/action-submit-42PxGLsR.cjs +2 -0
  16. package/dist/action-submit-42PxGLsR.cjs.map +1 -0
  17. package/dist/action-submit-SviPJW3i.mjs +2 -0
  18. package/dist/action-submit-SviPJW3i.mjs.map +1 -0
  19. package/dist/actions-form-Bo46j_dH.cjs +2 -0
  20. package/dist/actions-form-Bo46j_dH.cjs.map +1 -0
  21. package/dist/actions-form-QdAsKwcQ.mjs +2 -0
  22. package/dist/actions-form-QdAsKwcQ.mjs.map +1 -0
  23. package/dist/activity-heatmap-chart-DufvFndI.mjs +2 -0
  24. package/dist/activity-heatmap-chart-DufvFndI.mjs.map +1 -0
  25. package/dist/activity-heatmap-chart-gDcvIAK_.cjs +2 -0
  26. package/dist/activity-heatmap-chart-gDcvIAK_.cjs.map +1 -0
  27. package/dist/add-new-DkBwXh0Q.d.cts +16 -0
  28. package/dist/add-new-DkBwXh0Q.d.mts +16 -0
  29. package/dist/alert-dialog-Cdhz7jSj.d.cts +88 -0
  30. package/dist/alert-dialog-Cdhz7jSj.d.mts +88 -0
  31. package/dist/analysis-panel-DzsZKA9l.cjs +2 -0
  32. package/dist/analysis-panel-DzsZKA9l.cjs.map +1 -0
  33. package/dist/analysis-panel-ikcRtzG9.mjs +2 -0
  34. package/dist/analysis-panel-ikcRtzG9.mjs.map +1 -0
  35. package/dist/aspect-ratio-huscluwJ.d.cts +22 -0
  36. package/dist/aspect-ratio-huscluwJ.d.mts +22 -0
  37. package/dist/avatar-BpeFwSkQ.d.cts +33 -0
  38. package/dist/avatar-BpeFwSkQ.d.mts +33 -0
  39. package/dist/avatar-name-display-BrpnTqa_.mjs +2 -0
  40. package/dist/avatar-name-display-BrpnTqa_.mjs.map +1 -0
  41. package/dist/avatar-name-display-CLi1DJUs.cjs +2 -0
  42. package/dist/avatar-name-display-CLi1DJUs.cjs.map +1 -0
  43. package/dist/{badge-D0InQSvM.d.cts → badge-MRT40pxM.d.cts} +3 -3
  44. package/dist/{badge-D0InQSvM.d.mts → badge-MRT40pxM.d.mts} +3 -3
  45. package/dist/badge-display-9WXwgQgH.cjs +2 -0
  46. package/dist/badge-display-9WXwgQgH.cjs.map +1 -0
  47. package/dist/badge-display-Dx-dITLB.mjs +2 -0
  48. package/dist/badge-display-Dx-dITLB.mjs.map +1 -0
  49. package/dist/boolean-display-OVCtvzI1.mjs +2 -0
  50. package/dist/boolean-display-OVCtvzI1.mjs.map +1 -0
  51. package/dist/boolean-display-pmzYS-ND.cjs +2 -0
  52. package/dist/boolean-display-pmzYS-ND.cjs.map +1 -0
  53. package/dist/breadcrumb-CSpScKZm.d.cts +69 -0
  54. package/dist/breadcrumb-CSpScKZm.d.mts +69 -0
  55. package/dist/{button-DIqm3YRo.d.cts → button-Bk4Y6_9I.d.cts} +3 -3
  56. package/dist/{button-DIqm3YRo.d.mts → button-Bk4Y6_9I.d.mts} +3 -3
  57. package/dist/button-group-Cd5m5G3p.d.mts +48 -0
  58. package/dist/button-group-CiKhLVCg.d.cts +48 -0
  59. package/dist/calendar-DPKt7D3w.d.mts +43 -0
  60. package/dist/calendar-stv2bJv0.d.cts +43 -0
  61. package/dist/candlestick-chart-CiBiCU3y.mjs +2 -0
  62. package/dist/candlestick-chart-CiBiCU3y.mjs.map +1 -0
  63. package/dist/candlestick-chart-CqmRkfXj.cjs +2 -0
  64. package/dist/candlestick-chart-CqmRkfXj.cjs.map +1 -0
  65. package/dist/card-DOnx7RKz.d.cts +60 -0
  66. package/dist/card-DOnx7RKz.d.mts +60 -0
  67. package/dist/card-form-BR5kDTzB.cjs +2 -0
  68. package/dist/card-form-BR5kDTzB.cjs.map +1 -0
  69. package/dist/card-form-D9fNO-6F.mjs +2 -0
  70. package/dist/card-form-D9fNO-6F.mjs.map +1 -0
  71. package/dist/cards/grid-product-card.d.cts +2 -30
  72. package/dist/cards/grid-product-card.d.mts +2 -30
  73. package/dist/cards/product-card.d.cts +2 -30
  74. package/dist/cards/product-card.d.mts +2 -30
  75. package/dist/cards/simple-card.d.cts +2 -29
  76. package/dist/cards/simple-card.d.mts +2 -29
  77. package/dist/carousel-CV3IZ96x.d.mts +70 -0
  78. package/dist/carousel-c2XuzmYN.d.cts +70 -0
  79. package/dist/chart-sYFksFMk.d.cts +80 -0
  80. package/dist/chart-sYFksFMk.d.mts +80 -0
  81. package/dist/checkbox-XfLNnG0S.d.cts +24 -0
  82. package/dist/checkbox-XfLNnG0S.d.mts +24 -0
  83. package/dist/checkbox-field-B1vCz-Wf.cjs +2 -0
  84. package/dist/checkbox-field-B1vCz-Wf.cjs.map +1 -0
  85. package/dist/checkbox-field-FqCe38_D.mjs +2 -0
  86. package/dist/checkbox-field-FqCe38_D.mjs.map +1 -0
  87. package/dist/{cms-layout-SubgSF72.cjs → cms-layout-CGGJqbr0.cjs} +2 -2
  88. package/dist/{cms-layout-SubgSF72.cjs.map → cms-layout-CGGJqbr0.cjs.map} +1 -1
  89. package/dist/{cms-layout-CuF5ahpj.mjs → cms-layout-ePySxIQN.mjs} +2 -2
  90. package/dist/{cms-layout-CuF5ahpj.mjs.map → cms-layout-ePySxIQN.mjs.map} +1 -1
  91. package/dist/collapsible-liIHmFuw.d.cts +32 -0
  92. package/dist/collapsible-liIHmFuw.d.mts +32 -0
  93. package/dist/combobox-field-D6fiCcvU.mjs +2 -0
  94. package/dist/combobox-field-D6fiCcvU.mjs.map +1 -0
  95. package/dist/combobox-field-DLpH6J9H.cjs +2 -0
  96. package/dist/combobox-field-DLpH6J9H.cjs.map +1 -0
  97. package/dist/command-Bb6SneVI.d.mts +87 -0
  98. package/dist/command-CHSJVU9o.d.cts +87 -0
  99. package/dist/confirm-dialog-B8Vu0z8S.d.cts +142 -0
  100. package/dist/confirm-dialog-B8Vu0z8S.d.mts +142 -0
  101. package/dist/container-form-BdsEX0NH.mjs +2 -0
  102. package/dist/container-form-BdsEX0NH.mjs.map +1 -0
  103. package/dist/container-form-CxxUYctk.cjs +2 -0
  104. package/dist/container-form-CxxUYctk.cjs.map +1 -0
  105. package/dist/context-menu-BOlGSuep.d.cts +123 -0
  106. package/dist/context-menu-BOlGSuep.d.mts +123 -0
  107. package/dist/conversion-funnel-chart-CW_zDfKS.mjs +2 -0
  108. package/dist/conversion-funnel-chart-CW_zDfKS.mjs.map +1 -0
  109. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs +2 -0
  110. package/dist/conversion-funnel-chart-r2m2QbiQ.cjs.map +1 -0
  111. package/dist/correlation-scatter-chart-Djtt7NU7.mjs +2 -0
  112. package/dist/correlation-scatter-chart-Djtt7NU7.mjs.map +1 -0
  113. package/dist/correlation-scatter-chart-HF48YUIB.cjs +2 -0
  114. package/dist/correlation-scatter-chart-HF48YUIB.cjs.map +1 -0
  115. package/dist/country-C8QijcHF.d.mts +21 -0
  116. package/dist/country-CJIaO0I7.d.cts +21 -0
  117. package/dist/currency-display-B91H66HM.cjs +2 -0
  118. package/dist/currency-display-B91H66HM.cjs.map +1 -0
  119. package/dist/currency-display-BN1i8jnU.mjs +2 -0
  120. package/dist/currency-display-BN1i8jnU.mjs.map +1 -0
  121. package/dist/data-display/country.d.cts +2 -21
  122. package/dist/data-display/country.d.mts +2 -21
  123. package/dist/data-display/data-list.d.cts +2 -38
  124. package/dist/data-display/data-list.d.mts +2 -38
  125. package/dist/data-display/date-tooltip.d.cts +2 -18
  126. package/dist/data-display/date-tooltip.d.mts +2 -18
  127. package/dist/data-display/date.d.cts +2 -39
  128. package/dist/data-display/date.d.mts +2 -39
  129. package/dist/data-display/empty.d.cts +2 -19
  130. package/dist/data-display/empty.d.mts +2 -19
  131. package/dist/data-display/name.d.cts +2 -18
  132. package/dist/data-display/name.d.mts +2 -18
  133. package/dist/data-display/phone-number.d.cts +2 -18
  134. package/dist/data-display/phone-number.d.mts +2 -18
  135. package/dist/data-display/role-badge.d.cts +2 -21
  136. package/dist/data-display/role-badge.d.mts +2 -21
  137. package/dist/data-display/statistic.d.cts +2 -45
  138. package/dist/data-display/statistic.d.mts +2 -45
  139. package/dist/data-display/user.d.cts +2 -20
  140. package/dist/data-display/user.d.mts +2 -20
  141. package/dist/data-list-Cg510z2m.d.cts +38 -0
  142. package/dist/data-list-Cg510z2m.d.mts +38 -0
  143. package/dist/date-KANPBbN4.d.cts +39 -0
  144. package/dist/date-KANPBbN4.d.mts +39 -0
  145. package/dist/date-display-BWtvWDHK.mjs +2 -0
  146. package/dist/date-display-BWtvWDHK.mjs.map +1 -0
  147. package/dist/date-display-odcC9NcB.cjs +2 -0
  148. package/dist/date-display-odcC9NcB.cjs.map +1 -0
  149. package/dist/date-field-Cxbrc0Vl.mjs +2 -0
  150. package/dist/date-field-Cxbrc0Vl.mjs.map +1 -0
  151. package/dist/date-field-RvEB9F1r.cjs +2 -0
  152. package/dist/date-field-RvEB9F1r.cjs.map +1 -0
  153. package/dist/date-tooltip-DptxGOj_.d.cts +18 -0
  154. package/dist/date-tooltip-DptxGOj_.d.mts +18 -0
  155. package/dist/description-display-BubAcFan.mjs +2 -0
  156. package/dist/description-display-BubAcFan.mjs.map +1 -0
  157. package/dist/description-display-CKe0j3q-.cjs +2 -0
  158. package/dist/description-display-CKe0j3q-.cjs.map +1 -0
  159. package/dist/dialog-form-C0W5C0u9.mjs +2 -0
  160. package/dist/dialog-form-C0W5C0u9.mjs.map +1 -0
  161. package/dist/dialog-form-CkNCwzWG.cjs +2 -0
  162. package/dist/dialog-form-CkNCwzWG.cjs.map +1 -0
  163. package/dist/dialogs/confirm-dialog.cjs +1 -1
  164. package/dist/dialogs/confirm-dialog.cjs.map +1 -1
  165. package/dist/dialogs/confirm-dialog.d.cts +2 -142
  166. package/dist/dialogs/confirm-dialog.d.mts +2 -142
  167. package/dist/dialogs/confirm-dialog.mjs +1 -1
  168. package/dist/dialogs/confirm-dialog.mjs.map +1 -1
  169. package/dist/dialogs/detail-dialog/components/sidebar.cjs +1 -1
  170. package/dist/dialogs/detail-dialog/components/sidebar.cjs.map +1 -1
  171. package/dist/dialogs/detail-dialog/components/sidebar.d.cts +50 -38
  172. package/dist/dialogs/detail-dialog/components/sidebar.d.mts +50 -38
  173. package/dist/dialogs/detail-dialog/components/sidebar.mjs +1 -1
  174. package/dist/dialogs/detail-dialog/components/sidebar.mjs.map +1 -1
  175. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  176. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  177. package/dist/dialogs/detail-dialog/index.d.cts +2 -36
  178. package/dist/dialogs/detail-dialog/index.d.mts +2 -36
  179. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  180. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  181. package/dist/dialogs/error-dialog.d.cts +2 -22
  182. package/dist/dialogs/error-dialog.d.mts +2 -22
  183. package/dist/dialogs/loading-dialog.d.cts +2 -19
  184. package/dist/dialogs/loading-dialog.d.mts +2 -19
  185. package/dist/donut-chart-CsPPKy0G.cjs +2 -0
  186. package/dist/donut-chart-CsPPKy0G.cjs.map +1 -0
  187. package/dist/donut-chart-eKZjuzW0.mjs +2 -0
  188. package/dist/donut-chart-eKZjuzW0.mjs.map +1 -0
  189. package/dist/drawer-Dwx99ff3.d.cts +70 -0
  190. package/dist/drawer-Dwx99ff3.d.mts +70 -0
  191. package/dist/dropdown-menu-CcMccVns.d.cts +125 -0
  192. package/dist/dropdown-menu-CcMccVns.d.mts +125 -0
  193. package/dist/edit-button-0_FLZoT3.cjs +2 -0
  194. package/dist/edit-button-0_FLZoT3.cjs.map +1 -0
  195. package/dist/edit-button-DmMFMzG0.mjs +2 -0
  196. package/dist/edit-button-DmMFMzG0.mjs.map +1 -0
  197. package/dist/edit-qfS5kOtM.d.cts +16 -0
  198. package/dist/edit-qfS5kOtM.d.mts +16 -0
  199. package/dist/email-display-BLt60GQ1.cjs +2 -0
  200. package/dist/email-display-BLt60GQ1.cjs.map +1 -0
  201. package/dist/email-display-CMme47S9.mjs +2 -0
  202. package/dist/email-display-CMme47S9.mjs.map +1 -0
  203. package/dist/email-field-BErx3liY.cjs +2 -0
  204. package/dist/email-field-BErx3liY.cjs.map +1 -0
  205. package/dist/email-field-BtcdBWL4.mjs +2 -0
  206. package/dist/email-field-BtcdBWL4.mjs.map +1 -0
  207. package/dist/empty-CaNJjp05.d.cts +65 -0
  208. package/dist/empty-CaNJjp05.d.mts +65 -0
  209. package/dist/empty-ClQptIZH.d.cts +19 -0
  210. package/dist/empty-ClQptIZH.d.mts +19 -0
  211. package/dist/error-dialog-D4jOPhmw.d.cts +22 -0
  212. package/dist/error-dialog-D4jOPhmw.d.mts +22 -0
  213. package/dist/features/charts/index.cjs +1 -1
  214. package/dist/features/charts/index.cjs.map +1 -1
  215. package/dist/features/charts/index.d.cts +2 -904
  216. package/dist/features/charts/index.d.mts +2 -904
  217. package/dist/features/charts/index.mjs +1 -1
  218. package/dist/features/charts/index.mjs.map +1 -1
  219. package/dist/features/descriptions/index.cjs +1 -1
  220. package/dist/features/descriptions/index.cjs.map +1 -1
  221. package/dist/features/descriptions/index.d.cts +2 -231
  222. package/dist/features/descriptions/index.d.mts +2 -231
  223. package/dist/features/descriptions/index.mjs +1 -1
  224. package/dist/features/descriptions/index.mjs.map +1 -1
  225. package/dist/features/search-modal/index.d.cts +2 -14
  226. package/dist/features/search-modal/index.d.mts +2 -14
  227. package/dist/features/tables/index.cjs +1 -1
  228. package/dist/features/tables/index.d.cts +2 -2
  229. package/dist/features/tables/index.d.mts +2 -2
  230. package/dist/features/tables/index.mjs +1 -1
  231. package/dist/features/tanstack-form/index.cjs +1 -1
  232. package/dist/features/tanstack-form/index.d.cts +1 -1
  233. package/dist/features/tanstack-form/index.d.mts +1 -1
  234. package/dist/features/tanstack-form/index.mjs +1 -1
  235. package/dist/features/text-editor/index.cjs +1 -1
  236. package/dist/features/text-editor/index.d.cts +1 -1
  237. package/dist/features/text-editor/index.d.mts +1 -1
  238. package/dist/features/text-editor/index.mjs +1 -1
  239. package/dist/field-BKyUqvzh.mjs +2 -0
  240. package/dist/field-BKyUqvzh.mjs.map +1 -0
  241. package/dist/field-BV5twmKA.cjs +2 -0
  242. package/dist/field-BV5twmKA.cjs.map +1 -0
  243. package/dist/file-uploader-U64lH0zG.d.cts +101 -0
  244. package/dist/file-uploader-U64lH0zG.d.mts +101 -0
  245. package/dist/filter-CMzD5h0M.mjs +2 -0
  246. package/dist/filter-CMzD5h0M.mjs.map +1 -0
  247. package/dist/filter-Cmg6SHMu.cjs +2 -0
  248. package/dist/filter-Cmg6SHMu.cjs.map +1 -0
  249. package/dist/flex-CT71VV-I.d.cts +114 -0
  250. package/dist/flex-CT71VV-I.d.mts +114 -0
  251. package/dist/form-CMP15S4r.d.cts +109 -0
  252. package/dist/form-CMP15S4r.d.mts +109 -0
  253. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs +2 -0
  254. package/dist/gain-loss-bar-chart-Dz1oAj8H.mjs.map +1 -0
  255. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs +2 -0
  256. package/dist/gain-loss-bar-chart-FUzN7DxF.cjs.map +1 -0
  257. package/dist/google-Bl-jBW8L.d.cts +48 -0
  258. package/dist/google-Bl-jBW8L.d.mts +48 -0
  259. package/dist/grid-i7Oz2Izf.d.cts +19 -0
  260. package/dist/grid-i7Oz2Izf.d.mts +19 -0
  261. package/dist/grid-product-card-bpADqDOQ.d.cts +30 -0
  262. package/dist/grid-product-card-bpADqDOQ.d.mts +30 -0
  263. package/dist/group-field-0kStiX8n.cjs +2 -0
  264. package/dist/group-field-0kStiX8n.cjs.map +1 -0
  265. package/dist/group-field-bviEXmo4.mjs +2 -0
  266. package/dist/group-field-bviEXmo4.mjs.map +1 -0
  267. package/dist/hover-card-Prwm-0Q4.d.cts +35 -0
  268. package/dist/hover-card-Prwm-0Q4.d.mts +35 -0
  269. package/dist/image-Cln0r7Eb.d.cts +27 -0
  270. package/dist/image-Cln0r7Eb.d.mts +27 -0
  271. package/dist/{index-CGpGIM1H.d.cts → index-BRE7tL8d.d.cts} +121 -500
  272. package/dist/index-C2HFO3a9.d.mts +231 -0
  273. package/dist/index-C9eXmnvk.d.cts +36 -0
  274. package/dist/index-C9eXmnvk.d.mts +36 -0
  275. package/dist/index-CBntsHIg.d.cts +520 -0
  276. package/dist/index-CBntsHIg.d.mts +520 -0
  277. package/dist/{index-DOaKN0wJ.d.cts → index-D9bKlLiM.d.cts} +2 -22
  278. package/dist/{index-DOaKN0wJ.d.mts → index-D9bKlLiM.d.mts} +2 -22
  279. package/dist/{index-C2KjuFXQ.d.cts → index-DDROD2y9.d.cts} +596 -1117
  280. package/dist/{index-C2KjuFXQ.d.mts → index-DDROD2y9.d.mts} +596 -1117
  281. package/dist/index-DJiiPHPf.d.cts +59 -0
  282. package/dist/index-DJiiPHPf.d.mts +59 -0
  283. package/dist/index-DtIL69PB.d.cts +14 -0
  284. package/dist/index-DtIL69PB.d.mts +14 -0
  285. package/dist/{index-DueBB0rP.d.mts → index-DvoLzsh0.d.mts} +121 -500
  286. package/dist/index-fZChR7MS.d.cts +231 -0
  287. package/dist/index.cjs +1 -1
  288. package/dist/index.d.cts +92 -92
  289. package/dist/index.d.mts +92 -92
  290. package/dist/index.mjs +1 -1
  291. package/dist/indexed-performance-line-chart-CT79KOM6.cjs +2 -0
  292. package/dist/indexed-performance-line-chart-CT79KOM6.cjs.map +1 -0
  293. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs +2 -0
  294. package/dist/indexed-performance-line-chart-D7F-rIMv.mjs.map +1 -0
  295. package/dist/{input-BJMvABEL.d.cts → input-BieGEIDf.d.cts} +2 -2
  296. package/dist/{input-BJMvABEL.d.mts → input-BieGEIDf.d.mts} +2 -2
  297. package/dist/input-otp-6hJfhBHX.d.cts +56 -0
  298. package/dist/input-otp-6hJfhBHX.d.mts +56 -0
  299. package/dist/item-DTR2f2CX.d.cts +99 -0
  300. package/dist/item-cIhkI3ZI.d.mts +99 -0
  301. package/dist/label-DPG_GY7h.d.cts +22 -0
  302. package/dist/label-DPG_GY7h.d.mts +22 -0
  303. package/dist/layouts/cms-layout/index.cjs +1 -1
  304. package/dist/layouts/cms-layout/index.mjs +1 -1
  305. package/dist/layouts/flex.d.cts +2 -114
  306. package/dist/layouts/flex.d.mts +2 -114
  307. package/dist/layouts/grid.d.cts +2 -19
  308. package/dist/layouts/grid.d.mts +2 -19
  309. package/dist/layouts/payment-layout/index.cjs +1 -1
  310. package/dist/layouts/payment-layout/index.d.cts +2 -59
  311. package/dist/layouts/payment-layout/index.d.mts +2 -59
  312. package/dist/layouts/payment-layout/index.mjs +1 -1
  313. package/dist/list-display-BuRCso6J.mjs +2 -0
  314. package/dist/list-display-BuRCso6J.mjs.map +1 -0
  315. package/dist/list-display-DEU6yFa9.cjs +2 -0
  316. package/dist/list-display-DEU6yFa9.cjs.map +1 -0
  317. package/dist/loading-dialog-C73EJx9s.d.cts +19 -0
  318. package/dist/loading-dialog-C73EJx9s.d.mts +19 -0
  319. package/dist/menubar-CFrn3S96.d.cts +133 -0
  320. package/dist/menubar-CFrn3S96.d.mts +133 -0
  321. package/dist/metric-radar-chart-6LTGQHsL.mjs +2 -0
  322. package/dist/metric-radar-chart-6LTGQHsL.mjs.map +1 -0
  323. package/dist/metric-radar-chart-DwgbXgJX.cjs +2 -0
  324. package/dist/metric-radar-chart-DwgbXgJX.cjs.map +1 -0
  325. package/dist/mirrored-bar-chart-BT7AYPJB.mjs +2 -0
  326. package/dist/mirrored-bar-chart-BT7AYPJB.mjs.map +1 -0
  327. package/dist/mirrored-bar-chart-BwjtExjh.cjs +2 -0
  328. package/dist/mirrored-bar-chart-BwjtExjh.cjs.map +1 -0
  329. package/dist/more-button-BKBcXz6E.mjs +2 -0
  330. package/dist/more-button-BKBcXz6E.mjs.map +1 -0
  331. package/dist/more-button-RYvZgYiu.cjs +2 -0
  332. package/dist/more-button-RYvZgYiu.cjs.map +1 -0
  333. package/dist/multi-select-BbiKgAYs.d.cts +116 -0
  334. package/dist/multi-select-BoBHt_Z9.d.mts +116 -0
  335. package/dist/name-7aoM5rAW.d.cts +18 -0
  336. package/dist/name-7aoM5rAW.d.mts +18 -0
  337. package/dist/name-display-B6X52ip_.cjs +2 -0
  338. package/dist/name-display-B6X52ip_.cjs.map +1 -0
  339. package/dist/name-display-DXMZ8Lug.mjs +2 -0
  340. package/dist/name-display-DXMZ8Lug.mjs.map +1 -0
  341. package/dist/navigation-menu-B1BY9Zll.d.cts +73 -0
  342. package/dist/navigation-menu-B1BY9Zll.d.mts +73 -0
  343. package/dist/number-field-BjVjf6s4.mjs +2 -0
  344. package/dist/number-field-BjVjf6s4.mjs.map +1 -0
  345. package/dist/number-field-DmKh7bbY.cjs +2 -0
  346. package/dist/number-field-DmKh7bbY.cjs.map +1 -0
  347. package/dist/number-input-CqkegUWs.mjs +2 -0
  348. package/dist/number-input-CqkegUWs.mjs.map +1 -0
  349. package/dist/number-input-kTh9zzr7.cjs +2 -0
  350. package/dist/number-input-kTh9zzr7.cjs.map +1 -0
  351. package/dist/orders-bar-chart-9RmtP6In.cjs +2 -0
  352. package/dist/orders-bar-chart-9RmtP6In.cjs.map +1 -0
  353. package/dist/orders-bar-chart-DQhJGmwY.mjs +2 -0
  354. package/dist/orders-bar-chart-DQhJGmwY.mjs.map +1 -0
  355. package/dist/pages/FeatureDeveloping.d.cts +2 -41
  356. package/dist/pages/FeatureDeveloping.d.mts +2 -41
  357. package/dist/pages/FeatureFixing.d.cts +2 -41
  358. package/dist/pages/FeatureFixing.d.mts +2 -41
  359. package/dist/pages/LoginPage.cjs +1 -1
  360. package/dist/pages/LoginPage.cjs.map +1 -1
  361. package/dist/pages/LoginPage.d.cts +2 -53
  362. package/dist/pages/LoginPage.d.mts +2 -53
  363. package/dist/pages/LoginPage.mjs +1 -1
  364. package/dist/pages/LoginPage.mjs.map +1 -1
  365. package/dist/pages/NotAuthorized.d.cts +2 -41
  366. package/dist/pages/NotAuthorized.d.mts +2 -41
  367. package/dist/pages/NotFound.d.cts +2 -41
  368. package/dist/pages/NotFound.d.mts +2 -41
  369. package/dist/pages/RegisterPage.cjs +1 -1
  370. package/dist/pages/RegisterPage.cjs.map +1 -1
  371. package/dist/pages/RegisterPage.d.cts +2 -50
  372. package/dist/pages/RegisterPage.d.mts +2 -50
  373. package/dist/pages/RegisterPage.mjs +1 -1
  374. package/dist/pages/RegisterPage.mjs.map +1 -1
  375. package/dist/pages/VerifyEmailPage.d.cts +2 -62
  376. package/dist/pages/VerifyEmailPage.d.mts +2 -62
  377. package/dist/pagination-B2fyP0J2.d.cts +64 -0
  378. package/dist/pagination-DY0PBCnI.d.mts +64 -0
  379. package/dist/paragraph-BTmvVS1S.d.mts +46 -0
  380. package/dist/paragraph-DbYYv0A0.d.cts +46 -0
  381. package/dist/password-field-C5FsQUa8.mjs +2 -0
  382. package/dist/password-field-C5FsQUa8.mjs.map +1 -0
  383. package/dist/password-field-gHYDiXWY.cjs +2 -0
  384. package/dist/password-field-gHYDiXWY.cjs.map +1 -0
  385. package/dist/payment-layout-Cb-Q8KD2.cjs +2 -0
  386. package/dist/{payment-layout-BLrXT-oc.cjs.map → payment-layout-Cb-Q8KD2.cjs.map} +1 -1
  387. package/dist/{payment-layout-Dsz6wYT1.mjs → payment-layout-DS5CEH1h.mjs} +2 -2
  388. package/dist/{payment-layout-Dsz6wYT1.mjs.map → payment-layout-DS5CEH1h.mjs.map} +1 -1
  389. package/dist/permalink-CZ3g9daG.mjs +2 -0
  390. package/dist/permalink-CZ3g9daG.mjs.map +1 -0
  391. package/dist/permalink-DeeEKhfc.cjs +2 -0
  392. package/dist/permalink-DeeEKhfc.cjs.map +1 -0
  393. package/dist/phone-number-6b_pkGI1.d.cts +18 -0
  394. package/dist/phone-number-6b_pkGI1.d.mts +18 -0
  395. package/dist/phone-number-C43z68gT.mjs +2 -0
  396. package/dist/phone-number-C43z68gT.mjs.map +1 -0
  397. package/dist/phone-number-DhThJwd6.cjs +2 -0
  398. package/dist/phone-number-DhThJwd6.cjs.map +1 -0
  399. package/dist/popover-CdOCi0xg.d.cts +50 -0
  400. package/dist/popover-CdOCi0xg.d.mts +50 -0
  401. package/dist/popover-form-B2taDBAh.mjs +2 -0
  402. package/dist/popover-form-B2taDBAh.mjs.map +1 -0
  403. package/dist/popover-form-_hQQpfAB.cjs +2 -0
  404. package/dist/popover-form-_hQQpfAB.cjs.map +1 -0
  405. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs +2 -0
  406. package/dist/portfolio-allocation-treemap-Bn0X4wb6.cjs.map +1 -0
  407. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs +2 -0
  408. package/dist/portfolio-allocation-treemap-Cb9Kidrl.mjs.map +1 -0
  409. package/dist/price-range-area-chart-BW6RQb_9.cjs +2 -0
  410. package/dist/price-range-area-chart-BW6RQb_9.cjs.map +1 -0
  411. package/dist/price-range-area-chart-Dy01mhWJ.mjs +2 -0
  412. package/dist/price-range-area-chart-Dy01mhWJ.mjs.map +1 -0
  413. package/dist/product-card-CvXLXbpV.d.cts +30 -0
  414. package/dist/product-card-CvXLXbpV.d.mts +30 -0
  415. package/dist/progress-Bp-5keO8.d.cts +21 -0
  416. package/dist/progress-Bp-5keO8.d.mts +21 -0
  417. package/dist/progress-display-Bp0xVhln.cjs +2 -0
  418. package/dist/progress-display-Bp0xVhln.cjs.map +1 -0
  419. package/dist/progress-display-DYj7vAe9.mjs +2 -0
  420. package/dist/progress-display-DYj7vAe9.mjs.map +1 -0
  421. package/dist/radio-group-field-McpjpLW-.cjs +2 -0
  422. package/dist/radio-group-field-McpjpLW-.cjs.map +1 -0
  423. package/dist/radio-group-field-ZqMrf9Dx.mjs +2 -0
  424. package/dist/radio-group-field-ZqMrf9Dx.mjs.map +1 -0
  425. package/dist/radio-group-ycQQrPGn.d.cts +35 -0
  426. package/dist/radio-group-ycQQrPGn.d.mts +35 -0
  427. package/dist/refresh-BiyrZAXL.d.cts +16 -0
  428. package/dist/refresh-BiyrZAXL.d.mts +16 -0
  429. package/dist/remove-button-B3qFw-M5.cjs +2 -0
  430. package/dist/remove-button-B3qFw-M5.cjs.map +1 -0
  431. package/dist/remove-button-Db5oSj4h.mjs +2 -0
  432. package/dist/remove-button-Db5oSj4h.mjs.map +1 -0
  433. package/dist/{resizable-BLfxHCf4.d.cts → resizable-CAyWR1At.d.cts} +2 -2
  434. package/dist/{resizable-BLfxHCf4.d.mts → resizable-CAyWR1At.d.mts} +2 -2
  435. package/dist/revenue-area-chart-BwzeTRzD.mjs +2 -0
  436. package/dist/revenue-area-chart-BwzeTRzD.mjs.map +1 -0
  437. package/dist/revenue-area-chart-w2FZCl_7.cjs +2 -0
  438. package/dist/revenue-area-chart-w2FZCl_7.cjs.map +1 -0
  439. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs +2 -0
  440. package/dist/revenue-orders-composed-chart-BttOWYGt.cjs.map +1 -0
  441. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs +2 -0
  442. package/dist/revenue-orders-composed-chart-DwkbWZSX.mjs.map +1 -0
  443. package/dist/role-badge-Bl4Rimpk.d.mts +21 -0
  444. package/dist/role-badge-IdZW0tsN.d.cts +21 -0
  445. package/dist/sales-target-radial-chart-BFLxBT2m.mjs +2 -0
  446. package/dist/sales-target-radial-chart-BFLxBT2m.mjs.map +1 -0
  447. package/dist/sales-target-radial-chart-BoxSk7hW.cjs +2 -0
  448. package/dist/sales-target-radial-chart-BoxSk7hW.cjs.map +1 -0
  449. package/dist/sankey-flow-chart-CDUqIRMZ.cjs +2 -0
  450. package/dist/sankey-flow-chart-CDUqIRMZ.cjs.map +1 -0
  451. package/dist/sankey-flow-chart-bQ3Dffet.mjs +2 -0
  452. package/dist/sankey-flow-chart-bQ3Dffet.mjs.map +1 -0
  453. package/dist/scroll-area-PbkqIAaH.d.cts +35 -0
  454. package/dist/scroll-area-PbkqIAaH.d.mts +35 -0
  455. package/dist/search-input-Bq4enQzR.d.cts +27 -0
  456. package/dist/search-input-D51_mAY-.d.mts +27 -0
  457. package/dist/section-form-B9iTs2we.cjs +2 -0
  458. package/dist/section-form-B9iTs2we.cjs.map +1 -0
  459. package/dist/section-form-B_AZr7jZ.mjs +2 -0
  460. package/dist/section-form-B_AZr7jZ.mjs.map +1 -0
  461. package/dist/select-B5j4WvPM.d.cts +74 -0
  462. package/dist/select-B5j4WvPM.d.mts +74 -0
  463. package/dist/select-field-DG8sQ5iN.cjs +2 -0
  464. package/dist/select-field-DG8sQ5iN.cjs.map +1 -0
  465. package/dist/select-field-Kq5iQCRQ.mjs +2 -0
  466. package/dist/select-field-Kq5iQCRQ.mjs.map +1 -0
  467. package/dist/separator-BlNAFSJv.mjs +2 -0
  468. package/dist/separator-BlNAFSJv.mjs.map +1 -0
  469. package/dist/separator-D6_fMJtM.d.cts +32 -0
  470. package/dist/separator-D6_fMJtM.d.mts +32 -0
  471. package/dist/separator-sBz__BXC.cjs +2 -0
  472. package/dist/separator-sBz__BXC.cjs.map +1 -0
  473. package/dist/sheet-cHLLSvvt.d.cts +66 -0
  474. package/dist/sheet-cHLLSvvt.d.mts +66 -0
  475. package/dist/sidebar-core-Bh0dZXsm.mjs +2 -0
  476. package/dist/sidebar-core-Bh0dZXsm.mjs.map +1 -0
  477. package/dist/sidebar-core-DQE6ymo4.cjs +2 -0
  478. package/dist/sidebar-core-DQE6ymo4.cjs.map +1 -0
  479. package/dist/simple-array-field-4paKpxXk.cjs +2 -0
  480. package/dist/simple-array-field-4paKpxXk.cjs.map +1 -0
  481. package/dist/simple-array-field-C5XdemXa.mjs +2 -0
  482. package/dist/simple-array-field-C5XdemXa.mjs.map +1 -0
  483. package/dist/simple-boolean-field-B9T_fHk9.cjs +2 -0
  484. package/dist/simple-boolean-field-B9T_fHk9.cjs.map +1 -0
  485. package/dist/simple-boolean-field-DpJ-fSQk.mjs +2 -0
  486. package/dist/simple-boolean-field-DpJ-fSQk.mjs.map +1 -0
  487. package/dist/simple-card-6P377r4A.d.cts +29 -0
  488. package/dist/simple-card-6P377r4A.d.mts +29 -0
  489. package/dist/simple-combobox-field-Ch4SBHCH.mjs +2 -0
  490. package/dist/simple-combobox-field-Ch4SBHCH.mjs.map +1 -0
  491. package/dist/simple-combobox-field-ChMKk7xp.cjs +2 -0
  492. package/dist/simple-combobox-field-ChMKk7xp.cjs.map +1 -0
  493. package/dist/simple-date-field-BGGlsHzG.cjs +2 -0
  494. package/dist/simple-date-field-BGGlsHzG.cjs.map +1 -0
  495. package/dist/simple-date-field-CVKqIrEs.mjs +2 -0
  496. package/dist/simple-date-field-CVKqIrEs.mjs.map +1 -0
  497. package/dist/simple-email-field-98w0846B.mjs +2 -0
  498. package/dist/simple-email-field-98w0846B.mjs.map +1 -0
  499. package/dist/simple-email-field-DYqCWprP.cjs +2 -0
  500. package/dist/simple-email-field-DYqCWprP.cjs.map +1 -0
  501. package/dist/simple-number-field-otvv2xq-.cjs +2 -0
  502. package/dist/simple-number-field-otvv2xq-.cjs.map +1 -0
  503. package/dist/simple-number-field-zF3oqS8d.mjs +2 -0
  504. package/dist/simple-number-field-zF3oqS8d.mjs.map +1 -0
  505. package/dist/simple-password-field-CuC10c70.mjs +2 -0
  506. package/dist/simple-password-field-CuC10c70.mjs.map +1 -0
  507. package/dist/simple-password-field-D2UMmghM.cjs +2 -0
  508. package/dist/simple-password-field-D2UMmghM.cjs.map +1 -0
  509. package/dist/simple-radio-group-field-C2DDfIUs.cjs +2 -0
  510. package/dist/simple-radio-group-field-C2DDfIUs.cjs.map +1 -0
  511. package/dist/simple-radio-group-field-CfziNlLf.mjs +2 -0
  512. package/dist/simple-radio-group-field-CfziNlLf.mjs.map +1 -0
  513. package/dist/simple-select-field-CeNnXUHN.cjs +2 -0
  514. package/dist/simple-select-field-CeNnXUHN.cjs.map +1 -0
  515. package/dist/simple-select-field-DIaxhi1-.mjs +2 -0
  516. package/dist/simple-select-field-DIaxhi1-.mjs.map +1 -0
  517. package/dist/simple-text-field-D8jyznSd.mjs +2 -0
  518. package/dist/simple-text-field-D8jyznSd.mjs.map +1 -0
  519. package/dist/simple-text-field-LYWVIAfQ.cjs +2 -0
  520. package/dist/simple-text-field-LYWVIAfQ.cjs.map +1 -0
  521. package/dist/simple-textarea-field-DcEvaizE.cjs +2 -0
  522. package/dist/simple-textarea-field-DcEvaizE.cjs.map +1 -0
  523. package/dist/simple-textarea-field-p9qX_n7m.mjs +2 -0
  524. package/dist/simple-textarea-field-p9qX_n7m.mjs.map +1 -0
  525. package/dist/skeleton-Ct4sYEKk.d.cts +24 -0
  526. package/dist/skeleton-Ct4sYEKk.d.mts +24 -0
  527. package/dist/slider-DwR1MhR8.d.cts +24 -0
  528. package/dist/slider-DwR1MhR8.d.mts +24 -0
  529. package/dist/sonner-B6LxJMYT.d.mts +22 -0
  530. package/dist/sonner-BcNgR0GP.d.cts +22 -0
  531. package/dist/sparkline-chart-TbGzakUl.mjs +2 -0
  532. package/dist/sparkline-chart-TbGzakUl.mjs.map +1 -0
  533. package/dist/sparkline-chart-sPqaJHep.cjs +2 -0
  534. package/dist/sparkline-chart-sPqaJHep.cjs.map +1 -0
  535. package/dist/spinner-CXuqcoB5.d.cts +22 -0
  536. package/dist/spinner-CXuqcoB5.d.mts +22 -0
  537. package/dist/stacked-area-chart-DyxY96_l.cjs +2 -0
  538. package/dist/stacked-area-chart-DyxY96_l.cjs.map +1 -0
  539. package/dist/stacked-area-chart-UIWIxTmq.mjs +2 -0
  540. package/dist/stacked-area-chart-UIWIxTmq.mjs.map +1 -0
  541. package/dist/statistic-8zBJMdRa.d.cts +45 -0
  542. package/dist/statistic-8zBJMdRa.d.mts +45 -0
  543. package/dist/statistic-BUGIRhL9.cjs +2 -0
  544. package/dist/statistic-BUGIRhL9.cjs.map +1 -0
  545. package/dist/statistic-Ug9Zgi3N.mjs +2 -0
  546. package/dist/statistic-Ug9Zgi3N.mjs.map +1 -0
  547. package/dist/status-display-B-6KKttX.mjs +2 -0
  548. package/dist/status-display-B-6KKttX.mjs.map +1 -0
  549. package/dist/status-display-DkI9UwAu.cjs +2 -0
  550. package/dist/status-display-DkI9UwAu.cjs.map +1 -0
  551. package/dist/submit-button-CGBaPzE9.mjs +2 -0
  552. package/dist/submit-button-CGBaPzE9.mjs.map +1 -0
  553. package/dist/submit-button-CvINfld5.cjs +2 -0
  554. package/dist/submit-button-CvINfld5.cjs.map +1 -0
  555. package/dist/summary-bar-CZHeAORf.mjs +2 -0
  556. package/dist/summary-bar-CZHeAORf.mjs.map +1 -0
  557. package/dist/summary-bar-DTFVpBZn.cjs +2 -0
  558. package/dist/summary-bar-DTFVpBZn.cjs.map +1 -0
  559. package/dist/switch-9v4AYqJb.d.cts +24 -0
  560. package/dist/switch-9v4AYqJb.d.mts +24 -0
  561. package/dist/switch-field-CIoNsRWN.mjs +2 -0
  562. package/dist/switch-field-CIoNsRWN.mjs.map +1 -0
  563. package/dist/switch-field-n6a5SaEM.cjs +2 -0
  564. package/dist/switch-field-n6a5SaEM.cjs.map +1 -0
  565. package/dist/systems/google.d.cts +2 -48
  566. package/dist/systems/google.d.mts +2 -48
  567. package/dist/table-Dg2D0v87.d.cts +70 -0
  568. package/dist/table-Dg2D0v87.d.mts +70 -0
  569. package/dist/tables-7aC9WFs9.cjs +2 -0
  570. package/dist/tables-7aC9WFs9.cjs.map +1 -0
  571. package/dist/tables-UikqnT9q.mjs +2 -0
  572. package/dist/tables-UikqnT9q.mjs.map +1 -0
  573. package/dist/tabs-CJ6qZcFU.d.cts +42 -0
  574. package/dist/tabs-CJ6qZcFU.d.mts +42 -0
  575. package/dist/tanstack-form-CNrZQZhn.cjs +2 -0
  576. package/dist/tanstack-form-CNrZQZhn.cjs.map +1 -0
  577. package/dist/tanstack-form-PC9YNeeo.mjs +2 -0
  578. package/dist/tanstack-form-PC9YNeeo.mjs.map +1 -0
  579. package/dist/text-editor-BYE2-G5K.mjs +2 -0
  580. package/dist/text-editor-BYE2-G5K.mjs.map +1 -0
  581. package/dist/text-editor-CfQk5dIx.cjs +2 -0
  582. package/dist/text-editor-CfQk5dIx.cjs.map +1 -0
  583. package/dist/text-editor-field-fso-sw29.mjs +2 -0
  584. package/dist/text-editor-field-fso-sw29.mjs.map +1 -0
  585. package/dist/text-editor-field-gas5r-xy.cjs +2 -0
  586. package/dist/text-editor-field-gas5r-xy.cjs.map +1 -0
  587. package/dist/text-field-B67oTV62.mjs +2 -0
  588. package/dist/text-field-B67oTV62.mjs.map +1 -0
  589. package/dist/text-field-BMo-8rsq.cjs +2 -0
  590. package/dist/text-field-BMo-8rsq.cjs.map +1 -0
  591. package/dist/textarea-C8ZIZh-y.d.cts +26 -0
  592. package/dist/textarea-C8ZIZh-y.d.mts +26 -0
  593. package/dist/textarea-field-BUGcITwp.cjs +2 -0
  594. package/dist/textarea-field-BUGcITwp.cjs.map +1 -0
  595. package/dist/textarea-field-D70rGYIk.mjs +2 -0
  596. package/dist/textarea-field-D70rGYIk.mjs.map +1 -0
  597. package/dist/title-BT9guhSU.d.cts +41 -0
  598. package/dist/title-BT9guhSU.d.mts +41 -0
  599. package/dist/title-field-84EnHPvl.mjs +2 -0
  600. package/dist/title-field-84EnHPvl.mjs.map +1 -0
  601. package/dist/title-field-CKxwzMOM.cjs +2 -0
  602. package/dist/title-field-CKxwzMOM.cjs.map +1 -0
  603. package/dist/toggle-Bh4EazxT.d.cts +30 -0
  604. package/dist/toggle-Bh4EazxT.d.mts +30 -0
  605. package/dist/toggle-button-DNLtfjJC.mjs +2 -0
  606. package/dist/toggle-button-DNLtfjJC.mjs.map +1 -0
  607. package/dist/toggle-button-Dq78v8cH.cjs +2 -0
  608. package/dist/toggle-button-Dq78v8cH.cjs.map +1 -0
  609. package/dist/toggle-group-BpqkL1ds.d.cts +37 -0
  610. package/dist/toggle-group-DzNE38v5.d.mts +37 -0
  611. package/dist/tooltip-B-yLj6pe.mjs +4 -0
  612. package/dist/tooltip-B-yLj6pe.mjs.map +1 -0
  613. package/dist/tooltip-D4U-RhIu.d.cts +53 -0
  614. package/dist/tooltip-D4U-RhIu.d.mts +53 -0
  615. package/dist/tooltip-octglTPf.cjs +4 -0
  616. package/dist/tooltip-octglTPf.cjs.map +1 -0
  617. package/dist/top-products-bar-chart-5EJFSkeo.cjs +2 -0
  618. package/dist/top-products-bar-chart-5EJFSkeo.cjs.map +1 -0
  619. package/dist/top-products-bar-chart-CKYaOGWT.mjs +2 -0
  620. package/dist/top-products-bar-chart-CKYaOGWT.mjs.map +1 -0
  621. package/dist/trash-BfWSqlL4.d.cts +16 -0
  622. package/dist/trash-BfWSqlL4.d.mts +16 -0
  623. package/dist/typography/paragraph.d.cts +2 -46
  624. package/dist/typography/paragraph.d.mts +2 -46
  625. package/dist/typography/title.d.cts +2 -41
  626. package/dist/typography/title.d.mts +2 -41
  627. package/dist/ui/alert-dialog.d.cts +2 -88
  628. package/dist/ui/alert-dialog.d.mts +2 -88
  629. package/dist/ui/aspect-ratio.d.cts +2 -22
  630. package/dist/ui/aspect-ratio.d.mts +2 -22
  631. package/dist/ui/avatar.d.cts +2 -33
  632. package/dist/ui/avatar.d.mts +2 -33
  633. package/dist/ui/badge.cjs +1 -1
  634. package/dist/ui/badge.cjs.map +1 -1
  635. package/dist/ui/badge.d.cts +1 -1
  636. package/dist/ui/badge.d.mts +1 -1
  637. package/dist/ui/badge.mjs +1 -1
  638. package/dist/ui/badge.mjs.map +1 -1
  639. package/dist/ui/breadcrumb.d.cts +2 -69
  640. package/dist/ui/breadcrumb.d.mts +2 -69
  641. package/dist/ui/button-group.d.cts +2 -48
  642. package/dist/ui/button-group.d.mts +2 -48
  643. package/dist/ui/button.d.cts +1 -1
  644. package/dist/ui/button.d.mts +1 -1
  645. package/dist/ui/buttons/add-new.d.cts +2 -16
  646. package/dist/ui/buttons/add-new.d.mts +2 -16
  647. package/dist/ui/buttons/edit.d.cts +2 -16
  648. package/dist/ui/buttons/edit.d.mts +2 -16
  649. package/dist/ui/buttons/refresh.d.cts +2 -16
  650. package/dist/ui/buttons/refresh.d.mts +2 -16
  651. package/dist/ui/buttons/trash.d.cts +2 -16
  652. package/dist/ui/buttons/trash.d.mts +2 -16
  653. package/dist/ui/buttons/upload-image.d.cts +2 -23
  654. package/dist/ui/buttons/upload-image.d.mts +2 -23
  655. package/dist/ui/calendar.d.cts +2 -43
  656. package/dist/ui/calendar.d.mts +2 -43
  657. package/dist/ui/card.d.cts +2 -60
  658. package/dist/ui/card.d.mts +2 -60
  659. package/dist/ui/carousel.d.cts +2 -70
  660. package/dist/ui/carousel.d.mts +2 -70
  661. package/dist/ui/chart.d.cts +2 -80
  662. package/dist/ui/chart.d.mts +2 -80
  663. package/dist/ui/checkbox.d.cts +2 -24
  664. package/dist/ui/checkbox.d.mts +2 -24
  665. package/dist/ui/collapsible.d.cts +2 -32
  666. package/dist/ui/collapsible.d.mts +2 -32
  667. package/dist/ui/command.d.cts +2 -87
  668. package/dist/ui/command.d.mts +2 -87
  669. package/dist/ui/context-menu.d.cts +2 -123
  670. package/dist/ui/context-menu.d.mts +2 -123
  671. package/dist/ui/drawer.d.cts +2 -70
  672. package/dist/ui/drawer.d.mts +2 -70
  673. package/dist/ui/dropdown-menu.d.cts +2 -125
  674. package/dist/ui/dropdown-menu.d.mts +2 -125
  675. package/dist/ui/empty.d.cts +2 -65
  676. package/dist/ui/empty.d.mts +2 -65
  677. package/dist/ui/field.d.cts +1 -1
  678. package/dist/ui/field.d.mts +1 -1
  679. package/dist/ui/file-uploader.d.cts +2 -101
  680. package/dist/ui/file-uploader.d.mts +2 -101
  681. package/dist/ui/form.d.cts +2 -109
  682. package/dist/ui/form.d.mts +2 -109
  683. package/dist/ui/hover-card.d.cts +2 -35
  684. package/dist/ui/hover-card.d.mts +2 -35
  685. package/dist/ui/image.d.cts +2 -27
  686. package/dist/ui/image.d.mts +2 -27
  687. package/dist/ui/input-otp.d.cts +2 -56
  688. package/dist/ui/input-otp.d.mts +2 -56
  689. package/dist/ui/input.d.cts +1 -1
  690. package/dist/ui/input.d.mts +1 -1
  691. package/dist/ui/inputs/search-input.d.cts +2 -27
  692. package/dist/ui/inputs/search-input.d.mts +2 -27
  693. package/dist/ui/item.d.cts +2 -99
  694. package/dist/ui/item.d.mts +2 -99
  695. package/dist/ui/label.d.cts +2 -22
  696. package/dist/ui/label.d.mts +2 -22
  697. package/dist/ui/menubar.d.cts +2 -133
  698. package/dist/ui/menubar.d.mts +2 -133
  699. package/dist/ui/multi-select.d.cts +2 -116
  700. package/dist/ui/multi-select.d.mts +2 -116
  701. package/dist/ui/navigation-menu.d.cts +2 -73
  702. package/dist/ui/navigation-menu.d.mts +2 -73
  703. package/dist/ui/pagination.d.cts +2 -64
  704. package/dist/ui/pagination.d.mts +2 -64
  705. package/dist/ui/popover.d.cts +2 -50
  706. package/dist/ui/popover.d.mts +2 -50
  707. package/dist/ui/progress.d.cts +2 -21
  708. package/dist/ui/progress.d.mts +2 -21
  709. package/dist/ui/radio-group.d.cts +2 -35
  710. package/dist/ui/radio-group.d.mts +2 -35
  711. package/dist/ui/resizable.d.cts +1 -1
  712. package/dist/ui/resizable.d.mts +1 -1
  713. package/dist/ui/scroll-area.d.cts +2 -35
  714. package/dist/ui/scroll-area.d.mts +2 -35
  715. package/dist/ui/select.d.cts +2 -74
  716. package/dist/ui/select.d.mts +2 -74
  717. package/dist/ui/separator.d.cts +2 -32
  718. package/dist/ui/separator.d.mts +2 -32
  719. package/dist/ui/sheet.d.cts +2 -66
  720. package/dist/ui/sheet.d.mts +2 -66
  721. package/dist/ui/skeleton.d.cts +2 -24
  722. package/dist/ui/skeleton.d.mts +2 -24
  723. package/dist/ui/slider.d.cts +2 -24
  724. package/dist/ui/slider.d.mts +2 -24
  725. package/dist/ui/sonner.d.cts +2 -22
  726. package/dist/ui/sonner.d.mts +2 -22
  727. package/dist/ui/spinner.d.cts +2 -22
  728. package/dist/ui/spinner.d.mts +2 -22
  729. package/dist/ui/switch.d.cts +2 -24
  730. package/dist/ui/switch.d.mts +2 -24
  731. package/dist/ui/table.d.cts +2 -70
  732. package/dist/ui/table.d.mts +2 -70
  733. package/dist/ui/tabs.d.cts +2 -42
  734. package/dist/ui/tabs.d.mts +2 -42
  735. package/dist/ui/textarea.d.cts +2 -26
  736. package/dist/ui/textarea.d.mts +2 -26
  737. package/dist/ui/toggle-group.d.cts +2 -37
  738. package/dist/ui/toggle-group.d.mts +2 -37
  739. package/dist/ui/toggle.d.cts +2 -30
  740. package/dist/ui/toggle.d.mts +2 -30
  741. package/dist/ui/tooltip.d.cts +2 -53
  742. package/dist/ui/tooltip.d.mts +2 -53
  743. package/dist/upload-image-D4VZU3IA.d.cts +23 -0
  744. package/dist/upload-image-D4VZU3IA.d.mts +23 -0
  745. package/dist/user-BymzvsYp.mjs +2 -0
  746. package/dist/user-BymzvsYp.mjs.map +1 -0
  747. package/dist/user-CvesQf42.d.cts +20 -0
  748. package/dist/user-CvesQf42.d.mts +20 -0
  749. package/dist/user-Dn53Fu5q.cjs +2 -0
  750. package/dist/user-Dn53Fu5q.cjs.map +1 -0
  751. package/dist/volume-bar-chart-BRpC_8-X.mjs +2 -0
  752. package/dist/volume-bar-chart-BRpC_8-X.mjs.map +1 -0
  753. package/dist/volume-bar-chart-CRxZPZIn.cjs +2 -0
  754. package/dist/volume-bar-chart-CRxZPZIn.cjs.map +1 -0
  755. package/dist/waterfall-chart-CTB2f5eh.cjs +2 -0
  756. package/dist/waterfall-chart-CTB2f5eh.cjs.map +1 -0
  757. package/dist/waterfall-chart-DwetaJFJ.mjs +2 -0
  758. package/dist/waterfall-chart-DwetaJFJ.mjs.map +1 -0
  759. package/package.json +1 -5
  760. package/dist/payment-layout-BLrXT-oc.cjs +0 -2
  761. package/dist/tables-B0Jl8Osc.cjs +0 -4
  762. package/dist/tables-B0Jl8Osc.cjs.map +0 -1
  763. package/dist/tables-Cylalxey.mjs +0 -4
  764. package/dist/tables-Cylalxey.mjs.map +0 -1
  765. package/dist/tanstack-form-BMVn8ai_.cjs +0 -2
  766. package/dist/tanstack-form-BMVn8ai_.cjs.map +0 -1
  767. package/dist/tanstack-form-DTCgWGCA.mjs +0 -2
  768. package/dist/tanstack-form-DTCgWGCA.mjs.map +0 -1
  769. package/dist/text-editor-BQtIXOpM.mjs +0 -2
  770. package/dist/text-editor-BQtIXOpM.mjs.map +0 -1
  771. package/dist/text-editor-DJYQXXtP.cjs +0 -2
  772. package/dist/text-editor-DJYQXXtP.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["Badge","Badge","CheckIcon","CopyIcon","TooltipProvider","Tooltip","TooltipTrigger","DateDisplay","TooltipContent","Image","LinkIcon","ExternalLinkIcon","Tooltip","TooltipTrigger","Paragraph","TooltipContent","Tooltip","TooltipTrigger","Paragraph","TooltipContent","Tooltip","TooltipTrigger","Paragraph","TooltipContent","Badge","Badge","UserDataDisplay"],"sources":["../../../packages/components/features/descriptions/components/empty.tsx","../../../packages/components/features/descriptions/components/badge.tsx","../../../packages/components/features/descriptions/components/boolean.tsx","../../../packages/components/features/descriptions/components/copy.tsx","../../../packages/components/features/descriptions/components/date.tsx","../../../packages/components/features/descriptions/components/images.tsx","../../../packages/components/features/descriptions/components/link.tsx","../../../packages/components/features/descriptions/components/longtext.tsx","../../../packages/components/features/descriptions/components/name.tsx","../../../packages/components/features/descriptions/components/number-phone.tsx","../../../packages/components/features/descriptions/components/statistic.tsx","../../../packages/components/features/descriptions/components/status.tsx","../../../packages/components/features/descriptions/components/tag-list.tsx","../../../packages/components/features/descriptions/components/user.tsx","../../../packages/components/features/descriptions/index.tsx"],"sourcesContent":["'use client';\n\nexport const DescriptionEmpty: React.FC = () => {\n return (\n <span data-slot=\"description-empty\" aria-label=\"Empty value\" className=\"select-none font-medium text-sm text-text-positive-muted\">\n —\n </span>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBadgeProps = {\n label: string | number | null | undefined;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n};\n\nexport const DescriptionBadge: React.FC<DescriptionBadgeProps> = ({ label, color = 'secondary', variant = 'soft', size = 'sm' }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-badge\" color={color} variant={variant} size={size}>\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBooleanProps = {\n value: boolean | null | undefined;\n trueLabel?: string;\n falseLabel?: string;\n};\n\nexport const DescriptionBoolean: React.FC<DescriptionBooleanProps> = ({ value, trueLabel = 'Yes', falseLabel = 'No' }) => {\n if (value == null) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-boolean\" variant=\"soft\" color={value ? 'success' : 'danger'} size=\"sm\">\n {value ? trueLabel : falseLabel}\n </Badge>\n );\n};\n","'use client';\n\nimport { useCallback, useState } from 'react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionCopyProps = {\n value: string | null | undefined;\n truncate?: boolean;\n};\n\nexport const DescriptionCopy: React.FC<DescriptionCopyProps> = ({ value, truncate = true }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(async () => {\n if (!value) return;\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }, [value]);\n\n if (!value) return <DescriptionEmpty />;\n\n return (\n <button\n type=\"button\"\n data-slot=\"description-copy\"\n onClick={handleCopy}\n className={cn(\n 'group inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-sm border border-border-weak bg-secondary-muted px-2 py-0.5 font-mono text-xs text-text-positive-weak transition-[border-color,color,box-shadow] hover:border-border hover:text-text-positive hover:shadow-xs',\n truncate && 'min-w-0'\n )}\n >\n <span className={cn('tabular-nums', truncate && 'truncate')}>{value}</span>\n {copied ? <CheckIcon size={12} className=\"shrink-0 text-success\" /> : <CopyIcon size={12} className=\"shrink-0 opacity-50 group-hover:opacity-100\" />}\n </button>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { DateDisplay } from '@/components/data-display/date';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionDateProps = {\n date: Date | string | number | null | undefined;\n};\n\nexport const DescriptionDate: React.FC<DescriptionDateProps> = ({ date }) => {\n if (date == null) return <DescriptionEmpty />;\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <DateDisplay data-slot=\"description-date\" date={date} format=\"medium\" className=\"cursor-help\" />\n </TooltipTrigger>\n <TooltipContent>\n <DateDisplay date={date} format=\"full\" showTime className=\"text-xs font-medium\" />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n","'use client';\n\nimport { Image } from '@/components/ui/image';\n\nimport { DescriptionEmpty } from './empty';\n\ntype ImageItem = { id: string; src: string; alt: string };\n\nexport const DescriptionImages: React.FC<{\n images?: Array<ImageItem> | null | undefined;\n}> = ({ images }) => {\n if (!images?.length) return <DescriptionEmpty />;\n\n const isSingle = images.length === 1;\n\n return (\n <div data-slot=\"description-images\" className=\"flex flex-wrap gap-4\">\n {images.map(image => (\n <div\n key={image.id}\n className={\n isSingle\n ? 'group relative size-42 overflow-hidden rounded-sm border border-border shadow-xs transition-shadow hover:shadow-card'\n : 'group relative size-16 overflow-hidden rounded-lg border border-border shadow-xs transition-shadow hover:shadow-card'\n }\n >\n <Image src={image.src} alt={image.alt} width=\"100%\" height=\"100%\" className=\"transition-transform duration-200 group-hover:scale-105\" />\n </div>\n ))}\n </div>\n );\n};\n","'use client';\n\nimport { ExternalLinkIcon, LinkIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionLinkProps = {\n href: string | null | undefined;\n label?: string;\n external?: boolean;\n className?: string;\n};\n\nexport const DescriptionLink: React.FC<DescriptionLinkProps> = ({ href, label, external = true, className }) => {\n if (!href) return <DescriptionEmpty />;\n\n return (\n <a\n data-slot=\"description-link\"\n href={href}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 text-sm text-primary underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-strong hover:decoration-solid',\n className\n )}\n >\n {!external && <LinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n <span className=\"truncate\">{label ?? href}</span>\n {external && <ExternalLinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n </a>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionLongText: React.FC<{ content: string | null | undefined | number }> = ({ content }) => {\n if (content == null) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph\n data-slot=\"description-longtext\"\n variant=\"sm\"\n className=\"line-clamp-2 cursor-pointer whitespace-pre-line break-all text-start text-sm hover:text-text-positive transition-colors\"\n >\n {content}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{content}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{content.toString().length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionName: React.FC<{\n name?: string | null | undefined;\n}> = ({ name }) => {\n if (!name) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph data-slot=\"description-name\" variant=\"sm\" className=\"line-clamp-2 w-full cursor-pointer truncate hover:text-text-positive transition-colors\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nexport const DescriptionNumberPhone: React.FC<{ value: string }> = ({ value }) => {\n return (\n <Tooltip>\n <TooltipTrigger data-slot=\"description-phone\">\n <Paragraph variant=\"sm\" className=\"tabular-nums transition-colors\">\n {value.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\">\n <p className=\"tabular-nums\">{value.slice(1).replace(/(\\d{2})(\\d{3})(\\d{4})/, '(00) (+84) ($1) $2-$3')}</p>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\nconst applyRounding = (num: number, precisionValue: number, roundingMode?: 'round' | 'floor' | 'ceil') => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n};\n\nconst descriptionStatisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'sm',\n trend: 'neutral',\n },\n});\n\nexport type DescriptionStatisticProps = VariantProps<typeof descriptionStatisticVariants> & {\n decimalSeparator?: string;\n groupSeparator?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number;\n roundingMode?: 'round' | 'floor' | 'ceil';\n showTrailingZeros?: boolean;\n value: number | string | null | undefined;\n className?: string;\n};\n\nexport const DescriptionStatistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'sm',\n trend = 'neutral',\n value = 0,\n className,\n }: DescriptionStatisticProps) => {\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision, roundingMode);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [roundingMode, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n if (finalFormattedValue === '0' || finalFormattedValue === 'N/A' || !finalFormattedValue) {\n return <DescriptionEmpty />;\n }\n\n return (\n <div data-slot=\"description-statistic\" className={cn(descriptionStatisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"description-statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"description-statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"description-statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nDescriptionStatistic.displayName = 'DescriptionStatistic';\n","'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype StatusColor = NonNullable<BadgeProps['color']>;\n\nconst dotColorMap: Record<StatusColor, string> = {\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n muted: 'bg-muted',\n accent: 'bg-accent',\n info: 'bg-info',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-danger',\n};\n\ntype DescriptionStatusProps = {\n label: string | null | undefined;\n color?: StatusColor;\n dot?: boolean;\n};\n\nexport const DescriptionStatus: React.FC<DescriptionStatusProps> = ({ label, color = 'info', dot = true }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-status\" variant=\"soft\" color={color} size=\"sm\" className=\"gap-1.5\">\n {dot && <span className={cn('inline-block size-1.5 shrink-0 rounded-full', dotColorMap[color])} />}\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionTagListProps = {\n tags: Array<string | number> | null | undefined;\n max?: number;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n};\n\nexport const DescriptionTagList: React.FC<DescriptionTagListProps> = ({ tags, max = 5, color = 'secondary', variant = 'soft' }) => {\n if (!tags?.length) return <DescriptionEmpty />;\n\n const visible = tags.slice(0, max);\n const overflow = tags.length - visible.length;\n\n return (\n <div data-slot=\"description-tag-list\" className=\"flex flex-wrap gap-1\">\n {visible.map((tag, i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: static display list\n <Badge key={i} variant={variant} color={color} size=\"sm\">\n {tag}\n </Badge>\n ))}\n {overflow > 0 && (\n <Badge variant=\"outline\" color=\"muted\" size=\"sm\">\n +{overflow}\n </Badge>\n )}\n </div>\n );\n};\n","'use client';\n\nimport { UserDataDisplay } from '@/components/data-display/user';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionUserProps = {\n uuid?: string | null;\n username?: string | null;\n email?: string | null;\n};\n\nexport const DescriptionUser: React.FC<DescriptionUserProps> = ({ uuid, username, email }) => {\n if (!uuid || !username || !email) return <DescriptionEmpty />;\n return <UserDataDisplay uuid={uuid} username={username} email={email} />;\n};\n","'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nexport * from './components';\n\nconst DescriptionGroupContext = createContext(false);\n\n/**\n * A single labeled row within a {@link Description} container, supporting both horizontal (side-by-side label/value) and vertical (stacked) layouts.\n *\n * @example\n * import { Description, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionItem label=\"Full name\">John Doe</DescriptionItem>\n * <DescriptionItem label=\"Email\" orientation=\"vertical\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionItem: React.FC<\n React.PropsWithChildren<{\n /** Text displayed in the label column. */\n label: string;\n /**\n * Number of grid columns (out of 12) allocated to the label in horizontal orientation.\n * @default 3\n */\n labelColSpan?: number;\n /**\n * Layout direction of the label/value pair.\n * - `'horizontal'` — label and value are side by side.\n * - `'vertical'` — label sits above the value.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */\n action?: React.ReactNode;\n }>\n> = ({ label, labelColSpan = 3, orientation = 'horizontal', action, children }) => {\n if (orientation === 'vertical') {\n return (\n <div data-slot=\"description-item\" className=\"flex flex-col border-b border-b-border last:border-b-0\">\n <div\n data-slot=\"description-item-label\"\n className=\"flex items-center justify-between border-b border-b-border bg-secondary-muted py-2 pr-2 pl-4 text-sm font-medium text-text-positive-weak\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n <div data-slot=\"description-item-value\" className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\">\n {children}\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"description-item\"\n style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }}\n className=\"grid border-b border-b-border last:border-b-0\"\n >\n <div\n data-slot=\"description-item-label\"\n style={{ gridColumn: `span ${labelColSpan} / span ${labelColSpan}` }}\n className=\"flex min-w-full items-center justify-between overflow-x-hidden text-wrap break-all border-r border-r-border bg-secondary-muted py-3 pr-2 pl-4 text-sm font-medium text-text-positive-weak tabular-nums\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0 pr-1\">{action}</div>}\n </div>\n <div\n data-slot=\"description-item-value\"\n style={{ gridColumn: `span ${12 - labelColSpan} / span ${12 - labelColSpan}` }}\n className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\"\n >\n {children}\n </div>\n </div>\n );\n};\n\n/**\n * A header bar for a {@link Description} block, showing a title, an optional subtitle, and an optional trailing action area.\n *\n * @example\n * import { Description, DescriptionHeader } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"User details\" description=\"Read-only overview\" extra={<EditBtn />} />\n * </Description>\n */\nexport const DescriptionHeader: React.FC<{\n /** Primary heading text. */\n title: string;\n /** Optional secondary text rendered below the title in a smaller, muted style. */\n description?: string;\n /** Optional node rendered on the right side of the header (e.g. action buttons). */\n extra?: React.ReactNode;\n /** Additional CSS class names applied to the header wrapper. */\n className?: string;\n}> = ({ title, description, extra, className }) => {\n return (\n <div\n data-slot=\"description-header\"\n className={cn('sticky top-0 z-10 flex items-center justify-between gap-4 border-b border-b-border bg-card px-4 py-3', className)}\n >\n <div className=\"flex flex-col gap-0.5\">\n <p className=\"text-sm font-semibold text-text-positive\">{title}</p>\n {description && <p className=\"text-xs text-text-positive-muted\">{description}</p>}\n </div>\n {extra && <div className=\"shrink-0\">{extra}</div>}\n </div>\n );\n};\n\n/**\n * A visual section divider inside a {@link Description} container that optionally displays a section title with a decorative horizontal rule.\n *\n * @example\n * import { Description, DescriptionSection, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionSection title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionSection: React.FC<{\n /** Optional section label rendered as uppercase small-caps text beside the divider line. */\n title?: string;\n /** Additional CSS class names applied to the section wrapper. */\n className?: string;\n}> = ({ title, className }) => {\n return (\n <div data-slot=\"description-section\" className={cn('flex items-center gap-3 border-b border-b-border px-4 py-2.5', className)}>\n {title && <p className=\"shrink-0 text-xs font-semibold uppercase tracking-widest text-text-positive-muted\">{title}</p>}\n <div className=\"h-px flex-1 bg-border\" />\n </div>\n );\n};\n\nconst DescriptionLoadingSkeleton: React.FC<{ rows: number }> = ({ rows }) => (\n <div data-slot=\"description-loading\" className=\"animate-pulse\">\n <div className=\"flex items-center justify-between border-b border-b-border px-4 py-3\">\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-3.5 w-36 rounded bg-border\" />\n <div className=\"h-2.5 w-24 rounded bg-border-weak\" />\n </div>\n <div className=\"h-5 w-16 rounded bg-border-weak\" />\n </div>\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }} className=\"grid border-b border-b-border last:border-b-0\">\n <div style={{ gridColumn: 'span 3 / span 3' }} className=\"flex items-center border-r border-r-border bg-secondary-muted py-3 pl-4 pr-2\">\n <div className=\"h-3 w-20 rounded bg-border\" />\n </div>\n <div style={{ gridColumn: 'span 9 / span 9' }} className=\"flex items-center py-3 pl-4 pr-2\">\n <div className=\"h-3 w-28 rounded bg-border-weak\" />\n </div>\n </div>\n ))}\n </div>\n);\n\n/**\n * Root container for a description block — a bordered, rounded card that groups {@link DescriptionHeader}, {@link DescriptionSection}, and {@link DescriptionItem} elements.\n *\n * Set `nested` when embedding one `Description` inside another (removes the outer card shadow/ring and constrains sizing).\n * Set `loading` to replace content with animated skeleton rows while data is being fetched.\n *\n * @example\n * import { Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"Order #1234\" />\n * <DescriptionItem label=\"Status\">Shipped</DescriptionItem>\n * <DescriptionItem label=\"Total\">$99.00</DescriptionItem>\n * </Description>\n */\nexport const Description: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the root wrapper element. */\n className?: string;\n /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */\n nested?: boolean;\n /** Replaces children with animated skeleton rows while data is loading. */\n loading?: boolean;\n /** Number of skeleton rows shown when `loading` is true. @default 4 */\n loadingRows?: number;\n }>\n> = ({ children, className, nested = false, loading = false, loadingRows = 4 }) => {\n const inGroup = useContext(DescriptionGroupContext);\n\n return (\n <div\n data-slot=\"description\"\n className={cn(\n 'relative flex flex-col bg-card',\n inGroup\n ? 'border-b border-b-border last:border-b-0'\n : nested\n ? 'w-full overflow-hidden rounded-md border border-border'\n : 'size-full overflow-y-auto rounded-lg border border-border shadow-card ring-1 ring-border-weak',\n className\n )}\n >\n {loading ? <DescriptionLoadingSkeleton rows={loadingRows} /> : children}\n </div>\n );\n};\n\n/**\n * A scrollable container that groups multiple {@link Description} blocks and makes each\n * {@link DescriptionHeader} sticky. As you scroll, the next section header stacks above\n * (pushes out) the previous one — standard CSS sticky behaviour within a single scroll context.\n *\n * @example\n * import { DescriptionGroup, Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <DescriptionGroup>\n * <Description>\n * <DescriptionHeader title=\"Personal info\" />\n * <DescriptionItem label=\"Name\">John Doe</DescriptionItem>\n * </Description>\n * <Description>\n * <DescriptionHeader title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n * </DescriptionGroup>\n */\nexport const DescriptionGroup: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the group wrapper. */\n className?: string;\n }>\n> = ({ children, className }) => {\n return (\n <DescriptionGroupContext.Provider value={true}>\n <div\n data-slot=\"description-group\"\n className={cn('relative size-full overflow-y-auto rounded-lg border border-border bg-card shadow-card ring-1 ring-border-weak', className)}\n >\n {children}\n </div>\n </DescriptionGroupContext.Provider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":["Badge","Badge","CheckIcon","CopyIcon","TooltipProvider","Tooltip","TooltipTrigger","DateDisplay","TooltipContent","Image","LinkIcon","ExternalLinkIcon","Tooltip","TooltipTrigger","Paragraph","TooltipContent","Tooltip","TooltipTrigger","Paragraph","TooltipContent","Tooltip","TooltipTrigger","Paragraph","TooltipContent","Badge","Badge","UserDataDisplay"],"sources":["../../../packages/components/features/descriptions/components/empty.tsx","../../../packages/components/features/descriptions/components/badge.tsx","../../../packages/components/features/descriptions/components/boolean.tsx","../../../packages/components/features/descriptions/components/copy.tsx","../../../packages/components/features/descriptions/components/date.tsx","../../../packages/components/features/descriptions/components/images.tsx","../../../packages/components/features/descriptions/components/link.tsx","../../../packages/components/features/descriptions/components/longtext.tsx","../../../packages/components/features/descriptions/components/name.tsx","../../../packages/components/features/descriptions/components/number-phone.tsx","../../../packages/components/features/descriptions/components/statistic.tsx","../../../packages/components/features/descriptions/components/status.tsx","../../../packages/components/features/descriptions/components/tag-list.tsx","../../../packages/components/features/descriptions/components/user.tsx","../../../packages/components/features/descriptions/index.tsx"],"sourcesContent":["'use client';\n\nexport const DescriptionEmpty: React.FC = () => {\n return (\n <span data-slot=\"description-empty\" aria-label=\"Empty value\" className=\"select-none font-medium text-sm text-text-positive-muted\">\n —\n </span>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBadgeProps = {\n label: string | number | null | undefined;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n size?: BadgeProps['size'];\n};\n\nexport const DescriptionBadge: React.FC<DescriptionBadgeProps> = ({ label, color = 'secondary', variant = 'soft', size = 'sm' }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-badge\" color={color} variant={variant} size={size}>\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionBooleanProps = {\n value: boolean | null | undefined;\n trueLabel?: string;\n falseLabel?: string;\n};\n\nexport const DescriptionBoolean: React.FC<DescriptionBooleanProps> = ({ value, trueLabel = 'Yes', falseLabel = 'No' }) => {\n if (value == null) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-boolean\" variant=\"soft\" color={value ? 'success' : 'danger'} size=\"sm\">\n {value ? trueLabel : falseLabel}\n </Badge>\n );\n};\n","'use client';\n\nimport { useCallback, useState } from 'react';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionCopyProps = {\n value: string | null | undefined;\n truncate?: boolean;\n};\n\nexport const DescriptionCopy: React.FC<DescriptionCopyProps> = ({ value, truncate = true }) => {\n const [copied, setCopied] = useState(false);\n\n const handleCopy = useCallback(async () => {\n if (!value) return;\n await navigator.clipboard.writeText(value);\n setCopied(true);\n setTimeout(() => setCopied(false), 1500);\n }, [value]);\n\n if (!value) return <DescriptionEmpty />;\n\n return (\n <button\n type=\"button\"\n data-slot=\"description-copy\"\n onClick={handleCopy}\n className={cn(\n 'group inline-flex max-w-full cursor-pointer items-center gap-1.5 rounded-sm border border-border-weak bg-secondary-muted px-2 py-0.5 font-mono text-xs text-text-positive-weak transition-[border-color,color,box-shadow] hover:border-border hover:text-text-positive hover:shadow-xs',\n truncate && 'min-w-0'\n )}\n >\n <span className={cn('tabular-nums', truncate && 'truncate')}>{value}</span>\n {copied ? <CheckIcon size={12} className=\"shrink-0 text-success\" /> : <CopyIcon size={12} className=\"shrink-0 opacity-50 group-hover:opacity-100\" />}\n </button>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { DateDisplay } from '@/components/data-display/date';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionDateProps = {\n date: Date | string | number | null | undefined;\n};\n\nexport const DescriptionDate: React.FC<DescriptionDateProps> = ({ date }) => {\n if (date == null) return <DescriptionEmpty />;\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <DateDisplay data-slot=\"description-date\" date={date} format=\"medium\" className=\"cursor-help\" />\n </TooltipTrigger>\n <TooltipContent>\n <DateDisplay date={date} format=\"full\" showTime className=\"text-xs font-medium\" />\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n};\n","'use client';\n\nimport { Image } from '@/components/ui/image';\n\nimport { DescriptionEmpty } from './empty';\n\ntype ImageItem = { id: string; src: string; alt: string };\n\nexport const DescriptionImages: React.FC<{\n images?: Array<ImageItem> | null | undefined;\n}> = ({ images }) => {\n if (!images?.length) return <DescriptionEmpty />;\n\n const isSingle = images.length === 1;\n\n return (\n <div data-slot=\"description-images\" className=\"flex flex-wrap gap-4\">\n {images.map(image => (\n <div\n key={image.id}\n className={\n isSingle\n ? 'group relative size-42 overflow-hidden rounded border border-border shadow-xs transition-shadow hover:shadow-card'\n : 'group relative size-20 overflow-hidden rounded border border-border shadow-xs transition-shadow hover:shadow-card'\n }\n >\n <Image src={image.src} alt={image.alt} width=\"100%\" height=\"100%\" className=\"transition-transform duration-200 group-hover:scale-105\" />\n </div>\n ))}\n </div>\n );\n};\n","'use client';\n\nimport { ExternalLinkIcon, LinkIcon } from 'lucide-react';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionLinkProps = {\n href: string | null | undefined;\n label?: string;\n external?: boolean;\n className?: string;\n};\n\nexport const DescriptionLink: React.FC<DescriptionLinkProps> = ({ href, label, external = true, className }) => {\n if (!href) return <DescriptionEmpty />;\n\n return (\n <a\n data-slot=\"description-link\"\n href={href}\n target={external ? '_blank' : undefined}\n rel={external ? 'noopener noreferrer' : undefined}\n className={cn(\n 'inline-flex max-w-full items-center gap-1 text-sm text-primary underline decoration-dashed underline-offset-2 transition-colors hover:text-primary-strong hover:decoration-solid',\n className\n )}\n >\n {!external && <LinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n <span className=\"truncate\">{label ?? href}</span>\n {external && <ExternalLinkIcon size={12} className=\"shrink-0 opacity-70\" />}\n </a>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionLongText: React.FC<{ content: string | null | undefined | number }> = ({ content }) => {\n if (content == null) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph\n data-slot=\"description-longtext\"\n variant=\"sm\"\n className=\"line-clamp-2 cursor-pointer whitespace-pre-line break-all text-start text-sm hover:text-text-positive transition-colors\"\n >\n {content}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{content}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{content.toString().length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nimport { DescriptionEmpty } from './empty';\n\nexport const DescriptionName: React.FC<{\n name?: string | null | undefined;\n}> = ({ name }) => {\n if (!name) return <DescriptionEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Paragraph data-slot=\"description-name\" variant=\"sm\" className=\"line-clamp-2 w-full cursor-pointer truncate hover:text-text-positive transition-colors\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end text-text-positive-subtle\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\nimport { Paragraph } from '@/components/typography/paragraph';\n\nexport const DescriptionNumberPhone: React.FC<{ value: string }> = ({ value }) => {\n return (\n <Tooltip>\n <TooltipTrigger data-slot=\"description-phone\">\n <Paragraph variant=\"sm\" className=\"tabular-nums transition-colors\">\n {value.replace(/(\\d{3})(\\d{3})(\\d{4})/, '($1) $2-$3')}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\">\n <p className=\"tabular-nums\">{value.slice(1).replace(/(\\d{2})(\\d{3})(\\d{4})/, '(00) (+84) ($1) $2-$3')}</p>\n </TooltipContent>\n </Tooltip>\n );\n};\n","'use client';\n\nimport { memo, useCallback, useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { DescriptionEmpty } from './empty';\n\nconst applyRounding = (num: number, precisionValue: number, roundingMode?: 'round' | 'floor' | 'ceil') => {\n const multiplier = 10 ** precisionValue;\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n};\n\nconst descriptionStatisticVariants = cva('inline-flex items-center gap-1 font-number tabular-nums transition-colors', {\n variants: {\n size: {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n },\n trend: {\n neutral: 'text-text-positive',\n up: 'text-success',\n down: 'text-danger',\n },\n },\n defaultVariants: {\n size: 'sm',\n trend: 'neutral',\n },\n});\n\nexport type DescriptionStatisticProps = VariantProps<typeof descriptionStatisticVariants> & {\n decimalSeparator?: string;\n groupSeparator?: string;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n precision?: number;\n roundingMode?: 'round' | 'floor' | 'ceil';\n showTrailingZeros?: boolean;\n value: number | string | null | undefined;\n className?: string;\n};\n\nexport const DescriptionStatistic = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'sm',\n trend = 'neutral',\n value = 0,\n className,\n }: DescriptionStatisticProps) => {\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n if (typeof precision === 'number' && precision >= 0) {\n if (showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n }\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision, roundingMode);\n }\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [roundingMode, formatOptions, precision]\n );\n\n const processedValue = useMemo((): string => {\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) return 'N/A';\n return formatNumber(value);\n }\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n if (!trimmedValue) return 'N/A';\n const numValue = Number(trimmedValue);\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) return 'N/A';\n return formatNumber(numValue);\n }\n return 'N/A';\n }, [value, formatNumber]);\n\n const finalFormattedValue = useMemo((): string => {\n if (decimalSeparator === '.' && groupSeparator === ',') return processedValue;\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n if (finalFormattedValue === '0' || finalFormattedValue === 'N/A' || !finalFormattedValue) {\n return <DescriptionEmpty />;\n }\n\n return (\n <div data-slot=\"description-statistic\" className={cn(descriptionStatisticVariants({ size, trend }), className)}>\n {Prefix && <span data-slot=\"description-statistic-prefix\">{Prefix}</span>}\n <p data-slot=\"description-statistic-value\">{finalFormattedValue}</p>\n {Suffix && <span data-slot=\"description-statistic-suffix\">{Suffix}</span>}\n </div>\n );\n }\n);\nDescriptionStatistic.displayName = 'DescriptionStatistic';\n","'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype StatusColor = NonNullable<BadgeProps['color']>;\n\nconst dotColorMap: Record<StatusColor, string> = {\n primary: 'bg-primary',\n secondary: 'bg-secondary',\n muted: 'bg-muted',\n accent: 'bg-accent',\n info: 'bg-info',\n success: 'bg-success',\n warning: 'bg-warning',\n danger: 'bg-danger',\n};\n\ntype DescriptionStatusProps = {\n label: string | null | undefined;\n color?: StatusColor;\n dot?: boolean;\n};\n\nexport const DescriptionStatus: React.FC<DescriptionStatusProps> = ({ label, color = 'info', dot = true }) => {\n if (!label) return <DescriptionEmpty />;\n return (\n <Badge data-slot=\"description-status\" variant=\"soft\" color={color} size=\"sm\" className=\"gap-1.5\">\n {dot && <span className={cn('inline-block size-1.5 shrink-0 rounded-full', dotColorMap[color])} />}\n {label}\n </Badge>\n );\n};\n","'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport type { BadgeProps } from '@/components/ui/badge';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionTagListProps = {\n tags: Array<string | number> | null | undefined;\n max?: number;\n color?: BadgeProps['color'];\n variant?: BadgeProps['variant'];\n};\n\nexport const DescriptionTagList: React.FC<DescriptionTagListProps> = ({ tags, max = 5, color = 'secondary', variant = 'soft' }) => {\n if (!tags?.length) return <DescriptionEmpty />;\n\n const visible = tags.slice(0, max);\n const overflow = tags.length - visible.length;\n\n return (\n <div data-slot=\"description-tag-list\" className=\"flex flex-wrap gap-1\">\n {visible.map((tag, i) => (\n // biome-ignore lint/suspicious/noArrayIndexKey: static display list\n <Badge key={i} variant={variant} color={color} size=\"sm\">\n {tag}\n </Badge>\n ))}\n {overflow > 0 && (\n <Badge variant=\"outline\" color=\"muted\" size=\"sm\">\n +{overflow}\n </Badge>\n )}\n </div>\n );\n};\n","'use client';\n\nimport { UserDataDisplay } from '@/components/data-display/user';\n\nimport { DescriptionEmpty } from './empty';\n\ntype DescriptionUserProps = {\n uuid?: string | null;\n username?: string | null;\n email?: string | null;\n};\n\nexport const DescriptionUser: React.FC<DescriptionUserProps> = ({ uuid, username, email }) => {\n if (!uuid || !username || !email) return <DescriptionEmpty />;\n return <UserDataDisplay uuid={uuid} username={username} email={email} />;\n};\n","'use client';\n\nimport { createContext, useContext } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nexport * from './components';\n\nconst DescriptionGroupContext = createContext(false);\n\n/**\n * A single labeled row within a {@link Description} container, supporting both horizontal (side-by-side label/value) and vertical (stacked) layouts.\n *\n * @example\n * import { Description, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionItem label=\"Full name\">John Doe</DescriptionItem>\n * <DescriptionItem label=\"Email\" orientation=\"vertical\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionItem: React.FC<\n React.PropsWithChildren<{\n /** Text displayed in the label column. */\n label: string;\n /**\n * Number of grid columns (out of 12) allocated to the label in horizontal orientation.\n * @default 3\n */\n labelColSpan?: number;\n /**\n * Layout direction of the label/value pair.\n * - `'horizontal'` — label and value are side by side.\n * - `'vertical'` — label sits above the value.\n * @default 'horizontal'\n */\n orientation?: 'horizontal' | 'vertical';\n /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */\n action?: React.ReactNode;\n }>\n> = ({ label, labelColSpan = 3, orientation = 'horizontal', action, children }) => {\n if (orientation === 'vertical') {\n return (\n <div data-slot=\"description-item\" className=\"flex flex-col border-b border-b-border last:border-b-0\">\n <div\n data-slot=\"description-item-label\"\n className=\"flex items-center justify-between border-b border-b-border bg-secondary-muted py-2 pr-2 pl-4 text-sm font-medium text-text-positive-weak\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0\">{action}</div>}\n </div>\n <div data-slot=\"description-item-value\" className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\">\n {children}\n </div>\n </div>\n );\n }\n\n return (\n <div\n data-slot=\"description-item\"\n style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }}\n className=\"grid border-b border-b-border last:border-b-0\"\n >\n <div\n data-slot=\"description-item-label\"\n style={{ gridColumn: `span ${labelColSpan} / span ${labelColSpan}` }}\n className=\"flex min-w-full items-center justify-between overflow-x-hidden text-wrap break-all border-r border-r-border bg-secondary-muted py-3 pr-2 pl-4 text-sm font-medium text-text-positive-weak tabular-nums\"\n >\n <span>{label}</span>\n {action && <div className=\"shrink-0 pr-1\">{action}</div>}\n </div>\n <div\n data-slot=\"description-item-value\"\n style={{ gridColumn: `span ${12 - labelColSpan} / span ${12 - labelColSpan}` }}\n className=\"flex flex-wrap items-center gap-2 py-3 pr-2 pl-4 text-sm text-text-positive\"\n >\n {children}\n </div>\n </div>\n );\n};\n\n/**\n * A header bar for a {@link Description} block, showing a title, an optional subtitle, and an optional trailing action area.\n *\n * @example\n * import { Description, DescriptionHeader } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"User details\" description=\"Read-only overview\" extra={<EditBtn />} />\n * </Description>\n */\nexport const DescriptionHeader: React.FC<{\n /** Primary heading text. */\n title: string;\n /** Optional secondary text rendered below the title in a smaller, muted style. */\n description?: string;\n /** Optional node rendered on the right side of the header (e.g. action buttons). */\n extra?: React.ReactNode;\n /** Additional CSS class names applied to the header wrapper. */\n className?: string;\n}> = ({ title, description, extra, className }) => {\n return (\n <div\n data-slot=\"description-header\"\n className={cn('sticky top-0 z-10 flex items-center justify-between gap-4 border-b border-b-border bg-card px-4 py-3', className)}\n >\n <div className=\"flex flex-col gap-0.5\">\n <p className=\"text-sm font-semibold text-text-positive\">{title}</p>\n {description && <p className=\"text-xs text-text-positive-muted\">{description}</p>}\n </div>\n {extra && <div className=\"shrink-0\">{extra}</div>}\n </div>\n );\n};\n\n/**\n * A visual section divider inside a {@link Description} container that optionally displays a section title with a decorative horizontal rule.\n *\n * @example\n * import { Description, DescriptionSection, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionSection title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n */\nexport const DescriptionSection: React.FC<{\n /** Optional section label rendered as uppercase small-caps text beside the divider line. */\n title?: string;\n /** Additional CSS class names applied to the section wrapper. */\n className?: string;\n}> = ({ title, className }) => {\n return (\n <div data-slot=\"description-section\" className={cn('flex items-center gap-3 border-b border-b-border px-4 py-2.5', className)}>\n {title && <p className=\"shrink-0 text-xs font-semibold uppercase tracking-widest text-text-positive-muted\">{title}</p>}\n <div className=\"h-px flex-1 bg-border\" />\n </div>\n );\n};\n\nconst DescriptionLoadingSkeleton: React.FC<{ rows: number }> = ({ rows }) => (\n <div data-slot=\"description-loading\" className=\"animate-pulse\">\n <div className=\"flex items-center justify-between border-b border-b-border px-4 py-3\">\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"h-3.5 w-36 rounded bg-border\" />\n <div className=\"h-2.5 w-24 rounded bg-border-weak\" />\n </div>\n <div className=\"h-5 w-16 rounded bg-border-weak\" />\n </div>\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} style={{ display: 'grid', gridTemplateColumns: 'repeat(12, minmax(0, 1fr))' }} className=\"grid border-b border-b-border last:border-b-0\">\n <div style={{ gridColumn: 'span 3 / span 3' }} className=\"flex items-center border-r border-r-border bg-secondary-muted py-3 pl-4 pr-2\">\n <div className=\"h-3 w-20 rounded bg-border\" />\n </div>\n <div style={{ gridColumn: 'span 9 / span 9' }} className=\"flex items-center py-3 pl-4 pr-2\">\n <div className=\"h-3 w-28 rounded bg-border-weak\" />\n </div>\n </div>\n ))}\n </div>\n);\n\n/**\n * Root container for a description block — a bordered, rounded card that groups {@link DescriptionHeader}, {@link DescriptionSection}, and {@link DescriptionItem} elements.\n *\n * Set `nested` when embedding one `Description` inside another (removes the outer card shadow/ring and constrains sizing).\n * Set `loading` to replace content with animated skeleton rows while data is being fetched.\n *\n * @example\n * import { Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <Description>\n * <DescriptionHeader title=\"Order #1234\" />\n * <DescriptionItem label=\"Status\">Shipped</DescriptionItem>\n * <DescriptionItem label=\"Total\">$99.00</DescriptionItem>\n * </Description>\n */\nexport const Description: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the root wrapper element. */\n className?: string;\n /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */\n nested?: boolean;\n /** Replaces children with animated skeleton rows while data is loading. */\n loading?: boolean;\n /** Number of skeleton rows shown when `loading` is true. @default 4 */\n loadingRows?: number;\n }>\n> = ({ children, className, nested = false, loading = false, loadingRows = 4 }) => {\n const inGroup = useContext(DescriptionGroupContext);\n\n return (\n <div\n data-slot=\"description\"\n className={cn(\n 'relative flex flex-col bg-card',\n inGroup\n ? 'border-b border-b-border last:border-b-0'\n : nested\n ? 'w-full overflow-hidden rounded-md border border-border'\n : 'size-full overflow-y-auto rounded-lg border border-border shadow-card ring-1 ring-border-weak',\n className\n )}\n >\n {loading ? <DescriptionLoadingSkeleton rows={loadingRows} /> : children}\n </div>\n );\n};\n\n/**\n * A scrollable container that groups multiple {@link Description} blocks and makes each\n * {@link DescriptionHeader} sticky. As you scroll, the next section header stacks above\n * (pushes out) the previous one — standard CSS sticky behaviour within a single scroll context.\n *\n * @example\n * import { DescriptionGroup, Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';\n *\n * <DescriptionGroup>\n * <Description>\n * <DescriptionHeader title=\"Personal info\" />\n * <DescriptionItem label=\"Name\">John Doe</DescriptionItem>\n * </Description>\n * <Description>\n * <DescriptionHeader title=\"Contact\" />\n * <DescriptionItem label=\"Email\">john@example.com</DescriptionItem>\n * </Description>\n * </DescriptionGroup>\n */\nexport const DescriptionGroup: React.FC<\n React.PropsWithChildren<{\n /** Additional CSS class names applied to the group wrapper. */\n className?: string;\n }>\n> = ({ children, className }) => {\n return (\n <DescriptionGroupContext.Provider value={true}>\n <div\n data-slot=\"description-group\"\n className={cn('relative size-full overflow-y-auto rounded-lg border border-border bg-card shadow-card ring-1 ring-border-weak', className)}\n >\n {children}\n </div>\n </DescriptionGroupContext.Provider>\n );\n};\n"],"mappings":"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"}
@@ -1,231 +1,2 @@
1
- import { n as BadgeProps } from "../../badge-D0InQSvM.cjs";
2
- import { VariantProps } from "class-variance-authority";
3
-
4
- //#region packages/components/features/descriptions/components/badge.d.ts
5
- type DescriptionBadgeProps = {
6
- label: string | number | null | undefined;
7
- color?: BadgeProps['color'];
8
- variant?: BadgeProps['variant'];
9
- size?: BadgeProps['size'];
10
- };
11
- declare const DescriptionBadge: React.FC<DescriptionBadgeProps>;
12
- //#endregion
13
- //#region packages/components/features/descriptions/components/boolean.d.ts
14
- type DescriptionBooleanProps = {
15
- value: boolean | null | undefined;
16
- trueLabel?: string;
17
- falseLabel?: string;
18
- };
19
- declare const DescriptionBoolean: React.FC<DescriptionBooleanProps>;
20
- //#endregion
21
- //#region packages/components/features/descriptions/components/copy.d.ts
22
- type DescriptionCopyProps = {
23
- value: string | null | undefined;
24
- truncate?: boolean;
25
- };
26
- declare const DescriptionCopy: React.FC<DescriptionCopyProps>;
27
- //#endregion
28
- //#region packages/components/features/descriptions/components/date.d.ts
29
- type DescriptionDateProps = {
30
- date: Date | string | number | null | undefined;
31
- };
32
- declare const DescriptionDate: React.FC<DescriptionDateProps>;
33
- //#endregion
34
- //#region packages/components/features/descriptions/components/empty.d.ts
35
- declare const DescriptionEmpty: React.FC;
36
- //#endregion
37
- //#region packages/components/features/descriptions/components/images.d.ts
38
- type ImageItem = {
39
- id: string;
40
- src: string;
41
- alt: string;
42
- };
43
- declare const DescriptionImages: React.FC<{
44
- images?: Array<ImageItem> | null | undefined;
45
- }>;
46
- //#endregion
47
- //#region packages/components/features/descriptions/components/link.d.ts
48
- type DescriptionLinkProps = {
49
- href: string | null | undefined;
50
- label?: string;
51
- external?: boolean;
52
- className?: string;
53
- };
54
- declare const DescriptionLink: React.FC<DescriptionLinkProps>;
55
- //#endregion
56
- //#region packages/components/features/descriptions/components/longtext.d.ts
57
- declare const DescriptionLongText: React.FC<{
58
- content: string | null | undefined | number;
59
- }>;
60
- //#endregion
61
- //#region packages/components/features/descriptions/components/name.d.ts
62
- declare const DescriptionName: React.FC<{
63
- name?: string | null | undefined;
64
- }>;
65
- //#endregion
66
- //#region packages/components/features/descriptions/components/number-phone.d.ts
67
- declare const DescriptionNumberPhone: React.FC<{
68
- value: string;
69
- }>;
70
- //#endregion
71
- //#region packages/components/features/descriptions/components/statistic.d.ts
72
- declare const descriptionStatisticVariants: (props?: ({
73
- size?: "xs" | "sm" | "md" | "lg" | "xl" | null | undefined;
74
- trend?: "neutral" | "up" | "down" | null | undefined;
75
- } & import("class-variance-authority/types").ClassProp) | undefined) => string;
76
- type DescriptionStatisticProps = VariantProps<typeof descriptionStatisticVariants> & {
77
- decimalSeparator?: string;
78
- groupSeparator?: string;
79
- prefix?: React.ReactNode;
80
- suffix?: React.ReactNode;
81
- precision?: number;
82
- roundingMode?: 'round' | 'floor' | 'ceil';
83
- showTrailingZeros?: boolean;
84
- value: number | string | null | undefined;
85
- className?: string;
86
- };
87
- declare const DescriptionStatistic: import("react").MemoExoticComponent<({
88
- decimalSeparator,
89
- groupSeparator,
90
- prefix: Prefix,
91
- suffix: Suffix,
92
- precision,
93
- roundingMode,
94
- showTrailingZeros,
95
- size,
96
- trend,
97
- value,
98
- className
99
- }: DescriptionStatisticProps) => import("react").JSX.Element>;
100
- //#endregion
101
- //#region packages/components/features/descriptions/components/status.d.ts
102
- type StatusColor = NonNullable<BadgeProps['color']>;
103
- type DescriptionStatusProps = {
104
- label: string | null | undefined;
105
- color?: StatusColor;
106
- dot?: boolean;
107
- };
108
- declare const DescriptionStatus: React.FC<DescriptionStatusProps>;
109
- //#endregion
110
- //#region packages/components/features/descriptions/components/tag-list.d.ts
111
- type DescriptionTagListProps = {
112
- tags: Array<string | number> | null | undefined;
113
- max?: number;
114
- color?: BadgeProps['color'];
115
- variant?: BadgeProps['variant'];
116
- };
117
- declare const DescriptionTagList: React.FC<DescriptionTagListProps>;
118
- //#endregion
119
- //#region packages/components/features/descriptions/components/user.d.ts
120
- type DescriptionUserProps = {
121
- uuid?: string | null;
122
- username?: string | null;
123
- email?: string | null;
124
- };
125
- declare const DescriptionUser: React.FC<DescriptionUserProps>;
126
- //#endregion
127
- //#region packages/components/features/descriptions/index.d.ts
128
- /**
129
- * A single labeled row within a {@link Description} container, supporting both horizontal (side-by-side label/value) and vertical (stacked) layouts.
130
- *
131
- * @example
132
- * import { Description, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';
133
- *
134
- * <Description>
135
- * <DescriptionItem label="Full name">John Doe</DescriptionItem>
136
- * <DescriptionItem label="Email" orientation="vertical">john@example.com</DescriptionItem>
137
- * </Description>
138
- */
139
- declare const DescriptionItem: React.FC<React.PropsWithChildren<{
140
- /** Text displayed in the label column. */label: string;
141
- /**
142
- * Number of grid columns (out of 12) allocated to the label in horizontal orientation.
143
- * @default 3
144
- */
145
- labelColSpan?: number;
146
- /**
147
- * Layout direction of the label/value pair.
148
- * - `'horizontal'` — label and value are side by side.
149
- * - `'vertical'` — label sits above the value.
150
- * @default 'horizontal'
151
- */
152
- orientation?: 'horizontal' | 'vertical'; /** Optional node rendered in the top-right corner of the label area (e.g. an edit action). */
153
- action?: React.ReactNode;
154
- }>>;
155
- /**
156
- * A header bar for a {@link Description} block, showing a title, an optional subtitle, and an optional trailing action area.
157
- *
158
- * @example
159
- * import { Description, DescriptionHeader } from '@customafk/lunas-ui/features/descriptions';
160
- *
161
- * <Description>
162
- * <DescriptionHeader title="User details" description="Read-only overview" extra={<EditBtn />} />
163
- * </Description>
164
- */
165
- declare const DescriptionHeader: React.FC<{
166
- /** Primary heading text. */title: string; /** Optional secondary text rendered below the title in a smaller, muted style. */
167
- description?: string; /** Optional node rendered on the right side of the header (e.g. action buttons). */
168
- extra?: React.ReactNode; /** Additional CSS class names applied to the header wrapper. */
169
- className?: string;
170
- }>;
171
- /**
172
- * A visual section divider inside a {@link Description} container that optionally displays a section title with a decorative horizontal rule.
173
- *
174
- * @example
175
- * import { Description, DescriptionSection, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';
176
- *
177
- * <Description>
178
- * <DescriptionSection title="Contact" />
179
- * <DescriptionItem label="Email">john@example.com</DescriptionItem>
180
- * </Description>
181
- */
182
- declare const DescriptionSection: React.FC<{
183
- /** Optional section label rendered as uppercase small-caps text beside the divider line. */title?: string; /** Additional CSS class names applied to the section wrapper. */
184
- className?: string;
185
- }>;
186
- /**
187
- * Root container for a description block — a bordered, rounded card that groups {@link DescriptionHeader}, {@link DescriptionSection}, and {@link DescriptionItem} elements.
188
- *
189
- * Set `nested` when embedding one `Description` inside another (removes the outer card shadow/ring and constrains sizing).
190
- * Set `loading` to replace content with animated skeleton rows while data is being fetched.
191
- *
192
- * @example
193
- * import { Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';
194
- *
195
- * <Description>
196
- * <DescriptionHeader title="Order #1234" />
197
- * <DescriptionItem label="Status">Shipped</DescriptionItem>
198
- * <DescriptionItem label="Total">$99.00</DescriptionItem>
199
- * </Description>
200
- */
201
- declare const Description: React.FC<React.PropsWithChildren<{
202
- /** Additional CSS class names applied to the root wrapper element. */className?: string; /** Strips the outer card shadow/ring and adapts sizing for embedding inside another Description. */
203
- nested?: boolean; /** Replaces children with animated skeleton rows while data is loading. */
204
- loading?: boolean; /** Number of skeleton rows shown when `loading` is true. @default 4 */
205
- loadingRows?: number;
206
- }>>;
207
- /**
208
- * A scrollable container that groups multiple {@link Description} blocks and makes each
209
- * {@link DescriptionHeader} sticky. As you scroll, the next section header stacks above
210
- * (pushes out) the previous one — standard CSS sticky behaviour within a single scroll context.
211
- *
212
- * @example
213
- * import { DescriptionGroup, Description, DescriptionHeader, DescriptionItem } from '@customafk/lunas-ui/features/descriptions';
214
- *
215
- * <DescriptionGroup>
216
- * <Description>
217
- * <DescriptionHeader title="Personal info" />
218
- * <DescriptionItem label="Name">John Doe</DescriptionItem>
219
- * </Description>
220
- * <Description>
221
- * <DescriptionHeader title="Contact" />
222
- * <DescriptionItem label="Email">john@example.com</DescriptionItem>
223
- * </Description>
224
- * </DescriptionGroup>
225
- */
226
- declare const DescriptionGroup: React.FC<React.PropsWithChildren<{
227
- /** Additional CSS class names applied to the group wrapper. */className?: string;
228
- }>>;
229
- //#endregion
230
- export { Description, DescriptionBadge, DescriptionBoolean, DescriptionCopy, DescriptionDate, DescriptionEmpty, DescriptionGroup, DescriptionHeader, DescriptionImages, DescriptionItem, DescriptionLink, DescriptionLongText, DescriptionName, DescriptionNumberPhone, DescriptionSection, DescriptionStatistic, DescriptionStatisticProps, DescriptionStatus, DescriptionTagList, DescriptionUser };
231
- //# sourceMappingURL=index.d.cts.map
1
+ import { _ as DescriptionDate, a as DescriptionSection, b as DescriptionBadge, c as DescriptionStatus, d as DescriptionNumberPhone, f as DescriptionName, g as DescriptionEmpty, h as DescriptionImages, i as DescriptionItem, l as DescriptionStatistic, m as DescriptionLink, n as DescriptionGroup, o as DescriptionUser, p as DescriptionLongText, r as DescriptionHeader, s as DescriptionTagList, t as Description, u as DescriptionStatisticProps, v as DescriptionCopy, y as DescriptionBoolean } from "../../index-fZChR7MS.cjs";
2
+ export { Description, DescriptionBadge, DescriptionBoolean, DescriptionCopy, DescriptionDate, DescriptionEmpty, DescriptionGroup, DescriptionHeader, DescriptionImages, DescriptionItem, DescriptionLink, DescriptionLongText, DescriptionName, DescriptionNumberPhone, DescriptionSection, DescriptionStatistic, DescriptionStatisticProps, DescriptionStatus, DescriptionTagList, DescriptionUser };