@akshar-technosoft/ui 1.0.24 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/README.md +466 -215
  2. package/dist/components/date-helper.cjs.map +1 -1
  3. package/dist/components/date-helper.d.cts +36 -0
  4. package/dist/components/date-helper.d.ts +36 -0
  5. package/dist/components/date-helper.js.map +1 -1
  6. package/dist/components/general.cjs +1 -1
  7. package/dist/components/general.cjs.map +1 -1
  8. package/dist/components/general.d.cts +25 -0
  9. package/dist/components/general.d.ts +25 -0
  10. package/dist/components/general.js +1 -1
  11. package/dist/components/general.js.map +1 -1
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.cjs.map +1 -1
  14. package/dist/index.d.cts +817 -28
  15. package/dist/index.d.ts +817 -28
  16. package/dist/index.js +1 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/lib/utils.cjs.map +1 -1
  19. package/dist/lib/utils.js.map +1 -1
  20. package/package.json +94 -87
  21. package/dist/components/core/error.cjs +0 -3
  22. package/dist/components/core/error.cjs.map +0 -1
  23. package/dist/components/core/error.d.cts +0 -5
  24. package/dist/components/core/error.d.ts +0 -5
  25. package/dist/components/core/error.js +0 -3
  26. package/dist/components/core/error.js.map +0 -1
  27. package/dist/components/core/event-success.cjs +0 -3
  28. package/dist/components/core/event-success.cjs.map +0 -1
  29. package/dist/components/core/event-success.d.cts +0 -5
  30. package/dist/components/core/event-success.d.ts +0 -5
  31. package/dist/components/core/event-success.js +0 -3
  32. package/dist/components/core/event-success.js.map +0 -1
  33. package/dist/components/core/index.cjs +0 -3
  34. package/dist/components/core/index.cjs.map +0 -1
  35. package/dist/components/core/index.d.cts +0 -7
  36. package/dist/components/core/index.d.ts +0 -7
  37. package/dist/components/core/index.js +0 -3
  38. package/dist/components/core/index.js.map +0 -1
  39. package/dist/components/core/loader.cjs +0 -3
  40. package/dist/components/core/loader.cjs.map +0 -1
  41. package/dist/components/core/loader.d.cts +0 -5
  42. package/dist/components/core/loader.d.ts +0 -5
  43. package/dist/components/core/loader.js +0 -3
  44. package/dist/components/core/loader.js.map +0 -1
  45. package/dist/components/core/notfound.cjs +0 -3
  46. package/dist/components/core/notfound.cjs.map +0 -1
  47. package/dist/components/core/notfound.d.cts +0 -5
  48. package/dist/components/core/notfound.d.ts +0 -5
  49. package/dist/components/core/notfound.js +0 -3
  50. package/dist/components/core/notfound.js.map +0 -1
  51. package/dist/components/core/offline-content.cjs +0 -3
  52. package/dist/components/core/offline-content.cjs.map +0 -1
  53. package/dist/components/core/offline-content.d.cts +0 -5
  54. package/dist/components/core/offline-content.d.ts +0 -5
  55. package/dist/components/core/offline-content.js +0 -3
  56. package/dist/components/core/offline-content.js.map +0 -1
  57. package/dist/components/core/unauthorized.cjs +0 -3
  58. package/dist/components/core/unauthorized.cjs.map +0 -1
  59. package/dist/components/core/unauthorized.d.cts +0 -5
  60. package/dist/components/core/unauthorized.d.ts +0 -5
  61. package/dist/components/core/unauthorized.js +0 -3
  62. package/dist/components/core/unauthorized.js.map +0 -1
  63. package/dist/components/data/data-table/data-table-action-bar.cjs +0 -3
  64. package/dist/components/data/data-table/data-table-action-bar.cjs.map +0 -1
  65. package/dist/components/data/data-table/data-table-action-bar.d.cts +0 -26
  66. package/dist/components/data/data-table/data-table-action-bar.d.ts +0 -26
  67. package/dist/components/data/data-table/data-table-action-bar.js +0 -3
  68. package/dist/components/data/data-table/data-table-action-bar.js.map +0 -1
  69. package/dist/components/data/data-table/data-table-column-header.cjs +0 -3
  70. package/dist/components/data/data-table/data-table-column-header.cjs.map +0 -1
  71. package/dist/components/data/data-table/data-table-column-header.d.cts +0 -11
  72. package/dist/components/data/data-table/data-table-column-header.d.ts +0 -11
  73. package/dist/components/data/data-table/data-table-column-header.js +0 -3
  74. package/dist/components/data/data-table/data-table-column-header.js.map +0 -1
  75. package/dist/components/data/data-table/data-table-faceted-filter.cjs +0 -3
  76. package/dist/components/data/data-table/data-table-faceted-filter.cjs.map +0 -1
  77. package/dist/components/data/data-table/data-table-faceted-filter.d.cts +0 -18
  78. package/dist/components/data/data-table/data-table-faceted-filter.d.ts +0 -18
  79. package/dist/components/data/data-table/data-table-faceted-filter.js +0 -3
  80. package/dist/components/data/data-table/data-table-faceted-filter.js.map +0 -1
  81. package/dist/components/data/data-table/data-table-pagination.cjs +0 -3
  82. package/dist/components/data/data-table/data-table-pagination.cjs.map +0 -1
  83. package/dist/components/data/data-table/data-table-pagination.d.cts +0 -12
  84. package/dist/components/data/data-table/data-table-pagination.d.ts +0 -12
  85. package/dist/components/data/data-table/data-table-pagination.js +0 -3
  86. package/dist/components/data/data-table/data-table-pagination.js.map +0 -1
  87. package/dist/components/data/data-table/data-table-toolbar.cjs +0 -3
  88. package/dist/components/data/data-table/data-table-toolbar.cjs.map +0 -1
  89. package/dist/components/data/data-table/data-table-toolbar.d.cts +0 -27
  90. package/dist/components/data/data-table/data-table-toolbar.d.ts +0 -27
  91. package/dist/components/data/data-table/data-table-toolbar.js +0 -3
  92. package/dist/components/data/data-table/data-table-toolbar.js.map +0 -1
  93. package/dist/components/data/data-table/data-table-types.cjs +0 -3
  94. package/dist/components/data/data-table/data-table-types.cjs.map +0 -1
  95. package/dist/components/data/data-table/data-table-types.d.cts +0 -117
  96. package/dist/components/data/data-table/data-table-types.d.ts +0 -117
  97. package/dist/components/data/data-table/data-table-types.js +0 -2
  98. package/dist/components/data/data-table/data-table-types.js.map +0 -1
  99. package/dist/components/data/data-table/data-table-view-options.cjs +0 -3
  100. package/dist/components/data/data-table/data-table-view-options.cjs.map +0 -1
  101. package/dist/components/data/data-table/data-table-view-options.d.cts +0 -9
  102. package/dist/components/data/data-table/data-table-view-options.d.ts +0 -9
  103. package/dist/components/data/data-table/data-table-view-options.js +0 -3
  104. package/dist/components/data/data-table/data-table-view-options.js.map +0 -1
  105. package/dist/components/data/data-table/data-table.cjs +0 -3
  106. package/dist/components/data/data-table/data-table.cjs.map +0 -1
  107. package/dist/components/data/data-table/data-table.d.cts +0 -8
  108. package/dist/components/data/data-table/data-table.d.ts +0 -8
  109. package/dist/components/data/data-table/data-table.js +0 -3
  110. package/dist/components/data/data-table/data-table.js.map +0 -1
  111. package/dist/components/data/data-table/index.cjs +0 -3
  112. package/dist/components/data/data-table/index.cjs.map +0 -1
  113. package/dist/components/data/data-table/index.d.cts +0 -16
  114. package/dist/components/data/data-table/index.d.ts +0 -16
  115. package/dist/components/data/data-table/index.js +0 -3
  116. package/dist/components/data/data-table/index.js.map +0 -1
  117. package/dist/components/data/data-template/data-template-action-bar.cjs +0 -3
  118. package/dist/components/data/data-template/data-template-action-bar.cjs.map +0 -1
  119. package/dist/components/data/data-template/data-template-action-bar.d.cts +0 -14
  120. package/dist/components/data/data-template/data-template-action-bar.d.ts +0 -14
  121. package/dist/components/data/data-template/data-template-action-bar.js +0 -3
  122. package/dist/components/data/data-template/data-template-action-bar.js.map +0 -1
  123. package/dist/components/data/data-template/data-template-pagination.cjs +0 -3
  124. package/dist/components/data/data-template/data-template-pagination.cjs.map +0 -1
  125. package/dist/components/data/data-template/data-template-pagination.d.cts +0 -17
  126. package/dist/components/data/data-template/data-template-pagination.d.ts +0 -17
  127. package/dist/components/data/data-template/data-template-pagination.js +0 -3
  128. package/dist/components/data/data-template/data-template-pagination.js.map +0 -1
  129. package/dist/components/data/data-template/data-template-toolbar.cjs +0 -3
  130. package/dist/components/data/data-template/data-template-toolbar.cjs.map +0 -1
  131. package/dist/components/data/data-template/data-template-toolbar.d.cts +0 -27
  132. package/dist/components/data/data-template/data-template-toolbar.d.ts +0 -27
  133. package/dist/components/data/data-template/data-template-toolbar.js +0 -3
  134. package/dist/components/data/data-template/data-template-toolbar.js.map +0 -1
  135. package/dist/components/data/data-template/data-template-types.cjs +0 -3
  136. package/dist/components/data/data-template/data-template-types.cjs.map +0 -1
  137. package/dist/components/data/data-template/data-template-types.d.cts +0 -107
  138. package/dist/components/data/data-template/data-template-types.d.ts +0 -107
  139. package/dist/components/data/data-template/data-template-types.js +0 -2
  140. package/dist/components/data/data-template/data-template-types.js.map +0 -1
  141. package/dist/components/data/data-template/data-template.cjs +0 -3
  142. package/dist/components/data/data-template/data-template.cjs.map +0 -1
  143. package/dist/components/data/data-template/data-template.d.cts +0 -8
  144. package/dist/components/data/data-template/data-template.d.ts +0 -8
  145. package/dist/components/data/data-template/data-template.js +0 -3
  146. package/dist/components/data/data-template/data-template.js.map +0 -1
  147. package/dist/components/data/data-template/index.cjs +0 -3
  148. package/dist/components/data/data-template/index.cjs.map +0 -1
  149. package/dist/components/data/data-template/index.d.cts +0 -8
  150. package/dist/components/data/data-template/index.d.ts +0 -8
  151. package/dist/components/data/data-template/index.js +0 -3
  152. package/dist/components/data/data-template/index.js.map +0 -1
  153. package/dist/components/helper/date-filter.cjs +0 -3
  154. package/dist/components/helper/date-filter.cjs.map +0 -1
  155. package/dist/components/helper/date-filter.d.cts +0 -14
  156. package/dist/components/helper/date-filter.d.ts +0 -14
  157. package/dist/components/helper/date-filter.js +0 -3
  158. package/dist/components/helper/date-filter.js.map +0 -1
  159. package/dist/components/layouts/app-container.cjs +0 -3
  160. package/dist/components/layouts/app-container.cjs.map +0 -1
  161. package/dist/components/layouts/app-container.d.cts +0 -13
  162. package/dist/components/layouts/app-container.d.ts +0 -13
  163. package/dist/components/layouts/app-container.js +0 -3
  164. package/dist/components/layouts/app-container.js.map +0 -1
  165. package/dist/components/layouts/app-content.cjs +0 -3
  166. package/dist/components/layouts/app-content.cjs.map +0 -1
  167. package/dist/components/layouts/app-content.d.cts +0 -45
  168. package/dist/components/layouts/app-content.d.ts +0 -45
  169. package/dist/components/layouts/app-content.js +0 -3
  170. package/dist/components/layouts/app-content.js.map +0 -1
  171. package/dist/components/layouts/app-footer.cjs +0 -3
  172. package/dist/components/layouts/app-footer.cjs.map +0 -1
  173. package/dist/components/layouts/app-footer.d.cts +0 -18
  174. package/dist/components/layouts/app-footer.d.ts +0 -18
  175. package/dist/components/layouts/app-footer.js +0 -3
  176. package/dist/components/layouts/app-footer.js.map +0 -1
  177. package/dist/components/layouts/app-header.cjs +0 -3
  178. package/dist/components/layouts/app-header.cjs.map +0 -1
  179. package/dist/components/layouts/app-header.d.cts +0 -19
  180. package/dist/components/layouts/app-header.d.ts +0 -19
  181. package/dist/components/layouts/app-header.js +0 -3
  182. package/dist/components/layouts/app-header.js.map +0 -1
  183. package/dist/components/layouts/factories.cjs +0 -3
  184. package/dist/components/layouts/factories.cjs.map +0 -1
  185. package/dist/components/layouts/factories.d.cts +0 -18
  186. package/dist/components/layouts/factories.d.ts +0 -18
  187. package/dist/components/layouts/factories.js +0 -3
  188. package/dist/components/layouts/factories.js.map +0 -1
  189. package/dist/components/layouts/index.cjs +0 -3
  190. package/dist/components/layouts/index.cjs.map +0 -1
  191. package/dist/components/layouts/index.d.cts +0 -8
  192. package/dist/components/layouts/index.d.ts +0 -8
  193. package/dist/components/layouts/index.js +0 -3
  194. package/dist/components/layouts/index.js.map +0 -1
  195. package/dist/components/ui/badge.cjs +0 -3
  196. package/dist/components/ui/badge.cjs.map +0 -1
  197. package/dist/components/ui/badge.d.cts +0 -13
  198. package/dist/components/ui/badge.d.ts +0 -13
  199. package/dist/components/ui/badge.js +0 -3
  200. package/dist/components/ui/badge.js.map +0 -1
  201. package/dist/components/ui/button.cjs +0 -3
  202. package/dist/components/ui/button.cjs.map +0 -1
  203. package/dist/components/ui/button.d.cts +0 -14
  204. package/dist/components/ui/button.d.ts +0 -14
  205. package/dist/components/ui/button.js +0 -3
  206. package/dist/components/ui/button.js.map +0 -1
  207. package/dist/components/ui/calendar.cjs +0 -3
  208. package/dist/components/ui/calendar.cjs.map +0 -1
  209. package/dist/components/ui/calendar.d.cts +0 -13
  210. package/dist/components/ui/calendar.d.ts +0 -13
  211. package/dist/components/ui/calendar.js +0 -3
  212. package/dist/components/ui/calendar.js.map +0 -1
  213. package/dist/components/ui/card.cjs +0 -3
  214. package/dist/components/ui/card.cjs.map +0 -1
  215. package/dist/components/ui/card.d.cts +0 -12
  216. package/dist/components/ui/card.d.ts +0 -12
  217. package/dist/components/ui/card.js +0 -3
  218. package/dist/components/ui/card.js.map +0 -1
  219. package/dist/components/ui/checkbox.cjs +0 -3
  220. package/dist/components/ui/checkbox.cjs.map +0 -1
  221. package/dist/components/ui/checkbox.d.cts +0 -7
  222. package/dist/components/ui/checkbox.d.ts +0 -7
  223. package/dist/components/ui/checkbox.js +0 -3
  224. package/dist/components/ui/checkbox.js.map +0 -1
  225. package/dist/components/ui/command.cjs +0 -3
  226. package/dist/components/ui/command.cjs.map +0 -1
  227. package/dist/components/ui/command.d.cts +0 -20
  228. package/dist/components/ui/command.d.ts +0 -20
  229. package/dist/components/ui/command.js +0 -3
  230. package/dist/components/ui/command.js.map +0 -1
  231. package/dist/components/ui/dialog.cjs +0 -3
  232. package/dist/components/ui/dialog.cjs.map +0 -1
  233. package/dist/components/ui/dialog.d.cts +0 -16
  234. package/dist/components/ui/dialog.d.ts +0 -16
  235. package/dist/components/ui/dialog.js +0 -3
  236. package/dist/components/ui/dialog.js.map +0 -1
  237. package/dist/components/ui/dropdown-menu.cjs +0 -3
  238. package/dist/components/ui/dropdown-menu.cjs.map +0 -1
  239. package/dist/components/ui/dropdown-menu.d.cts +0 -28
  240. package/dist/components/ui/dropdown-menu.d.ts +0 -28
  241. package/dist/components/ui/dropdown-menu.js +0 -3
  242. package/dist/components/ui/dropdown-menu.js.map +0 -1
  243. package/dist/components/ui/input.cjs +0 -3
  244. package/dist/components/ui/input.cjs.map +0 -1
  245. package/dist/components/ui/input.d.cts +0 -6
  246. package/dist/components/ui/input.d.ts +0 -6
  247. package/dist/components/ui/input.js +0 -3
  248. package/dist/components/ui/input.js.map +0 -1
  249. package/dist/components/ui/popover.cjs +0 -3
  250. package/dist/components/ui/popover.cjs.map +0 -1
  251. package/dist/components/ui/popover.d.cts +0 -10
  252. package/dist/components/ui/popover.d.ts +0 -10
  253. package/dist/components/ui/popover.js +0 -3
  254. package/dist/components/ui/popover.js.map +0 -1
  255. package/dist/components/ui/select.cjs +0 -3
  256. package/dist/components/ui/select.cjs.map +0 -1
  257. package/dist/components/ui/select.d.cts +0 -18
  258. package/dist/components/ui/select.d.ts +0 -18
  259. package/dist/components/ui/select.js +0 -3
  260. package/dist/components/ui/select.js.map +0 -1
  261. package/dist/components/ui/separator.cjs +0 -3
  262. package/dist/components/ui/separator.cjs.map +0 -1
  263. package/dist/components/ui/separator.d.cts +0 -7
  264. package/dist/components/ui/separator.d.ts +0 -7
  265. package/dist/components/ui/separator.js +0 -3
  266. package/dist/components/ui/separator.js.map +0 -1
  267. package/dist/components/ui/sheet.cjs +0 -3
  268. package/dist/components/ui/sheet.cjs.map +0 -1
  269. package/dist/components/ui/sheet.d.cts +0 -18
  270. package/dist/components/ui/sheet.d.ts +0 -18
  271. package/dist/components/ui/sheet.js +0 -3
  272. package/dist/components/ui/sheet.js.map +0 -1
  273. package/dist/components/ui/table.cjs +0 -3
  274. package/dist/components/ui/table.cjs.map +0 -1
  275. package/dist/components/ui/table.d.cts +0 -13
  276. package/dist/components/ui/table.d.ts +0 -13
  277. package/dist/components/ui/table.js +0 -3
  278. package/dist/components/ui/table.js.map +0 -1
  279. package/dist/components/ui/toggle.cjs +0 -3
  280. package/dist/components/ui/toggle.cjs.map +0 -1
  281. package/dist/components/ui/toggle.d.cts +0 -16
  282. package/dist/components/ui/toggle.d.ts +0 -16
  283. package/dist/components/ui/toggle.js +0 -3
  284. package/dist/components/ui/toggle.js.map +0 -1
  285. package/dist/components/ui/tooltip.cjs +0 -3
  286. package/dist/components/ui/tooltip.cjs.map +0 -1
  287. package/dist/components/ui/tooltip.d.cts +0 -10
  288. package/dist/components/ui/tooltip.d.ts +0 -10
  289. package/dist/components/ui/tooltip.js +0 -3
  290. package/dist/components/ui/tooltip.js.map +0 -1
  291. package/dist/context/app-meta/context.cjs +0 -3
  292. package/dist/context/app-meta/context.cjs.map +0 -1
  293. package/dist/context/app-meta/context.d.cts +0 -18
  294. package/dist/context/app-meta/context.d.ts +0 -18
  295. package/dist/context/app-meta/context.js +0 -3
  296. package/dist/context/app-meta/context.js.map +0 -1
  297. package/dist/context/app-meta/hooks.cjs +0 -3
  298. package/dist/context/app-meta/hooks.cjs.map +0 -1
  299. package/dist/context/app-meta/hooks.d.cts +0 -10
  300. package/dist/context/app-meta/hooks.d.ts +0 -10
  301. package/dist/context/app-meta/hooks.js +0 -3
  302. package/dist/context/app-meta/hooks.js.map +0 -1
  303. package/dist/context/app-meta/index.cjs +0 -3
  304. package/dist/context/app-meta/index.cjs.map +0 -1
  305. package/dist/context/app-meta/index.d.cts +0 -5
  306. package/dist/context/app-meta/index.d.ts +0 -5
  307. package/dist/context/app-meta/index.js +0 -3
  308. package/dist/context/app-meta/index.js.map +0 -1
  309. package/dist/context/app-meta/types.cjs +0 -3
  310. package/dist/context/app-meta/types.cjs.map +0 -1
  311. package/dist/context/app-meta/types.d.cts +0 -48
  312. package/dist/context/app-meta/types.d.ts +0 -48
  313. package/dist/context/app-meta/types.js +0 -2
  314. package/dist/context/app-meta/types.js.map +0 -1
  315. package/dist/context/index.cjs +0 -3
  316. package/dist/context/index.cjs.map +0 -1
  317. package/dist/context/index.d.cts +0 -5
  318. package/dist/context/index.d.ts +0 -5
  319. package/dist/context/index.js +0 -3
  320. package/dist/context/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/general.tsx","../../src/components/ui/button.tsx","../../src/lib/utils.ts","../../src/components/ui/tooltip.tsx"],"sourcesContent":["import { useState } from \"react\";\r\nimport { Copy, Check, Loader2Icon } from \"lucide-react\";\r\nimport { Button } from \"../components/ui/button.jsx\";\r\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../components/ui/tooltip.jsx\";\r\nimport { cn } from \"../lib/utils.js\";\r\n\r\ntype CopyToClipboardProps = {\r\n text: string;\r\n children?: React.ReactNode;\r\n className?: string;\r\n size?: \"sm\" | \"default\" | \"lg\" | \"icon\";\r\n variant?: \"ghost\" | \"outline\" | \"default\" | \"secondary\" | \"destructive\" | \"link\";\r\n};\r\n\r\ntype FormatINROptions = {\r\n prefix?: string;\r\n suffix?: string;\r\n withSymbol?: boolean;\r\n compact?: boolean;\r\n};\r\n\r\ntype FormatDateOptions = {\r\n format?: \"dd-mm-yyyy\" | \"dd-mmm-yyyy\" | \"iso\" | \"long\" | \"short\";\r\n separator?: string;\r\n};\r\n\r\ntype StatusBadgeProps = {\r\n status: string | boolean | number;\r\n className?: string;\r\n showDot?: boolean;\r\n capitalize?: boolean;\r\n size?: 'sm' | 'md' | 'lg';\r\n variant?: 'solid' | 'outline' | 'subtle';\r\n customColors?: {\r\n bg?: string;\r\n text?: string;\r\n border?: string;\r\n dot?: string;\r\n }; icon?: React.ReactNode;\r\n};\r\n\r\nclass GeneralHelper {\r\n private static currencyFormatter = new Intl.NumberFormat(\"en-IN\", {\r\n style: \"currency\",\r\n currency: \"INR\",\r\n maximumFractionDigits: 2,\r\n });\r\n\r\n private static compactFormatter = new Intl.NumberFormat(\"en-IN\", {\r\n style: \"currency\",\r\n currency: \"INR\",\r\n notation: \"compact\",\r\n maximumFractionDigits: 1,\r\n });\r\n\r\n private static MONTH_NAMES_SHORT = [\r\n \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\",\r\n \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"\r\n ];\r\n\r\n /**\r\n * Copies text to clipboard\r\n * @param text Text to copy\r\n * @returns Promise that resolves when copy is complete\r\n */\r\n static async copyToClipboard(text: string): Promise<void> {\r\n if (!text) return;\r\n try {\r\n await navigator.clipboard.writeText(text);\r\n } catch (error) {\r\n console.error(\"Failed to copy text:\", error);\r\n throw error;\r\n }\r\n }\r\n\r\n /**\r\n * React component for copy to clipboard functionality\r\n */\r\n static CopyToClipboard = ({\r\n text,\r\n children,\r\n className,\r\n size = \"icon\",\r\n variant = \"ghost\",\r\n }: CopyToClipboardProps) => {\r\n const [isCopied, setIsCopied] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const handleCopy = async () => {\r\n if (!text || isLoading) return;\r\n\r\n setIsLoading(true);\r\n try {\r\n await this.copyToClipboard(text);\r\n setIsCopied(true);\r\n setTimeout(() => setIsCopied(false), 2000);\r\n } catch (error) {\r\n console.error(\"Failed to copy text:\", error);\r\n } finally {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant={variant}\r\n size={size}\r\n className={cn(\r\n size === \"icon\" && \"size-6\",\r\n className\r\n )}\r\n onClick={handleCopy}\r\n disabled={isLoading || !text}\r\n >\r\n {isLoading ? (\r\n <Loader2Icon className=\"animate-spin\" />\r\n ) : isCopied ? (\r\n <Check className=\"h-3 w-3\" />\r\n ) : children ? (\r\n children\r\n ) : (\r\n <Copy className=\"h-3 w-3\" />\r\n )}\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n {isCopied ? \"Copied!\" : isLoading ? \"Copying...\" : \"Copy to clipboard\"}\r\n </TooltipContent>\r\n </Tooltip>\r\n );\r\n };\r\n\r\n /**\r\n * Formats a number as Indian Rupees (INR)\r\n * @param amount Amount to format\r\n * @param options Formatting options\r\n * @returns Formatted currency string\r\n */\r\n static formatINR(\r\n amount: number,\r\n options: FormatINROptions = {}\r\n ): string {\r\n const { prefix = \"\", suffix = \"\", withSymbol = true, compact = false } = options;\r\n\r\n if (typeof amount !== \"number\" || isNaN(amount)) {\r\n return `${prefix}${withSymbol ? \"₹ \" : \"\"}0.00${suffix}`;\r\n }\r\n\r\n const isNegative = amount < 0;\r\n const absoluteAmount = Math.abs(amount);\r\n\r\n const formatter = compact && absoluteAmount >= 100000 ?\r\n this.compactFormatter :\r\n this.currencyFormatter;\r\n const formatted = formatter.format(absoluteAmount).replace(\"₹\", \"\");\r\n\r\n return `${prefix}${isNegative ? \"- \" : \"\"}${withSymbol ? \"₹ \" : \"\"}${formatted}${suffix}`;\r\n }\r\n\r\n /**\r\n * Formats a date according to specified options\r\n * @param input Date input (string, number, or Date object)\r\n * @param options Formatting options\r\n * @returns Formatted date string\r\n */\r\n static formatDate(\r\n input: string | number | Date,\r\n options: FormatDateOptions = {}\r\n ): string {\r\n const { format = \"dd-mm-yyyy\", separator = \"-\" } = options;\r\n\r\n const dateObj = new Date(input);\r\n if (isNaN(dateObj.getTime())) return \"\";\r\n\r\n const dd = String(dateObj.getDate()).padStart(2, \"0\");\r\n const mm = String(dateObj.getMonth() + 1).padStart(2, \"0\");\r\n const mmm = this.MONTH_NAMES_SHORT[dateObj.getMonth()];\r\n const yyyy = dateObj.getFullYear();\r\n\r\n switch (format) {\r\n case \"dd-mmm-yyyy\":\r\n return `${dd}${separator}${mmm}${separator}${yyyy}`;\r\n case \"iso\":\r\n return dateObj.toISOString().split(\"T\")[0];\r\n case \"long\":\r\n return dateObj.toLocaleDateString(\"en-IN\", {\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n });\r\n case \"short\":\r\n return dateObj.toLocaleDateString(\"en-IN\");\r\n default:\r\n return `${dd}${separator}${mm}${separator}${yyyy}`;\r\n }\r\n }\r\n\r\n static toProperCase(text: string): string {\r\n if (!text) return \"\";\r\n return text\r\n .toLowerCase()\r\n .split(' ')\r\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\r\n .join(' ');\r\n }\r\n\r\n /**\r\n * Advanced proper case conversion that handles hyphenated words and apostrophes\r\n * @param text Text to convert\r\n * @returns Text in proper case with special handling\r\n */\r\n static toProperCaseAdvanced(text: string): string {\r\n if (!text) return \"\";\r\n return text\r\n .toLowerCase()\r\n .split(/(\\s+|['-])/)\r\n .map((part, index, array) => {\r\n if ([\"-\", \"'\", \" \"].includes(part) ||\r\n (index > 0 && [\"-\", \"'\"].includes(array[index - 1]))) {\r\n return part;\r\n }\r\n return part.charAt(0).toUpperCase() + part.slice(1);\r\n })\r\n .join('');\r\n }\r\n\r\n static StatusBadge = ({\r\n status,\r\n className,\r\n showDot = true,\r\n capitalize = true,\r\n size = 'md',\r\n variant = 'outline',\r\n customColors,\r\n icon,\r\n trueMessage = 'active',\r\n falseMessage = 'inactive',\r\n }: StatusBadgeProps & {\r\n trueMessage?: string;\r\n falseMessage?: string;\r\n }) => {\r\n const normalizedStatus = typeof status === 'boolean'\r\n ? (status ? trueMessage : falseMessage)\r\n : typeof status === 'number'\r\n ? (status > 0 ? trueMessage : falseMessage)\r\n : status.toLowerCase();\r\n\r\n const statusConfig = {\r\n active: {\r\n label: 'active',\r\n solid: {\r\n bg: 'bg-emerald-500',\r\n text: 'text-white',\r\n border: 'border-emerald-600',\r\n dot: 'bg-white',\r\n },\r\n outline: {\r\n bg: 'bg-emerald-50',\r\n text: 'text-emerald-700',\r\n border: 'border-emerald-100',\r\n dot: 'bg-emerald-500',\r\n },\r\n subtle: {\r\n bg: 'bg-emerald-50',\r\n text: 'text-emerald-700',\r\n border: 'border-transparent',\r\n dot: 'bg-emerald-500',\r\n },\r\n },\r\n pending: {\r\n label: 'pending',\r\n solid: {\r\n bg: 'bg-amber-500',\r\n text: 'text-white',\r\n border: 'border-amber-600',\r\n dot: 'bg-white',\r\n },\r\n outline: {\r\n bg: 'bg-amber-50',\r\n text: 'text-amber-700',\r\n border: 'border-amber-100',\r\n dot: 'bg-amber-500',\r\n },\r\n subtle: {\r\n bg: 'bg-amber-50',\r\n text: 'text-amber-700',\r\n border: 'border-transparent',\r\n dot: 'bg-amber-500',\r\n },\r\n },\r\n inactive: {\r\n label: 'inactive',\r\n solid: {\r\n bg: 'bg-rose-500',\r\n text: 'text-white',\r\n border: 'border-rose-600',\r\n dot: 'bg-white',\r\n },\r\n outline: {\r\n bg: 'bg-rose-50',\r\n text: 'text-rose-700',\r\n border: 'border-rose-100',\r\n dot: 'bg-rose-500',\r\n },\r\n subtle: {\r\n bg: 'bg-rose-50',\r\n text: 'text-rose-700',\r\n border: 'border-transparent',\r\n dot: 'bg-rose-500',\r\n },\r\n },\r\n draft: {\r\n label: 'draft',\r\n solid: {\r\n bg: 'bg-gray-500',\r\n text: 'text-white',\r\n border: 'border-gray-600',\r\n dot: 'bg-white',\r\n },\r\n outline: {\r\n bg: 'bg-gray-50',\r\n text: 'text-gray-700',\r\n border: 'border-gray-100',\r\n dot: 'bg-gray-500',\r\n },\r\n subtle: {\r\n bg: 'bg-gray-50',\r\n text: 'text-gray-700',\r\n border: 'border-transparent',\r\n dot: 'bg-gray-500',\r\n },\r\n },\r\n completed: {\r\n label: 'completed',\r\n solid: {\r\n bg: 'bg-indigo-500',\r\n text: 'text-white',\r\n border: 'border-indigo-600',\r\n dot: 'bg-white',\r\n },\r\n outline: {\r\n bg: 'bg-indigo-50',\r\n text: 'text-indigo-700',\r\n border: 'border-indigo-100',\r\n dot: 'bg-indigo-500',\r\n },\r\n subtle: {\r\n bg: 'bg-indigo-50',\r\n text: 'text-indigo-700',\r\n border: 'border-transparent',\r\n dot: 'bg-indigo-500',\r\n },\r\n },\r\n };\r\n\r\n const config = statusConfig[normalizedStatus.toLowerCase() as keyof typeof statusConfig] || statusConfig.inactive;\r\n const colors = customColors || config[variant];\r\n\r\n const sizeClasses = {\r\n sm: 'text-xs px-2 py-0.5',\r\n md: 'text-xs px-2.5 py-0.5',\r\n lg: 'text-sm px-3 py-1',\r\n };\r\n\r\n const displayText = capitalize\r\n ? normalizedStatus.charAt(0).toUpperCase() + normalizedStatus.slice(1)\r\n : normalizedStatus;\r\n\r\n return (\r\n <div className=\"flex justify-center\">\r\n <span\r\n className={cn(\r\n \"inline-flex items-center gap-1.5 rounded-full border font-medium\",\r\n colors.bg,\r\n colors.text,\r\n colors.border,\r\n sizeClasses[size],\r\n className\r\n )}\r\n >\r\n {showDot && (icon ? (\r\n <span className=\"flex items-center\">\r\n {icon}\r\n </span>\r\n ) : (\r\n <span\r\n className={cn('size-2 rounded-full', colors.dot)}\r\n aria-hidden=\"true\"\r\n />\r\n ))}\r\n {displayText}\r\n </span>\r\n </div>\r\n );\r\n };\r\n}\r\n\r\nexport { GeneralHelper };","import * as React from \"react\"\r\nimport { Slot as SlotPrimitive } from \"radix-ui\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"../../lib/utils.js\"\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\r\n outline:\r\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\r\n ghost:\r\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n ...props\r\n}: React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariants> & {\r\n asChild?: boolean\r\n }) {\r\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n data-slot=\"button\"\r\n className={cn(buttonVariants({ variant, size, className }), \"transition-none\")}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Button, buttonVariants }\r\n","import { clsx, type ClassValue } from \"clsx\";\r\nimport { twMerge } from \"tailwind-merge\";\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}","import * as React from \"react\"\r\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\r\n\r\nimport { cn } from \"../../lib/utils.js\"\r\n\r\nfunction TooltipProvider({\r\n delayDuration = 0,\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\r\n return (\r\n <TooltipPrimitive.Provider\r\n data-slot=\"tooltip-provider\"\r\n delayDuration={delayDuration}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction Tooltip({\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\r\n return (\r\n <TooltipProvider>\r\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\r\n </TooltipProvider>\r\n )\r\n}\r\n\r\nfunction TooltipTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\r\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\r\n}\r\n\r\nfunction TooltipContent({\r\n className,\r\n sideOffset = 0,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\r\n return (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content\r\n data-slot=\"tooltip-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Portal>\r\n )\r\n}\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\r\n"],"mappings":"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","names":["useState","Copy","Check","Loader2Icon","SlotPrimitive","cva","clsx","twMerge","cn","inputs","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","TooltipPrimitive","jsx","jsxs","TooltipProvider","delayDuration","props","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","children","cn","jsx","jsxs","GeneralHelper","text","error","children","className","size","variant","isCopied","setIsCopied","useState","isLoading","setIsLoading","handleCopy","Tooltip","TooltipTrigger","Button","cn","Loader2Icon","Check","Copy","TooltipContent","amount","options","prefix","suffix","withSymbol","compact","isNegative","absoluteAmount","formatted","input","format","separator","dateObj","dd","mm","mmm","yyyy","word","part","index","array","status","showDot","capitalize","customColors","icon","trueMessage","falseMessage","normalizedStatus","statusConfig","config","colors","sizeClasses","displayText"]}
1
+ {"version":3,"sources":["../../src/components/general.tsx","../../src/components/ui/button.tsx","../../src/lib/utils.ts","../../src/components/ui/tooltip.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport { Copy, Check, Loader2Icon } from \"lucide-react\";\nimport { Button } from \"../components/ui/button.jsx\";\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../components/ui/tooltip.jsx\";\nimport { cn } from \"../lib/utils.js\";\n\ntype CopyToClipboardProps = {\n text: string;\n children?: React.ReactNode;\n className?: string;\n size?: \"sm\" | \"default\" | \"lg\" | \"icon\";\n variant?: \"ghost\" | \"outline\" | \"default\" | \"secondary\" | \"destructive\" | \"link\";\n};\n\ntype FormatINROptions = {\n prefix?: string;\n suffix?: string;\n withSymbol?: boolean;\n compact?: boolean;\n};\n\ntype FormatDateOptions = {\n format?: \"dd-mm-yyyy\" | \"dd-mmm-yyyy\" | \"iso\" | \"long\" | \"short\";\n separator?: string;\n};\n\ntype StatusBadgeProps = {\n status: string | boolean | number;\n className?: string;\n showDot?: boolean;\n capitalize?: boolean;\n size?: 'sm' | 'md' | 'lg';\n variant?: 'solid' | 'outline' | 'subtle';\n customColors?: {\n bg?: string;\n text?: string;\n border?: string;\n dot?: string;\n }; icon?: React.ReactNode;\n};\n\nclass GeneralHelper {\n private static currencyFormatter = new Intl.NumberFormat(\"en-IN\", {\n style: \"currency\",\n currency: \"INR\",\n maximumFractionDigits: 2,\n });\n\n private static compactFormatter = new Intl.NumberFormat(\"en-IN\", {\n style: \"currency\",\n currency: \"INR\",\n notation: \"compact\",\n maximumFractionDigits: 1,\n });\n\n private static MONTH_NAMES_SHORT = [\n \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\",\n \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"\n ];\n\n /**\n * Copies text to clipboard\n * @param text Text to copy\n * @returns Promise that resolves when copy is complete\n */\n static async copyToClipboard(text: string): Promise<void> {\n if (!text) return;\n try {\n await navigator.clipboard.writeText(text);\n } catch (error) {\n console.error(\"Failed to copy text:\", error);\n throw error;\n }\n }\n\n /**\n * React component for copy to clipboard functionality\n */\n static CopyToClipboard = ({\n text,\n children,\n className,\n size = \"icon\",\n variant = \"ghost\",\n }: CopyToClipboardProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n\n const handleCopy = async () => {\n if (!text || isLoading) return;\n\n setIsLoading(true);\n try {\n await this.copyToClipboard(text);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n } catch (error) {\n console.error(\"Failed to copy text:\", error);\n } finally {\n setIsLoading(false);\n }\n };\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>\n <Button\n variant={variant}\n size={size}\n className={cn(\n size === \"icon\" && \"size-6\",\n className\n )}\n onClick={handleCopy}\n disabled={isLoading || !text}\n >\n {isLoading ? (\n <Loader2Icon className=\"animate-spin\" />\n ) : isCopied ? (\n <Check className=\"h-3 w-3\" />\n ) : children ? (\n children\n ) : (\n <Copy className=\"h-3 w-3\" />\n )}\n </Button>\n </TooltipTrigger>\n <TooltipContent>\n {isCopied ? \"Copied!\" : isLoading ? \"Copying...\" : \"Copy to clipboard\"}\n </TooltipContent>\n </Tooltip>\n );\n };\n\n /**\n * Formats a number as Indian Rupees (INR)\n * @param amount Amount to format\n * @param options Formatting options\n * @returns Formatted currency string\n */\n static formatINR(\n amount: number,\n options: FormatINROptions = {}\n ): string {\n const { prefix = \"\", suffix = \"\", withSymbol = true, compact = false } = options;\n\n if (typeof amount !== \"number\" || isNaN(amount)) {\n return `${prefix}${withSymbol ? \"₹ \" : \"\"}0.00${suffix}`;\n }\n\n const isNegative = amount < 0;\n const absoluteAmount = Math.abs(amount);\n\n const formatter = compact && absoluteAmount >= 100000 ?\n this.compactFormatter :\n this.currencyFormatter;\n const formatted = formatter.format(absoluteAmount).replace(\"₹\", \"\");\n\n return `${prefix}${isNegative ? \"- \" : \"\"}${withSymbol ? \"₹ \" : \"\"}${formatted}${suffix}`;\n }\n\n /**\n * Formats a date according to specified options\n * @param input Date input (string, number, or Date object)\n * @param options Formatting options\n * @returns Formatted date string\n */\n static formatDate(\n input: string | number | Date,\n options: FormatDateOptions = {}\n ): string {\n const { format = \"dd-mm-yyyy\", separator = \"-\" } = options;\n\n const dateObj = new Date(input);\n if (isNaN(dateObj.getTime())) return \"\";\n\n const dd = String(dateObj.getDate()).padStart(2, \"0\");\n const mm = String(dateObj.getMonth() + 1).padStart(2, \"0\");\n const mmm = this.MONTH_NAMES_SHORT[dateObj.getMonth()];\n const yyyy = dateObj.getFullYear();\n\n switch (format) {\n case \"dd-mmm-yyyy\":\n return `${dd}${separator}${mmm}${separator}${yyyy}`;\n case \"iso\":\n return dateObj.toISOString().split(\"T\")[0];\n case \"long\":\n return dateObj.toLocaleDateString(\"en-IN\", {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\"\n });\n case \"short\":\n return dateObj.toLocaleDateString(\"en-IN\");\n default:\n return `${dd}${separator}${mm}${separator}${yyyy}`;\n }\n }\n\n static toProperCase(text: string): string {\n if (!text) return \"\";\n return text\n .toLowerCase()\n .split(' ')\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n }\n\n /**\n * Advanced proper case conversion that handles hyphenated words and apostrophes\n * @param text Text to convert\n * @returns Text in proper case with special handling\n */\n static toProperCaseAdvanced(text: string): string {\n if (!text) return \"\";\n return text\n .toLowerCase()\n .split(/(\\s+|['-])/)\n .map((part, index, array) => {\n if ([\"-\", \"'\", \" \"].includes(part) ||\n (index > 0 && [\"-\", \"'\"].includes(array[index - 1]))) {\n return part;\n }\n return part.charAt(0).toUpperCase() + part.slice(1);\n })\n .join('');\n }\n\n static StatusBadge = ({\n status,\n className,\n showDot = true,\n capitalize = true,\n size = 'md',\n variant = 'outline',\n customColors,\n icon,\n trueMessage = 'active',\n falseMessage = 'inactive',\n }: StatusBadgeProps & {\n trueMessage?: string;\n falseMessage?: string;\n }) => {\n const normalizedStatus = typeof status === 'boolean'\n ? (status ? trueMessage : falseMessage)\n : typeof status === 'number'\n ? (status > 0 ? trueMessage : falseMessage)\n : status.toLowerCase();\n\n const statusConfig = {\n active: {\n label: 'active',\n solid: {\n bg: 'bg-emerald-500',\n text: 'text-white',\n border: 'border-emerald-600',\n dot: 'bg-white',\n },\n outline: {\n bg: 'bg-emerald-50',\n text: 'text-emerald-700',\n border: 'border-emerald-100',\n dot: 'bg-emerald-500',\n },\n subtle: {\n bg: 'bg-emerald-50',\n text: 'text-emerald-700',\n border: 'border-transparent',\n dot: 'bg-emerald-500',\n },\n },\n pending: {\n label: 'pending',\n solid: {\n bg: 'bg-amber-500',\n text: 'text-white',\n border: 'border-amber-600',\n dot: 'bg-white',\n },\n outline: {\n bg: 'bg-amber-50',\n text: 'text-amber-700',\n border: 'border-amber-100',\n dot: 'bg-amber-500',\n },\n subtle: {\n bg: 'bg-amber-50',\n text: 'text-amber-700',\n border: 'border-transparent',\n dot: 'bg-amber-500',\n },\n },\n inactive: {\n label: 'inactive',\n solid: {\n bg: 'bg-rose-500',\n text: 'text-white',\n border: 'border-rose-600',\n dot: 'bg-white',\n },\n outline: {\n bg: 'bg-rose-50',\n text: 'text-rose-700',\n border: 'border-rose-100',\n dot: 'bg-rose-500',\n },\n subtle: {\n bg: 'bg-rose-50',\n text: 'text-rose-700',\n border: 'border-transparent',\n dot: 'bg-rose-500',\n },\n },\n draft: {\n label: 'draft',\n solid: {\n bg: 'bg-gray-500',\n text: 'text-white',\n border: 'border-gray-600',\n dot: 'bg-white',\n },\n outline: {\n bg: 'bg-gray-50',\n text: 'text-gray-700',\n border: 'border-gray-100',\n dot: 'bg-gray-500',\n },\n subtle: {\n bg: 'bg-gray-50',\n text: 'text-gray-700',\n border: 'border-transparent',\n dot: 'bg-gray-500',\n },\n },\n completed: {\n label: 'completed',\n solid: {\n bg: 'bg-indigo-500',\n text: 'text-white',\n border: 'border-indigo-600',\n dot: 'bg-white',\n },\n outline: {\n bg: 'bg-indigo-50',\n text: 'text-indigo-700',\n border: 'border-indigo-100',\n dot: 'bg-indigo-500',\n },\n subtle: {\n bg: 'bg-indigo-50',\n text: 'text-indigo-700',\n border: 'border-transparent',\n dot: 'bg-indigo-500',\n },\n },\n };\n\n const config = statusConfig[normalizedStatus.toLowerCase() as keyof typeof statusConfig] || statusConfig.inactive;\n const colors = customColors || config[variant];\n\n const sizeClasses = {\n sm: 'text-xs px-2 py-0.5',\n md: 'text-xs px-2.5 py-0.5',\n lg: 'text-sm px-3 py-1',\n };\n\n const displayText = capitalize\n ? normalizedStatus.charAt(0).toUpperCase() + normalizedStatus.slice(1)\n : normalizedStatus;\n\n return (\n <div className=\"flex justify-center\">\n <span\n className={cn(\n \"inline-flex items-center gap-1.5 rounded-full border font-medium\",\n colors.bg,\n colors.text,\n colors.border,\n sizeClasses[size],\n className\n )}\n >\n {showDot && (icon ? (\n <span className=\"flex items-center\">\n {icon}\n </span>\n ) : (\n <span\n className={cn('size-2 rounded-full', colors.dot)}\n aria-hidden=\"true\"\n />\n ))}\n {displayText}\n </span>\n </div>\n );\n };\n}\n\nexport { GeneralHelper };","import * as React from \"react\"\nimport { Slot as SlotPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-[color,box-shadow] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default:\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 dark:focus-visible:border-ring\",\n secondary:\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? SlotPrimitive.Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}","import * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\n\nimport { cn } from \"../../lib/utils.js\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":"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","names":["useState","Copy","Check","Loader2Icon","SlotPrimitive","cva","clsx","twMerge","cn","inputs","jsx","buttonVariants","cva","Button","className","variant","size","asChild","props","Comp","SlotPrimitive","cn","TooltipPrimitive","jsx","jsxs","TooltipProvider","delayDuration","props","TooltipPrimitive","Tooltip","TooltipTrigger","TooltipContent","className","sideOffset","children","cn","jsx","jsxs","GeneralHelper","text","error","children","className","size","variant","isCopied","setIsCopied","useState","isLoading","setIsLoading","handleCopy","Tooltip","TooltipTrigger","Button","cn","Loader2Icon","Check","Copy","TooltipContent","amount","options","prefix","suffix","withSymbol","compact","isNegative","absoluteAmount","formatted","input","format","separator","dateObj","dd","mm","mmm","yyyy","word","part","index","array","status","showDot","capitalize","customColors","icon","trueMessage","falseMessage","normalizedStatus","statusConfig","config","colors","sizeClasses","displayText"]}