@wakastellar/ui 4.0.1 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. package/dist/blocks/_shared/identity/InviteUserPanel.cjs.js +1 -1
  2. package/dist/blocks/_shared/identity/RoleSelect.cjs.js +1 -1
  3. package/dist/blocks/_shared/identity/SidePushLayout.cjs.js +1 -1
  4. package/dist/blocks/activity-timeline/index.cjs.js +1 -1
  5. package/dist/blocks/activity-timeline/index.es.js +1 -1
  6. package/dist/blocks/antivirus-dashboard/index.cjs.js +1 -1
  7. package/dist/blocks/antivirus-dashboard/index.es.js +1 -1
  8. package/dist/blocks/api-keys-manager/index.cjs.js +1 -1
  9. package/dist/blocks/apm-overview/index.cjs.js +1 -1
  10. package/dist/blocks/auth-2fa/index.cjs.js +2 -2
  11. package/dist/blocks/auth-2fa/index.es.js +1 -1
  12. package/dist/blocks/avatar-upload/index.cjs.js +1 -1
  13. package/dist/blocks/avatar-upload/index.es.js +13 -13
  14. package/dist/blocks/calendar-view/index.cjs.js +1 -1
  15. package/dist/blocks/calendar-view/index.es.js +1 -1
  16. package/dist/blocks/chat/index.cjs.js +1 -1
  17. package/dist/blocks/chat/index.es.js +162 -162
  18. package/dist/blocks/chat/widget.cjs.js +1 -1
  19. package/dist/blocks/chat/widget.es.js +19 -13
  20. package/dist/blocks/chat-interface/index.cjs.js +1 -1
  21. package/dist/blocks/chat-interface/index.es.js +1 -1
  22. package/dist/blocks/checkout-flow/index.cjs.js +1 -1
  23. package/dist/blocks/checkout-flow/index.es.js +1 -1
  24. package/dist/blocks/cicd-builder/index.cjs.js +1 -1
  25. package/dist/blocks/clamav-service-status/index.cjs.js +1 -1
  26. package/dist/blocks/cloud-cost-dashboard/index.cjs.js +1 -1
  27. package/dist/blocks/container-orchestrator/index.cjs.js +1 -1
  28. package/dist/blocks/container-orchestrator/index.es.js +2 -1
  29. package/dist/blocks/dashboard/index.cjs.js +1 -1
  30. package/dist/blocks/dashboard/index.es.js +2 -2
  31. package/dist/blocks/dashboard-kpi/index.cjs.js +1 -1
  32. package/dist/blocks/dashboard-kpi/index.es.js +1 -1
  33. package/dist/blocks/database-admin/index.cjs.js +1 -1
  34. package/dist/blocks/deployment-dashboard/index.cjs.js +1 -1
  35. package/dist/blocks/deployment-dashboard/index.es.js +1 -1
  36. package/dist/blocks/empty-states/index.cjs.js +1 -1
  37. package/dist/blocks/empty-states/index.es.js +1 -1
  38. package/dist/blocks/error-pages/index.cjs.js +1 -1
  39. package/dist/blocks/error-pages/index.es.js +1 -1
  40. package/dist/blocks/faq/index.cjs.js +1 -1
  41. package/dist/blocks/faq/index.es.js +1 -1
  42. package/dist/blocks/file-manager/index.cjs.js +1 -1
  43. package/dist/blocks/file-manager/index.es.js +1 -1
  44. package/dist/blocks/file-scan-uploader/index.cjs.js +1 -1
  45. package/dist/blocks/file-scan-uploader/index.es.js +2 -2
  46. package/dist/blocks/footer/index.cjs.js +1 -1
  47. package/dist/blocks/gitops-sync-status/index.cjs.js +1 -1
  48. package/dist/blocks/header/index.cjs.js +1 -1
  49. package/dist/blocks/header/index.es.js +1 -1
  50. package/dist/blocks/headtab/index.cjs.js +1 -1
  51. package/dist/blocks/i18n-editor/index.cjs.js +1 -1
  52. package/dist/blocks/i18n-editor/index.es.js +127 -127
  53. package/dist/blocks/incident-manager/index.cjs.js +1 -1
  54. package/dist/blocks/infrastructure-map/index.cjs.js +1 -1
  55. package/dist/blocks/kanban-board/index.cjs.js +1 -1
  56. package/dist/blocks/kanban-board/index.es.js +1 -1
  57. package/dist/blocks/landing/index.cjs.js +1 -1
  58. package/dist/blocks/landing/index.es.js +1 -1
  59. package/dist/blocks/language-selector/index.cjs.js +1 -1
  60. package/dist/blocks/layout/index.cjs.js +1 -1
  61. package/dist/blocks/login/index.cjs.js +1 -1
  62. package/dist/blocks/on-call-schedule/index.cjs.js +1 -1
  63. package/dist/blocks/player-profile/index.cjs.js +1 -1
  64. package/dist/blocks/player-profile/index.es.js +1 -1
  65. package/dist/blocks/pricing/index.cjs.js +1 -1
  66. package/dist/blocks/pricing/index.es.js +1 -1
  67. package/dist/blocks/profile/index.cjs.js +1 -1
  68. package/dist/blocks/profile/index.es.js +1 -1
  69. package/dist/blocks/profile-list/index.cjs.js +1 -1
  70. package/dist/blocks/quarantine-manager/index.cjs.js +1 -1
  71. package/dist/blocks/quarantine-manager/index.es.js +1 -1
  72. package/dist/blocks/release-notes/index.cjs.js +1 -1
  73. package/dist/blocks/scan-history-log/index.cjs.js +1 -1
  74. package/dist/blocks/scan-history-log/index.es.js +1 -1
  75. package/dist/blocks/scan-policy-editor/index.cjs.js +1 -1
  76. package/dist/blocks/scan-report-generator/index.cjs.js +1 -1
  77. package/dist/blocks/settings/index.cjs.js +1 -1
  78. package/dist/blocks/settings/index.es.js +1 -1
  79. package/dist/blocks/sidebar/index.cjs.js +1 -1
  80. package/dist/blocks/sidebar/index.es.js +1 -1
  81. package/dist/blocks/signature-database-manager/index.cjs.js +1 -1
  82. package/dist/blocks/team-form/index.cjs.js +1 -1
  83. package/dist/blocks/threat-alert-banner/index.cjs.js +1 -1
  84. package/dist/blocks/user-management/index.cjs.js +1 -1
  85. package/dist/blocks/waka-doc-shell/index.cjs.js +1 -1
  86. package/dist/blocks/wizard/index.cjs.js +1 -1
  87. package/dist/blocks/wizard/index.es.js +37 -37
  88. package/dist/charts.cjs.js +1 -1
  89. package/dist/charts.es.js +8 -8
  90. package/dist/cli/index.cjs +5 -1
  91. package/dist/components/DataTable/DataTable.cjs.js +1 -1
  92. package/dist/components/DataTable/DataTable.es.js +68 -66
  93. package/dist/components/DataTable/DataTableAdvanced.cjs.js +1 -1
  94. package/dist/components/DataTable/DataTableColumnResizer.cjs.js +1 -1
  95. package/dist/components/DataTable/DataTableContextMenu.cjs.js +1 -1
  96. package/dist/components/DataTable/DataTableEditCell.cjs.js +1 -1
  97. package/dist/components/DataTable/DataTableFilters.cjs.js +1 -1
  98. package/dist/components/DataTable/DataTableGrouping.cjs.js +1 -1
  99. package/dist/components/DataTable/DataTablePagination.cjs.js +1 -1
  100. package/dist/components/DataTable/DataTablePagination.d.ts +3 -1
  101. package/dist/components/DataTable/DataTablePagination.es.js +38 -27
  102. package/dist/components/DataTable/DataTableSelection.cjs.js +1 -1
  103. package/dist/components/DataTable/DataTableToolbar.cjs.js +1 -1
  104. package/dist/components/DataTable/hooks/useDataTable.cjs.js +1 -1
  105. package/dist/components/DataTable/hooks/useDataTable.es.js +5 -1
  106. package/dist/components/DataTable/hooks/useDataTableAdvanced.cjs.js +1 -1
  107. package/dist/components/DataTable/hooks/useDataTableEdit.cjs.js +1 -1
  108. package/dist/components/DataTable/hooks/useDataTableExport.cjs.js +2 -2
  109. package/dist/components/DataTable/hooks/useDataTableImport.cjs.js +2 -2
  110. package/dist/components/DataTable/hooks/useDataTableImport.es.js +2 -1
  111. package/dist/components/DataTable/hooks/useDataTableTheme.cjs.js +1 -1
  112. package/dist/components/DataTable/hooks/useDataTableVirtualization.cjs.js +1 -1
  113. package/dist/components/DataTable/hooks/useTableLayout.cjs.js +1 -1
  114. package/dist/components/DataTable/utils.cjs.js +1 -1
  115. package/dist/components/accordion/index.cjs.js +1 -1
  116. package/dist/components/alert/index.cjs.js +1 -1
  117. package/dist/components/alert-dialog/index.cjs.js +1 -1
  118. package/dist/components/aspect-ratio/index.cjs.js +1 -1
  119. package/dist/components/avatar/index.cjs.js +1 -1
  120. package/dist/components/badge/index.cjs.js +1 -1
  121. package/dist/components/button/index.cjs.js +1 -1
  122. package/dist/components/calendar/index.cjs.js +1 -1
  123. package/dist/components/card/index.cjs.js +1 -1
  124. package/dist/components/checkbox/index.cjs.js +1 -1
  125. package/dist/components/code/index.cjs.js +2 -2
  126. package/dist/components/code/index.es.js +3 -2
  127. package/dist/components/collapsible/index.cjs.js +1 -1
  128. package/dist/components/command/index.cjs.js +1 -1
  129. package/dist/components/context-menu/index.cjs.js +1 -1
  130. package/dist/components/dialog/index.cjs.js +1 -1
  131. package/dist/components/dropdown-menu/index.cjs.js +1 -1
  132. package/dist/components/editor/blocks/index.cjs.js +1 -1
  133. package/dist/components/editor/blocks/index.es.js +12 -12
  134. package/dist/components/editor/blocks/waka-acceptance-criteria-block.cjs.js +1 -1
  135. package/dist/components/editor/blocks/waka-ai-assist-block.cjs.js +1 -1
  136. package/dist/components/editor/blocks/waka-api-endpoint-block.cjs.js +1 -1
  137. package/dist/components/editor/blocks/waka-code-playground-block.cjs.js +1 -1
  138. package/dist/components/editor/blocks/waka-comment-thread-block.cjs.js +1 -1
  139. package/dist/components/editor/blocks/waka-diagram-block.cjs.js +3 -3
  140. package/dist/components/editor/blocks/waka-diagram-block.es.js +21 -40
  141. package/dist/components/editor/blocks/waka-embed-block.cjs.js +1 -1
  142. package/dist/components/editor/blocks/waka-slash-menu-block.cjs.js +1 -1
  143. package/dist/components/editor/blocks/waka-user-story-block.cjs.js +1 -1
  144. package/dist/components/editor/blocks/waka-version-diff-block.cjs.js +1 -1
  145. package/dist/components/editor/waka-ai-writer.cjs.js +1 -1
  146. package/dist/components/editor/waka-collaborative-editor.cjs.js +1 -1
  147. package/dist/components/editor/waka-diff-viewer.cjs.js +1 -1
  148. package/dist/components/editor/waka-dnd-editor.cjs.js +1 -1
  149. package/dist/components/editor/waka-document-editor.cjs.js +1 -1
  150. package/dist/components/editor/waka-document-editor.es.js +1 -1
  151. package/dist/components/editor/waka-editor-elements.cjs.js +1 -1
  152. package/dist/components/editor/waka-editor-leaves.cjs.js +1 -1
  153. package/dist/components/editor/waka-editor-toolbar.cjs.js +1 -1
  154. package/dist/components/editor/waka-editor.cjs.js +1 -1
  155. package/dist/components/editor/waka-floating-toolbar.cjs.js +1 -1
  156. package/dist/components/editor/waka-markdown-editor.cjs.js +1 -1
  157. package/dist/components/editor/waka-mention-editor.cjs.js +1 -1
  158. package/dist/components/editor/waka-mention-editor.es.js +2 -2
  159. package/dist/components/editor/waka-slash-menu.cjs.js +1 -1
  160. package/dist/components/editor/waka-spec-editor.cjs.js +1 -1
  161. package/dist/components/form/index.cjs.js +1 -1
  162. package/dist/components/hover-card/index.cjs.js +1 -1
  163. package/dist/components/input/index.cjs.js +1 -1
  164. package/dist/components/input-otp/index.cjs.js +1 -1
  165. package/dist/components/input-otp/index.es.js +2 -1
  166. package/dist/components/label/index.cjs.js +1 -1
  167. package/dist/components/language-selector/index.cjs.js +1 -1
  168. package/dist/components/menubar/index.cjs.js +1 -1
  169. package/dist/components/navigation-menu/index.cjs.js +1 -1
  170. package/dist/components/popover/index.cjs.js +1 -1
  171. package/dist/components/progress/index.cjs.js +1 -1
  172. package/dist/components/radio-group/index.cjs.js +1 -1
  173. package/dist/components/resizable/index.cjs.js +1 -1
  174. package/dist/components/resizable/index.es.js +9 -9
  175. package/dist/components/scroll-area/index.cjs.js +1 -1
  176. package/dist/components/select/index.cjs.js +1 -1
  177. package/dist/components/separator/index.cjs.js +1 -1
  178. package/dist/components/sheet/index.cjs.js +1 -1
  179. package/dist/components/skeleton/index.cjs.js +1 -1
  180. package/dist/components/slider/index.cjs.js +1 -1
  181. package/dist/components/switch/index.cjs.js +1 -1
  182. package/dist/components/table/index.cjs.js +1 -1
  183. package/dist/components/tabs/index.cjs.js +1 -1
  184. package/dist/components/textarea/index.cjs.js +1 -1
  185. package/dist/components/theme-selector/index.cjs.js +1 -1
  186. package/dist/components/toast/index.cjs.js +1 -1
  187. package/dist/components/toaster/index.cjs.js +1 -1
  188. package/dist/components/toggle/index.cjs.js +1 -1
  189. package/dist/components/toggle-group/index.cjs.js +1 -1
  190. package/dist/components/tooltip/index.cjs.js +1 -1
  191. package/dist/components/typography/index.cjs.js +1 -1
  192. package/dist/components/waka-3d-pie-chart/index.cjs.js +1 -1
  193. package/dist/components/waka-3d-pie-chart/index.es.js +1 -1
  194. package/dist/components/waka-achievement-unlock/index.cjs.js +1 -1
  195. package/dist/components/waka-achievement-unlock/index.es.js +1 -1
  196. package/dist/components/waka-activity-feed/index.cjs.js +2 -2
  197. package/dist/components/waka-activity-feed/index.es.js +1 -1
  198. package/dist/components/waka-ad-banner/index.cjs.js +1 -1
  199. package/dist/components/waka-ad-banner/index.es.js +18 -15
  200. package/dist/components/waka-ad-fallback/index.cjs.js +1 -1
  201. package/dist/components/waka-ad-fallback/index.es.js +1 -1
  202. package/dist/components/waka-ad-inline/index.cjs.js +1 -1
  203. package/dist/components/waka-ad-inline/index.es.js +2 -2
  204. package/dist/components/waka-ad-interstitial/index.cjs.js +1 -1
  205. package/dist/components/waka-ad-interstitial/index.es.js +3 -3
  206. package/dist/components/waka-ad-placeholder/index.cjs.js +2 -2
  207. package/dist/components/waka-ad-placeholder/index.es.js +1 -1
  208. package/dist/components/waka-ad-provider/index.cjs.js +1 -1
  209. package/dist/components/waka-ad-provider/index.es.js +1 -1
  210. package/dist/components/waka-ad-sidebar/index.cjs.js +1 -1
  211. package/dist/components/waka-ad-sidebar/index.es.js +2 -2
  212. package/dist/components/waka-ad-sticky-footer/index.cjs.js +1 -1
  213. package/dist/components/waka-ad-sticky-footer/index.es.js +2 -2
  214. package/dist/components/waka-address-autocomplete/index.cjs.js +2 -2
  215. package/dist/components/waka-address-autocomplete/index.es.js +10 -6
  216. package/dist/components/waka-admincrumb/index.cjs.js +1 -1
  217. package/dist/components/waka-alert-panel/index.cjs.js +1 -1
  218. package/dist/components/waka-alert-stack/index.cjs.js +1 -1
  219. package/dist/components/waka-alert-stack/index.es.js +1 -1
  220. package/dist/components/waka-allocation-matrix/index.cjs.js +2 -2
  221. package/dist/components/waka-allocation-matrix/index.es.js +1 -1
  222. package/dist/components/waka-approval-chain/index.cjs.js +1 -1
  223. package/dist/components/waka-approval-chain/index.es.js +1 -1
  224. package/dist/components/waka-artifact-list/index.cjs.js +1 -1
  225. package/dist/components/waka-artifact-list/index.es.js +1 -1
  226. package/dist/components/waka-audit-log/index.cjs.js +2 -2
  227. package/dist/components/waka-audit-log/index.es.js +1 -1
  228. package/dist/components/waka-autocomplete/index.cjs.js +1 -1
  229. package/dist/components/waka-autocomplete/index.es.js +3 -2
  230. package/dist/components/waka-badge-showcase/index.cjs.js +1 -1
  231. package/dist/components/waka-barcode/index.cjs.js +1 -1
  232. package/dist/components/waka-barcode/index.es.js +1 -1
  233. package/dist/components/waka-biometric-prompt/index.cjs.js +2 -2
  234. package/dist/components/waka-biometric-prompt/index.es.js +1 -1
  235. package/dist/components/waka-bottom-sheet/index.cjs.js +1 -1
  236. package/dist/components/waka-bottom-sheet/index.es.js +12 -7
  237. package/dist/components/waka-breadcrumb/index.cjs.js +1 -1
  238. package/dist/components/waka-breadcrumb/index.es.js +1 -1
  239. package/dist/components/waka-breadcrumb-path/index.cjs.js +1 -1
  240. package/dist/components/waka-breadcrumb-path/index.es.js +1 -1
  241. package/dist/components/waka-budget-burn/index.cjs.js +2 -2
  242. package/dist/components/waka-budget-burn/index.es.js +3 -3
  243. package/dist/components/waka-build-matrix/index.cjs.js +1 -1
  244. package/dist/components/waka-capacity-planner/index.cjs.js +2 -2
  245. package/dist/components/waka-capacity-planner/index.es.js +1 -1
  246. package/dist/components/waka-carousel/index.cjs.js +1 -1
  247. package/dist/components/waka-carousel/index.es.js +2 -2
  248. package/dist/components/waka-cart-summary/index.cjs.js +1 -1
  249. package/dist/components/waka-cart-summary/index.es.js +2 -2
  250. package/dist/components/waka-challenge-timer/index.cjs.js +1 -1
  251. package/dist/components/waka-charts/WakaAreaChart.cjs.js +1 -1
  252. package/dist/components/waka-charts/WakaAreaChart.es.js +2 -2
  253. package/dist/components/waka-charts/WakaBarChart.cjs.js +1 -1
  254. package/dist/components/waka-charts/WakaBarChart.es.js +2 -2
  255. package/dist/components/waka-charts/WakaChart.cjs.js +1 -1
  256. package/dist/components/waka-charts/WakaChart.es.js +1 -1
  257. package/dist/components/waka-charts/WakaLineChart.cjs.js +1 -1
  258. package/dist/components/waka-charts/WakaLineChart.es.js +2 -2
  259. package/dist/components/waka-charts/WakaMiniChart.cjs.js +1 -1
  260. package/dist/components/waka-charts/WakaMiniChart.es.js +2 -2
  261. package/dist/components/waka-charts/WakaPieChart.cjs.js +1 -1
  262. package/dist/components/waka-charts/WakaPieChart.es.js +2 -2
  263. package/dist/components/waka-charts/WakaSparkline.cjs.js +1 -1
  264. package/dist/components/waka-charts/WakaSparkline.es.js +1 -1
  265. package/dist/components/waka-charts/dataTableHelpers.cjs.js +1 -1
  266. package/dist/components/waka-charts/dataTableHelpers.es.js +1 -1
  267. package/dist/components/waka-charts/hooks/useChartTheme.cjs.js +1 -1
  268. package/dist/components/waka-charts/hooks/useChartTheme.es.js +1 -1
  269. package/dist/components/waka-charts/hooks/useRechartsLoader.cjs.js +1 -1
  270. package/dist/components/waka-charts/hooks/useRechartsLoader.es.js +1 -1
  271. package/dist/components/waka-chat-bubble/index.cjs.js +1 -1
  272. package/dist/components/waka-checklist/index.cjs.js +2 -2
  273. package/dist/components/waka-checklist/index.es.js +1 -1
  274. package/dist/components/waka-checkout-stepper/index.cjs.js +1 -1
  275. package/dist/components/waka-checkout-stepper/index.es.js +1 -1
  276. package/dist/components/waka-cohort-table/index.cjs.js +2 -2
  277. package/dist/components/waka-cohort-table/index.es.js +1 -1
  278. package/dist/components/waka-color-picker/index.cjs.js +2 -2
  279. package/dist/components/waka-color-picker/index.es.js +1 -1
  280. package/dist/components/waka-combo-counter/index.cjs.js +1 -1
  281. package/dist/components/waka-combobox/index.cjs.js +1 -1
  282. package/dist/components/waka-combobox/index.es.js +3 -2
  283. package/dist/components/waka-command-bar/index.cjs.js +1 -1
  284. package/dist/components/waka-compare-period/index.cjs.js +2 -2
  285. package/dist/components/waka-compare-period/index.es.js +7 -5
  286. package/dist/components/waka-config-comparator/index.cjs.js +1 -1
  287. package/dist/components/waka-config-comparator/index.es.js +1 -1
  288. package/dist/components/waka-connection-matrix/index.cjs.js +1 -1
  289. package/dist/components/waka-connection-matrix/index.es.js +1 -1
  290. package/dist/components/waka-container-list/index.cjs.js +1 -1
  291. package/dist/components/waka-container-list/index.es.js +1 -1
  292. package/dist/components/waka-content-recommendation/index.cjs.js +1 -1
  293. package/dist/components/waka-content-recommendation/index.es.js +2 -2
  294. package/dist/components/waka-contribution-graph/index.cjs.js +1 -1
  295. package/dist/components/waka-contribution-graph/index.es.js +4 -4
  296. package/dist/components/waka-cost-breakdown/index.cjs.js +1 -1
  297. package/dist/components/waka-cost-breakdown/index.es.js +7 -7
  298. package/dist/components/waka-coupon-input/index.cjs.js +2 -2
  299. package/dist/components/waka-coupon-input/index.es.js +1 -1
  300. package/dist/components/waka-credit-activity-feed/index.cjs.js +2 -2
  301. package/dist/components/waka-credit-activity-feed/index.es.js +1 -1
  302. package/dist/components/waka-credit-alert/index.cjs.js +1 -1
  303. package/dist/components/waka-credit-alert/index.es.js +1 -1
  304. package/dist/components/waka-credit-balance/index.cjs.js +1 -1
  305. package/dist/components/waka-credit-balance/index.es.js +3 -3
  306. package/dist/components/waka-credit-breakdown/index.cjs.js +1 -1
  307. package/dist/components/waka-credit-breakdown/index.es.js +1 -1
  308. package/dist/components/waka-credit-burn-rate/index.cjs.js +1 -1
  309. package/dist/components/waka-credit-burn-rate/index.es.js +1 -1
  310. package/dist/components/waka-credit-card-input/index.cjs.js +1 -1
  311. package/dist/components/waka-credit-card-input/index.es.js +1 -1
  312. package/dist/components/waka-credit-history/index.cjs.js +1 -1
  313. package/dist/components/waka-credit-history/index.es.js +1 -1
  314. package/dist/components/waka-credit-meter/index.cjs.js +2 -2
  315. package/dist/components/waka-credit-meter/index.es.js +3 -3
  316. package/dist/components/waka-credit-pricing-pack/index.cjs.js +1 -1
  317. package/dist/components/waka-credit-pricing-pack/index.es.js +1 -1
  318. package/dist/components/waka-credit-projection/index.cjs.js +1 -1
  319. package/dist/components/waka-credit-projection/index.es.js +1 -1
  320. package/dist/components/waka-credit-quota/index.cjs.js +1 -1
  321. package/dist/components/waka-credit-quota/index.es.js +3 -3
  322. package/dist/components/waka-credit-receipt/index.cjs.js +1 -1
  323. package/dist/components/waka-credit-receipt/index.es.js +1 -1
  324. package/dist/components/waka-credit-top-up/index.cjs.js +1 -1
  325. package/dist/components/waka-credit-top-up/index.es.js +1 -1
  326. package/dist/components/waka-credit-transaction/index.cjs.js +1 -1
  327. package/dist/components/waka-credit-transaction/index.es.js +1 -1
  328. package/dist/components/waka-credit-transfer-form/index.cjs.js +1 -1
  329. package/dist/components/waka-credit-transfer-form/index.es.js +1 -1
  330. package/dist/components/waka-credit-usage-chart/index.cjs.js +1 -1
  331. package/dist/components/waka-credit-usage-chart/index.es.js +1 -1
  332. package/dist/components/waka-daily-reward/index.cjs.js +1 -1
  333. package/dist/components/waka-database-card/index.cjs.js +1 -1
  334. package/dist/components/waka-database-card/index.es.js +1 -1
  335. package/dist/components/waka-date-range-picker/index.cjs.js +1 -1
  336. package/dist/components/waka-date-range-picker/index.es.js +3 -2
  337. package/dist/components/waka-datetime-picker/index.cjs.js +1 -1
  338. package/dist/components/waka-datetime-picker/index.es.js +4 -1
  339. package/dist/components/waka-datetime-picker.form-integration/index.cjs.js +1 -1
  340. package/dist/components/waka-dependency-tree/index.cjs.js +1 -1
  341. package/dist/components/waka-dependency-tree/index.es.js +1 -1
  342. package/dist/components/waka-deployment-lane/index.cjs.js +1 -1
  343. package/dist/components/waka-deployment-lane/index.es.js +1 -1
  344. package/dist/components/waka-device-trust/index.cjs.js +2 -2
  345. package/dist/components/waka-device-trust/index.es.js +1 -1
  346. package/dist/components/waka-doc-breadcrumb/index.cjs.js +1 -1
  347. package/dist/components/waka-doc-callout/index.cjs.js +1 -1
  348. package/dist/components/waka-doc-code-block/index.cjs.js +1 -1
  349. package/dist/components/waka-doc-nav/index.cjs.js +1 -1
  350. package/dist/components/waka-doc-renderer/index.cjs.js +1 -1
  351. package/dist/components/waka-doc-search/index.cjs.js +1 -1
  352. package/dist/components/waka-doc-table/index.cjs.js +1 -1
  353. package/dist/components/waka-doc-toc/index.cjs.js +1 -1
  354. package/dist/components/waka-doc-toolbar/index.cjs.js +1 -1
  355. package/dist/components/waka-doc-version/index.cjs.js +1 -1
  356. package/dist/components/waka-dock/index.cjs.js +1 -1
  357. package/dist/components/waka-dock/index.es.js +2 -2
  358. package/dist/components/waka-drawer/index.cjs.js +1 -1
  359. package/dist/components/waka-drawer/index.es.js +1 -1
  360. package/dist/components/waka-empty-state/index.cjs.js +1 -1
  361. package/dist/components/waka-env-var-editor/index.cjs.js +1 -1
  362. package/dist/components/waka-error-shake/index.cjs.js +1 -1
  363. package/dist/components/waka-feature-announcement/index.cjs.js +2 -2
  364. package/dist/components/waka-feature-announcement/index.es.js +1 -1
  365. package/dist/components/waka-feature-flag-row/index.cjs.js +1 -1
  366. package/dist/components/waka-file-upload/index.cjs.js +1 -1
  367. package/dist/components/waka-file-upload/index.es.js +2 -2
  368. package/dist/components/waka-floating-nav/index.cjs.js +1 -1
  369. package/dist/components/waka-floating-nav/index.es.js +1 -1
  370. package/dist/components/waka-flow-diagram/index.cjs.js +1 -1
  371. package/dist/components/waka-funnel-chart/index.cjs.js +2 -2
  372. package/dist/components/waka-funnel-chart/index.es.js +1 -1
  373. package/dist/components/waka-glow-card/index.cjs.js +1 -1
  374. package/dist/components/waka-glow-card/index.es.js +3 -3
  375. package/dist/components/waka-goal-progress/index.cjs.js +3 -3
  376. package/dist/components/waka-goal-progress/index.es.js +3 -3
  377. package/dist/components/waka-haptic-button/index.cjs.js +1 -1
  378. package/dist/components/waka-health-pulse/index.cjs.js +2 -2
  379. package/dist/components/waka-health-pulse/index.es.js +1 -1
  380. package/dist/components/waka-heatmap/index.cjs.js +1 -1
  381. package/dist/components/waka-heatmap/index.es.js +3 -3
  382. package/dist/components/waka-hotspot/index.cjs.js +1 -1
  383. package/dist/components/waka-image/index.cjs.js +1 -1
  384. package/dist/components/waka-image/index.es.js +1 -1
  385. package/dist/components/waka-incident-timeline/index.cjs.js +1 -1
  386. package/dist/components/waka-incident-timeline/index.es.js +3 -2
  387. package/dist/components/waka-invoice-preview/index.cjs.js +1 -1
  388. package/dist/components/waka-invoice-preview/index.es.js +1 -1
  389. package/dist/components/waka-kanban/index.cjs.js +1 -1
  390. package/dist/components/waka-kanban/index.es.js +1 -1
  391. package/dist/components/waka-kpi-dashboard/index.cjs.js +1 -1
  392. package/dist/components/waka-kpi-dashboard/index.es.js +6 -4
  393. package/dist/components/waka-kubernetes-overview/index.cjs.js +1 -1
  394. package/dist/components/waka-kubernetes-overview/index.es.js +1 -1
  395. package/dist/components/waka-leaderboard/index.cjs.js +1 -1
  396. package/dist/components/waka-level-progress/index.cjs.js +2 -2
  397. package/dist/components/waka-level-progress/index.es.js +2 -2
  398. package/dist/components/waka-liquid-button/index.cjs.js +1 -1
  399. package/dist/components/waka-loading-orbit/index.cjs.js +1 -1
  400. package/dist/components/waka-log-viewer/index.cjs.js +1 -1
  401. package/dist/components/waka-loot-box/index.cjs.js +2 -2
  402. package/dist/components/waka-loot-box/index.es.js +1 -1
  403. package/dist/components/waka-magic-link/index.cjs.js +2 -2
  404. package/dist/components/waka-magnetic-button/index.cjs.js +1 -1
  405. package/dist/components/waka-mention-input/index.cjs.js +1 -1
  406. package/dist/components/waka-mention-input/index.es.js +52 -40
  407. package/dist/components/waka-metric-sparkline/index.cjs.js +1 -1
  408. package/dist/components/waka-metric-sparkline/index.es.js +1 -1
  409. package/dist/components/waka-migration-list/index.cjs.js +1 -1
  410. package/dist/components/waka-milestone-road/index.cjs.js +2 -2
  411. package/dist/components/waka-milestone-road/index.es.js +5 -5
  412. package/dist/components/waka-modal/index.cjs.js +1 -1
  413. package/dist/components/waka-modal/index.es.js +1 -1
  414. package/dist/components/waka-morph-button/index.cjs.js +2 -2
  415. package/dist/components/waka-morph-button/index.es.js +6 -2
  416. package/dist/components/waka-network-topology/index.cjs.js +1 -1
  417. package/dist/components/waka-network-topology/index.es.js +4 -2
  418. package/dist/components/waka-notifications/index.cjs.js +1 -1
  419. package/dist/components/waka-number-input/index.cjs.js +1 -1
  420. package/dist/components/waka-number-input/index.es.js +1 -1
  421. package/dist/components/waka-orbital-menu/index.cjs.js +1 -1
  422. package/dist/components/waka-orbital-menu/index.es.js +1 -1
  423. package/dist/components/waka-order-tracker/index.cjs.js +1 -1
  424. package/dist/components/waka-order-tracker/index.es.js +3 -2
  425. package/dist/components/waka-outstream-video/index.cjs.js +1 -1
  426. package/dist/components/waka-outstream-video/index.es.js +2 -2
  427. package/dist/components/waka-pagination/index.cjs.js +1 -1
  428. package/dist/components/waka-pagination/index.es.js +1 -1
  429. package/dist/components/waka-password-strength/index.cjs.js +2 -2
  430. package/dist/components/waka-password-strength/index.es.js +3 -3
  431. package/dist/components/waka-payment-method-picker/index.cjs.js +1 -1
  432. package/dist/components/waka-payment-method-picker/index.es.js +1 -1
  433. package/dist/components/waka-permission-matrix/index.cjs.js +2 -2
  434. package/dist/components/waka-permission-matrix/index.es.js +3 -2
  435. package/dist/components/waka-phone-input/index.cjs.js +1 -1
  436. package/dist/components/waka-phone-input/index.es.js +5 -3
  437. package/dist/components/waka-pipeline-view/index.cjs.js +2 -2
  438. package/dist/components/waka-pipeline-view/index.es.js +1 -1
  439. package/dist/components/waka-player-card/index.cjs.js +2 -2
  440. package/dist/components/waka-player-card/index.es.js +4 -4
  441. package/dist/components/waka-pod-card/index.cjs.js +1 -1
  442. package/dist/components/waka-pod-card/index.es.js +1 -1
  443. package/dist/components/waka-points-popup/index.cjs.js +1 -1
  444. package/dist/components/waka-points-popup/index.es.js +5 -1
  445. package/dist/components/waka-power-up/index.cjs.js +1 -1
  446. package/dist/components/waka-presence-indicator/index.cjs.js +2 -2
  447. package/dist/components/waka-presence-indicator/index.es.js +1 -1
  448. package/dist/components/waka-pricing-table/index.cjs.js +2 -2
  449. package/dist/components/waka-pricing-table/index.es.js +1 -1
  450. package/dist/components/waka-product-card/index.cjs.js +1 -1
  451. package/dist/components/waka-progress-onboarding/index.cjs.js +3 -3
  452. package/dist/components/waka-progress-onboarding/index.es.js +1 -1
  453. package/dist/components/waka-pull-to-refresh/index.cjs.js +1 -1
  454. package/dist/components/waka-qrcode/index.cjs.js +1 -1
  455. package/dist/components/waka-qrcode/index.es.js +1 -1
  456. package/dist/components/waka-query-explain/index.cjs.js +1 -1
  457. package/dist/components/waka-quest-card/index.cjs.js +2 -2
  458. package/dist/components/waka-quest-card/index.es.js +4 -1
  459. package/dist/components/waka-quota-bar/index.cjs.js +2 -2
  460. package/dist/components/waka-quota-bar/index.es.js +11 -4
  461. package/dist/components/waka-radar-score/index.cjs.js +1 -1
  462. package/dist/components/waka-radar-score/index.es.js +6 -6
  463. package/dist/components/waka-rank-badge/index.cjs.js +2 -2
  464. package/dist/components/waka-rank-badge/index.es.js +1 -1
  465. package/dist/components/waka-rating-input/index.cjs.js +2 -2
  466. package/dist/components/waka-rating-input/index.es.js +1 -1
  467. package/dist/components/waka-reaction-picker/index.cjs.js +1 -1
  468. package/dist/components/waka-reaction-picker/index.es.js +7 -4
  469. package/dist/components/waka-region-map/index.cjs.js +1 -1
  470. package/dist/components/waka-region-map/index.es.js +1 -1
  471. package/dist/components/waka-resource-gauge/index.cjs.js +2 -2
  472. package/dist/components/waka-resource-gauge/index.es.js +3 -3
  473. package/dist/components/waka-resource-pool/index.cjs.js +2 -2
  474. package/dist/components/waka-resource-pool/index.es.js +1 -1
  475. package/dist/components/waka-rich-text-editor/index.cjs.js +1 -1
  476. package/dist/components/waka-rich-text-editor/index.es.js +1 -1
  477. package/dist/components/waka-rollback-slider/index.cjs.js +2 -2
  478. package/dist/components/waka-rollback-slider/index.es.js +5 -3
  479. package/dist/components/waka-sankey-diagram/index.cjs.js +2 -2
  480. package/dist/components/waka-sankey-diagram/index.es.js +5 -5
  481. package/dist/components/waka-schedule-picker/index.cjs.js +1 -1
  482. package/dist/components/waka-schedule-picker/index.es.js +3 -2
  483. package/dist/components/waka-scratch-card/index.cjs.js +2 -2
  484. package/dist/components/waka-scratch-card/index.es.js +1 -1
  485. package/dist/components/waka-season-pass/index.cjs.js +1 -1
  486. package/dist/components/waka-secret-card/index.cjs.js +1 -1
  487. package/dist/components/waka-security-scan-result/index.cjs.js +1 -1
  488. package/dist/components/waka-security-score/index.cjs.js +2 -2
  489. package/dist/components/waka-security-score/index.es.js +5 -5
  490. package/dist/components/waka-segmented-control/index.cjs.js +1 -1
  491. package/dist/components/waka-segmented-control/index.es.js +1 -1
  492. package/dist/components/waka-server-rack/index.cjs.js +1 -1
  493. package/dist/components/waka-service-graph/index.cjs.js +1 -1
  494. package/dist/components/waka-session-manager/index.cjs.js +1 -1
  495. package/dist/components/waka-session-manager/index.es.js +3 -2
  496. package/dist/components/waka-signature-pad/index.cjs.js +1 -1
  497. package/dist/components/waka-signature-pad/index.es.js +1 -1
  498. package/dist/components/waka-skeleton-wave/index.cjs.js +1 -1
  499. package/dist/components/waka-skill-tree/index.cjs.js +2 -2
  500. package/dist/components/waka-skill-tree/index.es.js +32 -32
  501. package/dist/components/waka-sla-tracker/index.cjs.js +1 -1
  502. package/dist/components/waka-sla-tracker/index.es.js +1 -1
  503. package/dist/components/waka-slider-range/index.cjs.js +1 -1
  504. package/dist/components/waka-slider-range/index.es.js +3 -3
  505. package/dist/components/waka-spin-wheel/index.cjs.js +2 -2
  506. package/dist/components/waka-spin-wheel/index.es.js +6 -6
  507. package/dist/components/waka-spinner/index.cjs.js +1 -1
  508. package/dist/components/waka-sponsored-badge/index.cjs.js +1 -1
  509. package/dist/components/waka-sponsored-badge/index.es.js +1 -1
  510. package/dist/components/waka-sponsored-card/index.cjs.js +1 -1
  511. package/dist/components/waka-sponsored-card/index.es.js +2 -2
  512. package/dist/components/waka-sponsored-feed/index.cjs.js +1 -1
  513. package/dist/components/waka-sponsored-feed/index.es.js +2 -2
  514. package/dist/components/waka-spotlight/index.cjs.js +1 -1
  515. package/dist/components/waka-spotlight/index.es.js +2 -1
  516. package/dist/components/waka-stat/index.cjs.js +1 -1
  517. package/dist/components/waka-stat/index.es.js +1 -1
  518. package/dist/components/waka-stats-hexagon/index.cjs.js +1 -1
  519. package/dist/components/waka-stats-hexagon/index.es.js +9 -9
  520. package/dist/components/waka-status-matrix/index.cjs.js +1 -1
  521. package/dist/components/waka-status-matrix/index.es.js +1 -1
  522. package/dist/components/waka-stepper/index.cjs.js +1 -1
  523. package/dist/components/waka-stepper/index.es.js +1 -1
  524. package/dist/components/waka-streak-counter/index.cjs.js +1 -1
  525. package/dist/components/waka-success-explosion/index.cjs.js +1 -1
  526. package/dist/components/waka-swipe-card/index.cjs.js +1 -1
  527. package/dist/components/waka-swipe-card/index.es.js +2 -2
  528. package/dist/components/waka-tabs-morph/index.cjs.js +1 -1
  529. package/dist/components/waka-tabs-morph/index.es.js +1 -1
  530. package/dist/components/waka-tag-input/index.cjs.js +1 -1
  531. package/dist/components/waka-tag-input/index.es.js +3 -2
  532. package/dist/components/waka-team-banner/index.cjs.js +2 -2
  533. package/dist/components/waka-team-banner/index.es.js +1 -1
  534. package/dist/components/waka-terminal-output/index.cjs.js +2 -2
  535. package/dist/components/waka-terminal-output/index.es.js +5 -3
  536. package/dist/components/waka-test-report/index.cjs.js +1 -1
  537. package/dist/components/waka-theme-creator/index.cjs.js +1 -1
  538. package/dist/components/waka-theme-manager/index.cjs.js +1 -1
  539. package/dist/components/waka-theme-manager/index.es.js +5 -2
  540. package/dist/components/waka-thread-view/index.cjs.js +2 -2
  541. package/dist/components/waka-thread-view/index.es.js +1 -1
  542. package/dist/components/waka-tilt-card/index.cjs.js +1 -1
  543. package/dist/components/waka-tilt-card/index.es.js +8 -6
  544. package/dist/components/waka-time-picker/index.cjs.js +1 -1
  545. package/dist/components/waka-time-picker/index.es.js +10 -6
  546. package/dist/components/waka-timeline/index.cjs.js +1 -1
  547. package/dist/components/waka-timeline/index.es.js +1 -1
  548. package/dist/components/waka-tooltip-tour/index.cjs.js +3 -3
  549. package/dist/components/waka-tooltip-tour/index.es.js +53 -51
  550. package/dist/components/waka-tour-guide/index.cjs.js +2 -2
  551. package/dist/components/waka-tour-guide/index.es.js +1 -1
  552. package/dist/components/waka-tournament-bracket/index.cjs.js +2 -2
  553. package/dist/components/waka-tournament-bracket/index.es.js +1 -1
  554. package/dist/components/waka-trace-viewer/index.cjs.js +1 -1
  555. package/dist/components/waka-tree/index.cjs.js +1 -1
  556. package/dist/components/waka-tree/index.es.js +1 -1
  557. package/dist/components/waka-treemap-chart/index.cjs.js +1 -1
  558. package/dist/components/waka-treemap-chart/index.es.js +1 -1
  559. package/dist/components/waka-two-factor-setup/index.cjs.js +2 -2
  560. package/dist/components/waka-two-factor-setup/index.es.js +5 -4
  561. package/dist/components/waka-typewriter/index.cjs.js +1 -1
  562. package/dist/components/waka-typewriter/index.es.js +7 -2
  563. package/dist/components/waka-typing-indicator/index.cjs.js +2 -2
  564. package/dist/components/waka-typing-indicator/index.es.js +1 -1
  565. package/dist/components/waka-versus-card/index.cjs.js +3 -3
  566. package/dist/components/waka-versus-card/index.es.js +5 -4
  567. package/dist/components/waka-video/index.cjs.js +1 -1
  568. package/dist/components/waka-video/index.es.js +1 -1
  569. package/dist/components/waka-video-ad/index.cjs.js +1 -1
  570. package/dist/components/waka-video-ad/index.es.js +3 -3
  571. package/dist/components/waka-video-call/index.cjs.js +2 -2
  572. package/dist/components/waka-video-call/index.es.js +1 -1
  573. package/dist/components/waka-video-overlay/index.cjs.js +1 -1
  574. package/dist/components/waka-video-overlay/index.es.js +2 -2
  575. package/dist/components/waka-virtual-list/index.cjs.js +1 -1
  576. package/dist/components/waka-virtual-list/index.es.js +1 -1
  577. package/dist/components/waka-voice-message/index.cjs.js +1 -1
  578. package/dist/components/waka-voice-message/index.es.js +6 -5
  579. package/dist/components/waka-welcome-modal/index.cjs.js +2 -2
  580. package/dist/components/waka-welcome-modal/index.es.js +1 -1
  581. package/dist/components/waka-xp-bar/index.cjs.js +1 -1
  582. package/dist/components/waka-xp-bar/index.es.js +2 -2
  583. package/dist/context/admincrumb-context.cjs.js +1 -1
  584. package/dist/context/language-context.cjs.js +1 -1
  585. package/dist/context/language-context.es.js +2 -2
  586. package/dist/context/theme-context.cjs.js +1 -1
  587. package/dist/context/theme-provider.cjs.js +1 -1
  588. package/dist/context/theme-provider.es.js +9 -6
  589. package/dist/context/waka-provider.cjs.js +1 -1
  590. package/dist/context/waka-provider.es.js +57 -53
  591. package/dist/doc.cjs.js +1 -1
  592. package/dist/editor.cjs.js +1 -1
  593. package/dist/export.cjs.js +1 -1
  594. package/dist/hooks/use-toast.cjs.js +1 -1
  595. package/dist/hooks/use-translation.cjs.js +1 -1
  596. package/dist/index.cjs.js +1 -1
  597. package/dist/index.d.ts +2 -0
  598. package/dist/index.es.js +279 -278
  599. package/dist/lib/i18n.cjs.js +1 -1
  600. package/dist/lib/i18n.es.js +11 -9
  601. package/dist/locales/default-resources.cjs.js +1 -0
  602. package/dist/locales/default-resources.d.ts +155 -0
  603. package/dist/locales/default-resources.es.js +150 -0
  604. package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.cjs.js +13 -13
  605. package/dist/node_modules/.pnpm/exceljs@4.4.0/node_modules/exceljs/dist/exceljs.min.es.js +13 -13
  606. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.cjs.js +1 -1
  607. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.es.js +19 -19
  608. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.cjs.js +1 -1
  609. package/dist/node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.es.js +24 -25
  610. package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-resizable-panels/dist/react-resizable-panels.cjs.js +1 -1
  611. package/dist/node_modules/.pnpm/react-resizable-panels@4.11.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-resizable-panels/dist/react-resizable-panels.es.js +26 -23
  612. package/dist/rich-text.cjs.js +1 -1
  613. package/dist/ui.css +1 -1
  614. package/dist/utils/cn.cjs.js +1 -1
  615. package/dist/utils/datetime-helpers.cjs.js +1 -1
  616. package/dist/utils/theme-loader.cjs.js +1 -1
  617. package/dist/utils/tweak.cjs.js +1 -1
  618. package/package.json +28 -27
  619. package/src/components/DataTable/DataTable.tsx +2 -0
  620. package/src/components/DataTable/DataTablePagination.tsx +28 -8
  621. package/src/components/DataTable/hooks/useDataTable.ts +13 -0
  622. package/src/components/editor/blocks/waka-diagram-block.tsx +7 -36
@@ -1,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={desktop:{icon:r.Monitor,label:`Desktop`},laptop:{icon:r.Laptop,label:`Laptop`},mobile:{icon:r.Smartphone,label:`Mobile`},tablet:{icon:r.Tablet,label:`Tablet`},unknown:{icon:r.Monitor,label:`Unknown Device`}},o={trusted:{icon:r.ShieldCheck,color:`text-green-600`,bgColor:`bg-green-100 dark:bg-green-900/30`,label:`Trusted`},pending:{icon:r.Shield,color:`text-amber-600`,bgColor:`bg-amber-100 dark:bg-amber-900/30`,label:`Pending`},expired:{icon:r.ShieldAlert,color:`text-orange-600`,bgColor:`bg-orange-100 dark:bg-orange-900/30`,label:`Expired`},revoked:{icon:r.ShieldX,color:`text-red-600`,bgColor:`bg-red-100 dark:bg-red-900/30`,label:`Revoked`}},s=[{value:`7d`,label:`7 days`},{value:`30d`,label:`30 days`},{value:`90d`,label:`90 days`},{value:`365d`,label:`1 year`},{value:`never`,label:`Never`}],c={sm:{icon:`h-4 w-4`,deviceIcon:`h-8 w-8`,text:`text-xs`,name:`text-sm`,button:`px-2 py-1 text-xs`,card:`p-3`,gap:`gap-2`},md:{icon:`h-5 w-5`,deviceIcon:`h-10 w-10`,text:`text-sm`,name:`text-base`,button:`px-3 py-1.5 text-sm`,card:`p-4`,gap:`gap-3`},lg:{icon:`h-6 w-6`,deviceIcon:`h-12 w-12`,text:`text-base`,name:`text-lg`,button:`px-4 py-2 text-base`,card:`p-5`,gap:`gap-4`}},l={maxDevices:5,defaultExpiryPeriod:`30d`,requireVerification:!0};function u(e){return new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}).format(e)}function d(e){let t=Math.floor((new Date().getTime()-e.getTime())/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<7?`${i}d ago`:u(e)}function f(e){if(!e)return`active`;let t=new Date;return e<t?`expired`:Math.ceil((e.getTime()-t.getTime())/(1e3*60*60*24))<=7?`expiring`:`active`}function p(e){if(!e)return null;let t=new Date;return Math.ceil((e.getTime()-t.getTime())/(1e3*60*60*24))}function m({type:e,isCurrentDevice:n,size:r,className:o}){let s=c[r],l=a[e].icon;return(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center rounded-lg`,`bg-muted`,s.deviceIcon,n&&`ring-2 ring-primary ring-offset-2`,o),children:[(0,i.jsx)(l,{className:t.cn(s.icon,`text-muted-foreground`)}),n&&(0,i.jsx)(`div`,{className:`absolute -top-1 -right-1 h-3 w-3 rounded-full bg-green-500 border-2 border-background`})]})}function h({status:e,expiresAt:n,size:a}){let s=c[a],l=o[e],u=l.icon,d=f(n),m=p(n);return(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 rounded-full px-2 py-0.5`,l.bgColor),children:[(0,i.jsx)(u,{className:t.cn(`h-3 w-3`,l.color)}),(0,i.jsx)(`span`,{className:t.cn(s.text,l.color,`font-medium`),children:l.label})]}),e===`trusted`&&d===`expiring`&&m!==null&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-amber-600`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),(0,i.jsxs)(`span`,{className:t.cn(s.text),children:[`Expires in `,m,`d`]})]})]})}function g({isOpen:e,onClose:a,onVerify:o,loading:s,title:c,description:l}){let[u,d]=n.useState(``),[f,p]=n.useState(!1);return e?(0,i.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,i.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:a,"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:t.cn(`relative z-10 w-full max-w-md rounded-lg border bg-background p-6 shadow-lg`,`animate-in fade-in-0 zoom-in-95`),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,i.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-primary/10`,children:(0,i.jsx)(r.Key,{className:`h-5 w-5 text-primary`})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h3`,{className:`text-lg font-semibold`,children:c}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:l})]})]}),(0,i.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),o(u)},className:`space-y-4`,children:[(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(`input`,{type:f?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Enter verification code`,className:`w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary pr-10`,autoFocus:!0,disabled:s}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>p(!f),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground`,children:f?(0,i.jsx)(r.EyeOff,{className:`h-4 w-4`}):(0,i.jsx)(r.Eye,{className:`h-4 w-4`})})]}),(0,i.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:a,disabled:s,className:`px-4 py-2 text-sm font-medium rounded-md hover:bg-muted transition-colors`,children:`Cancel`}),(0,i.jsx)(`button`,{type:`submit`,disabled:s||!u,className:t.cn(`px-4 py-2 text-sm font-medium rounded-md bg-primary text-primary-foreground`,`hover:bg-primary/90 transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:s?(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}):`Verify`})]})]})]})]}):null}function _({isOpen:e,device:n,onClose:a,onConfirm:o,loading:s}){return!e||!n?null:(0,i.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,i.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:a,"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:t.cn(`relative z-10 w-full max-w-md rounded-lg border bg-background p-6 shadow-lg`,`animate-in fade-in-0 zoom-in-95`),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,i.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/30`,children:(0,i.jsx)(r.Trash2,{className:`h-5 w-5 text-red-600`})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h3`,{className:`text-lg font-semibold`,children:`Remove Trusted Device`}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone`})]})]}),(0,i.jsx)(`div`,{className:`mb-6 p-4 rounded-lg bg-muted/50`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,i.jsx)(m,{type:n.type,size:`sm`}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`p`,{className:`font-medium`,children:n.name}),(0,i.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[n.os,` `,n.browser&&`- ${n.browser}`]})]})]})}),n.isCurrentDevice&&(0,i.jsx)(`div`,{className:`mb-4 p-3 rounded-lg bg-amber-100 dark:bg-amber-900/30 border border-amber-200 dark:border-amber-800`,children:(0,i.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,i.jsx)(r.AlertTriangle,{className:`h-4 w-4 text-amber-600 mt-0.5 flex-shrink-0`}),(0,i.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-400`,children:`This is your current device. Removing it will sign you out.`})]})}),(0,i.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:a,disabled:s,className:`px-4 py-2 text-sm font-medium rounded-md hover:bg-muted transition-colors`,children:`Cancel`}),(0,i.jsx)(`button`,{type:`button`,onClick:o,disabled:s,className:t.cn(`px-4 py-2 text-sm font-medium rounded-md`,`bg-red-600 text-white hover:bg-red-700 transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:s?(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}):`Remove Device`})]})]})]})}function v({deviceId:e,currentExpiry:a,onUpdate:o,size:l,disabled:d}){let[f,p]=n.useState(!1),[m,h]=n.useState(!1),g=c[l],_=n.useRef(null);n.useEffect(()=>{let e=e=>{_.current&&!_.current.contains(e.target)&&p(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let v=async t=>{h(!0);try{await o(e,t),p(!1)}finally{h(!1)}},y=a?`Expires ${u(a)}`:`Never expires`;return(0,i.jsxs)(`div`,{className:`relative`,ref:_,children:[(0,i.jsxs)(`button`,{type:`button`,onClick:()=>!d&&p(!f),disabled:d||m,className:t.cn(`flex items-center gap-1 rounded-md border px-2 py-1 transition-colors`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,g.text,d&&`opacity-50 cursor-not-allowed`),children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3 text-muted-foreground`}),(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:m?`Updating...`:y})]}),f&&(0,i.jsx)(`div`,{className:t.cn(`absolute right-0 top-full mt-1 z-10 w-40 rounded-md border bg-popover shadow-lg`,`animate-in fade-in-0 zoom-in-95`),children:s.map(e=>(0,i.jsx)(`button`,{onClick:()=>v(e.value),className:t.cn(`w-full px-3 py-2 text-left text-sm hover:bg-muted transition-colors`,`first:rounded-t-md last:rounded-b-md`),children:e.label},e.value))})]})}function y({device:e,size:n,showDetails:o,onRemove:s,onUpdateExpiry:l}){let f=c[n],p=a[e.type];return(0,i.jsx)(`div`,{className:t.cn(`group rounded-lg border bg-card transition-all duration-200`,`hover:shadow-md hover:border-border/80`,e.isCurrentDevice&&`ring-2 ring-primary/20`,f.card),children:(0,i.jsxs)(`div`,{className:t.cn(`flex items-start`,f.gap),children:[(0,i.jsx)(m,{type:e.type,isCurrentDevice:e.isCurrentDevice,size:n}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,i.jsxs)(`div`,{className:`min-w-0`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`h3`,{className:t.cn(`font-medium truncate`,f.name),children:e.name}),e.isCurrentDevice&&(0,i.jsx)(`span`,{className:`flex-shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary`,children:`Current`})]}),(0,i.jsxs)(`p`,{className:t.cn(`text-muted-foreground mt-0.5`,f.text),children:[p.label,e.os&&` - ${e.os}`,e.browser&&` - ${e.browser}`]})]}),(0,i.jsx)(`button`,{onClick:()=>s(e),className:t.cn(`flex-shrink-0 rounded-md p-1.5 transition-colors`,`text-muted-foreground hover:text-red-600 hover:bg-red-100 dark:hover:bg-red-900/30`,`opacity-0 group-hover:opacity-100 focus:opacity-100`),"aria-label":`Remove ${e.name}`,children:(0,i.jsx)(r.Trash2,{className:f.icon})})]}),(0,i.jsxs)(`div`,{className:t.cn(`mt-3 flex items-center flex-wrap`,f.gap),children:[(0,i.jsx)(h,{status:e.status,expiresAt:e.expiresAt,size:n}),(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-muted-foreground`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),(0,i.jsxs)(`span`,{className:f.text,children:[`Trusted `,u(e.trustedAt)]})]}),e.lastUsedAt&&(0,i.jsx)(`div`,{className:`flex items-center gap-1 text-muted-foreground`,children:(0,i.jsxs)(`span`,{className:f.text,children:[`Last used `,d(e.lastUsedAt)]})})]}),o&&(0,i.jsxs)(`div`,{className:t.cn(`mt-3 pt-3 border-t space-y-1.5`,f.text),children:[e.fingerprint&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium`,children:`Fingerprint:`}),(0,i.jsx)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-xs`,children:e.fingerprint})]}),e.lastIpAddress&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium`,children:`IP Address:`}),(0,i.jsx)(`span`,{children:e.lastIpAddress})]}),e.lastLocation&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium`,children:`Location:`}),(0,i.jsx)(`span`,{children:e.lastLocation})]})]}),l&&e.status===`trusted`&&(0,i.jsx)(`div`,{className:`mt-3`,children:(0,i.jsx)(v,{deviceId:e.id,currentExpiry:e.expiresAt,onUpdate:l,size:n})})]})]})})}function b({onAddDevice:e,size:n}){let a=c[n];return(0,i.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,i.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-full bg-muted mb-4`,children:(0,i.jsx)(r.Shield,{className:`h-8 w-8 text-muted-foreground`})}),(0,i.jsx)(`h3`,{className:`text-lg font-medium`,children:`No trusted devices`}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 max-w-sm`,children:`Add devices you trust to enable faster sign-ins and enhanced security.`}),e&&(0,i.jsxs)(`button`,{onClick:e,className:t.cn(`mt-4 flex items-center gap-2 rounded-md bg-primary text-primary-foreground font-medium`,`hover:bg-primary/90 transition-colors`,a.button),children:[(0,i.jsx)(r.Plus,{className:`h-4 w-4`}),`Add This Device`]})]})}function x({currentCount:e,maxDevices:n,size:a}){let o=c[a],s=e>=n;return e>=n-1?(0,i.jsxs)(`div`,{className:t.cn(`flex items-start gap-2 rounded-lg p-3 mb-4`,s?`bg-red-100 dark:bg-red-900/30 border border-red-200 dark:border-red-800`:`bg-amber-100 dark:bg-amber-900/30 border border-amber-200 dark:border-amber-800`),children:[(0,i.jsx)(r.AlertTriangle,{className:t.cn(`h-4 w-4 flex-shrink-0 mt-0.5`,s?`text-red-600`:`text-amber-600`)}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`p`,{className:t.cn(o.text,`font-medium`,s?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`),children:s?`Device limit reached`:`Approaching device limit`}),(0,i.jsxs)(`p`,{className:t.cn(o.text,s?`text-red-600 dark:text-red-500`:`text-amber-600 dark:text-amber-500`),children:[e,` of `,n,` devices trusted.`,s&&` Remove a device to add a new one.`]})]})]}):null}function S({devices:e,currentDeviceId:a,config:o=l,onAddDevice:s,onRemoveDevice:u,onVerificationRequired:d,onUpdateExpiry:f,onRefresh:p,loading:m=!1,size:h=`md`,showDetails:v=!1,className:S}){let[C,w]=n.useState(null),[T,E]=n.useState(!1),[D,O]=n.useState(!1),[k,A]=n.useState(null),[j,M]=n.useState(!1),[N,P]=n.useState(!1),F=c[h],I=n.useMemo(()=>e.map(e=>({...e,isCurrentDevice:e.id===a||e.isCurrentDevice})),[e,a]),L=n.useMemo(()=>[...I].sort((e,t)=>e.isCurrentDevice&&!t.isCurrentDevice?-1:!e.isCurrentDevice&&t.isCurrentDevice?1:e.lastUsedAt&&t.lastUsedAt?new Date(t.lastUsedAt).getTime()-new Date(e.lastUsedAt).getTime():0),[I]),R=async()=>{o.requireVerification&&d?(A({type:`add`}),O(!0)):s?.()},z=async e=>{w(e),o.requireVerification&&d?(A({type:`remove`,deviceId:e.id}),O(!0)):E(!0)},B=async e=>{if(!(!k||!d)){M(!0);try{await d(k.type,k.deviceId)&&(O(!1),k.type===`add`?s?.():k.type===`remove`&&C&&E(!0))}finally{M(!1),A(null)}}},V=async()=>{if(!(!C||!u)){M(!0);try{await u(C.id),E(!1),w(null)}finally{M(!1)}}},H=async()=>{if(p){P(!0);try{await p()}finally{P(!1)}}},U=e.filter(e=>e.status===`trusted`).length,W=U<o.maxDevices;return(0,i.jsxs)(`div`,{className:t.cn(`relative`,S),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Trusted Devices`}),(0,i.jsxs)(`p`,{className:t.cn(`text-muted-foreground`,F.text),children:[U,` of `,o.maxDevices,` devices trusted`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p&&(0,i.jsx)(`button`,{onClick:H,disabled:N||m,className:t.cn(`rounded-md p-2 transition-colors`,`text-muted-foreground hover:text-foreground hover:bg-muted`,`disabled:opacity-50`),"aria-label":`Refresh device list`,children:(0,i.jsx)(r.RefreshCw,{className:t.cn(F.icon,(N||m)&&`animate-spin`)})}),s&&(0,i.jsxs)(`button`,{onClick:R,disabled:!W||m,className:t.cn(`flex items-center gap-2 rounded-md bg-primary text-primary-foreground font-medium`,`hover:bg-primary/90 transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`,F.button),children:[(0,i.jsx)(r.Plus,{className:`h-4 w-4`}),`Add Device`]})]})]}),(0,i.jsx)(x,{currentCount:U,maxDevices:o.maxDevices,size:h}),m?(0,i.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,i.jsx)(r.Loader2,{className:`h-8 w-8 animate-spin text-muted-foreground`})}):L.length===0?(0,i.jsx)(b,{onAddDevice:s,size:h}):(0,i.jsx)(`div`,{className:`space-y-3`,children:L.map(e=>(0,i.jsx)(y,{device:e,size:h,showDetails:v,onRemove:z,onUpdateExpiry:f},e.id))}),(0,i.jsx)(g,{isOpen:D,onClose:()=>{O(!1),A(null),w(null)},onVerify:B,loading:j,title:`Verification Required`,description:`Enter your verification code to continue`}),(0,i.jsx)(_,{isOpen:T,device:C,onClose:()=>{E(!1),w(null)},onConfirm:V,loading:j}),(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={desktop:{icon:r.Monitor,label:`Desktop`},laptop:{icon:r.Laptop,label:`Laptop`},mobile:{icon:r.Smartphone,label:`Mobile`},tablet:{icon:r.Tablet,label:`Tablet`},unknown:{icon:r.Monitor,label:`Unknown Device`}},o={trusted:{icon:r.ShieldCheck,color:`text-green-600`,bgColor:`bg-green-100 dark:bg-green-900/30`,label:`Trusted`},pending:{icon:r.Shield,color:`text-amber-600`,bgColor:`bg-amber-100 dark:bg-amber-900/30`,label:`Pending`},expired:{icon:r.ShieldAlert,color:`text-orange-600`,bgColor:`bg-orange-100 dark:bg-orange-900/30`,label:`Expired`},revoked:{icon:r.ShieldX,color:`text-red-600`,bgColor:`bg-red-100 dark:bg-red-900/30`,label:`Revoked`}},s=[{value:`7d`,label:`7 days`},{value:`30d`,label:`30 days`},{value:`90d`,label:`90 days`},{value:`365d`,label:`1 year`},{value:`never`,label:`Never`}],c={sm:{icon:`h-4 w-4`,deviceIcon:`h-8 w-8`,text:`text-xs`,name:`text-sm`,button:`px-2 py-1 text-xs`,card:`p-3`,gap:`gap-2`},md:{icon:`h-5 w-5`,deviceIcon:`h-10 w-10`,text:`text-sm`,name:`text-base`,button:`px-3 py-1.5 text-sm`,card:`p-4`,gap:`gap-3`},lg:{icon:`h-6 w-6`,deviceIcon:`h-12 w-12`,text:`text-base`,name:`text-lg`,button:`px-4 py-2 text-base`,card:`p-5`,gap:`gap-4`}},l={maxDevices:5,defaultExpiryPeriod:`30d`,requireVerification:!0};function u(e){return new Intl.DateTimeFormat(`en-US`,{month:`short`,day:`numeric`,year:`numeric`}).format(e)}function d(e){let t=Math.floor((new Date().getTime()-e.getTime())/1e3);if(t<60)return`just now`;let n=Math.floor(t/60);if(n<60)return`${n}m ago`;let r=Math.floor(n/60);if(r<24)return`${r}h ago`;let i=Math.floor(r/24);return i<7?`${i}d ago`:u(e)}function f(e){if(!e)return`active`;let t=new Date;return e<t?`expired`:Math.ceil((e.getTime()-t.getTime())/(1e3*60*60*24))<=7?`expiring`:`active`}function p(e){if(!e)return null;let t=new Date;return Math.ceil((e.getTime()-t.getTime())/(1e3*60*60*24))}function m({type:e,isCurrentDevice:n,size:r,className:o}){let s=c[r],l=a[e].icon;return(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center rounded-lg`,`bg-muted`,s.deviceIcon,n&&`ring-2 ring-primary ring-offset-2`,o),children:[(0,i.jsx)(l,{className:t.cn(s.icon,`text-muted-foreground`)}),n&&(0,i.jsx)(`div`,{className:`absolute -top-1 -right-1 h-3 w-3 rounded-full bg-green-500 border-2 border-background`})]})}function h({status:e,expiresAt:n,size:a}){let s=c[a],l=o[e],u=l.icon,d=f(n),m=p(n);return(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 rounded-full px-2 py-0.5`,l.bgColor),children:[(0,i.jsx)(u,{className:t.cn(`h-3 w-3`,l.color)}),(0,i.jsx)(`span`,{className:t.cn(s.text,l.color,`font-medium`),children:l.label})]}),e===`trusted`&&d===`expiring`&&m!==null&&(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-amber-600`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),(0,i.jsxs)(`span`,{className:t.cn(s.text),children:[`Expires in `,m,`d`]})]})]})}function g({isOpen:e,onClose:a,onVerify:o,loading:s,title:c,description:l}){let[u,d]=n.useState(``),[f,p]=n.useState(!1);return e?(0,i.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,i.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:a,"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:t.cn(`relative z-10 w-full max-w-md rounded-lg border bg-background p-6 shadow-lg`,`animate-in fade-in-0 zoom-in-95`),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,i.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-primary/10`,children:(0,i.jsx)(r.Key,{className:`h-5 w-5 text-primary`})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h3`,{className:`text-lg font-semibold`,children:c}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:l})]})]}),(0,i.jsxs)(`form`,{onSubmit:e=>{e.preventDefault(),o(u)},className:`space-y-4`,children:[(0,i.jsxs)(`div`,{className:`relative`,children:[(0,i.jsx)(`input`,{type:f?`text`:`password`,value:u,onChange:e=>d(e.target.value),placeholder:`Enter verification code`,className:`w-full rounded-md border bg-background px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-primary pr-10`,autoFocus:!0,disabled:s}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>p(!f),className:`absolute right-2 top-1/2 -translate-y-1/2 p-1 text-muted-foreground hover:text-foreground`,children:f?(0,i.jsx)(r.EyeOff,{className:`h-4 w-4`}):(0,i.jsx)(r.Eye,{className:`h-4 w-4`})})]}),(0,i.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:a,disabled:s,className:`px-4 py-2 text-sm font-medium rounded-md hover:bg-muted transition-colors`,children:`Cancel`}),(0,i.jsx)(`button`,{type:`submit`,disabled:s||!u,className:t.cn(`px-4 py-2 text-sm font-medium rounded-md bg-primary text-primary-foreground`,`hover:bg-primary/90 transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:s?(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}):`Verify`})]})]})]})]}):null}function _({isOpen:e,device:n,onClose:a,onConfirm:o,loading:s}){return!e||!n?null:(0,i.jsxs)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center`,children:[(0,i.jsx)(`div`,{className:`absolute inset-0 bg-black/50`,onClick:a,"aria-hidden":`true`}),(0,i.jsxs)(`div`,{className:t.cn(`relative z-10 w-full max-w-md rounded-lg border bg-background p-6 shadow-lg`,`animate-in fade-in-0 zoom-in-95`),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,i.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-full bg-red-100 dark:bg-red-900/30`,children:(0,i.jsx)(r.Trash2,{className:`h-5 w-5 text-red-600`})}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h3`,{className:`text-lg font-semibold`,children:`Remove Trusted Device`}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This action cannot be undone`})]})]}),(0,i.jsx)(`div`,{className:`mb-6 p-4 rounded-lg bg-muted/50`,children:(0,i.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,i.jsx)(m,{type:n.type,size:`sm`}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`p`,{className:`font-medium`,children:n.name}),(0,i.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[n.os,` `,n.browser&&`- ${n.browser}`]})]})]})}),n.isCurrentDevice&&(0,i.jsx)(`div`,{className:`mb-4 p-3 rounded-lg bg-amber-100 dark:bg-amber-900/30 border border-amber-200 dark:border-amber-800`,children:(0,i.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,i.jsx)(r.AlertTriangle,{className:`h-4 w-4 text-amber-600 mt-0.5 flex-shrink-0`}),(0,i.jsx)(`p`,{className:`text-sm text-amber-700 dark:text-amber-400`,children:`This is your current device. Removing it will sign you out.`})]})}),(0,i.jsxs)(`div`,{className:`flex gap-2 justify-end`,children:[(0,i.jsx)(`button`,{type:`button`,onClick:a,disabled:s,className:`px-4 py-2 text-sm font-medium rounded-md hover:bg-muted transition-colors`,children:`Cancel`}),(0,i.jsx)(`button`,{type:`button`,onClick:o,disabled:s,className:t.cn(`px-4 py-2 text-sm font-medium rounded-md`,`bg-red-600 text-white hover:bg-red-700 transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`),children:s?(0,i.jsx)(r.Loader2,{className:`h-4 w-4 animate-spin`}):`Remove Device`})]})]})]})}function v({deviceId:e,currentExpiry:a,onUpdate:o,size:l,disabled:d}){let[f,p]=n.useState(!1),[m,h]=n.useState(!1),g=c[l],_=n.useRef(null);n.useEffect(()=>{let e=e=>{_.current&&!_.current.contains(e.target)&&p(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let v=async t=>{h(!0);try{await o(e,t),p(!1)}finally{h(!1)}},y=a?`Expires ${u(a)}`:`Never expires`;return(0,i.jsxs)(`div`,{className:`relative`,ref:_,children:[(0,i.jsxs)(`button`,{type:`button`,onClick:()=>!d&&p(!f),disabled:d||m,className:t.cn(`flex items-center gap-1 rounded-md border px-2 py-1 transition-colors`,`hover:bg-muted focus:outline-none focus:ring-2 focus:ring-primary`,g.text,d&&`opacity-50 cursor-not-allowed`),children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3 text-muted-foreground`}),(0,i.jsx)(`span`,{className:`text-muted-foreground`,children:m?`Updating...`:y})]}),f&&(0,i.jsx)(`div`,{className:t.cn(`absolute right-0 top-full mt-1 z-10 w-40 rounded-md border bg-popover shadow-lg`,`animate-in fade-in-0 zoom-in-95`),children:s.map(e=>(0,i.jsx)(`button`,{onClick:()=>v(e.value),className:t.cn(`w-full px-3 py-2 text-left text-sm hover:bg-muted transition-colors`,`first:rounded-t-md last:rounded-b-md`),children:e.label},e.value))})]})}function y({device:e,size:n,showDetails:o,onRemove:s,onUpdateExpiry:l}){let f=c[n],p=a[e.type];return(0,i.jsx)(`div`,{className:t.cn(`group rounded-lg border bg-card transition-all duration-200`,`hover:shadow-md hover:border-border/80`,e.isCurrentDevice&&`ring-2 ring-primary/20`,f.card),children:(0,i.jsxs)(`div`,{className:t.cn(`flex items-start`,f.gap),children:[(0,i.jsx)(m,{type:e.type,isCurrentDevice:e.isCurrentDevice,size:n}),(0,i.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,i.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,i.jsxs)(`div`,{className:`min-w-0`,children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,i.jsx)(`h3`,{className:t.cn(`font-medium truncate`,f.name),children:e.name}),e.isCurrentDevice&&(0,i.jsx)(`span`,{className:`flex-shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary`,children:`Current`})]}),(0,i.jsxs)(`p`,{className:t.cn(`text-muted-foreground mt-0.5`,f.text),children:[p.label,e.os&&` - ${e.os}`,e.browser&&` - ${e.browser}`]})]}),(0,i.jsx)(`button`,{onClick:()=>s(e),className:t.cn(`flex-shrink-0 rounded-md p-1.5 transition-colors`,`text-muted-foreground hover:text-red-600 hover:bg-red-100 dark:hover:bg-red-900/30`,`opacity-0 group-hover:opacity-100 focus:opacity-100`),"aria-label":`Remove ${e.name}`,children:(0,i.jsx)(r.Trash2,{className:f.icon})})]}),(0,i.jsxs)(`div`,{className:t.cn(`mt-3 flex items-center flex-wrap`,f.gap),children:[(0,i.jsx)(h,{status:e.status,expiresAt:e.expiresAt,size:n}),(0,i.jsxs)(`div`,{className:`flex items-center gap-1 text-muted-foreground`,children:[(0,i.jsx)(r.Clock,{className:`h-3 w-3`}),(0,i.jsxs)(`span`,{className:f.text,children:[`Trusted `,u(e.trustedAt)]})]}),e.lastUsedAt&&(0,i.jsx)(`div`,{className:`flex items-center gap-1 text-muted-foreground`,children:(0,i.jsxs)(`span`,{className:f.text,children:[`Last used `,d(e.lastUsedAt)]})})]}),o&&(0,i.jsxs)(`div`,{className:t.cn(`mt-3 pt-3 border-t space-y-1.5`,f.text),children:[e.fingerprint&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium`,children:`Fingerprint:`}),(0,i.jsx)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 font-mono text-xs`,children:e.fingerprint})]}),e.lastIpAddress&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium`,children:`IP Address:`}),(0,i.jsx)(`span`,{children:e.lastIpAddress})]}),e.lastLocation&&(0,i.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,i.jsx)(`span`,{className:`font-medium`,children:`Location:`}),(0,i.jsx)(`span`,{children:e.lastLocation})]})]}),l&&e.status===`trusted`&&(0,i.jsx)(`div`,{className:`mt-3`,children:(0,i.jsx)(v,{deviceId:e.id,currentExpiry:e.expiresAt,onUpdate:l,size:n})})]})]})})}function b({onAddDevice:e,size:n}){let a=c[n];return(0,i.jsxs)(`div`,{className:`flex flex-col items-center justify-center py-12 text-center`,children:[(0,i.jsx)(`div`,{className:`flex h-16 w-16 items-center justify-center rounded-full bg-muted mb-4`,children:(0,i.jsx)(r.Shield,{className:`h-8 w-8 text-muted-foreground`})}),(0,i.jsx)(`h3`,{className:`text-lg font-medium`,children:`No trusted devices`}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1 max-w-sm`,children:`Add devices you trust to enable faster sign-ins and enhanced security.`}),e&&(0,i.jsxs)(`button`,{onClick:e,className:t.cn(`mt-4 flex items-center gap-2 rounded-md bg-primary text-primary-foreground font-medium`,`hover:bg-primary/90 transition-colors`,a.button),children:[(0,i.jsx)(r.Plus,{className:`h-4 w-4`}),`Add This Device`]})]})}function x({currentCount:e,maxDevices:n,size:a}){let o=c[a],s=e>=n;return e>=n-1?(0,i.jsxs)(`div`,{className:t.cn(`flex items-start gap-2 rounded-lg p-3 mb-4`,s?`bg-red-100 dark:bg-red-900/30 border border-red-200 dark:border-red-800`:`bg-amber-100 dark:bg-amber-900/30 border border-amber-200 dark:border-amber-800`),children:[(0,i.jsx)(r.AlertTriangle,{className:t.cn(`h-4 w-4 flex-shrink-0 mt-0.5`,s?`text-red-600`:`text-amber-600`)}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`p`,{className:t.cn(o.text,`font-medium`,s?`text-red-700 dark:text-red-400`:`text-amber-700 dark:text-amber-400`),children:s?`Device limit reached`:`Approaching device limit`}),(0,i.jsxs)(`p`,{className:t.cn(o.text,s?`text-red-600 dark:text-red-500`:`text-amber-600 dark:text-amber-500`),children:[e,` of `,n,` devices trusted.`,s&&` Remove a device to add a new one.`]})]})]}):null}function S({devices:e,currentDeviceId:a,config:o=l,onAddDevice:s,onRemoveDevice:u,onVerificationRequired:d,onUpdateExpiry:f,onRefresh:p,loading:m=!1,size:h=`md`,showDetails:v=!1,className:S}){let[C,w]=n.useState(null),[T,E]=n.useState(!1),[D,O]=n.useState(!1),[k,A]=n.useState(null),[j,M]=n.useState(!1),[N,P]=n.useState(!1),F=c[h],I=n.useMemo(()=>e.map(e=>({...e,isCurrentDevice:e.id===a||e.isCurrentDevice})),[e,a]),L=n.useMemo(()=>[...I].sort((e,t)=>e.isCurrentDevice&&!t.isCurrentDevice?-1:!e.isCurrentDevice&&t.isCurrentDevice?1:e.lastUsedAt&&t.lastUsedAt?new Date(t.lastUsedAt).getTime()-new Date(e.lastUsedAt).getTime():0),[I]),R=async()=>{o.requireVerification&&d?(A({type:`add`}),O(!0)):s?.()},z=async e=>{w(e),o.requireVerification&&d?(A({type:`remove`,deviceId:e.id}),O(!0)):E(!0)},B=async e=>{if(!(!k||!d)){M(!0);try{await d(k.type,k.deviceId)&&(O(!1),k.type===`add`?s?.():k.type===`remove`&&C&&E(!0))}finally{M(!1),A(null)}}},V=async()=>{if(!(!C||!u)){M(!0);try{await u(C.id),E(!1),w(null)}finally{M(!1)}}},H=async()=>{if(p){P(!0);try{await p()}finally{P(!1)}}},U=e.filter(e=>e.status===`trusted`).length,W=U<o.maxDevices;return(0,i.jsxs)(`div`,{className:t.cn(`relative`,S),children:[(0,i.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`h2`,{className:`text-lg font-semibold`,children:`Trusted Devices`}),(0,i.jsxs)(`p`,{className:t.cn(`text-muted-foreground`,F.text),children:[U,` of `,o.maxDevices,` devices trusted`]})]}),(0,i.jsxs)(`div`,{className:`flex items-center gap-2`,children:[p&&(0,i.jsx)(`button`,{onClick:H,disabled:N||m,className:t.cn(`rounded-md p-2 transition-colors`,`text-muted-foreground hover:text-foreground hover:bg-muted`,`disabled:opacity-50`),"aria-label":`Refresh device list`,children:(0,i.jsx)(r.RefreshCw,{className:t.cn(F.icon,(N||m)&&`animate-spin`)})}),s&&(0,i.jsxs)(`button`,{onClick:R,disabled:!W||m,className:t.cn(`flex items-center gap-2 rounded-md bg-primary text-primary-foreground font-medium`,`hover:bg-primary/90 transition-colors`,`disabled:opacity-50 disabled:cursor-not-allowed`,F.button),children:[(0,i.jsx)(r.Plus,{className:`h-4 w-4`}),`Add Device`]})]})]}),(0,i.jsx)(x,{currentCount:U,maxDevices:o.maxDevices,size:h}),m?(0,i.jsx)(`div`,{className:`flex items-center justify-center py-12`,children:(0,i.jsx)(r.Loader2,{className:`h-8 w-8 animate-spin text-muted-foreground`})}):L.length===0?(0,i.jsx)(b,{onAddDevice:s,size:h}):(0,i.jsx)(`div`,{className:`space-y-3`,children:L.map(e=>(0,i.jsx)(y,{device:e,size:h,showDetails:v,onRemove:z,onUpdateExpiry:f},e.id))}),(0,i.jsx)(g,{isOpen:D,onClose:()=>{O(!1),A(null),w(null)},onVerify:B,loading:j,title:`Verification Required`,description:`Enter your verification code to continue`}),(0,i.jsx)(_,{isOpen:T,device:C,onClose:()=>{E(!1),w(null)},onConfirm:V,loading:j}),(0,i.jsx)(`style`,{children:`
2
2
  @keyframes fade-in-0 {
3
3
  from { opacity: 0; }
4
4
  to { opacity: 1; }
@@ -10,4 +10,4 @@
10
10
  .animate-in {
11
11
  animation: fade-in-0 0.15s ease-out, zoom-in-95 0.15s ease-out;
12
12
  }
13
- `})]})}function C({initialDevices:e=[],currentDeviceId:t,config:r=l,onChange:i}={}){let[a,o]=n.useState(e),[s,c]=n.useState(!1),[u,d]=n.useState(null);return n.useEffect(()=>{o(e)},[e]),{devices:a,loading:s,error:u,addDevice:n.useCallback(async e=>{if(a.filter(e=>e.status===`trusted`).length>=r.maxDevices)return d(`Maximum of ${r.maxDevices} devices allowed`),!1;let n={...e,id:crypto.randomUUID(),trustedAt:new Date,status:`trusted`,isCurrentDevice:e.name===t},s=[...a,n];return o(s),i?.(s),d(null),!0},[a,r.maxDevices,t,i]),removeDevice:n.useCallback(async e=>{let t=a.filter(t=>t.id!==e);return o(t),i?.(t),!0},[a,i]),updateDeviceStatus:n.useCallback(async(e,t)=>{let n=a.map(n=>n.id===e?{...n,status:t}:n);return o(n),i?.(n),!0},[a,i]),updateDeviceExpiry:n.useCallback(async(e,t)=>{let n=new Date,r;if(t!==`never`){let e={"7d":7,"30d":30,"90d":90,"365d":365}[t];r=new Date(n.getTime()+e*24*60*60*1e3)}let s=a.map(t=>t.id===e?{...t,expiresAt:r}:t);return o(s),i?.(s),!0},[a,i]),refreshDevices:n.useCallback(async e=>{c(!0),d(null);try{if(e){let t=await e();o(t),i?.(t)}}catch(e){d(e instanceof Error?e.message:`Failed to refresh devices`)}finally{c(!1)}},[i]),getCurrentDevice:n.useCallback(()=>a.find(e=>e.id===t||e.isCurrentDevice),[a,t]),getTrustedDevices:n.useCallback(()=>a.filter(e=>e.status===`trusted`),[a]),getExpiredDevices:n.useCallback(()=>{let e=new Date;return a.filter(t=>t.status===`expired`||t.expiresAt&&t.expiresAt<e)},[a]),clearAllDevices:n.useCallback(async()=>(o([]),i?.([]),!0),[i]),canAddDevice:n.useMemo(()=>a.filter(e=>e.status===`trusted`).length<r.maxDevices,[a,r.maxDevices]),setLoading:c,setError:d}}exports.default=S,exports.useDeviceTrust=C;
13
+ `})]})}function C({initialDevices:e=[],currentDeviceId:t,config:r=l,onChange:i}={}){let[a,o]=n.useState(e),[s,c]=n.useState(!1),[u,d]=n.useState(null);return n.useEffect(()=>{o(e)},[e]),{devices:a,loading:s,error:u,addDevice:n.useCallback(async e=>{if(a.filter(e=>e.status===`trusted`).length>=r.maxDevices)return d(`Maximum of ${r.maxDevices} devices allowed`),!1;let n={...e,id:crypto.randomUUID(),trustedAt:new Date,status:`trusted`,isCurrentDevice:e.name===t},s=[...a,n];return o(s),i?.(s),d(null),!0},[a,r.maxDevices,t,i]),removeDevice:n.useCallback(async e=>{let t=a.filter(t=>t.id!==e);return o(t),i?.(t),!0},[a,i]),updateDeviceStatus:n.useCallback(async(e,t)=>{let n=a.map(n=>n.id===e?{...n,status:t}:n);return o(n),i?.(n),!0},[a,i]),updateDeviceExpiry:n.useCallback(async(e,t)=>{let n=new Date,r;if(t!==`never`){let e={"7d":7,"30d":30,"90d":90,"365d":365}[t];r=new Date(n.getTime()+e*24*60*60*1e3)}let s=a.map(t=>t.id===e?{...t,expiresAt:r}:t);return o(s),i?.(s),!0},[a,i]),refreshDevices:n.useCallback(async e=>{c(!0),d(null);try{if(e){let t=await e();o(t),i?.(t)}}catch(e){d(e instanceof Error?e.message:`Failed to refresh devices`)}finally{c(!1)}},[i]),getCurrentDevice:n.useCallback(()=>a.find(e=>e.id===t||e.isCurrentDevice),[a,t]),getTrustedDevices:n.useCallback(()=>a.filter(e=>e.status===`trusted`),[a]),getExpiredDevices:n.useCallback(()=>{let e=new Date;return a.filter(t=>t.status===`expired`||t.expiresAt&&t.expiresAt<e)},[a]),clearAllDevices:n.useCallback(async()=>(o([]),i?.([]),!0),[i]),canAddDevice:n.useMemo(()=>a.filter(e=>e.status===`trusted`).length<r.maxDevices,[a,r.maxDevices]),setLoading:c,setError:d}}exports.WakaDeviceTrust=S,exports.default=S,exports.useDeviceTrust=C;
@@ -680,4 +680,4 @@ function z({ initialDevices: e = [], currentDeviceId: n, config: r = T, onChange
680
680
  };
681
681
  }
682
682
  //#endregion
683
- export { R as default, z as useDeviceTrust };
683
+ export { R as WakaDeviceTrust, R as default, z as useDeviceTrust };
@@ -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({items:e,onItemClick:a,className:o}){return e.length===0?null:(0,i.jsxs)(`nav`,{className:t.cn(`flex items-center gap-1 text-sm`,o),children:[(0,i.jsx)(r.BookOpen,{className:`h-4 w-4 text-muted-foreground`}),e.map((t,o)=>(0,i.jsxs)(n.Fragment,{children:[o>0&&(0,i.jsx)(r.ChevronRight,{className:`h-3 w-3 text-muted-foreground/50`}),o===e.length-1?(0,i.jsx)(`span`,{className:`font-medium text-foreground`,children:t.label}):(0,i.jsx)(`button`,{onClick:()=>a?.(t),className:`text-muted-foreground transition-colors hover:text-foreground`,children:t.label})]},t.id))]})}exports.WakaDocBreadcrumb=a;
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({items:e,onItemClick:a,className:o}){return e.length===0?null:(0,i.jsxs)(`nav`,{className:t.cn(`flex items-center gap-1 text-sm`,o),children:[(0,i.jsx)(r.BookOpen,{className:`h-4 w-4 text-muted-foreground`}),e.map((t,o)=>(0,i.jsxs)(n.Fragment,{children:[o>0&&(0,i.jsx)(r.ChevronRight,{className:`h-3 w-3 text-muted-foreground/50`}),o===e.length-1?(0,i.jsx)(`span`,{className:`font-medium text-foreground`,children:t.label}):(0,i.jsx)(`button`,{onClick:()=>a?.(t),className:`text-muted-foreground transition-colors hover:text-foreground`,children:t.label})]},t.id))]})}exports.WakaDocBreadcrumb=a;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);var a={info:{icon:r.Info,borderColor:`border-l-blue-500`,bgColor:`bg-blue-500/5`,iconColor:`text-blue-500`,titleColor:`text-blue-700 dark:text-blue-400`},warning:{icon:r.AlertTriangle,borderColor:`border-l-amber-500`,bgColor:`bg-amber-500/5`,iconColor:`text-amber-500`,titleColor:`text-amber-700 dark:text-amber-400`},danger:{icon:r.XCircle,borderColor:`border-l-red-500`,bgColor:`bg-red-500/5`,iconColor:`text-red-500`,titleColor:`text-red-700 dark:text-red-400`},tip:{icon:r.Lightbulb,borderColor:`border-l-emerald-500`,bgColor:`bg-emerald-500/5`,iconColor:`text-emerald-500`,titleColor:`text-emerald-700 dark:text-emerald-400`}};function o({type:e=`info`,title:n,children:r,className:o}){let s=a[e],c=s.icon;return(0,i.jsx)(`div`,{className:t.cn(`my-4 rounded-r-lg border-l-4 p-4 backdrop-blur-sm`,s.borderColor,s.bgColor,o),children:(0,i.jsxs)(`div`,{className:`flex gap-3`,children:[(0,i.jsx)(c,{className:t.cn(`mt-0.5 h-5 w-5 shrink-0`,s.iconColor)}),(0,i.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[n&&(0,i.jsx)(`p`,{className:t.cn(`mb-1 font-semibold`,s.titleColor),children:n}),(0,i.jsx)(`div`,{className:`text-sm text-foreground/80 [&>p]:mb-2 [&>p:last-child]:mb-0`,children:r})]})]})})}exports.WakaDocCallout=o;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");var a={info:{icon:r.Info,borderColor:`border-l-blue-500`,bgColor:`bg-blue-500/5`,iconColor:`text-blue-500`,titleColor:`text-blue-700 dark:text-blue-400`},warning:{icon:r.AlertTriangle,borderColor:`border-l-amber-500`,bgColor:`bg-amber-500/5`,iconColor:`text-amber-500`,titleColor:`text-amber-700 dark:text-amber-400`},danger:{icon:r.XCircle,borderColor:`border-l-red-500`,bgColor:`bg-red-500/5`,iconColor:`text-red-500`,titleColor:`text-red-700 dark:text-red-400`},tip:{icon:r.Lightbulb,borderColor:`border-l-emerald-500`,bgColor:`bg-emerald-500/5`,iconColor:`text-emerald-500`,titleColor:`text-emerald-700 dark:text-emerald-400`}};function o({type:e=`info`,title:n,children:r,className:o}){let s=a[e],c=s.icon;return(0,i.jsx)(`div`,{className:t.cn(`my-4 rounded-r-lg border-l-4 p-4 backdrop-blur-sm`,s.borderColor,s.bgColor,o),children:(0,i.jsxs)(`div`,{className:`flex gap-3`,children:[(0,i.jsx)(c,{className:t.cn(`mt-0.5 h-5 w-5 shrink-0`,s.iconColor)}),(0,i.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[n&&(0,i.jsx)(`p`,{className:t.cn(`mb-1 font-semibold`,s.titleColor),children:n}),(0,i.jsx)(`div`,{className:`text-sm text-foreground/80 [&>p]:mb-2 [&>p:last-child]:mb-0`,children:r})]})]})})}exports.WakaDocCallout=o;
@@ -1,2 +1,2 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../button/index.cjs.js`),r=require(`../../utils/security.cjs.js`);require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-typescript.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-javascript.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-jsx.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-tsx.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-css.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-json.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-bash.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-python.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-go.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-rust.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-sql.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-yaml.cjs.js`),require(`../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.cjs.js`);let i=require(`react`);i=e.__toESM(i);let a=require(`lucide-react`),o=require(`react/jsx-runtime`),s=require(`prismjs`);s=e.__toESM(s);function c({code:e,language:c,filename:l,showLineNumbers:u=!1,highlightLines:d=[],className:f}){let[p,m]=i.useState(!1),h=e.split(`
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../button/index.cjs.js"),r=require("../../utils/security.cjs.js");require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-typescript.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-javascript.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-jsx.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-tsx.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-css.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-json.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-bash.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-python.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-go.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-rust.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-sql.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-markdown.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-yaml.cjs.js"),require("../../node_modules/.pnpm/prismjs@1.30.0/node_modules/prismjs/components/prism-docker.cjs.js");let i=require("react");i=e.__toESM(i);let a=require("lucide-react"),o=require("react/jsx-runtime"),s=require("prismjs");s=e.__toESM(s);function c({code:e,language:c,filename:l,showLineNumbers:u=!1,highlightLines:d=[],className:f}){let[p,m]=i.useState(!1),h=e.split(`
2
2
  `);return(0,o.jsxs)(`div`,{className:t.cn(`group relative my-4 overflow-hidden rounded-lg`,`border border-border/50`,`bg-muted/30 backdrop-blur-sm`,f),children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border/50 bg-muted/50 px-4 py-2`,children:[(0,o.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,o.jsx)(a.FileCode,{className:`h-3.5 w-3.5`}),(0,o.jsx)(`span`,{className:`font-medium`,children:l||c?.toUpperCase()||`CODE`})]}),(0,o.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:`h-7 w-7 opacity-0 transition-opacity group-hover:opacity-100`,onClick:async()=>{try{await navigator.clipboard.writeText(e),m(!0),setTimeout(()=>m(!1),2e3)}catch{}},children:p?(0,o.jsx)(a.Check,{className:`h-3.5 w-3.5 text-emerald-500`}):(0,o.jsx)(a.Copy,{className:`h-3.5 w-3.5`})})]}),(0,o.jsx)(`div`,{className:`overflow-x-auto`,children:(0,o.jsx)(`pre`,{className:`p-4 text-sm leading-relaxed`,children:(0,o.jsx)(`code`,{children:h.map((e,n)=>{let i=r.escapeHtml(e);if(c&&s.default.languages[c])try{i=s.default.highlight(e,s.default.languages[c],c)}catch{i=r.escapeHtml(e)}return(0,o.jsxs)(`div`,{className:t.cn(`flex`,d.includes(n+1)&&`bg-primary/10 -mx-4 px-4 border-l-2 border-primary`),children:[u&&(0,o.jsx)(`span`,{className:`mr-4 inline-block w-8 select-none text-right text-muted-foreground/50`,children:n+1}),(0,o.jsx)(`span`,{dangerouslySetInnerHTML:{__html:i}})]},n)})})})})]})}exports.WakaDocCodeBlock=c;
@@ -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({items:e,activeId:n,onItemClick:r,className:a}){return(0,i.jsx)(`nav`,{"aria-label":`Documentation`,className:t.cn(`space-y-1`,a),children:(0,i.jsx)(`ul`,{className:`space-y-1 list-none p-0 m-0`,children:e.map(e=>(0,i.jsx)(o,{item:e,activeId:n,onItemClick:r,depth:0},e.id))})})}function o({item:e,activeId:a,onItemClick:c,depth:l}){let u=e.children&&e.children.length>0,d=a===e.id,f=u&&s(e.children,a),[p,m]=n.useState(f);n.useEffect(()=>{f&&m(!0)},[f]);let h=()=>{u&&m(e=>!e),c?.(e)},g=u?p?r.FolderOpen:r.Folder:r.FileText;return(0,i.jsxs)(`li`,{children:[(0,i.jsxs)(`button`,{type:`button`,onClick:h,"aria-expanded":u?p:void 0,"aria-current":d?`page`:void 0,className:t.cn(`group flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm transition-all duration-200`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,d?`bg-primary/10 font-medium text-primary`:`text-muted-foreground hover:bg-muted/50 hover:text-foreground`),style:{paddingLeft:`${l*12+12}px`},children:[u&&(0,i.jsx)(r.ChevronRight,{"aria-hidden":`true`,className:t.cn(`h-3.5 w-3.5 shrink-0 transition-transform duration-200`,p&&`rotate-90`)}),(0,i.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:e.icon||(0,i.jsx)(g,{className:`h-4 w-4`})}),(0,i.jsx)(`span`,{className:`truncate`,children:e.label}),e.badge&&(0,i.jsx)(`span`,{className:`ml-auto shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary`,"aria-label":`${e.badge} (badge)`,children:e.badge})]}),u&&p&&(0,i.jsx)(`ul`,{className:`mt-0.5 space-y-0.5 list-none p-0 m-0`,children:e.children.map(e=>(0,i.jsx)(o,{item:e,activeId:a,onItemClick:c,depth:l+1},e.id))})]})}function s(e,t){if(!t)return!1;for(let n of e)if(n.id===t||n.children&&s(n.children,t))return!0;return!1}exports.WakaDocNav=a;
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({items:e,activeId:n,onItemClick:r,className:a}){return(0,i.jsx)(`nav`,{"aria-label":`Documentation`,className:t.cn(`space-y-1`,a),children:(0,i.jsx)(`ul`,{className:`space-y-1 list-none p-0 m-0`,children:e.map(e=>(0,i.jsx)(o,{item:e,activeId:n,onItemClick:r,depth:0},e.id))})})}function o({item:e,activeId:a,onItemClick:c,depth:l}){let u=e.children&&e.children.length>0,d=a===e.id,f=u&&s(e.children,a),[p,m]=n.useState(f);n.useEffect(()=>{f&&m(!0)},[f]);let h=()=>{u&&m(e=>!e),c?.(e)},g=u?p?r.FolderOpen:r.Folder:r.FileText;return(0,i.jsxs)(`li`,{children:[(0,i.jsxs)(`button`,{type:`button`,onClick:h,"aria-expanded":u?p:void 0,"aria-current":d?`page`:void 0,className:t.cn(`group flex w-full items-center gap-2 rounded-lg px-3 py-2 text-sm transition-all duration-200`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,d?`bg-primary/10 font-medium text-primary`:`text-muted-foreground hover:bg-muted/50 hover:text-foreground`),style:{paddingLeft:`${l*12+12}px`},children:[u&&(0,i.jsx)(r.ChevronRight,{"aria-hidden":`true`,className:t.cn(`h-3.5 w-3.5 shrink-0 transition-transform duration-200`,p&&`rotate-90`)}),(0,i.jsx)(`span`,{className:`shrink-0`,"aria-hidden":`true`,children:e.icon||(0,i.jsx)(g,{className:`h-4 w-4`})}),(0,i.jsx)(`span`,{className:`truncate`,children:e.label}),e.badge&&(0,i.jsx)(`span`,{className:`ml-auto shrink-0 rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary`,"aria-label":`${e.badge} (badge)`,children:e.badge})]}),u&&p&&(0,i.jsx)(`ul`,{className:`mt-0.5 space-y-0.5 list-none p-0 m-0`,children:e.children.map(e=>(0,i.jsx)(o,{item:e,activeId:a,onItemClick:c,depth:l+1},e.id))})]})}function s(e,t){if(!t)return!1;for(let n of e)if(n.id===t||n.children&&s(n.children,t))return!0;return!1}exports.WakaDocNav=a;
@@ -1,2 +1,2 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../waka-doc-callout/index.cjs.js`),r=require(`../waka-doc-code-block/index.cjs.js`);let i=require(`react`);i=e.__toESM(i);let a=require(`react/jsx-runtime`);function o({content:e,onHeadingsExtracted:o,className:c}){let[l,u]=i.useState(null),[d,f]=i.useState(!1);if(i.useEffect(()=>{(async()=>{try{let[e,t,n,r]=await Promise.all([import(`react-markdown`),import(`remark-gfm`),import(`rehype-slug`),import(`rehype-raw`)]);u({ReactMarkdown:e.default,remarkGfm:t.default||t,rehypeSlug:n.default||n,rehypeRaw:r.default||r})}catch{f(!0)}})()},[]),i.useEffect(()=>{if(!o)return;let t=[],n=e.split(`
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../waka-doc-callout/index.cjs.js"),r=require("../waka-doc-code-block/index.cjs.js");let i=require("react");i=e.__toESM(i);let a=require("react/jsx-runtime");function o({content:e,onHeadingsExtracted:o,className:c}){let[l,u]=i.useState(null),[d,f]=i.useState(!1);if(i.useEffect(()=>{(async()=>{try{let[e,t,n,r]=await Promise.all([import(`react-markdown`),import(`remark-gfm`),import(`rehype-slug`),import(`rehype-raw`)]);u({ReactMarkdown:e.default,remarkGfm:t.default||t,rehypeSlug:n.default||n,rehypeRaw:r.default||r})}catch{f(!0)}})()},[]),i.useEffect(()=>{if(!o)return;let t=[],n=e.split(`
2
2
  `);for(let e of n){let n=e.match(/^(#{2,4})\s+(.+)$/);if(n){let e=n[1].length,r=n[2].replace(/[`*_~]/g,``),i=r.toLowerCase().replace(/[^\w\s-]/g,``).replace(/\s+/g,`-`);t.push({id:i,text:r,level:e})}}o(t)},[e,o]),d)return(0,a.jsx)(`div`,{className:t.cn(`whitespace-pre-wrap font-mono text-sm`,c),children:e});if(!l)return(0,a.jsxs)(`div`,{className:t.cn(`animate-pulse space-y-4`,c),children:[(0,a.jsx)(`div`,{className:`h-8 w-3/4 rounded bg-muted`}),(0,a.jsx)(`div`,{className:`h-4 w-full rounded bg-muted`}),(0,a.jsx)(`div`,{className:`h-4 w-5/6 rounded bg-muted`}),(0,a.jsx)(`div`,{className:`h-4 w-4/5 rounded bg-muted`})]});let{ReactMarkdown:p,remarkGfm:m,rehypeSlug:h,rehypeRaw:g}=l;return(0,a.jsx)(`div`,{className:t.cn(`waka-doc-renderer`,c),children:(0,a.jsx)(p,{remarkPlugins:[m],rehypePlugins:[h,g],components:{h1:({children:e,...t})=>(0,a.jsx)(`h1`,{className:`mb-4 mt-8 scroll-mt-24 text-3xl font-bold tracking-tight first:mt-0`,...t,children:e}),h2:({children:e,...t})=>(0,a.jsx)(`h2`,{className:`mb-3 mt-8 scroll-mt-24 border-b border-border/30 pb-2 text-2xl font-semibold tracking-tight first:mt-0`,...t,children:e}),h3:({children:e,...t})=>(0,a.jsx)(`h3`,{className:`mb-2 mt-6 scroll-mt-24 text-xl font-semibold tracking-tight`,...t,children:e}),h4:({children:e,...t})=>(0,a.jsx)(`h4`,{className:`mb-2 mt-4 scroll-mt-24 text-lg font-medium`,...t,children:e}),p:({children:e})=>(0,a.jsx)(`p`,{className:`mb-4 leading-7 text-foreground/80`,children:e}),a:({href:e,children:t})=>(0,a.jsx)(`a`,{href:e,target:e?.startsWith(`http`)?`_blank`:void 0,rel:e?.startsWith(`http`)?`noopener noreferrer`:void 0,className:`font-medium text-primary underline decoration-primary/30 underline-offset-4 transition-colors hover:decoration-primary`,children:t}),pre:({children:e})=>{let t=e;if(t?.props){let e=t.props.className?.replace(`language-`,``)||``;return(0,a.jsx)(r.WakaDocCodeBlock,{code:typeof t.props.children==`string`?t.props.children.replace(/\n$/,``):``,language:e,showLineNumbers:!0})}return(0,a.jsx)(`pre`,{children:e})},code:({children:e,className:t})=>t?(0,a.jsx)(`code`,{className:t,children:e}):(0,a.jsx)(`code`,{className:`rounded bg-muted px-1.5 py-0.5 text-sm font-mono text-primary`,children:e}),blockquote:({children:e})=>{let t=s(e).match(/^\[!(info|warning|danger|tip)\]\s*\n?(.*)$/s);if(t){let e=t[1],r=t[2];return(0,a.jsx)(n.WakaDocCallout,{type:e,children:(0,a.jsx)(`p`,{children:r})})}return(0,a.jsx)(`blockquote`,{className:`my-4 border-l-4 border-primary/30 bg-muted/20 py-1 pl-4 italic text-foreground/70`,children:e})},table:({children:e})=>(0,a.jsx)(`div`,{className:`my-4 overflow-x-auto rounded-lg border border-border/50`,children:(0,a.jsx)(`table`,{className:t.cn(`w-full text-sm`,`[&_thead]:bg-muted/50 [&_thead]:backdrop-blur-sm`,`[&_th]:px-4 [&_th]:py-3 [&_th]:text-left [&_th]:font-semibold [&_th]:text-foreground/80`,`[&_td]:px-4 [&_td]:py-3 [&_td]:text-foreground/70`,`[&_tr]:border-b [&_tr]:border-border/30 [&_tbody_tr:last-child]:border-0`,`[&_tbody_tr:nth-child(even)]:bg-muted/30`,`[&_tbody_tr]:transition-colors [&_tbody_tr:hover]:bg-muted/50`),children:e})}),ul:({children:e})=>(0,a.jsx)(`ul`,{className:`my-4 ml-6 list-disc space-y-2 text-foreground/80 marker:text-primary/50`,children:e}),ol:({children:e})=>(0,a.jsx)(`ol`,{className:`my-4 ml-6 list-decimal space-y-2 text-foreground/80 marker:text-primary/50`,children:e}),li:({children:e})=>(0,a.jsx)(`li`,{className:`leading-7`,children:e}),hr:()=>(0,a.jsx)(`hr`,{className:`my-8 border-border/50`}),img:({src:e,alt:t})=>(0,a.jsx)(`img`,{src:e,alt:t||``,className:`my-4 rounded-lg border border-border/50 shadow-sm`})},children:e})})}function s(e){return typeof e==`string`?e:Array.isArray(e)?e.map(s).join(``):i.isValidElement(e)&&e.props?s(e.props.children):``}exports.WakaDocRenderer=o;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../input/index.cjs.js`);let r=require(`react`);r=e.__toESM(r);let i=require(`lucide-react`),a=require(`react/jsx-runtime`);function o({pages:e,onSelect:o,placeholder:s=`Rechercher dans la documentation...`,className:c}){let[l,u]=r.useState(``),[d,f]=r.useState([]),[p,m]=r.useState(!1),[h,g]=r.useState(0),_=r.useRef(null);return r.useEffect(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),_.current?.focus(),m(!0)),e.key===`Escape`&&(m(!1),u(``))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),r.useEffect(()=>{if(!l.trim()){f([]);return}let t=l.toLowerCase(),n=[];for(let r of e){let e=r.title.toLowerCase().includes(t),i=r.content.toLowerCase().indexOf(t);if(e||i!==-1){let e=Math.max(0,i-40),t=Math.min(r.content.length,i+l.length+40),a=i===-1?r.content.slice(0,80)+`...`:(e>0?`...`:``)+r.content.slice(e,t)+(t<r.content.length?`...`:``);n.push({page:r,snippet:a})}}f(n.slice(0,8)),g(0)},[l,e]),(0,a.jsxs)(`div`,{className:t.cn(`relative`,c),children:[(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(i.Search,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,a.jsx)(n.Input,{ref:_,value:l,onChange:e=>{u(e.target.value),m(!0)},onFocus:()=>l&&m(!0),onBlur:()=>setTimeout(()=>m(!1),200),onKeyDown:e=>{e.key===`ArrowDown`?(e.preventDefault(),g(e=>Math.min(e+1,d.length-1))):e.key===`ArrowUp`?(e.preventDefault(),g(e=>Math.max(e-1,0))):e.key===`Enter`&&d[h]&&(o?.(d[h].page),m(!1),u(``))},placeholder:s,className:`pl-9 pr-16`}),(0,a.jsx)(`kbd`,{className:`pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded border border-border/50 bg-muted/50 px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground`,children:`Ctrl K`})]}),p&&d.length>0&&(0,a.jsx)(`div`,{className:`absolute top-full z-50 mt-2 w-full overflow-hidden rounded-lg border border-border/50 bg-background/95 shadow-lg backdrop-blur-md`,children:d.map((e,n)=>(0,a.jsxs)(`button`,{type:`button`,onMouseDown:()=>{o?.(e.page),m(!1),u(``)},className:t.cn(`flex w-full flex-col gap-1 px-4 py-3 text-left transition-colors`,n===h?`bg-primary/10`:`hover:bg-muted/50`,n>0&&`border-t border-border/30`),children:[(0,a.jsx)(`span`,{className:`text-sm font-medium`,children:e.page.title}),e.page.category&&(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.page.category}),(0,a.jsx)(`span`,{className:`line-clamp-1 text-xs text-muted-foreground/70`,children:e.snippet})]},e.page.id))}),p&&l&&d.length===0&&(0,a.jsxs)(`div`,{className:`absolute top-full z-50 mt-2 w-full rounded-lg border border-border/50 bg-background/95 p-4 text-center text-sm text-muted-foreground shadow-lg backdrop-blur-md`,children:[`Aucun résultat pour "`,l,`"`]})]})}exports.WakaDocSearch=o;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../input/index.cjs.js");let r=require("react");r=e.__toESM(r);let i=require("lucide-react"),a=require("react/jsx-runtime");function o({pages:e,onSelect:o,placeholder:s=`Rechercher dans la documentation...`,className:c}){let[l,u]=r.useState(``),[d,f]=r.useState([]),[p,m]=r.useState(!1),[h,g]=r.useState(0),_=r.useRef(null);return r.useEffect(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),_.current?.focus(),m(!0)),e.key===`Escape`&&(m(!1),u(``))};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]),r.useEffect(()=>{if(!l.trim()){f([]);return}let t=l.toLowerCase(),n=[];for(let r of e){let e=r.title.toLowerCase().includes(t),i=r.content.toLowerCase().indexOf(t);if(e||i!==-1){let e=Math.max(0,i-40),t=Math.min(r.content.length,i+l.length+40),a=i===-1?r.content.slice(0,80)+`...`:(e>0?`...`:``)+r.content.slice(e,t)+(t<r.content.length?`...`:``);n.push({page:r,snippet:a})}}f(n.slice(0,8)),g(0)},[l,e]),(0,a.jsxs)(`div`,{className:t.cn(`relative`,c),children:[(0,a.jsxs)(`div`,{className:`relative`,children:[(0,a.jsx)(i.Search,{className:`absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground`}),(0,a.jsx)(n.Input,{ref:_,value:l,onChange:e=>{u(e.target.value),m(!0)},onFocus:()=>l&&m(!0),onBlur:()=>setTimeout(()=>m(!1),200),onKeyDown:e=>{e.key===`ArrowDown`?(e.preventDefault(),g(e=>Math.min(e+1,d.length-1))):e.key===`ArrowUp`?(e.preventDefault(),g(e=>Math.max(e-1,0))):e.key===`Enter`&&d[h]&&(o?.(d[h].page),m(!1),u(``))},placeholder:s,className:`pl-9 pr-16`}),(0,a.jsx)(`kbd`,{className:`pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded border border-border/50 bg-muted/50 px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground`,children:`Ctrl K`})]}),p&&d.length>0&&(0,a.jsx)(`div`,{className:`absolute top-full z-50 mt-2 w-full overflow-hidden rounded-lg border border-border/50 bg-background/95 shadow-lg backdrop-blur-md`,children:d.map((e,n)=>(0,a.jsxs)(`button`,{type:`button`,onMouseDown:()=>{o?.(e.page),m(!1),u(``)},className:t.cn(`flex w-full flex-col gap-1 px-4 py-3 text-left transition-colors`,n===h?`bg-primary/10`:`hover:bg-muted/50`,n>0&&`border-t border-border/30`),children:[(0,a.jsx)(`span`,{className:`text-sm font-medium`,children:e.page.title}),e.page.category&&(0,a.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.page.category}),(0,a.jsx)(`span`,{className:`line-clamp-1 text-xs text-muted-foreground/70`,children:e.snippet})]},e.page.id))}),p&&l&&d.length===0&&(0,a.jsxs)(`div`,{className:`absolute top-full z-50 mt-2 w-full rounded-lg border border-border/50 bg-background/95 p-4 text-center text-sm text-muted-foreground shadow-lg backdrop-blur-md`,children:[`Aucun résultat pour "`,l,`"`]})]})}exports.WakaDocSearch=o;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);function i({children:e,stickyHeader:n=!1,striped:i=!0,className:a}){return(0,r.jsx)(`div`,{className:t.cn(`my-4 overflow-x-auto rounded-lg border border-border/50`,a),children:(0,r.jsx)(`table`,{className:t.cn(`w-full text-sm`,i&&`[&_tbody_tr:nth-child(even)]:bg-muted/30`,n&&`[&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10`,`[&_thead]:bg-muted/50 [&_thead]:backdrop-blur-sm`,`[&_th]:px-4 [&_th]:py-3 [&_th]:text-left [&_th]:font-semibold [&_th]:text-foreground/80`,`[&_td]:px-4 [&_td]:py-3 [&_td]:text-foreground/70`,`[&_tr]:border-b [&_tr]:border-border/30 [&_tbody_tr:last-child]:border-0`,`[&_tbody_tr]:transition-colors [&_tbody_tr:hover]:bg-muted/50`),children:e})})}exports.WakaDocTable=i;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime");function i({children:e,stickyHeader:n=!1,striped:i=!0,className:a}){return(0,r.jsx)(`div`,{className:t.cn(`my-4 overflow-x-auto rounded-lg border border-border/50`,a),children:(0,r.jsx)(`table`,{className:t.cn(`w-full text-sm`,i&&`[&_tbody_tr:nth-child(even)]:bg-muted/30`,n&&`[&_thead]:sticky [&_thead]:top-0 [&_thead]:z-10`,`[&_thead]:bg-muted/50 [&_thead]:backdrop-blur-sm`,`[&_th]:px-4 [&_th]:py-3 [&_th]:text-left [&_th]:font-semibold [&_th]:text-foreground/80`,`[&_td]:px-4 [&_td]:py-3 [&_td]:text-foreground/70`,`[&_tr]:border-b [&_tr]:border-border/30 [&_tbody_tr:last-child]:border-0`,`[&_tbody_tr]:transition-colors [&_tbody_tr:hover]:bg-muted/50`),children:e})})}exports.WakaDocTable=i;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);function i({items:e,activeId:i,className:a}){let[o,s]=n.useState(i||``);n.useEffect(()=>{if(i!==void 0)return;let t=new IntersectionObserver(e=>{for(let t of e)if(t.isIntersecting){s(t.target.id);break}},{rootMargin:`-80px 0px -80% 0px`,threshold:0});for(let n of e){let e=document.getElementById(n.id);e&&t.observe(e)}return()=>t.disconnect()},[e,i]);let c=i??o;return e.length===0?null:(0,r.jsxs)(`nav`,{className:t.cn(`sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto`,a),children:[(0,r.jsx)(`p`,{className:`mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:`Sur cette page`}),(0,r.jsx)(`ul`,{className:`relative space-y-1 border-l border-border/50`,children:e.map(e=>{let n=c===e.id;return(0,r.jsx)(`li`,{children:(0,r.jsxs)(`a`,{href:`#${e.id}`,onClick:t=>{t.preventDefault(),document.getElementById(e.id)?.scrollIntoView({behavior:`smooth`}),s(e.id)},className:t.cn(`relative block py-1 text-sm transition-all duration-200`,e.level===2&&`pl-4`,e.level===3&&`pl-7`,e.level===4&&`pl-10`,n?`font-medium text-primary`:`text-muted-foreground hover:text-foreground`),children:[n&&(0,r.jsx)(`span`,{className:`absolute -left-px top-1/2 h-5 w-0.5 -translate-y-1/2 rounded-full bg-primary shadow-[0_0_8px_var(--color-primary)]`}),e.text]})},e.id)})})]})}exports.WakaDocToc=i;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime");function i({items:e,activeId:i,className:a}){let[o,s]=n.useState(i||``);n.useEffect(()=>{if(i!==void 0)return;let t=new IntersectionObserver(e=>{for(let t of e)if(t.isIntersecting){s(t.target.id);break}},{rootMargin:`-80px 0px -80% 0px`,threshold:0});for(let n of e){let e=document.getElementById(n.id);e&&t.observe(e)}return()=>t.disconnect()},[e,i]);let c=i??o;return e.length===0?null:(0,r.jsxs)(`nav`,{className:t.cn(`sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto`,a),children:[(0,r.jsx)(`p`,{className:`mb-3 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:`Sur cette page`}),(0,r.jsx)(`ul`,{className:`relative space-y-1 border-l border-border/50`,children:e.map(e=>{let n=c===e.id;return(0,r.jsx)(`li`,{children:(0,r.jsxs)(`a`,{href:`#${e.id}`,onClick:t=>{t.preventDefault(),document.getElementById(e.id)?.scrollIntoView({behavior:`smooth`}),s(e.id)},className:t.cn(`relative block py-1 text-sm transition-all duration-200`,e.level===2&&`pl-4`,e.level===3&&`pl-7`,e.level===4&&`pl-10`,n?`font-medium text-primary`:`text-muted-foreground hover:text-foreground`),children:[n&&(0,r.jsx)(`span`,{className:`absolute -left-px top-1/2 h-5 w-0.5 -translate-y-1/2 rounded-full bg-primary shadow-[0_0_8px_var(--color-primary)]`}),e.text]})},e.id)})})]})}exports.WakaDocToc=i;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../button/index.cjs.js`),r=require(`../separator/index.cjs.js`);let i=require(`react`);i=e.__toESM(i);let a=require(`lucide-react`),o=require(`react/jsx-runtime`);function s({content:e,mode:s=`view`,canEdit:c=!1,onModeChange:l,saveStatus:u=`idle`,className:d}){let[f,p]=i.useState(!1);return(0,o.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 rounded-lg border border-border/50 bg-background/80 px-2 py-1 backdrop-blur-sm`,d),children:[(0,o.jsxs)(n.Button,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:async()=>{try{await navigator.clipboard.writeText(e),p(!0),setTimeout(()=>p(!1),2e3)}catch{}},children:[f?(0,o.jsx)(a.Check,{className:`h-3.5 w-3.5 text-emerald-500`}):(0,o.jsx)(a.Copy,{className:`h-3.5 w-3.5`}),f?`Copié`:`Copier`]}),(0,o.jsx)(r.Separator,{orientation:`vertical`,className:`mx-1 h-5`}),(0,o.jsxs)(n.Button,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:()=>{let t=new Blob([e],{type:`text/markdown`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`document.md`,r.click(),URL.revokeObjectURL(n)},children:[(0,o.jsx)(a.Download,{className:`h-3.5 w-3.5`}),`.md`]}),(0,o.jsxs)(n.Button,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:async()=>{try{let{default:t}=await import(`jspdf`),n=new t,r=n.splitTextToSize(e,180);n.setFontSize(10),n.text(r,15,15),n.save(`document.pdf`)}catch{window.print()}},children:[(0,o.jsx)(a.FileText,{className:`h-3.5 w-3.5`}),`.pdf`]}),c&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.Separator,{orientation:`vertical`,className:`mx-1 h-5`}),(0,o.jsx)(n.Button,{variant:s===`edit`?`secondary`:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:()=>l?.(s===`edit`?`view`:`edit`),children:s===`edit`?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.Eye,{className:`h-3.5 w-3.5`}),`Visualiser`]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.Pencil,{className:`h-3.5 w-3.5`}),`Modifier`]})}),s===`edit`&&u!==`idle`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.Separator,{orientation:`vertical`,className:`mx-1 h-5`}),(0,o.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[u===`saving`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.Loader2,{className:`h-3 w-3 animate-spin`}),`Sauvegarde...`]}),u===`saved`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.CheckCircle2,{className:`h-3 w-3 text-emerald-500`}),`Sauvegardé`]}),u===`error`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.AlertCircle,{className:`h-3 w-3 text-destructive`}),`Erreur`]})]})]})]})]})}exports.WakaDocToolbar=s;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../button/index.cjs.js"),r=require("../separator/index.cjs.js");let i=require("react");i=e.__toESM(i);let a=require("lucide-react"),o=require("react/jsx-runtime");function s({content:e,mode:s=`view`,canEdit:c=!1,onModeChange:l,saveStatus:u=`idle`,className:d}){let[f,p]=i.useState(!1);return(0,o.jsxs)(`div`,{className:t.cn(`flex items-center gap-1 rounded-lg border border-border/50 bg-background/80 px-2 py-1 backdrop-blur-sm`,d),children:[(0,o.jsxs)(n.Button,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:async()=>{try{await navigator.clipboard.writeText(e),p(!0),setTimeout(()=>p(!1),2e3)}catch{}},children:[f?(0,o.jsx)(a.Check,{className:`h-3.5 w-3.5 text-emerald-500`}):(0,o.jsx)(a.Copy,{className:`h-3.5 w-3.5`}),f?`Copié`:`Copier`]}),(0,o.jsx)(r.Separator,{orientation:`vertical`,className:`mx-1 h-5`}),(0,o.jsxs)(n.Button,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:()=>{let t=new Blob([e],{type:`text/markdown`}),n=URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`document.md`,r.click(),URL.revokeObjectURL(n)},children:[(0,o.jsx)(a.Download,{className:`h-3.5 w-3.5`}),`.md`]}),(0,o.jsxs)(n.Button,{variant:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:async()=>{try{let{default:t}=await import(`jspdf`),n=new t,r=n.splitTextToSize(e,180);n.setFontSize(10),n.text(r,15,15),n.save(`document.pdf`)}catch{window.print()}},children:[(0,o.jsx)(a.FileText,{className:`h-3.5 w-3.5`}),`.pdf`]}),c&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.Separator,{orientation:`vertical`,className:`mx-1 h-5`}),(0,o.jsx)(n.Button,{variant:s===`edit`?`secondary`:`ghost`,size:`sm`,className:`h-7 gap-1.5 text-xs`,onClick:()=>l?.(s===`edit`?`view`:`edit`),children:s===`edit`?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.Eye,{className:`h-3.5 w-3.5`}),`Visualiser`]}):(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.Pencil,{className:`h-3.5 w-3.5`}),`Modifier`]})}),s===`edit`&&u!==`idle`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r.Separator,{orientation:`vertical`,className:`mx-1 h-5`}),(0,o.jsxs)(`span`,{className:`flex items-center gap-1 text-xs text-muted-foreground`,children:[u===`saving`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.Loader2,{className:`h-3 w-3 animate-spin`}),`Sauvegarde...`]}),u===`saved`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.CheckCircle2,{className:`h-3 w-3 text-emerald-500`}),`Sauvegardé`]}),u===`error`&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(a.AlertCircle,{className:`h-3 w-3 text-destructive`}),`Erreur`]})]})]})]})]})}exports.WakaDocToolbar=s;
@@ -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(`../select/index.cjs.js`);let i=require(`react`);i=e.__toESM(i);let a=require(`lucide-react`),o=require(`react/jsx-runtime`);var s={latest:{label:`Latest`,variant:`default`},stable:{label:`Stable`,variant:`secondary`},beta:{label:`Beta`,variant:`outline`},rc:{label:`RC`,variant:`outline`},deprecated:{label:`Deprecated`,variant:`destructive`}};function c({versions:e,current:i,onVersionChange:c,className:l}){return(0,o.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,l),children:[(0,o.jsx)(a.Tag,{className:`h-4 w-4 text-muted-foreground`}),(0,o.jsxs)(r.Select,{value:i,onValueChange:c,children:[(0,o.jsx)(r.SelectTrigger,{className:`h-8 w-auto min-w-[120px] text-xs`,children:(0,o.jsx)(r.SelectValue,{})}),(0,o.jsx)(r.SelectContent,{children:e.map(e=>(0,o.jsx)(r.SelectItem,{value:e.id,children:(0,o.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.label,e.status&&(0,o.jsx)(n.Badge,{variant:s[e.status].variant,className:`text-[10px] px-1.5 py-0`,children:s[e.status].label})]})},e.id))})]})]})}exports.WakaDocVersion=c;
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("../select/index.cjs.js");let i=require("react");i=e.__toESM(i);let a=require("lucide-react"),o=require("react/jsx-runtime");var s={latest:{label:`Latest`,variant:`default`},stable:{label:`Stable`,variant:`secondary`},beta:{label:`Beta`,variant:`outline`},rc:{label:`RC`,variant:`outline`},deprecated:{label:`Deprecated`,variant:`destructive`}};function c({versions:e,current:i,onVersionChange:c,className:l}){return(0,o.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,l),children:[(0,o.jsx)(a.Tag,{className:`h-4 w-4 text-muted-foreground`}),(0,o.jsxs)(r.Select,{value:i,onValueChange:c,children:[(0,o.jsx)(r.SelectTrigger,{className:`h-8 w-auto min-w-[120px] text-xs`,children:(0,o.jsx)(r.SelectValue,{})}),(0,o.jsx)(r.SelectContent,{children:e.map(e=>(0,o.jsx)(r.SelectItem,{value:e.id,children:(0,o.jsxs)(`span`,{className:`flex items-center gap-2`,children:[e.label,e.status&&(0,o.jsx)(n.Badge,{variant:s[e.status].variant,className:`text-[10px] px-1.5 py-0`,children:s[e.status].label})]})},e.id))})]})]})}exports.WakaDocVersion=c;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);function i({items:e,position:i=`bottom`,size:a=`default`,magnification:o=1.5,magnificationDistance:s=150,showLabels:c=!0,fixed:l=!0,className:u}){let d=n.useRef(null),[f,p]=n.useState(null),[m,h]=n.useState(null),g=i===`left`||i===`right`,_=n.useCallback(e=>{if(!d.current)return;let t=d.current.getBoundingClientRect();p(g?e.clientY-t.top:e.clientX-t.left)},[g]),v=()=>{p(null),h(null)},y=e=>{if(f===null)return 1;let t=a===`sm`?40:a===`lg`?64:48,n=e*(t+8)+t/2,r=Math.abs(f-n);if(r>s)return 1;let i=1+(o-1)*(1-r/s);return Math.min(i,o)},b={sm:`h-10 w-10`,default:`h-12 w-12`,lg:`h-16 w-16`};return(0,r.jsx)(`div`,{ref:d,className:t.cn(`z-50 flex items-end gap-2 rounded-2xl border bg-background/80 p-2 shadow-2xl backdrop-blur-xl`,{bottom:t.cn(l?`fixed bottom-4 left-1/2 -translate-x-1/2`:`mx-auto`,`flex-row`),left:t.cn(l?`fixed left-4 top-1/2 -translate-y-1/2`:``,`flex-col`),right:t.cn(l?`fixed right-4 top-1/2 -translate-y-1/2`:`ml-auto`,`flex-col`)}[i],u),onMouseMove:_,onMouseLeave:v,children:e.map((e,n)=>{let o=y(n);return(0,r.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>h(n),onMouseLeave:()=>h(null),children:[c&&m===n&&(0,r.jsxs)(`div`,{className:t.cn(`absolute z-10 whitespace-nowrap rounded-md bg-foreground px-2 py-1 text-xs font-medium text-background shadow-lg`,`animate-in fade-in-0 zoom-in-95`,i===`bottom`&&`bottom-full left-1/2 -translate-x-1/2 mb-2`,i===`left`&&`left-full top-1/2 -translate-y-1/2 ml-2`,i===`right`&&`right-full top-1/2 -translate-y-1/2 mr-2`),children:[e.label,(0,r.jsx)(`div`,{className:t.cn(`absolute h-2 w-2 rotate-45 bg-foreground`,i===`bottom`&&`left-1/2 -translate-x-1/2 -bottom-1`,i===`left`&&`top-1/2 -translate-y-1/2 -right-1`,i===`right`&&`top-1/2 -translate-y-1/2 -left-1`)})]}),(0,r.jsxs)(`button`,{type:`button`,onClick:e.onClick,className:t.cn(`relative flex items-center justify-center rounded-xl transition-all duration-150`,b[a],`bg-muted/80 hover:bg-accent text-foreground`,`origin-bottom`),style:{transform:`scale(${o})`,marginBottom:i===`bottom`?`${(o-1)*(a===`sm`?20:a===`lg`?32:24)}px`:0,marginRight:i===`left`?`${(o-1)*(a===`sm`?20:a===`lg`?32:24)}px`:0,marginLeft:i===`right`?`${(o-1)*(a===`sm`?20:a===`lg`?32:24)}px`:0},children:[e.icon,e.badge!==void 0&&(0,r.jsx)(`span`,{className:`absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1 text-[10px] font-bold text-destructive-foreground`,children:e.badge}),e.active&&i===`bottom`&&(0,r.jsx)(`span`,{className:`absolute -bottom-1 left-1/2 h-1 w-1 -translate-x-1/2 rounded-full bg-primary`})]}),(0,r.jsx)(`div`,{className:t.cn(`absolute opacity-20 blur-sm`,b[a],i===`bottom`&&`top-full mt-1`,i===`left`&&`left-full ml-1`,i===`right`&&`right-full mr-1`),style:{transform:`scale(${o}) scaleY(-0.3)`,background:`linear-gradient(to bottom, currentColor, transparent)`}})]},e.id)})})}function a({showAfter:e=200,autoHideDelay:a=3e3,...o}){let[s,c]=n.useState(!1),[l,u]=n.useState(!1),d=n.useRef(void 0);return n.useEffect(()=>{let t=()=>{let t=window.scrollY>e;c(t),t&&!l&&a>0&&(d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{l||c(!1)},a))};return window.addEventListener(`scroll`,t,{passive:!0}),()=>{window.removeEventListener(`scroll`,t),d.current&&clearTimeout(d.current)}},[e,a,l]),(0,r.jsx)(`div`,{onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),className:t.cn(`transition-all duration-300`,s?`translate-y-0 opacity-100`:`translate-y-full opacity-0 pointer-events-none`),children:(0,r.jsx)(i,{...o})})}function o({sections:e,...t}){return(0,r.jsx)(i,{items:e.flatMap((t,n)=>n===e.length-1?t.items:[...t.items,{id:`separator-${n}`,icon:null,label:``,isSeparator:!0}]),...t})}exports.WakaAppDock=o,exports.WakaDock=i,exports.WakaFloatingDock=a;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime");function i({items:e,position:i=`bottom`,size:a=`default`,magnification:o=1.5,magnificationDistance:s=150,showLabels:c=!0,fixed:l=!0,className:u}){let d=n.useRef(null),[f,p]=n.useState(null),[m,h]=n.useState(null),g=i===`left`||i===`right`,_=n.useCallback(e=>{if(!d.current)return;let t=d.current.getBoundingClientRect(),n=g?e.clientY-t.top:e.clientX-t.left;p(n)},[g]),v=()=>{p(null),h(null)},y=e=>{if(f===null)return 1;let t=a===`sm`?40:a===`lg`?64:48,n=e*(t+8)+t/2,r=Math.abs(f-n);if(r>s)return 1;let i=1+(o-1)*(1-r/s);return Math.min(i,o)},b={sm:`h-10 w-10`,default:`h-12 w-12`,lg:`h-16 w-16`};return(0,r.jsx)(`div`,{ref:d,className:t.cn(`z-50 flex items-end gap-2 rounded-2xl border bg-background/80 p-2 shadow-2xl backdrop-blur-xl`,{bottom:t.cn(l?`fixed bottom-4 left-1/2 -translate-x-1/2`:`mx-auto`,`flex-row`),left:t.cn(l?`fixed left-4 top-1/2 -translate-y-1/2`:``,`flex-col`),right:t.cn(l?`fixed right-4 top-1/2 -translate-y-1/2`:`ml-auto`,`flex-col`)}[i],u),onMouseMove:_,onMouseLeave:v,children:e.map((e,n)=>{let o=y(n);return(0,r.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>h(n),onMouseLeave:()=>h(null),children:[c&&m===n&&(0,r.jsxs)(`div`,{className:t.cn(`absolute z-10 whitespace-nowrap rounded-md bg-foreground px-2 py-1 text-xs font-medium text-background shadow-lg`,`animate-in fade-in-0 zoom-in-95`,i===`bottom`&&`bottom-full left-1/2 -translate-x-1/2 mb-2`,i===`left`&&`left-full top-1/2 -translate-y-1/2 ml-2`,i===`right`&&`right-full top-1/2 -translate-y-1/2 mr-2`),children:[e.label,(0,r.jsx)(`div`,{className:t.cn(`absolute h-2 w-2 rotate-45 bg-foreground`,i===`bottom`&&`left-1/2 -translate-x-1/2 -bottom-1`,i===`left`&&`top-1/2 -translate-y-1/2 -right-1`,i===`right`&&`top-1/2 -translate-y-1/2 -left-1`)})]}),(0,r.jsxs)(`button`,{type:`button`,onClick:e.onClick,className:t.cn(`relative flex items-center justify-center rounded-xl transition-all duration-150`,b[a],`bg-muted/80 hover:bg-accent text-foreground`,`origin-bottom`),style:{transform:`scale(${o})`,marginBottom:i===`bottom`?`${(o-1)*(a===`sm`?20:a===`lg`?32:24)}px`:0,marginRight:i===`left`?`${(o-1)*(a===`sm`?20:a===`lg`?32:24)}px`:0,marginLeft:i===`right`?`${(o-1)*(a===`sm`?20:a===`lg`?32:24)}px`:0},children:[e.icon,e.badge!==void 0&&(0,r.jsx)(`span`,{className:`absolute -right-1 -top-1 flex h-4 min-w-4 items-center justify-center rounded-full bg-destructive px-1 text-[10px] font-bold text-destructive-foreground`,children:e.badge}),e.active&&i===`bottom`&&(0,r.jsx)(`span`,{className:`absolute -bottom-1 left-1/2 h-1 w-1 -translate-x-1/2 rounded-full bg-primary`})]}),(0,r.jsx)(`div`,{className:t.cn(`absolute opacity-20 blur-sm`,b[a],i===`bottom`&&`top-full mt-1`,i===`left`&&`left-full ml-1`,i===`right`&&`right-full mr-1`),style:{transform:`scale(${o}) scaleY(-0.3)`,background:`linear-gradient(to bottom, currentColor, transparent)`}})]},e.id)})})}function a({showAfter:e=200,autoHideDelay:a=3e3,...o}){let[s,c]=n.useState(!1),[l,u]=n.useState(!1),d=n.useRef(void 0);return n.useEffect(()=>{let t=()=>{let t=window.scrollY>e;c(t),t&&!l&&a>0&&(d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{l||c(!1)},a))};return window.addEventListener(`scroll`,t,{passive:!0}),()=>{window.removeEventListener(`scroll`,t),d.current&&clearTimeout(d.current)}},[e,a,l]),(0,r.jsx)(`div`,{onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),className:t.cn(`transition-all duration-300`,s?`translate-y-0 opacity-100`:`translate-y-full opacity-0 pointer-events-none`),children:(0,r.jsx)(i,{...o})})}function o({sections:e,...t}){return(0,r.jsx)(i,{items:e.flatMap((t,n)=>n===e.length-1?t.items:[...t.items,{id:`separator-${n}`,icon:null,label:``,isSeparator:!0}]),...t})}exports.WakaAppDock=o,exports.WakaDock=i,exports.WakaFloatingDock=a;
@@ -7,8 +7,8 @@ import { jsx as n, jsxs as r } from "react/jsx-runtime";
7
7
  function i({ items: i, position: a = "bottom", size: o = "default", magnification: s = 1.5, magnificationDistance: c = 150, showLabels: l = !0, fixed: u = !0, className: d }) {
8
8
  let f = t.useRef(null), [p, m] = t.useState(null), [h, g] = t.useState(null), _ = a === "left" || a === "right", v = t.useCallback((e) => {
9
9
  if (!f.current) return;
10
- let t = f.current.getBoundingClientRect();
11
- m(_ ? e.clientY - t.top : e.clientX - t.left);
10
+ let t = f.current.getBoundingClientRect(), n = _ ? e.clientY - t.top : e.clientX - t.left;
11
+ m(n);
12
12
  }, [_]), y = () => {
13
13
  m(null), g(null);
14
14
  }, b = (e) => {
@@ -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`),a=require(`@radix-ui/react-dialog`);a=e.__toESM(a);var o={left:{sm:`w-64`,md:`w-80`,lg:`w-96`,xl:`w-[480px]`,full:`w-screen`},right:{sm:`w-64`,md:`w-80`,lg:`w-96`,xl:`w-[480px]`,full:`w-screen`},top:{sm:`h-32`,md:`h-48`,lg:`h-64`,xl:`h-96`,full:`h-screen`},bottom:{sm:`h-32`,md:`h-48`,lg:`h-64`,xl:`h-96`,full:`h-screen`}},s={left:`left-0 top-0 h-full`,right:`right-0 top-0 h-full`,top:`top-0 left-0 w-full`,bottom:`bottom-0 left-0 w-full`},c={left:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left`,right:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right`,top:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`},l=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(`div`,{ref:r,className:t.cn(`flex flex-col space-y-1.5 p-4 border-b`,e),...n}));l.displayName=`DrawerHeader`;var u=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(`div`,{ref:r,className:t.cn(`flex-1 overflow-auto p-4`,e),...n}));u.displayName=`DrawerBody`;var d=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(`div`,{ref:r,className:t.cn(`flex items-center justify-end gap-2 p-4 border-t`,e),...n}));d.displayName=`DrawerFooter`;var f=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(a.Title,{ref:r,className:t.cn(`text-lg font-semibold leading-none tracking-tight`,e),...n}));f.displayName=`DrawerTitle`;var p=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(a.Description,{ref:r,className:t.cn(`text-sm text-muted-foreground`,e),...n}));p.displayName=`DrawerDescription`;function m({open:e,onOpenChange:n,position:m=`right`,size:h=`md`,title:g,description:_,showCloseButton:v=!0,closeOnOverlayClick:y=!0,closeOnEscape:b=!0,showOverlay:x=!0,children:S,footer:C,className:w,contentClassName:T}){return(0,i.jsx)(a.Root,{open:e,onOpenChange:n,children:(0,i.jsxs)(a.Portal,{children:[x&&(0,i.jsx)(a.Overlay,{className:t.cn(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`)}),(0,i.jsxs)(a.Content,{onPointerDownOutside:e=>{y||e.preventDefault()},onEscapeKeyDown:e=>{b||e.preventDefault()},"aria-describedby":_?void 0:`drawer-description`,className:t.cn(`fixed z-50 bg-background shadow-lg flex flex-col`,`duration-300 ease-in-out`,s[m],o[m][h],c[m],w),children:[!g&&(0,i.jsx)(f,{className:`sr-only`,children:`Panneau latéral`}),!_&&(0,i.jsx)(p,{id:`drawer-description`,className:`sr-only`,children:`Contenu du panneau latéral`}),(g||_||v)&&(0,i.jsx)(l,{children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[g&&(0,i.jsx)(f,{children:g}),_&&(0,i.jsx)(p,{children:_})]}),v&&(0,i.jsxs)(a.Close,{className:`rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none`,children:[(0,i.jsx)(r.X,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{className:`sr-only`,children:`Fermer`})]})]})}),(0,i.jsx)(u,{className:T,children:S}),C&&(0,i.jsx)(d,{children:C})]})]})})}function h(e={}){let{defaultOpen:t=!1,onOpen:r,onClose:i}=e,[a,o]=n.useState(t),s=n.useCallback(e=>{o(e),e?r?.():i?.()},[r,i]);return{open:a,onOpenChange:s,openDrawer:n.useCallback(()=>s(!0),[s]),closeDrawer:n.useCallback(()=>s(!1),[s]),toggleDrawer:n.useCallback(()=>s(!a),[s,a])}}var g=a.Trigger,_=a.Close;exports.DrawerBody=u,exports.DrawerClose=_,exports.DrawerDescription=p,exports.DrawerFooter=d,exports.DrawerHeader=l,exports.DrawerTitle=f,exports.DrawerTrigger=g,exports.default=m,exports.useDrawer=h;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime"),a=require("@radix-ui/react-dialog");a=e.__toESM(a);var o={left:{sm:`w-64`,md:`w-80`,lg:`w-96`,xl:`w-[480px]`,full:`w-screen`},right:{sm:`w-64`,md:`w-80`,lg:`w-96`,xl:`w-[480px]`,full:`w-screen`},top:{sm:`h-32`,md:`h-48`,lg:`h-64`,xl:`h-96`,full:`h-screen`},bottom:{sm:`h-32`,md:`h-48`,lg:`h-64`,xl:`h-96`,full:`h-screen`}},s={left:`left-0 top-0 h-full`,right:`right-0 top-0 h-full`,top:`top-0 left-0 w-full`,bottom:`bottom-0 left-0 w-full`},c={left:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left`,right:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right`,top:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`},l=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(`div`,{ref:r,className:t.cn(`flex flex-col space-y-1.5 p-4 border-b`,e),...n}));l.displayName=`DrawerHeader`;var u=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(`div`,{ref:r,className:t.cn(`flex-1 overflow-auto p-4`,e),...n}));u.displayName=`DrawerBody`;var d=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(`div`,{ref:r,className:t.cn(`flex items-center justify-end gap-2 p-4 border-t`,e),...n}));d.displayName=`DrawerFooter`;var f=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(a.Title,{ref:r,className:t.cn(`text-lg font-semibold leading-none tracking-tight`,e),...n}));f.displayName=`DrawerTitle`;var p=n.forwardRef(({className:e,...n},r)=>(0,i.jsx)(a.Description,{ref:r,className:t.cn(`text-sm text-muted-foreground`,e),...n}));p.displayName=`DrawerDescription`;function m({open:e,onOpenChange:n,position:m=`right`,size:h=`md`,title:g,description:_,showCloseButton:v=!0,closeOnOverlayClick:y=!0,closeOnEscape:b=!0,showOverlay:x=!0,children:S,footer:C,className:w,contentClassName:T}){return(0,i.jsx)(a.Root,{open:e,onOpenChange:n,children:(0,i.jsxs)(a.Portal,{children:[x&&(0,i.jsx)(a.Overlay,{className:t.cn(`fixed inset-0 z-50 bg-black/50`,`data-[state=open]:animate-in data-[state=closed]:animate-out`,`data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`)}),(0,i.jsxs)(a.Content,{onPointerDownOutside:e=>{y||e.preventDefault()},onEscapeKeyDown:e=>{b||e.preventDefault()},"aria-describedby":_?void 0:`drawer-description`,className:t.cn(`fixed z-50 bg-background shadow-lg flex flex-col`,`duration-300 ease-in-out`,s[m],o[m][h],c[m],w),children:[!g&&(0,i.jsx)(f,{className:`sr-only`,children:`Panneau latéral`}),!_&&(0,i.jsx)(p,{id:`drawer-description`,className:`sr-only`,children:`Contenu du panneau latéral`}),(g||_||v)&&(0,i.jsx)(l,{children:(0,i.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,i.jsxs)(`div`,{className:`flex-1`,children:[g&&(0,i.jsx)(f,{children:g}),_&&(0,i.jsx)(p,{children:_})]}),v&&(0,i.jsxs)(a.Close,{className:`rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none`,children:[(0,i.jsx)(r.X,{className:`h-4 w-4`}),(0,i.jsx)(`span`,{className:`sr-only`,children:`Fermer`})]})]})}),(0,i.jsx)(u,{className:T,children:S}),C&&(0,i.jsx)(d,{children:C})]})]})})}function h(e={}){let{defaultOpen:t=!1,onOpen:r,onClose:i}=e,[a,o]=n.useState(t),s=n.useCallback(e=>{o(e),e?r?.():i?.()},[r,i]);return{open:a,onOpenChange:s,openDrawer:n.useCallback(()=>s(!0),[s]),closeDrawer:n.useCallback(()=>s(!1),[s]),toggleDrawer:n.useCallback(()=>s(!a),[s,a])}}var g=a.Trigger,_=a.Close;exports.DrawerBody=u,exports.DrawerClose=_,exports.DrawerDescription=p,exports.DrawerFooter=d,exports.DrawerHeader=l,exports.DrawerTitle=f,exports.DrawerTrigger=g,exports.WakaDrawer=m,exports.default=m,exports.useDrawer=h;
@@ -134,4 +134,4 @@ function h(e = {}) {
134
134
  }
135
135
  var g = a.Trigger, _ = a.Close;
136
136
  //#endregion
137
- export { u as DrawerBody, _ as DrawerClose, p as DrawerDescription, d as DrawerFooter, l as DrawerHeader, f as DrawerTitle, g as DrawerTrigger, m as default, h as useDrawer };
137
+ export { u as DrawerBody, _ as DrawerClose, p as DrawerDescription, d as DrawerFooter, l as DrawerHeader, f as DrawerTitle, g as DrawerTrigger, m as WakaDrawer, m as default, h as useDrawer };
@@ -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={inbox:r.Inbox,search:r.Search,error:r.FileX,folder:r.FolderOpen,users:r.Users,cart:r.ShoppingCart,calendar:r.Calendar,mail:r.Mail,image:r.Image},o={default:{illustration:`inbox`,title:`No items yet`,description:`Get started by creating your first item.`},search:{illustration:`search`,title:`No results found`,description:`Try adjusting your search or filter to find what you're looking for.`},error:{illustration:`error`,title:`Something went wrong`,description:`We encountered an error while loading. Please try again.`}},s={sm:{container:`py-6 px-4`,iconContainer:`h-12 w-12`,icon:`h-6 w-6`,title:`text-base`,description:`text-xs`,gap:`gap-3`,buttonSize:`h-8 px-3 text-xs`},md:{container:`py-10 px-6`,iconContainer:`h-16 w-16`,icon:`h-8 w-8`,title:`text-lg`,description:`text-sm`,gap:`gap-4`,buttonSize:`h-9 px-4 text-sm`},lg:{container:`py-16 px-8`,iconContainer:`h-24 w-24`,icon:`h-12 w-12`,title:`text-2xl`,description:`text-base`,gap:`gap-6`,buttonSize:`h-10 px-6 text-base`}},c=`
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={inbox:r.Inbox,search:r.Search,error:r.FileX,folder:r.FolderOpen,users:r.Users,cart:r.ShoppingCart,calendar:r.Calendar,mail:r.Mail,image:r.Image},o={default:{illustration:`inbox`,title:`No items yet`,description:`Get started by creating your first item.`},search:{illustration:`search`,title:`No results found`,description:`Try adjusting your search or filter to find what you're looking for.`},error:{illustration:`error`,title:`Something went wrong`,description:`We encountered an error while loading. Please try again.`}},s={sm:{container:`py-6 px-4`,iconContainer:`h-12 w-12`,icon:`h-6 w-6`,title:`text-base`,description:`text-xs`,gap:`gap-3`,buttonSize:`h-8 px-3 text-xs`},md:{container:`py-10 px-6`,iconContainer:`h-16 w-16`,icon:`h-8 w-8`,title:`text-lg`,description:`text-sm`,gap:`gap-4`,buttonSize:`h-9 px-4 text-sm`},lg:{container:`py-16 px-8`,iconContainer:`h-24 w-24`,icon:`h-12 w-12`,title:`text-2xl`,description:`text-base`,gap:`gap-6`,buttonSize:`h-10 px-6 text-base`}},c=`
2
2
  @keyframes waka-empty-state-fade-in {
3
3
  from {
4
4
  opacity: 0;
@@ -1,2 +1,2 @@
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(`../input/index.cjs.js`),a=require(`../scroll-area/index.cjs.js`),o=require(`../tooltip/index.cjs.js`);let s=require(`react`);s=e.__toESM(s);let c=require(`lucide-react`),l=require(`react/jsx-runtime`);function u({variable:e,index:a,onChange:u,onDelete:d,readOnly:f,showSource:p}){let[m,h]=s.useState(!e.isSecret),[g,_]=s.useState(!1);return e.isSecret&&!m?`•`.repeat(Math.min(e.value.length,20)):e.value,(0,l.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 p-2 border-b hover:bg-muted/30 transition-colors`,e.isRequired&&!e.value&&`bg-yellow-500/5`),children:[(0,l.jsx)(o.TooltipProvider,{children:(0,l.jsxs)(o.Tooltip,{children:[(0,l.jsx)(o.TooltipTrigger,{asChild:!0,children:(0,l.jsx)(`button`,{className:t.cn(`p-1.5 rounded hover:bg-muted transition-colors`,f&&`pointer-events-none`),onClick:()=>!f&&u(a,`isSecret`,!e.isSecret),children:e.isSecret?(0,l.jsx)(c.Lock,{className:`h-4 w-4 text-yellow-500`}):(0,l.jsx)(c.Unlock,{className:`h-4 w-4 text-muted-foreground`})})}),(0,l.jsx)(o.TooltipContent,{children:e.isSecret?`Secret variable`:`Not a secret`})]})}),(0,l.jsx)(i.Input,{value:e.key,onChange:e=>u(a,`key`,e.target.value),placeholder:`KEY_NAME`,className:`font-mono text-sm w-48 h-8`,readOnly:f}),(0,l.jsx)(`span`,{className:`text-muted-foreground`,children:`=`}),(0,l.jsxs)(`div`,{className:`flex-1 relative`,children:[(0,l.jsx)(i.Input,{type:e.isSecret&&!m?`password`:`text`,value:e.value,onChange:e=>u(a,`value`,e.target.value),placeholder:`value`,className:`font-mono text-sm h-8 pr-16`,readOnly:f}),(0,l.jsxs)(`div`,{className:`absolute right-1 top-1/2 -translate-y-1/2 flex items-center gap-1`,children:[e.isSecret&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:()=>h(!m),children:m?(0,l.jsx)(c.EyeOff,{className:`h-3 w-3`}):(0,l.jsx)(c.Eye,{className:`h-3 w-3`})}),(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:()=>{navigator.clipboard.writeText(e.value),_(!0),setTimeout(()=>_(!1),2e3)},children:g?(0,l.jsx)(c.CheckCircle2,{className:`h-3 w-3 text-green-500`}):(0,l.jsx)(c.Copy,{className:`h-3 w-3`})})]})]}),p&&e.source&&(0,l.jsx)(n.Badge,{variant:`outline`,className:`text-xs shrink-0`,children:e.source}),e.isRequired&&!e.value&&(0,l.jsx)(o.TooltipProvider,{children:(0,l.jsxs)(o.Tooltip,{children:[(0,l.jsx)(o.TooltipTrigger,{children:(0,l.jsx)(c.AlertTriangle,{className:`h-4 w-4 text-yellow-500`})}),(0,l.jsx)(o.TooltipContent,{children:`Required variable is empty`})]})}),!f&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0 text-destructive hover:text-destructive`,onClick:()=>d(a),children:(0,l.jsx)(c.Trash2,{className:`h-4 w-4`})})]})}function d({variables:e,onChange:o,onSave:d,onImport:f,onExport:p,readOnly:m=!1,showSource:h=!1,title:g=`Environment Variables`,className:_}){let[v,y]=s.useState(e),[b,x]=s.useState(``),[S,C]=s.useState(!1),w=s.useRef(null);s.useEffect(()=>{y(e),C(!1)},[e]);let T=(e,t,n)=>{let r=[...v];r[e]={...r[e],[t]:n},y(r),C(!0),o?.(r)},E=e=>{let t=v.filter((t,n)=>n!==e);y(t),C(!0),o?.(t)},D=()=>{let e=[...v,{key:``,value:``,isSecret:!1}];y(e),C(!0),o?.(e)},O=()=>{d?.(v),C(!1)},k=e=>{let t=e.target.files?.[0];if(t){let e=new FileReader;e.onload=e=>{let t=e.target?.result;if(f)f(t);else{let e=t.split(`
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("../input/index.cjs.js"),a=require("../scroll-area/index.cjs.js"),o=require("../tooltip/index.cjs.js");let s=require("react");s=e.__toESM(s);let c=require("lucide-react"),l=require("react/jsx-runtime");function u({variable:e,index:a,onChange:u,onDelete:d,readOnly:f,showSource:p}){let[m,h]=s.useState(!e.isSecret),[g,_]=s.useState(!1);return e.isSecret&&!m?`•`.repeat(Math.min(e.value.length,20)):e.value,(0,l.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 p-2 border-b hover:bg-muted/30 transition-colors`,e.isRequired&&!e.value&&`bg-yellow-500/5`),children:[(0,l.jsx)(o.TooltipProvider,{children:(0,l.jsxs)(o.Tooltip,{children:[(0,l.jsx)(o.TooltipTrigger,{asChild:!0,children:(0,l.jsx)(`button`,{className:t.cn(`p-1.5 rounded hover:bg-muted transition-colors`,f&&`pointer-events-none`),onClick:()=>!f&&u(a,`isSecret`,!e.isSecret),children:e.isSecret?(0,l.jsx)(c.Lock,{className:`h-4 w-4 text-yellow-500`}):(0,l.jsx)(c.Unlock,{className:`h-4 w-4 text-muted-foreground`})})}),(0,l.jsx)(o.TooltipContent,{children:e.isSecret?`Secret variable`:`Not a secret`})]})}),(0,l.jsx)(i.Input,{value:e.key,onChange:e=>u(a,`key`,e.target.value),placeholder:`KEY_NAME`,className:`font-mono text-sm w-48 h-8`,readOnly:f}),(0,l.jsx)(`span`,{className:`text-muted-foreground`,children:`=`}),(0,l.jsxs)(`div`,{className:`flex-1 relative`,children:[(0,l.jsx)(i.Input,{type:e.isSecret&&!m?`password`:`text`,value:e.value,onChange:e=>u(a,`value`,e.target.value),placeholder:`value`,className:`font-mono text-sm h-8 pr-16`,readOnly:f}),(0,l.jsxs)(`div`,{className:`absolute right-1 top-1/2 -translate-y-1/2 flex items-center gap-1`,children:[e.isSecret&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:()=>h(!m),children:m?(0,l.jsx)(c.EyeOff,{className:`h-3 w-3`}):(0,l.jsx)(c.Eye,{className:`h-3 w-3`})}),(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0`,onClick:()=>{navigator.clipboard.writeText(e.value),_(!0),setTimeout(()=>_(!1),2e3)},children:g?(0,l.jsx)(c.CheckCircle2,{className:`h-3 w-3 text-green-500`}):(0,l.jsx)(c.Copy,{className:`h-3 w-3`})})]})]}),p&&e.source&&(0,l.jsx)(n.Badge,{variant:`outline`,className:`text-xs shrink-0`,children:e.source}),e.isRequired&&!e.value&&(0,l.jsx)(o.TooltipProvider,{children:(0,l.jsxs)(o.Tooltip,{children:[(0,l.jsx)(o.TooltipTrigger,{children:(0,l.jsx)(c.AlertTriangle,{className:`h-4 w-4 text-yellow-500`})}),(0,l.jsx)(o.TooltipContent,{children:`Required variable is empty`})]})}),!f&&(0,l.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0 text-destructive hover:text-destructive`,onClick:()=>d(a),children:(0,l.jsx)(c.Trash2,{className:`h-4 w-4`})})]})}function d({variables:e,onChange:o,onSave:d,onImport:f,onExport:p,readOnly:m=!1,showSource:h=!1,title:g=`Environment Variables`,className:_}){let[v,y]=s.useState(e),[b,x]=s.useState(``),[S,C]=s.useState(!1),w=s.useRef(null);s.useEffect(()=>{y(e),C(!1)},[e]);let T=(e,t,n)=>{let r=[...v];r[e]={...r[e],[t]:n},y(r),C(!0),o?.(r)},E=e=>{let t=v.filter((t,n)=>n!==e);y(t),C(!0),o?.(t)},D=()=>{let e=[...v,{key:``,value:``,isSecret:!1}];y(e),C(!0),o?.(e)},O=()=>{d?.(v),C(!1)},k=e=>{let t=e.target.files?.[0];if(t){let e=new FileReader;e.onload=e=>{let t=e.target?.result;if(f)f(t);else{let e=t.split(`
2
2
  `).filter(e=>e.trim()&&!e.startsWith(`#`)).map(e=>{let[t,...n]=e.split(`=`),r=n.join(`=`).replace(/^["']|["']$/g,``);return{key:t.trim(),value:r,isSecret:t.includes(`SECRET`)||t.includes(`PASSWORD`)||t.includes(`KEY`)}});y(e),C(!0),o?.(e)}},e.readAsText(t)}w.current&&(w.current.value=``)},A=v.filter(e=>e.key.toLowerCase().includes(b.toLowerCase())||!e.isSecret&&e.value.toLowerCase().includes(b.toLowerCase())),j=v.filter(e=>e.isSecret).length,M=v.filter(e=>e.isRequired&&!e.value).length;return(0,l.jsxs)(`div`,{className:t.cn(`flex flex-col border rounded-lg bg-background`,_),children:[(0,l.jsxs)(`div`,{className:`flex items-center justify-between gap-4 p-3 border-b`,children:[(0,l.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,l.jsx)(c.Variable,{className:`h-5 w-5`}),(0,l.jsx)(`h3`,{className:`font-semibold`,children:g}),(0,l.jsx)(n.Badge,{variant:`secondary`,children:v.length}),j>0&&(0,l.jsxs)(n.Badge,{variant:`outline`,className:`text-yellow-500`,children:[(0,l.jsx)(c.Lock,{className:`h-3 w-3 mr-1`}),j,` secrets`]}),M>0&&(0,l.jsxs)(n.Badge,{variant:`outline`,className:`text-yellow-500`,children:[(0,l.jsx)(c.AlertTriangle,{className:`h-3 w-3 mr-1`}),M,` missing`]})]}),(0,l.jsx)(`div`,{className:`flex items-center gap-2`,children:d&&S&&(0,l.jsxs)(r.Button,{size:`sm`,onClick:O,children:[(0,l.jsx)(c.Save,{className:`h-4 w-4 mr-1`}),`Save`]})})]}),(0,l.jsxs)(`div`,{className:`flex items-center gap-2 p-2 border-b bg-muted/30`,children:[(0,l.jsxs)(`div`,{className:`relative flex-1 max-w-sm`,children:[(0,l.jsx)(c.Search,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,l.jsx)(i.Input,{placeholder:`Search variables...`,value:b,onChange:e=>x(e.target.value),className:`pl-8 h-8`})]}),!m&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-8`,onClick:D,children:[(0,l.jsx)(c.Plus,{className:`h-4 w-4 mr-1`}),`Add`]}),(0,l.jsx)(`input`,{type:`file`,ref:w,accept:`.env,.txt`,onChange:k,className:`hidden`}),(0,l.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-8`,onClick:()=>w.current?.click(),children:[(0,l.jsx)(c.Upload,{className:`h-4 w-4 mr-1`}),`Import`]})]}),p&&(0,l.jsxs)(r.Button,{variant:`outline`,size:`sm`,className:`h-8`,onClick:p,children:[(0,l.jsx)(c.Download,{className:`h-4 w-4 mr-1`}),`Export`]})]}),(0,l.jsx)(a.ScrollArea,{className:`flex-1 max-h-[400px]`,children:A.length===0?(0,l.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-32 text-muted-foreground`,children:[(0,l.jsx)(c.Variable,{className:`h-8 w-8 mb-2`}),(0,l.jsx)(`span`,{children:`No variables found`}),!m&&(0,l.jsx)(r.Button,{variant:`link`,size:`sm`,onClick:D,children:`Add your first variable`})]}):A.map((e,t)=>(0,l.jsx)(u,{variable:e,index:v.indexOf(e),onChange:T,onDelete:E,readOnly:m,showSource:h},t))}),!m&&(0,l.jsx)(`div`,{className:`px-3 py-2 border-t bg-muted/30 text-xs text-muted-foreground`,children:`💡 Click the lock icon to mark a variable as secret. Secrets are masked by default.`})]})}var f=[{key:`NODE_ENV`,value:`production`,isRequired:!0},{key:`DATABASE_URL`,value:`postgresql://user:pass@localhost:5432/db`,isSecret:!0,isRequired:!0},{key:`API_KEY`,value:`sk-1234567890abcdef`,isSecret:!0},{key:`PORT`,value:`3000`},{key:`LOG_LEVEL`,value:`info`},{key:`REDIS_URL`,value:`redis://localhost:6379`,isSecret:!0},{key:`AWS_ACCESS_KEY_ID`,value:``,isSecret:!0,isRequired:!0},{key:`AWS_SECRET_ACCESS_KEY`,value:``,isSecret:!0,isRequired:!0}];exports.WakaEnvVarEditor=d,exports.defaultEnvVariables=f;
@@ -1,4 +1,4 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`react/jsx-runtime`);var i={light:{shake:`4px`,duration:300,glitchOffset:`2px`,flashOpacity:.1},medium:{shake:`8px`,duration:400,glitchOffset:`4px`,flashOpacity:.15},strong:{shake:`12px`,duration:500,glitchOffset:`6px`,flashOpacity:.2}},a=n.forwardRef(({className:e,trigger:a=!1,intensity:o=`medium`,duration:s,glitchEffect:c=!1,flashEffect:l=!0,flashColor:u=`rgb(239 68 68)`,onComplete:d,children:f,style:p,...m},h)=>{let[g,_]=n.useState(!1),[v,y]=n.useState(0),b=n.useRef(null),x=i[o],S=s??x.duration,C=n.useCallback(()=>{_(!0),y(e=>e+1),typeof navigator<`u`&&`vibrate`in navigator&&navigator.vibrate([30,20,30]),setTimeout(()=>{_(!1),d?.()},S)},[S,d]),w=n.useCallback(()=>{_(!1)},[]);return n.useImperativeHandle(h,()=>({shake:C,reset:w}),[C,w]),n.useEffect(()=>{a&&C()},[a,C]),(0,r.jsxs)(`div`,{ref:b,className:t.cn(`relative inline-block`,e),style:p,...m,children:[(0,r.jsx)(`div`,{className:t.cn(g&&`waka-error-shake-animation`),style:g?{"--shake-distance":x.shake,"--shake-duration":`${S}ms`}:void 0,children:f},v),l&&g&&(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none rounded-inherit waka-error-flash-animation`,style:{backgroundColor:u,"--flash-opacity":x.flashOpacity,"--flash-duration":`${S}ms`}}),c&&g&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none waka-error-glitch-red`,style:{"--glitch-offset":x.glitchOffset,"--glitch-duration":`${S}ms`,mixBlendMode:`multiply`,opacity:.5},children:(0,r.jsx)(`div`,{style:{filter:`url(#waka-glitch-red-filter)`,opacity:.7},children:f})}),(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none waka-error-glitch-cyan`,style:{"--glitch-offset":x.glitchOffset,"--glitch-duration":`${S}ms`,mixBlendMode:`multiply`,opacity:.5},children:(0,r.jsx)(`div`,{style:{filter:`url(#waka-glitch-cyan-filter)`,opacity:.7},children:f})}),(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none waka-error-scanlines`,style:{background:`repeating-linear-gradient(
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("react/jsx-runtime");var i={light:{shake:`4px`,duration:300,glitchOffset:`2px`,flashOpacity:.1},medium:{shake:`8px`,duration:400,glitchOffset:`4px`,flashOpacity:.15},strong:{shake:`12px`,duration:500,glitchOffset:`6px`,flashOpacity:.2}},a=n.forwardRef(({className:e,trigger:a=!1,intensity:o=`medium`,duration:s,glitchEffect:c=!1,flashEffect:l=!0,flashColor:u=`rgb(239 68 68)`,onComplete:d,children:f,style:p,...m},h)=>{let[g,_]=n.useState(!1),[v,y]=n.useState(0),b=n.useRef(null),x=i[o],S=s??x.duration,C=n.useCallback(()=>{_(!0),y(e=>e+1),typeof navigator<`u`&&`vibrate`in navigator&&navigator.vibrate([30,20,30]),setTimeout(()=>{_(!1),d?.()},S)},[S,d]),w=n.useCallback(()=>{_(!1)},[]);return n.useImperativeHandle(h,()=>({shake:C,reset:w}),[C,w]),n.useEffect(()=>{a&&C()},[a,C]),(0,r.jsxs)(`div`,{ref:b,className:t.cn(`relative inline-block`,e),style:p,...m,children:[(0,r.jsx)(`div`,{className:t.cn(g&&`waka-error-shake-animation`),style:g?{"--shake-distance":x.shake,"--shake-duration":`${S}ms`}:void 0,children:f},v),l&&g&&(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none rounded-inherit waka-error-flash-animation`,style:{backgroundColor:u,"--flash-opacity":x.flashOpacity,"--flash-duration":`${S}ms`}}),c&&g&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none waka-error-glitch-red`,style:{"--glitch-offset":x.glitchOffset,"--glitch-duration":`${S}ms`,mixBlendMode:`multiply`,opacity:.5},children:(0,r.jsx)(`div`,{style:{filter:`url(#waka-glitch-red-filter)`,opacity:.7},children:f})}),(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none waka-error-glitch-cyan`,style:{"--glitch-offset":x.glitchOffset,"--glitch-duration":`${S}ms`,mixBlendMode:`multiply`,opacity:.5},children:(0,r.jsx)(`div`,{style:{filter:`url(#waka-glitch-cyan-filter)`,opacity:.7},children:f})}),(0,r.jsx)(`div`,{className:`absolute inset-0 pointer-events-none waka-error-scanlines`,style:{background:`repeating-linear-gradient(
2
2
  0deg,
3
3
  transparent,
4
4
  transparent 2px,
@@ -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={sm:`max-w-sm`,md:`max-w-lg`,lg:`max-w-2xl`},o={default:`bg-muted text-muted-foreground`,primary:`bg-primary text-primary-foreground`,success:`bg-green-500 text-white`,warning:`bg-amber-500 text-white`};function s(e){return e?(typeof e==`string`?new Date(e):e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`}):``}function c({media:e,className:a}){let[o,s]=n.useState(!1),c=n.useRef(null);return e.type===`video`?(0,i.jsxs)(`div`,{className:t.cn(`relative group`,a),children:[(0,i.jsx)(`video`,{ref:c,src:e.src,poster:e.poster,className:`w-full h-full object-cover rounded-lg`,loop:!0,muted:!0,playsInline:!0,onPlay:()=>s(!0),onPause:()=>s(!1),children:(0,i.jsx)(`track`,{kind:`captions`})}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>{c.current&&(o?c.current.pause():c.current.play(),s(!o))},className:t.cn(`absolute inset-0 flex items-center justify-center`,`bg-black/30 opacity-0 group-hover:opacity-100 transition-opacity rounded-lg`,`focus:outline-none focus:opacity-100`),"aria-label":o?`Pause video`:`Play video`,children:(0,i.jsx)(`div`,{className:`bg-white/90 rounded-full p-3 shadow-lg`,children:o?(0,i.jsx)(r.Pause,{className:`h-6 w-6 text-gray-900`}):(0,i.jsx)(r.Play,{className:`h-6 w-6 text-gray-900`})})})]}):(0,i.jsx)(`img`,{src:e.src,alt:e.alt,className:t.cn(`w-full h-full object-cover rounded-lg`,a)})}function l({feature:e,isActive:n=!0,animation:a=`fadeIn`}){return(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col h-full`,!n&&`hidden`,a===`slideIn`?`animate-slideIn`:a===`fadeIn`?`animate-fadeIn`:``),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,i.jsxs)(`span`,{className:t.cn(`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium`,o[e.badgeVariant||`primary`]),children:[(0,i.jsx)(r.Sparkles,{className:`h-3 w-3`}),e.badgeText||`What's New`]}),e.version&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,i.jsx)(r.Tag,{className:`h-3 w-3`}),`v`,e.version]}),e.releaseDate&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,i.jsx)(r.Calendar,{className:`h-3 w-3`}),s(e.releaseDate)]})]}),e.media&&(0,i.jsx)(`div`,{className:`relative mb-4 aspect-video bg-muted rounded-lg overflow-hidden`,children:(0,i.jsx)(c,{media:e.media,className:`absolute inset-0`})}),(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsx)(`h3`,{className:`text-lg font-semibold mb-2`,children:e.title}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed`,children:e.description})]}),e.learnMoreUrl&&(0,i.jsxs)(`a`,{href:e.learnMoreUrl,target:`_blank`,rel:`noopener noreferrer`,className:t.cn(`inline-flex items-center gap-1.5 mt-4 text-sm font-medium text-primary`,`hover:underline focus:outline-none focus:underline`),children:[e.learnMoreText||`Learn more`,(0,i.jsx)(r.ExternalLink,{className:`h-3.5 w-3.5`})]}),(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={sm:`max-w-sm`,md:`max-w-lg`,lg:`max-w-2xl`},o={default:`bg-muted text-muted-foreground`,primary:`bg-primary text-primary-foreground`,success:`bg-green-500 text-white`,warning:`bg-amber-500 text-white`};function s(e){return e?(typeof e==`string`?new Date(e):e).toLocaleDateString(void 0,{year:`numeric`,month:`short`,day:`numeric`}):``}function c({media:e,className:a}){let[o,s]=n.useState(!1),c=n.useRef(null);return e.type===`video`?(0,i.jsxs)(`div`,{className:t.cn(`relative group`,a),children:[(0,i.jsx)(`video`,{ref:c,src:e.src,poster:e.poster,className:`w-full h-full object-cover rounded-lg`,loop:!0,muted:!0,playsInline:!0,onPlay:()=>s(!0),onPause:()=>s(!1),children:(0,i.jsx)(`track`,{kind:`captions`})}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>{c.current&&(o?c.current.pause():c.current.play(),s(!o))},className:t.cn(`absolute inset-0 flex items-center justify-center`,`bg-black/30 opacity-0 group-hover:opacity-100 transition-opacity rounded-lg`,`focus:outline-none focus:opacity-100`),"aria-label":o?`Pause video`:`Play video`,children:(0,i.jsx)(`div`,{className:`bg-white/90 rounded-full p-3 shadow-lg`,children:o?(0,i.jsx)(r.Pause,{className:`h-6 w-6 text-gray-900`}):(0,i.jsx)(r.Play,{className:`h-6 w-6 text-gray-900`})})})]}):(0,i.jsx)(`img`,{src:e.src,alt:e.alt,className:t.cn(`w-full h-full object-cover rounded-lg`,a)})}function l({feature:e,isActive:n=!0,animation:a=`fadeIn`}){return(0,i.jsxs)(`div`,{className:t.cn(`flex flex-col h-full`,!n&&`hidden`,a===`slideIn`?`animate-slideIn`:a===`fadeIn`?`animate-fadeIn`:``),children:[(0,i.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,i.jsxs)(`span`,{className:t.cn(`inline-flex items-center gap-1.5 px-2.5 py-1 rounded-full text-xs font-medium`,o[e.badgeVariant||`primary`]),children:[(0,i.jsx)(r.Sparkles,{className:`h-3 w-3`}),e.badgeText||`What's New`]}),e.version&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,i.jsx)(r.Tag,{className:`h-3 w-3`}),`v`,e.version]}),e.releaseDate&&(0,i.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs text-muted-foreground`,children:[(0,i.jsx)(r.Calendar,{className:`h-3 w-3`}),s(e.releaseDate)]})]}),e.media&&(0,i.jsx)(`div`,{className:`relative mb-4 aspect-video bg-muted rounded-lg overflow-hidden`,children:(0,i.jsx)(c,{media:e.media,className:`absolute inset-0`})}),(0,i.jsxs)(`div`,{className:`flex-1`,children:[(0,i.jsx)(`h3`,{className:`text-lg font-semibold mb-2`,children:e.title}),(0,i.jsx)(`p`,{className:`text-sm text-muted-foreground leading-relaxed`,children:e.description})]}),e.learnMoreUrl&&(0,i.jsxs)(`a`,{href:e.learnMoreUrl,target:`_blank`,rel:`noopener noreferrer`,className:t.cn(`inline-flex items-center gap-1.5 mt-4 text-sm font-medium text-primary`,`hover:underline focus:outline-none focus:underline`),children:[e.learnMoreText||`Learn more`,(0,i.jsx)(r.ExternalLink,{className:`h-3.5 w-3.5`})]}),(0,i.jsx)(`style`,{children:`
2
2
  @keyframes slideIn {
3
3
  from {
4
4
  transform: translateX(20px);
@@ -54,4 +54,4 @@
54
54
  .animate-bannerSlideIn {
55
55
  animation: bannerSlideIn 0.3s ease-out;
56
56
  }
57
- `})]}):null}function p({features:e,mode:t=`modal`,open:r=!1,onOpenChange:a,onFeatureView:o,onLearnMore:s,onDismiss:c,dismissText:l,showDots:u=!0,showArrows:p=!0,autoAdvance:m=!1,autoAdvanceInterval:h=5e3,closeOnOverlayClick:g=!0,closeOnEscape:_=!0,size:v=`md`,className:y,overlayClassName:b}){let[x,S]=n.useState(0);if(n.useEffect(()=>{S(0)},[e]),!e||e.length===0)return null;let C={features:e,open:r,onOpenChange:a,onFeatureView:o,onLearnMore:s,onDismiss:c,dismissText:l,showDots:u,showArrows:p,autoAdvance:m,autoAdvanceInterval:h,className:y,currentIndex:x,setCurrentIndex:S};return t===`banner`?(0,i.jsx)(f,{...C}):(0,i.jsx)(d,{...C,closeOnOverlayClick:g,closeOnEscape:_,size:v,overlayClassName:b})}function m({defaultOpen:e=!1,storageKey:t,features:r=[],currentVersion:i,onOpen:a,onClose:o}={}){let[s,c]=n.useState(e),[l,u]=n.useState(0),[d,f]=n.useState(!1);return n.useEffect(()=>{if(t&&typeof window<`u`)try{let e=localStorage.getItem(t);if(e){let t=JSON.parse(e);(i&&t.version===i||!i&&t.seen)&&f(!0)}}catch{}},[t,i]),{isOpen:s,open:n.useCallback(()=>{c(!0),a?.()},[a]),close:n.useCallback(()=>{c(!1),o?.()},[o]),toggle:n.useCallback(()=>{c(e=>{let t=!e;return t?a?.():o?.(),t})},[a,o]),onOpenChange:n.useCallback(e=>{c(e),e?a?.():o?.()},[a,o]),markAsSeen:n.useCallback(()=>{if(f(!0),t&&typeof window<`u`)try{let e=i?{seen:!0,version:i,timestamp:Date.now()}:{seen:!0,timestamp:Date.now()};localStorage.setItem(t,JSON.stringify(e))}catch{}},[t,i]),hasBeenSeen:d,currentIndex:l,setCurrentIndex:u,nextFeature:n.useCallback(()=>{u(e=>(e+1)%r.length)},[r.length]),previousFeature:n.useCallback(()=>{u(e=>e===0?r.length-1:e-1)},[r.length]),totalFeatures:r.length}}exports.default=p,exports.useFeatureAnnouncement=m;
57
+ `})]}):null}function p({features:e,mode:t=`modal`,open:r=!1,onOpenChange:a,onFeatureView:o,onLearnMore:s,onDismiss:c,dismissText:l,showDots:u=!0,showArrows:p=!0,autoAdvance:m=!1,autoAdvanceInterval:h=5e3,closeOnOverlayClick:g=!0,closeOnEscape:_=!0,size:v=`md`,className:y,overlayClassName:b}){let[x,S]=n.useState(0);if(n.useEffect(()=>{S(0)},[e]),!e||e.length===0)return null;let C={features:e,open:r,onOpenChange:a,onFeatureView:o,onLearnMore:s,onDismiss:c,dismissText:l,showDots:u,showArrows:p,autoAdvance:m,autoAdvanceInterval:h,className:y,currentIndex:x,setCurrentIndex:S};return t===`banner`?(0,i.jsx)(f,{...C}):(0,i.jsx)(d,{...C,closeOnOverlayClick:g,closeOnEscape:_,size:v,overlayClassName:b})}function m({defaultOpen:e=!1,storageKey:t,features:r=[],currentVersion:i,onOpen:a,onClose:o}={}){let[s,c]=n.useState(e),[l,u]=n.useState(0),[d,f]=n.useState(!1);return n.useEffect(()=>{if(t&&typeof window<`u`)try{let e=localStorage.getItem(t);if(e){let t=JSON.parse(e);(i&&t.version===i||!i&&t.seen)&&f(!0)}}catch{}},[t,i]),{isOpen:s,open:n.useCallback(()=>{c(!0),a?.()},[a]),close:n.useCallback(()=>{c(!1),o?.()},[o]),toggle:n.useCallback(()=>{c(e=>{let t=!e;return t?a?.():o?.(),t})},[a,o]),onOpenChange:n.useCallback(e=>{c(e),e?a?.():o?.()},[a,o]),markAsSeen:n.useCallback(()=>{if(f(!0),t&&typeof window<`u`)try{let e=i?{seen:!0,version:i,timestamp:Date.now()}:{seen:!0,timestamp:Date.now()};localStorage.setItem(t,JSON.stringify(e))}catch{}},[t,i]),hasBeenSeen:d,currentIndex:l,setCurrentIndex:u,nextFeature:n.useCallback(()=>{u(e=>(e+1)%r.length)},[r.length]),previousFeature:n.useCallback(()=>{u(e=>e===0?r.length-1:e-1)},[r.length]),totalFeatures:r.length}}exports.WakaFeatureAnnouncement=p,exports.default=p,exports.useFeatureAnnouncement=m;
@@ -426,4 +426,4 @@ function C({ defaultOpen: e = !1, storageKey: n, features: r = [], currentVersio
426
426
  };
427
427
  }
428
428
  //#endregion
429
- export { S as default, C as useFeatureAnnouncement };
429
+ export { S as WakaFeatureAnnouncement, S as default, C as useFeatureAnnouncement };
@@ -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(`../dropdown-menu/index.cjs.js`),a=require(`../input/index.cjs.js`),o=require(`../progress/index.cjs.js`),s=require(`../switch/index.cjs.js`),c=require(`../tooltip/index.cjs.js`);let l=require(`react`);l=e.__toESM(l);let u=require(`lucide-react`),d=require(`react/jsx-runtime`);var f={enabled:{label:`Enabled`,color:`bg-green-500`},disabled:{label:`Disabled`,color:`bg-gray-500`},percentage:{label:`Percentage`,color:`bg-blue-500`},segment:{label:`Segment`,color:`bg-purple-500`}};function p(e){return e.toLocaleDateString(`fr-FR`,{day:`2-digit`,month:`short`})}function m({flag:e,onToggle:m,onPercentageChange:h,onEdit:g,onDelete:_,onViewHistory:v,onDuplicate:y,readOnly:b=!1,compact:x=!1,className:S}){let[C,w]=l.useState(e.percentage||0),T=f[e.status],E=e=>{w(Math.min(100,Math.max(0,parseInt(e)||0)))};return x?(0,d.jsxs)(`div`,{className:t.cn(`flex items-center gap-3 p-2 border-b hover:bg-muted/30 transition-colors`,!e.enabled&&`opacity-60`,S),children:[(0,d.jsx)(u.Flag,{className:t.cn(`h-4 w-4 shrink-0`,e.enabled?`text-green-500`:`text-muted-foreground`)}),(0,d.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(`code`,{className:`font-medium text-sm truncate`,children:e.key}),e.environment&&(0,d.jsx)(n.Badge,{variant:`outline`,className:`text-xs`,children:e.environment})]})}),e.status===`percentage`&&(0,d.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[(0,d.jsx)(u.Percent,{className:`h-3 w-3 mr-1`}),e.percentage,`%`]}),e.status===`segment`&&e.segments&&(0,d.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[(0,d.jsx)(u.Users,{className:`h-3 w-3 mr-1`}),e.segments.length]}),(0,d.jsx)(s.Switch,{checked:e.enabled,onCheckedChange:m,disabled:b})]}):(0,d.jsx)(`div`,{className:t.cn(`border rounded-lg p-4 transition-all`,e.enabled?`bg-green-500/5 border-green-500/30`:`bg-muted/30`,S),children:(0,d.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,d.jsx)(`div`,{className:t.cn(`w-10 h-10 rounded-lg flex items-center justify-center shrink-0`,e.enabled?`bg-green-500/20`:`bg-muted`),children:(0,d.jsx)(u.Flag,{className:t.cn(`h-5 w-5`,e.enabled?`text-green-500`:`text-muted-foreground`)})}),(0,d.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,d.jsx)(`code`,{className:`font-semibold`,children:e.key}),(0,d.jsx)(n.Badge,{className:t.cn(`text-white text-xs`,T.color),children:T.label}),e.environment&&(0,d.jsx)(n.Badge,{variant:`outline`,className:`text-xs`,children:e.environment}),e.tags?.map(e=>(0,d.jsx)(n.Badge,{variant:`secondary`,className:`text-xs`,children:e},e))]}),(0,d.jsx)(`div`,{className:`text-sm font-medium mt-1`,children:e.name}),e.description&&(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e.description}),e.status===`percentage`&&(0,d.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,d.jsx)(u.Percent,{className:`h-4 w-4 text-muted-foreground`}),(0,d.jsx)(`div`,{className:`flex-1 max-w-xs`,children:(0,d.jsx)(o.Progress,{value:C,className:`h-2`})}),(0,d.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(a.Input,{type:`number`,min:0,max:100,value:C,onChange:e=>E(e.target.value),onBlur:()=>{C!==e.percentage&&h?.(C)},className:`w-16 h-8 text-center`,disabled:b}),(0,d.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`%`})]})]}),(0,d.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[C,`% of users will see this feature`]})]}),e.status===`segment`&&e.segments&&e.segments.length>0&&(0,d.jsxs)(`div`,{className:`mt-3`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground mb-2`,children:[(0,d.jsx)(u.Target,{className:`h-4 w-4`}),`Targeting `,e.segments.length,` segment`,e.segments.length>1?`s`:``]}),(0,d.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.segments.map(e=>(0,d.jsx)(c.TooltipProvider,{children:(0,d.jsxs)(c.Tooltip,{children:[(0,d.jsx)(c.TooltipTrigger,{children:(0,d.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[(0,d.jsx)(u.Users,{className:`h-3 w-3 mr-1`}),e.name]})}),e.description&&(0,d.jsx)(c.TooltipContent,{children:e.description})]})},e.id))})]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-4 mt-3 text-xs text-muted-foreground`,children:[(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Calendar,{className:`h-3 w-3`}),`Created `,p(e.createdAt),e.createdBy&&` by ${e.createdBy}`]}),(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Clock,{className:`h-3 w-3`}),`Updated `,p(e.updatedAt)]})]})]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,d.jsx)(s.Switch,{checked:e.enabled,onCheckedChange:m,disabled:b}),(0,d.jsxs)(i.DropdownMenu,{children:[(0,d.jsx)(i.DropdownMenuTrigger,{asChild:!0,children:(0,d.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0`,children:(0,d.jsx)(u.MoreVertical,{className:`h-4 w-4`})})}),(0,d.jsxs)(i.DropdownMenuContent,{align:`end`,children:[g&&(0,d.jsxs)(i.DropdownMenuItem,{onClick:g,children:[(0,d.jsx)(u.Edit,{className:`h-4 w-4 mr-2`}),`Edit`]}),v&&(0,d.jsxs)(i.DropdownMenuItem,{onClick:v,children:[(0,d.jsx)(u.History,{className:`h-4 w-4 mr-2`}),`View History`]}),y&&(0,d.jsxs)(i.DropdownMenuItem,{onClick:y,children:[(0,d.jsx)(u.Copy,{className:`h-4 w-4 mr-2`}),`Duplicate`]}),_&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.DropdownMenuSeparator,{}),(0,d.jsxs)(i.DropdownMenuItem,{onClick:_,className:`text-destructive`,children:[(0,d.jsx)(u.Trash2,{className:`h-4 w-4 mr-2`}),`Delete`]})]})]})]})]})]})})}var h=[{id:`1`,key:`new_checkout_flow`,name:`New Checkout Flow`,description:`Enable the redesigned checkout experience with improved UX`,status:`percentage`,enabled:!0,percentage:25,createdAt:new Date(Date.now()-720*36e5),updatedAt:new Date(Date.now()-48*36e5),createdBy:`product-team`,environment:`production`,tags:[`checkout`,`experiment`]},{id:`2`,key:`dark_mode_v2`,name:`Dark Mode V2`,description:`Updated dark mode with better contrast and accessibility`,status:`enabled`,enabled:!0,createdAt:new Date(Date.now()-1440*36e5),updatedAt:new Date(Date.now()-168*36e5),environment:`production`,tags:[`ui`,`accessibility`]},{id:`3`,key:`beta_features`,name:`Beta Features Access`,description:`Allow access to beta features for selected user segments`,status:`segment`,enabled:!0,segments:[{id:`s1`,name:`Beta Testers`,description:`Users who opted into beta program`},{id:`s2`,name:`Premium Users`,description:`Users with premium subscription`}],createdAt:new Date(Date.now()-2160*36e5),updatedAt:new Date(Date.now()-24*36e5),createdBy:`engineering`,environment:`production`},{id:`4`,key:`legacy_api`,name:`Legacy API Support`,description:`Maintain backward compatibility with v1 API`,status:`disabled`,enabled:!1,createdAt:new Date(Date.now()-4320*36e5),updatedAt:new Date(Date.now()-336*36e5),environment:`production`,tags:[`deprecated`]}];exports.WakaFeatureFlagRow=m,exports.defaultFeatureFlags=h;
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("../dropdown-menu/index.cjs.js"),a=require("../input/index.cjs.js"),o=require("../progress/index.cjs.js"),s=require("../switch/index.cjs.js"),c=require("../tooltip/index.cjs.js");let l=require("react");l=e.__toESM(l);let u=require("lucide-react"),d=require("react/jsx-runtime");var f={enabled:{label:`Enabled`,color:`bg-green-500`},disabled:{label:`Disabled`,color:`bg-gray-500`},percentage:{label:`Percentage`,color:`bg-blue-500`},segment:{label:`Segment`,color:`bg-purple-500`}};function p(e){return e.toLocaleDateString(`fr-FR`,{day:`2-digit`,month:`short`})}function m({flag:e,onToggle:m,onPercentageChange:h,onEdit:g,onDelete:_,onViewHistory:v,onDuplicate:y,readOnly:b=!1,compact:x=!1,className:S}){let[C,w]=l.useState(e.percentage||0),T=f[e.status],E=e=>{w(Math.min(100,Math.max(0,parseInt(e)||0)))};return x?(0,d.jsxs)(`div`,{className:t.cn(`flex items-center gap-3 p-2 border-b hover:bg-muted/30 transition-colors`,!e.enabled&&`opacity-60`,S),children:[(0,d.jsx)(u.Flag,{className:t.cn(`h-4 w-4 shrink-0`,e.enabled?`text-green-500`:`text-muted-foreground`)}),(0,d.jsx)(`div`,{className:`flex-1 min-w-0`,children:(0,d.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,d.jsx)(`code`,{className:`font-medium text-sm truncate`,children:e.key}),e.environment&&(0,d.jsx)(n.Badge,{variant:`outline`,className:`text-xs`,children:e.environment})]})}),e.status===`percentage`&&(0,d.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[(0,d.jsx)(u.Percent,{className:`h-3 w-3 mr-1`}),e.percentage,`%`]}),e.status===`segment`&&e.segments&&(0,d.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[(0,d.jsx)(u.Users,{className:`h-3 w-3 mr-1`}),e.segments.length]}),(0,d.jsx)(s.Switch,{checked:e.enabled,onCheckedChange:m,disabled:b})]}):(0,d.jsx)(`div`,{className:t.cn(`border rounded-lg p-4 transition-all`,e.enabled?`bg-green-500/5 border-green-500/30`:`bg-muted/30`,S),children:(0,d.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,d.jsx)(`div`,{className:t.cn(`w-10 h-10 rounded-lg flex items-center justify-center shrink-0`,e.enabled?`bg-green-500/20`:`bg-muted`),children:(0,d.jsx)(u.Flag,{className:t.cn(`h-5 w-5`,e.enabled?`text-green-500`:`text-muted-foreground`)})}),(0,d.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,d.jsx)(`code`,{className:`font-semibold`,children:e.key}),(0,d.jsx)(n.Badge,{className:t.cn(`text-white text-xs`,T.color),children:T.label}),e.environment&&(0,d.jsx)(n.Badge,{variant:`outline`,className:`text-xs`,children:e.environment}),e.tags?.map(e=>(0,d.jsx)(n.Badge,{variant:`secondary`,className:`text-xs`,children:e},e))]}),(0,d.jsx)(`div`,{className:`text-sm font-medium mt-1`,children:e.name}),e.description&&(0,d.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e.description}),e.status===`percentage`&&(0,d.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,d.jsx)(u.Percent,{className:`h-4 w-4 text-muted-foreground`}),(0,d.jsx)(`div`,{className:`flex-1 max-w-xs`,children:(0,d.jsx)(o.Progress,{value:C,className:`h-2`})}),(0,d.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(a.Input,{type:`number`,min:0,max:100,value:C,onChange:e=>E(e.target.value),onBlur:()=>{C!==e.percentage&&h?.(C)},className:`w-16 h-8 text-center`,disabled:b}),(0,d.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`%`})]})]}),(0,d.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[C,`% of users will see this feature`]})]}),e.status===`segment`&&e.segments&&e.segments.length>0&&(0,d.jsxs)(`div`,{className:`mt-3`,children:[(0,d.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground mb-2`,children:[(0,d.jsx)(u.Target,{className:`h-4 w-4`}),`Targeting `,e.segments.length,` segment`,e.segments.length>1?`s`:``]}),(0,d.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:e.segments.map(e=>(0,d.jsx)(c.TooltipProvider,{children:(0,d.jsxs)(c.Tooltip,{children:[(0,d.jsx)(c.TooltipTrigger,{children:(0,d.jsxs)(n.Badge,{variant:`secondary`,className:`text-xs`,children:[(0,d.jsx)(u.Users,{className:`h-3 w-3 mr-1`}),e.name]})}),e.description&&(0,d.jsx)(c.TooltipContent,{children:e.description})]})},e.id))})]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-4 mt-3 text-xs text-muted-foreground`,children:[(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Calendar,{className:`h-3 w-3`}),`Created `,p(e.createdAt),e.createdBy&&` by ${e.createdBy}`]}),(0,d.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,d.jsx)(u.Clock,{className:`h-3 w-3`}),`Updated `,p(e.updatedAt)]})]})]}),(0,d.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[(0,d.jsx)(s.Switch,{checked:e.enabled,onCheckedChange:m,disabled:b}),(0,d.jsxs)(i.DropdownMenu,{children:[(0,d.jsx)(i.DropdownMenuTrigger,{asChild:!0,children:(0,d.jsx)(r.Button,{variant:`ghost`,size:`sm`,className:`h-8 w-8 p-0`,children:(0,d.jsx)(u.MoreVertical,{className:`h-4 w-4`})})}),(0,d.jsxs)(i.DropdownMenuContent,{align:`end`,children:[g&&(0,d.jsxs)(i.DropdownMenuItem,{onClick:g,children:[(0,d.jsx)(u.Edit,{className:`h-4 w-4 mr-2`}),`Edit`]}),v&&(0,d.jsxs)(i.DropdownMenuItem,{onClick:v,children:[(0,d.jsx)(u.History,{className:`h-4 w-4 mr-2`}),`View History`]}),y&&(0,d.jsxs)(i.DropdownMenuItem,{onClick:y,children:[(0,d.jsx)(u.Copy,{className:`h-4 w-4 mr-2`}),`Duplicate`]}),_&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.DropdownMenuSeparator,{}),(0,d.jsxs)(i.DropdownMenuItem,{onClick:_,className:`text-destructive`,children:[(0,d.jsx)(u.Trash2,{className:`h-4 w-4 mr-2`}),`Delete`]})]})]})]})]})]})})}var h=[{id:`1`,key:`new_checkout_flow`,name:`New Checkout Flow`,description:`Enable the redesigned checkout experience with improved UX`,status:`percentage`,enabled:!0,percentage:25,createdAt:new Date(Date.now()-720*36e5),updatedAt:new Date(Date.now()-48*36e5),createdBy:`product-team`,environment:`production`,tags:[`checkout`,`experiment`]},{id:`2`,key:`dark_mode_v2`,name:`Dark Mode V2`,description:`Updated dark mode with better contrast and accessibility`,status:`enabled`,enabled:!0,createdAt:new Date(Date.now()-1440*36e5),updatedAt:new Date(Date.now()-168*36e5),environment:`production`,tags:[`ui`,`accessibility`]},{id:`3`,key:`beta_features`,name:`Beta Features Access`,description:`Allow access to beta features for selected user segments`,status:`segment`,enabled:!0,segments:[{id:`s1`,name:`Beta Testers`,description:`Users who opted into beta program`},{id:`s2`,name:`Premium Users`,description:`Users with premium subscription`}],createdAt:new Date(Date.now()-2160*36e5),updatedAt:new Date(Date.now()-24*36e5),createdBy:`engineering`,environment:`production`},{id:`4`,key:`legacy_api`,name:`Legacy API Support`,description:`Maintain backward compatibility with v1 API`,status:`disabled`,enabled:!1,createdAt:new Date(Date.now()-4320*36e5),updatedAt:new Date(Date.now()-336*36e5),environment:`production`,tags:[`deprecated`]}];exports.WakaFeatureFlagRow=m,exports.defaultFeatureFlags=h;
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`),n=require(`../button/index.cjs.js`),r=require(`../label/index.cjs.js`),i=require(`../progress/index.cjs.js`);let a=require(`react`);a=e.__toESM(a);let o=require(`lucide-react`),s=require(`react/jsx-runtime`);function c(e){if(e===0)return`0 Bytes`;let t=1024,n=[`Bytes`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/t**+r).toFixed(2))} ${n[r]}`}function l(e){let t=e.type;return t.startsWith(`image/`)?o.Image:t.includes(`pdf`)?o.FileText:t.includes(`spreadsheet`)||t.includes(`excel`)||t.includes(`csv`)?o.FileSpreadsheet:t.includes(`zip`)||t.includes(`archive`)||t.includes(`compressed`)?o.FileArchive:o.File}var u=a.forwardRef(({variant:e=`dropzone`,accept:u,maxSize:d=10*1024*1024,maxFiles:f=5,multiple:p=!1,onUpload:m,onComplete:h,onRemove:g,onError:_,showPreview:v=!0,showProgress:y=!0,disabled:b=!1,className:x,placeholder:S=`Glissez vos fichiers ici ou cliquez pour sélectionner`,label:C,description:w},T)=>{let[E,D]=a.useState([]),[O,k]=a.useState(!1),A=a.useRef(null),j=()=>`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,M=e=>d&&e.size>d?`Le fichier dépasse la taille maximale de ${c(d)}`:u&&!u.split(`,`).map(e=>e.trim()).some(t=>t.startsWith(`.`)?e.name.toLowerCase().endsWith(t.toLowerCase()):t.endsWith(`/*`)?e.type.startsWith(t.replace(`/*`,`/`)):e.type===t)?`Type de fichier non accepté. Types acceptés: ${u}`:null,N=async e=>{let t=Array.from(e),n=f-E.filter(e=>e.status!==`error`).length,r=t.slice(0,n);t.length>n&&_?.(`Nombre maximum de fichiers atteint (${f})`);let i=r.map(e=>({id:j(),file:e,progress:0,status:`pending`})),a=[];for(let e of i){let t=M(e.file);t&&(e.status=`error`,e.error=t,_?.(t,e.file)),a.push(e)}if(D(e=>[...e,...a]),m)for(let e of a.filter(e=>e.status===`pending`))try{D(t=>t.map(t=>t.id===e.id?{...t,status:`uploading`}:t));let t=await m(e.file,t=>{D(n=>n.map(n=>n.id===e.id?{...n,progress:t}:n))});D(n=>n.map(n=>n.id===e.id?{...n,status:`success`,progress:100,url:t}:n))}catch(t){let n=t instanceof Error?t.message:`Erreur d'upload`;D(t=>t.map(t=>t.id===e.id?{...t,status:`error`,error:n}:t)),_?.(n,e.file)}else D(e=>e.map(e=>a.some(t=>t.id===e.id)&&e.status===`pending`?{...e,status:`success`,progress:100}:e))};a.useEffect(()=>{E.length>0&&E.every(e=>e.status!==`pending`&&e.status!==`uploading`)&&h?.(E)},[E,h]);let P=e=>{if(e.preventDefault(),k(!1),b)return;let t=e.dataTransfer.files;t.length>0&&N(p?t:[t[0]])},F=e=>{let t=e.target.files;t&&t.length>0&&N(p?t:[t[0]]),e.target.value=``},I=e=>{D(t=>t.filter(t=>t.id!==e.id)),g?.(e)},L=()=>{b||A.current?.click()};return(0,s.jsxs)(`div`,{ref:T,className:`space-y-3`,children:[C&&(0,s.jsx)(r.Label,{children:C}),(0,s.jsx)(`input`,{ref:A,type:`file`,accept:u,multiple:p,onChange:F,className:`sr-only`,disabled:b}),e===`dropzone`&&(0,s.jsx)(`div`,{className:t.cn(`relative border-2 border-dashed rounded-lg p-6 transition-colors`,O&&`border-primary bg-primary/5`,b&&`opacity-50 cursor-not-allowed`,!b&&`cursor-pointer hover:border-primary/50`,x),onDragOver:e=>{e.preventDefault(),b||k(!0)},onDragLeave:()=>k(!1),onDrop:P,onClick:L,children:(0,s.jsxs)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:[(0,s.jsx)(o.Upload,{className:t.cn(`h-10 w-10 mb-3`,O?`text-primary`:`text-muted-foreground`)}),(0,s.jsx)(`p`,{className:`text-sm font-medium`,children:S}),w&&(0,s.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:w}),d&&(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`Taille max: `,c(d)]})]})}),e===`button`&&(0,s.jsxs)(n.Button,{variant:`outline`,disabled:b,onClick:L,className:x,children:[(0,s.jsx)(o.Upload,{className:`h-4 w-4 mr-2`}),S||`Sélectionner un fichier`]}),e===`inline`&&(0,s.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 p-2 border rounded-lg`,b&&`opacity-50 cursor-not-allowed`,!b&&`cursor-pointer hover:bg-muted/50`,x),onClick:L,children:[(0,s.jsx)(o.Upload,{className:`h-4 w-4 text-muted-foreground`}),(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:S||`Ajouter un fichier`})]}),E.length>0&&(0,s.jsx)(`div`,{className:`space-y-2`,children:E.map(e=>{let r=l(e.file),a=e.file.type.startsWith(`image/`);return(0,s.jsxs)(`div`,{className:t.cn(`flex items-center gap-3 p-2 rounded-lg border`,e.status===`error`&&`border-destructive bg-destructive/5`),children:[(0,s.jsx)(`div`,{className:`w-10 h-10 rounded flex items-center justify-center bg-muted overflow-hidden flex-shrink-0`,children:v&&a&&e.status!==`error`?(0,s.jsx)(`img`,{src:URL.createObjectURL(e.file),alt:e.file.name,className:`w-full h-full object-cover`}):(0,s.jsx)(r,{className:`h-5 w-5 text-muted-foreground`})}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.file.name}),(0,s.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,s.jsx)(`span`,{children:c(e.file.size)}),e.status===`error`&&(0,s.jsxs)(`span`,{className:`text-destructive flex items-center gap-1`,children:[(0,s.jsx)(o.AlertCircle,{className:`h-3 w-3`}),e.error]}),e.status===`success`&&(0,s.jsxs)(`span`,{className:`text-green-600 flex items-center gap-1`,children:[(0,s.jsx)(o.Check,{className:`h-3 w-3`}),`Uploadé`]})]}),y&&e.status===`uploading`&&(0,s.jsx)(i.Progress,{value:e.progress,className:`h-1 mt-1`})]}),(0,s.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8 flex-shrink-0`,onClick:t=>{t.stopPropagation(),I(e)},children:(0,s.jsx)(o.X,{className:`h-4 w-4`})})]},e.id)})})]})});u.displayName=`WakaFileUpload`,exports.default=u;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js"),n=require("../button/index.cjs.js"),r=require("../label/index.cjs.js"),i=require("../progress/index.cjs.js");let a=require("react");a=e.__toESM(a);let o=require("lucide-react"),s=require("react/jsx-runtime");function c(e){if(e===0)return`0 Bytes`;let t=1024,n=[`Bytes`,`KB`,`MB`,`GB`],r=Math.floor(Math.log(e)/Math.log(t));return`${parseFloat((e/t**r).toFixed(2))} ${n[r]}`}function l(e){let t=e.type;return t.startsWith(`image/`)?o.Image:t.includes(`pdf`)?o.FileText:t.includes(`spreadsheet`)||t.includes(`excel`)||t.includes(`csv`)?o.FileSpreadsheet:t.includes(`zip`)||t.includes(`archive`)||t.includes(`compressed`)?o.FileArchive:o.File}var u=a.forwardRef(({variant:e=`dropzone`,accept:u,maxSize:d=10*1024*1024,maxFiles:f=5,multiple:p=!1,onUpload:m,onComplete:h,onRemove:g,onError:_,showPreview:v=!0,showProgress:y=!0,disabled:b=!1,className:x,placeholder:S=`Glissez vos fichiers ici ou cliquez pour sélectionner`,label:C,description:w},T)=>{let[E,D]=a.useState([]),[O,k]=a.useState(!1),A=a.useRef(null),j=()=>`${Date.now()}-${Math.random().toString(36).slice(2,11)}`,M=e=>d&&e.size>d?`Le fichier dépasse la taille maximale de ${c(d)}`:u&&!u.split(`,`).map(e=>e.trim()).some(t=>t.startsWith(`.`)?e.name.toLowerCase().endsWith(t.toLowerCase()):t.endsWith(`/*`)?e.type.startsWith(t.replace(`/*`,`/`)):e.type===t)?`Type de fichier non accepté. Types acceptés: ${u}`:null,N=async e=>{let t=Array.from(e),n=f-E.filter(e=>e.status!==`error`).length,r=t.slice(0,n);t.length>n&&_?.(`Nombre maximum de fichiers atteint (${f})`);let i=r.map(e=>({id:j(),file:e,progress:0,status:`pending`})),a=[];for(let e of i){let t=M(e.file);t&&(e.status=`error`,e.error=t,_?.(t,e.file)),a.push(e)}if(D(e=>[...e,...a]),m)for(let e of a.filter(e=>e.status===`pending`))try{D(t=>t.map(t=>t.id===e.id?{...t,status:`uploading`}:t));let t=await m(e.file,t=>{D(n=>n.map(n=>n.id===e.id?{...n,progress:t}:n))});D(n=>n.map(n=>n.id===e.id?{...n,status:`success`,progress:100,url:t}:n))}catch(t){let n=t instanceof Error?t.message:`Erreur d'upload`;D(t=>t.map(t=>t.id===e.id?{...t,status:`error`,error:n}:t)),_?.(n,e.file)}else D(e=>e.map(e=>a.some(t=>t.id===e.id)&&e.status===`pending`?{...e,status:`success`,progress:100}:e))};a.useEffect(()=>{E.length>0&&E.every(e=>e.status!==`pending`&&e.status!==`uploading`)&&h?.(E)},[E,h]);let P=e=>{if(e.preventDefault(),k(!1),b)return;let t=e.dataTransfer.files;t.length>0&&N(p?t:[t[0]])},F=e=>{let t=e.target.files;t&&t.length>0&&N(p?t:[t[0]]),e.target.value=``},I=e=>{D(t=>t.filter(t=>t.id!==e.id)),g?.(e)},L=()=>{b||A.current?.click()};return(0,s.jsxs)(`div`,{ref:T,className:`space-y-3`,children:[C&&(0,s.jsx)(r.Label,{children:C}),(0,s.jsx)(`input`,{ref:A,type:`file`,accept:u,multiple:p,onChange:F,className:`sr-only`,disabled:b}),e===`dropzone`&&(0,s.jsx)(`div`,{className:t.cn(`relative border-2 border-dashed rounded-lg p-6 transition-colors`,O&&`border-primary bg-primary/5`,b&&`opacity-50 cursor-not-allowed`,!b&&`cursor-pointer hover:border-primary/50`,x),onDragOver:e=>{e.preventDefault(),b||k(!0)},onDragLeave:()=>k(!1),onDrop:P,onClick:L,children:(0,s.jsxs)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:[(0,s.jsx)(o.Upload,{className:t.cn(`h-10 w-10 mb-3`,O?`text-primary`:`text-muted-foreground`)}),(0,s.jsx)(`p`,{className:`text-sm font-medium`,children:S}),w&&(0,s.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:w}),d&&(0,s.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`Taille max: `,c(d)]})]})}),e===`button`&&(0,s.jsxs)(n.Button,{variant:`outline`,disabled:b,onClick:L,className:x,children:[(0,s.jsx)(o.Upload,{className:`h-4 w-4 mr-2`}),S||`Sélectionner un fichier`]}),e===`inline`&&(0,s.jsxs)(`div`,{className:t.cn(`flex items-center gap-2 p-2 border rounded-lg`,b&&`opacity-50 cursor-not-allowed`,!b&&`cursor-pointer hover:bg-muted/50`,x),onClick:L,children:[(0,s.jsx)(o.Upload,{className:`h-4 w-4 text-muted-foreground`}),(0,s.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:S||`Ajouter un fichier`})]}),E.length>0&&(0,s.jsx)(`div`,{className:`space-y-2`,children:E.map(e=>{let r=l(e.file),a=e.file.type.startsWith(`image/`);return(0,s.jsxs)(`div`,{className:t.cn(`flex items-center gap-3 p-2 rounded-lg border`,e.status===`error`&&`border-destructive bg-destructive/5`),children:[(0,s.jsx)(`div`,{className:`w-10 h-10 rounded flex items-center justify-center bg-muted overflow-hidden flex-shrink-0`,children:v&&a&&e.status!==`error`?(0,s.jsx)(`img`,{src:URL.createObjectURL(e.file),alt:e.file.name,className:`w-full h-full object-cover`}):(0,s.jsx)(r,{className:`h-5 w-5 text-muted-foreground`})}),(0,s.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,s.jsx)(`p`,{className:`text-sm font-medium truncate`,children:e.file.name}),(0,s.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,s.jsx)(`span`,{children:c(e.file.size)}),e.status===`error`&&(0,s.jsxs)(`span`,{className:`text-destructive flex items-center gap-1`,children:[(0,s.jsx)(o.AlertCircle,{className:`h-3 w-3`}),e.error]}),e.status===`success`&&(0,s.jsxs)(`span`,{className:`text-green-600 flex items-center gap-1`,children:[(0,s.jsx)(o.Check,{className:`h-3 w-3`}),`Uploadé`]})]}),y&&e.status===`uploading`&&(0,s.jsx)(i.Progress,{value:e.progress,className:`h-1 mt-1`})]}),(0,s.jsx)(n.Button,{variant:`ghost`,size:`icon`,className:`h-8 w-8 flex-shrink-0`,onClick:t=>{t.stopPropagation(),I(e)},children:(0,s.jsx)(o.X,{className:`h-4 w-4`})})]},e.id)})})]})});u.displayName=`WakaFileUpload`,exports.WakaFileUpload=u,exports.default=u;
@@ -16,7 +16,7 @@ function g(e) {
16
16
  "MB",
17
17
  "GB"
18
18
  ], r = Math.floor(Math.log(e) / Math.log(t));
19
- return `${parseFloat((e / t ** +r).toFixed(2))} ${n[r]}`;
19
+ return `${parseFloat((e / t ** r).toFixed(2))} ${n[r]}`;
20
20
  }
21
21
  function _(e) {
22
22
  let t = e.type;
@@ -198,4 +198,4 @@ var v = i.forwardRef(({ variant: s = "dropzone", accept: c, maxSize: l = 10 * 10
198
198
  });
199
199
  v.displayName = "WakaFileUpload";
200
200
  //#endregion
201
- export { v as default };
201
+ export { v as WakaFileUpload, v as default };
@@ -1 +1 @@
1
- "use client";"use client";const e=require(`../../_virtual/_rolldown/runtime.cjs.js`),t=require(`../../utils/cn.cjs.js`);let n=require(`react`);n=e.__toESM(n);let r=require(`lucide-react`),i=require(`react/jsx-runtime`);function a(e,t){let[r,i]=n.useState(!0),[a,o]=n.useState(!1),[s,c]=n.useState(0),l=n.useRef(0);return n.useEffect(()=>{let n=()=>{let n=window.scrollY;o(n>t),c(n),n<e?i(!0):n>l.current?i(!1):i(!0),l.current=n};return window.addEventListener(`scroll`,n,{passive:!0}),n(),()=>window.removeEventListener(`scroll`,n)},[e,t]),{isVisible:r,isCompact:a,scrollY:s}}function o({items:e,isOpen:r,onClose:a,renderItem:o}){return n.useEffect(()=>(r?document.body.style.overflow=`hidden`:document.body.style.overflow=``,()=>{document.body.style.overflow=``}),[r]),(0,i.jsxs)(`div`,{className:t.cn(`fixed inset-0 z-40 md:hidden`,`transition-all duration-300`,r?`visible`:`invisible pointer-events-none`),children:[(0,i.jsx)(`div`,{className:t.cn(`absolute inset-0 bg-background/80 backdrop-blur-sm`,`transition-opacity duration-300`,r?`opacity-100`:`opacity-0`),onClick:a}),(0,i.jsx)(`div`,{className:t.cn(`absolute top-16 left-4 right-4 bg-background border rounded-2xl shadow-2xl p-4`,`transition-all duration-300 ease-out`,r?`opacity-100 translate-y-0 scale-100`:`opacity-0 -translate-y-4 scale-95`),children:(0,i.jsx)(`nav`,{className:`flex flex-col gap-1`,children:e.map(e=>o?(0,i.jsx)(`div`,{onClick:a,children:o(e,!1)},e.id):(0,i.jsxs)(e.href?`a`:`button`,{href:e.href,onClick:()=>{e.onClick?.(),a()},disabled:e.disabled,className:t.cn(`flex items-center gap-3 px-4 py-3 rounded-xl text-left`,`transition-colors duration-200`,e.active?`bg-primary text-primary-foreground`:`hover:bg-muted text-foreground`,e.disabled&&`opacity-50 cursor-not-allowed`),children:[e.icon&&(0,i.jsx)(`span`,{className:`h-5 w-5`,children:e.icon}),(0,i.jsx)(`span`,{className:`font-medium`,children:e.label})]},e.id))})})]})}function s({items:e,logo:s,compactLogo:c,scrollThreshold:l=100,showThreshold:u=50,alwaysVisible:d=!1,renderItem:f,actions:p,compactActions:m,position:h=`top`,className:g}){let{isVisible:_,isCompact:v,scrollY:y}=a(u,l),[b,x]=n.useState(!1),S=d||_,C=v&&c?c:s,w=v&&m?m:p;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`header`,{className:t.cn(`fixed left-0 right-0 z-50`,`transition-all duration-500 ease-out`,h===`top`?`top-0`:`bottom-0`,S?`translate-y-0 opacity-100`:h===`top`?`-translate-y-full opacity-0`:`translate-y-full opacity-0`,g),children:(0,i.jsx)(`div`,{className:t.cn(`mx-auto transition-all duration-500 ease-out`,v?`max-w-2xl px-4 pt-3`:`max-w-7xl px-4 sm:px-6 lg:px-8 pt-4`),children:(0,i.jsxs)(`nav`,{className:t.cn(`relative flex items-center justify-between`,`transition-all duration-500 ease-out`,`bg-background/70 backdrop-blur-xl border shadow-lg`,v?`rounded-full px-4 py-2 gap-2`:`rounded-2xl px-6 py-4 gap-4`),children:[C&&(0,i.jsx)(`div`,{className:t.cn(`flex-shrink-0 transition-all duration-300`,v?`scale-90`:`scale-100`),children:C}),(0,i.jsx)(`div`,{className:t.cn(`hidden md:flex items-center transition-all duration-300`,v?`gap-1`:`gap-2`),children:e.map(e=>f?(0,i.jsx)(n.Fragment,{children:f(e,v)},e.id):(0,i.jsxs)(e.href?`a`:`button`,{href:e.href,onClick:e.onClick,disabled:e.disabled,className:t.cn(`relative flex items-center gap-2 font-medium`,`transition-all duration-300`,v?`px-3 py-1.5 text-sm rounded-full`:`px-4 py-2 text-sm rounded-xl`,e.active?`bg-primary/10 text-primary`:`text-muted-foreground hover:text-foreground hover:bg-muted`,e.disabled&&`opacity-50 cursor-not-allowed`),children:[e.icon&&(0,i.jsx)(`span`,{className:t.cn(`transition-all duration-300`,`h-4 w-4`),children:e.icon}),(0,i.jsx)(`span`,{className:t.cn(`transition-all duration-300`,v&&!e.active&&`hidden lg:inline`),children:e.label}),e.active&&(0,i.jsx)(`span`,{className:t.cn(`absolute bottom-0 left-1/2 -translate-x-1/2 bg-primary rounded-full`,`transition-all duration-300`,v?`w-1 h-1`:`w-6 h-0.5`)})]},e.id))}),(0,i.jsx)(`div`,{className:`hidden md:flex items-center gap-2 flex-shrink-0`,children:w}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>x(!b),className:t.cn(`md:hidden flex items-center justify-center`,`transition-all duration-300`,v?`h-8 w-8`:`h-10 w-10`,`rounded-full hover:bg-muted`),"aria-label":b?`Close menu`:`Open menu`,children:(0,i.jsx)(`span`,{className:t.cn(`transition-transform duration-300`,b&&`rotate-90`),children:b?(0,i.jsx)(r.X,{className:`h-5 w-5`}):(0,i.jsx)(r.Menu,{className:`h-5 w-5`})})})]})})}),(0,i.jsx)(o,{items:e,isOpen:b,onClose:()=>x(!1),renderItem:f})]})}function c(e){let[t,r]=n.useState(e);return{items:t,setItems:r,setActiveItem:n.useCallback(e=>{r(t=>t.map(t=>({...t,active:t.id===e})))},[]),updateItem:n.useCallback((e,t)=>{r(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),addItem:n.useCallback(e=>{r(t=>[...t,e])},[]),removeItem:n.useCallback(e=>{r(t=>t.filter(t=>t.id!==e))},[])}}exports.default=s,exports.useFloatingNav=c;
1
+ "use client";"use client";const e=require("../../_virtual/_rolldown/runtime.cjs.js"),t=require("../../utils/cn.cjs.js");let n=require("react");n=e.__toESM(n);let r=require("lucide-react"),i=require("react/jsx-runtime");function a(e,t){let[r,i]=n.useState(!0),[a,o]=n.useState(!1),[s,c]=n.useState(0),l=n.useRef(0);return n.useEffect(()=>{let n=()=>{let n=window.scrollY;o(n>t),c(n),n<e?i(!0):n>l.current?i(!1):i(!0),l.current=n};return window.addEventListener(`scroll`,n,{passive:!0}),n(),()=>window.removeEventListener(`scroll`,n)},[e,t]),{isVisible:r,isCompact:a,scrollY:s}}function o({items:e,isOpen:r,onClose:a,renderItem:o}){return n.useEffect(()=>(r?document.body.style.overflow=`hidden`:document.body.style.overflow=``,()=>{document.body.style.overflow=``}),[r]),(0,i.jsxs)(`div`,{className:t.cn(`fixed inset-0 z-40 md:hidden`,`transition-all duration-300`,r?`visible`:`invisible pointer-events-none`),children:[(0,i.jsx)(`div`,{className:t.cn(`absolute inset-0 bg-background/80 backdrop-blur-sm`,`transition-opacity duration-300`,r?`opacity-100`:`opacity-0`),onClick:a}),(0,i.jsx)(`div`,{className:t.cn(`absolute top-16 left-4 right-4 bg-background border rounded-2xl shadow-2xl p-4`,`transition-all duration-300 ease-out`,r?`opacity-100 translate-y-0 scale-100`:`opacity-0 -translate-y-4 scale-95`),children:(0,i.jsx)(`nav`,{className:`flex flex-col gap-1`,children:e.map(e=>o?(0,i.jsx)(`div`,{onClick:a,children:o(e,!1)},e.id):(0,i.jsxs)(e.href?`a`:`button`,{href:e.href,onClick:()=>{e.onClick?.(),a()},disabled:e.disabled,className:t.cn(`flex items-center gap-3 px-4 py-3 rounded-xl text-left`,`transition-colors duration-200`,e.active?`bg-primary text-primary-foreground`:`hover:bg-muted text-foreground`,e.disabled&&`opacity-50 cursor-not-allowed`),children:[e.icon&&(0,i.jsx)(`span`,{className:`h-5 w-5`,children:e.icon}),(0,i.jsx)(`span`,{className:`font-medium`,children:e.label})]},e.id))})})]})}function s({items:e,logo:s,compactLogo:c,scrollThreshold:l=100,showThreshold:u=50,alwaysVisible:d=!1,renderItem:f,actions:p,compactActions:m,position:h=`top`,className:g}){let{isVisible:_,isCompact:v,scrollY:y}=a(u,l),[b,x]=n.useState(!1),S=d||_,C=v&&c?c:s,w=v&&m?m:p;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`header`,{className:t.cn(`fixed left-0 right-0 z-50`,`transition-all duration-500 ease-out`,h===`top`?`top-0`:`bottom-0`,S?`translate-y-0 opacity-100`:h===`top`?`-translate-y-full opacity-0`:`translate-y-full opacity-0`,g),children:(0,i.jsx)(`div`,{className:t.cn(`mx-auto transition-all duration-500 ease-out`,v?`max-w-2xl px-4 pt-3`:`max-w-7xl px-4 sm:px-6 lg:px-8 pt-4`),children:(0,i.jsxs)(`nav`,{className:t.cn(`relative flex items-center justify-between`,`transition-all duration-500 ease-out`,`bg-background/70 backdrop-blur-xl border shadow-lg`,v?`rounded-full px-4 py-2 gap-2`:`rounded-2xl px-6 py-4 gap-4`),children:[C&&(0,i.jsx)(`div`,{className:t.cn(`flex-shrink-0 transition-all duration-300`,v?`scale-90`:`scale-100`),children:C}),(0,i.jsx)(`div`,{className:t.cn(`hidden md:flex items-center transition-all duration-300`,v?`gap-1`:`gap-2`),children:e.map(e=>f?(0,i.jsx)(n.Fragment,{children:f(e,v)},e.id):(0,i.jsxs)(e.href?`a`:`button`,{href:e.href,onClick:e.onClick,disabled:e.disabled,className:t.cn(`relative flex items-center gap-2 font-medium`,`transition-all duration-300`,v?`px-3 py-1.5 text-sm rounded-full`:`px-4 py-2 text-sm rounded-xl`,e.active?`bg-primary/10 text-primary`:`text-muted-foreground hover:text-foreground hover:bg-muted`,e.disabled&&`opacity-50 cursor-not-allowed`),children:[e.icon&&(0,i.jsx)(`span`,{className:t.cn(`transition-all duration-300`,`h-4 w-4`),children:e.icon}),(0,i.jsx)(`span`,{className:t.cn(`transition-all duration-300`,v&&!e.active&&`hidden lg:inline`),children:e.label}),e.active&&(0,i.jsx)(`span`,{className:t.cn(`absolute bottom-0 left-1/2 -translate-x-1/2 bg-primary rounded-full`,`transition-all duration-300`,v?`w-1 h-1`:`w-6 h-0.5`)})]},e.id))}),(0,i.jsx)(`div`,{className:`hidden md:flex items-center gap-2 flex-shrink-0`,children:w}),(0,i.jsx)(`button`,{type:`button`,onClick:()=>x(!b),className:t.cn(`md:hidden flex items-center justify-center`,`transition-all duration-300`,v?`h-8 w-8`:`h-10 w-10`,`rounded-full hover:bg-muted`),"aria-label":b?`Close menu`:`Open menu`,children:(0,i.jsx)(`span`,{className:t.cn(`transition-transform duration-300`,b&&`rotate-90`),children:b?(0,i.jsx)(r.X,{className:`h-5 w-5`}):(0,i.jsx)(r.Menu,{className:`h-5 w-5`})})})]})})}),(0,i.jsx)(o,{items:e,isOpen:b,onClose:()=>x(!1),renderItem:f})]})}function c(e){let[t,r]=n.useState(e);return{items:t,setItems:r,setActiveItem:n.useCallback(e=>{r(t=>t.map(t=>({...t,active:t.id===e})))},[]),updateItem:n.useCallback((e,t)=>{r(n=>n.map(n=>n.id===e?{...n,...t}:n))},[]),addItem:n.useCallback(e=>{r(t=>[...t,e])},[]),removeItem:n.useCallback(e=>{r(t=>t.filter(t=>t.id!==e))},[])}}exports.WakaFloatingNav=s,exports.default=s,exports.useFloatingNav=c;
@@ -136,4 +136,4 @@ function u(e) {
136
136
  };
137
137
  }
138
138
  //#endregion
139
- export { l as default, u as useFloatingNav };
139
+ export { l as WakaFloatingNav, l as default, u as useFloatingNav };
@@ -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({node:e,selected:n,draggable:a,onSelect:o,onDragStart:s,onDelete:c}){let l={start:`rounded-full bg-green-500 text-white`,end:`rounded-full bg-red-500 text-white`,action:`rounded-lg bg-blue-500 text-white`,decision:`rotate-45 bg-amber-500 text-white`,process:`rounded-lg bg-purple-500 text-white`,custom:`rounded-lg bg-muted border-2 border-dashed`},u=e.type===`decision`;return(0,i.jsxs)(`div`,{className:t.cn(`absolute cursor-pointer transition-all duration-200`,n&&`ring-2 ring-primary ring-offset-2`),style:{left:e.position.x,top:e.position.y,transform:`translate(-50%, -50%)`},onClick:o,children:[(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center min-w-[80px] min-h-[40px] px-4 py-2 shadow-lg`,l[e.type],a&&`cursor-grab active:cursor-grabbing`),onMouseDown:a?s:void 0,children:[a&&(0,i.jsx)(`div`,{className:`absolute -left-6 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,i.jsx)(r.GripVertical,{className:`h-4 w-4 text-muted-foreground`})}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,u&&`-rotate-45`),children:[e.icon,(0,i.jsx)(`span`,{className:`font-medium text-sm whitespace-nowrap`,children:e.label})]}),n&&c&&(0,i.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},className:`absolute -top-2 -right-2 h-5 w-5 rounded-full bg-destructive text-destructive-foreground flex items-center justify-center hover:scale-110 transition-transform`,children:(0,i.jsx)(r.Trash2,{className:`h-3 w-3`})}),(0,i.jsx)(`div`,{className:`absolute left-1/2 -top-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-x-1/2`}),(0,i.jsx)(`div`,{className:`absolute left-1/2 -bottom-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-x-1/2`}),(0,i.jsx)(`div`,{className:`absolute top-1/2 -left-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-y-1/2`}),(0,i.jsx)(`div`,{className:`absolute top-1/2 -right-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-y-1/2`})]}),e.description&&n&&(0,i.jsx)(`div`,{className:`absolute top-full left-1/2 -translate-x-1/2 mt-2 px-3 py-1.5 rounded-md bg-popover text-popover-foreground text-xs shadow-lg whitespace-nowrap z-10`,children:e.description})]})}function o({from:e,to:t,label:n,animated:r,color:a=`hsl(var(--primary))`}){let o=(e.x+t.x)/2,s=(e.y+t.y)/2,c=t.x-e.x,l=t.y-e.y,u=Math.abs(c)>Math.abs(l),d;return d=u?`M ${e.x} ${e.y} C ${o} ${e.y}, ${o} ${t.y}, ${t.x} ${t.y}`:`M ${e.x} ${e.y} C ${e.x} ${s}, ${t.x} ${s}, ${t.x} ${t.y}`,(0,i.jsxs)(`g`,{children:[(0,i.jsx)(`path`,{d,fill:`none`,stroke:`rgba(0,0,0,0.1)`,strokeWidth:4,strokeLinecap:`round`}),(0,i.jsx)(`path`,{d,fill:`none`,stroke:a,strokeWidth:2,strokeLinecap:`round`,className:r?`animate-dash`:``,strokeDasharray:r?`8 4`:`none`}),(0,i.jsx)(`polygon`,{points:`-6,-4 0,0 -6,4`,fill:a,transform:`translate(${t.x}, ${t.y}) rotate(${Math.atan2(l,c)*180/Math.PI})`}),n&&(0,i.jsx)(`text`,{x:o,y:s-8,textAnchor:`middle`,className:`fill-muted-foreground text-xs`,children:n}),(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({node:e,selected:n,draggable:a,onSelect:o,onDragStart:s,onDelete:c}){let l={start:`rounded-full bg-green-500 text-white`,end:`rounded-full bg-red-500 text-white`,action:`rounded-lg bg-blue-500 text-white`,decision:`rotate-45 bg-amber-500 text-white`,process:`rounded-lg bg-purple-500 text-white`,custom:`rounded-lg bg-muted border-2 border-dashed`},u=e.type===`decision`;return(0,i.jsxs)(`div`,{className:t.cn(`absolute cursor-pointer transition-all duration-200`,n&&`ring-2 ring-primary ring-offset-2`),style:{left:e.position.x,top:e.position.y,transform:`translate(-50%, -50%)`},onClick:o,children:[(0,i.jsxs)(`div`,{className:t.cn(`relative flex items-center justify-center min-w-[80px] min-h-[40px] px-4 py-2 shadow-lg`,l[e.type],a&&`cursor-grab active:cursor-grabbing`),onMouseDown:a?s:void 0,children:[a&&(0,i.jsx)(`div`,{className:`absolute -left-6 top-1/2 -translate-y-1/2 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,i.jsx)(r.GripVertical,{className:`h-4 w-4 text-muted-foreground`})}),(0,i.jsxs)(`div`,{className:t.cn(`flex items-center gap-2`,u&&`-rotate-45`),children:[e.icon,(0,i.jsx)(`span`,{className:`font-medium text-sm whitespace-nowrap`,children:e.label})]}),n&&c&&(0,i.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),c()},className:`absolute -top-2 -right-2 h-5 w-5 rounded-full bg-destructive text-destructive-foreground flex items-center justify-center hover:scale-110 transition-transform`,children:(0,i.jsx)(r.Trash2,{className:`h-3 w-3`})}),(0,i.jsx)(`div`,{className:`absolute left-1/2 -top-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-x-1/2`}),(0,i.jsx)(`div`,{className:`absolute left-1/2 -bottom-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-x-1/2`}),(0,i.jsx)(`div`,{className:`absolute top-1/2 -left-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-y-1/2`}),(0,i.jsx)(`div`,{className:`absolute top-1/2 -right-1 w-2 h-2 rounded-full bg-background border-2 border-primary -translate-y-1/2`})]}),e.description&&n&&(0,i.jsx)(`div`,{className:`absolute top-full left-1/2 -translate-x-1/2 mt-2 px-3 py-1.5 rounded-md bg-popover text-popover-foreground text-xs shadow-lg whitespace-nowrap z-10`,children:e.description})]})}function o({from:e,to:t,label:n,animated:r,color:a=`hsl(var(--primary))`}){let o=(e.x+t.x)/2,s=(e.y+t.y)/2,c=t.x-e.x,l=t.y-e.y,u=Math.abs(c)>Math.abs(l),d;return d=u?`M ${e.x} ${e.y} C ${o} ${e.y}, ${o} ${t.y}, ${t.x} ${t.y}`:`M ${e.x} ${e.y} C ${e.x} ${s}, ${t.x} ${s}, ${t.x} ${t.y}`,(0,i.jsxs)(`g`,{children:[(0,i.jsx)(`path`,{d,fill:`none`,stroke:`rgba(0,0,0,0.1)`,strokeWidth:4,strokeLinecap:`round`}),(0,i.jsx)(`path`,{d,fill:`none`,stroke:a,strokeWidth:2,strokeLinecap:`round`,className:r?`animate-dash`:``,strokeDasharray:r?`8 4`:`none`}),(0,i.jsx)(`polygon`,{points:`-6,-4 0,0 -6,4`,fill:a,transform:`translate(${t.x}, ${t.y}) rotate(${Math.atan2(l,c)*180/Math.PI})`}),n&&(0,i.jsx)(`text`,{x:o,y:s-8,textAnchor:`middle`,className:`fill-muted-foreground text-xs`,children:n}),(0,i.jsx)(`style`,{children:`
2
2
  @keyframes dash {
3
3
  to {
4
4
  stroke-dashoffset: -24;