@wakastellar/ui 4.0.1 → 4.1.1

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 (622) hide show
  1. package/dist/blocks/_shared/identity/InviteUserPanel.cjs.js +1 -1
  2. package/dist/blocks/_shared/identity/RoleSelect.cjs.js +1 -1
  3. package/dist/blocks/_shared/identity/SidePushLayout.cjs.js +1 -1
  4. package/dist/blocks/activity-timeline/index.cjs.js +1 -1
  5. package/dist/blocks/activity-timeline/index.es.js +1 -1
  6. package/dist/blocks/antivirus-dashboard/index.cjs.js +1 -1
  7. package/dist/blocks/antivirus-dashboard/index.es.js +1 -1
  8. package/dist/blocks/api-keys-manager/index.cjs.js +1 -1
  9. package/dist/blocks/apm-overview/index.cjs.js +1 -1
  10. package/dist/blocks/auth-2fa/index.cjs.js +2 -2
  11. package/dist/blocks/auth-2fa/index.es.js +1 -1
  12. package/dist/blocks/avatar-upload/index.cjs.js +1 -1
  13. package/dist/blocks/avatar-upload/index.es.js +13 -13
  14. package/dist/blocks/calendar-view/index.cjs.js +1 -1
  15. package/dist/blocks/calendar-view/index.es.js +1 -1
  16. package/dist/blocks/chat/index.cjs.js +1 -1
  17. package/dist/blocks/chat/index.es.js +162 -162
  18. package/dist/blocks/chat/widget.cjs.js +1 -1
  19. package/dist/blocks/chat/widget.es.js +19 -13
  20. package/dist/blocks/chat-interface/index.cjs.js +1 -1
  21. package/dist/blocks/chat-interface/index.es.js +1 -1
  22. package/dist/blocks/checkout-flow/index.cjs.js +1 -1
  23. package/dist/blocks/checkout-flow/index.es.js +1 -1
  24. package/dist/blocks/cicd-builder/index.cjs.js +1 -1
  25. package/dist/blocks/clamav-service-status/index.cjs.js +1 -1
  26. package/dist/blocks/cloud-cost-dashboard/index.cjs.js +1 -1
  27. package/dist/blocks/container-orchestrator/index.cjs.js +1 -1
  28. package/dist/blocks/container-orchestrator/index.es.js +2 -1
  29. package/dist/blocks/dashboard/index.cjs.js +1 -1
  30. package/dist/blocks/dashboard/index.es.js +2 -2
  31. package/dist/blocks/dashboard-kpi/index.cjs.js +1 -1
  32. package/dist/blocks/dashboard-kpi/index.es.js +1 -1
  33. package/dist/blocks/database-admin/index.cjs.js +1 -1
  34. package/dist/blocks/deployment-dashboard/index.cjs.js +1 -1
  35. package/dist/blocks/deployment-dashboard/index.es.js +1 -1
  36. package/dist/blocks/empty-states/index.cjs.js +1 -1
  37. package/dist/blocks/empty-states/index.es.js +1 -1
  38. package/dist/blocks/error-pages/index.cjs.js +1 -1
  39. package/dist/blocks/error-pages/index.es.js +1 -1
  40. package/dist/blocks/faq/index.cjs.js +1 -1
  41. package/dist/blocks/faq/index.es.js +1 -1
  42. package/dist/blocks/file-manager/index.cjs.js +1 -1
  43. package/dist/blocks/file-manager/index.es.js +1 -1
  44. package/dist/blocks/file-scan-uploader/index.cjs.js +1 -1
  45. package/dist/blocks/file-scan-uploader/index.es.js +2 -2
  46. package/dist/blocks/footer/index.cjs.js +1 -1
  47. package/dist/blocks/gitops-sync-status/index.cjs.js +1 -1
  48. package/dist/blocks/header/index.cjs.js +1 -1
  49. package/dist/blocks/header/index.es.js +1 -1
  50. package/dist/blocks/headtab/index.cjs.js +1 -1
  51. package/dist/blocks/i18n-editor/index.cjs.js +1 -1
  52. package/dist/blocks/i18n-editor/index.es.js +127 -127
  53. package/dist/blocks/incident-manager/index.cjs.js +1 -1
  54. package/dist/blocks/infrastructure-map/index.cjs.js +1 -1
  55. package/dist/blocks/kanban-board/index.cjs.js +1 -1
  56. package/dist/blocks/kanban-board/index.es.js +1 -1
  57. package/dist/blocks/landing/index.cjs.js +1 -1
  58. package/dist/blocks/landing/index.es.js +1 -1
  59. package/dist/blocks/language-selector/index.cjs.js +1 -1
  60. package/dist/blocks/layout/index.cjs.js +1 -1
  61. package/dist/blocks/login/index.cjs.js +1 -1
  62. package/dist/blocks/on-call-schedule/index.cjs.js +1 -1
  63. package/dist/blocks/player-profile/index.cjs.js +1 -1
  64. package/dist/blocks/player-profile/index.es.js +1 -1
  65. package/dist/blocks/pricing/index.cjs.js +1 -1
  66. package/dist/blocks/pricing/index.es.js +1 -1
  67. package/dist/blocks/profile/index.cjs.js +1 -1
  68. package/dist/blocks/profile/index.es.js +1 -1
  69. package/dist/blocks/profile-list/index.cjs.js +1 -1
  70. package/dist/blocks/quarantine-manager/index.cjs.js +1 -1
  71. package/dist/blocks/quarantine-manager/index.es.js +1 -1
  72. package/dist/blocks/release-notes/index.cjs.js +1 -1
  73. package/dist/blocks/scan-history-log/index.cjs.js +1 -1
  74. package/dist/blocks/scan-history-log/index.es.js +1 -1
  75. package/dist/blocks/scan-policy-editor/index.cjs.js +1 -1
  76. package/dist/blocks/scan-report-generator/index.cjs.js +1 -1
  77. package/dist/blocks/settings/index.cjs.js +1 -1
  78. package/dist/blocks/settings/index.es.js +1 -1
  79. package/dist/blocks/sidebar/index.cjs.js +1 -1
  80. package/dist/blocks/sidebar/index.es.js +1 -1
  81. package/dist/blocks/signature-database-manager/index.cjs.js +1 -1
  82. package/dist/blocks/team-form/index.cjs.js +1 -1
  83. package/dist/blocks/threat-alert-banner/index.cjs.js +1 -1
  84. package/dist/blocks/user-management/index.cjs.js +1 -1
  85. package/dist/blocks/waka-doc-shell/index.cjs.js +1 -1
  86. package/dist/blocks/wizard/index.cjs.js +1 -1
  87. package/dist/blocks/wizard/index.es.js +37 -37
  88. package/dist/charts.cjs.js +1 -1
  89. package/dist/charts.es.js +8 -8
  90. package/dist/cli/index.cjs +5 -1
  91. package/dist/components/DataTable/DataTable.cjs.js +1 -1
  92. package/dist/components/DataTable/DataTable.es.js +68 -66
  93. package/dist/components/DataTable/DataTableAdvanced.cjs.js +1 -1
  94. package/dist/components/DataTable/DataTableColumnResizer.cjs.js +1 -1
  95. package/dist/components/DataTable/DataTableContextMenu.cjs.js +1 -1
  96. package/dist/components/DataTable/DataTableEditCell.cjs.js +1 -1
  97. package/dist/components/DataTable/DataTableFilters.cjs.js +1 -1
  98. package/dist/components/DataTable/DataTableGrouping.cjs.js +1 -1
  99. package/dist/components/DataTable/DataTablePagination.cjs.js +1 -1
  100. package/dist/components/DataTable/DataTablePagination.d.ts +3 -1
  101. package/dist/components/DataTable/DataTablePagination.es.js +38 -27
  102. package/dist/components/DataTable/DataTableSelection.cjs.js +1 -1
  103. package/dist/components/DataTable/DataTableToolbar.cjs.js +1 -1
  104. package/dist/components/DataTable/hooks/useDataTable.cjs.js +1 -1
  105. package/dist/components/DataTable/hooks/useDataTable.es.js +5 -1
  106. package/dist/components/DataTable/hooks/useDataTableAdvanced.cjs.js +1 -1
  107. package/dist/components/DataTable/hooks/useDataTableEdit.cjs.js +1 -1
  108. package/dist/components/DataTable/hooks/useDataTableExport.cjs.js +2 -2
  109. package/dist/components/DataTable/hooks/useDataTableImport.cjs.js +2 -2
  110. package/dist/components/DataTable/hooks/useDataTableImport.es.js +2 -1
  111. package/dist/components/DataTable/hooks/useDataTableTheme.cjs.js +1 -1
  112. package/dist/components/DataTable/hooks/useDataTableVirtualization.cjs.js +1 -1
  113. package/dist/components/DataTable/hooks/useTableLayout.cjs.js +1 -1
  114. package/dist/components/DataTable/utils.cjs.js +1 -1
  115. package/dist/components/accordion/index.cjs.js +1 -1
  116. package/dist/components/alert/index.cjs.js +1 -1
  117. package/dist/components/alert-dialog/index.cjs.js +1 -1
  118. package/dist/components/aspect-ratio/index.cjs.js +1 -1
  119. package/dist/components/avatar/index.cjs.js +1 -1
  120. package/dist/components/badge/index.cjs.js +1 -1
  121. package/dist/components/button/index.cjs.js +1 -1
  122. package/dist/components/calendar/index.cjs.js +1 -1
  123. package/dist/components/card/index.cjs.js +1 -1
  124. package/dist/components/checkbox/index.cjs.js +1 -1
  125. package/dist/components/code/index.cjs.js +2 -2
  126. package/dist/components/code/index.es.js +3 -2
  127. package/dist/components/collapsible/index.cjs.js +1 -1
  128. package/dist/components/command/index.cjs.js +1 -1
  129. package/dist/components/context-menu/index.cjs.js +1 -1
  130. package/dist/components/dialog/index.cjs.js +1 -1
  131. package/dist/components/dropdown-menu/index.cjs.js +1 -1
  132. package/dist/components/editor/blocks/index.cjs.js +1 -1
  133. package/dist/components/editor/blocks/index.es.js +12 -12
  134. package/dist/components/editor/blocks/waka-acceptance-criteria-block.cjs.js +1 -1
  135. package/dist/components/editor/blocks/waka-ai-assist-block.cjs.js +1 -1
  136. package/dist/components/editor/blocks/waka-api-endpoint-block.cjs.js +1 -1
  137. package/dist/components/editor/blocks/waka-code-playground-block.cjs.js +1 -1
  138. package/dist/components/editor/blocks/waka-comment-thread-block.cjs.js +1 -1
  139. package/dist/components/editor/blocks/waka-diagram-block.cjs.js +3 -3
  140. package/dist/components/editor/blocks/waka-diagram-block.es.js +21 -40
  141. package/dist/components/editor/blocks/waka-embed-block.cjs.js +1 -1
  142. package/dist/components/editor/blocks/waka-slash-menu-block.cjs.js +1 -1
  143. package/dist/components/editor/blocks/waka-user-story-block.cjs.js +1 -1
  144. package/dist/components/editor/blocks/waka-version-diff-block.cjs.js +1 -1
  145. package/dist/components/editor/waka-ai-writer.cjs.js +1 -1
  146. package/dist/components/editor/waka-collaborative-editor.cjs.js +1 -1
  147. package/dist/components/editor/waka-diff-viewer.cjs.js +1 -1
  148. package/dist/components/editor/waka-dnd-editor.cjs.js +1 -1
  149. package/dist/components/editor/waka-document-editor.cjs.js +1 -1
  150. package/dist/components/editor/waka-document-editor.es.js +1 -1
  151. package/dist/components/editor/waka-editor-elements.cjs.js +1 -1
  152. package/dist/components/editor/waka-editor-leaves.cjs.js +1 -1
  153. package/dist/components/editor/waka-editor-toolbar.cjs.js +1 -1
  154. package/dist/components/editor/waka-editor.cjs.js +1 -1
  155. package/dist/components/editor/waka-floating-toolbar.cjs.js +1 -1
  156. package/dist/components/editor/waka-markdown-editor.cjs.js +1 -1
  157. package/dist/components/editor/waka-mention-editor.cjs.js +1 -1
  158. package/dist/components/editor/waka-mention-editor.es.js +2 -2
  159. package/dist/components/editor/waka-slash-menu.cjs.js +1 -1
  160. package/dist/components/editor/waka-spec-editor.cjs.js +1 -1
  161. package/dist/components/form/index.cjs.js +1 -1
  162. package/dist/components/hover-card/index.cjs.js +1 -1
  163. package/dist/components/input/index.cjs.js +1 -1
  164. package/dist/components/input-otp/index.cjs.js +1 -1
  165. package/dist/components/input-otp/index.es.js +2 -1
  166. package/dist/components/label/index.cjs.js +1 -1
  167. package/dist/components/language-selector/index.cjs.js +1 -1
  168. package/dist/components/menubar/index.cjs.js +1 -1
  169. package/dist/components/navigation-menu/index.cjs.js +1 -1
  170. package/dist/components/popover/index.cjs.js +1 -1
  171. package/dist/components/progress/index.cjs.js +1 -1
  172. package/dist/components/radio-group/index.cjs.js +1 -1
  173. package/dist/components/resizable/index.cjs.js +1 -1
  174. package/dist/components/resizable/index.es.js +9 -9
  175. package/dist/components/scroll-area/index.cjs.js +1 -1
  176. package/dist/components/select/index.cjs.js +1 -1
  177. package/dist/components/separator/index.cjs.js +1 -1
  178. package/dist/components/sheet/index.cjs.js +1 -1
  179. package/dist/components/skeleton/index.cjs.js +1 -1
  180. package/dist/components/slider/index.cjs.js +1 -1
  181. package/dist/components/switch/index.cjs.js +1 -1
  182. package/dist/components/table/index.cjs.js +1 -1
  183. package/dist/components/tabs/index.cjs.js +1 -1
  184. package/dist/components/textarea/index.cjs.js +1 -1
  185. package/dist/components/theme-selector/index.cjs.js +1 -1
  186. package/dist/components/toast/index.cjs.js +1 -1
  187. package/dist/components/toaster/index.cjs.js +1 -1
  188. package/dist/components/toggle/index.cjs.js +1 -1
  189. package/dist/components/toggle-group/index.cjs.js +1 -1
  190. package/dist/components/tooltip/index.cjs.js +1 -1
  191. package/dist/components/typography/index.cjs.js +1 -1
  192. package/dist/components/waka-3d-pie-chart/index.cjs.js +1 -1
  193. package/dist/components/waka-3d-pie-chart/index.es.js +1 -1
  194. package/dist/components/waka-achievement-unlock/index.cjs.js +1 -1
  195. package/dist/components/waka-achievement-unlock/index.es.js +1 -1
  196. package/dist/components/waka-activity-feed/index.cjs.js +2 -2
  197. package/dist/components/waka-activity-feed/index.es.js +1 -1
  198. package/dist/components/waka-ad-banner/index.cjs.js +1 -1
  199. package/dist/components/waka-ad-banner/index.es.js +18 -15
  200. package/dist/components/waka-ad-fallback/index.cjs.js +1 -1
  201. package/dist/components/waka-ad-fallback/index.es.js +1 -1
  202. package/dist/components/waka-ad-inline/index.cjs.js +1 -1
  203. package/dist/components/waka-ad-inline/index.es.js +2 -2
  204. package/dist/components/waka-ad-interstitial/index.cjs.js +1 -1
  205. package/dist/components/waka-ad-interstitial/index.es.js +3 -3
  206. package/dist/components/waka-ad-placeholder/index.cjs.js +2 -2
  207. package/dist/components/waka-ad-placeholder/index.es.js +1 -1
  208. package/dist/components/waka-ad-provider/index.cjs.js +1 -1
  209. package/dist/components/waka-ad-provider/index.es.js +1 -1
  210. package/dist/components/waka-ad-sidebar/index.cjs.js +1 -1
  211. package/dist/components/waka-ad-sidebar/index.es.js +2 -2
  212. package/dist/components/waka-ad-sticky-footer/index.cjs.js +1 -1
  213. package/dist/components/waka-ad-sticky-footer/index.es.js +2 -2
  214. package/dist/components/waka-address-autocomplete/index.cjs.js +2 -2
  215. package/dist/components/waka-address-autocomplete/index.es.js +10 -6
  216. package/dist/components/waka-admincrumb/index.cjs.js +1 -1
  217. package/dist/components/waka-alert-panel/index.cjs.js +1 -1
  218. package/dist/components/waka-alert-stack/index.cjs.js +1 -1
  219. package/dist/components/waka-alert-stack/index.es.js +1 -1
  220. package/dist/components/waka-allocation-matrix/index.cjs.js +2 -2
  221. package/dist/components/waka-allocation-matrix/index.es.js +1 -1
  222. package/dist/components/waka-approval-chain/index.cjs.js +1 -1
  223. package/dist/components/waka-approval-chain/index.es.js +1 -1
  224. package/dist/components/waka-artifact-list/index.cjs.js +1 -1
  225. package/dist/components/waka-artifact-list/index.es.js +1 -1
  226. package/dist/components/waka-audit-log/index.cjs.js +2 -2
  227. package/dist/components/waka-audit-log/index.es.js +1 -1
  228. package/dist/components/waka-autocomplete/index.cjs.js +1 -1
  229. package/dist/components/waka-autocomplete/index.es.js +3 -2
  230. package/dist/components/waka-badge-showcase/index.cjs.js +1 -1
  231. package/dist/components/waka-barcode/index.cjs.js +1 -1
  232. package/dist/components/waka-barcode/index.es.js +1 -1
  233. package/dist/components/waka-biometric-prompt/index.cjs.js +2 -2
  234. package/dist/components/waka-biometric-prompt/index.es.js +1 -1
  235. package/dist/components/waka-bottom-sheet/index.cjs.js +1 -1
  236. package/dist/components/waka-bottom-sheet/index.es.js +12 -7
  237. package/dist/components/waka-breadcrumb/index.cjs.js +1 -1
  238. package/dist/components/waka-breadcrumb/index.es.js +1 -1
  239. package/dist/components/waka-breadcrumb-path/index.cjs.js +1 -1
  240. package/dist/components/waka-breadcrumb-path/index.es.js +1 -1
  241. package/dist/components/waka-budget-burn/index.cjs.js +2 -2
  242. package/dist/components/waka-budget-burn/index.es.js +3 -3
  243. package/dist/components/waka-build-matrix/index.cjs.js +1 -1
  244. package/dist/components/waka-capacity-planner/index.cjs.js +2 -2
  245. package/dist/components/waka-capacity-planner/index.es.js +1 -1
  246. package/dist/components/waka-carousel/index.cjs.js +1 -1
  247. package/dist/components/waka-carousel/index.es.js +2 -2
  248. package/dist/components/waka-cart-summary/index.cjs.js +1 -1
  249. package/dist/components/waka-cart-summary/index.es.js +2 -2
  250. package/dist/components/waka-challenge-timer/index.cjs.js +1 -1
  251. package/dist/components/waka-charts/WakaAreaChart.cjs.js +1 -1
  252. package/dist/components/waka-charts/WakaAreaChart.es.js +2 -2
  253. package/dist/components/waka-charts/WakaBarChart.cjs.js +1 -1
  254. package/dist/components/waka-charts/WakaBarChart.es.js +2 -2
  255. package/dist/components/waka-charts/WakaChart.cjs.js +1 -1
  256. package/dist/components/waka-charts/WakaChart.es.js +1 -1
  257. package/dist/components/waka-charts/WakaLineChart.cjs.js +1 -1
  258. package/dist/components/waka-charts/WakaLineChart.es.js +2 -2
  259. package/dist/components/waka-charts/WakaMiniChart.cjs.js +1 -1
  260. package/dist/components/waka-charts/WakaMiniChart.es.js +2 -2
  261. package/dist/components/waka-charts/WakaPieChart.cjs.js +1 -1
  262. package/dist/components/waka-charts/WakaPieChart.es.js +2 -2
  263. package/dist/components/waka-charts/WakaSparkline.cjs.js +1 -1
  264. package/dist/components/waka-charts/WakaSparkline.es.js +1 -1
  265. package/dist/components/waka-charts/dataTableHelpers.cjs.js +1 -1
  266. package/dist/components/waka-charts/dataTableHelpers.es.js +1 -1
  267. package/dist/components/waka-charts/hooks/useChartTheme.cjs.js +1 -1
  268. package/dist/components/waka-charts/hooks/useChartTheme.es.js +1 -1
  269. package/dist/components/waka-charts/hooks/useRechartsLoader.cjs.js +1 -1
  270. package/dist/components/waka-charts/hooks/useRechartsLoader.es.js +1 -1
  271. package/dist/components/waka-chat-bubble/index.cjs.js +1 -1
  272. package/dist/components/waka-checklist/index.cjs.js +2 -2
  273. package/dist/components/waka-checklist/index.es.js +1 -1
  274. package/dist/components/waka-checkout-stepper/index.cjs.js +1 -1
  275. package/dist/components/waka-checkout-stepper/index.es.js +1 -1
  276. package/dist/components/waka-cohort-table/index.cjs.js +2 -2
  277. package/dist/components/waka-cohort-table/index.es.js +1 -1
  278. package/dist/components/waka-color-picker/index.cjs.js +2 -2
  279. package/dist/components/waka-color-picker/index.es.js +1 -1
  280. package/dist/components/waka-combo-counter/index.cjs.js +1 -1
  281. package/dist/components/waka-combobox/index.cjs.js +1 -1
  282. package/dist/components/waka-combobox/index.es.js +3 -2
  283. package/dist/components/waka-command-bar/index.cjs.js +1 -1
  284. package/dist/components/waka-compare-period/index.cjs.js +2 -2
  285. package/dist/components/waka-compare-period/index.es.js +7 -5
  286. package/dist/components/waka-config-comparator/index.cjs.js +1 -1
  287. package/dist/components/waka-config-comparator/index.es.js +1 -1
  288. package/dist/components/waka-connection-matrix/index.cjs.js +1 -1
  289. package/dist/components/waka-connection-matrix/index.es.js +1 -1
  290. package/dist/components/waka-container-list/index.cjs.js +1 -1
  291. package/dist/components/waka-container-list/index.es.js +1 -1
  292. package/dist/components/waka-content-recommendation/index.cjs.js +1 -1
  293. package/dist/components/waka-content-recommendation/index.es.js +2 -2
  294. package/dist/components/waka-contribution-graph/index.cjs.js +1 -1
  295. package/dist/components/waka-contribution-graph/index.es.js +4 -4
  296. package/dist/components/waka-cost-breakdown/index.cjs.js +1 -1
  297. package/dist/components/waka-cost-breakdown/index.es.js +7 -7
  298. package/dist/components/waka-coupon-input/index.cjs.js +2 -2
  299. package/dist/components/waka-coupon-input/index.es.js +1 -1
  300. package/dist/components/waka-credit-activity-feed/index.cjs.js +2 -2
  301. package/dist/components/waka-credit-activity-feed/index.es.js +1 -1
  302. package/dist/components/waka-credit-alert/index.cjs.js +1 -1
  303. package/dist/components/waka-credit-alert/index.es.js +1 -1
  304. package/dist/components/waka-credit-balance/index.cjs.js +1 -1
  305. package/dist/components/waka-credit-balance/index.es.js +3 -3
  306. package/dist/components/waka-credit-breakdown/index.cjs.js +1 -1
  307. package/dist/components/waka-credit-breakdown/index.es.js +1 -1
  308. package/dist/components/waka-credit-burn-rate/index.cjs.js +1 -1
  309. package/dist/components/waka-credit-burn-rate/index.es.js +1 -1
  310. package/dist/components/waka-credit-card-input/index.cjs.js +1 -1
  311. package/dist/components/waka-credit-card-input/index.es.js +1 -1
  312. package/dist/components/waka-credit-history/index.cjs.js +1 -1
  313. package/dist/components/waka-credit-history/index.es.js +1 -1
  314. package/dist/components/waka-credit-meter/index.cjs.js +2 -2
  315. package/dist/components/waka-credit-meter/index.es.js +3 -3
  316. package/dist/components/waka-credit-pricing-pack/index.cjs.js +1 -1
  317. package/dist/components/waka-credit-pricing-pack/index.es.js +1 -1
  318. package/dist/components/waka-credit-projection/index.cjs.js +1 -1
  319. package/dist/components/waka-credit-projection/index.es.js +1 -1
  320. package/dist/components/waka-credit-quota/index.cjs.js +1 -1
  321. package/dist/components/waka-credit-quota/index.es.js +3 -3
  322. package/dist/components/waka-credit-receipt/index.cjs.js +1 -1
  323. package/dist/components/waka-credit-receipt/index.es.js +1 -1
  324. package/dist/components/waka-credit-top-up/index.cjs.js +1 -1
  325. package/dist/components/waka-credit-top-up/index.es.js +1 -1
  326. package/dist/components/waka-credit-transaction/index.cjs.js +1 -1
  327. package/dist/components/waka-credit-transaction/index.es.js +1 -1
  328. package/dist/components/waka-credit-transfer-form/index.cjs.js +1 -1
  329. package/dist/components/waka-credit-transfer-form/index.es.js +1 -1
  330. package/dist/components/waka-credit-usage-chart/index.cjs.js +1 -1
  331. package/dist/components/waka-credit-usage-chart/index.es.js +1 -1
  332. package/dist/components/waka-daily-reward/index.cjs.js +1 -1
  333. package/dist/components/waka-database-card/index.cjs.js +1 -1
  334. package/dist/components/waka-database-card/index.es.js +1 -1
  335. package/dist/components/waka-date-range-picker/index.cjs.js +1 -1
  336. package/dist/components/waka-date-range-picker/index.es.js +3 -2
  337. package/dist/components/waka-datetime-picker/index.cjs.js +1 -1
  338. package/dist/components/waka-datetime-picker/index.es.js +4 -1
  339. package/dist/components/waka-datetime-picker.form-integration/index.cjs.js +1 -1
  340. package/dist/components/waka-dependency-tree/index.cjs.js +1 -1
  341. package/dist/components/waka-dependency-tree/index.es.js +1 -1
  342. package/dist/components/waka-deployment-lane/index.cjs.js +1 -1
  343. package/dist/components/waka-deployment-lane/index.es.js +1 -1
  344. package/dist/components/waka-device-trust/index.cjs.js +2 -2
  345. package/dist/components/waka-device-trust/index.es.js +1 -1
  346. package/dist/components/waka-doc-breadcrumb/index.cjs.js +1 -1
  347. package/dist/components/waka-doc-callout/index.cjs.js +1 -1
  348. package/dist/components/waka-doc-code-block/index.cjs.js +1 -1
  349. package/dist/components/waka-doc-nav/index.cjs.js +1 -1
  350. package/dist/components/waka-doc-renderer/index.cjs.js +1 -1
  351. package/dist/components/waka-doc-search/index.cjs.js +1 -1
  352. package/dist/components/waka-doc-table/index.cjs.js +1 -1
  353. package/dist/components/waka-doc-toc/index.cjs.js +1 -1
  354. package/dist/components/waka-doc-toolbar/index.cjs.js +1 -1
  355. package/dist/components/waka-doc-version/index.cjs.js +1 -1
  356. package/dist/components/waka-dock/index.cjs.js +1 -1
  357. package/dist/components/waka-dock/index.es.js +2 -2
  358. package/dist/components/waka-drawer/index.cjs.js +1 -1
  359. package/dist/components/waka-drawer/index.es.js +1 -1
  360. package/dist/components/waka-empty-state/index.cjs.js +1 -1
  361. package/dist/components/waka-env-var-editor/index.cjs.js +1 -1
  362. package/dist/components/waka-error-shake/index.cjs.js +1 -1
  363. package/dist/components/waka-feature-announcement/index.cjs.js +2 -2
  364. package/dist/components/waka-feature-announcement/index.es.js +1 -1
  365. package/dist/components/waka-feature-flag-row/index.cjs.js +1 -1
  366. package/dist/components/waka-file-upload/index.cjs.js +1 -1
  367. package/dist/components/waka-file-upload/index.es.js +2 -2
  368. package/dist/components/waka-floating-nav/index.cjs.js +1 -1
  369. package/dist/components/waka-floating-nav/index.es.js +1 -1
  370. package/dist/components/waka-flow-diagram/index.cjs.js +1 -1
  371. package/dist/components/waka-funnel-chart/index.cjs.js +2 -2
  372. package/dist/components/waka-funnel-chart/index.es.js +1 -1
  373. package/dist/components/waka-glow-card/index.cjs.js +1 -1
  374. package/dist/components/waka-glow-card/index.es.js +3 -3
  375. package/dist/components/waka-goal-progress/index.cjs.js +3 -3
  376. package/dist/components/waka-goal-progress/index.es.js +3 -3
  377. package/dist/components/waka-haptic-button/index.cjs.js +1 -1
  378. package/dist/components/waka-health-pulse/index.cjs.js +2 -2
  379. package/dist/components/waka-health-pulse/index.es.js +1 -1
  380. package/dist/components/waka-heatmap/index.cjs.js +1 -1
  381. package/dist/components/waka-heatmap/index.es.js +3 -3
  382. package/dist/components/waka-hotspot/index.cjs.js +1 -1
  383. package/dist/components/waka-image/index.cjs.js +1 -1
  384. package/dist/components/waka-image/index.es.js +1 -1
  385. package/dist/components/waka-incident-timeline/index.cjs.js +1 -1
  386. package/dist/components/waka-incident-timeline/index.es.js +3 -2
  387. package/dist/components/waka-invoice-preview/index.cjs.js +1 -1
  388. package/dist/components/waka-invoice-preview/index.es.js +1 -1
  389. package/dist/components/waka-kanban/index.cjs.js +1 -1
  390. package/dist/components/waka-kanban/index.es.js +1 -1
  391. package/dist/components/waka-kpi-dashboard/index.cjs.js +1 -1
  392. package/dist/components/waka-kpi-dashboard/index.es.js +6 -4
  393. package/dist/components/waka-kubernetes-overview/index.cjs.js +1 -1
  394. package/dist/components/waka-kubernetes-overview/index.es.js +1 -1
  395. package/dist/components/waka-leaderboard/index.cjs.js +1 -1
  396. package/dist/components/waka-level-progress/index.cjs.js +2 -2
  397. package/dist/components/waka-level-progress/index.es.js +2 -2
  398. package/dist/components/waka-liquid-button/index.cjs.js +1 -1
  399. package/dist/components/waka-loading-orbit/index.cjs.js +1 -1
  400. package/dist/components/waka-log-viewer/index.cjs.js +1 -1
  401. package/dist/components/waka-loot-box/index.cjs.js +2 -2
  402. package/dist/components/waka-loot-box/index.es.js +1 -1
  403. package/dist/components/waka-magic-link/index.cjs.js +2 -2
  404. package/dist/components/waka-magnetic-button/index.cjs.js +1 -1
  405. package/dist/components/waka-mention-input/index.cjs.js +1 -1
  406. package/dist/components/waka-mention-input/index.es.js +52 -40
  407. package/dist/components/waka-metric-sparkline/index.cjs.js +1 -1
  408. package/dist/components/waka-metric-sparkline/index.es.js +1 -1
  409. package/dist/components/waka-migration-list/index.cjs.js +1 -1
  410. package/dist/components/waka-milestone-road/index.cjs.js +2 -2
  411. package/dist/components/waka-milestone-road/index.es.js +5 -5
  412. package/dist/components/waka-modal/index.cjs.js +1 -1
  413. package/dist/components/waka-modal/index.es.js +1 -1
  414. package/dist/components/waka-morph-button/index.cjs.js +2 -2
  415. package/dist/components/waka-morph-button/index.es.js +6 -2
  416. package/dist/components/waka-network-topology/index.cjs.js +1 -1
  417. package/dist/components/waka-network-topology/index.es.js +4 -2
  418. package/dist/components/waka-notifications/index.cjs.js +1 -1
  419. package/dist/components/waka-number-input/index.cjs.js +1 -1
  420. package/dist/components/waka-number-input/index.es.js +1 -1
  421. package/dist/components/waka-orbital-menu/index.cjs.js +1 -1
  422. package/dist/components/waka-orbital-menu/index.es.js +1 -1
  423. package/dist/components/waka-order-tracker/index.cjs.js +1 -1
  424. package/dist/components/waka-order-tracker/index.es.js +3 -2
  425. package/dist/components/waka-outstream-video/index.cjs.js +1 -1
  426. package/dist/components/waka-outstream-video/index.es.js +2 -2
  427. package/dist/components/waka-pagination/index.cjs.js +1 -1
  428. package/dist/components/waka-pagination/index.es.js +1 -1
  429. package/dist/components/waka-password-strength/index.cjs.js +2 -2
  430. package/dist/components/waka-password-strength/index.es.js +3 -3
  431. package/dist/components/waka-payment-method-picker/index.cjs.js +1 -1
  432. package/dist/components/waka-payment-method-picker/index.es.js +1 -1
  433. package/dist/components/waka-permission-matrix/index.cjs.js +2 -2
  434. package/dist/components/waka-permission-matrix/index.es.js +3 -2
  435. package/dist/components/waka-phone-input/index.cjs.js +1 -1
  436. package/dist/components/waka-phone-input/index.es.js +5 -3
  437. package/dist/components/waka-pipeline-view/index.cjs.js +2 -2
  438. package/dist/components/waka-pipeline-view/index.es.js +1 -1
  439. package/dist/components/waka-player-card/index.cjs.js +2 -2
  440. package/dist/components/waka-player-card/index.es.js +4 -4
  441. package/dist/components/waka-pod-card/index.cjs.js +1 -1
  442. package/dist/components/waka-pod-card/index.es.js +1 -1
  443. package/dist/components/waka-points-popup/index.cjs.js +1 -1
  444. package/dist/components/waka-points-popup/index.es.js +5 -1
  445. package/dist/components/waka-power-up/index.cjs.js +1 -1
  446. package/dist/components/waka-presence-indicator/index.cjs.js +2 -2
  447. package/dist/components/waka-presence-indicator/index.es.js +1 -1
  448. package/dist/components/waka-pricing-table/index.cjs.js +2 -2
  449. package/dist/components/waka-pricing-table/index.es.js +1 -1
  450. package/dist/components/waka-product-card/index.cjs.js +1 -1
  451. package/dist/components/waka-progress-onboarding/index.cjs.js +3 -3
  452. package/dist/components/waka-progress-onboarding/index.es.js +1 -1
  453. package/dist/components/waka-pull-to-refresh/index.cjs.js +1 -1
  454. package/dist/components/waka-qrcode/index.cjs.js +1 -1
  455. package/dist/components/waka-qrcode/index.es.js +1 -1
  456. package/dist/components/waka-query-explain/index.cjs.js +1 -1
  457. package/dist/components/waka-quest-card/index.cjs.js +2 -2
  458. package/dist/components/waka-quest-card/index.es.js +4 -1
  459. package/dist/components/waka-quota-bar/index.cjs.js +2 -2
  460. package/dist/components/waka-quota-bar/index.es.js +11 -4
  461. package/dist/components/waka-radar-score/index.cjs.js +1 -1
  462. package/dist/components/waka-radar-score/index.es.js +6 -6
  463. package/dist/components/waka-rank-badge/index.cjs.js +2 -2
  464. package/dist/components/waka-rank-badge/index.es.js +1 -1
  465. package/dist/components/waka-rating-input/index.cjs.js +2 -2
  466. package/dist/components/waka-rating-input/index.es.js +1 -1
  467. package/dist/components/waka-reaction-picker/index.cjs.js +1 -1
  468. package/dist/components/waka-reaction-picker/index.es.js +7 -4
  469. package/dist/components/waka-region-map/index.cjs.js +1 -1
  470. package/dist/components/waka-region-map/index.es.js +1 -1
  471. package/dist/components/waka-resource-gauge/index.cjs.js +2 -2
  472. package/dist/components/waka-resource-gauge/index.es.js +3 -3
  473. package/dist/components/waka-resource-pool/index.cjs.js +2 -2
  474. package/dist/components/waka-resource-pool/index.es.js +1 -1
  475. package/dist/components/waka-rich-text-editor/index.cjs.js +1 -1
  476. package/dist/components/waka-rich-text-editor/index.es.js +1 -1
  477. package/dist/components/waka-rollback-slider/index.cjs.js +2 -2
  478. package/dist/components/waka-rollback-slider/index.es.js +5 -3
  479. package/dist/components/waka-sankey-diagram/index.cjs.js +2 -2
  480. package/dist/components/waka-sankey-diagram/index.es.js +5 -5
  481. package/dist/components/waka-schedule-picker/index.cjs.js +1 -1
  482. package/dist/components/waka-schedule-picker/index.es.js +3 -2
  483. package/dist/components/waka-scratch-card/index.cjs.js +2 -2
  484. package/dist/components/waka-scratch-card/index.es.js +1 -1
  485. package/dist/components/waka-season-pass/index.cjs.js +1 -1
  486. package/dist/components/waka-secret-card/index.cjs.js +1 -1
  487. package/dist/components/waka-security-scan-result/index.cjs.js +1 -1
  488. package/dist/components/waka-security-score/index.cjs.js +2 -2
  489. package/dist/components/waka-security-score/index.es.js +5 -5
  490. package/dist/components/waka-segmented-control/index.cjs.js +1 -1
  491. package/dist/components/waka-segmented-control/index.es.js +1 -1
  492. package/dist/components/waka-server-rack/index.cjs.js +1 -1
  493. package/dist/components/waka-service-graph/index.cjs.js +1 -1
  494. package/dist/components/waka-session-manager/index.cjs.js +1 -1
  495. package/dist/components/waka-session-manager/index.es.js +3 -2
  496. package/dist/components/waka-signature-pad/index.cjs.js +1 -1
  497. package/dist/components/waka-signature-pad/index.es.js +1 -1
  498. package/dist/components/waka-skeleton-wave/index.cjs.js +1 -1
  499. package/dist/components/waka-skill-tree/index.cjs.js +2 -2
  500. package/dist/components/waka-skill-tree/index.es.js +32 -32
  501. package/dist/components/waka-sla-tracker/index.cjs.js +1 -1
  502. package/dist/components/waka-sla-tracker/index.es.js +1 -1
  503. package/dist/components/waka-slider-range/index.cjs.js +1 -1
  504. package/dist/components/waka-slider-range/index.es.js +3 -3
  505. package/dist/components/waka-spin-wheel/index.cjs.js +2 -2
  506. package/dist/components/waka-spin-wheel/index.es.js +6 -6
  507. package/dist/components/waka-spinner/index.cjs.js +1 -1
  508. package/dist/components/waka-sponsored-badge/index.cjs.js +1 -1
  509. package/dist/components/waka-sponsored-badge/index.es.js +1 -1
  510. package/dist/components/waka-sponsored-card/index.cjs.js +1 -1
  511. package/dist/components/waka-sponsored-card/index.es.js +2 -2
  512. package/dist/components/waka-sponsored-feed/index.cjs.js +1 -1
  513. package/dist/components/waka-sponsored-feed/index.es.js +2 -2
  514. package/dist/components/waka-spotlight/index.cjs.js +1 -1
  515. package/dist/components/waka-spotlight/index.es.js +2 -1
  516. package/dist/components/waka-stat/index.cjs.js +1 -1
  517. package/dist/components/waka-stat/index.es.js +1 -1
  518. package/dist/components/waka-stats-hexagon/index.cjs.js +1 -1
  519. package/dist/components/waka-stats-hexagon/index.es.js +9 -9
  520. package/dist/components/waka-status-matrix/index.cjs.js +1 -1
  521. package/dist/components/waka-status-matrix/index.es.js +1 -1
  522. package/dist/components/waka-stepper/index.cjs.js +1 -1
  523. package/dist/components/waka-stepper/index.es.js +1 -1
  524. package/dist/components/waka-streak-counter/index.cjs.js +1 -1
  525. package/dist/components/waka-success-explosion/index.cjs.js +1 -1
  526. package/dist/components/waka-swipe-card/index.cjs.js +1 -1
  527. package/dist/components/waka-swipe-card/index.es.js +2 -2
  528. package/dist/components/waka-tabs-morph/index.cjs.js +1 -1
  529. package/dist/components/waka-tabs-morph/index.es.js +1 -1
  530. package/dist/components/waka-tag-input/index.cjs.js +1 -1
  531. package/dist/components/waka-tag-input/index.es.js +3 -2
  532. package/dist/components/waka-team-banner/index.cjs.js +2 -2
  533. package/dist/components/waka-team-banner/index.es.js +1 -1
  534. package/dist/components/waka-terminal-output/index.cjs.js +2 -2
  535. package/dist/components/waka-terminal-output/index.es.js +5 -3
  536. package/dist/components/waka-test-report/index.cjs.js +1 -1
  537. package/dist/components/waka-theme-creator/index.cjs.js +1 -1
  538. package/dist/components/waka-theme-manager/index.cjs.js +1 -1
  539. package/dist/components/waka-theme-manager/index.es.js +5 -2
  540. package/dist/components/waka-thread-view/index.cjs.js +2 -2
  541. package/dist/components/waka-thread-view/index.es.js +1 -1
  542. package/dist/components/waka-tilt-card/index.cjs.js +1 -1
  543. package/dist/components/waka-tilt-card/index.es.js +8 -6
  544. package/dist/components/waka-time-picker/index.cjs.js +1 -1
  545. package/dist/components/waka-time-picker/index.es.js +10 -6
  546. package/dist/components/waka-timeline/index.cjs.js +1 -1
  547. package/dist/components/waka-timeline/index.es.js +1 -1
  548. package/dist/components/waka-tooltip-tour/index.cjs.js +3 -3
  549. package/dist/components/waka-tooltip-tour/index.es.js +53 -51
  550. package/dist/components/waka-tour-guide/index.cjs.js +2 -2
  551. package/dist/components/waka-tour-guide/index.es.js +1 -1
  552. package/dist/components/waka-tournament-bracket/index.cjs.js +2 -2
  553. package/dist/components/waka-tournament-bracket/index.es.js +1 -1
  554. package/dist/components/waka-trace-viewer/index.cjs.js +1 -1
  555. package/dist/components/waka-tree/index.cjs.js +1 -1
  556. package/dist/components/waka-tree/index.es.js +1 -1
  557. package/dist/components/waka-treemap-chart/index.cjs.js +1 -1
  558. package/dist/components/waka-treemap-chart/index.es.js +1 -1
  559. package/dist/components/waka-two-factor-setup/index.cjs.js +2 -2
  560. package/dist/components/waka-two-factor-setup/index.es.js +5 -4
  561. package/dist/components/waka-typewriter/index.cjs.js +1 -1
  562. package/dist/components/waka-typewriter/index.es.js +7 -2
  563. package/dist/components/waka-typing-indicator/index.cjs.js +2 -2
  564. package/dist/components/waka-typing-indicator/index.es.js +1 -1
  565. package/dist/components/waka-versus-card/index.cjs.js +3 -3
  566. package/dist/components/waka-versus-card/index.es.js +5 -4
  567. package/dist/components/waka-video/index.cjs.js +1 -1
  568. package/dist/components/waka-video/index.es.js +1 -1
  569. package/dist/components/waka-video-ad/index.cjs.js +1 -1
  570. package/dist/components/waka-video-ad/index.es.js +3 -3
  571. package/dist/components/waka-video-call/index.cjs.js +2 -2
  572. package/dist/components/waka-video-call/index.es.js +1 -1
  573. package/dist/components/waka-video-overlay/index.cjs.js +1 -1
  574. package/dist/components/waka-video-overlay/index.es.js +2 -2
  575. package/dist/components/waka-virtual-list/index.cjs.js +1 -1
  576. package/dist/components/waka-virtual-list/index.es.js +1 -1
  577. package/dist/components/waka-voice-message/index.cjs.js +1 -1
  578. package/dist/components/waka-voice-message/index.es.js +6 -5
  579. package/dist/components/waka-welcome-modal/index.cjs.js +2 -2
  580. package/dist/components/waka-welcome-modal/index.es.js +1 -1
  581. package/dist/components/waka-xp-bar/index.cjs.js +1 -1
  582. package/dist/components/waka-xp-bar/index.es.js +2 -2
  583. package/dist/context/admincrumb-context.cjs.js +1 -1
  584. package/dist/context/language-context.cjs.js +1 -1
  585. package/dist/context/language-context.es.js +2 -2
  586. package/dist/context/theme-context.cjs.js +1 -1
  587. package/dist/context/theme-provider.cjs.js +1 -1
  588. package/dist/context/theme-provider.es.js +9 -6
  589. package/dist/context/waka-provider.cjs.js +1 -1
  590. package/dist/context/waka-provider.es.js +57 -53
  591. package/dist/doc.cjs.js +1 -1
  592. package/dist/editor.cjs.js +1 -1
  593. package/dist/export.cjs.js +1 -1
  594. package/dist/hooks/use-toast.cjs.js +1 -1
  595. package/dist/hooks/use-translation.cjs.js +1 -1
  596. package/dist/index.cjs.js +1 -1
  597. package/dist/index.d.ts +2 -0
  598. package/dist/index.es.js +279 -278
  599. package/dist/lib/i18n.cjs.js +1 -1
  600. package/dist/lib/i18n.es.js +11 -9
  601. package/dist/locales/default-resources.cjs.js +1 -0
  602. package/dist/locales/default-resources.d.ts +155 -0
  603. package/dist/locales/default-resources.es.js +150 -0
  604. package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.cjs.js +13 -13
  605. package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.es.js +13 -13
  606. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.cjs.js +1 -1
  607. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.es.js +19 -19
  608. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.cjs.js +1 -1
  609. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.es.js +24 -25
  610. package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-resizable-panels/dist/react-resizable-panels.cjs.js +1 -1
  611. package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-resizable-panels/dist/react-resizable-panels.es.js +26 -23
  612. package/dist/rich-text.cjs.js +1 -1
  613. package/dist/ui.css +1 -1
  614. package/dist/utils/cn.cjs.js +1 -1
  615. package/dist/utils/datetime-helpers.cjs.js +1 -1
  616. package/dist/utils/theme-loader.cjs.js +1 -1
  617. package/dist/utils/tweak.cjs.js +1 -1
  618. package/package.json +28 -27
  619. package/src/components/DataTable/DataTable.tsx +2 -0
  620. package/src/components/DataTable/DataTablePagination.tsx +28 -8
  621. package/src/components/DataTable/hooks/useDataTable.ts +13 -0
  622. package/src/components/editor/blocks/waka-diagram-block.tsx +7 -36
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);var i=[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`,`hsl(var(--primary))`,`hsl(var(--info))`,`hsl(var(--warning))`,`hsl(var(--success))`,`hsl(var(--destructive))`];function a(e,t=0){return e.map((e,n)=>({...e,color:e.color||i[(t+n)%i.length],children:e.children?a(e.children,t+n):void 0}))}function o(e){return e.reduce((e,t)=>t.children&&t.children.length>0?e+o(t.children):e+t.value,0)}function s(e){return e.children&&e.children.length>0?o(e.children):e.value}function c(e,t){let n=parseInt(e.slice(1),16),r=Math.min(255,(n>>16)+Math.round(255*t)),i=Math.min(255,(n>>8&255)+Math.round(255*t)),a=Math.min(255,(n&255)+Math.round(255*t));return`#${(r<<16|i<<8|a).toString(16).padStart(6,`0`)}`}function l(e,t,n=0){let r=e.reduce((e,t)=>e+s(t),0);if(r===0||e.length===0)return[];let i=[...e].sort((e,t)=>s(t)-s(e)),a=[],o={...t},c=i;for(;c.length>0;){let{width:e,height:t}=o,i=e>=t,l=i?t:e,u=[],d=0,f=1/0;for(let n=0;n<c.length;n++){let a=c.slice(0,n+1),o=a.reduce((e,t)=>e+s(t),0),p=o/r,m=i?e*p:t*p,h=0;if(a.forEach(e=>{let t=l*(s(e)/o),n=Math.max(m/t,t/m);h=Math.max(h,n)}),h<=f)f=h,u=a,d=o;else break}let p=d/r,m=i?e*p:t*p,h=0;u.forEach(e=>{let t=l*(s(e)/d),r=i?{x:o.x,y:o.y+h,width:m,height:t,item:e,depth:n}:{x:o.x+h,y:o.y,width:t,height:m,item:e,depth:n};a.push(r),h+=t}),o=i?{x:o.x+m,y:o.y,width:e-m,height:t}:{x:o.x,y:o.y+m,width:e,height:t-m},c=c.slice(u.length),r===d&&(c=[])}return a}function u(e,t,n,r,i,a=0,o){let c=e.reduce((e,t)=>e+s(t),0);if(c===0)return[];let l=[],d=t,f=(i-r)/3;return e.forEach(e=>{let p=s(e),m=(n-t)*p/c,h=d+m;l.push({startAngle:d,endAngle:h,innerRadius:r,outerRadius:r+f,item:e,depth:a,parentColor:o}),e.children&&e.children.length>0&&l.push(...u(e.children,d,h,r+f,i,a+1,e.color)),d=h}),l}function d(e,t,n,r,i,a){let o=(i-90)*Math.PI/180,s=(a-90)*Math.PI/180,c=e+r*Math.cos(o),l=t+r*Math.sin(o),u=e+r*Math.cos(s),d=t+r*Math.sin(s),f=e+n*Math.cos(s),p=t+n*Math.sin(s),m=e+n*Math.cos(o),h=t+n*Math.sin(o),g=+(a-i>180);return n===0?`M ${e} ${t} L ${c} ${l} A ${r} ${r} 0 ${g} 1 ${u} ${d} Z`:`M ${c} ${l} A ${r} ${r} 0 ${g} 1 ${u} ${d} L ${f} ${p} A ${n} ${n} 0 ${g} 0 ${m} ${h} Z`}function f({path:e,onNavigate:i}){return(0,r.jsxs)(`nav`,{className:`flex items-center gap-1 text-sm mb-4 flex-wrap`,children:[(0,r.jsx)(`button`,{onClick:()=>i(-1),className:t.cn(`px-2 py-1 rounded-md transition-colors`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,`text-muted-foreground hover:text-foreground`),children:`All`}),e.map((a,o)=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsx)(`span`,{className:`text-muted-foreground`,children:`/`}),(0,r.jsxs)(`button`,{onClick:()=>i(o),className:t.cn(`px-2 py-1 rounded-md transition-colors flex items-center gap-2`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,o===e.length-1?`text-foreground font-medium`:`text-muted-foreground hover:text-foreground`),children:[a.color&&(0,r.jsx)(`span`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:a.color}}),a.name]})]},a.id))]})}function p({item:e,position:n,total:i,formatValue:a,showComparison:o}){let c=s(e),l=(c/i*100).toFixed(1);return(0,r.jsxs)(`div`,{className:t.cn(`absolute z-50 px-3 py-2 text-sm rounded-lg shadow-lg`,`bg-foreground text-background`,`animate-in fade-in-0 zoom-in-95 duration-100`,`pointer-events-none min-w-[140px]`),style:{left:n.x,top:n.y-70,transform:`translateX(-50%)`},children:[(0,r.jsx)(`div`,{className:`font-semibold mb-1`,children:e.name}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Value:`}),(0,r.jsx)(`span`,{className:`font-medium`,children:a(c)})]}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Share:`}),(0,r.jsxs)(`span`,{children:[l,`%`]})]}),o&&e.change!==void 0&&(0,r.jsxs)(`div`,{className:`flex justify-between gap-4 mt-1 pt-1 border-t border-background/20`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Change:`}),(0,r.jsxs)(`span`,{className:t.cn(`font-medium`,e.change>0&&`text-red-300`,e.change<0&&`text-green-300`),children:[e.change>0?`+`:``,e.change.toFixed(1),`%`]})]}),e.children&&e.children.length>0&&(0,r.jsxs)(`div`,{className:`text-xs opacity-70 mt-1 pt-1 border-t border-background/20`,children:[`Click to drill down (`,e.children.length,` items)`]}),(0,r.jsx)(`div`,{className:`absolute left-1/2 -translate-x-1/2 -bottom-1.5 w-3 h-3 rotate-45 bg-foreground`})]})}function m({items:e,total:n,formatValue:i,hoveredId:a,onHover:o,onClick:c,showComparison:l}){return(0,r.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>{let u=s(e),d=(u/n*100).toFixed(1),f=a===e.id,p=a!==null&&a!==e.id;return(0,r.jsxs)(`button`,{className:t.cn(`flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-200 text-left`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,f&&`bg-muted`,p&&`opacity-50`),onMouseEnter:()=>o(e.id),onMouseLeave:()=>o(null),onClick:()=>c(e),children:[(0,r.jsx)(`span`,{className:`w-3 h-3 rounded flex-shrink-0`,style:{backgroundColor:e.color}}),(0,r.jsx)(`span`,{className:`flex-1 truncate text-sm`,children:e.name}),(0,r.jsxs)(`div`,{className:`flex flex-col items-end text-xs`,children:[(0,r.jsx)(`span`,{className:`font-medium`,children:i(u)}),(0,r.jsxs)(`span`,{className:`text-muted-foreground`,children:[d,`%`]})]}),l&&e.change!==void 0&&(0,r.jsxs)(`span`,{className:t.cn(`text-xs font-medium px-1.5 py-0.5 rounded`,e.change>0&&`text-red-600 bg-red-100`,e.change<0&&`text-green-600 bg-green-100`,e.change===0&&`text-muted-foreground bg-muted`),children:[e.change>0?`+`:``,e.change.toFixed(1),`%`]}),e.children&&e.children.length>0&&(0,r.jsx)(`svg`,{className:`w-4 h-4 text-muted-foreground`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,r.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M9 5l7 7-7 7`})})]},e.id)})})}function h({data:e,width:i,height:a,onItemClick:o,hoveredId:c,onHover:u,formatValue:d,showComparison:f,animated:m,total:h}){let[g,_]=n.useState(null),v=n.useRef(null),y=n.useMemo(()=>l(e,{x:0,y:0,width:i,height:a},0),[e,i,a]),b=(e,t)=>{if(v.current){let n=v.current.getBoundingClientRect();_({item:t.item,position:{x:e.clientX-n.left,y:e.clientY-n.top}})}u(t.item.id)};return(0,r.jsxs)(`div`,{ref:v,className:`relative`,style:{width:i,height:a},children:[(0,r.jsx)(`svg`,{width:i,height:a,className:`overflow-visible`,children:y.map((e,n)=>{let i=c===e.item.id,a=c!==null&&c!==e.item.id,l=e.item.children&&e.item.children.length>0,d=(s(e.item)/h*100).toFixed(1),f=e.width>=60&&e.height>=40,p=e.width>=80&&e.height>=50;return(0,r.jsxs)(`g`,{className:t.cn(`cursor-pointer`,m&&`transition-all duration-300`),style:{opacity:a?.5:1,transform:i?`scale(1.02)`:`scale(1)`,transformOrigin:`${e.x+e.width/2}px ${e.y+e.height/2}px`},onMouseMove:t=>b(t,e),onMouseLeave:()=>{_(null),u(null)},onClick:()=>o(e.item),children:[(0,r.jsx)(`rect`,{x:e.x+1,y:e.y+1,width:Math.max(0,e.width-2),height:Math.max(0,e.height-2),fill:e.item.color,rx:`4`,className:t.cn(m&&`transition-all duration-200`,i&&`brightness-110`),style:{filter:i?`brightness(1.1)`:void 0}}),f&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`text`,{x:e.x+e.width/2,y:e.y+e.height/2-(p?8:0),textAnchor:`middle`,dominantBaseline:`middle`,fill:`white`,className:`text-xs font-medium pointer-events-none`,style:{textShadow:`0 1px 2px rgba(0,0,0,0.5)`},children:e.item.name.length>Math.floor(e.width/8)?e.item.name.slice(0,Math.floor(e.width/8))+`...`:e.item.name}),p&&(0,r.jsxs)(`text`,{x:e.x+e.width/2,y:e.y+e.height/2+10,textAnchor:`middle`,dominantBaseline:`middle`,fill:`white`,className:`text-[10px] pointer-events-none opacity-80`,style:{textShadow:`0 1px 2px rgba(0,0,0,0.5)`},children:[d,`%`]})]}),l&&e.width>=24&&e.height>=24&&(0,r.jsx)(`circle`,{cx:e.x+e.width-12,cy:e.y+12,r:`8`,fill:`rgba(255,255,255,0.3)`,className:`pointer-events-none`})]},e.item.id)})}),g&&(0,r.jsx)(p,{item:g.item,position:g.position,total:h,formatValue:d,showComparison:f})]})}function g({data:e,size:a,onItemClick:o,hoveredId:s,onHover:l,formatValue:f,showComparison:m,animated:h,total:g}){let[_,v]=n.useState(null),y=n.useRef(null),b=a/2,x=a/2,S=a/2-20,C=n.useMemo(()=>u(e,0,360,50,S,0),[e,50,S]),w=(e,t)=>{if(y.current){let n=y.current.getBoundingClientRect();v({item:t.item,position:{x:e.clientX-n.left,y:e.clientY-n.top}})}l(t.item.id)},T=e=>e.depth===0?e.item.color||i[0]:c(e.parentColor||e.item.color||i[0],e.depth*.15);return(0,r.jsxs)(`div`,{ref:y,className:`relative`,style:{width:a,height:a},children:[(0,r.jsxs)(`svg`,{width:a,height:a,className:`overflow-visible`,children:[(0,r.jsx)(`circle`,{cx:b,cy:x,r:45,fill:`none`,stroke:`currentColor`,strokeWidth:`1`,className:`opacity-10`}),C.map((e,n)=>{let i=s===e.item.id,a=s!==null&&s!==e.item.id;e.item.children&&e.item.children.length;let c=T(e);return(0,r.jsx)(`path`,{d:d(b,x,e.innerRadius,e.outerRadius,e.startAngle,e.endAngle),fill:c,stroke:`white`,strokeWidth:`1`,className:t.cn(`cursor-pointer`,h&&`transition-all duration-200`),style:{opacity:a?.5:1,filter:i?`brightness(1.15)`:void 0,transform:i?`scale(1.02)`:`scale(1)`,transformOrigin:`${b}px ${x}px`},onMouseMove:t=>w(t,e),onMouseLeave:()=>{v(null),l(null)},onClick:()=>o(e.item)},`${e.item.id}-${e.depth}-${n}`)}),(0,r.jsx)(`text`,{x:b,y:x-8,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-xs font-medium fill-muted-foreground`,children:`Total`}),(0,r.jsx)(`text`,{x:b,y:x+10,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-sm font-bold fill-foreground`,children:f(g)})]}),_&&(0,r.jsx)(p,{item:_.item,position:_.position,total:g,formatValue:f,showComparison:m})]})}function _({data:e,variant:i=`treemap`,currency:c=`$`,showLegend:l=!0,showComparison:u=!1,onItemClick:d,formatValue:p,animated:_=!0,className:v}){let[y,b]=n.useState([]),[x,S]=n.useState(null),C=n.useMemo(()=>a(e),[e]),w=n.useMemo(()=>{let e=C;for(let t of y){let n=e.find(e=>e.id===t.id);if(n?.children)e=n.children;else break}return e},[C,y]),T=n.useMemo(()=>o(w),[w]),E=n.useCallback(e=>e>=1e6?`${c}${(e/1e6).toFixed(1)}M`:e>=1e3?`${c}${(e/1e3).toFixed(1)}K`:`${c}${e.toFixed(2)}`,[c]),D=p||E,O=n.useCallback(e=>{let t=[...y.map(e=>e.id),e.id];d?.(e.id,t),e.children&&e.children.length>0&&b([...y,{id:e.id,name:e.name,color:e.color}])},[y,d]),k=n.useCallback(e=>{b(e===-1?[]:y.slice(0,e+1))},[y]),A=n.useMemo(()=>o(C),[C]);return(0,r.jsxs)(`div`,{className:t.cn(`flex flex-col`,v),children:[y.length>0&&(0,r.jsx)(f,{path:y,onNavigate:k}),(0,r.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:y.length>0?`Category Total`:`Total Cost`}),(0,r.jsx)(`div`,{className:`text-2xl font-bold`,children:D(T)}),y.length>0&&(0,r.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[(T/A*100).toFixed(1),`% of total`]})]}),u&&(0,r.jsxs)(`div`,{className:`text-right`,children:[(0,r.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`vs. Previous Period`}),(0,r.jsx)(`div`,{className:`flex items-center gap-2 justify-end`,children:(()=>{let e=w.reduce((e,t)=>e+(t.change||0)*s(t),0)/T;return(0,r.jsxs)(`span`,{className:t.cn(`text-lg font-semibold`,e>0&&`text-red-600`,e<0&&`text-green-600`,e===0&&`text-muted-foreground`),children:[e>0?`+`:``,e.toFixed(1),`%`]})})()})]})]}),(0,r.jsxs)(`div`,{className:t.cn(`flex gap-6`,l?`flex-row`:`flex-col`),children:[(0,r.jsx)(`div`,{className:`flex-1 min-w-0`,children:i===`treemap`?(0,r.jsx)(h,{data:w,width:400,height:300,onItemClick:O,hoveredId:x,onHover:S,formatValue:D,showComparison:u,animated:_,total:T}):(0,r.jsx)(g,{data:w,size:350,onItemClick:O,hoveredId:x,onHover:S,formatValue:D,showComparison:u,animated:_,total:T})}),l&&(0,r.jsxs)(`div`,{className:`w-64 flex-shrink-0`,children:[(0,r.jsx)(`div`,{className:`text-sm font-medium mb-2 text-muted-foreground`,children:y.length>0?`Subcategories`:`Categories`}),(0,r.jsx)(m,{items:w,total:T,formatValue:D,hoveredId:x,onHover:S,onClick:O,showComparison:u})]})]})]})}function v({data:e,onDrillDown:t}){let[r,i]=n.useState([]),[a,o]=n.useState(null);return{path:r,selectedItem:a,setSelectedItem:o,drillDown:n.useCallback(e=>{let n=[...r,e];i(n),t?.(n)},[r,t]),drillUp:n.useCallback(()=>{let e=r.slice(0,-1);i(e),t?.(e)},[r,t]),reset:n.useCallback(()=>{i([]),o(null),t?.([])},[t]),getCurrentData:n.useCallback(()=>{let t=e;for(let e of r){let n=t.find(t=>t.id===e);if(n?.children)t=n.children;else break}return t},[e,r])}}exports.default=_,exports.useCostBreakdown=v;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime");var i=[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`,`hsl(var(--primary))`,`hsl(var(--info))`,`hsl(var(--warning))`,`hsl(var(--success))`,`hsl(var(--destructive))`];function a(e,t=0){return e.map((e,n)=>({...e,color:e.color||i[(t+n)%i.length],children:e.children?a(e.children,t+n):void 0}))}function o(e){return e.reduce((e,t)=>t.children&&t.children.length>0?e+o(t.children):e+t.value,0)}function s(e){return e.children&&e.children.length>0?o(e.children):e.value}function c(e,t){let n=parseInt(e.slice(1),16),r=Math.min(255,(n>>16)+Math.round(255*t)),i=Math.min(255,(n>>8&255)+Math.round(255*t)),a=Math.min(255,(n&255)+Math.round(255*t));return`#${(r<<16|i<<8|a).toString(16).padStart(6,`0`)}`}function l(e,t,n=0){let r=e.reduce((e,t)=>e+s(t),0);if(r===0||e.length===0)return[];let i=[...e].sort((e,t)=>s(t)-s(e)),a=[],o={...t},c=i;for(;c.length>0;){let{width:e,height:t}=o,i=e>=t,l=i?t:e,u=[],d=0,f=1/0;for(let n=0;n<c.length;n++){let a=c.slice(0,n+1),o=a.reduce((e,t)=>e+s(t),0),p=o/r,m=i?e*p:t*p,h=0;if(a.forEach(e=>{let t=s(e)/o,n=l*t,r=Math.max(m/n,n/m);h=Math.max(h,r)}),h<=f)f=h,u=a,d=o;else break}let p=d/r,m=i?e*p:t*p,h=0;u.forEach(e=>{let t=s(e)/d,r=l*t,c=i?{x:o.x,y:o.y+h,width:m,height:r,item:e,depth:n}:{x:o.x+h,y:o.y,width:r,height:m,item:e,depth:n};a.push(c),h+=r}),o=i?{x:o.x+m,y:o.y,width:e-m,height:t}:{x:o.x,y:o.y+m,width:e,height:t-m},c=c.slice(u.length),r===d&&(c=[])}return a}function u(e,t,n,r,i,a=0,o){let c=e.reduce((e,t)=>e+s(t),0);if(c===0)return[];let l=[],d=t,f=(i-r)/3;return e.forEach(e=>{let p=s(e),m=(n-t)*p/c,h=d+m;l.push({startAngle:d,endAngle:h,innerRadius:r,outerRadius:r+f,item:e,depth:a,parentColor:o}),e.children&&e.children.length>0&&l.push(...u(e.children,d,h,r+f,i,a+1,e.color)),d=h}),l}function d(e,t,n,r,i,a){let o=(i-90)*Math.PI/180,s=(a-90)*Math.PI/180,c=e+r*Math.cos(o),l=t+r*Math.sin(o),u=e+r*Math.cos(s),d=t+r*Math.sin(s),f=e+n*Math.cos(s),p=t+n*Math.sin(s),m=e+n*Math.cos(o),h=t+n*Math.sin(o),g=+(a-i>180);return n===0?`M ${e} ${t} L ${c} ${l} A ${r} ${r} 0 ${g} 1 ${u} ${d} Z`:`M ${c} ${l} A ${r} ${r} 0 ${g} 1 ${u} ${d} L ${f} ${p} A ${n} ${n} 0 ${g} 0 ${m} ${h} Z`}function f({path:e,onNavigate:i}){return(0,r.jsxs)(`nav`,{className:`flex items-center gap-1 text-sm mb-4 flex-wrap`,children:[(0,r.jsx)(`button`,{onClick:()=>i(-1),className:t.cn(`px-2 py-1 rounded-md transition-colors`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,`text-muted-foreground hover:text-foreground`),children:`All`}),e.map((a,o)=>(0,r.jsxs)(n.Fragment,{children:[(0,r.jsx)(`span`,{className:`text-muted-foreground`,children:`/`}),(0,r.jsxs)(`button`,{onClick:()=>i(o),className:t.cn(`px-2 py-1 rounded-md transition-colors flex items-center gap-2`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,o===e.length-1?`text-foreground font-medium`:`text-muted-foreground hover:text-foreground`),children:[a.color&&(0,r.jsx)(`span`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:a.color}}),a.name]})]},a.id))]})}function p({item:e,position:n,total:i,formatValue:a,showComparison:o}){let c=s(e),l=(c/i*100).toFixed(1);return(0,r.jsxs)(`div`,{className:t.cn(`absolute z-50 px-3 py-2 text-sm rounded-lg shadow-lg`,`bg-foreground text-background`,`animate-in fade-in-0 zoom-in-95 duration-100`,`pointer-events-none min-w-[140px]`),style:{left:n.x,top:n.y-70,transform:`translateX(-50%)`},children:[(0,r.jsx)(`div`,{className:`font-semibold mb-1`,children:e.name}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Value:`}),(0,r.jsx)(`span`,{className:`font-medium`,children:a(c)})]}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Share:`}),(0,r.jsxs)(`span`,{children:[l,`%`]})]}),o&&e.change!==void 0&&(0,r.jsxs)(`div`,{className:`flex justify-between gap-4 mt-1 pt-1 border-t border-background/20`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Change:`}),(0,r.jsxs)(`span`,{className:t.cn(`font-medium`,e.change>0&&`text-red-300`,e.change<0&&`text-green-300`),children:[e.change>0?`+`:``,e.change.toFixed(1),`%`]})]}),e.children&&e.children.length>0&&(0,r.jsxs)(`div`,{className:`text-xs opacity-70 mt-1 pt-1 border-t border-background/20`,children:[`Click to drill down (`,e.children.length,` items)`]}),(0,r.jsx)(`div`,{className:`absolute left-1/2 -translate-x-1/2 -bottom-1.5 w-3 h-3 rotate-45 bg-foreground`})]})}function m({items:e,total:n,formatValue:i,hoveredId:a,onHover:o,onClick:c,showComparison:l}){return(0,r.jsx)(`div`,{className:`flex flex-col gap-1`,children:e.map(e=>{let u=s(e),d=(u/n*100).toFixed(1),f=a===e.id,p=a!==null&&a!==e.id;return(0,r.jsxs)(`button`,{className:t.cn(`flex items-center gap-3 px-3 py-2 rounded-lg transition-all duration-200 text-left`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,f&&`bg-muted`,p&&`opacity-50`),onMouseEnter:()=>o(e.id),onMouseLeave:()=>o(null),onClick:()=>c(e),children:[(0,r.jsx)(`span`,{className:`w-3 h-3 rounded flex-shrink-0`,style:{backgroundColor:e.color}}),(0,r.jsx)(`span`,{className:`flex-1 truncate text-sm`,children:e.name}),(0,r.jsxs)(`div`,{className:`flex flex-col items-end text-xs`,children:[(0,r.jsx)(`span`,{className:`font-medium`,children:i(u)}),(0,r.jsxs)(`span`,{className:`text-muted-foreground`,children:[d,`%`]})]}),l&&e.change!==void 0&&(0,r.jsxs)(`span`,{className:t.cn(`text-xs font-medium px-1.5 py-0.5 rounded`,e.change>0&&`text-red-600 bg-red-100`,e.change<0&&`text-green-600 bg-green-100`,e.change===0&&`text-muted-foreground bg-muted`),children:[e.change>0?`+`:``,e.change.toFixed(1),`%`]}),e.children&&e.children.length>0&&(0,r.jsx)(`svg`,{className:`w-4 h-4 text-muted-foreground`,fill:`none`,viewBox:`0 0 24 24`,stroke:`currentColor`,children:(0,r.jsx)(`path`,{strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:2,d:`M9 5l7 7-7 7`})})]},e.id)})})}function h({data:e,width:i,height:a,onItemClick:o,hoveredId:c,onHover:u,formatValue:d,showComparison:f,animated:m,total:h}){let[g,_]=n.useState(null),v=n.useRef(null),y=n.useMemo(()=>l(e,{x:0,y:0,width:i,height:a},0),[e,i,a]),b=(e,t)=>{if(v.current){let n=v.current.getBoundingClientRect();_({item:t.item,position:{x:e.clientX-n.left,y:e.clientY-n.top}})}u(t.item.id)};return(0,r.jsxs)(`div`,{ref:v,className:`relative`,style:{width:i,height:a},children:[(0,r.jsx)(`svg`,{width:i,height:a,className:`overflow-visible`,children:y.map((e,n)=>{let i=c===e.item.id,a=c!==null&&c!==e.item.id,l=e.item.children&&e.item.children.length>0,d=(s(e.item)/h*100).toFixed(1),f=e.width>=60&&e.height>=40,p=e.width>=80&&e.height>=50;return(0,r.jsxs)(`g`,{className:t.cn(`cursor-pointer`,m&&`transition-all duration-300`),style:{opacity:a?.5:1,transform:i?`scale(1.02)`:`scale(1)`,transformOrigin:`${e.x+e.width/2}px ${e.y+e.height/2}px`},onMouseMove:t=>b(t,e),onMouseLeave:()=>{_(null),u(null)},onClick:()=>o(e.item),children:[(0,r.jsx)(`rect`,{x:e.x+1,y:e.y+1,width:Math.max(0,e.width-2),height:Math.max(0,e.height-2),fill:e.item.color,rx:`4`,className:t.cn(m&&`transition-all duration-200`,i&&`brightness-110`),style:{filter:i?`brightness(1.1)`:void 0}}),f&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`text`,{x:e.x+e.width/2,y:e.y+e.height/2-(p?8:0),textAnchor:`middle`,dominantBaseline:`middle`,fill:`white`,className:`text-xs font-medium pointer-events-none`,style:{textShadow:`0 1px 2px rgba(0,0,0,0.5)`},children:e.item.name.length>Math.floor(e.width/8)?e.item.name.slice(0,Math.floor(e.width/8))+`...`:e.item.name}),p&&(0,r.jsxs)(`text`,{x:e.x+e.width/2,y:e.y+e.height/2+10,textAnchor:`middle`,dominantBaseline:`middle`,fill:`white`,className:`text-[10px] pointer-events-none opacity-80`,style:{textShadow:`0 1px 2px rgba(0,0,0,0.5)`},children:[d,`%`]})]}),l&&e.width>=24&&e.height>=24&&(0,r.jsx)(`circle`,{cx:e.x+e.width-12,cy:e.y+12,r:`8`,fill:`rgba(255,255,255,0.3)`,className:`pointer-events-none`})]},e.item.id)})}),g&&(0,r.jsx)(p,{item:g.item,position:g.position,total:h,formatValue:d,showComparison:f})]})}function g({data:e,size:a,onItemClick:o,hoveredId:s,onHover:l,formatValue:f,showComparison:m,animated:h,total:g}){let[_,v]=n.useState(null),y=n.useRef(null),b=a/2,x=a/2,S=a/2-20,C=n.useMemo(()=>u(e,0,360,50,S,0),[e,50,S]),w=(e,t)=>{if(y.current){let n=y.current.getBoundingClientRect();v({item:t.item,position:{x:e.clientX-n.left,y:e.clientY-n.top}})}l(t.item.id)},T=e=>e.depth===0?e.item.color||i[0]:c(e.parentColor||e.item.color||i[0],e.depth*.15);return(0,r.jsxs)(`div`,{ref:y,className:`relative`,style:{width:a,height:a},children:[(0,r.jsxs)(`svg`,{width:a,height:a,className:`overflow-visible`,children:[(0,r.jsx)(`circle`,{cx:b,cy:x,r:45,fill:`none`,stroke:`currentColor`,strokeWidth:`1`,className:`opacity-10`}),C.map((e,n)=>{let i=s===e.item.id,a=s!==null&&s!==e.item.id;e.item.children&&e.item.children.length;let c=T(e);return(0,r.jsx)(`path`,{d:d(b,x,e.innerRadius,e.outerRadius,e.startAngle,e.endAngle),fill:c,stroke:`white`,strokeWidth:`1`,className:t.cn(`cursor-pointer`,h&&`transition-all duration-200`),style:{opacity:a?.5:1,filter:i?`brightness(1.15)`:void 0,transform:i?`scale(1.02)`:`scale(1)`,transformOrigin:`${b}px ${x}px`},onMouseMove:t=>w(t,e),onMouseLeave:()=>{v(null),l(null)},onClick:()=>o(e.item)},`${e.item.id}-${e.depth}-${n}`)}),(0,r.jsx)(`text`,{x:b,y:x-8,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-xs font-medium fill-muted-foreground`,children:`Total`}),(0,r.jsx)(`text`,{x:b,y:x+10,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-sm font-bold fill-foreground`,children:f(g)})]}),_&&(0,r.jsx)(p,{item:_.item,position:_.position,total:g,formatValue:f,showComparison:m})]})}function _({data:e,variant:i=`treemap`,currency:c=`$`,showLegend:l=!0,showComparison:u=!1,onItemClick:d,formatValue:p,animated:_=!0,className:v}){let[y,b]=n.useState([]),[x,S]=n.useState(null),C=n.useMemo(()=>a(e),[e]),w=n.useMemo(()=>{let e=C;for(let t of y){let n=e.find(e=>e.id===t.id);if(n?.children)e=n.children;else break}return e},[C,y]),T=n.useMemo(()=>o(w),[w]),E=n.useCallback(e=>e>=1e6?`${c}${(e/1e6).toFixed(1)}M`:e>=1e3?`${c}${(e/1e3).toFixed(1)}K`:`${c}${e.toFixed(2)}`,[c]),D=p||E,O=n.useCallback(e=>{let t=[...y.map(e=>e.id),e.id];d?.(e.id,t),e.children&&e.children.length>0&&b([...y,{id:e.id,name:e.name,color:e.color}])},[y,d]),k=n.useCallback(e=>{b(e===-1?[]:y.slice(0,e+1))},[y]),A=n.useMemo(()=>o(C),[C]);return(0,r.jsxs)(`div`,{className:t.cn(`flex flex-col`,v),children:[y.length>0&&(0,r.jsx)(f,{path:y,onNavigate:k}),(0,r.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,r.jsxs)(`div`,{children:[(0,r.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:y.length>0?`Category Total`:`Total Cost`}),(0,r.jsx)(`div`,{className:`text-2xl font-bold`,children:D(T)}),y.length>0&&(0,r.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[(T/A*100).toFixed(1),`% of total`]})]}),u&&(0,r.jsxs)(`div`,{className:`text-right`,children:[(0,r.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`vs. Previous Period`}),(0,r.jsx)(`div`,{className:`flex items-center gap-2 justify-end`,children:(()=>{let e=w.reduce((e,t)=>e+(t.change||0)*s(t),0)/T;return(0,r.jsxs)(`span`,{className:t.cn(`text-lg font-semibold`,e>0&&`text-red-600`,e<0&&`text-green-600`,e===0&&`text-muted-foreground`),children:[e>0?`+`:``,e.toFixed(1),`%`]})})()})]})]}),(0,r.jsxs)(`div`,{className:t.cn(`flex gap-6`,l?`flex-row`:`flex-col`),children:[(0,r.jsx)(`div`,{className:`flex-1 min-w-0`,children:i===`treemap`?(0,r.jsx)(h,{data:w,width:400,height:300,onItemClick:O,hoveredId:x,onHover:S,formatValue:D,showComparison:u,animated:_,total:T}):(0,r.jsx)(g,{data:w,size:350,onItemClick:O,hoveredId:x,onHover:S,formatValue:D,showComparison:u,animated:_,total:T})}),l&&(0,r.jsxs)(`div`,{className:`w-64 flex-shrink-0`,children:[(0,r.jsx)(`div`,{className:`text-sm font-medium mb-2 text-muted-foreground`,children:y.length>0?`Subcategories`:`Categories`}),(0,r.jsx)(m,{items:w,total:T,formatValue:D,hoveredId:x,onHover:S,onClick:O,showComparison:u})]})]})]})}function v({data:e,onDrillDown:t}){let[r,i]=n.useState([]),[a,o]=n.useState(null);return{path:r,selectedItem:a,setSelectedItem:o,drillDown:n.useCallback(e=>{let n=[...r,e];i(n),t?.(n)},[r,t]),drillUp:n.useCallback(()=>{let e=r.slice(0,-1);i(e),t?.(e)},[r,t]),reset:n.useCallback(()=>{i([]),o(null),t?.([])},[t]),getCurrentData:n.useCallback(()=>{let t=e;for(let e of r){let n=t.find(t=>t.id===e);if(n?.children)t=n.children;else break}return t},[e,r])}}exports.WakaCostBreakdown=_,exports.default=_,exports.useCostBreakdown=v;
@@ -42,29 +42,29 @@ function u(e, t, n = 0) {
42
42
  for (let n = 0; n < s.length; n++) {
43
43
  let a = s.slice(0, n + 1), o = a.reduce((e, t) => e + c(t), 0), p = o / r, m = i ? e * p : t * p, h = 0;
44
44
  if (a.forEach((e) => {
45
- let t = l * (c(e) / o), n = Math.max(m / t, t / m);
46
- h = Math.max(h, n);
45
+ let t = c(e) / o, n = l * t, r = Math.max(m / n, n / m);
46
+ h = Math.max(h, r);
47
47
  }), h <= f) f = h, u = a, d = o;
48
48
  else break;
49
49
  }
50
50
  let p = d / r, m = i ? e * p : t * p, h = 0;
51
51
  u.forEach((e) => {
52
- let t = l * (c(e) / d), r = i ? {
52
+ let t = c(e) / d, r = l * t, s = i ? {
53
53
  x: o.x,
54
54
  y: o.y + h,
55
55
  width: m,
56
- height: t,
56
+ height: r,
57
57
  item: e,
58
58
  depth: n
59
59
  } : {
60
60
  x: o.x + h,
61
61
  y: o.y,
62
- width: t,
62
+ width: r,
63
63
  height: m,
64
64
  item: e,
65
65
  depth: n
66
66
  };
67
- a.push(r), h += t;
67
+ a.push(s), h += r;
68
68
  }), o = i ? {
69
69
  x: o.x + m,
70
70
  y: o.y,
@@ -552,4 +552,4 @@ function y({ data: e, onDrillDown: n }) {
552
552
  };
553
553
  }
554
554
  //#endregion
555
- export { v as default, y as useCostBreakdown };
555
+ export { v as WakaCostBreakdown, v as default, y as useCostBreakdown };
@@ -1,4 +1,4 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../button/index.cjs.js`),r=require(`../input/index.cjs.js`);let i=require(`react`);i=e.__toESM(i);let a=require(`lucide-react`),o=require(`react/jsx-runtime`);function s(e={}){let{initialCoupons:t=[],validateCoupon:n,allowMultiple:r=!1,maxCoupons:a=5,onApply:o,onRemove:s,statusResetDelay:c=2e3}=e,[l,u]=i.useState(``),[d,f]=i.useState(`idle`),[p,m]=i.useState(null),[h,g]=i.useState(t),_=i.useRef(null);i.useEffect(()=>()=>{_.current&&clearTimeout(_.current)},[]);let v=i.useCallback(()=>{_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{f(`idle`),m(null)},c)},[c]),y=i.useMemo(()=>r?h.length<a:h.length===0,[r,h.length,a]),b=i.useCallback(e=>h.some(t=>t.code.toUpperCase()===e.toUpperCase()),[h]);return{inputValue:l,setInputValue:u,status:d,errorMessage:p,appliedCoupons:h,applyCoupon:i.useCallback(async()=>{let e=l.trim().toUpperCase();if(!e){f(`error`),m(`Please enter a coupon code`),v();return}if(b(e)){f(`error`),m(`This coupon is already applied`),v();return}if(!y){f(`error`),m(r?`Maximum ${a} coupons allowed`:`Only one coupon can be applied`),v();return}f(`loading`),m(null);try{if(n){let t=await n(e);t.isValid&&t.coupon?(g(e=>[...e,t.coupon]),o?.(t.coupon),f(`success`),u(``),v()):(f(`error`),m(t.errorMessage||`Invalid coupon code`),v())}else{let t={code:e,discountValue:10,discountType:`percentage`,description:`Discount applied`};g(e=>[...e,t]),o?.(t),f(`success`),u(``),v()}}catch(e){f(`error`),m(e instanceof Error?e.message:`Failed to validate coupon`),v()}},[l,b,y,r,a,n,o,v]),removeCoupon:i.useCallback(e=>{g(t=>t.filter(t=>t.code.toUpperCase()!==e.toUpperCase())),s?.(e)},[s]),clearAllCoupons:i.useCallback(()=>{let e=h.map(e=>e.code);g([]),e.forEach(e=>s?.(e))},[h,s]),resetInput:i.useCallback(()=>{u(``),f(`idle`),m(null),_.current&&clearTimeout(_.current)},[]),canApplyMore:y,isCodeApplied:b}}var c={sm:{input:`h-8 text-xs`,button:`h-8 px-3 text-xs`,icon:`h-3.5 w-3.5`,tag:`text-xs py-1 px-2`,tagIcon:`h-3 w-3`},md:{input:`h-9 text-sm`,button:`h-9 px-4 text-sm`,icon:`h-4 w-4`,tag:`text-sm py-1.5 px-3`,tagIcon:`h-3.5 w-3.5`},lg:{input:`h-10 text-base`,button:`h-10 px-5 text-base`,icon:`h-5 w-5`,tag:`text-base py-2 px-4`,tagIcon:`h-4 w-4`}};function l({appliedCoupons:e,onApply:l,onRemove:u,validateCoupon:d,allowMultiple:f=!1,maxCoupons:p=5,placeholder:m=`Enter coupon code`,applyButtonText:h=`Apply`,currencySymbol:g=`$`,disabled:_=!1,size:v=`md`,className:y,inputClassName:b,buttonClassName:x,showAppliedCoupons:S=!0,formatDiscount:C,id:w,name:T}){let{inputValue:E,setInputValue:D,status:O,errorMessage:k,appliedCoupons:A,applyCoupon:j,removeCoupon:M,canApplyMore:N}=s({initialCoupons:e,validateCoupon:d,allowMultiple:f,maxCoupons:p,onApply:l,onRemove:u}),P=e??A,[F,I]=i.useState(0),L=i.useRef(null),R=c[v];i.useEffect(()=>{O===`error`&&I(e=>e+1)},[O]);let z=e=>{D(e.target.value.toUpperCase())},B=e=>{e.key===`Enter`&&(e.preventDefault(),j())},V=()=>{j()},H=e=>{M(e)},U=e=>C?C(e):e.discountType===`percentage`?`${e.discountValue}% off`:`${g}${e.discountValue} off`,W=()=>{switch(O){case`loading`:return(0,o.jsx)(a.Loader2,{className:t.cn(R.icon,`animate-spin`)});case`success`:return(0,o.jsx)(a.Check,{className:R.icon});default:return h}},G=_||O===`loading`||!N;return(0,o.jsxs)(`div`,{className:t.cn(`space-y-3`,y),children:[(0,o.jsxs)(`div`,{className:`flex gap-2`,children:[(0,o.jsxs)(`div`,{className:t.cn(`relative flex-1`,O===`error`&&`waka-coupon-shake`),children:[(0,o.jsx)(`div`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground`,children:(0,o.jsx)(a.Ticket,{className:R.icon})}),(0,o.jsx)(r.Input,{ref:L,id:w,name:T,type:`text`,value:E,onChange:z,onKeyDown:B,placeholder:m,disabled:G,className:t.cn(R.input,`pl-10 font-mono uppercase tracking-wider`,O===`error`&&`border-destructive focus-visible:ring-destructive`,O===`success`&&`border-green-500 focus-visible:ring-green-500`,b),"aria-invalid":O===`error`,"aria-describedby":k?`coupon-error`:void 0}),O===`success`&&(0,o.jsx)(`div`,{className:`absolute right-3 top-1/2 -translate-y-1/2`,children:(0,o.jsx)(`div`,{className:`waka-coupon-success-check rounded-full bg-green-500 p-0.5`,children:(0,o.jsx)(a.Check,{className:`h-3 w-3 text-white`})})})]},F),(0,o.jsx)(n.Button,{type:`button`,onClick:V,disabled:G||!E.trim(),className:t.cn(R.button,O===`success`&&`bg-green-500 hover:bg-green-600`,x),children:W()})]}),O===`error`&&k&&(0,o.jsxs)(`p`,{id:`coupon-error`,className:`text-sm text-destructive flex items-center gap-1.5`,role:`alert`,children:[(0,o.jsx)(a.X,{className:`h-3.5 w-3.5`}),k]}),S&&P.length>0&&(0,o.jsx)(`div`,{className:`space-y-2`,children:P.map(e=>(0,o.jsxs)(`div`,{className:t.cn(`flex items-center justify-between rounded-lg border bg-muted/50 waka-coupon-applied`,R.tag),children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(a.Tag,{className:t.cn(R.tagIcon,`text-primary`)}),(0,o.jsx)(`span`,{className:`font-mono font-medium`,children:e.code}),(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`}),(0,o.jsxs)(`span`,{className:`flex items-center gap-1 text-green-600 font-medium`,children:[e.discountType===`percentage`?(0,o.jsx)(a.Percent,{className:R.tagIcon}):null,U(e)]})]}),(0,o.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>H(e.code),disabled:_,className:`h-6 w-6 text-muted-foreground hover:text-destructive`,"aria-label":`Remove coupon ${e.code}`,children:(0,o.jsx)(a.X,{className:`h-3.5 w-3.5`})})]},e.code))}),f&&P.length>0&&N&&(0,o.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[P.length,` of `,p,` coupons applied`]}),(0,o.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../button/index.cjs.js"),r=require("../input/index.cjs.js");let i=require("react");i=e.__toESM(i);let a=require("lucide-react"),o=require("react/jsx-runtime");function s(e={}){let{initialCoupons:t=[],validateCoupon:n,allowMultiple:r=!1,maxCoupons:a=5,onApply:o,onRemove:s,statusResetDelay:c=2e3}=e,[l,u]=i.useState(``),[d,f]=i.useState(`idle`),[p,m]=i.useState(null),[h,g]=i.useState(t),_=i.useRef(null);i.useEffect(()=>()=>{_.current&&clearTimeout(_.current)},[]);let v=i.useCallback(()=>{_.current&&clearTimeout(_.current),_.current=setTimeout(()=>{f(`idle`),m(null)},c)},[c]),y=i.useMemo(()=>r?h.length<a:h.length===0,[r,h.length,a]),b=i.useCallback(e=>h.some(t=>t.code.toUpperCase()===e.toUpperCase()),[h]);return{inputValue:l,setInputValue:u,status:d,errorMessage:p,appliedCoupons:h,applyCoupon:i.useCallback(async()=>{let e=l.trim().toUpperCase();if(!e){f(`error`),m(`Please enter a coupon code`),v();return}if(b(e)){f(`error`),m(`This coupon is already applied`),v();return}if(!y){f(`error`),m(r?`Maximum ${a} coupons allowed`:`Only one coupon can be applied`),v();return}f(`loading`),m(null);try{if(n){let t=await n(e);t.isValid&&t.coupon?(g(e=>[...e,t.coupon]),o?.(t.coupon),f(`success`),u(``),v()):(f(`error`),m(t.errorMessage||`Invalid coupon code`),v())}else{let t={code:e,discountValue:10,discountType:`percentage`,description:`Discount applied`};g(e=>[...e,t]),o?.(t),f(`success`),u(``),v()}}catch(e){f(`error`),m(e instanceof Error?e.message:`Failed to validate coupon`),v()}},[l,b,y,r,a,n,o,v]),removeCoupon:i.useCallback(e=>{g(t=>t.filter(t=>t.code.toUpperCase()!==e.toUpperCase())),s?.(e)},[s]),clearAllCoupons:i.useCallback(()=>{let e=h.map(e=>e.code);g([]),e.forEach(e=>s?.(e))},[h,s]),resetInput:i.useCallback(()=>{u(``),f(`idle`),m(null),_.current&&clearTimeout(_.current)},[]),canApplyMore:y,isCodeApplied:b}}var c={sm:{input:`h-8 text-xs`,button:`h-8 px-3 text-xs`,icon:`h-3.5 w-3.5`,tag:`text-xs py-1 px-2`,tagIcon:`h-3 w-3`},md:{input:`h-9 text-sm`,button:`h-9 px-4 text-sm`,icon:`h-4 w-4`,tag:`text-sm py-1.5 px-3`,tagIcon:`h-3.5 w-3.5`},lg:{input:`h-10 text-base`,button:`h-10 px-5 text-base`,icon:`h-5 w-5`,tag:`text-base py-2 px-4`,tagIcon:`h-4 w-4`}};function l({appliedCoupons:e,onApply:l,onRemove:u,validateCoupon:d,allowMultiple:f=!1,maxCoupons:p=5,placeholder:m=`Enter coupon code`,applyButtonText:h=`Apply`,currencySymbol:g=`$`,disabled:_=!1,size:v=`md`,className:y,inputClassName:b,buttonClassName:x,showAppliedCoupons:S=!0,formatDiscount:C,id:w,name:T}){let{inputValue:E,setInputValue:D,status:O,errorMessage:k,appliedCoupons:A,applyCoupon:j,removeCoupon:M,canApplyMore:N}=s({initialCoupons:e,validateCoupon:d,allowMultiple:f,maxCoupons:p,onApply:l,onRemove:u}),P=e??A,[F,I]=i.useState(0),L=i.useRef(null),R=c[v];i.useEffect(()=>{O===`error`&&I(e=>e+1)},[O]);let z=e=>{D(e.target.value.toUpperCase())},B=e=>{e.key===`Enter`&&(e.preventDefault(),j())},V=()=>{j()},H=e=>{M(e)},U=e=>C?C(e):e.discountType===`percentage`?`${e.discountValue}% off`:`${g}${e.discountValue} off`,W=()=>{switch(O){case`loading`:return(0,o.jsx)(a.Loader2,{className:t.cn(R.icon,`animate-spin`)});case`success`:return(0,o.jsx)(a.Check,{className:R.icon});default:return h}},G=_||O===`loading`||!N;return(0,o.jsxs)(`div`,{className:t.cn(`space-y-3`,y),children:[(0,o.jsxs)(`div`,{className:`flex gap-2`,children:[(0,o.jsxs)(`div`,{className:t.cn(`relative flex-1`,O===`error`&&`waka-coupon-shake`),children:[(0,o.jsx)(`div`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground`,children:(0,o.jsx)(a.Ticket,{className:R.icon})}),(0,o.jsx)(r.Input,{ref:L,id:w,name:T,type:`text`,value:E,onChange:z,onKeyDown:B,placeholder:m,disabled:G,className:t.cn(R.input,`pl-10 font-mono uppercase tracking-wider`,O===`error`&&`border-destructive focus-visible:ring-destructive`,O===`success`&&`border-green-500 focus-visible:ring-green-500`,b),"aria-invalid":O===`error`,"aria-describedby":k?`coupon-error`:void 0}),O===`success`&&(0,o.jsx)(`div`,{className:`absolute right-3 top-1/2 -translate-y-1/2`,children:(0,o.jsx)(`div`,{className:`waka-coupon-success-check rounded-full bg-green-500 p-0.5`,children:(0,o.jsx)(a.Check,{className:`h-3 w-3 text-white`})})})]},F),(0,o.jsx)(n.Button,{type:`button`,onClick:V,disabled:G||!E.trim(),className:t.cn(R.button,O===`success`&&`bg-green-500 hover:bg-green-600`,x),children:W()})]}),O===`error`&&k&&(0,o.jsxs)(`p`,{id:`coupon-error`,className:`text-sm text-destructive flex items-center gap-1.5`,role:`alert`,children:[(0,o.jsx)(a.X,{className:`h-3.5 w-3.5`}),k]}),S&&P.length>0&&(0,o.jsx)(`div`,{className:`space-y-2`,children:P.map(e=>(0,o.jsxs)(`div`,{className:t.cn(`flex items-center justify-between rounded-lg border bg-muted/50 waka-coupon-applied`,R.tag),children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(a.Tag,{className:t.cn(R.tagIcon,`text-primary`)}),(0,o.jsx)(`span`,{className:`font-mono font-medium`,children:e.code}),(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:`-`}),(0,o.jsxs)(`span`,{className:`flex items-center gap-1 text-green-600 font-medium`,children:[e.discountType===`percentage`?(0,o.jsx)(a.Percent,{className:R.tagIcon}):null,U(e)]})]}),(0,o.jsx)(n.Button,{type:`button`,variant:`ghost`,size:`icon`,onClick:()=>H(e.code),disabled:_,className:`h-6 w-6 text-muted-foreground hover:text-destructive`,"aria-label":`Remove coupon ${e.code}`,children:(0,o.jsx)(a.X,{className:`h-3.5 w-3.5`})})]},e.code))}),f&&P.length>0&&N&&(0,o.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[P.length,` of `,p,` coupons applied`]}),(0,o.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`
2
2
  @keyframes waka-coupon-shake {
3
3
  0%, 100% { transform: translateX(0); }
4
4
  10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }
@@ -33,4 +33,4 @@
33
33
  .waka-coupon-applied {
34
34
  animation: waka-coupon-slide-in 0.3s ease-out;
35
35
  }
36
- `}})]})}l.displayName=`WakaCouponInput`,exports.default=l,exports.useCouponInput=s;
36
+ `}})]})}l.displayName=`WakaCouponInput`,exports.WakaCouponInput=l,exports.default=l,exports.useCouponInput=s;
@@ -228,4 +228,4 @@ function m({ appliedCoupons: m, onApply: h, onRemove: g, validateCoupon: _, allo
228
228
  }
229
229
  m.displayName = "WakaCouponInput";
230
230
  //#endregion
231
- export { m as default, f as useCouponInput };
231
+ export { m as WakaCouponInput, m as default, f as useCouponInput };
@@ -1,4 +1,4 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../button/index.cjs.js`);let r=require(`react`);r=e.__toESM(r);let i=require(`lucide-react`),a=require(`react/jsx-runtime`);var o={debit:{icon:i.ArrowDownLeft,color:`text-red-600 dark:text-red-400`,bgColor:`bg-red-100 dark:bg-red-900/30`,dotColor:`bg-red-500`,amountColor:`text-red-600 dark:text-red-400`,amountPrefix:`-`,label:`Debit`},credit:{icon:i.ArrowUpRight,color:`text-green-600 dark:text-green-400`,bgColor:`bg-green-100 dark:bg-green-900/30`,dotColor:`bg-green-500`,amountColor:`text-green-600 dark:text-green-400`,amountPrefix:`+`,label:`Credit`},refund:{icon:i.RotateCcw,color:`text-blue-600 dark:text-blue-400`,bgColor:`bg-blue-100 dark:bg-blue-900/30`,dotColor:`bg-blue-500`,amountColor:`text-blue-600 dark:text-blue-400`,amountPrefix:`+`,label:`Refund`},bonus:{icon:i.Gift,color:`text-purple-600 dark:text-purple-400`,bgColor:`bg-purple-100 dark:bg-purple-900/30`,dotColor:`bg-purple-500`,amountColor:`text-purple-600 dark:text-purple-400`,amountPrefix:`+`,label:`Bonus`},expiry:{icon:i.Clock,color:`text-gray-500 dark:text-gray-400`,bgColor:`bg-gray-100 dark:bg-gray-800/30`,dotColor:`bg-gray-400`,amountColor:`text-gray-500 dark:text-gray-400`,amountPrefix:`-`,label:`Expired`}};function s(e){let t=Math.floor((new Date().getTime()-e.getTime())/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n} min ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i} days ago`;let a=Math.floor(i/7);if(a<4)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}function c(e,t){return`${t}${e.toLocaleString(`en-US`)}`}function l(){return(0,a.jsxs)(`div`,{className:`flex gap-3 py-3`,children:[(0,a.jsx)(`div`,{className:`flex flex-col items-center flex-shrink-0`,children:(0,a.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted animate-pulse`})}),(0,a.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-2`,children:[(0,a.jsx)(`div`,{className:`h-4 w-3/4 bg-muted rounded animate-pulse`}),(0,a.jsx)(`div`,{className:`h-3 w-1/3 bg-muted rounded animate-pulse`})]}),(0,a.jsxs)(`div`,{className:`flex flex-col items-end flex-shrink-0 space-y-2`,children:[(0,a.jsx)(`div`,{className:`h-4 w-16 bg-muted rounded animate-pulse`}),(0,a.jsx)(`div`,{className:`h-3 w-12 bg-muted rounded animate-pulse`})]})]})}function u({activity:e,isLast:n,animated:r,index:i}){let l=o[e.type],u=l.icon,d=new Date(e.timestamp);return(0,a.jsxs)(`div`,{className:t.cn(`relative flex gap-3 py-3`,r&&`animate-feed-item-in`),style:r?{"--stagger-delay":`${i*80}ms`}:void 0,children:[(0,a.jsxs)(`div`,{className:`flex flex-col items-center flex-shrink-0`,children:[(0,a.jsx)(`div`,{className:t.cn(`flex h-8 w-8 items-center justify-center rounded-full flex-shrink-0`,l.bgColor),children:(0,a.jsx)(u,{className:t.cn(`h-4 w-4`,l.color)})}),!n&&(0,a.jsx)(`div`,{className:`w-px flex-1 bg-border mt-1 min-h-[16px]`})]}),(0,a.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium text-foreground leading-tight truncate`,children:e.description}),e.service&&(0,a.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5 truncate`,children:e.service})]}),(0,a.jsxs)(`div`,{className:`flex flex-col items-end flex-shrink-0 pt-1`,children:[(0,a.jsx)(`span`,{className:t.cn(`text-sm font-semibold tabular-nums`,l.amountColor),children:c(e.amount,l.amountPrefix)}),(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground mt-0.5`,children:s(d)})]})]})}function d({message:e}){return(0,a.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,a.jsx)(i.Inbox,{className:`h-12 w-12 text-muted-foreground/50 mb-4`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e})]})}function f({activities:e,maxItems:o,showLoadMore:s=!1,onLoadMore:c,loading:f=!1,emptyMessage:p=`No recent activity`,animated:m=!1,className:h}){let g=r.useMemo(()=>o&&o>0?e.slice(0,o):e,[e,o]);return f?(0,a.jsx)(`div`,{className:t.cn(`divide-y divide-transparent`,h),children:Array.from({length:4}).map((e,t)=>(0,a.jsx)(l,{},t))}):g.length===0?(0,a.jsx)(`div`,{className:h,children:(0,a.jsx)(d,{message:p})}):(0,a.jsxs)(`div`,{className:t.cn(`relative`,h),children:[(0,a.jsx)(`div`,{children:g.map((e,t)=>(0,a.jsx)(u,{activity:e,isLast:t===g.length-1,animated:m,index:t},e.id))}),s&&c&&(0,a.jsx)(`div`,{className:`flex justify-center pt-2`,children:(0,a.jsxs)(n.Button,{variant:`outline`,size:`sm`,onClick:c,className:`gap-2`,children:[(0,a.jsx)(i.ChevronDown,{className:`h-4 w-4`}),`Load more`]})}),m&&(0,a.jsx)(`style`,{children:`
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../button/index.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("lucide-react"),a=require("react/jsx-runtime");var o={debit:{icon:i.ArrowDownLeft,color:`text-red-600 dark:text-red-400`,bgColor:`bg-red-100 dark:bg-red-900/30`,dotColor:`bg-red-500`,amountColor:`text-red-600 dark:text-red-400`,amountPrefix:`-`,label:`Debit`},credit:{icon:i.ArrowUpRight,color:`text-green-600 dark:text-green-400`,bgColor:`bg-green-100 dark:bg-green-900/30`,dotColor:`bg-green-500`,amountColor:`text-green-600 dark:text-green-400`,amountPrefix:`+`,label:`Credit`},refund:{icon:i.RotateCcw,color:`text-blue-600 dark:text-blue-400`,bgColor:`bg-blue-100 dark:bg-blue-900/30`,dotColor:`bg-blue-500`,amountColor:`text-blue-600 dark:text-blue-400`,amountPrefix:`+`,label:`Refund`},bonus:{icon:i.Gift,color:`text-purple-600 dark:text-purple-400`,bgColor:`bg-purple-100 dark:bg-purple-900/30`,dotColor:`bg-purple-500`,amountColor:`text-purple-600 dark:text-purple-400`,amountPrefix:`+`,label:`Bonus`},expiry:{icon:i.Clock,color:`text-gray-500 dark:text-gray-400`,bgColor:`bg-gray-100 dark:bg-gray-800/30`,dotColor:`bg-gray-400`,amountColor:`text-gray-500 dark:text-gray-400`,amountPrefix:`-`,label:`Expired`}};function s(e){let t=Math.floor((new Date().getTime()-e.getTime())/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n} min ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);if(i===1)return`yesterday`;if(i<7)return`${i} days ago`;let a=Math.floor(i/7);if(a<4)return`${a}w ago`;let o=Math.floor(i/30);return o<12?`${o}mo ago`:`${Math.floor(i/365)}y ago`}function c(e,t){return`${t}${e.toLocaleString(`en-US`)}`}function l(){return(0,a.jsxs)(`div`,{className:`flex gap-3 py-3`,children:[(0,a.jsx)(`div`,{className:`flex flex-col items-center flex-shrink-0`,children:(0,a.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted animate-pulse`})}),(0,a.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-2`,children:[(0,a.jsx)(`div`,{className:`h-4 w-3/4 bg-muted rounded animate-pulse`}),(0,a.jsx)(`div`,{className:`h-3 w-1/3 bg-muted rounded animate-pulse`})]}),(0,a.jsxs)(`div`,{className:`flex flex-col items-end flex-shrink-0 space-y-2`,children:[(0,a.jsx)(`div`,{className:`h-4 w-16 bg-muted rounded animate-pulse`}),(0,a.jsx)(`div`,{className:`h-3 w-12 bg-muted rounded animate-pulse`})]})]})}function u({activity:e,isLast:n,animated:r,index:i}){let l=o[e.type],u=l.icon,d=new Date(e.timestamp);return(0,a.jsxs)(`div`,{className:t.cn(`relative flex gap-3 py-3`,r&&`animate-feed-item-in`),style:r?{"--stagger-delay":`${i*80}ms`}:void 0,children:[(0,a.jsxs)(`div`,{className:`flex flex-col items-center flex-shrink-0`,children:[(0,a.jsx)(`div`,{className:t.cn(`flex h-8 w-8 items-center justify-center rounded-full flex-shrink-0`,l.bgColor),children:(0,a.jsx)(u,{className:t.cn(`h-4 w-4`,l.color)})}),!n&&(0,a.jsx)(`div`,{className:`w-px flex-1 bg-border mt-1 min-h-[16px]`})]}),(0,a.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium text-foreground leading-tight truncate`,children:e.description}),e.service&&(0,a.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5 truncate`,children:e.service})]}),(0,a.jsxs)(`div`,{className:`flex flex-col items-end flex-shrink-0 pt-1`,children:[(0,a.jsx)(`span`,{className:t.cn(`text-sm font-semibold tabular-nums`,l.amountColor),children:c(e.amount,l.amountPrefix)}),(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground mt-0.5`,children:s(d)})]})]})}function d({message:e}){return(0,a.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,a.jsx)(i.Inbox,{className:`h-12 w-12 text-muted-foreground/50 mb-4`}),(0,a.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e})]})}function f({activities:e,maxItems:o,showLoadMore:s=!1,onLoadMore:c,loading:f=!1,emptyMessage:p=`No recent activity`,animated:m=!1,className:h}){let g=r.useMemo(()=>o&&o>0?e.slice(0,o):e,[e,o]);return f?(0,a.jsx)(`div`,{className:t.cn(`divide-y divide-transparent`,h),children:Array.from({length:4}).map((e,t)=>(0,a.jsx)(l,{},t))}):g.length===0?(0,a.jsx)(`div`,{className:h,children:(0,a.jsx)(d,{message:p})}):(0,a.jsxs)(`div`,{className:t.cn(`relative`,h),children:[(0,a.jsx)(`div`,{children:g.map((e,t)=>(0,a.jsx)(u,{activity:e,isLast:t===g.length-1,animated:m,index:t},e.id))}),s&&c&&(0,a.jsx)(`div`,{className:`flex justify-center pt-2`,children:(0,a.jsxs)(n.Button,{variant:`outline`,size:`sm`,onClick:c,className:`gap-2`,children:[(0,a.jsx)(i.ChevronDown,{className:`h-4 w-4`}),`Load more`]})}),m&&(0,a.jsx)(`style`,{children:`
2
2
  @keyframes feed-item-in {
3
3
  0% {
4
4
  opacity: 0;
@@ -14,4 +14,4 @@
14
14
  animation: feed-item-in 0.35s ease-out forwards;
15
15
  animation-delay: var(--stagger-delay, 0ms);
16
16
  }
17
- `})]})}exports.default=f;
17
+ `})]})}exports.WakaCreditActivityFeed=f,exports.default=f;
@@ -167,4 +167,4 @@ function v({ activities: r, maxItems: i, showLoadMore: o = !1, onLoadMore: s, lo
167
167
  });
168
168
  }
169
169
  //#endregion
170
- export { v as default };
170
+ export { v as WakaCreditActivityFeed, v as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);var a={info:{icon:r.Info,bg:`bg-blue-50 dark:bg-blue-950/40`,border:`border-blue-200 dark:border-blue-800`,text:`text-blue-900 dark:text-blue-100`,iconColor:`text-blue-500 dark:text-blue-400`,buttonBg:`bg-blue-600 hover:bg-blue-700 text-white`,buttonHover:`hover:bg-blue-700`,dismissColor:`text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-200`},warning:{icon:r.AlertTriangle,bg:`bg-amber-50 dark:bg-amber-950/40`,border:`border-amber-200 dark:border-amber-800`,text:`text-amber-900 dark:text-amber-100`,iconColor:`text-amber-500 dark:text-amber-400`,buttonBg:`bg-amber-600 hover:bg-amber-700 text-white`,buttonHover:`hover:bg-amber-700`,dismissColor:`text-amber-500 hover:text-amber-700 dark:text-amber-400 dark:hover:text-amber-200`},critical:{icon:r.AlertCircle,bg:`bg-red-50 dark:bg-red-950/40`,border:`border-red-200 dark:border-red-800`,text:`text-red-900 dark:text-red-100`,iconColor:`text-red-500 dark:text-red-400`,buttonBg:`bg-red-600 hover:bg-red-700 text-white`,buttonHover:`hover:bg-red-700`,dismissColor:`text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200`},depleted:{icon:r.XCircle,bg:`bg-red-100 dark:bg-red-950/60`,border:`border-red-300 dark:border-red-700`,text:`text-red-950 dark:text-red-50`,iconColor:`text-red-700 dark:text-red-300`,buttonBg:`bg-red-800 hover:bg-red-900 text-white`,buttonHover:`hover:bg-red-900`,dismissColor:`text-red-600 hover:text-red-800 dark:text-red-300 dark:hover:text-red-100`}},o={info:e=>`Your credit balance is ${e.toLocaleString()} credits.`,warning:e=>`Low balance! You have ${e.toLocaleString()} credits remaining.`,critical:e=>`Critical! Only ${e.toLocaleString()} credits left. Recharge now.`,depleted:()=>`No credits remaining. Services may be interrupted.`};function s({level:e,balance:n,threshold:s,message:c,onDismiss:l,onTopUp:u,topUpLabel:d=`Top Up`,dismissable:f=!1,className:p}){let m=a[e],h=m.icon,g=c??o[e](n);return(0,i.jsxs)(`div`,{role:`alert`,className:t.cn(`relative flex items-start gap-3 rounded-lg border px-4 py-3`,m.bg,m.border,m.text,p),children:[(0,i.jsx)(h,{className:t.cn(`h-5 w-5 mt-0.5 shrink-0`,m.iconColor),"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`p`,{className:`text-sm font-medium leading-relaxed`,children:g}),s!==void 0&&(0,i.jsxs)(`p`,{className:`text-xs mt-1 opacity-75`,children:[`Threshold: `,s.toLocaleString(),` credits`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[u&&(0,i.jsx)(`button`,{type:`button`,onClick:u,className:t.cn(`inline-flex items-center rounded-md px-3 py-1.5 text-xs font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,m.buttonBg),children:d}),f&&l&&(0,i.jsx)(`button`,{type:`button`,onClick:l,className:t.cn(`inline-flex items-center justify-center rounded-md p-1 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,m.dismissColor),"aria-label":`Dismiss alert`,children:(0,i.jsx)(r.X,{className:`h-4 w-4`})})]})]})}exports.default=s;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={info:{icon:r.Info,bg:`bg-blue-50 dark:bg-blue-950/40`,border:`border-blue-200 dark:border-blue-800`,text:`text-blue-900 dark:text-blue-100`,iconColor:`text-blue-500 dark:text-blue-400`,buttonBg:`bg-blue-600 hover:bg-blue-700 text-white`,buttonHover:`hover:bg-blue-700`,dismissColor:`text-blue-500 hover:text-blue-700 dark:text-blue-400 dark:hover:text-blue-200`},warning:{icon:r.AlertTriangle,bg:`bg-amber-50 dark:bg-amber-950/40`,border:`border-amber-200 dark:border-amber-800`,text:`text-amber-900 dark:text-amber-100`,iconColor:`text-amber-500 dark:text-amber-400`,buttonBg:`bg-amber-600 hover:bg-amber-700 text-white`,buttonHover:`hover:bg-amber-700`,dismissColor:`text-amber-500 hover:text-amber-700 dark:text-amber-400 dark:hover:text-amber-200`},critical:{icon:r.AlertCircle,bg:`bg-red-50 dark:bg-red-950/40`,border:`border-red-200 dark:border-red-800`,text:`text-red-900 dark:text-red-100`,iconColor:`text-red-500 dark:text-red-400`,buttonBg:`bg-red-600 hover:bg-red-700 text-white`,buttonHover:`hover:bg-red-700`,dismissColor:`text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200`},depleted:{icon:r.XCircle,bg:`bg-red-100 dark:bg-red-950/60`,border:`border-red-300 dark:border-red-700`,text:`text-red-950 dark:text-red-50`,iconColor:`text-red-700 dark:text-red-300`,buttonBg:`bg-red-800 hover:bg-red-900 text-white`,buttonHover:`hover:bg-red-900`,dismissColor:`text-red-600 hover:text-red-800 dark:text-red-300 dark:hover:text-red-100`}},o={info:e=>`Your credit balance is ${e.toLocaleString()} credits.`,warning:e=>`Low balance! You have ${e.toLocaleString()} credits remaining.`,critical:e=>`Critical! Only ${e.toLocaleString()} credits left. Recharge now.`,depleted:()=>`No credits remaining. Services may be interrupted.`};function s({level:e,balance:n,threshold:s,message:c,onDismiss:l,onTopUp:u,topUpLabel:d=`Top Up`,dismissable:f=!1,className:p}){let m=a[e],h=m.icon,g=c??o[e](n);return(0,i.jsxs)(`div`,{role:`alert`,className:t.cn(`relative flex items-start gap-3 rounded-lg border px-4 py-3`,m.bg,m.border,m.text,p),children:[(0,i.jsx)(h,{className:t.cn(`h-5 w-5 mt-0.5 shrink-0`,m.iconColor),"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`p`,{className:`text-sm font-medium leading-relaxed`,children:g}),s!==void 0&&(0,i.jsxs)(`p`,{className:`text-xs mt-1 opacity-75`,children:[`Threshold: `,s.toLocaleString(),` credits`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[u&&(0,i.jsx)(`button`,{type:`button`,onClick:u,className:t.cn(`inline-flex items-center rounded-md px-3 py-1.5 text-xs font-semibold transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,m.buttonBg),children:d}),f&&l&&(0,i.jsx)(`button`,{type:`button`,onClick:l,className:t.cn(`inline-flex items-center justify-center rounded-md p-1 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,m.dismissColor),"aria-label":`Dismiss alert`,children:(0,i.jsx)(r.X,{className:`h-4 w-4`})})]})]})}exports.WakaCreditAlert=s,exports.default=s;
@@ -95,4 +95,4 @@ function u({ level: t, balance: n, threshold: r, message: a, onDismiss: u, onTop
95
95
  });
96
96
  }
97
97
  //#endregion
98
- export { u as default };
98
+ export { u as WakaCreditAlert, u as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);var a={warning:100,critical:20},o={sm:{container:`p-3`,label:`text-xs`,value:`text-xl`,currency:`text-xs`,trend:`text-[10px]`,trendIcon:`h-3 w-3`,coinIcon:`h-4 w-4`,coinContainer:`h-8 w-8`},md:{container:`p-4`,label:`text-sm`,value:`text-2xl`,currency:`text-sm`,trend:`text-xs`,trendIcon:`h-4 w-4`,coinIcon:`h-5 w-5`,coinContainer:`h-10 w-10`},lg:{container:`p-6`,label:`text-base`,value:`text-4xl`,currency:`text-base`,trend:`text-sm`,trendIcon:`h-5 w-5`,coinIcon:`h-6 w-6`,coinContainer:`h-12 w-12`}};function s(e,t){return e<=0?{level:`depleted`,color:`text-red-700 dark:text-red-400`,bg:`bg-red-100 dark:bg-red-900/30`,iconColor:`text-red-600`}:e<=t.critical?{level:`critical`,color:`text-red-600 dark:text-red-400`,bg:`bg-red-50 dark:bg-red-900/20`,iconColor:`text-red-500`}:e<=t.warning?{level:`warning`,color:`text-yellow-600 dark:text-yellow-400`,bg:`bg-yellow-50 dark:bg-yellow-900/20`,iconColor:`text-yellow-500`}:{level:`healthy`,color:`text-green-600 dark:text-green-400`,bg:`bg-green-50 dark:bg-green-900/20`,iconColor:`text-green-500`}}function c(e){return e.toLocaleString(`en-US`)}function l(e,t,r=800){let[i,a]=n.useState(e),o=n.useRef(void 0),s=n.useRef(e);return n.useEffect(()=>{if(!t){a(e),s.current=e;return}let n=s.current,i=e-n;if(i===0)return;let c=performance.now(),l=t=>{let u=t-c,d=Math.min(u/r,1);a(n+i*(1-(1-d)**3)),d<1?o.current=requestAnimationFrame(l):(a(e),s.current=e)};return o.current=requestAnimationFrame(l),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t,r]),Math.round(i)}function u({direction:e,value:n,text:a,size:s}){let c=o[s],l=e===`up`?r.TrendingUp:e===`down`?r.TrendingDown:r.Minus;return(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1`,c.trend,e===`up`&&`text-green-600`,e===`down`&&`text-red-600`,e===`neutral`&&`text-muted-foreground`),children:[(0,i.jsx)(l,{className:c.trendIcon}),(0,i.jsx)(`span`,{className:`font-medium`,children:n}),a&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:a})]})}function d({size:e,variant:n}){let r={sm:`h-5 w-20`,md:`h-7 w-24`,lg:`h-9 w-32`};return n===`minimal`?(0,i.jsxs)(`div`,{className:`animate-pulse flex items-baseline gap-2`,children:[(0,i.jsx)(`div`,{className:t.cn(`bg-muted rounded`,r[e])}),(0,i.jsx)(`div`,{className:`h-3 w-12 bg-muted rounded`})]}):n===`compact`?(0,i.jsxs)(`div`,{className:`animate-pulse flex items-center gap-3`,children:[(0,i.jsx)(`div`,{className:`h-8 w-8 bg-muted rounded-lg`}),(0,i.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,i.jsx)(`div`,{className:`h-3 w-16 bg-muted rounded`}),(0,i.jsx)(`div`,{className:t.cn(`bg-muted rounded`,r[e])})]})]}):(0,i.jsx)(`div`,{className:`animate-pulse`,children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsx)(`div`,{className:`h-3 w-20 bg-muted rounded`}),(0,i.jsx)(`div`,{className:t.cn(`bg-muted rounded`,r[e])}),(0,i.jsx)(`div`,{className:`h-3 w-24 bg-muted rounded`})]}),(0,i.jsx)(`div`,{className:`h-10 w-10 bg-muted rounded-lg`})]})})}function f({balance:e,currency:n=`credits`,trend:f,thresholds:p=a,variant:m=`card`,size:h=`md`,animated:g=!0,loading:_=!1,formatValue:v=c,className:y}){let b=o[h],x=s(e,p),S=l(e,g);return _?(0,i.jsx)(`div`,{className:t.cn(m===`card`&&`rounded-lg border bg-card shadow-sm`,m===`card`&&b.container,m===`compact`&&b.container,y),children:(0,i.jsx)(d,{size:h,variant:m})}):m===`minimal`?(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col`,y),children:[(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight tabular-nums`,b.value,x.color),children:v(S)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground font-medium`,b.currency),children:n})]}),f&&(0,i.jsx)(u,{direction:f.direction,value:f.value,text:f.text,size:h})]}):m===`compact`?(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-3`,b.container,y),children:[(0,i.jsx)(`div`,{className:t.cn(`rounded-lg flex items-center justify-center flex-shrink-0`,b.coinContainer,x.bg),children:(0,i.jsx)(r.Coins,{className:t.cn(b.coinIcon,x.iconColor)})}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground font-medium`,b.label),children:n}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight tabular-nums`,b.value,x.color),children:v(S)}),f&&(0,i.jsx)(u,{direction:f.direction,value:f.value,text:f.text,size:h})]})]})]}):(0,i.jsx)(`div`,{className:t.cn(`rounded-lg border bg-card shadow-sm`,b.container,y),children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground font-medium`,b.label),children:`Credit Balance`}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2 mt-1`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight tabular-nums`,b.value,x.color),children:v(S)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground font-medium`,b.currency),children:n})]}),f&&(0,i.jsx)(`div`,{className:`mt-2`,children:(0,i.jsx)(u,{direction:f.direction,value:f.value,text:f.text,size:h})})]}),(0,i.jsx)(`div`,{className:t.cn(`rounded-lg flex items-center justify-center flex-shrink-0`,b.coinContainer,x.bg),children:(0,i.jsx)(r.Coins,{className:t.cn(b.coinIcon,x.iconColor)})})]})})}exports.default=f;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={warning:100,critical:20},o={sm:{container:`p-3`,label:`text-xs`,value:`text-xl`,currency:`text-xs`,trend:`text-[10px]`,trendIcon:`h-3 w-3`,coinIcon:`h-4 w-4`,coinContainer:`h-8 w-8`},md:{container:`p-4`,label:`text-sm`,value:`text-2xl`,currency:`text-sm`,trend:`text-xs`,trendIcon:`h-4 w-4`,coinIcon:`h-5 w-5`,coinContainer:`h-10 w-10`},lg:{container:`p-6`,label:`text-base`,value:`text-4xl`,currency:`text-base`,trend:`text-sm`,trendIcon:`h-5 w-5`,coinIcon:`h-6 w-6`,coinContainer:`h-12 w-12`}};function s(e,t){return e<=0?{level:`depleted`,color:`text-red-700 dark:text-red-400`,bg:`bg-red-100 dark:bg-red-900/30`,iconColor:`text-red-600`}:e<=t.critical?{level:`critical`,color:`text-red-600 dark:text-red-400`,bg:`bg-red-50 dark:bg-red-900/20`,iconColor:`text-red-500`}:e<=t.warning?{level:`warning`,color:`text-yellow-600 dark:text-yellow-400`,bg:`bg-yellow-50 dark:bg-yellow-900/20`,iconColor:`text-yellow-500`}:{level:`healthy`,color:`text-green-600 dark:text-green-400`,bg:`bg-green-50 dark:bg-green-900/20`,iconColor:`text-green-500`}}function c(e){return e.toLocaleString(`en-US`)}function l(e,t,r=800){let[i,a]=n.useState(e),o=n.useRef(void 0),s=n.useRef(e);return n.useEffect(()=>{if(!t){a(e),s.current=e;return}let n=s.current,i=e-n;if(i===0)return;let c=performance.now(),l=t=>{let u=t-c,d=Math.min(u/r,1),f=1-(1-d)**3,p=n+i*f;a(p),d<1?o.current=requestAnimationFrame(l):(a(e),s.current=e)};return o.current=requestAnimationFrame(l),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t,r]),Math.round(i)}function u({direction:e,value:n,text:a,size:s}){let c=o[s],l=e===`up`?r.TrendingUp:e===`down`?r.TrendingDown:r.Minus;return(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1`,c.trend,e===`up`&&`text-green-600`,e===`down`&&`text-red-600`,e===`neutral`&&`text-muted-foreground`),children:[(0,i.jsx)(l,{className:c.trendIcon}),(0,i.jsx)(`span`,{className:`font-medium`,children:n}),a&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:a})]})}function d({size:e,variant:n}){let r={sm:`h-5 w-20`,md:`h-7 w-24`,lg:`h-9 w-32`};return n===`minimal`?(0,i.jsxs)(`div`,{className:`animate-pulse flex items-baseline gap-2`,children:[(0,i.jsx)(`div`,{className:t.cn(`bg-muted rounded`,r[e])}),(0,i.jsx)(`div`,{className:`h-3 w-12 bg-muted rounded`})]}):n===`compact`?(0,i.jsxs)(`div`,{className:`animate-pulse flex items-center gap-3`,children:[(0,i.jsx)(`div`,{className:`h-8 w-8 bg-muted rounded-lg`}),(0,i.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,i.jsx)(`div`,{className:`h-3 w-16 bg-muted rounded`}),(0,i.jsx)(`div`,{className:t.cn(`bg-muted rounded`,r[e])})]})]}):(0,i.jsx)(`div`,{className:`animate-pulse`,children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsx)(`div`,{className:`h-3 w-20 bg-muted rounded`}),(0,i.jsx)(`div`,{className:t.cn(`bg-muted rounded`,r[e])}),(0,i.jsx)(`div`,{className:`h-3 w-24 bg-muted rounded`})]}),(0,i.jsx)(`div`,{className:`h-10 w-10 bg-muted rounded-lg`})]})})}function f({balance:e,currency:n=`credits`,trend:f,thresholds:p=a,variant:m=`card`,size:h=`md`,animated:g=!0,loading:_=!1,formatValue:v=c,className:y}){let b=o[h],x=s(e,p),S=l(e,g);return _?(0,i.jsx)(`div`,{className:t.cn(m===`card`&&`rounded-lg border bg-card shadow-sm`,m===`card`&&b.container,m===`compact`&&b.container,y),children:(0,i.jsx)(d,{size:h,variant:m})}):m===`minimal`?(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col`,y),children:[(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight tabular-nums`,b.value,x.color),children:v(S)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground font-medium`,b.currency),children:n})]}),f&&(0,i.jsx)(u,{direction:f.direction,value:f.value,text:f.text,size:h})]}):m===`compact`?(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-3`,b.container,y),children:[(0,i.jsx)(`div`,{className:t.cn(`rounded-lg flex items-center justify-center flex-shrink-0`,b.coinContainer,x.bg),children:(0,i.jsx)(r.Coins,{className:t.cn(b.coinIcon,x.iconColor)})}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground font-medium`,b.label),children:n}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight tabular-nums`,b.value,x.color),children:v(S)}),f&&(0,i.jsx)(u,{direction:f.direction,value:f.value,text:f.text,size:h})]})]})]}):(0,i.jsx)(`div`,{className:t.cn(`rounded-lg border bg-card shadow-sm`,b.container,y),children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground font-medium`,b.label),children:`Credit Balance`}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-2 mt-1`,children:[(0,i.jsx)(`span`,{className:t.cn(`font-bold tracking-tight tabular-nums`,b.value,x.color),children:v(S)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground font-medium`,b.currency),children:n})]}),f&&(0,i.jsx)(`div`,{className:`mt-2`,children:(0,i.jsx)(u,{direction:f.direction,value:f.value,text:f.text,size:h})})]}),(0,i.jsx)(`div`,{className:t.cn(`rounded-lg flex items-center justify-center flex-shrink-0`,b.coinContainer,x.bg),children:(0,i.jsx)(r.Coins,{className:t.cn(b.coinIcon,x.iconColor)})})]})})}exports.WakaCreditBalance=f,exports.default=f;
@@ -76,8 +76,8 @@ function f(e, n, r = 800) {
76
76
  let t = s.current, i = e - t;
77
77
  if (i === 0) return;
78
78
  let c = performance.now(), l = (n) => {
79
- let u = n - c, d = Math.min(u / r, 1);
80
- a(t + i * (1 - (1 - d) ** 3)), d < 1 ? o.current = requestAnimationFrame(l) : (a(e), s.current = e);
79
+ let u = n - c, d = Math.min(u / r, 1), f = 1 - (1 - d) ** 3, p = t + i * f;
80
+ a(p), d < 1 ? o.current = requestAnimationFrame(l) : (a(e), s.current = e);
81
81
  };
82
82
  return o.current = requestAnimationFrame(l), () => {
83
83
  o.current && cancelAnimationFrame(o.current);
@@ -222,4 +222,4 @@ function h({ balance: t, currency: r = "credits", trend: i, thresholds: a = c, v
222
222
  });
223
223
  }
224
224
  //#endregion
225
- export { h as default };
225
+ export { h as WakaCreditBalance, h as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`),i=require(`recharts`);var a=[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`,`hsl(var(--primary))`,`hsl(var(--info))`,`hsl(var(--warning))`,`hsl(var(--success))`,`hsl(var(--destructive))`];function o(e){return e.map((e,t)=>({...e,color:e.color||a[t%a.length]}))}function s(e){return e.reduce((e,t)=>e+t.value,0)}function c(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toLocaleString()}function l({active:e,payload:n,total:i,formatter:a}){if(!e||!n||!n.length)return null;let o=n[0],s=i>0?(o.value/i*100).toFixed(1):`0`;return(0,r.jsxs)(`div`,{className:t.cn(`px-3 py-2 text-sm rounded-lg shadow-lg`,`bg-foreground text-background`,`pointer-events-none min-w-[140px]`),children:[(0,r.jsxs)(`div`,{className:`font-semibold mb-1 flex items-center gap-2`,children:[(0,r.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full flex-shrink-0`,style:{backgroundColor:o.payload.color}}),o.name]}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Value:`}),(0,r.jsx)(`span`,{className:`font-medium`,children:a(o.value)})]}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Share:`}),(0,r.jsxs)(`span`,{children:[s,`%`]})]})]})}function u({cx:e,cy:t,midAngle:n,innerRadius:i,outerRadius:a,percent:o}){let s=Math.PI/180,c=i+(a-i)*.5+20,l=e+c*Math.cos(-n*s),u=t+c*Math.sin(-n*s);return o<.05?null:(0,r.jsx)(`text`,{x:l,y:u,fill:`currentColor`,textAnchor:l>e?`start`:`end`,dominantBaseline:`central`,className:`text-xs fill-foreground`,children:`${(o*100).toFixed(0)}%`})}function d({viewBox:e,total:t,formatter:n}){if(!e)return null;let{cx:i,cy:a}=e;return(0,r.jsxs)(`g`,{children:[(0,r.jsx)(`text`,{x:i,y:a-10,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-xs fill-muted-foreground`,children:`Total`}),(0,r.jsx)(`text`,{x:i,y:a+12,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-base font-bold fill-foreground`,children:n(t)})]})}function f({data:e,total:t,height:n,animated:a,showPercentages:o,showLegend:s,formatter:c,onSegmentClick:d}){return(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:n,children:(0,r.jsxs)(i.PieChart,{children:[(0,r.jsx)(i.Pie,{data:e,dataKey:`value`,nameKey:`name`,cx:`50%`,cy:`50%`,outerRadius:n/2-40,isAnimationActive:a,animationDuration:800,label:o?u:!1,labelLine:!1,onClick:d?(t,n)=>d(e[n]):void 0,style:d?{cursor:`pointer`}:void 0,children:e.map(e=>(0,r.jsx)(i.Cell,{fill:e.color},e.id))}),(0,r.jsx)(i.Tooltip,{content:(0,r.jsx)(l,{total:t,formatter:c})}),s&&(0,r.jsx)(i.Legend,{verticalAlign:`bottom`,formatter:e=>(0,r.jsx)(`span`,{className:`text-sm text-foreground`,children:e})})]})})}function p({data:e,total:t,height:n,animated:a,showPercentages:o,showLegend:s,formatter:c,onSegmentClick:f}){let p=n/2-40;return(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:n,children:(0,r.jsxs)(i.PieChart,{children:[(0,r.jsxs)(i.Pie,{data:e,dataKey:`value`,nameKey:`name`,cx:`50%`,cy:`50%`,innerRadius:p*.55,outerRadius:p,isAnimationActive:a,animationDuration:800,paddingAngle:2,label:o?u:!1,labelLine:!1,onClick:f?(t,n)=>f(e[n]):void 0,style:f?{cursor:`pointer`}:void 0,children:[e.map(e=>(0,r.jsx)(i.Cell,{fill:e.color},e.id)),(0,r.jsx)(d,{total:t,formatter:c})]}),(0,r.jsx)(i.Tooltip,{content:(0,r.jsx)(l,{total:t,formatter:c})}),s&&(0,r.jsx)(i.Legend,{verticalAlign:`bottom`,formatter:e=>(0,r.jsx)(`span`,{className:`text-sm text-foreground`,children:e})})]})})}function m({data:e,total:t,height:n,animated:a,showPercentages:o,showLegend:s,formatter:c,onSegmentClick:u}){return(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:n,children:(0,r.jsxs)(i.BarChart,{data:e.map(e=>({...e,percentage:t>0?(e.value/t*100).toFixed(1):`0`})),layout:`vertical`,barCategoryGap:`20%`,children:[(0,r.jsx)(i.XAxis,{type:`number`,tickFormatter:e=>o?`${t>0?(e/t*100).toFixed(0):0}%`:c(e),axisLine:!1,tickLine:!1,tick:{className:`text-xs fill-muted-foreground`}}),(0,r.jsx)(i.YAxis,{dataKey:`name`,type:`category`,width:100,axisLine:!1,tickLine:!1,tick:{className:`text-sm fill-foreground`}}),(0,r.jsx)(i.Tooltip,{content:(0,r.jsx)(l,{total:t,formatter:c})}),s&&(0,r.jsx)(i.Legend,{verticalAlign:`bottom`,formatter:e=>(0,r.jsx)(`span`,{className:`text-sm text-foreground`,children:e})}),(0,r.jsx)(i.Bar,{dataKey:`value`,name:`Credits`,radius:[0,4,4,0],isAnimationActive:a,animationDuration:800,barSize:24,onClick:u?(t,n)=>u(e[n]):void 0,style:u?{cursor:`pointer`}:void 0,children:e.map(e=>(0,r.jsx)(i.Cell,{fill:e.color},e.id))})]})})}function h({data:e,variant:i=`pie`,showPercentages:a=!1,showLegend:l=!0,height:u=300,animated:d=!0,onSegmentClick:h,formatValue:g,className:_}){let v=n.useMemo(()=>o(e),[e]),y={data:v,total:n.useMemo(()=>s(v),[v]),height:u,animated:d,showPercentages:a,showLegend:l,formatter:g||c,onSegmentClick:h};return(0,r.jsxs)(`div`,{className:t.cn(`w-full`,_),children:[i===`pie`&&(0,r.jsx)(f,{...y}),i===`donut`&&(0,r.jsx)(p,{...y}),i===`bar`&&(0,r.jsx)(m,{...y})]})}exports.default=h;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime"),i=require("recharts");var a=[`hsl(var(--chart-1))`,`hsl(var(--chart-2))`,`hsl(var(--chart-3))`,`hsl(var(--chart-4))`,`hsl(var(--chart-5))`,`hsl(var(--primary))`,`hsl(var(--info))`,`hsl(var(--warning))`,`hsl(var(--success))`,`hsl(var(--destructive))`];function o(e){return e.map((e,t)=>({...e,color:e.color||a[t%a.length]}))}function s(e){return e.reduce((e,t)=>e+t.value,0)}function c(e){return e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:e.toLocaleString()}function l({active:e,payload:n,total:i,formatter:a}){if(!e||!n||!n.length)return null;let o=n[0],s=i>0?(o.value/i*100).toFixed(1):`0`;return(0,r.jsxs)(`div`,{className:t.cn(`px-3 py-2 text-sm rounded-lg shadow-lg`,`bg-foreground text-background`,`pointer-events-none min-w-[140px]`),children:[(0,r.jsxs)(`div`,{className:`font-semibold mb-1 flex items-center gap-2`,children:[(0,r.jsx)(`span`,{className:`w-2.5 h-2.5 rounded-full flex-shrink-0`,style:{backgroundColor:o.payload.color}}),o.name]}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Value:`}),(0,r.jsx)(`span`,{className:`font-medium`,children:a(o.value)})]}),(0,r.jsxs)(`div`,{className:`flex justify-between gap-4`,children:[(0,r.jsx)(`span`,{className:`opacity-70`,children:`Share:`}),(0,r.jsxs)(`span`,{children:[s,`%`]})]})]})}function u({cx:e,cy:t,midAngle:n,innerRadius:i,outerRadius:a,percent:o}){let s=Math.PI/180,c=i+(a-i)*.5+20,l=e+c*Math.cos(-n*s),u=t+c*Math.sin(-n*s);return o<.05?null:(0,r.jsx)(`text`,{x:l,y:u,fill:`currentColor`,textAnchor:l>e?`start`:`end`,dominantBaseline:`central`,className:`text-xs fill-foreground`,children:`${(o*100).toFixed(0)}%`})}function d({viewBox:e,total:t,formatter:n}){if(!e)return null;let{cx:i,cy:a}=e;return(0,r.jsxs)(`g`,{children:[(0,r.jsx)(`text`,{x:i,y:a-10,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-xs fill-muted-foreground`,children:`Total`}),(0,r.jsx)(`text`,{x:i,y:a+12,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-base font-bold fill-foreground`,children:n(t)})]})}function f({data:e,total:t,height:n,animated:a,showPercentages:o,showLegend:s,formatter:c,onSegmentClick:d}){return(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:n,children:(0,r.jsxs)(i.PieChart,{children:[(0,r.jsx)(i.Pie,{data:e,dataKey:`value`,nameKey:`name`,cx:`50%`,cy:`50%`,outerRadius:n/2-40,isAnimationActive:a,animationDuration:800,label:o?u:!1,labelLine:!1,onClick:d?(t,n)=>d(e[n]):void 0,style:d?{cursor:`pointer`}:void 0,children:e.map(e=>(0,r.jsx)(i.Cell,{fill:e.color},e.id))}),(0,r.jsx)(i.Tooltip,{content:(0,r.jsx)(l,{total:t,formatter:c})}),s&&(0,r.jsx)(i.Legend,{verticalAlign:`bottom`,formatter:e=>(0,r.jsx)(`span`,{className:`text-sm text-foreground`,children:e})})]})})}function p({data:e,total:t,height:n,animated:a,showPercentages:o,showLegend:s,formatter:c,onSegmentClick:f}){let p=n/2-40;return(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:n,children:(0,r.jsxs)(i.PieChart,{children:[(0,r.jsxs)(i.Pie,{data:e,dataKey:`value`,nameKey:`name`,cx:`50%`,cy:`50%`,innerRadius:p*.55,outerRadius:p,isAnimationActive:a,animationDuration:800,paddingAngle:2,label:o?u:!1,labelLine:!1,onClick:f?(t,n)=>f(e[n]):void 0,style:f?{cursor:`pointer`}:void 0,children:[e.map(e=>(0,r.jsx)(i.Cell,{fill:e.color},e.id)),(0,r.jsx)(d,{total:t,formatter:c})]}),(0,r.jsx)(i.Tooltip,{content:(0,r.jsx)(l,{total:t,formatter:c})}),s&&(0,r.jsx)(i.Legend,{verticalAlign:`bottom`,formatter:e=>(0,r.jsx)(`span`,{className:`text-sm text-foreground`,children:e})})]})})}function m({data:e,total:t,height:n,animated:a,showPercentages:o,showLegend:s,formatter:c,onSegmentClick:u}){return(0,r.jsx)(i.ResponsiveContainer,{width:`100%`,height:n,children:(0,r.jsxs)(i.BarChart,{data:e.map(e=>({...e,percentage:t>0?(e.value/t*100).toFixed(1):`0`})),layout:`vertical`,barCategoryGap:`20%`,children:[(0,r.jsx)(i.XAxis,{type:`number`,tickFormatter:e=>o?`${t>0?(e/t*100).toFixed(0):0}%`:c(e),axisLine:!1,tickLine:!1,tick:{className:`text-xs fill-muted-foreground`}}),(0,r.jsx)(i.YAxis,{dataKey:`name`,type:`category`,width:100,axisLine:!1,tickLine:!1,tick:{className:`text-sm fill-foreground`}}),(0,r.jsx)(i.Tooltip,{content:(0,r.jsx)(l,{total:t,formatter:c})}),s&&(0,r.jsx)(i.Legend,{verticalAlign:`bottom`,formatter:e=>(0,r.jsx)(`span`,{className:`text-sm text-foreground`,children:e})}),(0,r.jsx)(i.Bar,{dataKey:`value`,name:`Credits`,radius:[0,4,4,0],isAnimationActive:a,animationDuration:800,barSize:24,onClick:u?(t,n)=>u(e[n]):void 0,style:u?{cursor:`pointer`}:void 0,children:e.map(e=>(0,r.jsx)(i.Cell,{fill:e.color},e.id))})]})})}function h({data:e,variant:i=`pie`,showPercentages:a=!1,showLegend:l=!0,height:u=300,animated:d=!0,onSegmentClick:h,formatValue:g,className:_}){let v=n.useMemo(()=>o(e),[e]),y={data:v,total:n.useMemo(()=>s(v),[v]),height:u,animated:d,showPercentages:a,showLegend:l,formatter:g||c,onSegmentClick:h};return(0,r.jsxs)(`div`,{className:t.cn(`w-full`,_),children:[i===`pie`&&(0,r.jsx)(f,{...y}),i===`donut`&&(0,r.jsx)(p,{...y}),i===`bar`&&(0,r.jsx)(m,{...y})]})}exports.WakaCreditBreakdown=h,exports.default=h;
@@ -246,4 +246,4 @@ function w({ data: i, variant: a = "pie", showPercentages: o = !1, showLegend: s
246
246
  });
247
247
  }
248
248
  //#endregion
249
- export { w as default };
249
+ export { w as WakaCreditBreakdown, w as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);function a(e){if(e.length===0)return 0;let t=e.slice(-7);return t.reduce((e,t)=>e+t.value,0)/t.length}function o(e,t){return t<=0?1/0:Math.floor(e/t)}function s(e){if(!isFinite(e)||e<=0)return null;let t=new Date;return t.setDate(t.getDate()+e),t}function c(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function l(e){return e<7?{stroke:`#ef4444`,text:`text-red-600`,bg:`bg-red-100 dark:bg-red-950`,label:`Critical`}:e<=30?{stroke:`#f59e0b`,text:`text-amber-600`,bg:`bg-amber-100 dark:bg-amber-950`,label:`Warning`}:{stroke:`#22c55e`,text:`text-green-600`,bg:`bg-green-100 dark:bg-green-950`,label:`Healthy`}}function u({dailyUsage:e,avgBurnRate:r,width:a,height:o,showProjection:s,projectionDays:c,statusColor:l,animated:u}){let[d,f]=n.useState(0),[p,m]=n.useState(!u),h=n.useRef(null),g=a-4,_=o-4,v=e.length+(s?c:0),y=e.map(e=>e.value),b=s?Array.from({length:c},()=>r):[],x=[...y,...b],S=Math.min(...x,0),C=Math.max(...x,1)-S||1,w=e.map((e,t)=>`${2+t/(v-1)*g},${2+_-(e.value-S)/C*_}`),T=[];if(s&&e.length>0){let t=e.length-1,n=2+t/(v-1)*g,i=2+_-(e[t].value-S)/C*_;T.push(`${n},${i}`);for(let t=1;t<=c;t++){let n=2+(e.length-1+t)/(v-1)*g,i=2+_-(r-S)/C*_;T.push(`${n},${i}`)}}return n.useEffect(()=>{h.current&&f(h.current.getTotalLength())},[e]),n.useEffect(()=>{if(u&&d>0){let e=setTimeout(()=>m(!0),50);return()=>clearTimeout(e)}},[u,d]),e.length<2?(0,i.jsx)(`svg`,{width:a,height:o,children:(0,i.jsx)(`text`,{x:a/2,y:o/2,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-xs fill-muted-foreground`,children:`Not enough data`})}):(0,i.jsxs)(`svg`,{width:a,height:o,className:`overflow-visible`,children:[(0,i.jsx)(`polyline`,{ref:h,points:w.join(` `),fill:`none`,stroke:l,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:u&&d>0?{strokeDasharray:d,strokeDashoffset:p?0:d,transition:`stroke-dashoffset 1s ease-out`}:void 0}),s&&T.length>1&&(0,i.jsx)(`polyline`,{points:T.join(` `),fill:`none`,stroke:l,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeDasharray:`4,3`,opacity:`0.5`,className:t.cn(u&&`transition-opacity duration-500`,u&&(p?`opacity-50`:`opacity-0`))}),e.length>0&&(0,i.jsx)(`circle`,{cx:parseFloat(w[w.length-1].split(`,`)[0]),cy:parseFloat(w[w.length-1].split(`,`)[1]),r:`2.5`,fill:l,stroke:`white`,strokeWidth:`1`,className:t.cn(u&&`transition-opacity duration-500`,u&&(p?`opacity-100`:`opacity-0`))})]})}function d({dailyUsage:e,avgBurnRate:n,daysRemaining:r,width:a,height:o,showProjection:s,projectionDays:c,animated:d,className:f}){let p=l(r);return(0,i.jsxs)(`div`,{className:t.cn(`inline-flex items-center gap-2`,f),children:[(0,i.jsx)(u,{dailyUsage:e,avgBurnRate:n,width:a,height:o,showProjection:s,projectionDays:c,statusColor:p.stroke,animated:d}),(0,i.jsx)(`span`,{className:t.cn(`text-xs font-medium tabular-nums`,p.text),children:isFinite(r)?`${r}d`:`--`})]})}function f({dailyUsage:e,balance:n,avgBurnRate:a,daysRemaining:o,depletionDate:s,width:d,height:f,showProjection:p,projectionDays:m,animated:h,className:g}){let _=l(o);return(0,i.jsxs)(`div`,{className:t.cn(`rounded-lg border bg-card p-4 space-y-4`,g),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-muted-foreground`,children:[(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Credit Burn Rate`})]}),(0,i.jsx)(`div`,{className:t.cn(`px-2 py-0.5 rounded-full text-xs font-medium`,_.bg,_.text),children:_.label})]}),(0,i.jsx)(`div`,{className:`flex justify-center`,children:(0,i.jsx)(u,{dailyUsage:e,avgBurnRate:a,width:d,height:f,showProjection:p,projectionDays:m,statusColor:_.stroke,animated:h})}),(0,i.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Burn Rate`}),(0,i.jsx)(`div`,{className:`text-lg font-bold tabular-nums`,children:a.toFixed(1)}),(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`credits/day`})]}),(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),(0,i.jsx)(`span`,{children:`Days Left`})]}),(0,i.jsx)(`div`,{className:t.cn(`text-lg font-bold tabular-nums`,_.text),children:isFinite(o)?o:`--`}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[n.toLocaleString(),` credits`]})]}),(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Depleted By`}),(0,i.jsx)(`div`,{className:t.cn(`text-sm font-semibold`,_.text),children:s?c(s):`--`}),o<7&&isFinite(o)&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-red-600`,children:[(0,i.jsx)(r.AlertTriangle,{className:`h-3 w-3`}),(0,i.jsx)(`span`,{children:`Critical`})]})]})]})]})}function p({dailyUsage:e,balance:r,showProjection:c=!1,projectionDays:l=7,width:u=120,height:p=32,animated:m=!0,variant:h=`sparkline`,className:g}){let _=n.useMemo(()=>a(e),[e]),v=n.useMemo(()=>o(r,_),[r,_]),y=n.useMemo(()=>s(v),[v]);return!e||e.length===0?(0,i.jsx)(`div`,{className:t.cn(`inline-flex items-center gap-2 text-muted-foreground text-sm`,g),children:`No data`}):h===`card`?(0,i.jsx)(f,{dailyUsage:e,balance:r,avgBurnRate:_,daysRemaining:v,depletionDate:y,width:Math.max(u,200),height:Math.max(p,48),showProjection:c,projectionDays:l,animated:m,className:g}):(0,i.jsx)(d,{dailyUsage:e,avgBurnRate:_,daysRemaining:v,width:u,height:p,showProjection:c,projectionDays:l,animated:m,className:g})}exports.default=p;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");function a(e){if(e.length===0)return 0;let t=e.slice(-7);return t.reduce((e,t)=>e+t.value,0)/t.length}function o(e,t){return t<=0?1/0:Math.floor(e/t)}function s(e){if(!isFinite(e)||e<=0)return null;let t=new Date;return t.setDate(t.getDate()+e),t}function c(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`,year:`numeric`})}function l(e){return e<7?{stroke:`#ef4444`,text:`text-red-600`,bg:`bg-red-100 dark:bg-red-950`,label:`Critical`}:e<=30?{stroke:`#f59e0b`,text:`text-amber-600`,bg:`bg-amber-100 dark:bg-amber-950`,label:`Warning`}:{stroke:`#22c55e`,text:`text-green-600`,bg:`bg-green-100 dark:bg-green-950`,label:`Healthy`}}function u({dailyUsage:e,avgBurnRate:r,width:a,height:o,showProjection:s,projectionDays:c,statusColor:l,animated:u}){let[d,f]=n.useState(0),[p,m]=n.useState(!u),h=n.useRef(null),g=a-4,_=o-4,v=e.length+(s?c:0),y=e.map(e=>e.value),b=s?Array.from({length:c},()=>r):[],x=[...y,...b],S=Math.min(...x,0),C=Math.max(...x,1)-S||1,w=e.map((e,t)=>`${2+t/(v-1)*g},${2+_-(e.value-S)/C*_}`),T=[];if(s&&e.length>0){let t=e.length-1,n=2+t/(v-1)*g,i=2+_-(e[t].value-S)/C*_;T.push(`${n},${i}`);for(let t=1;t<=c;t++){let n=2+(e.length-1+t)/(v-1)*g,i=2+_-(r-S)/C*_;T.push(`${n},${i}`)}}return n.useEffect(()=>{h.current&&f(h.current.getTotalLength())},[e]),n.useEffect(()=>{if(u&&d>0){let e=setTimeout(()=>m(!0),50);return()=>clearTimeout(e)}},[u,d]),e.length<2?(0,i.jsx)(`svg`,{width:a,height:o,children:(0,i.jsx)(`text`,{x:a/2,y:o/2,textAnchor:`middle`,dominantBaseline:`middle`,className:`text-xs fill-muted-foreground`,children:`Not enough data`})}):(0,i.jsxs)(`svg`,{width:a,height:o,className:`overflow-visible`,children:[(0,i.jsx)(`polyline`,{ref:h,points:w.join(` `),fill:`none`,stroke:l,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,style:u&&d>0?{strokeDasharray:d,strokeDashoffset:p?0:d,transition:`stroke-dashoffset 1s ease-out`}:void 0}),s&&T.length>1&&(0,i.jsx)(`polyline`,{points:T.join(` `),fill:`none`,stroke:l,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeDasharray:`4,3`,opacity:`0.5`,className:t.cn(u&&`transition-opacity duration-500`,u&&(p?`opacity-50`:`opacity-0`))}),e.length>0&&(0,i.jsx)(`circle`,{cx:parseFloat(w[w.length-1].split(`,`)[0]),cy:parseFloat(w[w.length-1].split(`,`)[1]),r:`2.5`,fill:l,stroke:`white`,strokeWidth:`1`,className:t.cn(u&&`transition-opacity duration-500`,u&&(p?`opacity-100`:`opacity-0`))})]})}function d({dailyUsage:e,avgBurnRate:n,daysRemaining:r,width:a,height:o,showProjection:s,projectionDays:c,animated:d,className:f}){let p=l(r);return(0,i.jsxs)(`div`,{className:t.cn(`inline-flex items-center gap-2`,f),children:[(0,i.jsx)(u,{dailyUsage:e,avgBurnRate:n,width:a,height:o,showProjection:s,projectionDays:c,statusColor:p.stroke,animated:d}),(0,i.jsx)(`span`,{className:t.cn(`text-xs font-medium tabular-nums`,p.text),children:isFinite(r)?`${r}d`:`--`})]})}function f({dailyUsage:e,balance:n,avgBurnRate:a,daysRemaining:o,depletionDate:s,width:d,height:f,showProjection:p,projectionDays:m,animated:h,className:g}){let _=l(o);return(0,i.jsxs)(`div`,{className:t.cn(`rounded-lg border bg-card p-4 space-y-4`,g),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium text-muted-foreground`,children:[(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Credit Burn Rate`})]}),(0,i.jsx)(`div`,{className:t.cn(`px-2 py-0.5 rounded-full text-xs font-medium`,_.bg,_.text),children:_.label})]}),(0,i.jsx)(`div`,{className:`flex justify-center`,children:(0,i.jsx)(u,{dailyUsage:e,avgBurnRate:a,width:d,height:f,showProjection:p,projectionDays:m,statusColor:_.stroke,animated:h})}),(0,i.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Burn Rate`}),(0,i.jsx)(`div`,{className:`text-lg font-bold tabular-nums`,children:a.toFixed(1)}),(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`credits/day`})]}),(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),(0,i.jsx)(`span`,{children:`Days Left`})]}),(0,i.jsx)(`div`,{className:t.cn(`text-lg font-bold tabular-nums`,_.text),children:isFinite(o)?o:`--`}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[n.toLocaleString(),` credits`]})]}),(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Depleted By`}),(0,i.jsx)(`div`,{className:t.cn(`text-sm font-semibold`,_.text),children:s?c(s):`--`}),o<7&&isFinite(o)&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-xs text-red-600`,children:[(0,i.jsx)(r.AlertTriangle,{className:`h-3 w-3`}),(0,i.jsx)(`span`,{children:`Critical`})]})]})]})]})}function p({dailyUsage:e,balance:r,showProjection:c=!1,projectionDays:l=7,width:u=120,height:p=32,animated:m=!0,variant:h=`sparkline`,className:g}){let _=n.useMemo(()=>a(e),[e]),v=n.useMemo(()=>o(r,_),[r,_]),y=n.useMemo(()=>s(v),[v]);return!e||e.length===0?(0,i.jsx)(`div`,{className:t.cn(`inline-flex items-center gap-2 text-muted-foreground text-sm`,g),children:`No data`}):h===`card`?(0,i.jsx)(f,{dailyUsage:e,balance:r,avgBurnRate:_,daysRemaining:v,depletionDate:y,width:Math.max(u,200),height:Math.max(p,48),showProjection:c,projectionDays:l,animated:m,className:g}):(0,i.jsx)(d,{dailyUsage:e,avgBurnRate:_,daysRemaining:v,width:u,height:p,showProjection:c,projectionDays:l,animated:m,className:g})}exports.WakaCreditBurnRate=p,exports.default=p;
@@ -249,4 +249,4 @@ function h({ dailyUsage: n, balance: r, showProjection: i = !1, projectionDays:
249
249
  });
250
250
  }
251
251
  //#endregion
252
- export { h as default };
252
+ export { h as WakaCreditBurnRate, h as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../input/index.cjs.js`);let r=require(`react`);r=e.__toESM(r);let i=require(`lucide-react`),a=require(`react/jsx-runtime`);var o=[{type:`amex`,pattern:/^3[47]/,lengths:[15],cvvLength:4},{type:`visa`,pattern:/^4/,lengths:[13,16,19],cvvLength:3},{type:`mastercard`,pattern:/^(5[1-5]|2[2-7])/,lengths:[16],cvvLength:3},{type:`discover`,pattern:/^(6011|65|64[4-9])/,lengths:[16,19],cvvLength:3},{type:`diners`,pattern:/^(36|38|30[0-5])/,lengths:[14],cvvLength:3},{type:`jcb`,pattern:/^35/,lengths:[16,19],cvvLength:3},{type:`unionpay`,pattern:/^62/,lengths:[16,17,18,19],cvvLength:3},{type:`maestro`,pattern:/^(50|5[6-9]|6[0-9])/,lengths:[12,13,14,15,16,17,18,19],cvvLength:3}];function s(e){let t=e.replace(/\D/g,``);for(let e of o)if(e.pattern.test(t))return e.type;return`unknown`}function c(e){return o.find(t=>t.type===e)||{type:`unknown`,pattern:/.*/,lengths:[16],cvvLength:3}}function l(e){let t=e.replace(/\D/g,``);if(t.length===0)return!1;let n=0,r=!1;for(let e=t.length-1;e>=0;e--){let i=parseInt(t[e],10);r&&(i*=2,i>9&&(i-=9)),n+=i,r=!r}return n%10==0}function u(e,t){let n=e.replace(/\D/g,``);if(t===`amex`)return[n.slice(0,4),n.slice(4,10),n.slice(10,15)].filter(Boolean).join(` `);let r=[];for(let e=0;e<n.length;e+=4)r.push(n.slice(e,e+4));return r.join(` `)}function d(e){let t=e.replace(/\D/g,``);return t.length>=2?`${t.slice(0,2)}/${t.slice(2,4)}`:t}function f(e){let t=e.match(/^(\d{2})\/(\d{2})$/);return t?{month:parseInt(t[1],10),year:parseInt(t[2],10)+2e3}:null}function p(e){let t=f(e);if(!t)return!1;let{month:n,year:r}=t;if(n<1||n>12)return!1;let i=new Date,a=i.getFullYear(),o=i.getMonth()+1;return!(r<a||r===a&&n<o)}function m({type:e,className:n}){let r=t.cn(`w-8 h-6`,n);switch(e){case`visa`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#1A1F71`}),(0,a.jsx)(`path`,{d:`M20.5 21.5L22.5 10.5H25.5L23.5 21.5H20.5Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M32.5 10.7C31.9 10.5 31 10.2 29.8 10.2C26.8 10.2 24.7 11.7 24.7 13.9C24.7 15.5 26.2 16.4 27.3 16.9C28.5 17.5 28.9 17.9 28.9 18.4C28.9 19.2 27.9 19.5 27 19.5C25.8 19.5 25.1 19.3 24.1 18.9L23.7 18.7L23.3 21.3C24 21.6 25.3 21.8 26.6 21.8C29.8 21.8 31.8 20.3 31.9 18C31.9 16.7 31.1 15.7 29.4 14.9C28.4 14.4 27.8 14 27.8 13.5C27.8 13 28.4 12.5 29.5 12.5C30.5 12.5 31.2 12.7 31.7 12.9L32 13L32.5 10.7Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M37.5 10.5H35.2C34.5 10.5 34 10.7 33.7 11.4L29.5 21.5H32.7L33.3 19.8H37.2L37.6 21.5H40.5L37.5 10.5ZM34.2 17.5C34.5 16.7 35.5 14 35.5 14C35.5 14 35.8 13.2 36 12.7L36.2 13.9C36.2 13.9 36.8 16.7 36.9 17.5H34.2Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M18.5 10.5L15.6 18.1L15.3 16.8C14.7 15 13 13 11 12L13.7 21.5H17L21.9 10.5H18.5Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M13 10.5H8.1L8 10.7C11.8 11.6 14.3 14 15.2 16.9L14.2 11.5C14.1 10.8 13.6 10.5 13 10.5Z`,fill:`#F9A51A`})]});case`mastercard`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#000000`}),(0,a.jsx)(`circle`,{cx:`18`,cy:`16`,r:`8`,fill:`#EB001B`}),(0,a.jsx)(`circle`,{cx:`30`,cy:`16`,r:`8`,fill:`#F79E1B`}),(0,a.jsx)(`path`,{d:`M24 10.8C25.8 12.2 27 14.5 27 16C27 17.5 25.8 19.8 24 21.2C22.2 19.8 21 17.5 21 16C21 14.5 22.2 12.2 24 10.8Z`,fill:`#FF5F00`})]});case`amex`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#006FCF`}),(0,a.jsx)(`path`,{d:`M8 16H12L13 13.5L14 16H18L15.5 19.5H18V21H8V19.5H10.5L8 16Z`,fill:`white`}),(0,a.jsx)(`text`,{x:`20`,y:`20`,fill:`white`,fontSize:`8`,fontWeight:`bold`,fontFamily:`Arial`,children:`AMEX`})]});case`discover`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#FFFFFF`,stroke:`#E5E5E5`}),(0,a.jsx)(`circle`,{cx:`30`,cy:`16`,r:`6`,fill:`#FF6600`}),(0,a.jsx)(`text`,{x:`8`,y:`20`,fill:`#000000`,fontSize:`7`,fontWeight:`bold`,fontFamily:`Arial`,children:`DISCOVER`})]});case`diners`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#FFFFFF`,stroke:`#E5E5E5`}),(0,a.jsx)(`circle`,{cx:`24`,cy:`16`,r:`8`,fill:`#0079BE`}),(0,a.jsx)(`path`,{d:`M19 16C19 13.2 20.5 10.8 22.7 9.6V22.4C20.5 21.2 19 18.8 19 16Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M25.3 9.6C27.5 10.8 29 13.2 29 16C29 18.8 27.5 21.2 25.3 22.4V9.6Z`,fill:`white`})]});case`jcb`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#FFFFFF`,stroke:`#E5E5E5`}),(0,a.jsx)(`rect`,{x:`8`,y:`8`,width:`10`,height:`16`,rx:`2`,fill:`#0066CC`}),(0,a.jsx)(`rect`,{x:`19`,y:`8`,width:`10`,height:`16`,rx:`2`,fill:`#E30613`}),(0,a.jsx)(`rect`,{x:`30`,y:`8`,width:`10`,height:`16`,rx:`2`,fill:`#00A651`})]});case`unionpay`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#D71F27`}),(0,a.jsx)(`text`,{x:`10`,y:`20`,fill:`white`,fontSize:`8`,fontWeight:`bold`,fontFamily:`Arial`,children:`UnionPay`})]});case`maestro`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#000000`}),(0,a.jsx)(`circle`,{cx:`18`,cy:`16`,r:`8`,fill:`#0066CC`}),(0,a.jsx)(`circle`,{cx:`30`,cy:`16`,r:`8`,fill:`#CC0000`}),(0,a.jsx)(`path`,{d:`M24 10C26 11.5 27.5 13.5 27.5 16C27.5 18.5 26 20.5 24 22C22 20.5 20.5 18.5 20.5 16C20.5 13.5 22 11.5 24 10Z`,fill:`#6C4899`})]});default:return(0,a.jsx)(i.CreditCard,{className:t.cn(`w-5 h-5 text-muted-foreground`,n)})}}function h({cardData:e,isFlipped:n,className:r}){return(0,a.jsx)(`div`,{className:t.cn(`perspective-1000`,r),children:(0,a.jsxs)(`div`,{className:t.cn(`relative w-full h-48 transition-transform duration-700 transform-style-3d`,n&&`rotate-y-180`),style:{transformStyle:`preserve-3d`,transform:n?`rotateY(180deg)`:`rotateY(0deg)`},children:[(0,a.jsxs)(`div`,{className:t.cn(`absolute inset-0 w-full h-full rounded-xl p-6 text-white backface-hidden`,`bg-gradient-to-br shadow-xl`,e.cardType===`visa`&&`from-blue-600 to-blue-800`,e.cardType===`mastercard`&&`from-red-600 to-orange-600`,e.cardType===`amex`&&`from-cyan-600 to-cyan-800`,e.cardType===`discover`&&`from-orange-500 to-orange-700`,e.cardType===`unknown`&&`from-gray-600 to-gray-800`),style:{backfaceVisibility:`hidden`},children:[(0,a.jsxs)(`div`,{className:`flex justify-between items-start mb-8`,children:[(0,a.jsx)(`div`,{className:`w-12 h-8 bg-gradient-to-br from-yellow-300 to-yellow-500 rounded opacity-90`}),(0,a.jsx)(m,{type:e.cardType,className:`w-12 h-8`})]}),(0,a.jsx)(`div`,{className:`font-mono text-xl tracking-wider mb-6`,children:e.cardNumber||`#### #### #### ####`}),(0,a.jsxs)(`div`,{className:`flex justify-between items-end`,children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`div`,{className:`text-xs uppercase opacity-70 mb-1`,children:`Card Holder`}),(0,a.jsx)(`div`,{className:`font-medium tracking-wide uppercase`,children:e.cardHolder||`YOUR NAME`})]}),(0,a.jsxs)(`div`,{className:`text-right`,children:[(0,a.jsx)(`div`,{className:`text-xs uppercase opacity-70 mb-1`,children:`Expires`}),(0,a.jsx)(`div`,{className:`font-mono`,children:e.expiry||`MM/YY`})]})]})]}),(0,a.jsxs)(`div`,{className:t.cn(`absolute inset-0 w-full h-full rounded-xl text-white backface-hidden rotate-y-180`,`bg-gradient-to-br shadow-xl`,e.cardType===`visa`&&`from-blue-700 to-blue-900`,e.cardType===`mastercard`&&`from-red-700 to-orange-700`,e.cardType===`amex`&&`from-cyan-700 to-cyan-900`,e.cardType===`discover`&&`from-orange-600 to-orange-800`,e.cardType===`unknown`&&`from-gray-700 to-gray-900`),style:{backfaceVisibility:`hidden`,transform:`rotateY(180deg)`},children:[(0,a.jsx)(`div`,{className:`w-full h-12 bg-black/40 mt-6`}),(0,a.jsx)(`div`,{className:`px-6 mt-6`,children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,a.jsx)(`div`,{className:`flex-1 h-10 bg-white/20 rounded flex items-center justify-end pr-4`,children:(0,a.jsx)(`span`,{className:`font-mono text-lg italic`,children:e.cvv||`###`})}),(0,a.jsx)(`div`,{className:`text-xs opacity-70`,children:`CVV`})]})}),(0,a.jsx)(`div`,{className:`absolute bottom-4 right-4`,children:(0,a.jsx)(m,{type:e.cardType,className:`w-10 h-6 opacity-50`})})]})]})})}function g(e={}){let{initialValue:t,validateOnChange:n=!0,errorMessages:i}=e,[a,o]=r.useState({cardNumber:t?.cardNumber||``,rawCardNumber:t?.rawCardNumber||``,cardHolder:t?.cardHolder||``,expiry:t?.expiry||``,cvv:t?.cvv||``,cardType:t?.cardType||`unknown`}),[f,m]=r.useState({}),[h,g]=r.useState({cardNumber:!1,cardHolder:!1,expiry:!1,cvv:!1}),_=r.useCallback(e=>{let t={},n=c(e.cardType);return e.rawCardNumber?n.lengths.includes(e.rawCardNumber.length)?l(e.rawCardNumber)||(t.cardNumber=i?.luhn||`Invalid card number`):t.cardNumber=i?.cardNumber||`Invalid card number length`:t.cardNumber=i?.cardNumber||`Card number is required`,e.cardHolder.trim()?e.cardHolder.trim().length<2&&(t.cardHolder=i?.cardHolder||`Name is too short`):t.cardHolder=i?.cardHolder||`Cardholder name is required`,e.expiry?p(e.expiry)||(t.expiry=i?.expiry||`Invalid or expired date`):t.expiry=i?.expiry||`Expiry date is required`,e.cvv?e.cvv.length!==n.cvvLength&&(t.cvv=i?.cvv||`CVV must be ${n.cvvLength} digits`):t.cvv=i?.cvv||`CVV is required`,t},[i]),v=r.useCallback(e=>{let t=e.replace(/\D/g,``).slice(0,19),r=s(t),i=u(t,r),c={...a,cardNumber:i,rawCardNumber:t,cardType:r};o(c),g(e=>({...e,cardNumber:!0})),n&&m(_(c))},[a,_,n]),y=r.useCallback(e=>{let t={...a,cardHolder:e.toUpperCase()};o(t),g(e=>({...e,cardHolder:!0})),n&&m(_(t))},[a,_,n]),b=r.useCallback(e=>{let t=d(e.replace(/\D/g,``).slice(0,4)),r={...a,expiry:t};o(r),g(e=>({...e,expiry:!0})),n&&m(_(r))},[a,_,n]),x=r.useCallback(e=>{let t=c(a.cardType),r=e.replace(/\D/g,``).slice(0,t.cvvLength),i={...a,cvv:r};o(i),g(e=>({...e,cvv:!0})),n&&m(_(i))},[a,_,n]),S=r.useCallback(()=>{o({cardNumber:``,rawCardNumber:``,cardHolder:``,expiry:``,cvv:``,cardType:`unknown`}),m({}),g({cardNumber:!1,cardHolder:!1,expiry:!1,cvv:!1})},[]),C=r.useMemo(()=>{let e=_(a);return Object.keys(e).length===0},[a,_]);return{cardData:a,errors:r.useMemo(()=>{let e={};return h.cardNumber&&f.cardNumber&&(e.cardNumber=f.cardNumber),h.cardHolder&&f.cardHolder&&(e.cardHolder=f.cardHolder),h.expiry&&f.expiry&&(e.expiry=f.expiry),h.cvv&&f.cvv&&(e.cvv=f.cvv),e},[f,h]),touched:h,isValid:C,updateCardNumber:v,updateCardHolder:y,updateExpiry:b,updateCvv:x,validate:()=>_(a),reset:S,setTouched:g}}function _({value:e,onChange:o,onValidationChange:l,disabled:u=!1,readOnly:d=!1,singleFieldMode:f=!1,showCardPreview:p=!1,showCardTypeIcon:_=!0,placeholders:v,labels:y,errorMessages:b,size:x=`md`,className:S,id:C,name:w,autoFocus:T=!1}){let{cardData:E,errors:D,isValid:O,updateCardNumber:k,updateCardHolder:A,updateExpiry:j,updateCvv:M}=g({initialValue:e,errorMessages:b}),[N,P]=r.useState(!1),[F,I]=r.useState(!1),[L,R]=r.useState(null),z=r.useRef(null),B=r.useRef(null),V=r.useRef(null),H=r.useRef(null);r.useEffect(()=>{o?.(E)},[E,o]),r.useEffect(()=>{l?.(O,D)},[O,D,l]),r.useEffect(()=>{T&&z.current&&z.current.focus()},[T]);let U=e=>{k(e.target.value);let t=c(s(e.target.value.replace(/\D/g,``))),n=e.target.value.replace(/\D/g,``);t.lengths.includes(n.length)&&V.current&&V.current.focus()},W=e=>{j(e.target.value),e.target.value.replace(/\D/g,``).length===4&&H.current&&H.current.focus()},G=()=>{R(`cvv`),I(!0)},K=()=>{R(null),I(!1)},q={sm:`h-8 text-xs`,md:`h-9 text-sm`,lg:`h-10 text-base`},J={sm:`text-xs`,md:`text-sm`,lg:`text-base`},Y=({children:e,label:n,error:r,htmlFor:o})=>(0,a.jsxs)(`div`,{className:`space-y-1.5`,children:[n&&(0,a.jsx)(`label`,{htmlFor:o,className:t.cn(`block font-medium text-foreground`,J[x]),children:n}),e,r&&(0,a.jsxs)(`div`,{className:`flex items-center gap-1 text-destructive`,children:[(0,a.jsx)(i.AlertCircle,{className:`h-3 w-3`}),(0,a.jsx)(`span`,{className:`text-xs`,children:r})]})]});return f?(0,a.jsx)(`div`,{className:t.cn(`space-y-4`,S),children:(0,a.jsx)(Y,{label:y?.cardNumber||`Card Details`,error:D.cardNumber,htmlFor:C?`${C}-combined`:void 0,children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[_&&(0,a.jsx)(m,{type:E.cardType,className:`flex-shrink-0`}),(0,a.jsxs)(`div`,{className:`flex-1 flex gap-2`,children:[(0,a.jsx)(n.Input,{ref:z,id:C?`${C}-combined`:void 0,name:w?`${w}-number`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-number`,placeholder:v?.cardNumber||`Card number`,value:E.cardNumber,onChange:U,disabled:u,readOnly:d,className:t.cn(q[x],`flex-1`,D.cardNumber&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsx)(n.Input,{ref:V,name:w?`${w}-expiry`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-exp`,placeholder:v?.expiry||`MM/YY`,value:E.expiry,onChange:W,disabled:u,readOnly:d,className:t.cn(q[x],`w-20`,D.expiry&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsxs)(`div`,{className:`relative w-16`,children:[(0,a.jsx)(n.Input,{ref:H,name:w?`${w}-cvv`:void 0,type:N?`text`:`password`,inputMode:`numeric`,autoComplete:`cc-csc`,placeholder:v?.cvv||`CVV`,value:E.cvv,onChange:e=>M(e.target.value),onFocus:G,onBlur:K,disabled:u,readOnly:d,className:t.cn(q[x],`pr-8`,D.cvv&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>P(!N),className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,tabIndex:-1,children:N?(0,a.jsx)(i.EyeOff,{className:`h-4 w-4`}):(0,a.jsx)(i.Eye,{className:`h-4 w-4`})})]})]})]})})}):(0,a.jsxs)(`div`,{className:t.cn(`space-y-4`,S),children:[p&&(0,a.jsx)(h,{cardData:E,isFlipped:F,className:`mb-6`}),(0,a.jsxs)(`div`,{className:`grid gap-4`,children:[(0,a.jsx)(Y,{label:y?.cardNumber||`Card Number`,error:D.cardNumber,htmlFor:C?`${C}-number`:void 0,children:(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(n.Input,{ref:z,id:C?`${C}-number`:void 0,name:w?`${w}-number`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-number`,placeholder:v?.cardNumber||`1234 5678 9012 3456`,value:E.cardNumber,onChange:U,onFocus:()=>R(`cardNumber`),onBlur:()=>R(null),disabled:u,readOnly:d,className:t.cn(q[x],`pr-12`,D.cardNumber&&`border-destructive focus-visible:ring-destructive`)}),_&&(0,a.jsx)(`div`,{className:`absolute right-3 top-1/2 -translate-y-1/2`,children:(0,a.jsx)(m,{type:E.cardType})}),E.rawCardNumber&&!D.cardNumber&&(0,a.jsx)(i.Check,{className:`absolute right-12 top-1/2 -translate-y-1/2 h-4 w-4 text-green-500`})]})}),(0,a.jsx)(Y,{label:y?.cardHolder||`Cardholder Name`,error:D.cardHolder,htmlFor:C?`${C}-holder`:void 0,children:(0,a.jsx)(n.Input,{ref:B,id:C?`${C}-holder`:void 0,name:w?`${w}-holder`:void 0,type:`text`,autoComplete:`cc-name`,placeholder:v?.cardHolder||`JOHN DOE`,value:E.cardHolder,onChange:e=>A(e.target.value),onFocus:()=>R(`cardHolder`),onBlur:()=>R(null),disabled:u,readOnly:d,className:t.cn(q[x],D.cardHolder&&`border-destructive focus-visible:ring-destructive`)})}),(0,a.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,a.jsx)(Y,{label:y?.expiry||`Expiry Date`,error:D.expiry,htmlFor:C?`${C}-expiry`:void 0,children:(0,a.jsx)(n.Input,{ref:V,id:C?`${C}-expiry`:void 0,name:w?`${w}-expiry`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-exp`,placeholder:v?.expiry||`MM/YY`,value:E.expiry,onChange:W,onFocus:()=>R(`expiry`),onBlur:()=>R(null),disabled:u,readOnly:d,className:t.cn(q[x],D.expiry&&`border-destructive focus-visible:ring-destructive`)})}),(0,a.jsx)(Y,{label:y?.cvv||`CVV`,error:D.cvv,htmlFor:C?`${C}-cvv`:void 0,children:(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(n.Input,{ref:H,id:C?`${C}-cvv`:void 0,name:w?`${w}-cvv`:void 0,type:N?`text`:`password`,inputMode:`numeric`,autoComplete:`cc-csc`,placeholder:v?.cvv??(E.cardType===`amex`?`1234`:`123`),value:E.cvv,onChange:e=>M(e.target.value),onFocus:G,onBlur:K,disabled:u,readOnly:d,className:t.cn(q[x],`pr-10`,D.cvv&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>P(!N),className:`absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors`,tabIndex:-1,"aria-label":N?`Hide CVV`:`Show CVV`,children:N?(0,a.jsx)(i.EyeOff,{className:`h-4 w-4`}):(0,a.jsx)(i.Eye,{className:`h-4 w-4`})})]})})]})]}),O&&E.rawCardNumber&&(0,a.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-green-600`,children:[(0,a.jsx)(i.Check,{className:`h-4 w-4`}),(0,a.jsx)(`span`,{children:`Card details are valid`})]})]})}exports.default=_,exports.useCreditCardInput=g;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../input/index.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("lucide-react"),a=require("react/jsx-runtime");var o=[{type:`amex`,pattern:/^3[47]/,lengths:[15],cvvLength:4},{type:`visa`,pattern:/^4/,lengths:[13,16,19],cvvLength:3},{type:`mastercard`,pattern:/^(5[1-5]|2[2-7])/,lengths:[16],cvvLength:3},{type:`discover`,pattern:/^(6011|65|64[4-9])/,lengths:[16,19],cvvLength:3},{type:`diners`,pattern:/^(36|38|30[0-5])/,lengths:[14],cvvLength:3},{type:`jcb`,pattern:/^35/,lengths:[16,19],cvvLength:3},{type:`unionpay`,pattern:/^62/,lengths:[16,17,18,19],cvvLength:3},{type:`maestro`,pattern:/^(50|5[6-9]|6[0-9])/,lengths:[12,13,14,15,16,17,18,19],cvvLength:3}];function s(e){let t=e.replace(/\D/g,``);for(let e of o)if(e.pattern.test(t))return e.type;return`unknown`}function c(e){return o.find(t=>t.type===e)||{type:`unknown`,pattern:/.*/,lengths:[16],cvvLength:3}}function l(e){let t=e.replace(/\D/g,``);if(t.length===0)return!1;let n=0,r=!1;for(let e=t.length-1;e>=0;e--){let i=parseInt(t[e],10);r&&(i*=2,i>9&&(i-=9)),n+=i,r=!r}return n%10==0}function u(e,t){let n=e.replace(/\D/g,``);if(t===`amex`)return[n.slice(0,4),n.slice(4,10),n.slice(10,15)].filter(Boolean).join(` `);let r=[];for(let e=0;e<n.length;e+=4)r.push(n.slice(e,e+4));return r.join(` `)}function d(e){let t=e.replace(/\D/g,``);return t.length>=2?`${t.slice(0,2)}/${t.slice(2,4)}`:t}function f(e){let t=e.match(/^(\d{2})\/(\d{2})$/);return t?{month:parseInt(t[1],10),year:parseInt(t[2],10)+2e3}:null}function p(e){let t=f(e);if(!t)return!1;let{month:n,year:r}=t;if(n<1||n>12)return!1;let i=new Date,a=i.getFullYear(),o=i.getMonth()+1;return!(r<a||r===a&&n<o)}function m({type:e,className:n}){let r=t.cn(`w-8 h-6`,n);switch(e){case`visa`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#1A1F71`}),(0,a.jsx)(`path`,{d:`M20.5 21.5L22.5 10.5H25.5L23.5 21.5H20.5Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M32.5 10.7C31.9 10.5 31 10.2 29.8 10.2C26.8 10.2 24.7 11.7 24.7 13.9C24.7 15.5 26.2 16.4 27.3 16.9C28.5 17.5 28.9 17.9 28.9 18.4C28.9 19.2 27.9 19.5 27 19.5C25.8 19.5 25.1 19.3 24.1 18.9L23.7 18.7L23.3 21.3C24 21.6 25.3 21.8 26.6 21.8C29.8 21.8 31.8 20.3 31.9 18C31.9 16.7 31.1 15.7 29.4 14.9C28.4 14.4 27.8 14 27.8 13.5C27.8 13 28.4 12.5 29.5 12.5C30.5 12.5 31.2 12.7 31.7 12.9L32 13L32.5 10.7Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M37.5 10.5H35.2C34.5 10.5 34 10.7 33.7 11.4L29.5 21.5H32.7L33.3 19.8H37.2L37.6 21.5H40.5L37.5 10.5ZM34.2 17.5C34.5 16.7 35.5 14 35.5 14C35.5 14 35.8 13.2 36 12.7L36.2 13.9C36.2 13.9 36.8 16.7 36.9 17.5H34.2Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M18.5 10.5L15.6 18.1L15.3 16.8C14.7 15 13 13 11 12L13.7 21.5H17L21.9 10.5H18.5Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M13 10.5H8.1L8 10.7C11.8 11.6 14.3 14 15.2 16.9L14.2 11.5C14.1 10.8 13.6 10.5 13 10.5Z`,fill:`#F9A51A`})]});case`mastercard`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#000000`}),(0,a.jsx)(`circle`,{cx:`18`,cy:`16`,r:`8`,fill:`#EB001B`}),(0,a.jsx)(`circle`,{cx:`30`,cy:`16`,r:`8`,fill:`#F79E1B`}),(0,a.jsx)(`path`,{d:`M24 10.8C25.8 12.2 27 14.5 27 16C27 17.5 25.8 19.8 24 21.2C22.2 19.8 21 17.5 21 16C21 14.5 22.2 12.2 24 10.8Z`,fill:`#FF5F00`})]});case`amex`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#006FCF`}),(0,a.jsx)(`path`,{d:`M8 16H12L13 13.5L14 16H18L15.5 19.5H18V21H8V19.5H10.5L8 16Z`,fill:`white`}),(0,a.jsx)(`text`,{x:`20`,y:`20`,fill:`white`,fontSize:`8`,fontWeight:`bold`,fontFamily:`Arial`,children:`AMEX`})]});case`discover`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#FFFFFF`,stroke:`#E5E5E5`}),(0,a.jsx)(`circle`,{cx:`30`,cy:`16`,r:`6`,fill:`#FF6600`}),(0,a.jsx)(`text`,{x:`8`,y:`20`,fill:`#000000`,fontSize:`7`,fontWeight:`bold`,fontFamily:`Arial`,children:`DISCOVER`})]});case`diners`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#FFFFFF`,stroke:`#E5E5E5`}),(0,a.jsx)(`circle`,{cx:`24`,cy:`16`,r:`8`,fill:`#0079BE`}),(0,a.jsx)(`path`,{d:`M19 16C19 13.2 20.5 10.8 22.7 9.6V22.4C20.5 21.2 19 18.8 19 16Z`,fill:`white`}),(0,a.jsx)(`path`,{d:`M25.3 9.6C27.5 10.8 29 13.2 29 16C29 18.8 27.5 21.2 25.3 22.4V9.6Z`,fill:`white`})]});case`jcb`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#FFFFFF`,stroke:`#E5E5E5`}),(0,a.jsx)(`rect`,{x:`8`,y:`8`,width:`10`,height:`16`,rx:`2`,fill:`#0066CC`}),(0,a.jsx)(`rect`,{x:`19`,y:`8`,width:`10`,height:`16`,rx:`2`,fill:`#E30613`}),(0,a.jsx)(`rect`,{x:`30`,y:`8`,width:`10`,height:`16`,rx:`2`,fill:`#00A651`})]});case`unionpay`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#D71F27`}),(0,a.jsx)(`text`,{x:`10`,y:`20`,fill:`white`,fontSize:`8`,fontWeight:`bold`,fontFamily:`Arial`,children:`UnionPay`})]});case`maestro`:return(0,a.jsxs)(`svg`,{className:r,viewBox:`0 0 48 32`,fill:`none`,xmlns:`http://www.w3.org/2000/svg`,children:[(0,a.jsx)(`rect`,{width:`48`,height:`32`,rx:`4`,fill:`#000000`}),(0,a.jsx)(`circle`,{cx:`18`,cy:`16`,r:`8`,fill:`#0066CC`}),(0,a.jsx)(`circle`,{cx:`30`,cy:`16`,r:`8`,fill:`#CC0000`}),(0,a.jsx)(`path`,{d:`M24 10C26 11.5 27.5 13.5 27.5 16C27.5 18.5 26 20.5 24 22C22 20.5 20.5 18.5 20.5 16C20.5 13.5 22 11.5 24 10Z`,fill:`#6C4899`})]});default:return(0,a.jsx)(i.CreditCard,{className:t.cn(`w-5 h-5 text-muted-foreground`,n)})}}function h({cardData:e,isFlipped:n,className:r}){return(0,a.jsx)(`div`,{className:t.cn(`perspective-1000`,r),children:(0,a.jsxs)(`div`,{className:t.cn(`relative w-full h-48 transition-transform duration-700 transform-style-3d`,n&&`rotate-y-180`),style:{transformStyle:`preserve-3d`,transform:n?`rotateY(180deg)`:`rotateY(0deg)`},children:[(0,a.jsxs)(`div`,{className:t.cn(`absolute inset-0 w-full h-full rounded-xl p-6 text-white backface-hidden`,`bg-gradient-to-br shadow-xl`,e.cardType===`visa`&&`from-blue-600 to-blue-800`,e.cardType===`mastercard`&&`from-red-600 to-orange-600`,e.cardType===`amex`&&`from-cyan-600 to-cyan-800`,e.cardType===`discover`&&`from-orange-500 to-orange-700`,e.cardType===`unknown`&&`from-gray-600 to-gray-800`),style:{backfaceVisibility:`hidden`},children:[(0,a.jsxs)(`div`,{className:`flex justify-between items-start mb-8`,children:[(0,a.jsx)(`div`,{className:`w-12 h-8 bg-gradient-to-br from-yellow-300 to-yellow-500 rounded opacity-90`}),(0,a.jsx)(m,{type:e.cardType,className:`w-12 h-8`})]}),(0,a.jsx)(`div`,{className:`font-mono text-xl tracking-wider mb-6`,children:e.cardNumber||`#### #### #### ####`}),(0,a.jsxs)(`div`,{className:`flex justify-between items-end`,children:[(0,a.jsxs)(`div`,{children:[(0,a.jsx)(`div`,{className:`text-xs uppercase opacity-70 mb-1`,children:`Card Holder`}),(0,a.jsx)(`div`,{className:`font-medium tracking-wide uppercase`,children:e.cardHolder||`YOUR NAME`})]}),(0,a.jsxs)(`div`,{className:`text-right`,children:[(0,a.jsx)(`div`,{className:`text-xs uppercase opacity-70 mb-1`,children:`Expires`}),(0,a.jsx)(`div`,{className:`font-mono`,children:e.expiry||`MM/YY`})]})]})]}),(0,a.jsxs)(`div`,{className:t.cn(`absolute inset-0 w-full h-full rounded-xl text-white backface-hidden rotate-y-180`,`bg-gradient-to-br shadow-xl`,e.cardType===`visa`&&`from-blue-700 to-blue-900`,e.cardType===`mastercard`&&`from-red-700 to-orange-700`,e.cardType===`amex`&&`from-cyan-700 to-cyan-900`,e.cardType===`discover`&&`from-orange-600 to-orange-800`,e.cardType===`unknown`&&`from-gray-700 to-gray-900`),style:{backfaceVisibility:`hidden`,transform:`rotateY(180deg)`},children:[(0,a.jsx)(`div`,{className:`w-full h-12 bg-black/40 mt-6`}),(0,a.jsx)(`div`,{className:`px-6 mt-6`,children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,a.jsx)(`div`,{className:`flex-1 h-10 bg-white/20 rounded flex items-center justify-end pr-4`,children:(0,a.jsx)(`span`,{className:`font-mono text-lg italic`,children:e.cvv||`###`})}),(0,a.jsx)(`div`,{className:`text-xs opacity-70`,children:`CVV`})]})}),(0,a.jsx)(`div`,{className:`absolute bottom-4 right-4`,children:(0,a.jsx)(m,{type:e.cardType,className:`w-10 h-6 opacity-50`})})]})]})})}function g(e={}){let{initialValue:t,validateOnChange:n=!0,errorMessages:i}=e,[a,o]=r.useState({cardNumber:t?.cardNumber||``,rawCardNumber:t?.rawCardNumber||``,cardHolder:t?.cardHolder||``,expiry:t?.expiry||``,cvv:t?.cvv||``,cardType:t?.cardType||`unknown`}),[f,m]=r.useState({}),[h,g]=r.useState({cardNumber:!1,cardHolder:!1,expiry:!1,cvv:!1}),_=r.useCallback(e=>{let t={},n=c(e.cardType);return e.rawCardNumber?n.lengths.includes(e.rawCardNumber.length)?l(e.rawCardNumber)||(t.cardNumber=i?.luhn||`Invalid card number`):t.cardNumber=i?.cardNumber||`Invalid card number length`:t.cardNumber=i?.cardNumber||`Card number is required`,e.cardHolder.trim()?e.cardHolder.trim().length<2&&(t.cardHolder=i?.cardHolder||`Name is too short`):t.cardHolder=i?.cardHolder||`Cardholder name is required`,e.expiry?p(e.expiry)||(t.expiry=i?.expiry||`Invalid or expired date`):t.expiry=i?.expiry||`Expiry date is required`,e.cvv?e.cvv.length!==n.cvvLength&&(t.cvv=i?.cvv||`CVV must be ${n.cvvLength} digits`):t.cvv=i?.cvv||`CVV is required`,t},[i]),v=r.useCallback(e=>{let t=e.replace(/\D/g,``).slice(0,19),r=s(t),i=u(t,r),c={...a,cardNumber:i,rawCardNumber:t,cardType:r};o(c),g(e=>({...e,cardNumber:!0})),n&&m(_(c))},[a,_,n]),y=r.useCallback(e=>{let t={...a,cardHolder:e.toUpperCase()};o(t),g(e=>({...e,cardHolder:!0})),n&&m(_(t))},[a,_,n]),b=r.useCallback(e=>{let t=d(e.replace(/\D/g,``).slice(0,4)),r={...a,expiry:t};o(r),g(e=>({...e,expiry:!0})),n&&m(_(r))},[a,_,n]),x=r.useCallback(e=>{let t=c(a.cardType),r=e.replace(/\D/g,``).slice(0,t.cvvLength),i={...a,cvv:r};o(i),g(e=>({...e,cvv:!0})),n&&m(_(i))},[a,_,n]),S=r.useCallback(()=>{o({cardNumber:``,rawCardNumber:``,cardHolder:``,expiry:``,cvv:``,cardType:`unknown`}),m({}),g({cardNumber:!1,cardHolder:!1,expiry:!1,cvv:!1})},[]),C=r.useMemo(()=>{let e=_(a);return Object.keys(e).length===0},[a,_]);return{cardData:a,errors:r.useMemo(()=>{let e={};return h.cardNumber&&f.cardNumber&&(e.cardNumber=f.cardNumber),h.cardHolder&&f.cardHolder&&(e.cardHolder=f.cardHolder),h.expiry&&f.expiry&&(e.expiry=f.expiry),h.cvv&&f.cvv&&(e.cvv=f.cvv),e},[f,h]),touched:h,isValid:C,updateCardNumber:v,updateCardHolder:y,updateExpiry:b,updateCvv:x,validate:()=>_(a),reset:S,setTouched:g}}function _({value:e,onChange:o,onValidationChange:l,disabled:u=!1,readOnly:d=!1,singleFieldMode:f=!1,showCardPreview:p=!1,showCardTypeIcon:_=!0,placeholders:v,labels:y,errorMessages:b,size:x=`md`,className:S,id:C,name:w,autoFocus:T=!1}){let{cardData:E,errors:D,isValid:O,updateCardNumber:k,updateCardHolder:A,updateExpiry:j,updateCvv:M}=g({initialValue:e,errorMessages:b}),[N,P]=r.useState(!1),[F,I]=r.useState(!1),[L,R]=r.useState(null),z=r.useRef(null),B=r.useRef(null),V=r.useRef(null),H=r.useRef(null);r.useEffect(()=>{o?.(E)},[E,o]),r.useEffect(()=>{l?.(O,D)},[O,D,l]),r.useEffect(()=>{T&&z.current&&z.current.focus()},[T]);let U=e=>{k(e.target.value);let t=c(s(e.target.value.replace(/\D/g,``))),n=e.target.value.replace(/\D/g,``);t.lengths.includes(n.length)&&V.current&&V.current.focus()},W=e=>{j(e.target.value),e.target.value.replace(/\D/g,``).length===4&&H.current&&H.current.focus()},G=()=>{R(`cvv`),I(!0)},K=()=>{R(null),I(!1)},q={sm:`h-8 text-xs`,md:`h-9 text-sm`,lg:`h-10 text-base`},J={sm:`text-xs`,md:`text-sm`,lg:`text-base`},Y=({children:e,label:n,error:r,htmlFor:o})=>(0,a.jsxs)(`div`,{className:`space-y-1.5`,children:[n&&(0,a.jsx)(`label`,{htmlFor:o,className:t.cn(`block font-medium text-foreground`,J[x]),children:n}),e,r&&(0,a.jsxs)(`div`,{className:`flex items-center gap-1 text-destructive`,children:[(0,a.jsx)(i.AlertCircle,{className:`h-3 w-3`}),(0,a.jsx)(`span`,{className:`text-xs`,children:r})]})]});return f?(0,a.jsx)(`div`,{className:t.cn(`space-y-4`,S),children:(0,a.jsx)(Y,{label:y?.cardNumber||`Card Details`,error:D.cardNumber,htmlFor:C?`${C}-combined`:void 0,children:(0,a.jsxs)(`div`,{className:`flex items-center gap-2`,children:[_&&(0,a.jsx)(m,{type:E.cardType,className:`flex-shrink-0`}),(0,a.jsxs)(`div`,{className:`flex-1 flex gap-2`,children:[(0,a.jsx)(n.Input,{ref:z,id:C?`${C}-combined`:void 0,name:w?`${w}-number`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-number`,placeholder:v?.cardNumber||`Card number`,value:E.cardNumber,onChange:U,disabled:u,readOnly:d,className:t.cn(q[x],`flex-1`,D.cardNumber&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsx)(n.Input,{ref:V,name:w?`${w}-expiry`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-exp`,placeholder:v?.expiry||`MM/YY`,value:E.expiry,onChange:W,disabled:u,readOnly:d,className:t.cn(q[x],`w-20`,D.expiry&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsxs)(`div`,{className:`relative w-16`,children:[(0,a.jsx)(n.Input,{ref:H,name:w?`${w}-cvv`:void 0,type:N?`text`:`password`,inputMode:`numeric`,autoComplete:`cc-csc`,placeholder:v?.cvv||`CVV`,value:E.cvv,onChange:e=>M(e.target.value),onFocus:G,onBlur:K,disabled:u,readOnly:d,className:t.cn(q[x],`pr-8`,D.cvv&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>P(!N),className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,tabIndex:-1,children:N?(0,a.jsx)(i.EyeOff,{className:`h-4 w-4`}):(0,a.jsx)(i.Eye,{className:`h-4 w-4`})})]})]})]})})}):(0,a.jsxs)(`div`,{className:t.cn(`space-y-4`,S),children:[p&&(0,a.jsx)(h,{cardData:E,isFlipped:F,className:`mb-6`}),(0,a.jsxs)(`div`,{className:`grid gap-4`,children:[(0,a.jsx)(Y,{label:y?.cardNumber||`Card Number`,error:D.cardNumber,htmlFor:C?`${C}-number`:void 0,children:(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(n.Input,{ref:z,id:C?`${C}-number`:void 0,name:w?`${w}-number`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-number`,placeholder:v?.cardNumber||`1234 5678 9012 3456`,value:E.cardNumber,onChange:U,onFocus:()=>R(`cardNumber`),onBlur:()=>R(null),disabled:u,readOnly:d,className:t.cn(q[x],`pr-12`,D.cardNumber&&`border-destructive focus-visible:ring-destructive`)}),_&&(0,a.jsx)(`div`,{className:`absolute right-3 top-1/2 -translate-y-1/2`,children:(0,a.jsx)(m,{type:E.cardType})}),E.rawCardNumber&&!D.cardNumber&&(0,a.jsx)(i.Check,{className:`absolute right-12 top-1/2 -translate-y-1/2 h-4 w-4 text-green-500`})]})}),(0,a.jsx)(Y,{label:y?.cardHolder||`Cardholder Name`,error:D.cardHolder,htmlFor:C?`${C}-holder`:void 0,children:(0,a.jsx)(n.Input,{ref:B,id:C?`${C}-holder`:void 0,name:w?`${w}-holder`:void 0,type:`text`,autoComplete:`cc-name`,placeholder:v?.cardHolder||`JOHN DOE`,value:E.cardHolder,onChange:e=>A(e.target.value),onFocus:()=>R(`cardHolder`),onBlur:()=>R(null),disabled:u,readOnly:d,className:t.cn(q[x],D.cardHolder&&`border-destructive focus-visible:ring-destructive`)})}),(0,a.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,a.jsx)(Y,{label:y?.expiry||`Expiry Date`,error:D.expiry,htmlFor:C?`${C}-expiry`:void 0,children:(0,a.jsx)(n.Input,{ref:V,id:C?`${C}-expiry`:void 0,name:w?`${w}-expiry`:void 0,type:`text`,inputMode:`numeric`,autoComplete:`cc-exp`,placeholder:v?.expiry||`MM/YY`,value:E.expiry,onChange:W,onFocus:()=>R(`expiry`),onBlur:()=>R(null),disabled:u,readOnly:d,className:t.cn(q[x],D.expiry&&`border-destructive focus-visible:ring-destructive`)})}),(0,a.jsx)(Y,{label:y?.cvv||`CVV`,error:D.cvv,htmlFor:C?`${C}-cvv`:void 0,children:(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(n.Input,{ref:H,id:C?`${C}-cvv`:void 0,name:w?`${w}-cvv`:void 0,type:N?`text`:`password`,inputMode:`numeric`,autoComplete:`cc-csc`,placeholder:v?.cvv??(E.cardType===`amex`?`1234`:`123`),value:E.cvv,onChange:e=>M(e.target.value),onFocus:G,onBlur:K,disabled:u,readOnly:d,className:t.cn(q[x],`pr-10`,D.cvv&&`border-destructive focus-visible:ring-destructive`)}),(0,a.jsx)(`button`,{type:`button`,onClick:()=>P(!N),className:`absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors`,tabIndex:-1,"aria-label":N?`Hide CVV`:`Show CVV`,children:N?(0,a.jsx)(i.EyeOff,{className:`h-4 w-4`}):(0,a.jsx)(i.Eye,{className:`h-4 w-4`})})]})})]})]}),O&&E.rawCardNumber&&(0,a.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-green-600`,children:[(0,a.jsx)(i.Check,{className:`h-4 w-4`}),(0,a.jsx)(`span`,{children:`Card details are valid`})]})]})}exports.WakaCreditCardInput=_,exports.default=_,exports.useCreditCardInput=g;
@@ -804,4 +804,4 @@ function x({ value: a, onChange: u, onValidationChange: p, disabled: m = !1, rea
804
804
  });
805
805
  }
806
806
  //#endregion
807
- export { x as default, b as useCreditCardInput };
807
+ export { x as WakaCreditCardInput, x as default, b as useCreditCardInput };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../badge/index.cjs.js`),r=require(`../button/index.cjs.js`),i=require(`../select/index.cjs.js`);let a=require(`react`);a=e.__toESM(a);let o=require(`lucide-react`),s=require(`react/jsx-runtime`);var c={credit:{label:`Credit`,icon:o.ArrowUpCircle,colorClass:`text-green-600 dark:text-green-400`},debit:{label:`Debit`,icon:o.ArrowDownCircle,colorClass:`text-red-600 dark:text-red-400`},refund:{label:`Refund`,icon:o.RotateCcw,colorClass:`text-blue-600 dark:text-blue-400`},bonus:{label:`Bonus`,icon:o.Gift,colorClass:`text-purple-600 dark:text-purple-400`},expiry:{label:`Expiry`,icon:o.Clock,colorClass:`text-orange-600 dark:text-orange-400`}},l={completed:{variant:`default`,className:`bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400 border-green-200 dark:border-green-800`},pending:{variant:`outline`,className:`bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400 border-yellow-200 dark:border-yellow-800`},failed:{variant:`destructive`,className:`bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400 border-red-200 dark:border-red-800`},cancelled:{variant:`secondary`,className:`bg-gray-100 text-gray-600 dark:bg-gray-800/50 dark:text-gray-400 border-gray-200 dark:border-gray-700`}},u=[`credit`,`debit`,`refund`,`bonus`,`expiry`];function d(e){return e instanceof Date?e:new Date(e)}function f(e){return d(e).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function p(e,t){return`${t===`credit`||t===`refund`||t===`bonus`?`+`:`-`}${Math.abs(e).toLocaleString(`en-US`)}`}function m(e){return e===`credit`||e===`refund`||e===`bonus`?`text-green-600 dark:text-green-400`:`text-red-600 dark:text-red-400`}function h({label:e,field:n,currentSort:r,currentDirection:i,onSort:a}){let c=r===n,l=c?i===`asc`?o.ArrowUp:o.ArrowDown:o.ArrowUpDown;return(0,s.jsxs)(`button`,{type:`button`,className:t.cn(`inline-flex items-center gap-1 text-xs font-medium uppercase tracking-wider hover:text-foreground transition-colors`,c?`text-foreground`:`text-muted-foreground`),onClick:()=>a(n),children:[e,(0,s.jsx)(l,{className:`h-3 w-3`})]})}function g({selectedTypes:e,onChange:n}){let r=t=>{e.includes(t)?n(e.filter(e=>e!==t)):n([...e,t])};return(0,s.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:u.map(n=>{let i=c[n];return(0,s.jsxs)(`button`,{type:`button`,onClick:()=>r(n),className:t.cn(`inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium border transition-colors`,e.length===0||e.includes(n)?`bg-primary/10 border-primary/30 text-foreground`:`bg-muted/50 border-transparent text-muted-foreground hover:bg-muted`),children:[(0,s.jsx)(i.icon,{className:`h-3 w-3`}),i.label]},n)})})}function _({currentPage:e,totalPages:t,totalItems:n,pageSize:i,onPageChange:c}){return(0,s.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-3`,children:[(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Showing `,(e-1)*i+1,`-`,Math.min(e*i,n),` of `,n,` transactions`]}),(0,s.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-7 w-7`,disabled:e<=1,onClick:()=>c(e-1),children:(0,s.jsx)(o.ChevronLeft,{className:`h-3.5 w-3.5`})}),Array.from({length:t},(e,t)=>t+1).filter(n=>t<=7||n===1||n===t||Math.abs(n-e)<=1).map((t,n,i)=>{let o=n>0&&t-i[n-1]>1;return(0,s.jsxs)(a.Fragment,{children:[o&&(0,s.jsx)(`span`,{className:`px-1 text-xs text-muted-foreground`,children:`...`}),(0,s.jsx)(r.Button,{variant:t===e?`default`:`outline`,size:`icon`,className:`h-7 w-7 text-xs`,onClick:()=>c(t),children:t})]},t)}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-7 w-7`,disabled:e>=t,onClick:()=>c(e+1),children:(0,s.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5`})})]})]})}function v({message:e}){return(0,s.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,s.jsx)(`div`,{className:`rounded-full bg-muted p-3 mb-3`,children:(0,s.jsx)(o.Inbox,{className:`h-6 w-6 text-muted-foreground`})}),(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e})]})}function y({transactions:e,pageSize:u=10,filters:y,onExport:b,onRowClick:x,showFilters:S=!1,showExport:C=!1,emptyMessage:w=`No transactions found`,className:T}){let[E,D]=a.useState(`date`),[O,k]=a.useState(`desc`),[A,j]=a.useState(1),[M,N]=a.useState(y?.types??[]),[P,F]=a.useState(`csv`),[I,L]=a.useState(S);a.useEffect(()=>{j(1)},[M,y]),a.useEffect(()=>{y?.types&&N(y.types)},[y?.types]);let R=a.useMemo(()=>{let t=[...e];if(M.length>0&&(t=t.filter(e=>M.includes(e.type))),y?.services&&y.services.length>0&&(t=t.filter(e=>e.service&&y.services.includes(e.service))),y?.dateRange){let{from:e,to:n}=y.dateRange;t=t.filter(t=>{let r=d(t.timestamp);return r>=e&&r<=n})}return t},[e,M,y]),z=a.useMemo(()=>{let e=[...R];return e.sort((e,t)=>{let n=0;switch(E){case`date`:n=d(e.timestamp).getTime()-d(t.timestamp).getTime();break;case`amount`:n=e.amount-t.amount;break;case`type`:n=e.type.localeCompare(t.type);break}return O===`asc`?n:-n}),e},[R,E,O]),B=Math.max(1,Math.ceil(z.length/u)),V=Math.min(A,B),H=z.slice((V-1)*u,V*u),U=e=>{E===e?k(e=>e===`asc`?`desc`:`asc`):(D(e),k(`desc`)),j(1)},W=()=>{b?.(P,R)},G=()=>{N([]),j(1)},K=M.length>0;return(0,s.jsxs)(`div`,{className:t.cn(`rounded-lg border bg-card shadow-sm`,T),children:[(0,s.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-4 py-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(`h3`,{className:`text-sm font-semibold`,children:`Transaction History`}),(0,s.jsx)(n.Badge,{variant:`secondary`,className:`text-xs`,children:R.length})]}),(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[S&&(0,s.jsxs)(r.Button,{variant:I?`default`:`outline`,size:`sm`,onClick:()=>L(e=>!e),className:`h-8`,children:[(0,s.jsx)(o.Filter,{className:`h-3.5 w-3.5`}),`Filters`,K&&(0,s.jsx)(`span`,{className:`ml-1 rounded-full bg-primary-foreground/20 px-1.5 text-[10px]`,children:M.length})]}),C&&b&&(0,s.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,s.jsxs)(i.Select,{value:P,onValueChange:e=>F(e),children:[(0,s.jsx)(i.SelectTrigger,{className:`h-8 w-[80px] text-xs`,children:(0,s.jsx)(i.SelectValue,{})}),(0,s.jsxs)(i.SelectContent,{children:[(0,s.jsx)(i.SelectItem,{value:`csv`,children:`CSV`}),(0,s.jsx)(i.SelectItem,{value:`pdf`,children:`PDF`})]})]}),(0,s.jsxs)(r.Button,{variant:`outline`,size:`sm`,onClick:W,className:`h-8`,children:[(0,s.jsx)(o.Download,{className:`h-3.5 w-3.5`}),`Export`]})]})]})]}),I&&(0,s.jsx)(`div`,{className:`border-b px-4 py-3 bg-muted/30`,children:(0,s.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,s.jsxs)(`div`,{className:`flex-1`,children:[(0,s.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-2`,children:`Filter by type`}),(0,s.jsx)(g,{selectedTypes:M,onChange:N})]}),K&&(0,s.jsxs)(r.Button,{variant:`ghost`,size:`sm`,onClick:G,className:`h-7 text-xs text-muted-foreground`,children:[(0,s.jsx)(o.X,{className:`h-3 w-3`}),`Clear`]})]})}),z.length===0?(0,s.jsx)(v,{message:K?`No transactions match the selected filters`:w}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`div`,{className:`overflow-x-auto`,children:(0,s.jsxs)(`table`,{className:`w-full`,children:[(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{className:`border-b bg-muted/30`,children:[(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(h,{label:`Type`,field:`type`,currentSort:E,currentDirection:O,onSort:U})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-wider text-muted-foreground`,children:`Description`})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-wider text-muted-foreground`,children:`Service`})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-right`,children:(0,s.jsx)(h,{label:`Amount`,field:`amount`,currentSort:E,currentDirection:O,onSort:U})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(h,{label:`Date`,field:`date`,currentSort:E,currentDirection:O,onSort:U})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-wider text-muted-foreground`,children:`Status`})})]})}),(0,s.jsx)(`tbody`,{className:`divide-y`,children:H.map(e=>{let r=c[e.type],i=l[e.status],a=r.icon;return(0,s.jsxs)(`tr`,{className:t.cn(`transition-colors hover:bg-muted/50`,x&&`cursor-pointer`),onClick:()=>x?.(e),children:[(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(a,{className:t.cn(`h-4 w-4 flex-shrink-0`,r.colorClass)}),(0,s.jsx)(`span`,{className:`text-sm font-medium`,children:r.label})]})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(`span`,{className:`text-sm text-foreground truncate block max-w-[200px]`,children:e.description})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.service||`—`})}),(0,s.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,s.jsx)(`span`,{className:t.cn(`text-sm font-semibold tabular-nums`,m(e.type)),children:p(e.amount,e.type)})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground whitespace-nowrap`,children:f(e.timestamp)})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(n.Badge,{variant:i.variant,className:t.cn(`text-[11px] capitalize`,i.className),children:e.status})})]},e.id)})})]})}),B>1&&(0,s.jsx)(`div`,{className:`border-t`,children:(0,s.jsx)(_,{currentPage:V,totalPages:B,totalItems:z.length,pageSize:u,onPageChange:j})})]})]})}exports.default=y;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../badge/index.cjs.js"),r=require("../button/index.cjs.js"),i=require("../select/index.cjs.js");let a=require("react");a=e.__toESM(a);let o=require("lucide-react"),s=require("react/jsx-runtime");var c={credit:{label:`Credit`,icon:o.ArrowUpCircle,colorClass:`text-green-600 dark:text-green-400`},debit:{label:`Debit`,icon:o.ArrowDownCircle,colorClass:`text-red-600 dark:text-red-400`},refund:{label:`Refund`,icon:o.RotateCcw,colorClass:`text-blue-600 dark:text-blue-400`},bonus:{label:`Bonus`,icon:o.Gift,colorClass:`text-purple-600 dark:text-purple-400`},expiry:{label:`Expiry`,icon:o.Clock,colorClass:`text-orange-600 dark:text-orange-400`}},l={completed:{variant:`default`,className:`bg-green-100 text-green-800 dark:bg-green-900/30 dark:text-green-400 border-green-200 dark:border-green-800`},pending:{variant:`outline`,className:`bg-yellow-100 text-yellow-800 dark:bg-yellow-900/30 dark:text-yellow-400 border-yellow-200 dark:border-yellow-800`},failed:{variant:`destructive`,className:`bg-red-100 text-red-800 dark:bg-red-900/30 dark:text-red-400 border-red-200 dark:border-red-800`},cancelled:{variant:`secondary`,className:`bg-gray-100 text-gray-600 dark:bg-gray-800/50 dark:text-gray-400 border-gray-200 dark:border-gray-700`}},u=[`credit`,`debit`,`refund`,`bonus`,`expiry`];function d(e){return e instanceof Date?e:new Date(e)}function f(e){return d(e).toLocaleDateString(`en-US`,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`})}function p(e,t){return`${t===`credit`||t===`refund`||t===`bonus`?`+`:`-`}${Math.abs(e).toLocaleString(`en-US`)}`}function m(e){return e===`credit`||e===`refund`||e===`bonus`?`text-green-600 dark:text-green-400`:`text-red-600 dark:text-red-400`}function h({label:e,field:n,currentSort:r,currentDirection:i,onSort:a}){let c=r===n,l=c?i===`asc`?o.ArrowUp:o.ArrowDown:o.ArrowUpDown;return(0,s.jsxs)(`button`,{type:`button`,className:t.cn(`inline-flex items-center gap-1 text-xs font-medium uppercase tracking-wider hover:text-foreground transition-colors`,c?`text-foreground`:`text-muted-foreground`),onClick:()=>a(n),children:[e,(0,s.jsx)(l,{className:`h-3 w-3`})]})}function g({selectedTypes:e,onChange:n}){let r=t=>{e.includes(t)?n(e.filter(e=>e!==t)):n([...e,t])};return(0,s.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:u.map(n=>{let i=c[n];return(0,s.jsxs)(`button`,{type:`button`,onClick:()=>r(n),className:t.cn(`inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs font-medium border transition-colors`,e.length===0||e.includes(n)?`bg-primary/10 border-primary/30 text-foreground`:`bg-muted/50 border-transparent text-muted-foreground hover:bg-muted`),children:[(0,s.jsx)(i.icon,{className:`h-3 w-3`}),i.label]},n)})})}function _({currentPage:e,totalPages:t,totalItems:n,pageSize:i,onPageChange:c}){return(0,s.jsxs)(`div`,{className:`flex items-center justify-between px-2 py-3`,children:[(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Showing `,(e-1)*i+1,`-`,Math.min(e*i,n),` of `,n,` transactions`]}),(0,s.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-7 w-7`,disabled:e<=1,onClick:()=>c(e-1),children:(0,s.jsx)(o.ChevronLeft,{className:`h-3.5 w-3.5`})}),Array.from({length:t},(e,t)=>t+1).filter(n=>t<=7||n===1||n===t||Math.abs(n-e)<=1).map((t,n,i)=>{let o=n>0&&t-i[n-1]>1;return(0,s.jsxs)(a.Fragment,{children:[o&&(0,s.jsx)(`span`,{className:`px-1 text-xs text-muted-foreground`,children:`...`}),(0,s.jsx)(r.Button,{variant:t===e?`default`:`outline`,size:`icon`,className:`h-7 w-7 text-xs`,onClick:()=>c(t),children:t})]},t)}),(0,s.jsx)(r.Button,{variant:`outline`,size:`icon`,className:`h-7 w-7`,disabled:e>=t,onClick:()=>c(e+1),children:(0,s.jsx)(o.ChevronRight,{className:`h-3.5 w-3.5`})})]})]})}function v({message:e}){return(0,s.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,s.jsx)(`div`,{className:`rounded-full bg-muted p-3 mb-3`,children:(0,s.jsx)(o.Inbox,{className:`h-6 w-6 text-muted-foreground`})}),(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e})]})}function y({transactions:e,pageSize:u=10,filters:y,onExport:b,onRowClick:x,showFilters:S=!1,showExport:C=!1,emptyMessage:w=`No transactions found`,className:T}){let[E,D]=a.useState(`date`),[O,k]=a.useState(`desc`),[A,j]=a.useState(1),[M,N]=a.useState(y?.types??[]),[P,F]=a.useState(`csv`),[I,L]=a.useState(S);a.useEffect(()=>{j(1)},[M,y]),a.useEffect(()=>{y?.types&&N(y.types)},[y?.types]);let R=a.useMemo(()=>{let t=[...e];if(M.length>0&&(t=t.filter(e=>M.includes(e.type))),y?.services&&y.services.length>0&&(t=t.filter(e=>e.service&&y.services.includes(e.service))),y?.dateRange){let{from:e,to:n}=y.dateRange;t=t.filter(t=>{let r=d(t.timestamp);return r>=e&&r<=n})}return t},[e,M,y]),z=a.useMemo(()=>{let e=[...R];return e.sort((e,t)=>{let n=0;switch(E){case`date`:n=d(e.timestamp).getTime()-d(t.timestamp).getTime();break;case`amount`:n=e.amount-t.amount;break;case`type`:n=e.type.localeCompare(t.type);break}return O===`asc`?n:-n}),e},[R,E,O]),B=Math.max(1,Math.ceil(z.length/u)),V=Math.min(A,B),H=z.slice((V-1)*u,V*u),U=e=>{E===e?k(e=>e===`asc`?`desc`:`asc`):(D(e),k(`desc`)),j(1)},W=()=>{b?.(P,R)},G=()=>{N([]),j(1)},K=M.length>0;return(0,s.jsxs)(`div`,{className:t.cn(`rounded-lg border bg-card shadow-sm`,T),children:[(0,s.jsxs)(`div`,{className:`flex items-center justify-between gap-3 border-b px-4 py-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(`h3`,{className:`text-sm font-semibold`,children:`Transaction History`}),(0,s.jsx)(n.Badge,{variant:`secondary`,className:`text-xs`,children:R.length})]}),(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[S&&(0,s.jsxs)(r.Button,{variant:I?`default`:`outline`,size:`sm`,onClick:()=>L(e=>!e),className:`h-8`,children:[(0,s.jsx)(o.Filter,{className:`h-3.5 w-3.5`}),`Filters`,K&&(0,s.jsx)(`span`,{className:`ml-1 rounded-full bg-primary-foreground/20 px-1.5 text-[10px]`,children:M.length})]}),C&&b&&(0,s.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,s.jsxs)(i.Select,{value:P,onValueChange:e=>F(e),children:[(0,s.jsx)(i.SelectTrigger,{className:`h-8 w-[80px] text-xs`,children:(0,s.jsx)(i.SelectValue,{})}),(0,s.jsxs)(i.SelectContent,{children:[(0,s.jsx)(i.SelectItem,{value:`csv`,children:`CSV`}),(0,s.jsx)(i.SelectItem,{value:`pdf`,children:`PDF`})]})]}),(0,s.jsxs)(r.Button,{variant:`outline`,size:`sm`,onClick:W,className:`h-8`,children:[(0,s.jsx)(o.Download,{className:`h-3.5 w-3.5`}),`Export`]})]})]})]}),I&&(0,s.jsx)(`div`,{className:`border-b px-4 py-3 bg-muted/30`,children:(0,s.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,s.jsxs)(`div`,{className:`flex-1`,children:[(0,s.jsx)(`p`,{className:`text-xs font-medium text-muted-foreground mb-2`,children:`Filter by type`}),(0,s.jsx)(g,{selectedTypes:M,onChange:N})]}),K&&(0,s.jsxs)(r.Button,{variant:`ghost`,size:`sm`,onClick:G,className:`h-7 text-xs text-muted-foreground`,children:[(0,s.jsx)(o.X,{className:`h-3 w-3`}),`Clear`]})]})}),z.length===0?(0,s.jsx)(v,{message:K?`No transactions match the selected filters`:w}):(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(`div`,{className:`overflow-x-auto`,children:(0,s.jsxs)(`table`,{className:`w-full`,children:[(0,s.jsx)(`thead`,{children:(0,s.jsxs)(`tr`,{className:`border-b bg-muted/30`,children:[(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(h,{label:`Type`,field:`type`,currentSort:E,currentDirection:O,onSort:U})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-wider text-muted-foreground`,children:`Description`})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-wider text-muted-foreground`,children:`Service`})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-right`,children:(0,s.jsx)(h,{label:`Amount`,field:`amount`,currentSort:E,currentDirection:O,onSort:U})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(h,{label:`Date`,field:`date`,currentSort:E,currentDirection:O,onSort:U})}),(0,s.jsx)(`th`,{className:`px-4 py-3 text-left`,children:(0,s.jsx)(`span`,{className:`text-xs font-medium uppercase tracking-wider text-muted-foreground`,children:`Status`})})]})}),(0,s.jsx)(`tbody`,{className:`divide-y`,children:H.map(e=>{let r=c[e.type],i=l[e.status],a=r.icon;return(0,s.jsxs)(`tr`,{className:t.cn(`transition-colors hover:bg-muted/50`,x&&`cursor-pointer`),onClick:()=>x?.(e),children:[(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(a,{className:t.cn(`h-4 w-4 flex-shrink-0`,r.colorClass)}),(0,s.jsx)(`span`,{className:`text-sm font-medium`,children:r.label})]})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(`span`,{className:`text-sm text-foreground truncate block max-w-[200px]`,children:e.description})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.service||`—`})}),(0,s.jsx)(`td`,{className:`px-4 py-3 text-right`,children:(0,s.jsx)(`span`,{className:t.cn(`text-sm font-semibold tabular-nums`,m(e.type)),children:p(e.amount,e.type)})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground whitespace-nowrap`,children:f(e.timestamp)})}),(0,s.jsx)(`td`,{className:`px-4 py-3`,children:(0,s.jsx)(n.Badge,{variant:i.variant,className:t.cn(`text-[11px] capitalize`,i.className),children:e.status})})]},e.id)})})]})}),B>1&&(0,s.jsx)(`div`,{className:`border-t`,children:(0,s.jsx)(_,{currentPage:V,totalPages:B,totalItems:z.length,pageSize:u,onPageChange:j})})]})]})}exports.WakaCreditHistory=y,exports.default=y;
@@ -422,4 +422,4 @@ function I({ transactions: l, pageSize: u = 10, filters: d, onExport: f, onRowCl
422
422
  });
423
423
  }
424
424
  //#endregion
425
- export { I as default };
425
+ export { I as WakaCreditHistory, I as default };
@@ -1,4 +1,4 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);var i={warning:70,critical:90},a={sm:{svgSize:80,strokeWidth:6,fontSize:`text-xs`,subFontSize:`text-[9px]`,labelSize:`text-xs`,barHeight:`h-2`,barText:`text-xs`},md:{svgSize:120,strokeWidth:8,fontSize:`text-sm`,subFontSize:`text-[10px]`,labelSize:`text-sm`,barHeight:`h-3`,barText:`text-sm`},lg:{svgSize:180,strokeWidth:12,fontSize:`text-xl`,subFontSize:`text-xs`,labelSize:`text-base`,barHeight:`h-4`,barText:`text-base`}},o={ring:{startAngle:0,endAngle:360,rotation:-90},gauge:{startAngle:0,endAngle:180,rotation:-90}};function s(e,t,n,r){let i=(r-90)*Math.PI/180;return{x:e+n*Math.cos(i),y:t+n*Math.sin(i)}}function c(e,t,n,r,i){let a=s(e,t,n,i),o=s(e,t,n,r),c=i-r<=180?`0`:`1`;return[`M`,a.x,a.y,`A`,n,n,0,c,0,o.x,o.y].join(` `)}function l(e,t){return e>=t.critical?{color:`#ef4444`,glowColor:`rgba(239, 68, 68, 0.6)`,zone:`critical`}:e>=t.warning?{color:`#eab308`,glowColor:`rgba(234, 179, 8, 0.4)`,zone:`warning`}:{color:`#22c55e`,glowColor:`rgba(34, 197, 94, 0.3)`,zone:`normal`}}function u(e){return e.toLocaleString(`en-US`)}function d(e,t,r=800){let[i,a]=n.useState(t?0:e),o=n.useRef(void 0),s=n.useRef(t?0:e);return n.useEffect(()=>{if(!t){a(e),s.current=e;return}let n=s.current,i=e-n;if(i===0)return;let c=performance.now(),l=t=>{let u=t-c,d=Math.min(u/r,1);a(n+i*(1-(1-d)**3)),d<1?o.current=requestAnimationFrame(l):(a(e),s.current=e)};return o.current=requestAnimationFrame(l),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t,r]),i}function f({used:e,total:n,percentage:i,displayPercentage:l,color:u,glowColor:d,zone:f,variant:p,size:m,showValue:h,showLabel:g,label:_,formatValue:v,className:y}){let b=a[m],x=o[p],S=b.svgSize,C=S/2,w=(S-b.strokeWidth)/2,T=c(C,C,w,0,x.endAngle-.01),E=c(C,C,w,0,l/100*x.endAngle||.01),D=p===`ring`?S:S/2+b.strokeWidth,O=f===`critical`;return(0,r.jsxs)(`div`,{className:t.cn(`inline-flex flex-col items-center gap-1`,y),children:[(0,r.jsxs)(`div`,{className:`relative`,style:{width:S,height:D,overflow:`visible`},children:[O&&(0,r.jsx)(`div`,{className:`absolute inset-0 rounded-full blur-xl animate-pulse`,style:{background:`radial-gradient(circle, ${d} 0%, transparent 70%)`}}),(0,r.jsxs)(`svg`,{width:S,height:S,viewBox:`0 0 ${S} ${S}`,className:`overflow-visible`,style:{transform:`rotate(${x.rotation}deg)`},children:[(0,r.jsxs)(`defs`,{children:[(0,r.jsxs)(`linearGradient`,{id:`credit-meter-gradient-${m}-${p}`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`,children:[(0,r.jsx)(`stop`,{offset:`0%`,stopColor:u,stopOpacity:`0.8`}),(0,r.jsx)(`stop`,{offset:`100%`,stopColor:u,stopOpacity:`1`})]}),(0,r.jsx)(`filter`,{id:`credit-meter-shadow-${m}-${p}`,x:`-20%`,y:`-20%`,width:`140%`,height:`140%`,children:(0,r.jsx)(`feDropShadow`,{dx:`0`,dy:`0`,stdDeviation:`3`,floodColor:u,floodOpacity:`0.5`})})]}),(0,r.jsx)(`path`,{d:T,fill:`none`,stroke:`currentColor`,strokeWidth:b.strokeWidth,strokeLinecap:`round`,className:`text-muted opacity-20`}),(0,r.jsx)(`path`,{d:E,fill:`none`,stroke:`url(#credit-meter-gradient-${m}-${p})`,strokeWidth:b.strokeWidth,strokeLinecap:`round`,filter:O?`url(#credit-meter-shadow-${m}-${p})`:void 0,className:`transition-all duration-300 ease-out`}),l>0&&(0,r.jsx)(`circle`,{cx:s(C,C,w,l/100*x.endAngle).x,cy:s(C,C,w,l/100*x.endAngle).y,r:b.strokeWidth/3,fill:`white`,className:t.cn(`transition-all duration-300`,O&&`animate-pulse`)})]}),h&&(0,r.jsxs)(`div`,{className:t.cn(`absolute inset-0 flex flex-col items-center justify-center`,p===`gauge`&&`top-auto bottom-0 pb-1`),style:{height:p===`gauge`?S/2:void 0,top:p===`gauge`?`auto`:void 0},children:[(0,r.jsxs)(`div`,{className:`flex items-baseline gap-0.5`,children:[(0,r.jsx)(`span`,{className:t.cn(`font-bold tabular-nums transition-colors duration-300`,b.fontSize),style:{color:u},children:v(Math.round(e))}),(0,r.jsxs)(`span`,{className:t.cn(`font-medium text-muted-foreground`,b.subFontSize),children:[`/`,v(n)]})]}),(0,r.jsxs)(`span`,{className:t.cn(`font-medium tabular-nums text-muted-foreground`,b.subFontSize),children:[Math.round(i),`%`]})]})]}),g&&_&&(0,r.jsx)(`span`,{className:t.cn(`text-muted-foreground text-center`,b.labelSize),children:_})]})}function p({used:e,total:n,percentage:i,displayPercentage:o,color:s,zone:c,size:l,showValue:u,showLabel:d,animated:f,label:p,formatValue:m,className:h}){let g=a[l],_=c===`critical`?`bg-destructive`:c===`warning`?`bg-warning`:`bg-success`;return(0,r.jsxs)(`div`,{className:t.cn(`w-full`,h),children:[d&&p||u?(0,r.jsxs)(`div`,{className:t.cn(`flex items-center justify-between mb-2`),children:[d&&p&&(0,r.jsx)(`span`,{className:t.cn(`font-medium`,g.barText),children:p}),u&&(0,r.jsxs)(`div`,{className:t.cn(`flex items-center gap-1.5 text-muted-foreground`,g.barText),children:[(0,r.jsx)(`span`,{className:`tabular-nums`,style:{color:s},children:m(Math.round(e))}),(0,r.jsx)(`span`,{children:`/`}),(0,r.jsx)(`span`,{className:`tabular-nums`,children:m(n)}),(0,r.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,Math.round(i),`%)`]})]})]}):null,(0,r.jsx)(`div`,{className:t.cn(`relative w-full overflow-hidden rounded-full bg-muted`,g.barHeight),children:(0,r.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-colors duration-300`,_,c===`critical`&&`animate-pulse`),style:{width:`${Math.min(o,100)}%`,transition:f?void 0:`width 0.3s ease-out`},children:f&&(0,r.jsx)(`div`,{className:`absolute inset-0 overflow-hidden rounded-full`,children:(0,r.jsx)(`div`,{className:`absolute inset-0 animate-credit-meter-shine`})})})}),(0,r.jsx)(`style`,{children:`
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime");var i={warning:70,critical:90},a={sm:{svgSize:80,strokeWidth:6,fontSize:`text-xs`,subFontSize:`text-[9px]`,labelSize:`text-xs`,barHeight:`h-2`,barText:`text-xs`},md:{svgSize:120,strokeWidth:8,fontSize:`text-sm`,subFontSize:`text-[10px]`,labelSize:`text-sm`,barHeight:`h-3`,barText:`text-sm`},lg:{svgSize:180,strokeWidth:12,fontSize:`text-xl`,subFontSize:`text-xs`,labelSize:`text-base`,barHeight:`h-4`,barText:`text-base`}},o={ring:{startAngle:0,endAngle:360,rotation:-90},gauge:{startAngle:0,endAngle:180,rotation:-90}};function s(e,t,n,r){let i=(r-90)*Math.PI/180;return{x:e+n*Math.cos(i),y:t+n*Math.sin(i)}}function c(e,t,n,r,i){let a=s(e,t,n,i),o=s(e,t,n,r),c=i-r<=180?`0`:`1`;return[`M`,a.x,a.y,`A`,n,n,0,c,0,o.x,o.y].join(` `)}function l(e,t){return e>=t.critical?{color:`#ef4444`,glowColor:`rgba(239, 68, 68, 0.6)`,zone:`critical`}:e>=t.warning?{color:`#eab308`,glowColor:`rgba(234, 179, 8, 0.4)`,zone:`warning`}:{color:`#22c55e`,glowColor:`rgba(34, 197, 94, 0.3)`,zone:`normal`}}function u(e){return e.toLocaleString(`en-US`)}function d(e,t,r=800){let[i,a]=n.useState(t?0:e),o=n.useRef(void 0),s=n.useRef(t?0:e);return n.useEffect(()=>{if(!t){a(e),s.current=e;return}let n=s.current,i=e-n;if(i===0)return;let c=performance.now(),l=t=>{let u=t-c,d=Math.min(u/r,1),f=1-(1-d)**3,p=n+i*f;a(p),d<1?o.current=requestAnimationFrame(l):(a(e),s.current=e)};return o.current=requestAnimationFrame(l),()=>{o.current&&cancelAnimationFrame(o.current)}},[e,t,r]),i}function f({used:e,total:n,percentage:i,displayPercentage:l,color:u,glowColor:d,zone:f,variant:p,size:m,showValue:h,showLabel:g,label:_,formatValue:v,className:y}){let b=a[m],x=o[p],S=b.svgSize,C=S/2,w=(S-b.strokeWidth)/2,T=c(C,C,w,0,x.endAngle-.01),E=c(C,C,w,0,l/100*x.endAngle||.01),D=p===`ring`?S:S/2+b.strokeWidth,O=f===`critical`;return(0,r.jsxs)(`div`,{className:t.cn(`inline-flex flex-col items-center gap-1`,y),children:[(0,r.jsxs)(`div`,{className:`relative`,style:{width:S,height:D,overflow:`visible`},children:[O&&(0,r.jsx)(`div`,{className:`absolute inset-0 rounded-full blur-xl animate-pulse`,style:{background:`radial-gradient(circle, ${d} 0%, transparent 70%)`}}),(0,r.jsxs)(`svg`,{width:S,height:S,viewBox:`0 0 ${S} ${S}`,className:`overflow-visible`,style:{transform:`rotate(${x.rotation}deg)`},children:[(0,r.jsxs)(`defs`,{children:[(0,r.jsxs)(`linearGradient`,{id:`credit-meter-gradient-${m}-${p}`,x1:`0%`,y1:`0%`,x2:`100%`,y2:`0%`,children:[(0,r.jsx)(`stop`,{offset:`0%`,stopColor:u,stopOpacity:`0.8`}),(0,r.jsx)(`stop`,{offset:`100%`,stopColor:u,stopOpacity:`1`})]}),(0,r.jsx)(`filter`,{id:`credit-meter-shadow-${m}-${p}`,x:`-20%`,y:`-20%`,width:`140%`,height:`140%`,children:(0,r.jsx)(`feDropShadow`,{dx:`0`,dy:`0`,stdDeviation:`3`,floodColor:u,floodOpacity:`0.5`})})]}),(0,r.jsx)(`path`,{d:T,fill:`none`,stroke:`currentColor`,strokeWidth:b.strokeWidth,strokeLinecap:`round`,className:`text-muted opacity-20`}),(0,r.jsx)(`path`,{d:E,fill:`none`,stroke:`url(#credit-meter-gradient-${m}-${p})`,strokeWidth:b.strokeWidth,strokeLinecap:`round`,filter:O?`url(#credit-meter-shadow-${m}-${p})`:void 0,className:`transition-all duration-300 ease-out`}),l>0&&(0,r.jsx)(`circle`,{cx:s(C,C,w,l/100*x.endAngle).x,cy:s(C,C,w,l/100*x.endAngle).y,r:b.strokeWidth/3,fill:`white`,className:t.cn(`transition-all duration-300`,O&&`animate-pulse`)})]}),h&&(0,r.jsxs)(`div`,{className:t.cn(`absolute inset-0 flex flex-col items-center justify-center`,p===`gauge`&&`top-auto bottom-0 pb-1`),style:{height:p===`gauge`?S/2:void 0,top:p===`gauge`?`auto`:void 0},children:[(0,r.jsxs)(`div`,{className:`flex items-baseline gap-0.5`,children:[(0,r.jsx)(`span`,{className:t.cn(`font-bold tabular-nums transition-colors duration-300`,b.fontSize),style:{color:u},children:v(Math.round(e))}),(0,r.jsxs)(`span`,{className:t.cn(`font-medium text-muted-foreground`,b.subFontSize),children:[`/`,v(n)]})]}),(0,r.jsxs)(`span`,{className:t.cn(`font-medium tabular-nums text-muted-foreground`,b.subFontSize),children:[Math.round(i),`%`]})]})]}),g&&_&&(0,r.jsx)(`span`,{className:t.cn(`text-muted-foreground text-center`,b.labelSize),children:_})]})}function p({used:e,total:n,percentage:i,displayPercentage:o,color:s,zone:c,size:l,showValue:u,showLabel:d,animated:f,label:p,formatValue:m,className:h}){let g=a[l],_=c===`critical`?`bg-destructive`:c===`warning`?`bg-warning`:`bg-success`;return(0,r.jsxs)(`div`,{className:t.cn(`w-full`,h),children:[d&&p||u?(0,r.jsxs)(`div`,{className:t.cn(`flex items-center justify-between mb-2`),children:[d&&p&&(0,r.jsx)(`span`,{className:t.cn(`font-medium`,g.barText),children:p}),u&&(0,r.jsxs)(`div`,{className:t.cn(`flex items-center gap-1.5 text-muted-foreground`,g.barText),children:[(0,r.jsx)(`span`,{className:`tabular-nums`,style:{color:s},children:m(Math.round(e))}),(0,r.jsx)(`span`,{children:`/`}),(0,r.jsx)(`span`,{className:`tabular-nums`,children:m(n)}),(0,r.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,Math.round(i),`%)`]})]})]}):null,(0,r.jsx)(`div`,{className:t.cn(`relative w-full overflow-hidden rounded-full bg-muted`,g.barHeight),children:(0,r.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-colors duration-300`,_,c===`critical`&&`animate-pulse`),style:{width:`${Math.min(o,100)}%`,transition:f?void 0:`width 0.3s ease-out`},children:f&&(0,r.jsx)(`div`,{className:`absolute inset-0 overflow-hidden rounded-full`,children:(0,r.jsx)(`div`,{className:`absolute inset-0 animate-credit-meter-shine`})})})}),(0,r.jsx)(`style`,{children:`
2
2
  @keyframes credit-meter-shine {
3
3
  0% { transform: translateX(-100%); opacity: 0; }
4
4
  50% { opacity: 0.3; }
@@ -8,4 +8,4 @@
8
8
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
9
9
  animation: credit-meter-shine 2s ease-in-out infinite;
10
10
  }
11
- `})]})}function m({used:e,total:t,variant:n=`ring`,thresholds:a=i,showLabel:o=!0,showValue:s=!0,size:c=`md`,animated:m=!0,label:h,formatValue:g=u,className:_}){let v=t>0?Math.min(100,Math.max(0,e/t*100)):0,y=d(v,m),{color:b,glowColor:x,zone:S}=l(v,a);return n===`bar`?(0,r.jsx)(p,{used:e,total:t,percentage:v,displayPercentage:y,color:b,zone:S,size:c,showValue:s,showLabel:o,animated:m,label:h,formatValue:g,className:_}):(0,r.jsx)(f,{used:e,total:t,percentage:v,displayPercentage:y,color:b,glowColor:x,zone:S,variant:n,size:c,showValue:s,showLabel:o,label:h,formatValue:g,className:_})}exports.default=m;
11
+ `})]})}function m({used:e,total:t,variant:n=`ring`,thresholds:a=i,showLabel:o=!0,showValue:s=!0,size:c=`md`,animated:m=!0,label:h,formatValue:g=u,className:_}){let v=t>0?Math.min(100,Math.max(0,e/t*100)):0,y=d(v,m),{color:b,glowColor:x,zone:S}=l(v,a);return n===`bar`?(0,r.jsx)(p,{used:e,total:t,percentage:v,displayPercentage:y,color:b,zone:S,size:c,showValue:s,showLabel:o,animated:m,label:h,formatValue:g,className:_}):(0,r.jsx)(f,{used:e,total:t,percentage:v,displayPercentage:y,color:b,glowColor:x,zone:S,variant:n,size:c,showValue:s,showLabel:o,label:h,formatValue:g,className:_})}exports.WakaCreditMeter=m,exports.default=m;
@@ -98,8 +98,8 @@ function d(e, n, r = 800) {
98
98
  let t = s.current, i = e - t;
99
99
  if (i === 0) return;
100
100
  let c = performance.now(), l = (n) => {
101
- let u = n - c, d = Math.min(u / r, 1);
102
- a(t + i * (1 - (1 - d) ** 3)), d < 1 ? o.current = requestAnimationFrame(l) : (a(e), s.current = e);
101
+ let u = n - c, d = Math.min(u / r, 1), f = 1 - (1 - d) ** 3, p = t + i * f;
102
+ a(p), d < 1 ? o.current = requestAnimationFrame(l) : (a(e), s.current = e);
103
103
  };
104
104
  return o.current = requestAnimationFrame(l), () => {
105
105
  o.current && cancelAnimationFrame(o.current);
@@ -302,4 +302,4 @@ function m({ used: e, total: t, variant: r = "ring", thresholds: a = i, showLabe
302
302
  });
303
303
  }
304
304
  //#endregion
305
- export { m as default };
305
+ export { m as WakaCreditMeter, m as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../badge/index.cjs.js`),r=require(`../button/index.cjs.js`),i=require(`../card/index.cjs.js`);let a=require(`react`);a=e.__toESM(a);let o=require(`lucide-react`),s=require(`react/jsx-runtime`);function c(e){return e.toLocaleString(`en-US`)}function l(e,t){return Number.isInteger(e)?`${e}${t}`:`${e.toFixed(2)}${t}`}function u(e,t){return`${e.toFixed(4).replace(/0+$/,``).replace(/\.$/,``)}${t}/credit`}function d({pack:e,selected:a,onSelect:d,currency:f}){let p=e.currency||f;return(0,s.jsxs)(i.Card,{className:t.cn(`relative flex flex-col transition-all duration-200 cursor-pointer`,a&&[`border-primary shadow-lg shadow-primary/10`,`ring-2 ring-primary/30`],e.highlighted&&!a&&`bg-muted/30`,!a&&!e.highlighted&&`hover:border-muted-foreground/30`),onClick:()=>d(e),children:[e.highlighted&&e.highlightLabel&&(0,s.jsx)(`div`,{className:`absolute -top-3 left-1/2 -translate-x-1/2 z-10`,children:(0,s.jsxs)(n.Badge,{className:`inline-flex items-center gap-1 rounded-full px-3 py-1 shadow-sm`,children:[(0,s.jsx)(o.Sparkles,{className:`h-3 w-3`}),e.highlightLabel]})}),(0,s.jsx)(i.CardHeader,{className:t.cn(`pb-2`,e.highlighted&&`pt-8`),children:(0,s.jsx)(`h3`,{className:`text-lg font-bold text-foreground`,children:e.name})}),(0,s.jsxs)(i.CardContent,{className:`flex flex-1 flex-col gap-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(o.Coins,{className:`h-5 w-5 text-primary`}),(0,s.jsx)(`span`,{className:`text-3xl font-bold text-foreground`,children:c(e.credits)}),(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`credits`})]}),(0,s.jsx)(`div`,{className:`text-2xl font-semibold text-foreground`,children:l(e.price,p)}),e.unitPrice!=null&&e.unitPrice>0&&(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(e.unitPrice,p)}),e.bonusPercent!=null&&e.bonusPercent>0&&(0,s.jsxs)(n.Badge,{variant:`secondary`,className:`w-fit rounded-full`,children:[`+`,e.bonusPercent,`% bonus`]}),(0,s.jsx)(`div`,{className:`flex-1`}),(0,s.jsx)(r.Button,{type:`button`,variant:a?`default`:`outline`,className:`mt-2 w-full`,onClick:t=>{t.stopPropagation(),d(e)},children:a?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.Check,{className:`h-4 w-4`}),`Selected`]}):`Select`})]})]})}function f({packs:e,selectedId:n,onSelect:r,currency:i=`€`,columns:a=3,className:o}){return(0,s.jsx)(`div`,{className:t.cn(`grid gap-6`,{2:`grid-cols-1 md:grid-cols-2`,3:`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`,4:`grid-cols-1 md:grid-cols-2 lg:grid-cols-4`}[a],o),children:e.map(e=>(0,s.jsx)(d,{pack:e,selected:e.id===n,onSelect:r,currency:i},e.id))})}exports.default=f;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../badge/index.cjs.js"),r=require("../button/index.cjs.js"),i=require("../card/index.cjs.js");let a=require("react");a=e.__toESM(a);let o=require("lucide-react"),s=require("react/jsx-runtime");function c(e){return e.toLocaleString(`en-US`)}function l(e,t){return Number.isInteger(e)?`${e}${t}`:`${e.toFixed(2)}${t}`}function u(e,t){return`${e.toFixed(4).replace(/0+$/,``).replace(/\.$/,``)}${t}/credit`}function d({pack:e,selected:a,onSelect:d,currency:f}){let p=e.currency||f;return(0,s.jsxs)(i.Card,{className:t.cn(`relative flex flex-col transition-all duration-200 cursor-pointer`,a&&[`border-primary shadow-lg shadow-primary/10`,`ring-2 ring-primary/30`],e.highlighted&&!a&&`bg-muted/30`,!a&&!e.highlighted&&`hover:border-muted-foreground/30`),onClick:()=>d(e),children:[e.highlighted&&e.highlightLabel&&(0,s.jsx)(`div`,{className:`absolute -top-3 left-1/2 -translate-x-1/2 z-10`,children:(0,s.jsxs)(n.Badge,{className:`inline-flex items-center gap-1 rounded-full px-3 py-1 shadow-sm`,children:[(0,s.jsx)(o.Sparkles,{className:`h-3 w-3`}),e.highlightLabel]})}),(0,s.jsx)(i.CardHeader,{className:t.cn(`pb-2`,e.highlighted&&`pt-8`),children:(0,s.jsx)(`h3`,{className:`text-lg font-bold text-foreground`,children:e.name})}),(0,s.jsxs)(i.CardContent,{className:`flex flex-1 flex-col gap-3`,children:[(0,s.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,s.jsx)(o.Coins,{className:`h-5 w-5 text-primary`}),(0,s.jsx)(`span`,{className:`text-3xl font-bold text-foreground`,children:c(e.credits)}),(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`credits`})]}),(0,s.jsx)(`div`,{className:`text-2xl font-semibold text-foreground`,children:l(e.price,p)}),e.unitPrice!=null&&e.unitPrice>0&&(0,s.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:u(e.unitPrice,p)}),e.bonusPercent!=null&&e.bonusPercent>0&&(0,s.jsxs)(n.Badge,{variant:`secondary`,className:`w-fit rounded-full`,children:[`+`,e.bonusPercent,`% bonus`]}),(0,s.jsx)(`div`,{className:`flex-1`}),(0,s.jsx)(r.Button,{type:`button`,variant:a?`default`:`outline`,className:`mt-2 w-full`,onClick:t=>{t.stopPropagation(),d(e)},children:a?(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.Check,{className:`h-4 w-4`}),`Selected`]}):`Select`})]})]})}function f({packs:e,selectedId:n,onSelect:r,currency:i=`€`,columns:a=3,className:o}){return(0,s.jsx)(`div`,{className:t.cn(`grid gap-6`,{2:`grid-cols-1 md:grid-cols-2`,3:`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`,4:`grid-cols-1 md:grid-cols-2 lg:grid-cols-4`}[a],o),children:e.map(e=>(0,s.jsx)(d,{pack:e,selected:e.id===n,onSelect:r,currency:i},e.id))})}exports.WakaCreditPricingPack=f,exports.default=f;
@@ -102,4 +102,4 @@ function g({ packs: t, selectedId: n, onSelect: r, currency: i = "€", columns:
102
102
  });
103
103
  }
104
104
  //#endregion
105
- export { g as default };
105
+ export { g as WakaCreditPricingPack, g as default };