@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
@@ -54,7 +54,10 @@ var d = t.forwardRef(({ open: n, onOpenChange: d, snapPoints: f = [
54
54
  let e = () => te(window.innerHeight);
55
55
  return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
56
56
  }, []), t.useEffect(() => {
57
- n && V > 0 && B(q[W] ?? q[0]);
57
+ if (n && V > 0) {
58
+ let e = q[W] ?? q[0];
59
+ B(e);
60
+ }
58
61
  }, [
59
62
  n,
60
63
  V,
@@ -95,24 +98,26 @@ var d = t.forwardRef(({ open: n, onOpenChange: d, snapPoints: f = [
95
98
  C
96
99
  ]), X = t.useCallback((e) => {
97
100
  if (!F) return;
98
- let t = L.y - e;
99
- B(u(L.height + t, 0, V));
101
+ let t = L.y - e, n = u(L.height + t, 0, V);
102
+ B(n);
100
103
  }, [
101
104
  F,
102
105
  L,
103
106
  V
104
107
  ]), Z = t.useCallback(() => {
105
108
  if (!F) return;
106
- if (I(!1), z < q[0] * .5) {
109
+ I(!1);
110
+ let e = q[0] * .5;
111
+ if (z < e) {
107
112
  U(!0), B(0), setTimeout(() => {
108
113
  d(!1), U(!1);
109
114
  }, T), w?.(-1);
110
115
  return;
111
116
  }
112
- let e = J(z), t = q[e];
113
- y && e !== W && l("light"), U(!0), B(t), G(e), setTimeout(() => {
117
+ let t = J(z), n = q[t];
118
+ y && t !== W && l("light"), U(!0), B(n), G(t), setTimeout(() => {
114
119
  U(!1);
115
- }, T), w?.(e);
120
+ }, T), w?.(t);
116
121
  }, [
117
122
  F,
118
123
  z,
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../dropdown-menu/index.cjs.js`);let r=require(`react`);r=e.__toESM(r);let i=require(`lucide-react`),a=require(`react/jsx-runtime`);function o({item:e,index:n,isLast:r,size:o,variant:s,showHomeIcon:c,renderLink:l,onItemClick:u}){let d={sm:`text-xs py-0.5 px-1.5`,md:`text-sm py-1 px-2`,lg:`text-base py-1.5 px-3`},f={sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`},p={default:r?`text-foreground font-medium`:`text-muted-foreground hover:text-foreground`,ghost:r?`text-foreground font-medium bg-muted rounded-md`:`text-muted-foreground hover:text-foreground hover:bg-muted rounded-md`,outline:r?`text-foreground font-medium border rounded-md`:`text-muted-foreground hover:text-foreground hover:border-foreground border border-transparent rounded-md`},m=(0,a.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[n===0&&c&&!e.icon&&(0,a.jsx)(i.Home,{className:f[o]}),e.icon&&(0,a.jsx)(`span`,{className:f[o],children:e.icon}),(0,a.jsx)(`span`,{className:`truncate max-w-[150px]`,children:e.label})]}),h=t.cn(`inline-flex items-center transition-colors`,d[o],p[s],e.disabled&&`opacity-50 pointer-events-none`),g=t=>{u&&(t.preventDefault(),u(e,n))};return r||!e.href?(0,a.jsx)(`span`,{className:t.cn(h,`cursor-default`),"aria-current":r?`page`:void 0,children:m}):l?l(e,(0,a.jsx)(`span`,{className:h,onClick:g,children:m})):(0,a.jsx)(`a`,{href:e.href,className:h,onClick:g,children:m})}function s({items:e,startIndex:t,size:r,renderLink:o,onItemClick:s}){return(0,a.jsxs)(n.DropdownMenu,{children:[(0,a.jsx)(n.DropdownMenuTrigger,{asChild:!0,children:(0,a.jsx)(`button`,{type:`button`,className:`inline-flex items-center justify-center p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,"aria-label":`Afficher les éléments masqués`,children:(0,a.jsx)(i.MoreHorizontal,{className:{sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`}[r]})})}),(0,a.jsx)(n.DropdownMenuContent,{align:`start`,children:e.map((e,r)=>{let i=t+r;return o&&e.href?(0,a.jsx)(n.DropdownMenuItem,{asChild:!0,children:o(e,(0,a.jsxs)(`span`,{className:`flex items-center gap-2 w-full`,children:[e.icon,e.label]}))},i):(0,a.jsxs)(n.DropdownMenuItem,{onClick:()=>{s?.(e,i)},disabled:e.disabled,children:[e.icon&&(0,a.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label]},i)})})]})}function c({items:e,separator:n,showHomeIcon:c=!1,maxItems:l,renderLink:u,onItemClick:d,size:f=`md`,variant:p=`default`,className:m}){let h=(0,a.jsx)(i.ChevronRight,{className:t.cn({sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`}[f],`text-muted-foreground`)}),g=()=>n??h,_=l&&e.length>l,v,y=[],b=0;if(_&&l){let t=Math.max(l-2,1);v=[e[0],...e.slice(-t)],y=e.slice(1,-t),b=1}else v=e;return(0,a.jsx)(`nav`,{"aria-label":`Fil d'Ariane`,className:t.cn(`flex items-center`,m),children:(0,a.jsxs)(`ol`,{className:`flex items-center flex-wrap gap-1`,children:[v.length>0&&(0,a.jsx)(`li`,{className:`flex items-center`,children:(0,a.jsx)(o,{item:v[0],index:0,isLast:v.length===1&&!_,size:f,variant:p,showHomeIcon:c,renderLink:u,onItemClick:d})}),_&&y.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`li`,{className:`flex items-center`,"aria-hidden":`true`,children:g()}),(0,a.jsx)(`li`,{className:`flex items-center`,children:(0,a.jsx)(s,{items:y,startIndex:b,size:f,renderLink:u,onItemClick:d})})]}),v.slice(1).map((t,n)=>{let i=_?e.length-(v.length-1-n):n+1;return(0,a.jsxs)(r.Fragment,{children:[(0,a.jsx)(`li`,{className:`flex items-center`,"aria-hidden":`true`,children:g()}),(0,a.jsx)(`li`,{className:`flex items-center`,children:(0,a.jsx)(o,{item:t,index:i,isLast:i===e.length-1,size:f,variant:p,showHomeIcon:!1,renderLink:u,onItemClick:d})})]},i)})]})})}function l(e,t){let{homeLabel:n=`Accueil`,labelMap:i={},excludePaths:a=[]}=t||{};return r.useMemo(()=>{let t=e.split(`/`).filter(Boolean).filter(e=>!a.includes(e)),r=[{label:n,href:`/`}],o=``;return t.forEach(e=>{o+=`/${e}`;let t=i[e]||e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g,` `);r.push({label:t,href:o})}),r},[e,n,i,a])}exports.default=c,exports.useBreadcrumbFromPath=l;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../dropdown-menu/index.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("lucide-react"),a=require("react/jsx-runtime");function o({item:e,index:n,isLast:r,size:o,variant:s,showHomeIcon:c,renderLink:l,onItemClick:u}){let d={sm:`text-xs py-0.5 px-1.5`,md:`text-sm py-1 px-2`,lg:`text-base py-1.5 px-3`},f={sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`},p={default:r?`text-foreground font-medium`:`text-muted-foreground hover:text-foreground`,ghost:r?`text-foreground font-medium bg-muted rounded-md`:`text-muted-foreground hover:text-foreground hover:bg-muted rounded-md`,outline:r?`text-foreground font-medium border rounded-md`:`text-muted-foreground hover:text-foreground hover:border-foreground border border-transparent rounded-md`},m=(0,a.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[n===0&&c&&!e.icon&&(0,a.jsx)(i.Home,{className:f[o]}),e.icon&&(0,a.jsx)(`span`,{className:f[o],children:e.icon}),(0,a.jsx)(`span`,{className:`truncate max-w-[150px]`,children:e.label})]}),h=t.cn(`inline-flex items-center transition-colors`,d[o],p[s],e.disabled&&`opacity-50 pointer-events-none`),g=t=>{u&&(t.preventDefault(),u(e,n))};return r||!e.href?(0,a.jsx)(`span`,{className:t.cn(h,`cursor-default`),"aria-current":r?`page`:void 0,children:m}):l?l(e,(0,a.jsx)(`span`,{className:h,onClick:g,children:m})):(0,a.jsx)(`a`,{href:e.href,className:h,onClick:g,children:m})}function s({items:e,startIndex:t,size:r,renderLink:o,onItemClick:s}){return(0,a.jsxs)(n.DropdownMenu,{children:[(0,a.jsx)(n.DropdownMenuTrigger,{asChild:!0,children:(0,a.jsx)(`button`,{type:`button`,className:`inline-flex items-center justify-center p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors`,"aria-label":`Afficher les éléments masqués`,children:(0,a.jsx)(i.MoreHorizontal,{className:{sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`}[r]})})}),(0,a.jsx)(n.DropdownMenuContent,{align:`start`,children:e.map((e,r)=>{let i=t+r;return o&&e.href?(0,a.jsx)(n.DropdownMenuItem,{asChild:!0,children:o(e,(0,a.jsxs)(`span`,{className:`flex items-center gap-2 w-full`,children:[e.icon,e.label]}))},i):(0,a.jsxs)(n.DropdownMenuItem,{onClick:()=>{s?.(e,i)},disabled:e.disabled,children:[e.icon&&(0,a.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label]},i)})})]})}function c({items:e,separator:n,showHomeIcon:c=!1,maxItems:l,renderLink:u,onItemClick:d,size:f=`md`,variant:p=`default`,className:m}){let h=(0,a.jsx)(i.ChevronRight,{className:t.cn({sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`}[f],`text-muted-foreground`)}),g=()=>n??h,_=l&&e.length>l,v,y=[],b=0;if(_&&l){let t=Math.max(l-2,1);v=[e[0],...e.slice(-t)],y=e.slice(1,-t),b=1}else v=e;return(0,a.jsx)(`nav`,{"aria-label":`Fil d'Ariane`,className:t.cn(`flex items-center`,m),children:(0,a.jsxs)(`ol`,{className:`flex items-center flex-wrap gap-1`,children:[v.length>0&&(0,a.jsx)(`li`,{className:`flex items-center`,children:(0,a.jsx)(o,{item:v[0],index:0,isLast:v.length===1&&!_,size:f,variant:p,showHomeIcon:c,renderLink:u,onItemClick:d})}),_&&y.length>0&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(`li`,{className:`flex items-center`,"aria-hidden":`true`,children:g()}),(0,a.jsx)(`li`,{className:`flex items-center`,children:(0,a.jsx)(s,{items:y,startIndex:b,size:f,renderLink:u,onItemClick:d})})]}),v.slice(1).map((t,n)=>{let i=_?e.length-(v.length-1-n):n+1;return(0,a.jsxs)(r.Fragment,{children:[(0,a.jsx)(`li`,{className:`flex items-center`,"aria-hidden":`true`,children:g()}),(0,a.jsx)(`li`,{className:`flex items-center`,children:(0,a.jsx)(o,{item:t,index:i,isLast:i===e.length-1,size:f,variant:p,showHomeIcon:!1,renderLink:u,onItemClick:d})})]},i)})]})})}function l(e,t){let{homeLabel:n=`Accueil`,labelMap:i={},excludePaths:a=[]}=t||{};return r.useMemo(()=>{let t=e.split(`/`).filter(Boolean).filter(e=>!a.includes(e)),r=[{label:n,href:`/`}],o=``;return t.forEach(e=>{o+=`/${e}`;let t=i[e]||e.charAt(0).toUpperCase()+e.slice(1).replace(/-/g,` `);r.push({label:t,href:o})}),r},[e,n,i,a])}exports.WakaBreadcrumb=c,exports.default=c,exports.useBreadcrumbFromPath=l;
@@ -176,4 +176,4 @@ function h(e, t) {
176
176
  ]);
177
177
  }
178
178
  //#endregion
179
- export { m as default, h as useBreadcrumbFromPath };
179
+ export { m as WakaBreadcrumb, m as default, h as useBreadcrumbFromPath };
@@ -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({width:e,height:r,color:a,strokeWidth:o,animationDuration:s,isAnimating:c}){let l=n.useRef(null),[u,d]=n.useState(0);n.useEffect(()=>{l.current&&d(l.current.getTotalLength())},[e,r]);let f=r/2,p=`M 0 ${f} Q ${e/4} ${f-8} ${e/2} ${f} Q ${3*e/4} ${f+8} ${e} ${f}`;return(0,i.jsxs)(`svg`,{width:e,height:r,className:`absolute left-0 top-0 pointer-events-none overflow-visible`,style:{zIndex:-1},children:[(0,i.jsx)(`path`,{d:p,fill:`none`,stroke:a,strokeWidth:o,opacity:.2,strokeLinecap:`round`}),(0,i.jsx)(`path`,{ref:l,d:p,fill:`none`,stroke:a,strokeWidth:o,strokeLinecap:`round`,strokeDasharray:u,strokeDashoffset:c?u:0,style:{transition:`stroke-dashoffset ${s}ms ease-out`}}),(0,i.jsx)(`circle`,{cx:e,cy:f,r:o+1,fill:a,className:t.cn(`transition-all`,c?`opacity-0 scale-0`:`opacity-100 scale-100`),style:{transitionDuration:`${s/2}ms`,transitionDelay:c?`0ms`:`${s/2}ms`,transformOrigin:`center`}})]})}function o({items:e,size:a,renderItem:o}){let[s,c]=n.useState(!1),l=n.useRef(null),u=n.useRef(null);return n.useEffect(()=>{let e=e=>{u.current&&l.current&&!u.current.contains(e.target)&&!l.current.contains(e.target)&&c(!1)};if(s)return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(`button`,{ref:l,type:`button`,onClick:()=>c(!s),className:t.cn(`flex items-center justify-center rounded-md`,`text-muted-foreground hover:text-foreground hover:bg-muted`,`transition-colors duration-200`,{sm:`p-1`,md:`p-1.5`,lg:`p-2`}[a]),"aria-label":`Show hidden items`,"aria-expanded":s,children:(0,i.jsx)(r.MoreHorizontal,{className:{sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`}[a]})}),(0,i.jsx)(`div`,{ref:u,className:t.cn(`absolute top-full left-0 mt-2 z-50`,`min-w-[160px] py-1 rounded-lg`,`bg-popover border shadow-lg`,`transition-all duration-200`,s?`opacity-100 translate-y-0 visible`:`opacity-0 -translate-y-2 invisible`),children:e.map(e=>o?(0,i.jsx)(`div`,{className:`px-1`,children:o(e,!1)},e.id):(0,i.jsxs)(e.href?`a`:`button`,{href:e.href,onClick:()=>{e.onClick?.(),c(!1)},className:t.cn(`w-full flex items-center gap-2 px-3 py-2 text-sm`,`text-foreground hover:bg-muted`,`transition-colors duration-150`),children:[e.icon&&(0,i.jsx)(`span`,{className:`h-4 w-4 opacity-70`,children:e.icon}),(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]},e.id))})]})}function s({item:e,isLast:n,size:r,renderItem:a,isNew:o,animationDuration:s}){let c={sm:`text-xs px-2 py-1`,md:`text-sm px-3 py-1.5`,lg:`text-base px-4 py-2`},l={sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`};if(a)return(0,i.jsx)(i.Fragment,{children:a(e,n)});let u=e.href&&!n?`a`:`span`,d=!n&&(e.href||e.onClick);return(0,i.jsxs)(u,{href:e.href,onClick:d?e.onClick:void 0,className:t.cn(`inline-flex items-center gap-1.5 rounded-md font-medium`,`transition-all`,c[r],n?`text-foreground bg-muted`:`text-muted-foreground hover:text-foreground hover:bg-muted/50`,d&&`cursor-pointer`,o&&`animate-in fade-in-0 slide-in-from-left-2`),style:{animationDuration:o?`${s}ms`:void 0},"aria-current":n?`page`:void 0,children:[e.icon&&(0,i.jsx)(`span`,{className:l[r],children:e.icon}),(0,i.jsx)(`span`,{className:`truncate max-w-[120px]`,children:e.label})]})}function c({items:e,maxItems:c=4,showPath:l=!0,pathColor:u=`hsl(var(--primary))`,pathStrokeWidth:d=2,animationDuration:f=400,size:p=`md`,renderItem:m,className:h}){let g=n.useRef(null),[_,v]=n.useState(!1),[y,b]=n.useState(e.length),[x,S]=n.useState(0);n.useEffect(()=>{if(e.length!==y){v(!0);let t=setTimeout(()=>{v(!1),b(e.length)},f);return()=>clearTimeout(t)}},[e.length,y,f]),n.useEffect(()=>{if(!g.current||!l)return;let e=new ResizeObserver(e=>{for(let t of e)S(t.contentRect.width)});return e.observe(g.current),()=>e.disconnect()},[l]);let C={sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`},w=e.length>c,T,E=[];if(w){let t=Math.max(c-2,1);T=[e[0],...e.slice(-t)],E=e.slice(1,-t)}else T=e;let D=p===`sm`?28:p===`lg`?44:36;return(0,i.jsxs)(`nav`,{ref:g,"aria-label":`Breadcrumb`,className:t.cn(`relative inline-flex items-center`,h),children:[l&&x>0&&(0,i.jsx)(a,{width:x,height:D,color:u,strokeWidth:d,animationDuration:f,isAnimating:_}),(0,i.jsxs)(`ol`,{className:`relative flex items-center flex-wrap gap-1`,children:[T.length>0&&(0,i.jsx)(`li`,{className:`flex items-center`,children:(0,i.jsx)(s,{item:T[0],isLast:T.length===1&&!w,size:p,renderItem:m,animationDuration:f})}),w&&E.length>0&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`li`,{className:`flex items-center text-muted-foreground`,"aria-hidden":`true`,children:(0,i.jsx)(r.ChevronRight,{className:C[p]})}),(0,i.jsx)(`li`,{className:`flex items-center`,children:(0,i.jsx)(o,{items:E,size:p,renderItem:m})})]}),T.slice(1).map((a,o)=>{let c=w?e.length-(T.length-1-o):o+1,l=c===e.length-1,u=c===e.length-1&&e.length>y;return(0,i.jsxs)(n.Fragment,{children:[(0,i.jsx)(`li`,{className:`flex items-center text-muted-foreground`,"aria-hidden":`true`,children:(0,i.jsx)(r.ChevronRight,{className:t.cn(C[p],`transition-all`,u&&`animate-in fade-in-0`),style:{animationDuration:u?`${f}ms`:void 0}})}),(0,i.jsx)(`li`,{className:`flex items-center`,children:(0,i.jsx)(s,{item:a,isLast:l,size:p,renderItem:m,isNew:u,animationDuration:f})})]},a.id)})]})]})}function l(e=[]){let[t,r]=n.useState(e);return{items:t,push:n.useCallback(e=>{r(t=>[...t,e])},[]),pop:n.useCallback(()=>{r(e=>e.slice(0,-1))},[]),goTo:n.useCallback(e=>{r(t=>{let n=t.findIndex(t=>t.id===e);return n===-1?t:t.slice(0,n+1)})},[]),reset:n.useCallback((e=[])=>{r(e)},[]),replace:n.useCallback((e,t)=>{r(n=>n.map(n=>n.id===e?t:n))},[]),setItems:r}}exports.default=c,exports.useBreadcrumbPath=l;
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({width:e,height:r,color:a,strokeWidth:o,animationDuration:s,isAnimating:c}){let l=n.useRef(null),[u,d]=n.useState(0);n.useEffect(()=>{l.current&&d(l.current.getTotalLength())},[e,r]);let f=r/2,p=`M 0 ${f} Q ${e/4} ${f-8} ${e/2} ${f} Q ${3*e/4} ${f+8} ${e} ${f}`;return(0,i.jsxs)(`svg`,{width:e,height:r,className:`absolute left-0 top-0 pointer-events-none overflow-visible`,style:{zIndex:-1},children:[(0,i.jsx)(`path`,{d:p,fill:`none`,stroke:a,strokeWidth:o,opacity:.2,strokeLinecap:`round`}),(0,i.jsx)(`path`,{ref:l,d:p,fill:`none`,stroke:a,strokeWidth:o,strokeLinecap:`round`,strokeDasharray:u,strokeDashoffset:c?u:0,style:{transition:`stroke-dashoffset ${s}ms ease-out`}}),(0,i.jsx)(`circle`,{cx:e,cy:f,r:o+1,fill:a,className:t.cn(`transition-all`,c?`opacity-0 scale-0`:`opacity-100 scale-100`),style:{transitionDuration:`${s/2}ms`,transitionDelay:c?`0ms`:`${s/2}ms`,transformOrigin:`center`}})]})}function o({items:e,size:a,renderItem:o}){let[s,c]=n.useState(!1),l=n.useRef(null),u=n.useRef(null);return n.useEffect(()=>{let e=e=>{u.current&&l.current&&!u.current.contains(e.target)&&!l.current.contains(e.target)&&c(!1)};if(s)return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[s]),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(`button`,{ref:l,type:`button`,onClick:()=>c(!s),className:t.cn(`flex items-center justify-center rounded-md`,`text-muted-foreground hover:text-foreground hover:bg-muted`,`transition-colors duration-200`,{sm:`p-1`,md:`p-1.5`,lg:`p-2`}[a]),"aria-label":`Show hidden items`,"aria-expanded":s,children:(0,i.jsx)(r.MoreHorizontal,{className:{sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`}[a]})}),(0,i.jsx)(`div`,{ref:u,className:t.cn(`absolute top-full left-0 mt-2 z-50`,`min-w-[160px] py-1 rounded-lg`,`bg-popover border shadow-lg`,`transition-all duration-200`,s?`opacity-100 translate-y-0 visible`:`opacity-0 -translate-y-2 invisible`),children:e.map(e=>o?(0,i.jsx)(`div`,{className:`px-1`,children:o(e,!1)},e.id):(0,i.jsxs)(e.href?`a`:`button`,{href:e.href,onClick:()=>{e.onClick?.(),c(!1)},className:t.cn(`w-full flex items-center gap-2 px-3 py-2 text-sm`,`text-foreground hover:bg-muted`,`transition-colors duration-150`),children:[e.icon&&(0,i.jsx)(`span`,{className:`h-4 w-4 opacity-70`,children:e.icon}),(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]},e.id))})]})}function s({item:e,isLast:n,size:r,renderItem:a,isNew:o,animationDuration:s}){let c={sm:`text-xs px-2 py-1`,md:`text-sm px-3 py-1.5`,lg:`text-base px-4 py-2`},l={sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`};if(a)return(0,i.jsx)(i.Fragment,{children:a(e,n)});let u=e.href&&!n?`a`:`span`,d=!n&&(e.href||e.onClick);return(0,i.jsxs)(u,{href:e.href,onClick:d?e.onClick:void 0,className:t.cn(`inline-flex items-center gap-1.5 rounded-md font-medium`,`transition-all`,c[r],n?`text-foreground bg-muted`:`text-muted-foreground hover:text-foreground hover:bg-muted/50`,d&&`cursor-pointer`,o&&`animate-in fade-in-0 slide-in-from-left-2`),style:{animationDuration:o?`${s}ms`:void 0},"aria-current":n?`page`:void 0,children:[e.icon&&(0,i.jsx)(`span`,{className:l[r],children:e.icon}),(0,i.jsx)(`span`,{className:`truncate max-w-[120px]`,children:e.label})]})}function c({items:e,maxItems:c=4,showPath:l=!0,pathColor:u=`hsl(var(--primary))`,pathStrokeWidth:d=2,animationDuration:f=400,size:p=`md`,renderItem:m,className:h}){let g=n.useRef(null),[_,v]=n.useState(!1),[y,b]=n.useState(e.length),[x,S]=n.useState(0);n.useEffect(()=>{if(e.length!==y){v(!0);let t=setTimeout(()=>{v(!1),b(e.length)},f);return()=>clearTimeout(t)}},[e.length,y,f]),n.useEffect(()=>{if(!g.current||!l)return;let e=new ResizeObserver(e=>{for(let t of e)S(t.contentRect.width)});return e.observe(g.current),()=>e.disconnect()},[l]);let C={sm:`h-3 w-3`,md:`h-4 w-4`,lg:`h-5 w-5`},w=e.length>c,T,E=[];if(w){let t=Math.max(c-2,1);T=[e[0],...e.slice(-t)],E=e.slice(1,-t)}else T=e;let D=p===`sm`?28:p===`lg`?44:36;return(0,i.jsxs)(`nav`,{ref:g,"aria-label":`Breadcrumb`,className:t.cn(`relative inline-flex items-center`,h),children:[l&&x>0&&(0,i.jsx)(a,{width:x,height:D,color:u,strokeWidth:d,animationDuration:f,isAnimating:_}),(0,i.jsxs)(`ol`,{className:`relative flex items-center flex-wrap gap-1`,children:[T.length>0&&(0,i.jsx)(`li`,{className:`flex items-center`,children:(0,i.jsx)(s,{item:T[0],isLast:T.length===1&&!w,size:p,renderItem:m,animationDuration:f})}),w&&E.length>0&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`li`,{className:`flex items-center text-muted-foreground`,"aria-hidden":`true`,children:(0,i.jsx)(r.ChevronRight,{className:C[p]})}),(0,i.jsx)(`li`,{className:`flex items-center`,children:(0,i.jsx)(o,{items:E,size:p,renderItem:m})})]}),T.slice(1).map((a,o)=>{let c=w?e.length-(T.length-1-o):o+1,l=c===e.length-1,u=c===e.length-1&&e.length>y;return(0,i.jsxs)(n.Fragment,{children:[(0,i.jsx)(`li`,{className:`flex items-center text-muted-foreground`,"aria-hidden":`true`,children:(0,i.jsx)(r.ChevronRight,{className:t.cn(C[p],`transition-all`,u&&`animate-in fade-in-0`),style:{animationDuration:u?`${f}ms`:void 0}})}),(0,i.jsx)(`li`,{className:`flex items-center`,children:(0,i.jsx)(s,{item:a,isLast:l,size:p,renderItem:m,isNew:u,animationDuration:f})})]},a.id)})]})]})}function l(e=[]){let[t,r]=n.useState(e);return{items:t,push:n.useCallback(e=>{r(t=>[...t,e])},[]),pop:n.useCallback(()=>{r(e=>e.slice(0,-1))},[]),goTo:n.useCallback(e=>{r(t=>{let n=t.findIndex(t=>t.id===e);return n===-1?t:t.slice(0,n+1)})},[]),reset:n.useCallback((e=[])=>{r(e)},[]),replace:n.useCallback((e,t)=>{r(n=>n.map(n=>n.id===e?t:n))},[]),setItems:r}}exports.WakaBreadcrumbPath=c,exports.default=c,exports.useBreadcrumbPath=l;
@@ -244,4 +244,4 @@ function d(e = []) {
244
244
  };
245
245
  }
246
246
  //#endregion
247
- export { u as default, d as useBreadcrumbPath };
247
+ export { u as WakaBreadcrumbPath, u as default, d as useBreadcrumbPath };
@@ -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(`lucide-react`),i=require(`react/jsx-runtime`);var a=[`#3b82f6`,`#ef4444`,`#22c55e`,`#f59e0b`,`#8b5cf6`,`#ec4899`,`#14b8a6`,`#f97316`];function o(e,t,n,r,i,a,o){let s=new Date,c=Math.ceil((n.getTime()-t.getTime())/(1e3*60*60*24)),l=Math.max(0,Math.ceil((s.getTime()-t.getTime())/(1e3*60*60*24))),u=Math.max(0,c-l),d=r.reduce((e,t)=>e+t.amount,0),f=Math.max(0,e-d),p=Math.min(100,l/c*100),m=Math.min(100,d/e*100),h=l>0?d/l:0,g=e/c,_=null;if(h>0&&f>0){let e=f/h;_=new Date(s.getTime()+e*24*60*60*1e3)}else d>=e&&(_=s);let v=g>0?h/g:0,y=v>=1+a/100,b=!y&&v>=1+o/100;return{totalBudget:e,totalSpent:d,startDate:t,endDate:n,spendHistory:r,categories:i,burnRate:h,idealBurnRate:g,depletionDate:_,daysRemaining:u,timeElapsedPercent:p,budgetUsedPercent:m,isDangerZone:y,isWarningZone:b}}function s(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function c(e){let t=0;return e.sort((e,t)=>e.date.getTime()-t.date.getTime()).map(e=>(t+=e.amount,{date:e.date,cumulative:t}))}function l(e){if(e.length<2)return{direction:`neutral`,percentage:0};let t=e.slice(-3).reduce((e,t)=>e+t,0)/Math.min(3,e.length),n=e.slice(0,-3).reduce((e,t)=>e+t,0)/Math.max(1,e.length-3);if(n===0)return{direction:`neutral`,percentage:0};let r=(t-n)/n*100;return Math.abs(r)<5?{direction:`neutral`,percentage:0}:{direction:r>0?`up`:`down`,percentage:Math.abs(r)}}function u({state:e,width:r,height:a,showProjection:o,showIdealLine:l,animated:u,formatValue:d}){let[f,p]=n.useState(+!u),[m,h]=n.useState(null),g={top:20,right:20,bottom:30,left:60},_=r-g.left-g.right,v=a-g.top-g.bottom,y=n.useMemo(()=>c(e.spendHistory),[e.spendHistory]),b=Math.ceil((e.endDate.getTime()-e.startDate.getTime())/(1e3*60*60*24)),x=t=>{let n=Math.ceil((t.getTime()-e.startDate.getTime())/(1e3*60*60*24));return g.left+n/b*_},S=t=>g.top+v-t/e.totalBudget*v,C=n.useMemo(()=>y.length===0?``:y.map(e=>({x:x(e.date),y:S(e.cumulative)})).map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `),[y,_,v]),w=n.useMemo(()=>`M ${g.left} ${S(0)} L ${g.left+_} ${S(e.totalBudget)}`,[_,v,e.totalBudget]),T=n.useMemo(()=>{if(y.length===0||e.burnRate===0)return``;let t=y[y.length-1],n=x(t.date),r=S(t.cumulative),i=e.depletionDate&&e.depletionDate<e.endDate?e.depletionDate:e.endDate,a=Math.ceil((i.getTime()-t.date.getTime())/(1e3*60*60*24)),o=t.cumulative+e.burnRate*a;return`M ${n} ${r} L ${x(i)} ${S(Math.min(o,e.totalBudget))}`},[y,e.burnRate,e.depletionDate,e.endDate,_,v]);n.useMemo(()=>`M ${`${g.left},${g.top}`} L ${`${g.left+_},${g.top}`} L ${`${g.left+_},${S(e.totalBudget)}`} L ${`${g.left},${S(0)}`} Z`,[_,v,e.totalBudget]),n.useEffect(()=>{if(!u){p(1);return}let e=Date.now(),t=()=>{let n=Date.now()-e,r=Math.min(n/1500,1);p(1-(1-r)**3),r<1&&requestAnimationFrame(t)};requestAnimationFrame(t)},[u]);let E=n.useMemo(()=>{let t=[],n=Math.min(6,b);for(let r=0;r<=n;r++){let i=new Date(e.startDate.getTime()+r/n*(e.endDate.getTime()-e.startDate.getTime()));t.push({date:i,x:x(i)})}return t},[e.startDate,e.endDate,b,_]),D=n.useMemo(()=>{let t=[];for(let n=0;n<=4;n++){let r=n/4*e.totalBudget;t.push({value:r,y:S(r)})}return t},[e.totalBudget,v]),O=e=>{let t=y[e];t&&h({index:e,x:x(t.date),y:S(t.cumulative),value:t.cumulative,date:t.date})};return(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`svg`,{width:r,height:a,className:`overflow-visible`,"aria-hidden":`true`,focusable:`false`,children:[(0,i.jsxs)(`defs`,{children:[(0,i.jsxs)(`linearGradient`,{id:`dangerZoneGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,i.jsx)(`stop`,{offset:`0%`,stopColor:`#ef4444`,stopOpacity:`0.15`}),(0,i.jsx)(`stop`,{offset:`100%`,stopColor:`#ef4444`,stopOpacity:`0.02`})]}),(0,i.jsxs)(`linearGradient`,{id:`burnLineGradient`,x1:`0`,y1:`0`,x2:`1`,y2:`0`,children:[(0,i.jsx)(`stop`,{offset:`0%`,stopColor:`#3b82f6`}),(0,i.jsx)(`stop`,{offset:`100%`,stopColor:e.isDangerZone?`#ef4444`:e.isWarningZone?`#f59e0b`:`#22c55e`})]}),(0,i.jsx)(`clipPath`,{id:`burnLineClip`,children:(0,i.jsx)(`rect`,{x:g.left,y:g.top,width:_*f,height:v})})]}),(0,i.jsx)(`g`,{className:`text-muted-foreground/20`,children:D.map((e,t)=>(0,i.jsx)(`line`,{x1:g.left,y1:e.y,x2:g.left+_,y2:e.y,stroke:`currentColor`,strokeDasharray:`4,4`},t))}),(0,i.jsx)(`path`,{d:`M ${g.left} ${g.top}
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=[`#3b82f6`,`#ef4444`,`#22c55e`,`#f59e0b`,`#8b5cf6`,`#ec4899`,`#14b8a6`,`#f97316`];function o(e,t,n,r,i,a,o){let s=new Date,c=Math.ceil((n.getTime()-t.getTime())/(1e3*60*60*24)),l=Math.max(0,Math.ceil((s.getTime()-t.getTime())/(1e3*60*60*24))),u=Math.max(0,c-l),d=r.reduce((e,t)=>e+t.amount,0),f=Math.max(0,e-d),p=Math.min(100,l/c*100),m=Math.min(100,d/e*100),h=l>0?d/l:0,g=e/c,_=null;if(h>0&&f>0){let e=f/h;_=new Date(s.getTime()+e*24*60*60*1e3)}else d>=e&&(_=s);let v=g>0?h/g:0,y=v>=1+a/100,b=!y&&v>=1+o/100;return{totalBudget:e,totalSpent:d,startDate:t,endDate:n,spendHistory:r,categories:i,burnRate:h,idealBurnRate:g,depletionDate:_,daysRemaining:u,timeElapsedPercent:p,budgetUsedPercent:m,isDangerZone:y,isWarningZone:b}}function s(e){return e.toLocaleDateString(`en-US`,{month:`short`,day:`numeric`})}function c(e){let t=0;return e.sort((e,t)=>e.date.getTime()-t.date.getTime()).map(e=>(t+=e.amount,{date:e.date,cumulative:t}))}function l(e){if(e.length<2)return{direction:`neutral`,percentage:0};let t=e.slice(-3).reduce((e,t)=>e+t,0)/Math.min(3,e.length),n=e.slice(0,-3).reduce((e,t)=>e+t,0)/Math.max(1,e.length-3);if(n===0)return{direction:`neutral`,percentage:0};let r=(t-n)/n*100;return Math.abs(r)<5?{direction:`neutral`,percentage:0}:{direction:r>0?`up`:`down`,percentage:Math.abs(r)}}function u({state:e,width:r,height:a,showProjection:o,showIdealLine:l,animated:u,formatValue:d}){let[f,p]=n.useState(+!u),[m,h]=n.useState(null),g={top:20,right:20,bottom:30,left:60},_=r-g.left-g.right,v=a-g.top-g.bottom,y=n.useMemo(()=>c(e.spendHistory),[e.spendHistory]),b=Math.ceil((e.endDate.getTime()-e.startDate.getTime())/(1e3*60*60*24)),x=t=>{let n=Math.ceil((t.getTime()-e.startDate.getTime())/(1e3*60*60*24));return g.left+n/b*_},S=t=>g.top+v-t/e.totalBudget*v,C=n.useMemo(()=>y.length===0?``:y.map(e=>({x:x(e.date),y:S(e.cumulative)})).map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `),[y,_,v]),w=n.useMemo(()=>`M ${g.left} ${S(0)} L ${g.left+_} ${S(e.totalBudget)}`,[_,v,e.totalBudget]),T=n.useMemo(()=>{if(y.length===0||e.burnRate===0)return``;let t=y[y.length-1],n=x(t.date),r=S(t.cumulative),i=e.depletionDate&&e.depletionDate<e.endDate?e.depletionDate:e.endDate,a=Math.ceil((i.getTime()-t.date.getTime())/(1e3*60*60*24)),o=t.cumulative+e.burnRate*a;return`M ${n} ${r} L ${x(i)} ${S(Math.min(o,e.totalBudget))}`},[y,e.burnRate,e.depletionDate,e.endDate,_,v]);n.useMemo(()=>`M ${`${g.left},${g.top}`} L ${`${g.left+_},${g.top}`} L ${`${g.left+_},${S(e.totalBudget)}`} L ${`${g.left},${S(0)}`} Z`,[_,v,e.totalBudget]),n.useEffect(()=>{if(!u){p(1);return}let e=Date.now(),t=()=>{let n=Date.now()-e,r=Math.min(n/1500,1),i=1-(1-r)**3;p(i),r<1&&requestAnimationFrame(t)};requestAnimationFrame(t)},[u]);let E=n.useMemo(()=>{let t=[],n=Math.min(6,b);for(let r=0;r<=n;r++){let i=new Date(e.startDate.getTime()+r/n*(e.endDate.getTime()-e.startDate.getTime()));t.push({date:i,x:x(i)})}return t},[e.startDate,e.endDate,b,_]),D=n.useMemo(()=>{let t=[];for(let n=0;n<=4;n++){let r=n/4*e.totalBudget;t.push({value:r,y:S(r)})}return t},[e.totalBudget,v]),O=e=>{let t=y[e];t&&h({index:e,x:x(t.date),y:S(t.cumulative),value:t.cumulative,date:t.date})};return(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`svg`,{width:r,height:a,className:`overflow-visible`,"aria-hidden":`true`,focusable:`false`,children:[(0,i.jsxs)(`defs`,{children:[(0,i.jsxs)(`linearGradient`,{id:`dangerZoneGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,i.jsx)(`stop`,{offset:`0%`,stopColor:`#ef4444`,stopOpacity:`0.15`}),(0,i.jsx)(`stop`,{offset:`100%`,stopColor:`#ef4444`,stopOpacity:`0.02`})]}),(0,i.jsxs)(`linearGradient`,{id:`burnLineGradient`,x1:`0`,y1:`0`,x2:`1`,y2:`0`,children:[(0,i.jsx)(`stop`,{offset:`0%`,stopColor:`#3b82f6`}),(0,i.jsx)(`stop`,{offset:`100%`,stopColor:e.isDangerZone?`#ef4444`:e.isWarningZone?`#f59e0b`:`#22c55e`})]}),(0,i.jsx)(`clipPath`,{id:`burnLineClip`,children:(0,i.jsx)(`rect`,{x:g.left,y:g.top,width:_*f,height:v})})]}),(0,i.jsx)(`g`,{className:`text-muted-foreground/20`,children:D.map((e,t)=>(0,i.jsx)(`line`,{x1:g.left,y1:e.y,x2:g.left+_,y2:e.y,stroke:`currentColor`,strokeDasharray:`4,4`},t))}),(0,i.jsx)(`path`,{d:`M ${g.left} ${g.top}
2
2
  L ${g.left+_} ${S(e.totalBudget)}
3
3
  L ${g.left+_} ${g.top} Z`,fill:`url(#dangerZoneGradient)`}),(0,i.jsx)(`g`,{className:`text-muted-foreground text-xs`,children:D.map((e,t)=>(0,i.jsx)(`g`,{children:(0,i.jsx)(`text`,{x:g.left-8,y:e.y,textAnchor:`end`,dominantBaseline:`middle`,fill:`currentColor`,children:d(e.value)})},t))}),(0,i.jsx)(`g`,{className:`text-muted-foreground text-xs`,children:E.map((e,t)=>(0,i.jsx)(`text`,{x:e.x,y:a-8,textAnchor:`middle`,fill:`currentColor`,children:s(e.date)},t))}),l&&(0,i.jsx)(`path`,{d:w,fill:`none`,stroke:`#94a3b8`,strokeWidth:`2`,strokeDasharray:`8,4`,opacity:`0.6`}),(0,i.jsx)(`g`,{clipPath:`url(#burnLineClip)`,children:(0,i.jsx)(`path`,{d:C,fill:`none`,stroke:`url(#burnLineGradient)`,strokeWidth:`3`,strokeLinecap:`round`,strokeLinejoin:`round`})}),o&&T&&f===1&&(0,i.jsx)(`path`,{d:T,fill:`none`,stroke:e.isDangerZone?`#ef4444`:e.isWarningZone?`#f59e0b`:`#22c55e`,strokeWidth:`2`,strokeDasharray:`6,3`,opacity:`0.6`,className:`animate-burn-dash`}),y.length>0&&f===1&&(0,i.jsx)(`g`,{children:(0,i.jsx)(`circle`,{cx:x(y[y.length-1].date),cy:S(y[y.length-1].cumulative),r:`6`,fill:e.isDangerZone?`#ef4444`:e.isWarningZone?`#f59e0b`:`#3b82f6`,stroke:`white`,strokeWidth:`2`,className:`animate-burn-pulse`})}),(0,i.jsx)(`line`,{x1:g.left,y1:S(e.totalBudget),x2:g.left+_,y2:S(e.totalBudget),stroke:`#ef4444`,strokeWidth:`2`,strokeDasharray:`4,2`}),e.timeElapsedPercent<100&&(0,i.jsxs)(`g`,{children:[(0,i.jsx)(`line`,{x1:g.left+e.timeElapsedPercent/100*_,y1:g.top,x2:g.left+e.timeElapsedPercent/100*_,y2:g.top+v,stroke:`#6366f1`,strokeWidth:`1`,strokeDasharray:`4,4`,opacity:`0.5`}),(0,i.jsx)(`text`,{x:g.left+e.timeElapsedPercent/100*_,y:g.top-6,textAnchor:`middle`,className:`text-xs fill-indigo-500 font-medium`,children:`Today`})]}),f===1&&y.map((e,t)=>(0,i.jsx)(`circle`,{cx:x(e.date),cy:S(e.cumulative),r:`8`,fill:`transparent`,className:`cursor-pointer`,onMouseEnter:()=>O(t),onMouseLeave:()=>h(null)},t)),o&&e.depletionDate&&e.depletionDate<=e.endDate&&f===1&&(0,i.jsxs)(`g`,{children:[(0,i.jsx)(`line`,{x1:x(e.depletionDate),y1:g.top,x2:x(e.depletionDate),y2:g.top+v,stroke:`#ef4444`,strokeWidth:`2`,strokeDasharray:`4,4`}),(0,i.jsxs)(`g`,{transform:`translate(${x(e.depletionDate)}, ${g.top+10})`,children:[(0,i.jsx)(`rect`,{x:`-40`,y:`-8`,width:`80`,height:`16`,rx:`4`,fill:`#ef4444`}),(0,i.jsx)(`text`,{textAnchor:`middle`,dominantBaseline:`middle`,className:`text-[10px] font-medium fill-white`,children:`Depleted`})]})]})]}),m&&(0,i.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`),style:{left:m.x,top:m.y-60,transform:`translateX(-50%)`},children:[(0,i.jsx)(`div`,{className:`font-semibold`,children:s(m.date)}),(0,i.jsxs)(`div`,{className:`text-xs opacity-80`,children:[`Cumulative: `,d(m.value)]}),(0,i.jsx)(`div`,{className:`absolute left-1/2 -translate-x-1/2 -bottom-1.5 w-3 h-3 rotate-45 bg-foreground`})]}),(0,i.jsx)(`style`,{children:`
4
4
  @keyframes burn-pulse {
@@ -17,4 +17,4 @@
17
17
  .animate-burn-dash {
18
18
  animation: burn-dash 1s linear infinite;
19
19
  }
20
- `})]})}function d({state:e,formatValue:n}){let a=e.totalBudget-e.totalSpent,o=e.idealBurnRate>0?(e.burnRate-e.idealBurnRate)/e.idealBurnRate*100:0;return(0,i.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-4`,children:[(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.DollarSign,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Remaining`})]}),(0,i.jsx)(`div`,{className:t.cn(`text-2xl font-bold`,a<0&&`text-red-600`),children:n(Math.max(0,a))}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[(100-e.budgetUsedPercent).toFixed(1),`% of budget`]})]}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Burn Rate`})]}),(0,i.jsxs)(`div`,{className:t.cn(`text-2xl font-bold`,e.isDangerZone&&`text-red-600`,e.isWarningZone&&`text-amber-600`),children:[n(e.burnRate),`/day`]}),(0,i.jsxs)(`div`,{className:t.cn(`text-xs mt-1 flex items-center gap-1`,o>0?`text-red-600`:`text-green-600`),children:[o>0?(0,i.jsx)(r.TrendingUp,{className:`h-3 w-3`}):(0,i.jsx)(r.TrendingDown,{className:`h-3 w-3`}),Math.abs(o).toFixed(1),`% vs ideal`]})]}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.Clock,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Days Left`})]}),(0,i.jsx)(`div`,{className:`text-2xl font-bold`,children:e.daysRemaining}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[e.timeElapsedPercent.toFixed(1),`% elapsed`]})]}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.Calendar,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Depletion Date`})]}),(0,i.jsx)(`div`,{className:t.cn(`text-lg font-bold`,e.depletionDate&&e.depletionDate<e.endDate&&`text-red-600`),children:e.depletionDate?s(e.depletionDate):`On Track`}),e.depletionDate&&e.depletionDate<e.endDate&&(0,i.jsxs)(`div`,{className:`text-xs text-red-600 mt-1 flex items-center gap-1`,children:[(0,i.jsx)(r.AlertTriangle,{className:`h-3 w-3`}),`Before period ends`]})]})]})}function f({state:e,formatValue:n}){let a=e.spendHistory.map(e=>e.amount),o=l(a),s=[];for(let e=0;e<a.length;e+=7){let t=a.slice(e,e+7);t.length>0&&s.push(t.reduce((e,t)=>e+t,0)/t.length)}let c=l(s),u=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0,d=u*7;return(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2 rounded-lg bg-muted/50`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Daily Avg`}),(0,i.jsx)(`div`,{className:`font-semibold`,children:n(u)})]}),o.direction!==`neutral`&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-sm font-medium`,o.direction===`up`?`text-red-600`:`text-green-600`),children:[o.direction===`up`?(0,i.jsx)(r.TrendingUp,{className:`h-4 w-4`}):(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),o.percentage.toFixed(1),`%`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2 rounded-lg bg-muted/50`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Weekly Avg`}),(0,i.jsx)(`div`,{className:`font-semibold`,children:n(d)})]}),c.direction!==`neutral`&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-sm font-medium`,c.direction===`up`?`text-red-600`:`text-green-600`),children:[c.direction===`up`?(0,i.jsx)(r.TrendingUp,{className:`h-4 w-4`}):(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),c.percentage.toFixed(1),`%`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2 rounded-lg bg-muted/50`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Monthly Proj.`}),(0,i.jsx)(`div`,{className:`font-semibold`,children:n(e.burnRate*30)})]}),(0,i.jsx)(`div`,{className:t.cn(`text-xs`,e.burnRate*30>e.totalBudget?`text-red-600`:`text-green-600`),children:e.burnRate*30>e.totalBudget?`Over budget`:`On track`})]})]})}function p({categories:e,formatValue:n}){return(0,i.jsxs)(`div`,{className:`space-y-3`,children:[(0,i.jsxs)(`div`,{className:`text-sm font-medium text-muted-foreground flex items-center gap-2`,children:[(0,i.jsx)(r.Target,{className:`h-4 w-4`}),`Category Breakdown`]}),(0,i.jsx)(`div`,{className:`space-y-2`,children:e.map((e,r)=>{let o=e.spent/e.budget*100,s=e.spent>e.budget,c=e.color||a[r%a.length];return(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`span`,{className:`w-3 h-3 rounded-full`,style:{backgroundColor:c}}),(0,i.jsx)(`span`,{className:`font-medium`,children:e.name})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`span`,{className:t.cn(s&&`text-red-600`),children:n(e.spent)}),(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`/ `,n(e.budget)]})]})]}),(0,i.jsx)(`div`,{className:`h-2 rounded-full bg-muted overflow-hidden`,children:(0,i.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-all duration-500`,s&&`animate-pulse`),style:{width:`${Math.min(o,100)}%`,backgroundColor:s?`#ef4444`:c}})}),(0,i.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,i.jsxs)(`span`,{children:[o.toFixed(1),`% used`]}),(0,i.jsx)(`span`,{children:s?`${n(e.spent-e.budget)} over`:`${n(e.budget-e.spent)} left`})]})]},e.id)})})]})}function m({state:e,formatValue:n}){return!e.isDangerZone&&!e.isWarningZone?null:(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-3 px-4 py-3 rounded-lg`,e.isDangerZone?`bg-red-100 dark:bg-red-950 text-red-800 dark:text-red-200`:`bg-amber-100 dark:bg-amber-950 text-amber-800 dark:text-amber-200`),children:[(0,i.jsx)(r.AlertTriangle,{className:`h-5 w-5 flex-shrink-0`}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`font-semibold`,children:e.isDangerZone?`Budget at Risk!`:`Budget Warning`}),(0,i.jsx)(`div`,{className:`text-sm opacity-90`,children:e.isDangerZone?`At current burn rate of ${n(e.burnRate)}/day, budget will deplete ${e.depletionDate?`on ${s(e.depletionDate)}`:`before period ends`}.`:`Spending is ${((e.burnRate/e.idealBurnRate-1)*100).toFixed(0)}% above ideal burn rate. Consider reducing expenses.`})]})]})}function h({budget:e,startDate:r,endDate:a,spendHistory:s,categories:c=[],currency:l=`$`,dangerThreshold:h=30,warningThreshold:g=15,showProjection:_=!0,showIdealLine:v=!0,showCategories:y=!0,showTrends:b=!0,animated:x=!0,height:S=300,formatValue:C,onDangerZone:w,onBudgetDepleted:T,className:E}){let D=n.useRef(null),[O,k]=n.useState(600),A=n.useMemo(()=>o(e,r,a,s,c,h,g),[e,r,a,s,c,h,g]),j=n.useCallback(e=>e>=1e6?`${l}${(e/1e6).toFixed(1)}M`:e>=1e3?`${l}${(e/1e3).toFixed(1)}K`:`${l}${e.toFixed(2)}`,[l]),M=C||j,N=n.useRef(A.isDangerZone),P=n.useRef(A.totalSpent>=A.totalBudget);return n.useEffect(()=>{A.isDangerZone&&!N.current&&w?.(),N.current=A.isDangerZone;let e=A.totalSpent>=A.totalBudget;e&&!P.current&&T?.(),P.current=e},[A.isDangerZone,A.totalSpent,A.totalBudget,w,T]),n.useEffect(()=>{if(!D.current)return;let e=new ResizeObserver(e=>{for(let t of e)k(t.contentRect.width)});return e.observe(D.current),()=>e.disconnect()},[]),(0,i.jsxs)(`div`,{ref:D,className:t.cn(`space-y-6`,E),children:[(0,i.jsx)(m,{state:A,formatValue:M}),(0,i.jsx)(d,{state:A,formatValue:M}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,i.jsx)(`div`,{className:`text-sm font-medium`,children:`Budget Burn-down`}),(0,i.jsxs)(`div`,{className:`flex items-center gap-4 text-xs text-muted-foreground`,children:[v&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-6 h-0.5 bg-slate-400`,style:{backgroundImage:`repeating-linear-gradient(90deg, currentColor 0, currentColor 4px, transparent 4px, transparent 8px)`}}),(0,i.jsx)(`span`,{children:`Ideal`})]}),_&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-6 h-0.5`,style:{backgroundImage:`repeating-linear-gradient(90deg, #22c55e 0, #22c55e 3px, transparent 3px, transparent 6px)`}}),(0,i.jsx)(`span`,{children:`Projected`})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-6 h-0.5 bg-gradient-to-r from-blue-500 to-green-500 rounded`}),(0,i.jsx)(`span`,{children:`Actual`})]})]})]}),(0,i.jsx)(u,{state:A,width:O-32,height:S,showProjection:_,showIdealLine:v,animated:x,formatValue:M})]}),b&&s.length>0&&(0,i.jsx)(f,{state:A,formatValue:M}),y&&c.length>0&&(0,i.jsx)(`div`,{className:`rounded-lg border bg-card p-4`,children:(0,i.jsx)(p,{categories:c,formatValue:M})})]})}function g({budget:e,startDate:t,endDate:r,initialHistory:i=[],initialCategories:a=[],dangerThreshold:s=30,warningThreshold:c=15,onDangerZone:l,onBudgetDepleted:u}){let[d,f]=n.useState(i),[p,m]=n.useState(a),h=n.useMemo(()=>o(e,t,r,d,p,s,c),[e,t,r,d,p,s,c]),g=n.useRef(h.isDangerZone),_=n.useRef(h.totalSpent>=h.totalBudget);n.useEffect(()=>{h.isDangerZone&&!g.current&&l?.(),g.current=h.isDangerZone;let e=h.totalSpent>=h.totalBudget;e&&!_.current&&u?.(),_.current=e},[h.isDangerZone,h.totalSpent,h.totalBudget,l,u]);let v=n.useCallback((e,t,n)=>{f(r=>[...r,{date:e,amount:t,categories:n}]),n&&m(e=>e.map(e=>({...e,spent:e.spent+(n[e.id]||0)})))},[]),y=n.useCallback(e=>{f(t=>{let n=t.find(t=>t.date.getTime()===e.getTime());return n?.categories&&m(e=>e.map(e=>({...e,spent:Math.max(0,e.spent-(n.categories?.[e.id]||0))}))),t.filter(t=>t.date.getTime()!==e.getTime())})},[]),b=n.useCallback((e,t)=>{m(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),x=n.useCallback(e=>{m(t=>[...t,e])},[]),S=n.useCallback(e=>{m(t=>t.filter(t=>t.id!==e))},[]),C=n.useCallback(()=>{f([]),m(e=>e.map(e=>({...e,spent:0})))},[]),w=n.useCallback(t=>{let n=h.totalSpent+h.burnRate*t;return{projectedSpend:n,projectedRemaining:Math.max(0,e-n),projectedPercentUsed:Math.min(100,n/e*100),willDeplete:n>=e,daysUntilDepletion:h.burnRate>0?Math.ceil((e-h.totalSpent)/h.burnRate):1/0}},[e,h.totalSpent,h.burnRate]);return{...h,spendHistory:d,categories:p,addSpend:v,removeSpend:y,updateCategory:b,addCategory:x,removeCategory:S,reset:C,setSpendHistory:f,setCategories:m,getForecast:w}}exports.default=h,exports.useBudgetBurn=g;
20
+ `})]})}function d({state:e,formatValue:n}){let a=e.totalBudget-e.totalSpent,o=e.idealBurnRate>0?(e.burnRate-e.idealBurnRate)/e.idealBurnRate*100:0;return(0,i.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-4`,children:[(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.DollarSign,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Remaining`})]}),(0,i.jsx)(`div`,{className:t.cn(`text-2xl font-bold`,a<0&&`text-red-600`),children:n(Math.max(0,a))}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[(100-e.budgetUsedPercent).toFixed(1),`% of budget`]})]}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Burn Rate`})]}),(0,i.jsxs)(`div`,{className:t.cn(`text-2xl font-bold`,e.isDangerZone&&`text-red-600`,e.isWarningZone&&`text-amber-600`),children:[n(e.burnRate),`/day`]}),(0,i.jsxs)(`div`,{className:t.cn(`text-xs mt-1 flex items-center gap-1`,o>0?`text-red-600`:`text-green-600`),children:[o>0?(0,i.jsx)(r.TrendingUp,{className:`h-3 w-3`}):(0,i.jsx)(r.TrendingDown,{className:`h-3 w-3`}),Math.abs(o).toFixed(1),`% vs ideal`]})]}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.Clock,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Days Left`})]}),(0,i.jsx)(`div`,{className:`text-2xl font-bold`,children:e.daysRemaining}),(0,i.jsxs)(`div`,{className:`text-xs text-muted-foreground mt-1`,children:[e.timeElapsedPercent.toFixed(1),`% elapsed`]})]}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground text-sm mb-1`,children:[(0,i.jsx)(r.Calendar,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{children:`Depletion Date`})]}),(0,i.jsx)(`div`,{className:t.cn(`text-lg font-bold`,e.depletionDate&&e.depletionDate<e.endDate&&`text-red-600`),children:e.depletionDate?s(e.depletionDate):`On Track`}),e.depletionDate&&e.depletionDate<e.endDate&&(0,i.jsxs)(`div`,{className:`text-xs text-red-600 mt-1 flex items-center gap-1`,children:[(0,i.jsx)(r.AlertTriangle,{className:`h-3 w-3`}),`Before period ends`]})]})]})}function f({state:e,formatValue:n}){let a=e.spendHistory.map(e=>e.amount),o=l(a),s=[];for(let e=0;e<a.length;e+=7){let t=a.slice(e,e+7);t.length>0&&s.push(t.reduce((e,t)=>e+t,0)/t.length)}let c=l(s),u=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0,d=u*7;return(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2 rounded-lg bg-muted/50`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Daily Avg`}),(0,i.jsx)(`div`,{className:`font-semibold`,children:n(u)})]}),o.direction!==`neutral`&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-sm font-medium`,o.direction===`up`?`text-red-600`:`text-green-600`),children:[o.direction===`up`?(0,i.jsx)(r.TrendingUp,{className:`h-4 w-4`}):(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),o.percentage.toFixed(1),`%`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2 rounded-lg bg-muted/50`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Weekly Avg`}),(0,i.jsx)(`div`,{className:`font-semibold`,children:n(d)})]}),c.direction!==`neutral`&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-sm font-medium`,c.direction===`up`?`text-red-600`:`text-green-600`),children:[c.direction===`up`?(0,i.jsx)(r.TrendingUp,{className:`h-4 w-4`}):(0,i.jsx)(r.TrendingDown,{className:`h-4 w-4`}),c.percentage.toFixed(1),`%`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-3 px-4 py-2 rounded-lg bg-muted/50`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`Monthly Proj.`}),(0,i.jsx)(`div`,{className:`font-semibold`,children:n(e.burnRate*30)})]}),(0,i.jsx)(`div`,{className:t.cn(`text-xs`,e.burnRate*30>e.totalBudget?`text-red-600`:`text-green-600`),children:e.burnRate*30>e.totalBudget?`Over budget`:`On track`})]})]})}function p({categories:e,formatValue:n}){return(0,i.jsxs)(`div`,{className:`space-y-3`,children:[(0,i.jsxs)(`div`,{className:`text-sm font-medium text-muted-foreground flex items-center gap-2`,children:[(0,i.jsx)(r.Target,{className:`h-4 w-4`}),`Category Breakdown`]}),(0,i.jsx)(`div`,{className:`space-y-2`,children:e.map((e,r)=>{let o=e.spent/e.budget*100,s=e.spent>e.budget,c=e.color||a[r%a.length];return(0,i.jsxs)(`div`,{className:`space-y-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between text-sm`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`span`,{className:`w-3 h-3 rounded-full`,style:{backgroundColor:c}}),(0,i.jsx)(`span`,{className:`font-medium`,children:e.name})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`span`,{className:t.cn(s&&`text-red-600`),children:n(e.spent)}),(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`/ `,n(e.budget)]})]})]}),(0,i.jsx)(`div`,{className:`h-2 rounded-full bg-muted overflow-hidden`,children:(0,i.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-all duration-500`,s&&`animate-pulse`),style:{width:`${Math.min(o,100)}%`,backgroundColor:s?`#ef4444`:c}})}),(0,i.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,i.jsxs)(`span`,{children:[o.toFixed(1),`% used`]}),(0,i.jsx)(`span`,{children:s?`${n(e.spent-e.budget)} over`:`${n(e.budget-e.spent)} left`})]})]},e.id)})})]})}function m({state:e,formatValue:n}){return!e.isDangerZone&&!e.isWarningZone?null:(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-3 px-4 py-3 rounded-lg`,e.isDangerZone?`bg-red-100 dark:bg-red-950 text-red-800 dark:text-red-200`:`bg-amber-100 dark:bg-amber-950 text-amber-800 dark:text-amber-200`),children:[(0,i.jsx)(r.AlertTriangle,{className:`h-5 w-5 flex-shrink-0`}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`font-semibold`,children:e.isDangerZone?`Budget at Risk!`:`Budget Warning`}),(0,i.jsx)(`div`,{className:`text-sm opacity-90`,children:e.isDangerZone?`At current burn rate of ${n(e.burnRate)}/day, budget will deplete ${e.depletionDate?`on ${s(e.depletionDate)}`:`before period ends`}.`:`Spending is ${((e.burnRate/e.idealBurnRate-1)*100).toFixed(0)}% above ideal burn rate. Consider reducing expenses.`})]})]})}function h({budget:e,startDate:r,endDate:a,spendHistory:s,categories:c=[],currency:l=`$`,dangerThreshold:h=30,warningThreshold:g=15,showProjection:_=!0,showIdealLine:v=!0,showCategories:y=!0,showTrends:b=!0,animated:x=!0,height:S=300,formatValue:C,onDangerZone:w,onBudgetDepleted:T,className:E}){let D=n.useRef(null),[O,k]=n.useState(600),A=n.useMemo(()=>o(e,r,a,s,c,h,g),[e,r,a,s,c,h,g]),j=n.useCallback(e=>e>=1e6?`${l}${(e/1e6).toFixed(1)}M`:e>=1e3?`${l}${(e/1e3).toFixed(1)}K`:`${l}${e.toFixed(2)}`,[l]),M=C||j,N=n.useRef(A.isDangerZone),P=n.useRef(A.totalSpent>=A.totalBudget);return n.useEffect(()=>{A.isDangerZone&&!N.current&&w?.(),N.current=A.isDangerZone;let e=A.totalSpent>=A.totalBudget;e&&!P.current&&T?.(),P.current=e},[A.isDangerZone,A.totalSpent,A.totalBudget,w,T]),n.useEffect(()=>{if(!D.current)return;let e=new ResizeObserver(e=>{for(let t of e)k(t.contentRect.width)});return e.observe(D.current),()=>e.disconnect()},[]),(0,i.jsxs)(`div`,{ref:D,className:t.cn(`space-y-6`,E),children:[(0,i.jsx)(m,{state:A,formatValue:M}),(0,i.jsx)(d,{state:A,formatValue:M}),(0,i.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,i.jsx)(`div`,{className:`text-sm font-medium`,children:`Budget Burn-down`}),(0,i.jsxs)(`div`,{className:`flex items-center gap-4 text-xs text-muted-foreground`,children:[v&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-6 h-0.5 bg-slate-400`,style:{backgroundImage:`repeating-linear-gradient(90deg, currentColor 0, currentColor 4px, transparent 4px, transparent 8px)`}}),(0,i.jsx)(`span`,{children:`Ideal`})]}),_&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-6 h-0.5`,style:{backgroundImage:`repeating-linear-gradient(90deg, #22c55e 0, #22c55e 3px, transparent 3px, transparent 6px)`}}),(0,i.jsx)(`span`,{children:`Projected`})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-6 h-0.5 bg-gradient-to-r from-blue-500 to-green-500 rounded`}),(0,i.jsx)(`span`,{children:`Actual`})]})]})]}),(0,i.jsx)(u,{state:A,width:O-32,height:S,showProjection:_,showIdealLine:v,animated:x,formatValue:M})]}),b&&s.length>0&&(0,i.jsx)(f,{state:A,formatValue:M}),y&&c.length>0&&(0,i.jsx)(`div`,{className:`rounded-lg border bg-card p-4`,children:(0,i.jsx)(p,{categories:c,formatValue:M})})]})}function g({budget:e,startDate:t,endDate:r,initialHistory:i=[],initialCategories:a=[],dangerThreshold:s=30,warningThreshold:c=15,onDangerZone:l,onBudgetDepleted:u}){let[d,f]=n.useState(i),[p,m]=n.useState(a),h=n.useMemo(()=>o(e,t,r,d,p,s,c),[e,t,r,d,p,s,c]),g=n.useRef(h.isDangerZone),_=n.useRef(h.totalSpent>=h.totalBudget);n.useEffect(()=>{h.isDangerZone&&!g.current&&l?.(),g.current=h.isDangerZone;let e=h.totalSpent>=h.totalBudget;e&&!_.current&&u?.(),_.current=e},[h.isDangerZone,h.totalSpent,h.totalBudget,l,u]);let v=n.useCallback((e,t,n)=>{f(r=>[...r,{date:e,amount:t,categories:n}]),n&&m(e=>e.map(e=>({...e,spent:e.spent+(n[e.id]||0)})))},[]),y=n.useCallback(e=>{f(t=>{let n=t.find(t=>t.date.getTime()===e.getTime());return n?.categories&&m(e=>e.map(e=>({...e,spent:Math.max(0,e.spent-(n.categories?.[e.id]||0))}))),t.filter(t=>t.date.getTime()!==e.getTime())})},[]),b=n.useCallback((e,t)=>{m(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),x=n.useCallback(e=>{m(t=>[...t,e])},[]),S=n.useCallback(e=>{m(t=>t.filter(t=>t.id!==e))},[]),C=n.useCallback(()=>{f([]),m(e=>e.map(e=>({...e,spent:0})))},[]),w=n.useCallback(t=>{let n=h.totalSpent+h.burnRate*t;return{projectedSpend:n,projectedRemaining:Math.max(0,e-n),projectedPercentUsed:Math.min(100,n/e*100),willDeplete:n>=e,daysUntilDepletion:h.burnRate>0?Math.ceil((e-h.totalSpent)/h.burnRate):1/0}},[e,h.totalSpent,h.burnRate]);return{...h,spendHistory:d,categories:p,addSpend:v,removeSpend:y,updateCategory:b,addCategory:x,removeCategory:S,reset:C,setSpendHistory:f,setCategories:m,getForecast:w}}exports.WakaBudgetBurn=h,exports.default=h,exports.useBudgetBurn=g;
@@ -113,8 +113,8 @@ function g({ state: n, width: r, height: i, showProjection: a, showIdealLine: o,
113
113
  return;
114
114
  }
115
115
  let e = Date.now(), t = () => {
116
- let n = Date.now() - e, r = Math.min(n / 1500, 1);
117
- f(1 - (1 - r) ** 3), r < 1 && requestAnimationFrame(t);
116
+ let n = Date.now() - e, r = Math.min(n / 1500, 1), i = 1 - (1 - r) ** 3;
117
+ f(i), r < 1 && requestAnimationFrame(t);
118
118
  };
119
119
  requestAnimationFrame(t);
120
120
  }, [s]);
@@ -743,4 +743,4 @@ function S({ budget: e, startDate: n, endDate: r, initialHistory: i = [], initia
743
743
  };
744
744
  }
745
745
  //#endregion
746
- export { x as default, S as useBudgetBurn };
746
+ export { x as WakaBudgetBurn, x as default, S as useBudgetBurn };
@@ -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(`../scroll-area/index.cjs.js`),a=require(`../tooltip/index.cjs.js`);let o=require(`react`);o=e.__toESM(o);let s=require(`lucide-react`),c=require(`react/jsx-runtime`);var l={success:{icon:s.CheckCircle2,color:`text-green-500`,bgColor:`bg-green-500`,label:`Success`},failed:{icon:s.XCircle,color:`text-red-500`,bgColor:`bg-red-500`,label:`Failed`},running:{icon:s.Loader2,color:`text-blue-500`,bgColor:`bg-blue-500`,label:`Running`},pending:{icon:s.Clock,color:`text-gray-400`,bgColor:`bg-gray-400`,label:`Pending`},skipped:{icon:s.SkipForward,color:`text-gray-500`,bgColor:`bg-gray-500`,label:`Skipped`},cancelled:{icon:s.XCircle,color:`text-orange-500`,bgColor:`bg-orange-500`,label:`Cancelled`}};function u(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return t<60?`${t}m ${n}s`:`${Math.floor(t/60)}h ${t%60}m`}function d({cell:e,onClick:n,showDuration:r}){let i=l[e.status],o=i.icon;return(0,c.jsx)(a.TooltipProvider,{children:(0,c.jsxs)(a.Tooltip,{children:[(0,c.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,c.jsxs)(`button`,{className:t.cn(`w-12 h-12 rounded-lg flex flex-col items-center justify-center gap-0.5 transition-all`,`hover:scale-105 hover:shadow-md cursor-pointer`,`border border-transparent`,e.status===`success`&&`bg-green-500/10 hover:border-green-500/50`,e.status===`failed`&&`bg-red-500/10 hover:border-red-500/50`,e.status===`running`&&`bg-blue-500/10 hover:border-blue-500/50`,e.status===`pending`&&`bg-gray-500/10 hover:border-gray-500/50`,e.status===`skipped`&&`bg-gray-500/5 hover:border-gray-500/30`,e.status===`cancelled`&&`bg-orange-500/10 hover:border-orange-500/50`),onClick:n,children:[(0,c.jsx)(o,{className:t.cn(`h-5 w-5`,i.color,e.status===`running`&&`animate-spin`)}),r&&e.duration&&(0,c.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:u(e.duration)})]})}),(0,c.jsx)(a.TooltipContent,{children:(0,c.jsxs)(`div`,{className:`space-y-1`,children:[(0,c.jsx)(`div`,{className:`font-medium`,children:i.label}),e.duration&&(0,c.jsxs)(`div`,{className:`text-xs`,children:[`Duration: `,u(e.duration)]}),e.startedAt&&(0,c.jsxs)(`div`,{className:`text-xs`,children:[`Started: `,e.startedAt.toLocaleString()]})]})})]})})}function f({columns:e,rows:a,onCellClick:f,onRetry:p,onViewLogs:m,title:h=`Build Matrix`,showDuration:g=!0,className:_}){let[v,y]=o.useState(new Set),b=e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},x=o.useMemo(()=>{let e=0,t=0,n=0,r=0;return a.forEach(i=>{i.cells.forEach(i=>{e++,i.status===`success`&&t++,i.status===`failed`&&n++,i.status===`running`&&r++})}),{total:e,success:t,failed:n,running:r,passRate:e>0?t/e*100:0}},[a]);return(0,c.jsxs)(`div`,{className:t.cn(`border rounded-lg bg-background`,_),children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between gap-4 p-3 border-b`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,c.jsx)(s.Grid3X3,{className:`h-5 w-5`}),(0,c.jsx)(`h3`,{className:`font-semibold`,children:h})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[x.total,` jobs`]}),x.success>0&&(0,c.jsxs)(n.Badge,{className:`bg-green-500 text-xs`,children:[x.success,` passed`]}),x.failed>0&&(0,c.jsxs)(n.Badge,{className:`bg-red-500 text-xs`,children:[x.failed,` failed`]}),x.running>0&&(0,c.jsxs)(n.Badge,{className:`bg-blue-500 text-xs`,children:[x.running,` running`]})]})]}),(0,c.jsx)(`div`,{className:`flex items-center gap-4 px-3 py-2 border-b bg-muted/30 text-xs flex-wrap`,children:Object.entries(l).map(([e,n])=>{let r=n.icon;return(0,c.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,c.jsx)(r,{className:t.cn(`h-3 w-3`,n.color)}),(0,c.jsx)(`span`,{children:n.label})]},e)})}),(0,c.jsx)(i.ScrollArea,{className:`max-h-[500px]`,children:(0,c.jsx)(`div`,{className:`p-3`,children:(0,c.jsxs)(`table`,{className:`w-full`,children:[(0,c.jsx)(`thead`,{children:(0,c.jsxs)(`tr`,{children:[(0,c.jsx)(`th`,{className:`text-left p-2 text-sm font-medium text-muted-foreground w-48`,children:`Configuration`}),e.map((e,t)=>(0,c.jsx)(`th`,{className:`p-2 text-center text-sm font-medium text-muted-foreground`,children:e},t))]})}),(0,c.jsx)(`tbody`,{children:a.map((i,a)=>{let m=v.has(a);return i.cells.filter(e=>e.status===`success`).length,i.cells.filter(e=>e.status===`failed`).length,i.cells.length,(0,c.jsxs)(o.Fragment,{children:[(0,c.jsxs)(`tr`,{className:`border-t hover:bg-muted/30`,children:[(0,c.jsx)(`td`,{className:`p-2`,children:(0,c.jsxs)(`button`,{className:`flex items-center gap-2 text-left w-full`,onClick:()=>b(a),children:[m?(0,c.jsx)(s.ChevronDown,{className:`h-4 w-4 text-muted-foreground`}):(0,c.jsx)(s.ChevronRight,{className:`h-4 w-4 text-muted-foreground`}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`div`,{className:`font-medium text-sm`,children:i.label}),i.description&&(0,c.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:i.description})]})]})}),i.cells.map((e,t)=>(0,c.jsx)(`td`,{className:`p-2`,children:(0,c.jsx)(`div`,{className:`flex justify-center`,children:(0,c.jsx)(d,{cell:e,onClick:()=>f?.(a,t,e),showDuration:g})})},t))]}),m&&(0,c.jsx)(`tr`,{className:`bg-muted/20`,children:(0,c.jsx)(`td`,{colSpan:e.length+1,className:`p-4`,children:(0,c.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:i.cells.map((i,o)=>{let d=l[i.status],f=d.icon;return(0,c.jsxs)(`div`,{className:`border rounded-lg p-3 bg-background`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(f,{className:t.cn(`h-4 w-4`,d.color)}),(0,c.jsx)(`span`,{className:`font-medium text-sm`,children:e[o]})]}),(0,c.jsx)(n.Badge,{variant:`outline`,className:d.color,children:d.label})]}),(0,c.jsxs)(`div`,{className:`text-xs text-muted-foreground space-y-1`,children:[i.duration&&(0,c.jsxs)(`div`,{children:[`Duration: `,u(i.duration)]}),i.startedAt&&(0,c.jsxs)(`div`,{children:[`Started: `,i.startedAt.toLocaleTimeString()]})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[i.url&&(0,c.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:()=>window.open(i.url,`_blank`),children:[(0,c.jsx)(s.ExternalLink,{className:`h-3 w-3 mr-1`}),`View`]}),i.status===`failed`&&p&&(0,c.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:()=>p(a,o),children:[(0,c.jsx)(s.RefreshCw,{className:`h-3 w-3 mr-1`}),`Retry`]})]})]},o)})})})})]},a)})})]})})}),(0,c.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-t bg-muted/30 text-sm`,children:[(0,c.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Pass Rate: `,(0,c.jsxs)(`span`,{className:`font-medium text-foreground`,children:[x.passRate.toFixed(1),`%`]})]}),(0,c.jsxs)(`span`,{className:`text-muted-foreground`,children:[x.success,`/`,x.total,` jobs passed`]})]})]})}var p=[`Ubuntu 22.04`,`Ubuntu 20.04`,`macOS 13`,`Windows 2022`],m=[{label:`Node.js 20`,description:`LTS version`,cells:[{id:`1`,status:`success`,duration:125},{id:`2`,status:`success`,duration:142},{id:`3`,status:`success`,duration:98},{id:`4`,status:`success`,duration:156}]},{label:`Node.js 18`,description:`Previous LTS`,cells:[{id:`5`,status:`success`,duration:118},{id:`6`,status:`success`,duration:135},{id:`7`,status:`failed`,duration:45},{id:`8`,status:`success`,duration:162}]},{label:`Node.js 21`,description:`Current`,cells:[{id:`9`,status:`running`,startedAt:new Date},{id:`10`,status:`pending`},{id:`11`,status:`pending`},{id:`12`,status:`pending`}]}];exports.WakaBuildMatrix=f,exports.defaultBuildMatrixColumns=p,exports.defaultBuildMatrixRows=m;
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("../scroll-area/index.cjs.js"),a=require("../tooltip/index.cjs.js");let o=require("react");o=e.__toESM(o);let s=require("lucide-react"),c=require("react/jsx-runtime");var l={success:{icon:s.CheckCircle2,color:`text-green-500`,bgColor:`bg-green-500`,label:`Success`},failed:{icon:s.XCircle,color:`text-red-500`,bgColor:`bg-red-500`,label:`Failed`},running:{icon:s.Loader2,color:`text-blue-500`,bgColor:`bg-blue-500`,label:`Running`},pending:{icon:s.Clock,color:`text-gray-400`,bgColor:`bg-gray-400`,label:`Pending`},skipped:{icon:s.SkipForward,color:`text-gray-500`,bgColor:`bg-gray-500`,label:`Skipped`},cancelled:{icon:s.XCircle,color:`text-orange-500`,bgColor:`bg-orange-500`,label:`Cancelled`}};function u(e){if(e<60)return`${e}s`;let t=Math.floor(e/60),n=e%60;return t<60?`${t}m ${n}s`:`${Math.floor(t/60)}h ${t%60}m`}function d({cell:e,onClick:n,showDuration:r}){let i=l[e.status],o=i.icon;return(0,c.jsx)(a.TooltipProvider,{children:(0,c.jsxs)(a.Tooltip,{children:[(0,c.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,c.jsxs)(`button`,{className:t.cn(`w-12 h-12 rounded-lg flex flex-col items-center justify-center gap-0.5 transition-all`,`hover:scale-105 hover:shadow-md cursor-pointer`,`border border-transparent`,e.status===`success`&&`bg-green-500/10 hover:border-green-500/50`,e.status===`failed`&&`bg-red-500/10 hover:border-red-500/50`,e.status===`running`&&`bg-blue-500/10 hover:border-blue-500/50`,e.status===`pending`&&`bg-gray-500/10 hover:border-gray-500/50`,e.status===`skipped`&&`bg-gray-500/5 hover:border-gray-500/30`,e.status===`cancelled`&&`bg-orange-500/10 hover:border-orange-500/50`),onClick:n,children:[(0,c.jsx)(o,{className:t.cn(`h-5 w-5`,i.color,e.status===`running`&&`animate-spin`)}),r&&e.duration&&(0,c.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:u(e.duration)})]})}),(0,c.jsx)(a.TooltipContent,{children:(0,c.jsxs)(`div`,{className:`space-y-1`,children:[(0,c.jsx)(`div`,{className:`font-medium`,children:i.label}),e.duration&&(0,c.jsxs)(`div`,{className:`text-xs`,children:[`Duration: `,u(e.duration)]}),e.startedAt&&(0,c.jsxs)(`div`,{className:`text-xs`,children:[`Started: `,e.startedAt.toLocaleString()]})]})})]})})}function f({columns:e,rows:a,onCellClick:f,onRetry:p,onViewLogs:m,title:h=`Build Matrix`,showDuration:g=!0,className:_}){let[v,y]=o.useState(new Set),b=e=>{y(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},x=o.useMemo(()=>{let e=0,t=0,n=0,r=0;return a.forEach(i=>{i.cells.forEach(i=>{e++,i.status===`success`&&t++,i.status===`failed`&&n++,i.status===`running`&&r++})}),{total:e,success:t,failed:n,running:r,passRate:e>0?t/e*100:0}},[a]);return(0,c.jsxs)(`div`,{className:t.cn(`border rounded-lg bg-background`,_),children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between gap-4 p-3 border-b`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,c.jsx)(s.Grid3X3,{className:`h-5 w-5`}),(0,c.jsx)(`h3`,{className:`font-semibold`,children:h})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[x.total,` jobs`]}),x.success>0&&(0,c.jsxs)(n.Badge,{className:`bg-green-500 text-xs`,children:[x.success,` passed`]}),x.failed>0&&(0,c.jsxs)(n.Badge,{className:`bg-red-500 text-xs`,children:[x.failed,` failed`]}),x.running>0&&(0,c.jsxs)(n.Badge,{className:`bg-blue-500 text-xs`,children:[x.running,` running`]})]})]}),(0,c.jsx)(`div`,{className:`flex items-center gap-4 px-3 py-2 border-b bg-muted/30 text-xs flex-wrap`,children:Object.entries(l).map(([e,n])=>{let r=n.icon;return(0,c.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,c.jsx)(r,{className:t.cn(`h-3 w-3`,n.color)}),(0,c.jsx)(`span`,{children:n.label})]},e)})}),(0,c.jsx)(i.ScrollArea,{className:`max-h-[500px]`,children:(0,c.jsx)(`div`,{className:`p-3`,children:(0,c.jsxs)(`table`,{className:`w-full`,children:[(0,c.jsx)(`thead`,{children:(0,c.jsxs)(`tr`,{children:[(0,c.jsx)(`th`,{className:`text-left p-2 text-sm font-medium text-muted-foreground w-48`,children:`Configuration`}),e.map((e,t)=>(0,c.jsx)(`th`,{className:`p-2 text-center text-sm font-medium text-muted-foreground`,children:e},t))]})}),(0,c.jsx)(`tbody`,{children:a.map((i,a)=>{let m=v.has(a);return i.cells.filter(e=>e.status===`success`).length,i.cells.filter(e=>e.status===`failed`).length,i.cells.length,(0,c.jsxs)(o.Fragment,{children:[(0,c.jsxs)(`tr`,{className:`border-t hover:bg-muted/30`,children:[(0,c.jsx)(`td`,{className:`p-2`,children:(0,c.jsxs)(`button`,{className:`flex items-center gap-2 text-left w-full`,onClick:()=>b(a),children:[m?(0,c.jsx)(s.ChevronDown,{className:`h-4 w-4 text-muted-foreground`}):(0,c.jsx)(s.ChevronRight,{className:`h-4 w-4 text-muted-foreground`}),(0,c.jsxs)(`div`,{children:[(0,c.jsx)(`div`,{className:`font-medium text-sm`,children:i.label}),i.description&&(0,c.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:i.description})]})]})}),i.cells.map((e,t)=>(0,c.jsx)(`td`,{className:`p-2`,children:(0,c.jsx)(`div`,{className:`flex justify-center`,children:(0,c.jsx)(d,{cell:e,onClick:()=>f?.(a,t,e),showDuration:g})})},t))]}),m&&(0,c.jsx)(`tr`,{className:`bg-muted/20`,children:(0,c.jsx)(`td`,{colSpan:e.length+1,className:`p-4`,children:(0,c.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4`,children:i.cells.map((i,o)=>{let d=l[i.status],f=d.icon;return(0,c.jsxs)(`div`,{className:`border rounded-lg p-3 bg-background`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,c.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,c.jsx)(f,{className:t.cn(`h-4 w-4`,d.color)}),(0,c.jsx)(`span`,{className:`font-medium text-sm`,children:e[o]})]}),(0,c.jsx)(n.Badge,{variant:`outline`,className:d.color,children:d.label})]}),(0,c.jsxs)(`div`,{className:`text-xs text-muted-foreground space-y-1`,children:[i.duration&&(0,c.jsxs)(`div`,{children:[`Duration: `,u(i.duration)]}),i.startedAt&&(0,c.jsxs)(`div`,{children:[`Started: `,i.startedAt.toLocaleTimeString()]})]}),(0,c.jsxs)(`div`,{className:`flex items-center gap-2 mt-3`,children:[i.url&&(0,c.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:()=>window.open(i.url,`_blank`),children:[(0,c.jsx)(s.ExternalLink,{className:`h-3 w-3 mr-1`}),`View`]}),i.status===`failed`&&p&&(0,c.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-7 text-xs`,onClick:()=>p(a,o),children:[(0,c.jsx)(s.RefreshCw,{className:`h-3 w-3 mr-1`}),`Retry`]})]})]},o)})})})})]},a)})})]})})}),(0,c.jsxs)(`div`,{className:`flex items-center justify-between px-3 py-2 border-t bg-muted/30 text-sm`,children:[(0,c.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Pass Rate: `,(0,c.jsxs)(`span`,{className:`font-medium text-foreground`,children:[x.passRate.toFixed(1),`%`]})]}),(0,c.jsxs)(`span`,{className:`text-muted-foreground`,children:[x.success,`/`,x.total,` jobs passed`]})]})]})}var p=[`Ubuntu 22.04`,`Ubuntu 20.04`,`macOS 13`,`Windows 2022`],m=[{label:`Node.js 20`,description:`LTS version`,cells:[{id:`1`,status:`success`,duration:125},{id:`2`,status:`success`,duration:142},{id:`3`,status:`success`,duration:98},{id:`4`,status:`success`,duration:156}]},{label:`Node.js 18`,description:`Previous LTS`,cells:[{id:`5`,status:`success`,duration:118},{id:`6`,status:`success`,duration:135},{id:`7`,status:`failed`,duration:45},{id:`8`,status:`success`,duration:162}]},{label:`Node.js 21`,description:`Current`,cells:[{id:`9`,status:`running`,startedAt:new Date},{id:`10`,status:`pending`},{id:`11`,status:`pending`},{id:`12`,status:`pending`}]}];exports.WakaBuildMatrix=f,exports.defaultBuildMatrixColumns=p,exports.defaultBuildMatrixRows=m;
@@ -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(`lucide-react`),i=require(`react/jsx-runtime`);var a={warning:70,danger:85,critical:95},o={"1m":`1 Month`,"3m":`3 Months`,"6m":`6 Months`,"12m":`12 Months`},s=[`1m`,`3m`,`6m`,`12m`],c={sm:{padding:`p-3`,gap:`gap-3`,text:`text-xs`,heading:`text-sm`,icon:`h-4 w-4`,barHeight:`h-2`,cardPadding:`p-3`,spacing:`space-y-3`},md:{padding:`p-4`,gap:`gap-4`,text:`text-sm`,heading:`text-base`,icon:`h-5 w-5`,barHeight:`h-3`,cardPadding:`p-4`,spacing:`space-y-4`},lg:{padding:`p-6`,gap:`gap-6`,text:`text-base`,heading:`text-lg`,icon:`h-6 w-6`,barHeight:`h-4`,cardPadding:`p-6`,spacing:`space-y-6`}},l={cpu:r.Cpu,memory:r.MemoryStick,storage:r.HardDrive,network:r.Network,custom:r.Zap},u={low:`text-blue-500 bg-blue-50 dark:bg-blue-950/50 border-blue-200 dark:border-blue-800`,medium:`text-yellow-600 bg-yellow-50 dark:bg-yellow-950/50 border-yellow-200 dark:border-yellow-800`,high:`text-orange-500 bg-orange-50 dark:bg-orange-950/50 border-orange-200 dark:border-orange-800`,urgent:`text-red-500 bg-red-50 dark:bg-red-950/50 border-red-200 dark:border-red-800`};function d(e,t){return e>=t.critical?`critical`:e>=t.danger?`danger`:e>=t.warning?`warning`:`safe`}function f(e){switch(e){case`critical`:return`text-red-600 dark:text-red-400`;case`danger`:return`text-orange-500 dark:text-orange-400`;case`warning`:return`text-yellow-500 dark:text-yellow-400`;default:return`text-green-500 dark:text-green-400`}}function p(e){switch(e){case`critical`:return`bg-red-500`;case`danger`:return`bg-orange-500`;case`warning`:return`bg-yellow-500`;default:return`bg-green-500`}}function m(e,t){return e>=1e3?`${(e/1e3).toFixed(1)}K ${t}`:`${e.toFixed(t===`%`?0:1)} ${t}`}function h({resources:e,thresholds:t=a,initialTimelineRange:r=`3m`}){let[i,o]=n.useState(e),[s,c]=n.useState(r),[l,u]=n.useState(t),f=n.useCallback(e=>e.projections[s]??e.current,[s]),p=n.useCallback(e=>d(e.total>0?e.current/e.total*100:0,l),[l]),m=n.useCallback(e=>d(f(e)/e.total*100,l),[f,l]),h=n.useCallback((e,t)=>{let n=e.growthRate??5,r=e.current/e.total*100,i;switch(t){case`warning`:i=l.warning;break;case`danger`:i=l.danger;break;case`critical`:i=l.critical;break;default:return null}if(r>=i)return`Now`;if(n<=0)return null;let a=Math.ceil((i-r)/n);return a<=1?`< 1 month`:a<=12?`${a} months`:`${Math.round(a/12)} years`},[l]),g=n.useMemo(()=>i.filter(e=>m(e)!==`safe`),[i,m]),_=n.useMemo(()=>i.filter(e=>m(e)===`critical`),[i,m]);return{resources:i,timelineRange:s,thresholds:l,resourcesAtRisk:g,criticalResources:_,overallHealth:n.useMemo(()=>_.length>0?`critical`:i.filter(e=>m(e)===`danger`).length>0?`danger`:g.length>0?`warning`:`safe`,[i,_,g,m]),setTimelineRange:c,updateResource:n.useCallback((e,t)=>{o(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),getProjectedValue:f,getResourceStatus:p,getProjectedStatus:m,getTimeUntilBreach:h,setThresholds:u,addResource:n.useCallback(e=>{o(t=>[...t,e])},[]),removeResource:n.useCallback(e=>{o(t=>t.filter(t=>t.id!==e))},[])}}function g({value:e,onChange:n,size:a,animated:l}){let u=c[a],d=s.indexOf(e);return(0,i.jsxs)(`div`,{className:t.cn(`relative`,u.spacing),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,u.text),children:[(0,i.jsx)(r.Calendar,{className:u.icon}),(0,i.jsx)(`span`,{className:`font-medium`,children:`Projection Timeline`})]}),(0,i.jsx)(`span`,{className:t.cn(`font-semibold text-primary`,u.text),children:o[e]})]}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:`relative h-2 bg-muted rounded-full`,children:[(0,i.jsx)(`div`,{className:t.cn(`absolute h-full bg-primary rounded-full`,l&&`transition-all duration-300 ease-out`),style:{width:`${(d+1)/s.length*100}%`}}),(0,i.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-between px-0`,children:s.map((e,r)=>(0,i.jsx)(`button`,{type:`button`,onClick:()=>n(e),className:t.cn(`relative z-10 h-4 w-4 rounded-full border-2 transition-all duration-200`,r<=d?`bg-primary border-primary`:`bg-background border-muted-foreground/30 hover:border-primary/50`),"aria-label":`Set timeline to ${o[e]}`,children:r===d&&l&&(0,i.jsx)(`span`,{className:`absolute inset-0 rounded-full animate-capacity-ping bg-primary/50`})},e))})]}),(0,i.jsx)(`div`,{className:`flex justify-between mt-2`,children:s.map(r=>(0,i.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:t.cn(`text-center transition-colors duration-200`,u.text,r===e?`text-primary font-medium`:`text-muted-foreground hover:text-foreground`),children:o[r]},r))})]})]})}function _({resource:e,timelineRange:a,thresholds:s,size:u,animated:h,onClick:g}){let _=c[u],v=e.customIcon||l[e.type],y=e.current/e.total*100,b=e.projections[a]??e.current,x=b/e.total*100,S=d(y,s),C=d(x,s),[w,T]=n.useState(0),[E,D]=n.useState(0);n.useEffect(()=>{if(!h){T(y),D(x);return}let e=Date.now(),t=w,n=E,r=()=>{let i=Date.now()-e,a=Math.min(i/800,1),o=1-(1-a)**3;T(t+(y-t)*o),D(n+(x-n)*o),a<1&&requestAnimationFrame(r)};requestAnimationFrame(r)},[y,x,h]);let O=C!==`safe`,k=C!==S&&C!==`safe`;return(0,i.jsxs)(`div`,{onClick:g,className:t.cn(`group relative rounded-xl border bg-card transition-all duration-200`,_.cardPadding,g&&`cursor-pointer hover:shadow-md hover:border-primary/50`,O&&`border-l-4`,C===`critical`&&`border-l-red-500`,C===`danger`&&`border-l-orange-500`,C===`warning`&&`border-l-yellow-500`),children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center justify-between mb-3`,_.gap),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:t.cn(`p-2 rounded-lg`,C===`safe`&&`bg-green-100 dark:bg-green-900/30`,C===`warning`&&`bg-yellow-100 dark:bg-yellow-900/30`,C===`danger`&&`bg-orange-100 dark:bg-orange-900/30`,C===`critical`&&`bg-red-100 dark:bg-red-900/30`),children:(0,i.jsx)(v,{className:t.cn(_.icon,f(C))})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h3`,{className:t.cn(`font-semibold`,_.heading),children:e.name}),e.growthRate!==void 0&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-muted-foreground`,_.text),children:[(0,i.jsx)(r.TrendingUp,{className:`h-3 w-3`}),(0,i.jsxs)(`span`,{children:[`+`,e.growthRate,`%/month`]})]})]})]}),k&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 px-2 py-1 rounded-full`,_.text,f(C),`bg-current/10`),children:[(0,i.jsx)(r.AlertTriangle,{className:`h-3 w-3`}),(0,i.jsx)(`span`,{children:`Risk`})]})]}),(0,i.jsxs)(`div`,{className:t.cn(`grid grid-cols-2 gap-4 mb-4`,_.text),children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-muted-foreground mb-1`,children:`Current`}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-1`,children:[(0,i.jsxs)(`span`,{className:t.cn(`font-bold text-xl`,f(S)),children:[w.toFixed(0),`%`]}),(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,m(e.current,e.unit),`)`]})]})]}),(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`div`,{className:`text-muted-foreground mb-1`,children:[`Projected (`,o[a],`)`]}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-1`,children:[(0,i.jsxs)(`span`,{className:t.cn(`font-bold text-xl`,f(C)),children:[E.toFixed(0),`%`]}),(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,m(b,e.unit),`)`]})]})]})]}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:t.cn(`w-full bg-muted rounded-full overflow-hidden`,_.barHeight),children:[(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-yellow-500/50 z-10`,style:{left:`${s.warning}%`}}),(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-orange-500/50 z-10`,style:{left:`${s.danger}%`}}),(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-red-500/50 z-10`,style:{left:`${s.critical}%`}}),(0,i.jsx)(`div`,{className:t.cn(`absolute h-full opacity-30 rounded-full`,p(C),h&&`transition-all duration-500 ease-out`),style:{width:`${Math.min(E,100)}%`}}),(0,i.jsx)(`div`,{className:t.cn(`relative h-full rounded-full`,p(S),h&&`transition-all duration-500 ease-out`),style:{width:`${Math.min(w,100)}%`},children:h&&(0,i.jsx)(`div`,{className:`absolute inset-0 overflow-hidden rounded-full`,children:(0,i.jsx)(`div`,{className:`absolute inset-0 animate-capacity-shine`})})})]}),(0,i.jsxs)(`div`,{className:t.cn(`flex justify-between mt-1 text-muted-foreground`,_.text),children:[(0,i.jsx)(`span`,{children:`0%`}),(0,i.jsxs)(`span`,{children:[`Total: `,m(e.total,e.unit)]})]})]}),g&&(0,i.jsx)(`div`,{className:`absolute right-4 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,i.jsx)(r.ChevronRight,{className:t.cn(_.icon,`text-muted-foreground`)})})]})}function v({resources:e,timelineRange:r,thresholds:a,size:s,animated:l}){let u=c[s],f=s===`sm`?120:s===`md`?160:200,m=n.useMemo(()=>{let e=r===`1m`?1:r===`3m`?3:r===`6m`?6:12;return Array.from({length:e+1},(e,t)=>t)},[r]),h=n.useMemo(()=>e.map(e=>{let t=1+(e.growthRate??5)/100,n=m.length-1,r=m.map(r=>{let i=e.current*t**+r,a=Math.min(i/e.total*100,110);return{x:r/n*100,y:100-a}}).map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `),i=d(e.current*t**+n/e.total*100,a);return{id:e.id,name:e.name,path:r,color:p(i).replace(`bg-`,``),status:i}}),[e,m,a]),g={"green-500":`#22c55e`,"yellow-500":`#eab308`,"orange-500":`#f97316`,"red-500":`#ef4444`};return(0,i.jsxs)(`div`,{className:t.cn(`rounded-xl border bg-card`,u.cardPadding),children:[(0,i.jsx)(`h3`,{className:t.cn(`font-semibold mb-4`,u.heading),children:`Capacity Projection`}),(0,i.jsxs)(`div`,{className:`relative`,style:{height:f},children:[(0,i.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-yellow-500/50`,style:{top:`${100-a.warning}%`},children:(0,i.jsxs)(`span`,{className:t.cn(`absolute -top-3 right-0 text-yellow-500`,u.text),children:[a.warning,`%`]})}),(0,i.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-orange-500/50`,style:{top:`${100-a.danger}%`},children:(0,i.jsxs)(`span`,{className:t.cn(`absolute -top-3 right-0 text-orange-500`,u.text),children:[a.danger,`%`]})}),(0,i.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-red-500/50`,style:{top:`${100-a.critical}%`},children:(0,i.jsxs)(`span`,{className:t.cn(`absolute -top-3 right-0 text-red-500`,u.text),children:[a.critical,`%`]})}),(0,i.jsx)(`svg`,{viewBox:`0 0 100 100`,preserveAspectRatio:`none`,className:`w-full h-full`,"aria-hidden":`true`,focusable:`false`,children:h.map(e=>(0,i.jsx)(`path`,{d:e.path,fill:`none`,stroke:g[e.color]||`#22c55e`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:t.cn(l&&`animate-capacity-draw`)},e.id))}),(0,i.jsxs)(`div`,{className:t.cn(`flex justify-between mt-2 text-muted-foreground`,u.text),children:[(0,i.jsx)(`span`,{children:`Now`}),(0,i.jsx)(`span`,{children:o[r]})]})]}),(0,i.jsx)(`div`,{className:t.cn(`flex flex-wrap gap-4 mt-4`,u.text),children:e.map((e,t)=>{let n=h[t];return(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-3 h-3 rounded-full`,style:{backgroundColor:g[n?.color]||`#22c55e`}}),(0,i.jsx)(`span`,{children:e.name})]},e.id)})})]})}function y({recommendations:e,size:n,onAction:a}){let o=c[n];return e.length===0?(0,i.jsx)(`div`,{className:t.cn(`rounded-xl border bg-card text-center`,o.cardPadding),children:(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 text-muted-foreground`,children:[(0,i.jsx)(r.Lightbulb,{className:t.cn(o.icon,`text-green-500`)}),(0,i.jsx)(`p`,{className:o.text,children:`All resources are within healthy limits!`})]})}):(0,i.jsxs)(`div`,{className:t.cn(`rounded-xl border bg-card`,o.cardPadding),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,i.jsx)(`h3`,{className:t.cn(`font-semibold`,o.heading),children:`Scaling Recommendations`}),(0,i.jsxs)(`span`,{className:t.cn(`px-2 py-1 rounded-full bg-muted`,o.text),children:[e.length,` action`,e.length>1?`s`:``]})]}),(0,i.jsx)(`div`,{className:t.cn(`space-y-3`),children:e.map(e=>(0,i.jsx)(`div`,{className:t.cn(`rounded-lg border p-3 transition-colors`,u[e.priority]),children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[e.type===`scale_up`&&(0,i.jsx)(r.ArrowUpRight,{className:`h-4 w-4`}),e.type===`scale_out`&&(0,i.jsx)(r.Plus,{className:`h-4 w-4`}),e.type===`optimize`&&(0,i.jsx)(r.Zap,{className:`h-4 w-4`}),e.type===`monitor`&&(0,i.jsx)(r.Clock,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{className:t.cn(`font-medium`,o.text),children:e.title})]}),(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mb-2`,o.text),children:e.description}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-4`,o.text),children:[e.timeframe&&(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),e.timeframe]}),e.costImpact&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:e.costImpact})]})]}),a&&(0,i.jsx)(`button`,{type:`button`,onClick:()=>a(e),className:t.cn(`px-3 py-1.5 rounded-lg bg-primary text-primary-foreground`,`hover:bg-primary/90 transition-colors`,o.text),children:e.action})]})},e.id))})]})}function b({resources:e,thresholds:o=a,recommendations:s=[],initialTimelineRange:l=`3m`,size:u=`md`,animated:p=!0,showRecommendations:m=!0,showTimeline:h=!0,showProjectionChart:b=!0,onTimelineChange:x,onResourceClick:S,onRecommendationAction:C,className:w}){let[T,E]=n.useState(l),D=c[u],O=n.useCallback(e=>{E(e),x?.(e)},[x]),k=n.useMemo(()=>{let t=`safe`;for(let n of e){let e=d((n.projections[T]??n.current)/n.total*100,o);if(e===`critical`)return`critical`;e===`danger`?t=`danger`:e===`warning`&&t===`safe`&&(t=`warning`)}return t},[e,T,o]);return(0,i.jsxs)(`div`,{className:t.cn(`w-full`,D.spacing,w),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h2`,{className:t.cn(`font-bold text-xl`,D.heading),children:`Capacity Planner`}),(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-1`,D.text),children:`Monitor and plan resource capacity across your infrastructure`})]}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 px-3 py-2 rounded-lg`,k===`safe`&&`bg-green-100 dark:bg-green-900/30`,k===`warning`&&`bg-yellow-100 dark:bg-yellow-900/30`,k===`danger`&&`bg-orange-100 dark:bg-orange-900/30`,k===`critical`&&`bg-red-100 dark:bg-red-900/30`),children:[k===`critical`&&(0,i.jsx)(r.AlertTriangle,{className:t.cn(D.icon,`text-red-500`)}),(0,i.jsx)(`span`,{className:t.cn(`font-medium capitalize`,f(k)),children:k===`safe`?`Healthy`:k})]})]}),h&&(0,i.jsx)(`div`,{className:t.cn(`rounded-xl border bg-card`,D.cardPadding),children:(0,i.jsx)(g,{value:T,onChange:O,size:u,animated:p})}),b&&e.length>0&&(0,i.jsx)(v,{resources:e,timelineRange:T,thresholds:o,size:u,animated:p}),(0,i.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:e.map(e=>(0,i.jsx)(_,{resource:e,timelineRange:T,thresholds:o,size:u,animated:p,onClick:S?()=>S(e):void 0},e.id))}),m&&(0,i.jsx)(y,{recommendations:s,size:u,onAction:C}),(0,i.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("lucide-react"),i=require("react/jsx-runtime");var a={warning:70,danger:85,critical:95},o={"1m":`1 Month`,"3m":`3 Months`,"6m":`6 Months`,"12m":`12 Months`},s=[`1m`,`3m`,`6m`,`12m`],c={sm:{padding:`p-3`,gap:`gap-3`,text:`text-xs`,heading:`text-sm`,icon:`h-4 w-4`,barHeight:`h-2`,cardPadding:`p-3`,spacing:`space-y-3`},md:{padding:`p-4`,gap:`gap-4`,text:`text-sm`,heading:`text-base`,icon:`h-5 w-5`,barHeight:`h-3`,cardPadding:`p-4`,spacing:`space-y-4`},lg:{padding:`p-6`,gap:`gap-6`,text:`text-base`,heading:`text-lg`,icon:`h-6 w-6`,barHeight:`h-4`,cardPadding:`p-6`,spacing:`space-y-6`}},l={cpu:r.Cpu,memory:r.MemoryStick,storage:r.HardDrive,network:r.Network,custom:r.Zap},u={low:`text-blue-500 bg-blue-50 dark:bg-blue-950/50 border-blue-200 dark:border-blue-800`,medium:`text-yellow-600 bg-yellow-50 dark:bg-yellow-950/50 border-yellow-200 dark:border-yellow-800`,high:`text-orange-500 bg-orange-50 dark:bg-orange-950/50 border-orange-200 dark:border-orange-800`,urgent:`text-red-500 bg-red-50 dark:bg-red-950/50 border-red-200 dark:border-red-800`};function d(e,t){return e>=t.critical?`critical`:e>=t.danger?`danger`:e>=t.warning?`warning`:`safe`}function f(e){switch(e){case`critical`:return`text-red-600 dark:text-red-400`;case`danger`:return`text-orange-500 dark:text-orange-400`;case`warning`:return`text-yellow-500 dark:text-yellow-400`;default:return`text-green-500 dark:text-green-400`}}function p(e){switch(e){case`critical`:return`bg-red-500`;case`danger`:return`bg-orange-500`;case`warning`:return`bg-yellow-500`;default:return`bg-green-500`}}function m(e,t){return e>=1e3?`${(e/1e3).toFixed(1)}K ${t}`:`${e.toFixed(t===`%`?0:1)} ${t}`}function h({resources:e,thresholds:t=a,initialTimelineRange:r=`3m`}){let[i,o]=n.useState(e),[s,c]=n.useState(r),[l,u]=n.useState(t),f=n.useCallback(e=>e.projections[s]??e.current,[s]),p=n.useCallback(e=>d(e.total>0?e.current/e.total*100:0,l),[l]),m=n.useCallback(e=>d(f(e)/e.total*100,l),[f,l]),h=n.useCallback((e,t)=>{let n=e.growthRate??5,r=e.current/e.total*100,i;switch(t){case`warning`:i=l.warning;break;case`danger`:i=l.danger;break;case`critical`:i=l.critical;break;default:return null}if(r>=i)return`Now`;if(n<=0)return null;let a=Math.ceil((i-r)/n);return a<=1?`< 1 month`:a<=12?`${a} months`:`${Math.round(a/12)} years`},[l]),g=n.useMemo(()=>i.filter(e=>m(e)!==`safe`),[i,m]),_=n.useMemo(()=>i.filter(e=>m(e)===`critical`),[i,m]);return{resources:i,timelineRange:s,thresholds:l,resourcesAtRisk:g,criticalResources:_,overallHealth:n.useMemo(()=>_.length>0?`critical`:i.filter(e=>m(e)===`danger`).length>0?`danger`:g.length>0?`warning`:`safe`,[i,_,g,m]),setTimelineRange:c,updateResource:n.useCallback((e,t)=>{o(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),getProjectedValue:f,getResourceStatus:p,getProjectedStatus:m,getTimeUntilBreach:h,setThresholds:u,addResource:n.useCallback(e=>{o(t=>[...t,e])},[]),removeResource:n.useCallback(e=>{o(t=>t.filter(t=>t.id!==e))},[])}}function g({value:e,onChange:n,size:a,animated:l}){let u=c[a],d=s.indexOf(e);return(0,i.jsxs)(`div`,{className:t.cn(`relative`,u.spacing),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,u.text),children:[(0,i.jsx)(r.Calendar,{className:u.icon}),(0,i.jsx)(`span`,{className:`font-medium`,children:`Projection Timeline`})]}),(0,i.jsx)(`span`,{className:t.cn(`font-semibold text-primary`,u.text),children:o[e]})]}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:`relative h-2 bg-muted rounded-full`,children:[(0,i.jsx)(`div`,{className:t.cn(`absolute h-full bg-primary rounded-full`,l&&`transition-all duration-300 ease-out`),style:{width:`${(d+1)/s.length*100}%`}}),(0,i.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-between px-0`,children:s.map((e,r)=>(0,i.jsx)(`button`,{type:`button`,onClick:()=>n(e),className:t.cn(`relative z-10 h-4 w-4 rounded-full border-2 transition-all duration-200`,r<=d?`bg-primary border-primary`:`bg-background border-muted-foreground/30 hover:border-primary/50`),"aria-label":`Set timeline to ${o[e]}`,children:r===d&&l&&(0,i.jsx)(`span`,{className:`absolute inset-0 rounded-full animate-capacity-ping bg-primary/50`})},e))})]}),(0,i.jsx)(`div`,{className:`flex justify-between mt-2`,children:s.map(r=>(0,i.jsx)(`button`,{type:`button`,onClick:()=>n(r),className:t.cn(`text-center transition-colors duration-200`,u.text,r===e?`text-primary font-medium`:`text-muted-foreground hover:text-foreground`),children:o[r]},r))})]})]})}function _({resource:e,timelineRange:a,thresholds:s,size:u,animated:h,onClick:g}){let _=c[u],v=e.customIcon||l[e.type],y=e.current/e.total*100,b=e.projections[a]??e.current,x=b/e.total*100,S=d(y,s),C=d(x,s),[w,T]=n.useState(0),[E,D]=n.useState(0);n.useEffect(()=>{if(!h){T(y),D(x);return}let e=Date.now(),t=w,n=E,r=()=>{let i=Date.now()-e,a=Math.min(i/800,1),o=1-(1-a)**3;T(t+(y-t)*o),D(n+(x-n)*o),a<1&&requestAnimationFrame(r)};requestAnimationFrame(r)},[y,x,h]);let O=C!==`safe`,k=C!==S&&C!==`safe`;return(0,i.jsxs)(`div`,{onClick:g,className:t.cn(`group relative rounded-xl border bg-card transition-all duration-200`,_.cardPadding,g&&`cursor-pointer hover:shadow-md hover:border-primary/50`,O&&`border-l-4`,C===`critical`&&`border-l-red-500`,C===`danger`&&`border-l-orange-500`,C===`warning`&&`border-l-yellow-500`),children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center justify-between mb-3`,_.gap),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:t.cn(`p-2 rounded-lg`,C===`safe`&&`bg-green-100 dark:bg-green-900/30`,C===`warning`&&`bg-yellow-100 dark:bg-yellow-900/30`,C===`danger`&&`bg-orange-100 dark:bg-orange-900/30`,C===`critical`&&`bg-red-100 dark:bg-red-900/30`),children:(0,i.jsx)(v,{className:t.cn(_.icon,f(C))})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h3`,{className:t.cn(`font-semibold`,_.heading),children:e.name}),e.growthRate!==void 0&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 text-muted-foreground`,_.text),children:[(0,i.jsx)(r.TrendingUp,{className:`h-3 w-3`}),(0,i.jsxs)(`span`,{children:[`+`,e.growthRate,`%/month`]})]})]})]}),k&&(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 px-2 py-1 rounded-full`,_.text,f(C),`bg-current/10`),children:[(0,i.jsx)(r.AlertTriangle,{className:`h-3 w-3`}),(0,i.jsx)(`span`,{children:`Risk`})]})]}),(0,i.jsxs)(`div`,{className:t.cn(`grid grid-cols-2 gap-4 mb-4`,_.text),children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`div`,{className:`text-muted-foreground mb-1`,children:`Current`}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-1`,children:[(0,i.jsxs)(`span`,{className:t.cn(`font-bold text-xl`,f(S)),children:[w.toFixed(0),`%`]}),(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,m(e.current,e.unit),`)`]})]})]}),(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`div`,{className:`text-muted-foreground mb-1`,children:[`Projected (`,o[a],`)`]}),(0,i.jsxs)(`div`,{className:`flex items-baseline gap-1`,children:[(0,i.jsxs)(`span`,{className:t.cn(`font-bold text-xl`,f(C)),children:[E.toFixed(0),`%`]}),(0,i.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,m(b,e.unit),`)`]})]})]})]}),(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsxs)(`div`,{className:t.cn(`w-full bg-muted rounded-full overflow-hidden`,_.barHeight),children:[(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-yellow-500/50 z-10`,style:{left:`${s.warning}%`}}),(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-orange-500/50 z-10`,style:{left:`${s.danger}%`}}),(0,i.jsx)(`div`,{className:`absolute top-0 bottom-0 w-px bg-red-500/50 z-10`,style:{left:`${s.critical}%`}}),(0,i.jsx)(`div`,{className:t.cn(`absolute h-full opacity-30 rounded-full`,p(C),h&&`transition-all duration-500 ease-out`),style:{width:`${Math.min(E,100)}%`}}),(0,i.jsx)(`div`,{className:t.cn(`relative h-full rounded-full`,p(S),h&&`transition-all duration-500 ease-out`),style:{width:`${Math.min(w,100)}%`},children:h&&(0,i.jsx)(`div`,{className:`absolute inset-0 overflow-hidden rounded-full`,children:(0,i.jsx)(`div`,{className:`absolute inset-0 animate-capacity-shine`})})})]}),(0,i.jsxs)(`div`,{className:t.cn(`flex justify-between mt-1 text-muted-foreground`,_.text),children:[(0,i.jsx)(`span`,{children:`0%`}),(0,i.jsxs)(`span`,{children:[`Total: `,m(e.total,e.unit)]})]})]}),g&&(0,i.jsx)(`div`,{className:`absolute right-4 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,i.jsx)(r.ChevronRight,{className:t.cn(_.icon,`text-muted-foreground`)})})]})}function v({resources:e,timelineRange:r,thresholds:a,size:s,animated:l}){let u=c[s],f=s===`sm`?120:s===`md`?160:200,m=n.useMemo(()=>{let e=r===`1m`?1:r===`3m`?3:r===`6m`?6:12;return Array.from({length:e+1},(e,t)=>t)},[r]),h=n.useMemo(()=>e.map(e=>{let t=1+(e.growthRate??5)/100,n=m.length-1,r=m.map(r=>{let i=e.current*t**+r,a=Math.min(i/e.total*100,110);return{x:r/n*100,y:100-a}}).map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `),i=d(e.current*t**+n/e.total*100,a);return{id:e.id,name:e.name,path:r,color:p(i).replace(`bg-`,``),status:i}}),[e,m,a]),g={"green-500":`#22c55e`,"yellow-500":`#eab308`,"orange-500":`#f97316`,"red-500":`#ef4444`};return(0,i.jsxs)(`div`,{className:t.cn(`rounded-xl border bg-card`,u.cardPadding),children:[(0,i.jsx)(`h3`,{className:t.cn(`font-semibold mb-4`,u.heading),children:`Capacity Projection`}),(0,i.jsxs)(`div`,{className:`relative`,style:{height:f},children:[(0,i.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-yellow-500/50`,style:{top:`${100-a.warning}%`},children:(0,i.jsxs)(`span`,{className:t.cn(`absolute -top-3 right-0 text-yellow-500`,u.text),children:[a.warning,`%`]})}),(0,i.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-orange-500/50`,style:{top:`${100-a.danger}%`},children:(0,i.jsxs)(`span`,{className:t.cn(`absolute -top-3 right-0 text-orange-500`,u.text),children:[a.danger,`%`]})}),(0,i.jsx)(`div`,{className:`absolute left-0 right-0 border-t border-dashed border-red-500/50`,style:{top:`${100-a.critical}%`},children:(0,i.jsxs)(`span`,{className:t.cn(`absolute -top-3 right-0 text-red-500`,u.text),children:[a.critical,`%`]})}),(0,i.jsx)(`svg`,{viewBox:`0 0 100 100`,preserveAspectRatio:`none`,className:`w-full h-full`,"aria-hidden":`true`,focusable:`false`,children:h.map(e=>(0,i.jsx)(`path`,{d:e.path,fill:`none`,stroke:g[e.color]||`#22c55e`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,className:t.cn(l&&`animate-capacity-draw`)},e.id))}),(0,i.jsxs)(`div`,{className:t.cn(`flex justify-between mt-2 text-muted-foreground`,u.text),children:[(0,i.jsx)(`span`,{children:`Now`}),(0,i.jsx)(`span`,{children:o[r]})]})]}),(0,i.jsx)(`div`,{className:t.cn(`flex flex-wrap gap-4 mt-4`,u.text),children:e.map((e,t)=>{let n=h[t];return(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`w-3 h-3 rounded-full`,style:{backgroundColor:g[n?.color]||`#22c55e`}}),(0,i.jsx)(`span`,{children:e.name})]},e.id)})})]})}function y({recommendations:e,size:n,onAction:a}){let o=c[n];return e.length===0?(0,i.jsx)(`div`,{className:t.cn(`rounded-xl border bg-card text-center`,o.cardPadding),children:(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 text-muted-foreground`,children:[(0,i.jsx)(r.Lightbulb,{className:t.cn(o.icon,`text-green-500`)}),(0,i.jsx)(`p`,{className:o.text,children:`All resources are within healthy limits!`})]})}):(0,i.jsxs)(`div`,{className:t.cn(`rounded-xl border bg-card`,o.cardPadding),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,i.jsx)(`h3`,{className:t.cn(`font-semibold`,o.heading),children:`Scaling Recommendations`}),(0,i.jsxs)(`span`,{className:t.cn(`px-2 py-1 rounded-full bg-muted`,o.text),children:[e.length,` action`,e.length>1?`s`:``]})]}),(0,i.jsx)(`div`,{className:t.cn(`space-y-3`),children:e.map(e=>(0,i.jsx)(`div`,{className:t.cn(`rounded-lg border p-3 transition-colors`,u[e.priority]),children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-1`,children:[e.type===`scale_up`&&(0,i.jsx)(r.ArrowUpRight,{className:`h-4 w-4`}),e.type===`scale_out`&&(0,i.jsx)(r.Plus,{className:`h-4 w-4`}),e.type===`optimize`&&(0,i.jsx)(r.Zap,{className:`h-4 w-4`}),e.type===`monitor`&&(0,i.jsx)(r.Clock,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{className:t.cn(`font-medium`,o.text),children:e.title})]}),(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mb-2`,o.text),children:e.description}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-4`,o.text),children:[e.timeframe&&(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),e.timeframe]}),e.costImpact&&(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:e.costImpact})]})]}),a&&(0,i.jsx)(`button`,{type:`button`,onClick:()=>a(e),className:t.cn(`px-3 py-1.5 rounded-lg bg-primary text-primary-foreground`,`hover:bg-primary/90 transition-colors`,o.text),children:e.action})]})},e.id))})]})}function b({resources:e,thresholds:o=a,recommendations:s=[],initialTimelineRange:l=`3m`,size:u=`md`,animated:p=!0,showRecommendations:m=!0,showTimeline:h=!0,showProjectionChart:b=!0,onTimelineChange:x,onResourceClick:S,onRecommendationAction:C,className:w}){let[T,E]=n.useState(l),D=c[u],O=n.useCallback(e=>{E(e),x?.(e)},[x]),k=n.useMemo(()=>{let t=`safe`;for(let n of e){let e=d((n.projections[T]??n.current)/n.total*100,o);if(e===`critical`)return`critical`;e===`danger`?t=`danger`:e===`warning`&&t===`safe`&&(t=`warning`)}return t},[e,T,o]);return(0,i.jsxs)(`div`,{className:t.cn(`w-full`,D.spacing,w),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h2`,{className:t.cn(`font-bold text-xl`,D.heading),children:`Capacity Planner`}),(0,i.jsx)(`p`,{className:t.cn(`text-muted-foreground mt-1`,D.text),children:`Monitor and plan resource capacity across your infrastructure`})]}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 px-3 py-2 rounded-lg`,k===`safe`&&`bg-green-100 dark:bg-green-900/30`,k===`warning`&&`bg-yellow-100 dark:bg-yellow-900/30`,k===`danger`&&`bg-orange-100 dark:bg-orange-900/30`,k===`critical`&&`bg-red-100 dark:bg-red-900/30`),children:[k===`critical`&&(0,i.jsx)(r.AlertTriangle,{className:t.cn(D.icon,`text-red-500`)}),(0,i.jsx)(`span`,{className:t.cn(`font-medium capitalize`,f(k)),children:k===`safe`?`Healthy`:k})]})]}),h&&(0,i.jsx)(`div`,{className:t.cn(`rounded-xl border bg-card`,D.cardPadding),children:(0,i.jsx)(g,{value:T,onChange:O,size:u,animated:p})}),b&&e.length>0&&(0,i.jsx)(v,{resources:e,timelineRange:T,thresholds:o,size:u,animated:p}),(0,i.jsx)(`div`,{className:`grid gap-4 md:grid-cols-2`,children:e.map(e=>(0,i.jsx)(_,{resource:e,timelineRange:T,thresholds:o,size:u,animated:p,onClick:S?()=>S(e):void 0},e.id))}),m&&(0,i.jsx)(y,{recommendations:s,size:u,onAction:C}),(0,i.jsx)(`style`,{children:`
2
2
  @keyframes capacity-ping {
3
3
  0% { transform: scale(1); opacity: 1; }
4
4
  75%, 100% { transform: scale(2); opacity: 0; }
@@ -25,4 +25,4 @@
25
25
  stroke-dasharray: 1000;
26
26
  animation: capacity-draw 1.5s ease-out forwards;
27
27
  }
28
- `})]})}exports.default=b,exports.useCapacityPlanner=h;
28
+ `})]})}exports.WakaCapacityPlanner=b,exports.default=b,exports.useCapacityPlanner=h;
@@ -556,4 +556,4 @@ function M({ resources: r, thresholds: i = _, recommendations: a = [], initialTi
556
556
  });
557
557
  }
558
558
  //#endregion
559
- export { M as default, D as useCapacityPlanner };
559
+ export { M as WakaCapacityPlanner, M as default, D as useCapacityPlanner };
@@ -1 +1 @@
1
- "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=({images:e,autoplay:a=!1,autoplayInterval:o=3e3,showIndicators:ee=!0,showNavigation:te=!0,showThumbnails:ne=!1,showFullscreen:s=!1,showDownload:re=!1,showShare:ie=!1,showCounter:ae=!1,showProgress:oe=!1,transition:se=`fade`,layout:ce=`default`,theme:c=`auto`,aspectRatio:le=`16/9`,maxHeight:ue,className:de,imageClassName:l,indicatorClassName:fe,navigationClassName:u,thumbnailClassName:pe,overlayClassName:me,counterClassName:he,progressClassName:ge,onImageChange:d,onImageClick:_e,onFullscreenToggle:f,onDownload:ve,onShare:ye,onPlayPause:p,onThumbnailClick:be,onIndicatorClick:xe,onNavigationClick:m,onKeyboardNavigation:h,onTouchStart:g,onTouchEnd:_,onSwipeLeft:v,onSwipeRight:y,onSwipeUp:b,onSwipeDown:x,onLoadStart:Se,onLoadEnd:Ce,onError:we,onReady:Te,onDestroy:Ee,loop:S=!0,pauseOnHover:C=!0,pauseOnFocus:w=!0,pauseOnTouch:De=!0,keyboardNavigation:Oe=!0,touchNavigation:T=!0,swipeThreshold:E=50,animationDuration:ke=300,preloadImages:Ae=!0,lazyLoading:je=!0,imageQuality:Me=`auto`,placeholder:Ne,errorImage:Pe,loadingSpinner:Fe,emptyState:Ie,customControls:Le,customOverlay:Re,customThumbnails:ze,customIndicators:D,customNavigation:O,ariaLabel:Be=`Carrousel d'images`,ariaLabelledBy:Ve,ariaDescribedBy:He,role:Ue=`region`,virtualScrolling:We=!1,maxVisibleThumbnails:Ge=10,thumbnailSize:k=`medium`,overlayOpacity:Ke=.7,overlayGradient:qe,navigationSize:A=`medium`,indicatorSize:j=`medium`,indicatorShape:M=`circle`,thumbnailAspectRatio:N=`1/1`,onMount:P,onUnmount:F,onBeforeChange:I,onAfterChange:L})=>{let[R,z]=(0,n.useState)(0),[B,V]=(0,n.useState)(a),[H,U]=(0,n.useState)(!1),[Je,Ye]=(0,n.useState)(!1),[Xe,Ze]=(0,n.useState)(!1),[W,Qe]=(0,n.useState)(null),[$e,et]=(0,n.useState)(null),[tt,nt]=(0,n.useState)(new Set),[rt,it]=(0,n.useState)(0),G=(0,n.useRef)(null),at=(0,n.useRef)(null),ot=(0,n.useRef)([]),st=(0,n.useRef)(null),ct=(0,n.useRef)(0),K=e&&e.length>0,q=Math.max(0,Math.min(R,e.length-1)),J=K?e[q]:null,lt=(0,n.useMemo)(()=>{switch(le){case`16/9`:return`aspect-video`;case`4/3`:return`aspect-[4/3]`;case`1/1`:return`aspect-square`;case`3/2`:return`aspect-[3/2]`;default:return`aspect-video`}},[le]),ut=(0,n.useMemo)(()=>c===`auto`?``:c===`dark`?`dark`:`light`,[c]),Y=(0,n.useCallback)(()=>{G.current&&clearInterval(G.current),B&&K&&e.length>1&&(G.current=setInterval(()=>{z(t=>S?(t+1)%e.length:Math.min(t+1,e.length-1))},o))},[B,K,e.length,o,S]),X=(0,n.useCallback)(()=>{G.current&&=(clearInterval(G.current),null)},[]),dt=(0,n.useCallback)(()=>{if(!B||!a)return;let e=Date.now(),t=()=>{let n=(Date.now()-e)/o*100;it(Math.min(n,100)),n<100&&requestAnimationFrame(t)};requestAnimationFrame(t)},[B,a,o]);(0,n.useEffect)(()=>(B?(Y(),dt()):(X(),it(0)),()=>X()),[B,Y,X,dt]);let Z=(0,n.useCallback)(()=>{if(!K)return;let t=S?(R-1+e.length)%e.length:Math.max(R-1,0);I&&!I(R,t)||(z(t),m?.(`prev`))},[K,R,e.length,S,I,m]),Q=(0,n.useCallback)(()=>{if(!K)return;let t=S?(R+1)%e.length:Math.min(R+1,e.length-1);I&&!I(R,t)||(z(t),m?.(`next`))},[K,R,e.length,S,I,m]),ft=(0,n.useCallback)(t=>{!K||t<0||t>=e.length||I&&!I(R,t)||(z(t),xe?.(t))},[K,R,e.length,I,xe]),pt=(0,n.useCallback)(e=>{if(!Oe)return;let t=e.key;switch(h?.(t),t){case`ArrowLeft`:e.preventDefault(),Z();break;case`ArrowRight`:e.preventDefault(),Q();break;case`ArrowUp`:e.preventDefault(),b?.();break;case`ArrowDown`:e.preventDefault(),x?.();break;case` `:e.preventDefault(),V(e=>!e),p?.(!B);break;case`Escape`:H&&(U(!1),f?.(!1));break;case`f`:case`F`:s&&U(e=>(f?.(!e),!e));break}},[Oe,Z,Q,h,b,x,B,p,H,s,f]),mt=(0,n.useCallback)(e=>{if(!T)return;let t=e.touches[0];Qe({x:t.clientX,y:t.clientY}),ct.current=Date.now(),g?.(e),De&&V(!1)},[T,g,De]),ht=(0,n.useCallback)(e=>{if(!T||!W)return;let t=e.changedTouches[0];et({x:t.clientX,y:t.clientY}),_?.(e);let n=t.clientX-W.x,r=t.clientY-W.y;Date.now()-ct.current,Math.abs(n)>Math.abs(r)&&Math.abs(n)>E?n>0?(y?.(),Z()):(v?.(),Q()):Math.abs(r)>E&&(r>0?x?.():b?.()),Qe(null),et(null)},[T,W,_,E,y,v,x,b,Z,Q]),gt=(0,n.useCallback)(e=>{nt(t=>new Set([...t,e])),Ye(!1),Ce?.(e)},[Ce]),_t=(0,n.useCallback)((e,t)=>{Ze(!0),Ye(!1),we?.(e,t)},[we]);(0,n.useEffect)(()=>{J&&(d?.(q,J),L?.(q))},[q,J,d,L]);let vt=(0,n.useCallback)(()=>{J&&_e?.(J,q)},[J,q,_e]),$=(0,n.useCallback)(e=>{e.stopPropagation()},[]),yt=(0,n.useCallback)(()=>{U(e=>(f?.(!e),!e))},[f]),bt=(0,n.useCallback)(()=>{J&&ve?.(J,q)},[J,q,ve]),xt=(0,n.useCallback)(()=>{J&&ye?.(J,q)},[J,q,ye]),St=(0,n.useCallback)(()=>{C&&V(!1)},[C]),Ct=(0,n.useCallback)(()=>{C&&a&&V(!0)},[C,a]),wt=(0,n.useCallback)(()=>{w&&V(!1)},[w]),Tt=(0,n.useCallback)(()=>{w&&a&&V(!0)},[w,a]);if((0,n.useEffect)(()=>(P?.(),Te?.(),()=>{F?.(),Ee?.(),X()}),[P,Te,F,Ee,X]),(0,n.useEffect)(()=>()=>X(),[X]),!K)return(0,i.jsx)(`div`,{className:t.cn(`flex items-center justify-center h-64 bg-gray-100 rounded-lg`,de),children:Ie||(0,i.jsxs)(`div`,{className:`text-center`,children:[(0,i.jsx)(`p`,{className:`text-gray-500 mb-2`,children:`Aucune image à afficher`}),(0,i.jsx)(`p`,{className:`text-sm text-gray-400`,children:`Ajoutez des images pour commencer`})]})});let Et=t.cn(`waka-carousel relative w-full mx-auto bg-black rounded-lg overflow-hidden`,`focus:outline-none focus:ring-2 focus:ring-blue-500`,H&&`fixed inset-0 z-50 rounded-none`,ut,de),Dt=t.cn(`relative`,lt,l),Ot=t.cn(`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/70 to-transparent p-4`,me);return(0,i.jsxs)(`div`,{ref:at,className:Et,style:{maxHeight:ue},tabIndex:0,onKeyDown:pt,onTouchStart:mt,onTouchEnd:ht,onMouseEnter:St,onMouseLeave:Ct,onFocus:wt,onBlur:Tt,role:Ue,"aria-label":Be,"aria-labelledby":Ve,"aria-describedby":He,children:[(0,i.jsxs)(`div`,{className:Dt,children:[Je&&Fe&&(0,i.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/50 z-20`,children:Fe}),Xe&&Pe?(0,i.jsx)(`img`,{src:Pe,alt:`Erreur de chargement`,className:t.cn(`w-full h-full object-cover`,l)}):J?(0,i.jsx)(`img`,{ref:e=>{ot.current[q]=e},src:J.src,alt:J.alt,className:t.cn(`w-full h-full object-cover transition-opacity duration-300`,l),onClick:vt,loading:je?`lazy`:`eager`,onLoad:()=>gt(q),onError:e=>_t(q,Error(`Erreur de chargement de l'image`))}):null,J&&(J.title||J.description||J.caption)&&(0,i.jsxs)(`div`,{className:Ot,children:[J.title&&(0,i.jsx)(`h3`,{className:`text-white text-lg font-semibold mb-1`,children:J.title}),J.description&&(0,i.jsx)(`p`,{className:`text-white/90 text-sm mb-2`,children:J.description}),J.caption&&(0,i.jsx)(`p`,{className:`text-white/80 text-xs`,children:J.caption})]}),Le&&(0,i.jsx)(`div`,{className:`absolute inset-0 z-10`,children:Le}),Re&&(0,i.jsx)(`div`,{className:`absolute inset-0 z-10`,children:Re}),te&&e.length>1&&(0,i.jsx)(i.Fragment,{children:O?(0,i.jsx)(`div`,{className:`absolute inset-0 z-10`,children:O}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{onClick:e=>{$(e),Z()},className:t.cn(`absolute left-2 top-1/2 -translate-y-1/2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`,A===`small`&&`p-1`,A===`large`&&`p-3`,u),"aria-label":`Image précédente`,children:(0,i.jsx)(r.ChevronLeft,{className:t.cn(`w-5 h-5`,A===`small`&&`w-4 h-4`,A===`large`&&`w-6 h-6`)})}),(0,i.jsx)(`button`,{onClick:e=>{$(e),Q()},className:t.cn(`absolute right-2 top-1/2 -translate-y-1/2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`,A===`small`&&`p-1`,A===`large`&&`p-3`,u),"aria-label":`Image suivante`,children:(0,i.jsx)(r.ChevronRight,{className:t.cn(`w-5 h-5`,A===`small`&&`w-4 h-4`,A===`large`&&`w-6 h-6`)})})]})}),a&&e.length>1&&(0,i.jsx)(`button`,{onClick:e=>{$(e),V(e=>(p?.(!e),!e))},className:t.cn(`absolute top-2 right-2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":B?`Pause`:`Lecture`,children:B?(0,i.jsx)(r.Pause,{className:`w-4 h-4`}):(0,i.jsx)(r.Play,{className:`w-4 h-4`})}),s&&(0,i.jsx)(`button`,{onClick:e=>{$(e),yt()},className:t.cn(`absolute top-2 left-2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":H?`Quitter le plein écran`:`Plein écran`,children:H?(0,i.jsx)(r.X,{className:`w-4 h-4`}):(0,i.jsx)(r.Maximize2,{className:`w-4 h-4`})}),re&&J?.downloadUrl&&(0,i.jsx)(`button`,{onClick:e=>{$(e),bt()},className:t.cn(`absolute top-2 right-12 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":`Télécharger l'image`,children:(0,i.jsx)(r.Download,{className:`w-4 h-4`})}),ie&&J?.shareUrl&&(0,i.jsx)(`button`,{onClick:e=>{$(e),xt()},className:t.cn(`absolute top-2 right-20 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":`Partager l'image`,children:(0,i.jsx)(r.Share2,{className:`w-4 h-4`})}),ae&&(0,i.jsxs)(`div`,{className:t.cn(`absolute top-2 left-1/2 -translate-x-1/2 z-10`,`bg-black/50 text-white px-3 py-1 rounded-full text-sm`,he),children:[q+1,` / `,e.length]}),oe&&B&&(0,i.jsx)(`div`,{className:t.cn(`absolute bottom-0 left-0 right-0 h-1 bg-black/30`,ge),children:(0,i.jsx)(`div`,{ref:st,className:`h-full bg-white transition-all duration-100`,style:{width:`${rt}%`}})})]}),ee&&e.length>1&&(0,i.jsx)(`div`,{className:`absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2`,children:D?(0,i.jsx)(`div`,{className:`flex space-x-2`,children:D}):e.map((e,n)=>(0,i.jsx)(`button`,{onClick:e=>{$(e),ft(n)},className:t.cn(`transition-all duration-200`,`focus:outline-none focus:ring-2 focus:ring-white`,M===`circle`&&`rounded-full`,M===`square`&&`rounded`,M===`diamond`&&`rotate-45`,M===`line`&&`rounded-none`,j===`small`&&`w-2 h-2`,j===`medium`&&`w-3 h-3`,j===`large`&&`w-4 h-4`,M===`line`&&j===`small`&&`w-8 h-1`,M===`line`&&j===`medium`&&`w-12 h-1`,M===`line`&&j===`large`&&`w-16 h-1`,n===q?`bg-white`:`bg-white/50 hover:bg-white/70`,fe),"aria-label":`Aller à l'image ${n+1}`},n))}),ne&&e.length>1&&(0,i.jsx)(`div`,{className:`flex space-x-2 p-4 bg-gray-100 overflow-x-auto`,children:ze?(0,i.jsx)(`div`,{className:`flex space-x-2`,children:ze}):e.map((e,n)=>(0,i.jsx)(`button`,{onClick:e=>{$(e),ft(n),be?.(n)},className:t.cn(`flex-shrink-0 rounded overflow-hidden`,`border-2 transition-all duration-200`,`focus:outline-none focus:ring-2 focus:ring-blue-500`,k===`small`&&`w-12 h-12`,k===`medium`&&`w-16 h-16`,k===`large`&&`w-20 h-20`,N===`1/1`&&`aspect-square`,N===`4/3`&&`aspect-[4/3]`,N===`16/9`&&`aspect-video`,n===q?`border-blue-500`:`border-gray-300 hover:border-gray-400`,pe),children:(0,i.jsx)(`img`,{src:e.src,alt:e.alt,className:`w-full h-full object-cover`,loading:`lazy`})},n))})]})};exports.default=a;
1
+ "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=({images:e,autoplay:a=!1,autoplayInterval:o=3e3,showIndicators:ee=!0,showNavigation:te=!0,showThumbnails:ne=!1,showFullscreen:s=!1,showDownload:re=!1,showShare:ie=!1,showCounter:ae=!1,showProgress:oe=!1,transition:se=`fade`,layout:ce=`default`,theme:c=`auto`,aspectRatio:le=`16/9`,maxHeight:ue,className:de,imageClassName:l,indicatorClassName:fe,navigationClassName:u,thumbnailClassName:pe,overlayClassName:me,counterClassName:he,progressClassName:ge,onImageChange:d,onImageClick:_e,onFullscreenToggle:f,onDownload:ve,onShare:ye,onPlayPause:p,onThumbnailClick:be,onIndicatorClick:xe,onNavigationClick:m,onKeyboardNavigation:h,onTouchStart:g,onTouchEnd:_,onSwipeLeft:v,onSwipeRight:y,onSwipeUp:b,onSwipeDown:x,onLoadStart:Se,onLoadEnd:Ce,onError:we,onReady:Te,onDestroy:Ee,loop:S=!0,pauseOnHover:C=!0,pauseOnFocus:w=!0,pauseOnTouch:De=!0,keyboardNavigation:Oe=!0,touchNavigation:T=!0,swipeThreshold:E=50,animationDuration:ke=300,preloadImages:Ae=!0,lazyLoading:je=!0,imageQuality:Me=`auto`,placeholder:Ne,errorImage:Pe,loadingSpinner:Fe,emptyState:Ie,customControls:Le,customOverlay:Re,customThumbnails:ze,customIndicators:D,customNavigation:O,ariaLabel:Be=`Carrousel d'images`,ariaLabelledBy:Ve,ariaDescribedBy:He,role:Ue=`region`,virtualScrolling:We=!1,maxVisibleThumbnails:Ge=10,thumbnailSize:k=`medium`,overlayOpacity:Ke=.7,overlayGradient:qe,navigationSize:A=`medium`,indicatorSize:j=`medium`,indicatorShape:M=`circle`,thumbnailAspectRatio:N=`1/1`,onMount:P,onUnmount:F,onBeforeChange:I,onAfterChange:L})=>{let[R,z]=(0,n.useState)(0),[B,V]=(0,n.useState)(a),[H,U]=(0,n.useState)(!1),[Je,Ye]=(0,n.useState)(!1),[Xe,Ze]=(0,n.useState)(!1),[W,Qe]=(0,n.useState)(null),[$e,et]=(0,n.useState)(null),[tt,nt]=(0,n.useState)(new Set),[rt,it]=(0,n.useState)(0),G=(0,n.useRef)(null),at=(0,n.useRef)(null),ot=(0,n.useRef)([]),st=(0,n.useRef)(null),ct=(0,n.useRef)(0),K=e&&e.length>0,q=Math.max(0,Math.min(R,e.length-1)),J=K?e[q]:null,lt=(0,n.useMemo)(()=>{switch(le){case`16/9`:return`aspect-video`;case`4/3`:return`aspect-[4/3]`;case`1/1`:return`aspect-square`;case`3/2`:return`aspect-[3/2]`;default:return`aspect-video`}},[le]),ut=(0,n.useMemo)(()=>c===`auto`?``:c===`dark`?`dark`:`light`,[c]),Y=(0,n.useCallback)(()=>{G.current&&clearInterval(G.current),B&&K&&e.length>1&&(G.current=setInterval(()=>{z(t=>S?(t+1)%e.length:Math.min(t+1,e.length-1))},o))},[B,K,e.length,o,S]),X=(0,n.useCallback)(()=>{G.current&&=(clearInterval(G.current),null)},[]),dt=(0,n.useCallback)(()=>{if(!B||!a)return;let e=Date.now(),t=()=>{let n=(Date.now()-e)/o*100;it(Math.min(n,100)),n<100&&requestAnimationFrame(t)};requestAnimationFrame(t)},[B,a,o]);(0,n.useEffect)(()=>(B?(Y(),dt()):(X(),it(0)),()=>X()),[B,Y,X,dt]);let Z=(0,n.useCallback)(()=>{if(!K)return;let t=S?(R-1+e.length)%e.length:Math.max(R-1,0);I&&!I(R,t)||(z(t),m?.(`prev`))},[K,R,e.length,S,I,m]),Q=(0,n.useCallback)(()=>{if(!K)return;let t=S?(R+1)%e.length:Math.min(R+1,e.length-1);I&&!I(R,t)||(z(t),m?.(`next`))},[K,R,e.length,S,I,m]),ft=(0,n.useCallback)(t=>{!K||t<0||t>=e.length||I&&!I(R,t)||(z(t),xe?.(t))},[K,R,e.length,I,xe]),pt=(0,n.useCallback)(e=>{if(!Oe)return;let t=e.key;switch(h?.(t),t){case`ArrowLeft`:e.preventDefault(),Z();break;case`ArrowRight`:e.preventDefault(),Q();break;case`ArrowUp`:e.preventDefault(),b?.();break;case`ArrowDown`:e.preventDefault(),x?.();break;case` `:e.preventDefault(),V(e=>!e),p?.(!B);break;case`Escape`:H&&(U(!1),f?.(!1));break;case`f`:case`F`:s&&U(e=>(f?.(!e),!e));break}},[Oe,Z,Q,h,b,x,B,p,H,s,f]),mt=(0,n.useCallback)(e=>{if(!T)return;let t=e.touches[0];Qe({x:t.clientX,y:t.clientY}),ct.current=Date.now(),g?.(e),De&&V(!1)},[T,g,De]),ht=(0,n.useCallback)(e=>{if(!T||!W)return;let t=e.changedTouches[0];et({x:t.clientX,y:t.clientY}),_?.(e);let n=t.clientX-W.x,r=t.clientY-W.y;Date.now()-ct.current,Math.abs(n)>Math.abs(r)&&Math.abs(n)>E?n>0?(y?.(),Z()):(v?.(),Q()):Math.abs(r)>E&&(r>0?x?.():b?.()),Qe(null),et(null)},[T,W,_,E,y,v,x,b,Z,Q]),gt=(0,n.useCallback)(e=>{nt(t=>new Set([...t,e])),Ye(!1),Ce?.(e)},[Ce]),_t=(0,n.useCallback)((e,t)=>{Ze(!0),Ye(!1),we?.(e,t)},[we]);(0,n.useEffect)(()=>{J&&(d?.(q,J),L?.(q))},[q,J,d,L]);let vt=(0,n.useCallback)(()=>{J&&_e?.(J,q)},[J,q,_e]),$=(0,n.useCallback)(e=>{e.stopPropagation()},[]),yt=(0,n.useCallback)(()=>{U(e=>(f?.(!e),!e))},[f]),bt=(0,n.useCallback)(()=>{J&&ve?.(J,q)},[J,q,ve]),xt=(0,n.useCallback)(()=>{J&&ye?.(J,q)},[J,q,ye]),St=(0,n.useCallback)(()=>{C&&V(!1)},[C]),Ct=(0,n.useCallback)(()=>{C&&a&&V(!0)},[C,a]),wt=(0,n.useCallback)(()=>{w&&V(!1)},[w]),Tt=(0,n.useCallback)(()=>{w&&a&&V(!0)},[w,a]);if((0,n.useEffect)(()=>(P?.(),Te?.(),()=>{F?.(),Ee?.(),X()}),[P,Te,F,Ee,X]),(0,n.useEffect)(()=>()=>X(),[X]),!K)return(0,i.jsx)(`div`,{className:t.cn(`flex items-center justify-center h-64 bg-gray-100 rounded-lg`,de),children:Ie||(0,i.jsxs)(`div`,{className:`text-center`,children:[(0,i.jsx)(`p`,{className:`text-gray-500 mb-2`,children:`Aucune image à afficher`}),(0,i.jsx)(`p`,{className:`text-sm text-gray-400`,children:`Ajoutez des images pour commencer`})]})});let Et=t.cn(`waka-carousel relative w-full mx-auto bg-black rounded-lg overflow-hidden`,`focus:outline-none focus:ring-2 focus:ring-blue-500`,H&&`fixed inset-0 z-50 rounded-none`,ut,de),Dt=t.cn(`relative`,lt,l),Ot=t.cn(`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/70 to-transparent p-4`,me);return(0,i.jsxs)(`div`,{ref:at,className:Et,style:{maxHeight:ue},tabIndex:0,onKeyDown:pt,onTouchStart:mt,onTouchEnd:ht,onMouseEnter:St,onMouseLeave:Ct,onFocus:wt,onBlur:Tt,role:Ue,"aria-label":Be,"aria-labelledby":Ve,"aria-describedby":He,children:[(0,i.jsxs)(`div`,{className:Dt,children:[Je&&Fe&&(0,i.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-black/50 z-20`,children:Fe}),Xe&&Pe?(0,i.jsx)(`img`,{src:Pe,alt:`Erreur de chargement`,className:t.cn(`w-full h-full object-cover`,l)}):J?(0,i.jsx)(`img`,{ref:e=>{ot.current[q]=e},src:J.src,alt:J.alt,className:t.cn(`w-full h-full object-cover transition-opacity duration-300`,l),onClick:vt,loading:je?`lazy`:`eager`,onLoad:()=>gt(q),onError:e=>_t(q,Error(`Erreur de chargement de l'image`))}):null,J&&(J.title||J.description||J.caption)&&(0,i.jsxs)(`div`,{className:Ot,children:[J.title&&(0,i.jsx)(`h3`,{className:`text-white text-lg font-semibold mb-1`,children:J.title}),J.description&&(0,i.jsx)(`p`,{className:`text-white/90 text-sm mb-2`,children:J.description}),J.caption&&(0,i.jsx)(`p`,{className:`text-white/80 text-xs`,children:J.caption})]}),Le&&(0,i.jsx)(`div`,{className:`absolute inset-0 z-10`,children:Le}),Re&&(0,i.jsx)(`div`,{className:`absolute inset-0 z-10`,children:Re}),te&&e.length>1&&(0,i.jsx)(i.Fragment,{children:O?(0,i.jsx)(`div`,{className:`absolute inset-0 z-10`,children:O}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`button`,{onClick:e=>{$(e),Z()},className:t.cn(`absolute left-2 top-1/2 -translate-y-1/2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`,A===`small`&&`p-1`,A===`large`&&`p-3`,u),"aria-label":`Image précédente`,children:(0,i.jsx)(r.ChevronLeft,{className:t.cn(`w-5 h-5`,A===`small`&&`w-4 h-4`,A===`large`&&`w-6 h-6`)})}),(0,i.jsx)(`button`,{onClick:e=>{$(e),Q()},className:t.cn(`absolute right-2 top-1/2 -translate-y-1/2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`,A===`small`&&`p-1`,A===`large`&&`p-3`,u),"aria-label":`Image suivante`,children:(0,i.jsx)(r.ChevronRight,{className:t.cn(`w-5 h-5`,A===`small`&&`w-4 h-4`,A===`large`&&`w-6 h-6`)})})]})}),a&&e.length>1&&(0,i.jsx)(`button`,{onClick:e=>{$(e),V(e=>(p?.(!e),!e))},className:t.cn(`absolute top-2 right-2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":B?`Pause`:`Lecture`,children:B?(0,i.jsx)(r.Pause,{className:`w-4 h-4`}):(0,i.jsx)(r.Play,{className:`w-4 h-4`})}),s&&(0,i.jsx)(`button`,{onClick:e=>{$(e),yt()},className:t.cn(`absolute top-2 left-2 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":H?`Quitter le plein écran`:`Plein écran`,children:H?(0,i.jsx)(r.X,{className:`w-4 h-4`}):(0,i.jsx)(r.Maximize2,{className:`w-4 h-4`})}),re&&J?.downloadUrl&&(0,i.jsx)(`button`,{onClick:e=>{$(e),bt()},className:t.cn(`absolute top-2 right-12 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":`Télécharger l'image`,children:(0,i.jsx)(r.Download,{className:`w-4 h-4`})}),ie&&J?.shareUrl&&(0,i.jsx)(`button`,{onClick:e=>{$(e),xt()},className:t.cn(`absolute top-2 right-20 z-10`,`bg-black/50 hover:bg-black/70 text-white p-2 rounded-full`,`transition-all duration-200 hover:scale-110`,`focus:outline-none focus:ring-2 focus:ring-white`),"aria-label":`Partager l'image`,children:(0,i.jsx)(r.Share2,{className:`w-4 h-4`})}),ae&&(0,i.jsxs)(`div`,{className:t.cn(`absolute top-2 left-1/2 -translate-x-1/2 z-10`,`bg-black/50 text-white px-3 py-1 rounded-full text-sm`,he),children:[q+1,` / `,e.length]}),oe&&B&&(0,i.jsx)(`div`,{className:t.cn(`absolute bottom-0 left-0 right-0 h-1 bg-black/30`,ge),children:(0,i.jsx)(`div`,{ref:st,className:`h-full bg-white transition-all duration-100`,style:{width:`${rt}%`}})})]}),ee&&e.length>1&&(0,i.jsx)(`div`,{className:`absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2`,children:D?(0,i.jsx)(`div`,{className:`flex space-x-2`,children:D}):e.map((e,n)=>(0,i.jsx)(`button`,{onClick:e=>{$(e),ft(n)},className:t.cn(`transition-all duration-200`,`focus:outline-none focus:ring-2 focus:ring-white`,M===`circle`&&`rounded-full`,M===`square`&&`rounded`,M===`diamond`&&`rotate-45`,M===`line`&&`rounded-none`,j===`small`&&`w-2 h-2`,j===`medium`&&`w-3 h-3`,j===`large`&&`w-4 h-4`,M===`line`&&j===`small`&&`w-8 h-1`,M===`line`&&j===`medium`&&`w-12 h-1`,M===`line`&&j===`large`&&`w-16 h-1`,n===q?`bg-white`:`bg-white/50 hover:bg-white/70`,fe),"aria-label":`Aller à l'image ${n+1}`},n))}),ne&&e.length>1&&(0,i.jsx)(`div`,{className:`flex space-x-2 p-4 bg-gray-100 overflow-x-auto`,children:ze?(0,i.jsx)(`div`,{className:`flex space-x-2`,children:ze}):e.map((e,n)=>(0,i.jsx)(`button`,{onClick:e=>{$(e),ft(n),be?.(n)},className:t.cn(`flex-shrink-0 rounded overflow-hidden`,`border-2 transition-all duration-200`,`focus:outline-none focus:ring-2 focus:ring-blue-500`,k===`small`&&`w-12 h-12`,k===`medium`&&`w-16 h-16`,k===`large`&&`w-20 h-20`,N===`1/1`&&`aspect-square`,N===`4/3`&&`aspect-[4/3]`,N===`16/9`&&`aspect-video`,n===q?`border-blue-500`:`border-gray-300 hover:border-gray-400`,pe),children:(0,i.jsx)(`img`,{src:e.src,alt:e.alt,className:`w-full h-full object-cover`,loading:`lazy`})},n))})]})};exports.WakaCarousel=a,exports.default=a;
@@ -144,7 +144,7 @@ var l = ({ images: l, autoplay: u = !1, autoplayInterval: d = 3e3, showIndicator
144
144
  Z,
145
145
  Q
146
146
  ]), kt = t((e) => {
147
- mt((t) => new Set([...t, e])), st(!1), S?.(e);
147
+ mt((t) => /* @__PURE__ */ new Set([...t, e])), st(!1), S?.(e);
148
148
  }, [S]), At = t((e, t) => {
149
149
  lt(!0), st(!1), Ie?.(e, t);
150
150
  }, [Ie]);
@@ -377,4 +377,4 @@ var l = ({ images: l, autoplay: u = !1, autoplayInterval: d = 3e3, showIndicator
377
377
  });
378
378
  };
379
379
  //#endregion
380
- export { l as default };
380
+ export { l as WakaCarousel, l 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=(e,t)=>new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e),o=({showImage:e=!0})=>(0,i.jsxs)(`div`,{className:`flex gap-4 p-4 animate-pulse`,children:[e&&(0,i.jsx)(`div`,{className:`w-20 h-20 bg-gray-200 dark:bg-gray-700 rounded-lg shrink-0`}),(0,i.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-3/4`}),(0,i.jsx)(`div`,{className:`h-3 bg-gray-200 dark:bg-gray-700 rounded w-1/2`}),(0,i.jsxs)(`div`,{className:`flex justify-between items-center mt-2`,children:[(0,i.jsx)(`div`,{className:`h-8 bg-gray-200 dark:bg-gray-700 rounded w-24`}),(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-16`})]})]})]}),s=()=>(0,i.jsxs)(`div`,{className:`space-y-3 p-4 animate-pulse`,children:[[...[,,,,]].map((e,t)=>(0,i.jsxs)(`div`,{className:`flex justify-between`,children:[(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-20`}),(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-16`})]},t)),(0,i.jsx)(`div`,{className:`border-t pt-3 mt-3`,children:(0,i.jsxs)(`div`,{className:`flex justify-between`,children:[(0,i.jsx)(`div`,{className:`h-5 bg-gray-200 dark:bg-gray-700 rounded w-16`}),(0,i.jsx)(`div`,{className:`h-5 bg-gray-200 dark:bg-gray-700 rounded w-20`})]})})]}),c=({item:e,currency:n,showImage:a,showDescription:o,showSku:s,enableQuantityEdit:c,enableRemove:l,formatPrice:u,onQuantityChange:d,onRemove:f,isRemoving:p,animationDuration:m})=>{let h=e.minQuantity??1,g=e.maxQuantity??99,_=e.quantity>h,v=e.quantity<g&&e.inStock!==!1,y=e.price*e.quantity,b=e.originalPrice&&e.originalPrice>e.price;return(0,i.jsxs)(`div`,{className:t.cn(`flex gap-4 p-4 border-b border-gray-200 dark:border-gray-700 transition-all`,p&&`opacity-0 scale-95 -translate-x-4`),style:{transitionDuration:`${m}ms`},children:[a&&(0,i.jsxs)(`div`,{className:`relative w-20 h-20 shrink-0 rounded-lg overflow-hidden bg-gray-100 dark:bg-gray-800`,children:[e.image?(0,i.jsx)(`img`,{src:e.image,alt:e.name,className:`w-full h-full object-cover`,loading:`lazy`}):(0,i.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,i.jsx)(r.Package,{className:`w-8 h-8 text-gray-400`})}),e.inStock===!1&&(0,i.jsx)(`div`,{className:`absolute inset-0 bg-black/50 flex items-center justify-center`,children:(0,i.jsx)(`span`,{className:`text-white text-xs font-medium px-2 py-1 bg-red-500 rounded`,children:`Out of Stock`})})]}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsxs)(`div`,{className:`flex justify-between items-start gap-2`,children:[(0,i.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,i.jsx)(`h4`,{className:`font-medium text-gray-900 dark:text-gray-100 truncate`,children:e.name}),e.variant&&(0,i.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:e.variant}),o&&e.description&&(0,i.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400 line-clamp-2 mt-1`,children:e.description}),s&&e.sku&&(0,i.jsxs)(`p`,{className:`text-xs text-gray-400 dark:text-gray-500 mt-1`,children:[`SKU: `,e.sku]})]}),l&&(0,i.jsx)(`button`,{onClick:()=>f?.(e.id),className:t.cn(`p-1.5 rounded-md text-gray-400 hover:text-red-500`,`hover:bg-red-50 dark:hover:bg-red-900/20`,`transition-colors focus:outline-none focus:ring-2`,`focus:ring-red-500 focus:ring-offset-2`),"aria-label":`Remove ${e.name} from cart`,children:(0,i.jsx)(r.Trash2,{className:`w-4 h-4`})})]}),(0,i.jsxs)(`div`,{className:`flex justify-between items-end mt-3`,children:[(0,i.jsx)(`div`,{className:`flex items-center`,children:c?(0,i.jsxs)(`div`,{className:`flex items-center border border-gray-200 dark:border-gray-700 rounded-lg`,children:[(0,i.jsx)(`button`,{onClick:()=>_&&d?.(e.id,e.quantity-1),disabled:!_,className:t.cn(`p-2 transition-colors`,`hover:bg-gray-100 dark:hover:bg-gray-800`,`disabled:opacity-50 disabled:cursor-not-allowed`,`focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500`),"aria-label":`Decrease quantity`,children:(0,i.jsx)(r.Minus,{className:`w-3.5 h-3.5`})}),(0,i.jsx)(`span`,{className:`w-10 text-center text-sm font-medium tabular-nums`,children:e.quantity}),(0,i.jsx)(`button`,{onClick:()=>v&&d?.(e.id,e.quantity+1),disabled:!v,className:t.cn(`p-2 transition-colors`,`hover:bg-gray-100 dark:hover:bg-gray-800`,`disabled:opacity-50 disabled:cursor-not-allowed`,`focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500`),"aria-label":`Increase quantity`,children:(0,i.jsx)(r.Plus,{className:`w-3.5 h-3.5`})})]}):(0,i.jsxs)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:[`Qty: `,e.quantity]})}),(0,i.jsxs)(`div`,{className:`text-right`,children:[b&&(0,i.jsx)(`span`,{className:`text-sm text-gray-400 line-through mr-2`,children:u(e.originalPrice*e.quantity,n)}),(0,i.jsx)(`span`,{className:t.cn(`font-semibold`,b&&`text-red-600 dark:text-red-400`),children:u(y,n)}),e.quantity>1&&(0,i.jsxs)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-0.5`,children:[u(e.price,n),` each`]})]})]})]})]})},l=({discount:e,onApply:a,onRemove:o,formatPrice:s,currency:c})=>{let[l,u]=(0,n.useState)(``),[d,f]=(0,n.useState)(!1),[p,m]=(0,n.useState)(null),h=async()=>{if(!(!l.trim()||!a)){f(!0),m(null);try{await a(l.trim())?u(``):m(`Invalid discount code`)}catch{m(`Failed to apply discount`)}finally{f(!1)}}};return e?(0,i.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-green-50 dark:bg-green-900/20 rounded-lg border border-green-200 dark:border-green-800`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(r.Tag,{className:`w-4 h-4 text-green-600 dark:text-green-400`}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`span`,{className:`font-medium text-green-700 dark:text-green-300`,children:e.code}),e.description&&(0,i.jsx)(`p`,{className:`text-xs text-green-600 dark:text-green-400`,children:e.description})]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsxs)(`span`,{className:`text-sm font-medium text-green-700 dark:text-green-300`,children:[`-`,e.type===`percentage`?`${e.value}%`:s(e.value,c)]}),o&&(0,i.jsx)(`button`,{onClick:o,className:`p-1 text-green-600 dark:text-green-400 hover:text-green-800 dark:hover:text-green-200 transition-colors`,"aria-label":`Remove discount`,children:(0,i.jsx)(r.X,{className:`w-4 h-4`})})]})]}):(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[(0,i.jsx)(`input`,{type:`text`,value:l,onChange:e=>{u(e.target.value),m(null)},placeholder:`Enter discount code`,className:t.cn(`flex-1 px-3 py-2 text-sm rounded-lg border`,`bg-white dark:bg-gray-900`,`border-gray-200 dark:border-gray-700`,`placeholder:text-gray-400 dark:placeholder:text-gray-500`,`focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent`,p&&`border-red-500 focus:ring-red-500`),onKeyDown:e=>{e.key===`Enter`&&h()}}),(0,i.jsx)(`button`,{onClick:h,disabled:!l.trim()||d,className:t.cn(`px-4 py-2 text-sm font-medium rounded-lg transition-colors`,`bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-900`,`hover:bg-gray-800 dark:hover:bg-gray-200`,`disabled:opacity-50 disabled:cursor-not-allowed`,`focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-900 dark:focus:ring-gray-100`),children:d?(0,i.jsx)(r.Loader2,{className:`w-4 h-4 animate-spin`}):`Apply`})]}),p&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm text-red-600 dark:text-red-400`,children:[(0,i.jsx)(r.AlertCircle,{className:`w-4 h-4`}),p]})]})},u=()=>(0,i.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 px-4 text-center`,children:[(0,i.jsx)(`div`,{className:`w-16 h-16 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center mb-4`,children:(0,i.jsx)(r.ShoppingCart,{className:`w-8 h-8 text-gray-400`})}),(0,i.jsx)(`h3`,{className:`text-lg font-medium text-gray-900 dark:text-gray-100 mb-1`,children:`Your cart is empty`}),(0,i.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400 max-w-sm`,children:`Looks like you haven't added any items to your cart yet. Start shopping to fill it up!`})]}),d=({items:e,currency:d=`USD`,taxRate:f=0,shippingCost:p=0,freeShippingThreshold:m,discount:h=null,isLoading:g=!1,showImages:_=!0,showDescriptions:v=!1,showSku:y=!1,enableQuantityEdit:b=!0,enableRemove:x=!0,emptyState:S,loadingState:C,header:w,footer:T,className:E,itemClassName:D,summaryClassName:O,onQuantityChange:k,onRemoveItem:A,onApplyDiscount:j,onRemoveDiscount:M,onCheckout:N,formatPrice:P=a,animationDuration:F=300,ariaLabel:I=`Shopping cart summary`})=>{let[L,R]=(0,n.useState)(new Set),[z,B]=(0,n.useState)(new Set),V=(0,n.useRef)(new Set(e.map(e=>e.id)));(0,n.useEffect)(()=>{let t=new Set(e.map(e=>e.id)),n=new Set;if(t.forEach(e=>{V.current.has(e)||n.add(e)}),n.size>0){B(n);let e=setTimeout(()=>{B(new Set)},F);return()=>clearTimeout(e)}V.current=t},[e,F]);let H=(0,n.useCallback)(e=>{R(t=>new Set([...t,e])),setTimeout(()=>{A?.(e),R(t=>{let n=new Set(t);return n.delete(e),n})},F)},[A,F]),U=(0,n.useMemo)(()=>{let t=e.reduce((e,t)=>e+t.price*t.quantity,0),n=p;m&&t>=m&&(n=0);let r=0,i=0;h&&(h.type===`percentage`?r=t*(h.value/100):h.type===`fixed`?r=Math.min(h.value,t):h.type===`shipping`&&(i=n,n=0));let a=t-r,o=a*f,s=a+o+n;return{subtotal:t,tax:o,taxRate:f,shipping:n,discount:r+i,total:Math.max(0,s)}},[e,p,m,h,f]),W=e.reduce((e,t)=>e+t.quantity,0),G=m&&U.subtotal<m?U.subtotal/m*100:null;return g?(0,i.jsx)(`div`,{className:t.cn(`bg-white dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800 overflow-hidden`,E),"aria-label":I,"aria-busy":`true`,children:C||(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`border-b border-gray-200 dark:border-gray-700`,children:[...[,,,]].map((e,t)=>(0,i.jsx)(o,{showImage:_},t))}),(0,i.jsx)(s,{})]})}):e.length===0?(0,i.jsx)(`div`,{className:t.cn(`bg-white dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800 overflow-hidden`,E),"aria-label":I,children:S||(0,i.jsx)(u,{})}):(0,i.jsxs)(`div`,{className:t.cn(`bg-white dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800 overflow-hidden`,E),role:`region`,"aria-label":I,children:[w||(0,i.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700`,children:[(0,i.jsxs)(`h3`,{className:`font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,i.jsx)(r.ShoppingCart,{className:`w-5 h-5`}),`Cart`]}),(0,i.jsxs)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:[W,` `,W===1?`item`:`items`]})]}),G!==null&&(0,i.jsxs)(`div`,{className:`px-4 py-3 bg-blue-50 dark:bg-blue-900/20 border-b border-gray-200 dark:border-gray-700`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,i.jsx)(r.Truck,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,i.jsxs)(`span`,{className:`text-sm text-blue-700 dark:text-blue-300`,children:[P(m-U.subtotal,d),` `,`away from free shipping!`]})]}),(0,i.jsx)(`div`,{className:`h-1.5 bg-blue-200 dark:bg-blue-800 rounded-full overflow-hidden`,children:(0,i.jsx)(`div`,{className:`h-full bg-blue-600 dark:bg-blue-400 rounded-full transition-all duration-500`,style:{width:`${G}%`}})})]}),(0,i.jsx)(`div`,{className:t.cn(`divide-y divide-gray-200 dark:divide-gray-700`,D),children:e.map(e=>(0,i.jsx)(`div`,{className:t.cn(`transition-all`,z.has(e.id)&&`animate-in slide-in-from-right fade-in duration-300`),children:(0,i.jsx)(c,{item:e,currency:d,showImage:_,showDescription:v,showSku:y,enableQuantityEdit:b,enableRemove:x,formatPrice:P,onQuantityChange:k,onRemove:H,isRemoving:L.has(e.id),animationDuration:F})},e.id))}),(j||h)&&(0,i.jsx)(`div`,{className:`px-4 py-3 border-t border-gray-200 dark:border-gray-700`,children:(0,i.jsx)(l,{discount:h,onApply:j,onRemove:M,formatPrice:P,currency:d})}),(0,i.jsxs)(`div`,{className:t.cn(`px-4 py-4 bg-gray-50 dark:bg-gray-800/50 space-y-3`,O),children:[(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsx)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:`Subtotal`}),(0,i.jsx)(`span`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:P(U.subtotal,d)})]}),U.discount>0&&(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsx)(`span`,{className:`text-green-600 dark:text-green-400`,children:`Discount`}),(0,i.jsxs)(`span`,{className:`font-medium text-green-600 dark:text-green-400`,children:[`-`,P(U.discount,d)]})]}),(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsx)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:`Shipping`}),(0,i.jsx)(`span`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:U.shipping===0?(0,i.jsx)(`span`,{className:`text-green-600 dark:text-green-400`,children:`Free`}):P(U.shipping,d)})]}),U.tax>0&&(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsxs)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:[`Tax (`,(U.taxRate*100).toFixed(0),`%)`]}),(0,i.jsx)(`span`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:P(U.tax,d)})]}),(0,i.jsxs)(`div`,{className:`flex justify-between pt-3 border-t border-gray-200 dark:border-gray-700`,children:[(0,i.jsx)(`span`,{className:`text-base font-semibold text-gray-900 dark:text-gray-100`,children:`Total`}),(0,i.jsx)(`span`,{className:`text-lg font-bold text-gray-900 dark:text-gray-100`,children:P(U.total,d)})]})]}),T||N&&(0,i.jsx)(`div`,{className:`p-4 border-t border-gray-200 dark:border-gray-700`,children:(0,i.jsx)(`button`,{onClick:()=>N(U),className:t.cn(`w-full py-3 px-4 rounded-lg font-semibold text-white`,`bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600`,`transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500`),children:`Proceed to Checkout`})})]})};function f(e={}){let{initialItems:t=[],currency:r=`USD`,taxRate:i=0,shippingCost:a=0,freeShippingThreshold:o,onCartChange:s}=e,[c,l]=(0,n.useState)(t),[u,d]=(0,n.useState)(null),f=(0,n.useCallback)(e=>{l(e),s?.(e)},[s]),p=(0,n.useCallback)(e=>{l(t=>{let n=t.findIndex(t=>t.id===e.id);if(n>=0){let r=[...t];return r[n]={...r[n],quantity:r[n].quantity+e.quantity},s?.(r),r}let r=[...t,e];return s?.(r),r})},[s]),m=(0,n.useCallback)(e=>{l(t=>{let n=t.filter(t=>t.id!==e);return s?.(n),n})},[s]),h=(0,n.useCallback)((e,t)=>{if(t<=0){m(e);return}l(n=>{let r=n.map(n=>n.id===e?{...n,quantity:t}:n);return s?.(r),r})},[m,s]),g=(0,n.useCallback)(()=>{f([]),d(null)},[f]),_=(0,n.useCallback)(e=>{d(e)},[]),v=(0,n.useCallback)(()=>{d(null)},[]);return{items:c,discount:u,totals:(0,n.useMemo)(()=>{let e=c.reduce((e,t)=>e+t.price*t.quantity,0),t=a;o&&e>=o&&(t=0);let n=0;u&&(u.type===`percentage`?n=e*(u.value/100):u.type===`fixed`?n=Math.min(u.value,e):u.type===`shipping`&&(n=t,t=0));let r=e-n,s=r*i,l=r+s+t;return{subtotal:e,tax:s,taxRate:i,shipping:t,discount:n,total:Math.max(0,l)}},[c,a,o,u,i]),itemCount:(0,n.useMemo)(()=>c.reduce((e,t)=>e+t.quantity,0),[c]),isEmpty:c.length===0,addItem:p,removeItem:m,updateQuantity:h,clearCart:g,applyDiscount:_,removeDiscount:v,setItems:f}}exports.default=d,exports.useCartSummary=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=(e,t)=>new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t}).format(e),o=({showImage:e=!0})=>(0,i.jsxs)(`div`,{className:`flex gap-4 p-4 animate-pulse`,children:[e&&(0,i.jsx)(`div`,{className:`w-20 h-20 bg-gray-200 dark:bg-gray-700 rounded-lg shrink-0`}),(0,i.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-3/4`}),(0,i.jsx)(`div`,{className:`h-3 bg-gray-200 dark:bg-gray-700 rounded w-1/2`}),(0,i.jsxs)(`div`,{className:`flex justify-between items-center mt-2`,children:[(0,i.jsx)(`div`,{className:`h-8 bg-gray-200 dark:bg-gray-700 rounded w-24`}),(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-16`})]})]})]}),s=()=>(0,i.jsxs)(`div`,{className:`space-y-3 p-4 animate-pulse`,children:[[...[,,,,]].map((e,t)=>(0,i.jsxs)(`div`,{className:`flex justify-between`,children:[(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-20`}),(0,i.jsx)(`div`,{className:`h-4 bg-gray-200 dark:bg-gray-700 rounded w-16`})]},t)),(0,i.jsx)(`div`,{className:`border-t pt-3 mt-3`,children:(0,i.jsxs)(`div`,{className:`flex justify-between`,children:[(0,i.jsx)(`div`,{className:`h-5 bg-gray-200 dark:bg-gray-700 rounded w-16`}),(0,i.jsx)(`div`,{className:`h-5 bg-gray-200 dark:bg-gray-700 rounded w-20`})]})})]}),c=({item:e,currency:n,showImage:a,showDescription:o,showSku:s,enableQuantityEdit:c,enableRemove:l,formatPrice:u,onQuantityChange:d,onRemove:f,isRemoving:p,animationDuration:m})=>{let h=e.minQuantity??1,g=e.maxQuantity??99,_=e.quantity>h,v=e.quantity<g&&e.inStock!==!1,y=e.price*e.quantity,b=e.originalPrice&&e.originalPrice>e.price;return(0,i.jsxs)(`div`,{className:t.cn(`flex gap-4 p-4 border-b border-gray-200 dark:border-gray-700 transition-all`,p&&`opacity-0 scale-95 -translate-x-4`),style:{transitionDuration:`${m}ms`},children:[a&&(0,i.jsxs)(`div`,{className:`relative w-20 h-20 shrink-0 rounded-lg overflow-hidden bg-gray-100 dark:bg-gray-800`,children:[e.image?(0,i.jsx)(`img`,{src:e.image,alt:e.name,className:`w-full h-full object-cover`,loading:`lazy`}):(0,i.jsx)(`div`,{className:`w-full h-full flex items-center justify-center`,children:(0,i.jsx)(r.Package,{className:`w-8 h-8 text-gray-400`})}),e.inStock===!1&&(0,i.jsx)(`div`,{className:`absolute inset-0 bg-black/50 flex items-center justify-center`,children:(0,i.jsx)(`span`,{className:`text-white text-xs font-medium px-2 py-1 bg-red-500 rounded`,children:`Out of Stock`})})]}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsxs)(`div`,{className:`flex justify-between items-start gap-2`,children:[(0,i.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,i.jsx)(`h4`,{className:`font-medium text-gray-900 dark:text-gray-100 truncate`,children:e.name}),e.variant&&(0,i.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:e.variant}),o&&e.description&&(0,i.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400 line-clamp-2 mt-1`,children:e.description}),s&&e.sku&&(0,i.jsxs)(`p`,{className:`text-xs text-gray-400 dark:text-gray-500 mt-1`,children:[`SKU: `,e.sku]})]}),l&&(0,i.jsx)(`button`,{onClick:()=>f?.(e.id),className:t.cn(`p-1.5 rounded-md text-gray-400 hover:text-red-500`,`hover:bg-red-50 dark:hover:bg-red-900/20`,`transition-colors focus:outline-none focus:ring-2`,`focus:ring-red-500 focus:ring-offset-2`),"aria-label":`Remove ${e.name} from cart`,children:(0,i.jsx)(r.Trash2,{className:`w-4 h-4`})})]}),(0,i.jsxs)(`div`,{className:`flex justify-between items-end mt-3`,children:[(0,i.jsx)(`div`,{className:`flex items-center`,children:c?(0,i.jsxs)(`div`,{className:`flex items-center border border-gray-200 dark:border-gray-700 rounded-lg`,children:[(0,i.jsx)(`button`,{onClick:()=>_&&d?.(e.id,e.quantity-1),disabled:!_,className:t.cn(`p-2 transition-colors`,`hover:bg-gray-100 dark:hover:bg-gray-800`,`disabled:opacity-50 disabled:cursor-not-allowed`,`focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500`),"aria-label":`Decrease quantity`,children:(0,i.jsx)(r.Minus,{className:`w-3.5 h-3.5`})}),(0,i.jsx)(`span`,{className:`w-10 text-center text-sm font-medium tabular-nums`,children:e.quantity}),(0,i.jsx)(`button`,{onClick:()=>v&&d?.(e.id,e.quantity+1),disabled:!v,className:t.cn(`p-2 transition-colors`,`hover:bg-gray-100 dark:hover:bg-gray-800`,`disabled:opacity-50 disabled:cursor-not-allowed`,`focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500`),"aria-label":`Increase quantity`,children:(0,i.jsx)(r.Plus,{className:`w-3.5 h-3.5`})})]}):(0,i.jsxs)(`span`,{className:`text-sm text-gray-600 dark:text-gray-400`,children:[`Qty: `,e.quantity]})}),(0,i.jsxs)(`div`,{className:`text-right`,children:[b&&(0,i.jsx)(`span`,{className:`text-sm text-gray-400 line-through mr-2`,children:u(e.originalPrice*e.quantity,n)}),(0,i.jsx)(`span`,{className:t.cn(`font-semibold`,b&&`text-red-600 dark:text-red-400`),children:u(y,n)}),e.quantity>1&&(0,i.jsxs)(`p`,{className:`text-xs text-gray-500 dark:text-gray-400 mt-0.5`,children:[u(e.price,n),` each`]})]})]})]})]})},l=({discount:e,onApply:a,onRemove:o,formatPrice:s,currency:c})=>{let[l,u]=(0,n.useState)(``),[d,f]=(0,n.useState)(!1),[p,m]=(0,n.useState)(null),h=async()=>{if(!(!l.trim()||!a)){f(!0),m(null);try{await a(l.trim())?u(``):m(`Invalid discount code`)}catch{m(`Failed to apply discount`)}finally{f(!1)}}};return e?(0,i.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-green-50 dark:bg-green-900/20 rounded-lg border border-green-200 dark:border-green-800`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(r.Tag,{className:`w-4 h-4 text-green-600 dark:text-green-400`}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`span`,{className:`font-medium text-green-700 dark:text-green-300`,children:e.code}),e.description&&(0,i.jsx)(`p`,{className:`text-xs text-green-600 dark:text-green-400`,children:e.description})]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsxs)(`span`,{className:`text-sm font-medium text-green-700 dark:text-green-300`,children:[`-`,e.type===`percentage`?`${e.value}%`:s(e.value,c)]}),o&&(0,i.jsx)(`button`,{onClick:o,className:`p-1 text-green-600 dark:text-green-400 hover:text-green-800 dark:hover:text-green-200 transition-colors`,"aria-label":`Remove discount`,children:(0,i.jsx)(r.X,{className:`w-4 h-4`})})]})]}):(0,i.jsxs)(`div`,{className:`space-y-2`,children:[(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[(0,i.jsx)(`input`,{type:`text`,value:l,onChange:e=>{u(e.target.value),m(null)},placeholder:`Enter discount code`,className:t.cn(`flex-1 px-3 py-2 text-sm rounded-lg border`,`bg-white dark:bg-gray-900`,`border-gray-200 dark:border-gray-700`,`placeholder:text-gray-400 dark:placeholder:text-gray-500`,`focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent`,p&&`border-red-500 focus:ring-red-500`),onKeyDown:e=>{e.key===`Enter`&&h()}}),(0,i.jsx)(`button`,{onClick:h,disabled:!l.trim()||d,className:t.cn(`px-4 py-2 text-sm font-medium rounded-lg transition-colors`,`bg-gray-900 dark:bg-gray-100 text-white dark:text-gray-900`,`hover:bg-gray-800 dark:hover:bg-gray-200`,`disabled:opacity-50 disabled:cursor-not-allowed`,`focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-900 dark:focus:ring-gray-100`),children:d?(0,i.jsx)(r.Loader2,{className:`w-4 h-4 animate-spin`}):`Apply`})]}),p&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1.5 text-sm text-red-600 dark:text-red-400`,children:[(0,i.jsx)(r.AlertCircle,{className:`w-4 h-4`}),p]})]})},u=()=>(0,i.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 px-4 text-center`,children:[(0,i.jsx)(`div`,{className:`w-16 h-16 rounded-full bg-gray-100 dark:bg-gray-800 flex items-center justify-center mb-4`,children:(0,i.jsx)(r.ShoppingCart,{className:`w-8 h-8 text-gray-400`})}),(0,i.jsx)(`h3`,{className:`text-lg font-medium text-gray-900 dark:text-gray-100 mb-1`,children:`Your cart is empty`}),(0,i.jsx)(`p`,{className:`text-sm text-gray-500 dark:text-gray-400 max-w-sm`,children:`Looks like you haven't added any items to your cart yet. Start shopping to fill it up!`})]}),d=({items:e,currency:d=`USD`,taxRate:f=0,shippingCost:p=0,freeShippingThreshold:m,discount:h=null,isLoading:g=!1,showImages:_=!0,showDescriptions:v=!1,showSku:y=!1,enableQuantityEdit:b=!0,enableRemove:x=!0,emptyState:S,loadingState:C,header:w,footer:T,className:E,itemClassName:D,summaryClassName:O,onQuantityChange:k,onRemoveItem:A,onApplyDiscount:j,onRemoveDiscount:M,onCheckout:N,formatPrice:P=a,animationDuration:F=300,ariaLabel:I=`Shopping cart summary`})=>{let[L,R]=(0,n.useState)(new Set),[z,B]=(0,n.useState)(new Set),V=(0,n.useRef)(new Set(e.map(e=>e.id)));(0,n.useEffect)(()=>{let t=new Set(e.map(e=>e.id)),n=new Set;if(t.forEach(e=>{V.current.has(e)||n.add(e)}),n.size>0){B(n);let e=setTimeout(()=>{B(new Set)},F);return()=>clearTimeout(e)}V.current=t},[e,F]);let H=(0,n.useCallback)(e=>{R(t=>new Set([...t,e])),setTimeout(()=>{A?.(e),R(t=>{let n=new Set(t);return n.delete(e),n})},F)},[A,F]),U=(0,n.useMemo)(()=>{let t=e.reduce((e,t)=>e+t.price*t.quantity,0),n=p;m&&t>=m&&(n=0);let r=0,i=0;h&&(h.type===`percentage`?r=t*(h.value/100):h.type===`fixed`?r=Math.min(h.value,t):h.type===`shipping`&&(i=n,n=0));let a=t-r,o=a*f,s=a+o+n;return{subtotal:t,tax:o,taxRate:f,shipping:n,discount:r+i,total:Math.max(0,s)}},[e,p,m,h,f]),W=e.reduce((e,t)=>e+t.quantity,0),G=m&&U.subtotal<m?U.subtotal/m*100:null;return g?(0,i.jsx)(`div`,{className:t.cn(`bg-white dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800 overflow-hidden`,E),"aria-label":I,"aria-busy":`true`,children:C||(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:`border-b border-gray-200 dark:border-gray-700`,children:[...[,,,]].map((e,t)=>(0,i.jsx)(o,{showImage:_},t))}),(0,i.jsx)(s,{})]})}):e.length===0?(0,i.jsx)(`div`,{className:t.cn(`bg-white dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800 overflow-hidden`,E),"aria-label":I,children:S||(0,i.jsx)(u,{})}):(0,i.jsxs)(`div`,{className:t.cn(`bg-white dark:bg-gray-900 rounded-xl border border-gray-200 dark:border-gray-800 overflow-hidden`,E),role:`region`,"aria-label":I,children:[w||(0,i.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700`,children:[(0,i.jsxs)(`h3`,{className:`font-semibold text-gray-900 dark:text-gray-100 flex items-center gap-2`,children:[(0,i.jsx)(r.ShoppingCart,{className:`w-5 h-5`}),`Cart`]}),(0,i.jsxs)(`span`,{className:`text-sm text-gray-500 dark:text-gray-400`,children:[W,` `,W===1?`item`:`items`]})]}),G!==null&&(0,i.jsxs)(`div`,{className:`px-4 py-3 bg-blue-50 dark:bg-blue-900/20 border-b border-gray-200 dark:border-gray-700`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,i.jsx)(r.Truck,{className:`w-4 h-4 text-blue-600 dark:text-blue-400`}),(0,i.jsxs)(`span`,{className:`text-sm text-blue-700 dark:text-blue-300`,children:[P(m-U.subtotal,d),` `,`away from free shipping!`]})]}),(0,i.jsx)(`div`,{className:`h-1.5 bg-blue-200 dark:bg-blue-800 rounded-full overflow-hidden`,children:(0,i.jsx)(`div`,{className:`h-full bg-blue-600 dark:bg-blue-400 rounded-full transition-all duration-500`,style:{width:`${G}%`}})})]}),(0,i.jsx)(`div`,{className:t.cn(`divide-y divide-gray-200 dark:divide-gray-700`,D),children:e.map(e=>(0,i.jsx)(`div`,{className:t.cn(`transition-all`,z.has(e.id)&&`animate-in slide-in-from-right fade-in duration-300`),children:(0,i.jsx)(c,{item:e,currency:d,showImage:_,showDescription:v,showSku:y,enableQuantityEdit:b,enableRemove:x,formatPrice:P,onQuantityChange:k,onRemove:H,isRemoving:L.has(e.id),animationDuration:F})},e.id))}),(j||h)&&(0,i.jsx)(`div`,{className:`px-4 py-3 border-t border-gray-200 dark:border-gray-700`,children:(0,i.jsx)(l,{discount:h,onApply:j,onRemove:M,formatPrice:P,currency:d})}),(0,i.jsxs)(`div`,{className:t.cn(`px-4 py-4 bg-gray-50 dark:bg-gray-800/50 space-y-3`,O),children:[(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsx)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:`Subtotal`}),(0,i.jsx)(`span`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:P(U.subtotal,d)})]}),U.discount>0&&(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsx)(`span`,{className:`text-green-600 dark:text-green-400`,children:`Discount`}),(0,i.jsxs)(`span`,{className:`font-medium text-green-600 dark:text-green-400`,children:[`-`,P(U.discount,d)]})]}),(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsx)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:`Shipping`}),(0,i.jsx)(`span`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:U.shipping===0?(0,i.jsx)(`span`,{className:`text-green-600 dark:text-green-400`,children:`Free`}):P(U.shipping,d)})]}),U.tax>0&&(0,i.jsxs)(`div`,{className:`flex justify-between text-sm`,children:[(0,i.jsxs)(`span`,{className:`text-gray-600 dark:text-gray-400`,children:[`Tax (`,(U.taxRate*100).toFixed(0),`%)`]}),(0,i.jsx)(`span`,{className:`font-medium text-gray-900 dark:text-gray-100`,children:P(U.tax,d)})]}),(0,i.jsxs)(`div`,{className:`flex justify-between pt-3 border-t border-gray-200 dark:border-gray-700`,children:[(0,i.jsx)(`span`,{className:`text-base font-semibold text-gray-900 dark:text-gray-100`,children:`Total`}),(0,i.jsx)(`span`,{className:`text-lg font-bold text-gray-900 dark:text-gray-100`,children:P(U.total,d)})]})]}),T||N&&(0,i.jsx)(`div`,{className:`p-4 border-t border-gray-200 dark:border-gray-700`,children:(0,i.jsx)(`button`,{onClick:()=>N(U),className:t.cn(`w-full py-3 px-4 rounded-lg font-semibold text-white`,`bg-blue-600 hover:bg-blue-700 dark:bg-blue-500 dark:hover:bg-blue-600`,`transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500`),children:`Proceed to Checkout`})})]})};function f(e={}){let{initialItems:t=[],currency:r=`USD`,taxRate:i=0,shippingCost:a=0,freeShippingThreshold:o,onCartChange:s}=e,[c,l]=(0,n.useState)(t),[u,d]=(0,n.useState)(null),f=(0,n.useCallback)(e=>{l(e),s?.(e)},[s]),p=(0,n.useCallback)(e=>{l(t=>{let n=t.findIndex(t=>t.id===e.id);if(n>=0){let r=[...t];return r[n]={...r[n],quantity:r[n].quantity+e.quantity},s?.(r),r}let r=[...t,e];return s?.(r),r})},[s]),m=(0,n.useCallback)(e=>{l(t=>{let n=t.filter(t=>t.id!==e);return s?.(n),n})},[s]),h=(0,n.useCallback)((e,t)=>{if(t<=0){m(e);return}l(n=>{let r=n.map(n=>n.id===e?{...n,quantity:t}:n);return s?.(r),r})},[m,s]),g=(0,n.useCallback)(()=>{f([]),d(null)},[f]),_=(0,n.useCallback)(e=>{d(e)},[]),v=(0,n.useCallback)(()=>{d(null)},[]);return{items:c,discount:u,totals:(0,n.useMemo)(()=>{let e=c.reduce((e,t)=>e+t.price*t.quantity,0),t=a;o&&e>=o&&(t=0);let n=0;u&&(u.type===`percentage`?n=e*(u.value/100):u.type===`fixed`?n=Math.min(u.value,e):u.type===`shipping`&&(n=t,t=0));let r=e-n,s=r*i,l=r+s+t;return{subtotal:e,tax:s,taxRate:i,shipping:t,discount:n,total:Math.max(0,l)}},[c,a,o,u,i]),itemCount:(0,n.useMemo)(()=>c.reduce((e,t)=>e+t.quantity,0),[c]),isEmpty:c.length===0,addItem:p,removeItem:m,updateQuantity:h,clearCart:g,applyDiscount:_,removeDiscount:v,setItems:f}}exports.WakaCartSummary=d,exports.default=d,exports.useCartSummary=f;
@@ -234,7 +234,7 @@ var y = (e, t) => new Intl.NumberFormat("en-US", {
234
234
  J.current = e;
235
235
  }, [o, H]);
236
236
  let Y = t((e) => {
237
- G((t) => new Set([...t, e])), setTimeout(() => {
237
+ G((t) => /* @__PURE__ */ new Set([...t, e])), setTimeout(() => {
238
238
  L?.(e), G((t) => {
239
239
  let n = new Set(t);
240
240
  return n.delete(e), n;
@@ -495,4 +495,4 @@ function E(e = {}) {
495
495
  };
496
496
  }
497
497
  //#endregion
498
- export { T as default, E as useCartSummary };
498
+ export { T as WakaCartSummary, T as default, E as useCartSummary };
@@ -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(`lucide-react`),i=require(`react/jsx-runtime`);function a({endTime:e,isPaused:t=!1,urgentThreshold:r=3600,onComplete:i,onUrgent:a}){let[s,c]=n.useState(()=>o(e,r)),l=n.useRef(!1),u=n.useRef(!1);return n.useEffect(()=>{if(t)return;let n=()=>{let t=o(e,r);c(t),t.isUrgent&&!l.current&&!t.isExpired&&(l.current=!0,a?.()),t.isExpired&&!u.current&&(u.current=!0,i?.())};n();let s=setInterval(n,1e3);return()=>clearInterval(s)},[e,t,r,i,a]),n.useEffect(()=>{l.current=!1,u.current=!1},[e]),s}function o(e,t){let n=new Date,r=e.getTime()-n.getTime(),i=Math.max(0,Math.floor(r/1e3));return{days:Math.floor(i/(1440*60)),hours:Math.floor(i%(1440*60)/3600),minutes:Math.floor(i%3600/60),seconds:i%60,totalSeconds:i,isExpired:i<=0,isUrgent:i>0&&i<=t}}function s({value:e,label:n,size:r,isUrgent:a,isPaused:o}){let s={compact:{container:`min-w-[40px]`,value:`text-lg font-bold`,label:`text-[10px]`},default:{container:`min-w-[60px]`,value:`text-3xl font-bold`,label:`text-xs`},large:{container:`min-w-[80px]`,value:`text-5xl font-bold`,label:`text-sm`}}[r];return(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col items-center rounded-lg bg-muted/50 p-2`,s.container,a&&`bg-red-500/10`,o&&`opacity-50`),children:[(0,i.jsx)(`span`,{className:t.cn(`tabular-nums transition-all`,s.value,a&&`text-red-500 animate-urgent-pulse`,o&&`text-muted-foreground`),children:String(e).padStart(2,`0`)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground uppercase tracking-wider`,s.label),children:n})]})}function c({size:e,isUrgent:n}){return(0,i.jsx)(`span`,{className:t.cn(`font-bold text-muted-foreground`,{compact:`text-lg`,default:`text-2xl`,large:`text-4xl`}[e],n&&`text-red-500 animate-urgent-blink`),children:`:`})}function l({tasks:e,size:n,className:a}){let o=e.filter(e=>e.completed).length,s=e.length,c=s>0?o/s*100:0,l=n===`compact`?`h-1`:n===`large`?`h-2.5`:`h-2`;return(0,i.jsxs)(`div`,{className:t.cn(`w-full`,a),children:[(0,i.jsx)(`div`,{className:t.cn(`overflow-hidden rounded-full bg-muted`,l),children:(0,i.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-all duration-500 ease-out`,c>=100?`bg-gradient-to-r from-green-400 to-emerald-500`:`bg-gradient-to-r from-blue-500 to-purple-500`),style:{width:`${c}%`}})}),(0,i.jsxs)(`div`,{className:`mt-1 flex items-center justify-between text-xs text-muted-foreground`,children:[(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,i.jsx)(r.Target,{className:`h-3 w-3`}),`Tasks`]}),(0,i.jsxs)(`span`,{className:`font-medium tabular-nums`,children:[o,`/`,s]})]})]})}function u({task:e,onClick:n,compact:a}){let o=e.current!==void 0&&e.target!==void 0,s=o?Math.min(100,e.current/e.target*100):0;return(0,i.jsxs)(`button`,{type:`button`,onClick:n,disabled:e.completed,className:t.cn(`group flex w-full items-start gap-2 rounded-lg p-2 text-left transition-all`,`hover:bg-muted/50`,e.completed&&`opacity-60`,a&&`p-1.5`),children:[(0,i.jsx)(`div`,{className:t.cn(`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all`,e.completed?`border-green-500 bg-green-500 text-white`:`border-muted-foreground/30 group-hover:border-primary/50`),children:e.completed&&(0,i.jsx)(r.CheckCircle2,{className:`h-3 w-3`})}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`p`,{className:t.cn(`text-sm`,e.completed&&`line-through`,a&&`text-xs`),children:e.text}),o&&!e.completed&&(0,i.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`h-1 flex-1 overflow-hidden rounded-full bg-muted`,children:(0,i.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all duration-300`,style:{width:`${s}%`}})}),(0,i.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:[e.current,`/`,e.target]})]})]})]})}function d({rewards:e,size:n,className:a}){let o={xp:(0,i.jsx)(r.Zap,{className:`h-3.5 w-3.5 text-yellow-500`}),badge:(0,i.jsx)(r.Star,{className:`h-3.5 w-3.5 text-purple-500 fill-purple-500`}),item:(0,i.jsx)(r.Gift,{className:`h-3.5 w-3.5 text-blue-500`}),currency:(0,i.jsx)(r.Sparkles,{className:`h-3.5 w-3.5 text-amber-500`}),custom:(0,i.jsx)(r.Trophy,{className:`h-3.5 w-3.5 text-orange-500`})},s=n===`compact`;return(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,a),children:[(0,i.jsx)(r.Trophy,{className:t.cn(`text-amber-500`,s?`h-3 w-3`:`h-4 w-4`)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground`,s?`text-[10px]`:`text-xs`),children:`Rewards:`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[e.slice(0,s?2:4).map((e,n)=>(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 rounded-full bg-muted px-2 py-0.5`,s&&`px-1.5`),children:[e.icon||o[e.type],(0,i.jsx)(`span`,{className:t.cn(`font-medium`,s?`text-[10px]`:`text-xs`),children:typeof e.value==`number`?`+${e.value}`:e.value})]},n)),e.length>(s?2:4)&&(0,i.jsxs)(`span`,{className:t.cn(`text-muted-foreground`,s?`text-[10px]`:`text-xs`),children:[`+`,e.length-(s?2:4),` more`]})]})]})}function f({isPaused:e,onToggle:n,size:a,disabled:o}){let s={compact:`h-8 w-8`,default:`h-10 w-10`,large:`h-12 w-12`},c={compact:`h-4 w-4`,default:`h-5 w-5`,large:`h-6 w-6`};return(0,i.jsx)(`button`,{type:`button`,onClick:n,disabled:o,className:t.cn(`flex items-center justify-center rounded-full transition-all`,`bg-primary text-primary-foreground`,`hover:bg-primary/90 active:scale-95`,`disabled:opacity-50 disabled:cursor-not-allowed`,s[a]),"aria-label":e?`Start timer`:`Pause timer`,children:e?(0,i.jsx)(r.Play,{className:t.cn(c[a],`ml-0.5`)}):(0,i.jsx)(r.Pause,{className:c[a]})})}function p(){return(0,i.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("lucide-react"),i=require("react/jsx-runtime");function a({endTime:e,isPaused:t=!1,urgentThreshold:r=3600,onComplete:i,onUrgent:a}){let[s,c]=n.useState(()=>o(e,r)),l=n.useRef(!1),u=n.useRef(!1);return n.useEffect(()=>{if(t)return;let n=()=>{let t=o(e,r);c(t),t.isUrgent&&!l.current&&!t.isExpired&&(l.current=!0,a?.()),t.isExpired&&!u.current&&(u.current=!0,i?.())};n();let s=setInterval(n,1e3);return()=>clearInterval(s)},[e,t,r,i,a]),n.useEffect(()=>{l.current=!1,u.current=!1},[e]),s}function o(e,t){let n=new Date,r=e.getTime()-n.getTime(),i=Math.max(0,Math.floor(r/1e3));return{days:Math.floor(i/(1440*60)),hours:Math.floor(i%(1440*60)/3600),minutes:Math.floor(i%3600/60),seconds:i%60,totalSeconds:i,isExpired:i<=0,isUrgent:i>0&&i<=t}}function s({value:e,label:n,size:r,isUrgent:a,isPaused:o}){let s={compact:{container:`min-w-[40px]`,value:`text-lg font-bold`,label:`text-[10px]`},default:{container:`min-w-[60px]`,value:`text-3xl font-bold`,label:`text-xs`},large:{container:`min-w-[80px]`,value:`text-5xl font-bold`,label:`text-sm`}}[r];return(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col items-center rounded-lg bg-muted/50 p-2`,s.container,a&&`bg-red-500/10`,o&&`opacity-50`),children:[(0,i.jsx)(`span`,{className:t.cn(`tabular-nums transition-all`,s.value,a&&`text-red-500 animate-urgent-pulse`,o&&`text-muted-foreground`),children:String(e).padStart(2,`0`)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground uppercase tracking-wider`,s.label),children:n})]})}function c({size:e,isUrgent:n}){return(0,i.jsx)(`span`,{className:t.cn(`font-bold text-muted-foreground`,{compact:`text-lg`,default:`text-2xl`,large:`text-4xl`}[e],n&&`text-red-500 animate-urgent-blink`),children:`:`})}function l({tasks:e,size:n,className:a}){let o=e.filter(e=>e.completed).length,s=e.length,c=s>0?o/s*100:0,l=n===`compact`?`h-1`:n===`large`?`h-2.5`:`h-2`;return(0,i.jsxs)(`div`,{className:t.cn(`w-full`,a),children:[(0,i.jsx)(`div`,{className:t.cn(`overflow-hidden rounded-full bg-muted`,l),children:(0,i.jsx)(`div`,{className:t.cn(`h-full rounded-full transition-all duration-500 ease-out`,c>=100?`bg-gradient-to-r from-green-400 to-emerald-500`:`bg-gradient-to-r from-blue-500 to-purple-500`),style:{width:`${c}%`}})}),(0,i.jsxs)(`div`,{className:`mt-1 flex items-center justify-between text-xs text-muted-foreground`,children:[(0,i.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,i.jsx)(r.Target,{className:`h-3 w-3`}),`Tasks`]}),(0,i.jsxs)(`span`,{className:`font-medium tabular-nums`,children:[o,`/`,s]})]})]})}function u({task:e,onClick:n,compact:a}){let o=e.current!==void 0&&e.target!==void 0,s=o?Math.min(100,e.current/e.target*100):0;return(0,i.jsxs)(`button`,{type:`button`,onClick:n,disabled:e.completed,className:t.cn(`group flex w-full items-start gap-2 rounded-lg p-2 text-left transition-all`,`hover:bg-muted/50`,e.completed&&`opacity-60`,a&&`p-1.5`),children:[(0,i.jsx)(`div`,{className:t.cn(`flex h-5 w-5 shrink-0 items-center justify-center rounded-full border-2 transition-all`,e.completed?`border-green-500 bg-green-500 text-white`:`border-muted-foreground/30 group-hover:border-primary/50`),children:e.completed&&(0,i.jsx)(r.CheckCircle2,{className:`h-3 w-3`})}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsx)(`p`,{className:t.cn(`text-sm`,e.completed&&`line-through`,a&&`text-xs`),children:e.text}),o&&!e.completed&&(0,i.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,i.jsx)(`div`,{className:`h-1 flex-1 overflow-hidden rounded-full bg-muted`,children:(0,i.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all duration-300`,style:{width:`${s}%`}})}),(0,i.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,children:[e.current,`/`,e.target]})]})]})]})}function d({rewards:e,size:n,className:a}){let o={xp:(0,i.jsx)(r.Zap,{className:`h-3.5 w-3.5 text-yellow-500`}),badge:(0,i.jsx)(r.Star,{className:`h-3.5 w-3.5 text-purple-500 fill-purple-500`}),item:(0,i.jsx)(r.Gift,{className:`h-3.5 w-3.5 text-blue-500`}),currency:(0,i.jsx)(r.Sparkles,{className:`h-3.5 w-3.5 text-amber-500`}),custom:(0,i.jsx)(r.Trophy,{className:`h-3.5 w-3.5 text-orange-500`})},s=n===`compact`;return(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,a),children:[(0,i.jsx)(r.Trophy,{className:t.cn(`text-amber-500`,s?`h-3 w-3`:`h-4 w-4`)}),(0,i.jsx)(`span`,{className:t.cn(`text-muted-foreground`,s?`text-[10px]`:`text-xs`),children:`Rewards:`}),(0,i.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[e.slice(0,s?2:4).map((e,n)=>(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 rounded-full bg-muted px-2 py-0.5`,s&&`px-1.5`),children:[e.icon||o[e.type],(0,i.jsx)(`span`,{className:t.cn(`font-medium`,s?`text-[10px]`:`text-xs`),children:typeof e.value==`number`?`+${e.value}`:e.value})]},n)),e.length>(s?2:4)&&(0,i.jsxs)(`span`,{className:t.cn(`text-muted-foreground`,s?`text-[10px]`:`text-xs`),children:[`+`,e.length-(s?2:4),` more`]})]})]})}function f({isPaused:e,onToggle:n,size:a,disabled:o}){let s={compact:`h-8 w-8`,default:`h-10 w-10`,large:`h-12 w-12`},c={compact:`h-4 w-4`,default:`h-5 w-5`,large:`h-6 w-6`};return(0,i.jsx)(`button`,{type:`button`,onClick:n,disabled:o,className:t.cn(`flex items-center justify-center rounded-full transition-all`,`bg-primary text-primary-foreground`,`hover:bg-primary/90 active:scale-95`,`disabled:opacity-50 disabled:cursor-not-allowed`,s[a]),"aria-label":e?`Start timer`:`Pause timer`,children:e?(0,i.jsx)(r.Play,{className:t.cn(c[a],`ml-0.5`)}):(0,i.jsx)(r.Pause,{className:c[a]})})}function p(){return(0,i.jsx)(`style`,{children:`
2
2
  @keyframes urgent-pulse {
3
3
  0%, 100% { transform: scale(1); opacity: 1; }
4
4
  50% { transform: scale(1.02); opacity: 0.9; }
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`./hooks/useChartTheme.cjs.js`),n=require(`./WakaChart.cjs.js`);let r=require(`react`);r=e.__toESM(r);let i=require(`react/jsx-runtime`);var a=r.forwardRef(({data:e,dataKeys:a,series:o,variant:s=`default`,size:c=`md`,height:l,width:u,animation:d=!0,animationDuration:f=500,grid:p=!0,tooltip:m=!0,legend:h,axis:g,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,onClick:w,responsive:T=!0,curve:E=`monotone`,dots:D=!1,dotSize:O=4,activeDot:k=!0,strokeWidth:A=2,stacked:j=!1,fillOpacity:M=.3,gradientDirection:N=`vertical`},P)=>{let{theme:F,getColor:I,tooltipStyles:L}=t.default(_,s),R=r.useMemo(()=>{if(o&&o.length>0)return o;if(a&&a.length>0)return a.map((e,t)=>({dataKey:e,label:e,color:I(t),strokeWidth:A,fillOpacity:M}));if(e.length>0&&`value`in e[0])return[{dataKey:`value`,label:`Value`,color:I(0),strokeWidth:A,fillOpacity:M}];let t=e[0];return t?Object.keys(t).filter(e=>e!==`name`&&typeof t[e]==`number`).map((e,t)=>({dataKey:e,label:e,color:I(t),strokeWidth:A,fillOpacity:M})):[]},[o,a,e,I,A,M]),z=r.useMemo(()=>h?typeof h==`boolean`?{enabled:h,position:`bottom`,align:`center`}:h:null,[h]),B=r.useMemo(()=>m?typeof m==`boolean`?{enabled:m}:m:null,[m]);return(0,i.jsx)(n.default,{ref:P,variant:s,size:c,height:l,width:u,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,responsive:T,children:t=>{if(!t)return null;let{AreaChart:n,Area:r,XAxis:a,YAxis:o,CartesianGrid:s,Tooltip:c,Legend:l}=t;return(0,i.jsxs)(n,{data:e,children:[(0,i.jsx)(`defs`,{children:R.map((e,t)=>{let n=e.color||I(t),r=`gradient-${e.dataKey}-${t}`;return(0,i.jsxs)(`linearGradient`,{id:r,x1:`0`,y1:`0`,x2:N===`horizontal`?`1`:`0`,y2:N===`horizontal`?`0`:`1`,children:[(0,i.jsx)(`stop`,{offset:`5%`,stopColor:n,stopOpacity:.8}),(0,i.jsx)(`stop`,{offset:`95%`,stopColor:n,stopOpacity:.1})]},r)})}),p&&(0,i.jsx)(s,{strokeDasharray:`3 3`,stroke:F.gridColor,horizontal:!0,vertical:!1}),g?.showXAxis!==!1&&(0,i.jsx)(a,{dataKey:`name`,axisLine:{stroke:F.axisColor},tickLine:{stroke:F.axisColor},tick:{fill:F.textColor,fontSize:12},tickFormatter:g?.xAxisFormatter}),g?.showYAxis!==!1&&(0,i.jsx)(o,{axisLine:{stroke:F.axisColor},tickLine:{stroke:F.axisColor},tick:{fill:F.textColor,fontSize:12},tickFormatter:g?.yAxisFormatter,domain:g?.yAxisDomain,unit:g?.yAxisUnit}),B?.enabled!==!1&&m&&(0,i.jsx)(c,{...L,formatter:B&&typeof B!=`boolean`&&B.formatter?(t,n)=>B.formatter(t,n,e[0]):e=>`${B&&typeof B!=`boolean`&&B.valuePrefix||``}${e}${B&&typeof B!=`boolean`&&B.valueSuffix||``}`}),z?.enabled&&(0,i.jsx)(l,{align:z.align,verticalAlign:z.position===`top`?`top`:`bottom`,wrapperStyle:{paddingTop:z.position===`bottom`?16:0}}),R.map((e,t)=>{let n=e.color||I(t),a=`gradient-${e.dataKey}-${t}`;return(0,i.jsx)(r,{dataKey:e.dataKey,name:e.label,stroke:n,strokeWidth:e.strokeWidth||A,fill:`url(#${a})`,fillOpacity:e.fillOpacity??M,type:E,dot:D?{r:O,fill:n}:!1,stackId:j?`stack`:void 0,animationDuration:f,isAnimationActive:d},e.dataKey)})]})}})});a.displayName=`WakaAreaChart`,exports.default=a;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("./hooks/useChartTheme.cjs.js"),n=require("./WakaChart.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("react/jsx-runtime");var a=r.forwardRef(({data:e,dataKeys:a,series:o,variant:s=`default`,size:c=`md`,height:l,width:u,animation:d=!0,animationDuration:f=500,grid:p=!0,tooltip:m=!0,legend:h,axis:g,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,onClick:w,responsive:T=!0,curve:E=`monotone`,dots:D=!1,dotSize:O=4,activeDot:k=!0,strokeWidth:A=2,stacked:j=!1,fillOpacity:M=.3,gradientDirection:N=`vertical`},P)=>{let{theme:F,getColor:I,tooltipStyles:L}=t.default(_,s),R=r.useMemo(()=>{if(o&&o.length>0)return o;if(a&&a.length>0)return a.map((e,t)=>({dataKey:e,label:e,color:I(t),strokeWidth:A,fillOpacity:M}));if(e.length>0&&`value`in e[0])return[{dataKey:`value`,label:`Value`,color:I(0),strokeWidth:A,fillOpacity:M}];let t=e[0];return t?Object.keys(t).filter(e=>e!==`name`&&typeof t[e]==`number`).map((e,t)=>({dataKey:e,label:e,color:I(t),strokeWidth:A,fillOpacity:M})):[]},[o,a,e,I,A,M]),z=r.useMemo(()=>h?typeof h==`boolean`?{enabled:h,position:`bottom`,align:`center`}:h:null,[h]),B=r.useMemo(()=>m?typeof m==`boolean`?{enabled:m}:m:null,[m]);return(0,i.jsx)(n.WakaChart,{ref:P,variant:s,size:c,height:l,width:u,theme:_,className:v,style:y,title:b,description:x,loading:S,error:C,responsive:T,children:t=>{if(!t)return null;let{AreaChart:n,Area:r,XAxis:a,YAxis:o,CartesianGrid:s,Tooltip:c,Legend:l}=t;return(0,i.jsxs)(n,{data:e,children:[(0,i.jsx)(`defs`,{children:R.map((e,t)=>{let n=e.color||I(t),r=`gradient-${e.dataKey}-${t}`;return(0,i.jsxs)(`linearGradient`,{id:r,x1:`0`,y1:`0`,x2:N===`horizontal`?`1`:`0`,y2:N===`horizontal`?`0`:`1`,children:[(0,i.jsx)(`stop`,{offset:`5%`,stopColor:n,stopOpacity:.8}),(0,i.jsx)(`stop`,{offset:`95%`,stopColor:n,stopOpacity:.1})]},r)})}),p&&(0,i.jsx)(s,{strokeDasharray:`3 3`,stroke:F.gridColor,horizontal:!0,vertical:!1}),g?.showXAxis!==!1&&(0,i.jsx)(a,{dataKey:`name`,axisLine:{stroke:F.axisColor},tickLine:{stroke:F.axisColor},tick:{fill:F.textColor,fontSize:12},tickFormatter:g?.xAxisFormatter}),g?.showYAxis!==!1&&(0,i.jsx)(o,{axisLine:{stroke:F.axisColor},tickLine:{stroke:F.axisColor},tick:{fill:F.textColor,fontSize:12},tickFormatter:g?.yAxisFormatter,domain:g?.yAxisDomain,unit:g?.yAxisUnit}),B?.enabled!==!1&&m&&(0,i.jsx)(c,{...L,formatter:B&&typeof B!=`boolean`&&B.formatter?(t,n)=>B.formatter(t,n,e[0]):e=>`${B&&typeof B!=`boolean`&&B.valuePrefix||``}${e}${B&&typeof B!=`boolean`&&B.valueSuffix||``}`}),z?.enabled&&(0,i.jsx)(l,{align:z.align,verticalAlign:z.position===`top`?`top`:`bottom`,wrapperStyle:{paddingTop:z.position===`bottom`?16:0}}),R.map((e,t)=>{let n=e.color||I(t),a=`gradient-${e.dataKey}-${t}`;return(0,i.jsx)(r,{dataKey:e.dataKey,name:e.label,stroke:n,strokeWidth:e.strokeWidth||A,fill:`url(#${a})`,fillOpacity:e.fillOpacity??M,type:E,dot:D?{r:O,fill:n}:!1,stackId:j?`stack`:void 0,animationDuration:f,isAnimationActive:d},e.dataKey)})]})}})});a.displayName=`WakaAreaChart`,exports.WakaAreaChart=a,exports.default=a;
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  "use client";
3
3
  import e from "./hooks/useChartTheme.es.js";
4
- import t from "./WakaChart.es.js";
4
+ import { WakaChart as t } from "./WakaChart.es.js";
5
5
  import * as n from "react";
6
6
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
7
7
  //#region src/components/waka-charts/WakaAreaChart.tsx
@@ -143,4 +143,4 @@ var a = n.forwardRef(({ data: a, dataKeys: o, series: s, variant: c = "default",
143
143
  });
144
144
  a.displayName = "WakaAreaChart";
145
145
  //#endregion
146
- export { a as default };
146
+ export { a as WakaAreaChart, a as default };