@hanzo/ui-shadcn 5.7.2

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 (1583) hide show
  1. package/README.md +229 -0
  2. package/bin/cli.js +100 -0
  3. package/bin/create-registry.js +108 -0
  4. package/bin/mcp.js +403 -0
  5. package/bin/npx-registry-mcp.js +15 -0
  6. package/bin/registry-mcp-wrapper.sh +19 -0
  7. package/bin/registry-mcp.js +100 -0
  8. package/bin/start-mcp-server.sh +22 -0
  9. package/bin/test-mcp.sh +52 -0
  10. package/bin/update-registry.js +196 -0
  11. package/content/index.ts +26 -0
  12. package/dist/3d/button.js +2 -0
  13. package/dist/3d/button.mjs +2 -0
  14. package/dist/3d/card.js +2 -0
  15. package/dist/3d/card.mjs +2 -0
  16. package/dist/3d/carousel.js +2 -0
  17. package/dist/3d/carousel.mjs +2 -0
  18. package/dist/3d/grid.js +2 -0
  19. package/dist/3d/grid.mjs +2 -0
  20. package/dist/3d/index.js +2 -0
  21. package/dist/3d/index.mjs +2 -0
  22. package/dist/3d/marquee.js +2 -0
  23. package/dist/3d/marquee.mjs +2 -0
  24. package/dist/3d/pin.js +2 -0
  25. package/dist/3d/pin.mjs +2 -0
  26. package/dist/accordion.js +2 -0
  27. package/dist/accordion.mjs +2 -0
  28. package/dist/alert-dialog.js +2 -0
  29. package/dist/alert-dialog.mjs +2 -0
  30. package/dist/alert.js +2 -0
  31. package/dist/alert.mjs +2 -0
  32. package/dist/animation/animated-background.js +2 -0
  33. package/dist/animation/animated-background.mjs +2 -0
  34. package/dist/animation/animated-beam.js +2 -0
  35. package/dist/animation/animated-beam.mjs +2 -0
  36. package/dist/animation/animated-cursor.js +2 -0
  37. package/dist/animation/animated-cursor.mjs +2 -0
  38. package/dist/animation/animated-icon.js +3 -0
  39. package/dist/animation/animated-icon.mjs +3 -0
  40. package/dist/animation/animated-list.js +2 -0
  41. package/dist/animation/animated-list.mjs +2 -0
  42. package/dist/animation/animated-number.js +2 -0
  43. package/dist/animation/animated-number.mjs +2 -0
  44. package/dist/animation/animated-testimonials.js +2 -0
  45. package/dist/animation/animated-testimonials.mjs +2 -0
  46. package/dist/animation/animated-tooltip.js +2 -0
  47. package/dist/animation/animated-tooltip.mjs +2 -0
  48. package/dist/animation/apple-cards-carousel.js +2 -0
  49. package/dist/animation/apple-cards-carousel.mjs +2 -0
  50. package/dist/animation/apple-hello-effect.js +2 -0
  51. package/dist/animation/apple-hello-effect.mjs +2 -0
  52. package/dist/animation/index.js +3 -0
  53. package/dist/animation/index.mjs +3 -0
  54. package/dist/assets/ai-icons.d.ts +28 -0
  55. package/dist/assets/ai-icons.d.ts.map +1 -0
  56. package/dist/assets/ai-icons.js +60 -0
  57. package/dist/assets/crypto.d.ts +7 -0
  58. package/dist/assets/crypto.d.ts.map +1 -0
  59. package/dist/assets/crypto.js +4 -0
  60. package/dist/assets/file-type-icon.d.ts +7 -0
  61. package/dist/assets/file-type-icon.d.ts.map +1 -0
  62. package/dist/assets/file-type-icon.js +36 -0
  63. package/dist/assets/file.d.ts +5 -0
  64. package/dist/assets/file.d.ts.map +1 -0
  65. package/dist/assets/file.js +29 -0
  66. package/dist/assets/general.d.ts +220 -0
  67. package/dist/assets/general.d.ts.map +1 -0
  68. package/dist/assets/general.js +136 -0
  69. package/dist/assets/hanzo-logo.d.ts +4 -0
  70. package/dist/assets/hanzo-logo.d.ts.map +1 -0
  71. package/dist/assets/hanzo-logo.js +3 -0
  72. package/dist/assets/index.d.ts +7 -0
  73. package/dist/assets/index.d.ts.map +1 -0
  74. package/dist/assets/index.js +23 -0
  75. package/dist/assets/llm-provider.d.ts +64 -0
  76. package/dist/assets/llm-provider.d.ts.map +1 -0
  77. package/dist/assets/llm-provider.js +90 -0
  78. package/dist/auth/index.js +3 -0
  79. package/dist/auth/index.mjs +3 -0
  80. package/dist/avatar.js +2 -0
  81. package/dist/avatar.mjs +2 -0
  82. package/dist/badge.js +2 -0
  83. package/dist/badge.mjs +2 -0
  84. package/dist/billing/index.js +3 -0
  85. package/dist/billing/index.mjs +3 -0
  86. package/dist/blocks/index.js +3 -0
  87. package/dist/blocks/index.mjs +3 -0
  88. package/dist/breadcrumb.js +2 -0
  89. package/dist/breadcrumb.mjs +2 -0
  90. package/dist/calendar-ext/index.js +2 -0
  91. package/dist/calendar-ext/index.mjs +2 -0
  92. package/dist/calendar.js +2 -0
  93. package/dist/calendar.mjs +2 -0
  94. package/dist/carousel.js +2 -0
  95. package/dist/carousel.mjs +2 -0
  96. package/dist/charts/index.js +8 -0
  97. package/dist/charts/index.mjs +8 -0
  98. package/dist/checkbox.js +2 -0
  99. package/dist/checkbox.mjs +2 -0
  100. package/dist/code/block.js +3 -0
  101. package/dist/code/block.mjs +3 -0
  102. package/dist/code/compare.js +7 -0
  103. package/dist/code/compare.mjs +7 -0
  104. package/dist/code/diff.js +13 -0
  105. package/dist/code/diff.mjs +13 -0
  106. package/dist/code/editor.js +2 -0
  107. package/dist/code/editor.mjs +2 -0
  108. package/dist/code/explorer.js +2 -0
  109. package/dist/code/explorer.mjs +2 -0
  110. package/dist/code/index.js +63 -0
  111. package/dist/code/index.mjs +63 -0
  112. package/dist/code/preview.js +43 -0
  113. package/dist/code/preview.mjs +43 -0
  114. package/dist/code/snippet.js +3 -0
  115. package/dist/code/snippet.mjs +3 -0
  116. package/dist/code/tabs.js +2 -0
  117. package/dist/code/tabs.mjs +2 -0
  118. package/dist/code/terminal.js +4 -0
  119. package/dist/code/terminal.mjs +4 -0
  120. package/dist/collapsible.js +2 -0
  121. package/dist/collapsible.mjs +2 -0
  122. package/dist/command.js +2 -0
  123. package/dist/command.mjs +2 -0
  124. package/dist/components/cal-embed.d.ts +11 -0
  125. package/dist/components/cal-embed.d.ts.map +1 -0
  126. package/dist/components/cal-embed.js +38 -0
  127. package/dist/components/index.d.ts +3 -0
  128. package/dist/components/index.d.ts.map +1 -0
  129. package/dist/components/index.js +7 -0
  130. package/dist/context-menu.js +2 -0
  131. package/dist/context-menu.mjs +2 -0
  132. package/dist/dash/crud.js +2 -0
  133. package/dist/dash/crud.mjs +2 -0
  134. package/dist/dash/form.js +2 -0
  135. package/dist/dash/form.mjs +2 -0
  136. package/dist/dash/header.js +2 -0
  137. package/dist/dash/header.mjs +2 -0
  138. package/dist/dash/index.js +3 -0
  139. package/dist/dash/index.mjs +3 -0
  140. package/dist/dash/layout.js +2 -0
  141. package/dist/dash/layout.mjs +2 -0
  142. package/dist/dash/sidebar.js +3 -0
  143. package/dist/dash/sidebar.mjs +3 -0
  144. package/dist/dash/table.js +2 -0
  145. package/dist/dash/table.mjs +2 -0
  146. package/dist/desktop/hooks.js +2 -0
  147. package/dist/desktop/hooks.mjs +2 -0
  148. package/dist/desktop/index.js +2 -0
  149. package/dist/desktop/index.mjs +2 -0
  150. package/dist/desktop/spotlight.js +2 -0
  151. package/dist/desktop/spotlight.mjs +2 -0
  152. package/dist/desktop/window.js +2 -0
  153. package/dist/desktop/window.mjs +2 -0
  154. package/dist/device/index.js +2 -0
  155. package/dist/device/index.mjs +1 -0
  156. package/dist/dialog.js +2 -0
  157. package/dist/dialog.mjs +2 -0
  158. package/dist/dock/basic.js +2 -0
  159. package/dist/dock/basic.mjs +2 -0
  160. package/dist/dock/index.js +2 -0
  161. package/dist/dock/index.mjs +2 -0
  162. package/dist/dock/limelight-nav.js +2 -0
  163. package/dist/dock/limelight-nav.mjs +2 -0
  164. package/dist/dock/macos.js +2 -0
  165. package/dist/dock/macos.mjs +2 -0
  166. package/dist/dock/menu.js +2 -0
  167. package/dist/dock/menu.mjs +2 -0
  168. package/dist/dock/message.js +2 -0
  169. package/dist/dock/message.mjs +2 -0
  170. package/dist/drawer.js +2 -0
  171. package/dist/drawer.mjs +2 -0
  172. package/dist/dropdown-menu.js +2 -0
  173. package/dist/dropdown-menu.mjs +2 -0
  174. package/dist/finance/AdvancedChart.js +3 -0
  175. package/dist/finance/AdvancedChart.mjs +3 -0
  176. package/dist/finance/CompanyProfile.js +3 -0
  177. package/dist/finance/CompanyProfile.mjs +3 -0
  178. package/dist/finance/CryptoScreener.js +3 -0
  179. package/dist/finance/CryptoScreener.mjs +3 -0
  180. package/dist/finance/Financials.js +3 -0
  181. package/dist/finance/Financials.mjs +3 -0
  182. package/dist/finance/ForexScreener.js +3 -0
  183. package/dist/finance/ForexScreener.mjs +3 -0
  184. package/dist/finance/MarketOverview.js +3 -0
  185. package/dist/finance/MarketOverview.mjs +3 -0
  186. package/dist/finance/NewsTimeline.js +3 -0
  187. package/dist/finance/NewsTimeline.mjs +3 -0
  188. package/dist/finance/OrderEntry.js +2 -0
  189. package/dist/finance/OrderEntry.mjs +2 -0
  190. package/dist/finance/OrdersHistory.js +2 -0
  191. package/dist/finance/OrdersHistory.mjs +2 -0
  192. package/dist/finance/PositionsList.js +2 -0
  193. package/dist/finance/PositionsList.mjs +2 -0
  194. package/dist/finance/StockScreener.js +3 -0
  195. package/dist/finance/StockScreener.mjs +3 -0
  196. package/dist/finance/SymbolInfo.js +3 -0
  197. package/dist/finance/SymbolInfo.mjs +3 -0
  198. package/dist/finance/TechnicalAnalysis.js +3 -0
  199. package/dist/finance/TechnicalAnalysis.mjs +3 -0
  200. package/dist/finance/TickerTape.js +3 -0
  201. package/dist/finance/TickerTape.mjs +3 -0
  202. package/dist/finance/TradingPanel.js +2 -0
  203. package/dist/finance/TradingPanel.mjs +2 -0
  204. package/dist/finance/index.js +3 -0
  205. package/dist/finance/index.mjs +3 -0
  206. package/dist/form/index.js +2 -0
  207. package/dist/form/index.mjs +2 -0
  208. package/dist/form.js +2 -0
  209. package/dist/form.mjs +2 -0
  210. package/dist/frameworks/core/index.d.ts +4 -0
  211. package/dist/frameworks/core/index.d.ts.map +1 -0
  212. package/dist/frameworks/core/index.js +5 -0
  213. package/dist/frameworks/core/styles.d.ts +12 -0
  214. package/dist/frameworks/core/styles.d.ts.map +1 -0
  215. package/dist/frameworks/core/styles.js +11 -0
  216. package/dist/frameworks/core/types.d.ts +17 -0
  217. package/dist/frameworks/core/types.d.ts.map +1 -0
  218. package/dist/frameworks/core/types.js +11 -0
  219. package/dist/frameworks/core/utils/index.d.ts +19 -0
  220. package/dist/frameworks/core/utils/index.d.ts.map +1 -0
  221. package/dist/frameworks/core/utils/index.js +49 -0
  222. package/dist/frameworks/react/components/button.d.ts +8 -0
  223. package/dist/frameworks/react/components/button.d.ts.map +1 -0
  224. package/dist/frameworks/react/components/button.js +8 -0
  225. package/dist/frameworks/react/components/index.d.ts +2 -0
  226. package/dist/frameworks/react/components/index.d.ts.map +1 -0
  227. package/dist/frameworks/react/components/index.js +4 -0
  228. package/dist/frameworks/react/hooks/index.d.ts +2 -0
  229. package/dist/frameworks/react/hooks/index.d.ts.map +1 -0
  230. package/dist/frameworks/react/hooks/index.js +5 -0
  231. package/dist/frameworks/react/index.d.ts +5 -0
  232. package/dist/frameworks/react/index.d.ts.map +1 -0
  233. package/dist/frameworks/react/index.js +7 -0
  234. package/dist/frameworks/react/utils/index.d.ts +2 -0
  235. package/dist/frameworks/react/utils/index.d.ts.map +1 -0
  236. package/dist/frameworks/react/utils/index.js +2 -0
  237. package/dist/frameworks/react-native/components.d.ts +17 -0
  238. package/dist/frameworks/react-native/components.d.ts.map +1 -0
  239. package/dist/frameworks/react-native/components.js +17 -0
  240. package/dist/frameworks/react-native/hooks.d.ts +10 -0
  241. package/dist/frameworks/react-native/hooks.d.ts.map +1 -0
  242. package/dist/frameworks/react-native/hooks.js +9 -0
  243. package/dist/frameworks/react-native/index.d.ts +5 -0
  244. package/dist/frameworks/react-native/index.d.ts.map +1 -0
  245. package/dist/frameworks/react-native/index.js +7 -0
  246. package/dist/frameworks/react-native/utils.d.ts +7 -0
  247. package/dist/frameworks/react-native/utils.d.ts.map +1 -0
  248. package/dist/frameworks/react-native/utils.js +9 -0
  249. package/dist/frameworks/svelte/components.d.ts +15 -0
  250. package/dist/frameworks/svelte/components.d.ts.map +1 -0
  251. package/dist/frameworks/svelte/components.js +16 -0
  252. package/dist/frameworks/svelte/index.d.ts +5 -0
  253. package/dist/frameworks/svelte/index.d.ts.map +1 -0
  254. package/dist/frameworks/svelte/index.js +7 -0
  255. package/dist/frameworks/svelte/stores.d.ts +13 -0
  256. package/dist/frameworks/svelte/stores.d.ts.map +1 -0
  257. package/dist/frameworks/svelte/stores.js +9 -0
  258. package/dist/frameworks/svelte/utils.d.ts +7 -0
  259. package/dist/frameworks/svelte/utils.d.ts.map +1 -0
  260. package/dist/frameworks/svelte/utils.js +8 -0
  261. package/dist/frameworks/vue/components.d.ts +15 -0
  262. package/dist/frameworks/vue/components.d.ts.map +1 -0
  263. package/dist/frameworks/vue/components.js +16 -0
  264. package/dist/frameworks/vue/composables.d.ts +16 -0
  265. package/dist/frameworks/vue/composables.d.ts.map +1 -0
  266. package/dist/frameworks/vue/composables.js +14 -0
  267. package/dist/frameworks/vue/index.d.ts +5 -0
  268. package/dist/frameworks/vue/index.d.ts.map +1 -0
  269. package/dist/frameworks/vue/index.js +7 -0
  270. package/dist/frameworks/vue/utils.d.ts +7 -0
  271. package/dist/frameworks/vue/utils.d.ts.map +1 -0
  272. package/dist/frameworks/vue/utils.js +8 -0
  273. package/dist/helpers/file.d.ts +7 -0
  274. package/dist/helpers/file.d.ts.map +1 -0
  275. package/dist/helpers/file.js +30 -0
  276. package/dist/helpers/memoization.d.ts +9 -0
  277. package/dist/helpers/memoization.d.ts.map +1 -0
  278. package/dist/helpers/memoization.js +24 -0
  279. package/dist/hover-card.js +2 -0
  280. package/dist/hover-card.mjs +2 -0
  281. package/dist/index.js +193 -0
  282. package/dist/index.mjs +193 -0
  283. package/dist/input-otp.js +2 -0
  284. package/dist/input-otp.mjs +2 -0
  285. package/dist/kanban/index.js +2 -0
  286. package/dist/kanban/index.mjs +2 -0
  287. package/dist/lib/utils.js +1 -0
  288. package/dist/lib/utils.mjs +1 -0
  289. package/dist/mermaid/index.js +2 -0
  290. package/dist/mermaid/index.mjs +2 -0
  291. package/dist/models/index.js +35 -0
  292. package/dist/models/index.mjs +35 -0
  293. package/dist/navigation/hanzo-shell.js +3 -0
  294. package/dist/navigation/hanzo-shell.mjs +3 -0
  295. package/dist/navigation/index.js +3 -0
  296. package/dist/navigation/index.mjs +3 -0
  297. package/dist/navigation-menu.js +2 -0
  298. package/dist/navigation-menu.mjs +2 -0
  299. package/dist/network/index.js +3 -0
  300. package/dist/network/index.mjs +3 -0
  301. package/dist/pattern/grid-pattern.js +11 -0
  302. package/dist/pattern/grid-pattern.mjs +11 -0
  303. package/dist/pattern/index.js +11 -0
  304. package/dist/pattern/index.mjs +11 -0
  305. package/dist/popover.js +2 -0
  306. package/dist/popover.mjs +2 -0
  307. package/dist/primitives/accordion.d.ts +27 -0
  308. package/dist/primitives/accordion.d.ts.map +1 -0
  309. package/dist/primitives/accordion.js +12 -0
  310. package/dist/primitives/action-button.d.ts +10 -0
  311. package/dist/primitives/action-button.d.ts.map +1 -0
  312. package/dist/primitives/action-button.js +14 -0
  313. package/dist/primitives/alert-dialog.d.ts +57 -0
  314. package/dist/primitives/alert-dialog.d.ts.map +1 -0
  315. package/dist/primitives/alert-dialog.js +25 -0
  316. package/dist/primitives/alert.d.ts +11 -0
  317. package/dist/primitives/alert.d.ts.map +1 -0
  318. package/dist/primitives/alert.js +32 -0
  319. package/dist/primitives/apply-typography.d.ts +8 -0
  320. package/dist/primitives/apply-typography.d.ts.map +1 -0
  321. package/dist/primitives/apply-typography.js +36 -0
  322. package/dist/primitives/aspect-ratio.d.ts +4 -0
  323. package/dist/primitives/aspect-ratio.d.ts.map +1 -0
  324. package/dist/primitives/aspect-ratio.js +4 -0
  325. package/dist/primitives/avatar.d.ts +25 -0
  326. package/dist/primitives/avatar.d.ts.map +1 -0
  327. package/dist/primitives/avatar.js +10 -0
  328. package/dist/primitives/badge.d.ts +11 -0
  329. package/dist/primitives/badge.d.ts.map +1 -0
  330. package/dist/primitives/badge.js +28 -0
  331. package/dist/primitives/breadcrumb.d.ts +51 -0
  332. package/dist/primitives/breadcrumb.d.ts.map +1 -0
  333. package/dist/primitives/breadcrumb.js +22 -0
  334. package/dist/primitives/breakpoint-indicator.d.ts +4 -0
  335. package/dist/primitives/breakpoint-indicator.d.ts.map +1 -0
  336. package/dist/primitives/breakpoint-indicator.js +7 -0
  337. package/dist/primitives/button-group.d.ts +12 -0
  338. package/dist/primitives/button-group.d.ts.map +1 -0
  339. package/dist/primitives/button-group.js +28 -0
  340. package/dist/primitives/button.d.ts +14 -0
  341. package/dist/primitives/button.d.ts.map +1 -0
  342. package/dist/primitives/button.js +41 -0
  343. package/dist/primitives/cal-embed.d.ts +11 -0
  344. package/dist/primitives/cal-embed.d.ts.map +1 -0
  345. package/dist/primitives/cal-embed.js +38 -0
  346. package/dist/primitives/calendar.d.ts +11 -0
  347. package/dist/primitives/calendar.d.ts.map +1 -0
  348. package/dist/primitives/calendar.js +58 -0
  349. package/dist/primitives/card.d.ts +10 -0
  350. package/dist/primitives/card.d.ts.map +1 -0
  351. package/dist/primitives/card.js +24 -0
  352. package/dist/primitives/carousel.d.ts +19 -0
  353. package/dist/primitives/carousel.d.ts.map +1 -0
  354. package/dist/primitives/carousel.js +95 -0
  355. package/dist/primitives/chart.d.ts +41 -0
  356. package/dist/primitives/chart.d.ts.map +1 -0
  357. package/dist/primitives/chart.js +128 -0
  358. package/dist/primitives/charts/area/chart-area-axes.d.ts +3 -0
  359. package/dist/primitives/charts/area/chart-area-axes.d.ts.map +1 -0
  360. package/dist/primitives/charts/area/chart-area-axes.js +31 -0
  361. package/dist/primitives/charts/area/chart-area-default.d.ts +3 -0
  362. package/dist/primitives/charts/area/chart-area-default.d.ts.map +1 -0
  363. package/dist/primitives/charts/area/chart-area-default.js +27 -0
  364. package/dist/primitives/charts/area/chart-area-gradient.d.ts +3 -0
  365. package/dist/primitives/charts/area/chart-area-gradient.d.ts.map +1 -0
  366. package/dist/primitives/charts/area/chart-area-gradient.js +31 -0
  367. package/dist/primitives/charts/area/chart-area-icons.d.ts +3 -0
  368. package/dist/primitives/charts/area/chart-area-icons.d.ts.map +1 -0
  369. package/dist/primitives/charts/area/chart-area-icons.js +33 -0
  370. package/dist/primitives/charts/area/chart-area-interactive.d.ts +3 -0
  371. package/dist/primitives/charts/area/chart-area-interactive.d.ts.map +1 -0
  372. package/dist/primitives/charts/area/chart-area-interactive.js +143 -0
  373. package/dist/primitives/charts/area/chart-area-legend.d.ts +3 -0
  374. package/dist/primitives/charts/area/chart-area-legend.d.ts.map +1 -0
  375. package/dist/primitives/charts/area/chart-area-legend.js +31 -0
  376. package/dist/primitives/charts/area/chart-area-linear.d.ts +3 -0
  377. package/dist/primitives/charts/area/chart-area-linear.d.ts.map +1 -0
  378. package/dist/primitives/charts/area/chart-area-linear.js +27 -0
  379. package/dist/primitives/charts/area/chart-area-stacked-expand.d.ts +3 -0
  380. package/dist/primitives/charts/area/chart-area-stacked-expand.d.ts.map +1 -0
  381. package/dist/primitives/charts/area/chart-area-stacked-expand.js +36 -0
  382. package/dist/primitives/charts/area/chart-area-stacked.d.ts +3 -0
  383. package/dist/primitives/charts/area/chart-area-stacked.d.ts.map +1 -0
  384. package/dist/primitives/charts/area/chart-area-stacked.js +31 -0
  385. package/dist/primitives/charts/area/chart-area-step.d.ts +3 -0
  386. package/dist/primitives/charts/area/chart-area-step.d.ts.map +1 -0
  387. package/dist/primitives/charts/area/chart-area-step.js +28 -0
  388. package/dist/primitives/charts/area/index.d.ts +11 -0
  389. package/dist/primitives/charts/area/index.d.ts.map +1 -0
  390. package/dist/primitives/charts/area/index.js +11 -0
  391. package/dist/primitives/charts/bar/chart-bar-active.d.ts +3 -0
  392. package/dist/primitives/charts/bar/chart-bar-active.d.ts.map +1 -0
  393. package/dist/primitives/charts/bar/chart-bar-active.js +44 -0
  394. package/dist/primitives/charts/bar/chart-bar-default.d.ts +3 -0
  395. package/dist/primitives/charts/bar/chart-bar-default.d.ts.map +1 -0
  396. package/dist/primitives/charts/bar/chart-bar-default.js +24 -0
  397. package/dist/primitives/charts/bar/chart-bar-horizontal.d.ts +3 -0
  398. package/dist/primitives/charts/bar/chart-bar-horizontal.d.ts.map +1 -0
  399. package/dist/primitives/charts/bar/chart-bar-horizontal.js +26 -0
  400. package/dist/primitives/charts/bar/chart-bar-interactive.d.ts +3 -0
  401. package/dist/primitives/charts/bar/chart-bar-interactive.d.ts.map +1 -0
  402. package/dist/primitives/charts/bar/chart-bar-interactive.js +139 -0
  403. package/dist/primitives/charts/bar/chart-bar-label-custom.d.ts +3 -0
  404. package/dist/primitives/charts/bar/chart-bar-label-custom.d.ts.map +1 -0
  405. package/dist/primitives/charts/bar/chart-bar-label-custom.js +33 -0
  406. package/dist/primitives/charts/bar/chart-bar-label.d.ts +3 -0
  407. package/dist/primitives/charts/bar/chart-bar-label.d.ts.map +1 -0
  408. package/dist/primitives/charts/bar/chart-bar-label.js +26 -0
  409. package/dist/primitives/charts/bar/chart-bar-mixed.d.ts +3 -0
  410. package/dist/primitives/charts/bar/chart-bar-mixed.d.ts.map +1 -0
  411. package/dist/primitives/charts/bar/chart-bar-mixed.js +44 -0
  412. package/dist/primitives/charts/bar/chart-bar-multiple.d.ts +3 -0
  413. package/dist/primitives/charts/bar/chart-bar-multiple.d.ts.map +1 -0
  414. package/dist/primitives/charts/bar/chart-bar-multiple.js +28 -0
  415. package/dist/primitives/charts/bar/chart-bar-negative.d.ts +3 -0
  416. package/dist/primitives/charts/bar/chart-bar-negative.d.ts.map +1 -0
  417. package/dist/primitives/charts/bar/chart-bar-negative.js +25 -0
  418. package/dist/primitives/charts/bar/chart-bar-stacked.d.ts +3 -0
  419. package/dist/primitives/charts/bar/chart-bar-stacked.d.ts.map +1 -0
  420. package/dist/primitives/charts/bar/chart-bar-stacked.js +28 -0
  421. package/dist/primitives/charts/bar/index.d.ts +11 -0
  422. package/dist/primitives/charts/bar/index.d.ts.map +1 -0
  423. package/dist/primitives/charts/bar/index.js +11 -0
  424. package/dist/primitives/charts/index.d.ts +8 -0
  425. package/dist/primitives/charts/index.d.ts.map +1 -0
  426. package/dist/primitives/charts/index.js +11 -0
  427. package/dist/primitives/charts/line/chart-line-default.d.ts +3 -0
  428. package/dist/primitives/charts/line/chart-line-default.d.ts.map +1 -0
  429. package/dist/primitives/charts/line/chart-line-default.js +27 -0
  430. package/dist/primitives/charts/line/chart-line-dots-colors.d.ts +3 -0
  431. package/dist/primitives/charts/line/chart-line-dots-colors.d.ts.map +1 -0
  432. package/dist/primitives/charts/line/chart-line-dots-colors.js +49 -0
  433. package/dist/primitives/charts/line/chart-line-dots-custom.d.ts +3 -0
  434. package/dist/primitives/charts/line/chart-line-dots-custom.d.ts.map +1 -0
  435. package/dist/primitives/charts/line/chart-line-dots-custom.js +34 -0
  436. package/dist/primitives/charts/line/chart-line-dots.d.ts +3 -0
  437. package/dist/primitives/charts/line/chart-line-dots.d.ts.map +1 -0
  438. package/dist/primitives/charts/line/chart-line-dots.js +35 -0
  439. package/dist/primitives/charts/line/chart-line-interactive.d.ts +3 -0
  440. package/dist/primitives/charts/line/chart-line-interactive.d.ts.map +1 -0
  441. package/dist/primitives/charts/line/chart-line-interactive.js +139 -0
  442. package/dist/primitives/charts/line/chart-line-label-custom.d.ts +3 -0
  443. package/dist/primitives/charts/line/chart-line-label-custom.d.ts.map +1 -0
  444. package/dist/primitives/charts/line/chart-line-label-custom.js +51 -0
  445. package/dist/primitives/charts/line/chart-line-label.d.ts +3 -0
  446. package/dist/primitives/charts/line/chart-line-label.d.ts.map +1 -0
  447. package/dist/primitives/charts/line/chart-line-label.js +36 -0
  448. package/dist/primitives/charts/line/chart-line-linear.d.ts +3 -0
  449. package/dist/primitives/charts/line/chart-line-linear.d.ts.map +1 -0
  450. package/dist/primitives/charts/line/chart-line-linear.js +27 -0
  451. package/dist/primitives/charts/line/chart-line-multiple.d.ts +3 -0
  452. package/dist/primitives/charts/line/chart-line-multiple.d.ts.map +1 -0
  453. package/dist/primitives/charts/line/chart-line-multiple.js +31 -0
  454. package/dist/primitives/charts/line/chart-line-step.d.ts +3 -0
  455. package/dist/primitives/charts/line/chart-line-step.d.ts.map +1 -0
  456. package/dist/primitives/charts/line/chart-line-step.js +27 -0
  457. package/dist/primitives/charts/line/index.d.ts +11 -0
  458. package/dist/primitives/charts/line/index.d.ts.map +1 -0
  459. package/dist/primitives/charts/line/index.js +11 -0
  460. package/dist/primitives/charts/pie/chart-pie-donut-active.d.ts +3 -0
  461. package/dist/primitives/charts/pie/chart-pie-donut-active.d.ts.map +1 -0
  462. package/dist/primitives/charts/pie/chart-pie-donut-active.js +42 -0
  463. package/dist/primitives/charts/pie/chart-pie-donut-text.d.ts +3 -0
  464. package/dist/primitives/charts/pie/chart-pie-donut-text.d.ts.map +1 -0
  465. package/dist/primitives/charts/pie/chart-pie-donut-text.js +50 -0
  466. package/dist/primitives/charts/pie/chart-pie-donut.d.ts +3 -0
  467. package/dist/primitives/charts/pie/chart-pie-donut.d.ts.map +1 -0
  468. package/dist/primitives/charts/pie/chart-pie-donut.js +42 -0
  469. package/dist/primitives/charts/pie/chart-pie-interactive.d.ts +3 -0
  470. package/dist/primitives/charts/pie/chart-pie-interactive.d.ts.map +1 -0
  471. package/dist/primitives/charts/pie/chart-pie-interactive.js +65 -0
  472. package/dist/primitives/charts/pie/chart-pie-label-custom.d.ts +3 -0
  473. package/dist/primitives/charts/pie/chart-pie-label-custom.d.ts.map +1 -0
  474. package/dist/primitives/charts/pie/chart-pie-label-custom.js +44 -0
  475. package/dist/primitives/charts/pie/chart-pie-label-list.d.ts +3 -0
  476. package/dist/primitives/charts/pie/chart-pie-label-list.d.ts.map +1 -0
  477. package/dist/primitives/charts/pie/chart-pie-label-list.js +42 -0
  478. package/dist/primitives/charts/pie/chart-pie-label.d.ts +3 -0
  479. package/dist/primitives/charts/pie/chart-pie-label.d.ts.map +1 -0
  480. package/dist/primitives/charts/pie/chart-pie-label.js +42 -0
  481. package/dist/primitives/charts/pie/chart-pie-legend.d.ts +3 -0
  482. package/dist/primitives/charts/pie/chart-pie-legend.d.ts.map +1 -0
  483. package/dist/primitives/charts/pie/chart-pie-legend.js +41 -0
  484. package/dist/primitives/charts/pie/chart-pie-separator-none.d.ts +3 -0
  485. package/dist/primitives/charts/pie/chart-pie-separator-none.d.ts.map +1 -0
  486. package/dist/primitives/charts/pie/chart-pie-separator-none.js +42 -0
  487. package/dist/primitives/charts/pie/index.d.ts +10 -0
  488. package/dist/primitives/charts/pie/index.d.ts.map +1 -0
  489. package/dist/primitives/charts/pie/index.js +10 -0
  490. package/dist/primitives/charts/radar/chart-radar-default.d.ts +3 -0
  491. package/dist/primitives/charts/radar/chart-radar-default.d.ts.map +1 -0
  492. package/dist/primitives/charts/radar/chart-radar-default.js +24 -0
  493. package/dist/primitives/charts/radar/chart-radar-dots.d.ts +3 -0
  494. package/dist/primitives/charts/radar/chart-radar-dots.d.ts.map +1 -0
  495. package/dist/primitives/charts/radar/chart-radar-dots.js +27 -0
  496. package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.d.ts +3 -0
  497. package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.d.ts.map +1 -0
  498. package/dist/primitives/charts/radar/chart-radar-grid-circle-fill.js +24 -0
  499. package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.d.ts +3 -0
  500. package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.d.ts.map +1 -0
  501. package/dist/primitives/charts/radar/chart-radar-grid-circle-no-lines.js +27 -0
  502. package/dist/primitives/charts/radar/chart-radar-grid-circle.d.ts +3 -0
  503. package/dist/primitives/charts/radar/chart-radar-grid-circle.d.ts.map +1 -0
  504. package/dist/primitives/charts/radar/chart-radar-grid-circle.js +27 -0
  505. package/dist/primitives/charts/radar/chart-radar-grid-custom.d.ts +3 -0
  506. package/dist/primitives/charts/radar/chart-radar-grid-custom.d.ts.map +1 -0
  507. package/dist/primitives/charts/radar/chart-radar-grid-custom.js +24 -0
  508. package/dist/primitives/charts/radar/chart-radar-grid-fill.d.ts +3 -0
  509. package/dist/primitives/charts/radar/chart-radar-grid-fill.d.ts.map +1 -0
  510. package/dist/primitives/charts/radar/chart-radar-grid-fill.js +24 -0
  511. package/dist/primitives/charts/radar/chart-radar-grid-none.d.ts +3 -0
  512. package/dist/primitives/charts/radar/chart-radar-grid-none.d.ts.map +1 -0
  513. package/dist/primitives/charts/radar/chart-radar-grid-none.js +27 -0
  514. package/dist/primitives/charts/radar/chart-radar-icons.d.ts +3 -0
  515. package/dist/primitives/charts/radar/chart-radar-icons.d.ts.map +1 -0
  516. package/dist/primitives/charts/radar/chart-radar-icons.js +33 -0
  517. package/dist/primitives/charts/radar/index.d.ts +10 -0
  518. package/dist/primitives/charts/radar/index.d.ts.map +1 -0
  519. package/dist/primitives/charts/radar/index.js +10 -0
  520. package/dist/primitives/charts/radial/chart-radial-grid.d.ts +3 -0
  521. package/dist/primitives/charts/radial/chart-radial-grid.d.ts.map +1 -0
  522. package/dist/primitives/charts/radial/chart-radial-grid.js +42 -0
  523. package/dist/primitives/charts/radial/chart-radial-label.d.ts +3 -0
  524. package/dist/primitives/charts/radial/chart-radial-label.d.ts.map +1 -0
  525. package/dist/primitives/charts/radial/chart-radial-label.js +42 -0
  526. package/dist/primitives/charts/radial/chart-radial-shape.d.ts +3 -0
  527. package/dist/primitives/charts/radial/chart-radial-shape.d.ts.map +1 -0
  528. package/dist/primitives/charts/radial/chart-radial-shape.js +26 -0
  529. package/dist/primitives/charts/radial/chart-radial-simple.d.ts +3 -0
  530. package/dist/primitives/charts/radial/chart-radial-simple.d.ts.map +1 -0
  531. package/dist/primitives/charts/radial/chart-radial-simple.js +42 -0
  532. package/dist/primitives/charts/radial/chart-radial-stacked.d.ts +3 -0
  533. package/dist/primitives/charts/radial/chart-radial-stacked.d.ts.map +1 -0
  534. package/dist/primitives/charts/radial/chart-radial-stacked.js +26 -0
  535. package/dist/primitives/charts/radial/chart-radial-text.d.ts +3 -0
  536. package/dist/primitives/charts/radial/chart-radial-text.d.ts.map +1 -0
  537. package/dist/primitives/charts/radial/chart-radial-text.js +26 -0
  538. package/dist/primitives/charts/radial/index.d.ts +7 -0
  539. package/dist/primitives/charts/radial/index.d.ts.map +1 -0
  540. package/dist/primitives/charts/radial/index.js +7 -0
  541. package/dist/primitives/charts/tooltip/chart-tooltip-advanced.d.ts +3 -0
  542. package/dist/primitives/charts/tooltip/chart-tooltip-advanced.d.ts.map +1 -0
  543. package/dist/primitives/charts/tooltip/chart-tooltip-advanced.js +34 -0
  544. package/dist/primitives/charts/tooltip/chart-tooltip-default.d.ts +5 -0
  545. package/dist/primitives/charts/tooltip/chart-tooltip-default.d.ts.map +1 -0
  546. package/dist/primitives/charts/tooltip/chart-tooltip-default.js +33 -0
  547. package/dist/primitives/charts/tooltip/chart-tooltip-formatter.d.ts +3 -0
  548. package/dist/primitives/charts/tooltip/chart-tooltip-formatter.d.ts.map +1 -0
  549. package/dist/primitives/charts/tooltip/chart-tooltip-formatter.js +32 -0
  550. package/dist/primitives/charts/tooltip/chart-tooltip-icons.d.ts +3 -0
  551. package/dist/primitives/charts/tooltip/chart-tooltip-icons.d.ts.map +1 -0
  552. package/dist/primitives/charts/tooltip/chart-tooltip-icons.js +34 -0
  553. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.d.ts +5 -0
  554. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.d.ts.map +1 -0
  555. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-line.js +33 -0
  556. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.d.ts +3 -0
  557. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.d.ts.map +1 -0
  558. package/dist/primitives/charts/tooltip/chart-tooltip-indicator-none.js +31 -0
  559. package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.d.ts +3 -0
  560. package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.d.ts.map +1 -0
  561. package/dist/primitives/charts/tooltip/chart-tooltip-label-custom.js +34 -0
  562. package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.d.ts +3 -0
  563. package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.d.ts.map +1 -0
  564. package/dist/primitives/charts/tooltip/chart-tooltip-label-formatter.js +37 -0
  565. package/dist/primitives/charts/tooltip/chart-tooltip-label-none.d.ts +3 -0
  566. package/dist/primitives/charts/tooltip/chart-tooltip-label-none.d.ts.map +1 -0
  567. package/dist/primitives/charts/tooltip/chart-tooltip-label-none.js +31 -0
  568. package/dist/primitives/charts/tooltip/index.d.ts +10 -0
  569. package/dist/primitives/charts/tooltip/index.d.ts.map +1 -0
  570. package/dist/primitives/charts/tooltip/index.js +10 -0
  571. package/dist/primitives/chat/chat-input-area.d.ts +24 -0
  572. package/dist/primitives/chat/chat-input-area.d.ts.map +1 -0
  573. package/dist/primitives/chat/chat-input-area.js +23 -0
  574. package/dist/primitives/chat/chat-input.d.ts +13 -0
  575. package/dist/primitives/chat/chat-input.d.ts.map +1 -0
  576. package/dist/primitives/chat/chat-input.js +33 -0
  577. package/dist/primitives/chat/json-form.d.ts +4 -0
  578. package/dist/primitives/chat/json-form.d.ts.map +1 -0
  579. package/dist/primitives/chat/json-form.js +6 -0
  580. package/dist/primitives/checkbox.d.ts +12 -0
  581. package/dist/primitives/checkbox.d.ts.map +1 -0
  582. package/dist/primitives/checkbox.js +8 -0
  583. package/dist/primitives/collapsible.d.ts +6 -0
  584. package/dist/primitives/collapsible.d.ts.map +1 -0
  585. package/dist/primitives/collapsible.js +5 -0
  586. package/dist/primitives/combobox.d.ts +42 -0
  587. package/dist/primitives/combobox.d.ts.map +1 -0
  588. package/dist/primitives/combobox.js +49 -0
  589. package/dist/primitives/command.d.ts +39 -0
  590. package/dist/primitives/command.d.ts.map +1 -0
  591. package/dist/primitives/command.js +28 -0
  592. package/dist/primitives/context-menu.d.ts +54 -0
  593. package/dist/primitives/context-menu.d.ts.map +1 -0
  594. package/dist/primitives/context-menu.js +32 -0
  595. package/dist/primitives/copy-to-clipboard-icon.d.ts +15 -0
  596. package/dist/primitives/copy-to-clipboard-icon.d.ts.map +1 -0
  597. package/dist/primitives/copy-to-clipboard-icon.js +21 -0
  598. package/dist/primitives/dialog-video-controller.d.ts +4 -0
  599. package/dist/primitives/dialog-video-controller.d.ts.map +1 -0
  600. package/dist/primitives/dialog-video-controller.js +23 -0
  601. package/dist/primitives/dialog.d.ts +18 -0
  602. package/dist/primitives/dialog.d.ts.map +1 -0
  603. package/dist/primitives/dialog.js +37 -0
  604. package/dist/primitives/dot-pattern.d.ts +14 -0
  605. package/dist/primitives/dot-pattern.d.ts.map +1 -0
  606. package/dist/primitives/dot-pattern.js +8 -0
  607. package/dist/primitives/dots-loader.d.ts +5 -0
  608. package/dist/primitives/dots-loader.d.ts.map +1 -0
  609. package/dist/primitives/dots-loader.js +5 -0
  610. package/dist/primitives/drawer.d.ts +38 -0
  611. package/dist/primitives/drawer.d.ts.map +1 -0
  612. package/dist/primitives/drawer.js +22 -0
  613. package/dist/primitives/dropdown-menu.d.ts +52 -0
  614. package/dist/primitives/dropdown-menu.d.ts.map +1 -0
  615. package/dist/primitives/dropdown-menu.js +34 -0
  616. package/dist/primitives/empty.d.ts +12 -0
  617. package/dist/primitives/empty.d.ts.map +1 -0
  618. package/dist/primitives/empty.js +33 -0
  619. package/dist/primitives/error-message.d.ts +7 -0
  620. package/dist/primitives/error-message.d.ts.map +1 -0
  621. package/dist/primitives/error-message.js +5 -0
  622. package/dist/primitives/field.d.ts +10 -0
  623. package/dist/primitives/field.d.ts.map +1 -0
  624. package/dist/primitives/field.js +16 -0
  625. package/dist/primitives/file-uploader.d.ts +20 -0
  626. package/dist/primitives/file-uploader.d.ts.map +1 -0
  627. package/dist/primitives/file-uploader.js +68 -0
  628. package/dist/primitives/form.d.ts +40 -0
  629. package/dist/primitives/form.d.ts.map +1 -0
  630. package/dist/primitives/form.js +67 -0
  631. package/dist/primitives/hover-card.d.ts +10 -0
  632. package/dist/primitives/hover-card.d.ts.map +1 -0
  633. package/dist/primitives/hover-card.js +8 -0
  634. package/dist/primitives/icons/github.d.ts +5 -0
  635. package/dist/primitives/icons/github.d.ts.map +1 -0
  636. package/dist/primitives/icons/github.js +3 -0
  637. package/dist/primitives/icons/index.d.ts +5 -0
  638. package/dist/primitives/icons/index.d.ts.map +1 -0
  639. package/dist/primitives/icons/index.js +4 -0
  640. package/dist/primitives/icons/youtube-logo.d.ts +5 -0
  641. package/dist/primitives/icons/youtube-logo.d.ts.map +1 -0
  642. package/dist/primitives/icons/youtube-logo.js +33 -0
  643. package/dist/primitives/index-blocks.d.ts +5 -0
  644. package/dist/primitives/index-blocks.d.ts.map +1 -0
  645. package/dist/primitives/index-blocks.js +6 -0
  646. package/dist/primitives/index-common.d.ts +75 -0
  647. package/dist/primitives/index-common.d.ts.map +1 -0
  648. package/dist/primitives/index-common.js +82 -0
  649. package/dist/primitives/index-core.d.ts +29 -0
  650. package/dist/primitives/index-core.d.ts.map +1 -0
  651. package/dist/primitives/index-core.js +30 -0
  652. package/dist/primitives/index-next.d.ts +3 -0
  653. package/dist/primitives/index-next.d.ts.map +1 -0
  654. package/dist/primitives/index-next.js +4 -0
  655. package/dist/primitives/index-standard.d.ts +79 -0
  656. package/dist/primitives/index-standard.d.ts.map +1 -0
  657. package/dist/primitives/index-standard.js +98 -0
  658. package/dist/primitives/input-group.d.ts +17 -0
  659. package/dist/primitives/input-group.d.ts.map +1 -0
  660. package/dist/primitives/input-group.js +61 -0
  661. package/dist/primitives/input-otp.d.ts +35 -0
  662. package/dist/primitives/input-otp.d.ts.map +1 -0
  663. package/dist/primitives/input-otp.js +19 -0
  664. package/dist/primitives/input.d.ts +15 -0
  665. package/dist/primitives/input.d.ts.map +1 -0
  666. package/dist/primitives/input.js +43 -0
  667. package/dist/primitives/item.d.ts +24 -0
  668. package/dist/primitives/item.d.ts.map +1 -0
  669. package/dist/primitives/item.js +67 -0
  670. package/dist/primitives/kbd.d.ts +5 -0
  671. package/dist/primitives/kbd.d.ts.map +1 -0
  672. package/dist/primitives/kbd.js +9 -0
  673. package/dist/primitives/label.d.ts +11 -0
  674. package/dist/primitives/label.d.ts.map +1 -0
  675. package/dist/primitives/label.js +9 -0
  676. package/dist/primitives/list-adaptor.d.ts +10 -0
  677. package/dist/primitives/list-adaptor.d.ts.map +1 -0
  678. package/dist/primitives/list-adaptor.js +1 -0
  679. package/dist/primitives/list-box.d.ts +12 -0
  680. package/dist/primitives/list-box.d.ts.map +1 -0
  681. package/dist/primitives/list-box.js +10 -0
  682. package/dist/primitives/loading-spinner.d.ts +6 -0
  683. package/dist/primitives/loading-spinner.d.ts.map +1 -0
  684. package/dist/primitives/loading-spinner.js +7 -0
  685. package/dist/primitives/markdown-preview.d.ts +129 -0
  686. package/dist/primitives/markdown-preview.d.ts.map +1 -0
  687. package/dist/primitives/markdown-preview.js +165 -0
  688. package/dist/primitives/menubar.d.ts +29 -0
  689. package/dist/primitives/menubar.d.ts.map +1 -0
  690. package/dist/primitives/menubar.js +46 -0
  691. package/dist/primitives/mermaid.d.ts +8 -0
  692. package/dist/primitives/mermaid.d.ts.map +1 -0
  693. package/dist/primitives/mermaid.js +112 -0
  694. package/dist/primitives/native-select.d.ts +9 -0
  695. package/dist/primitives/native-select.d.ts.map +1 -0
  696. package/dist/primitives/native-select.js +14 -0
  697. package/dist/primitives/navigation-menu.d.ts +13 -0
  698. package/dist/primitives/navigation-menu.d.ts.map +1 -0
  699. package/dist/primitives/navigation-menu.js +29 -0
  700. package/dist/primitives/next/image.d.ts +12 -0
  701. package/dist/primitives/next/image.d.ts.map +1 -0
  702. package/dist/primitives/next/image.js +40 -0
  703. package/dist/primitives/next/index.d.ts +8 -0
  704. package/dist/primitives/next/index.d.ts.map +1 -0
  705. package/dist/primitives/next/index.js +7 -0
  706. package/dist/primitives/next/inline-icon.d.ts +14 -0
  707. package/dist/primitives/next/inline-icon.d.ts.map +1 -0
  708. package/dist/primitives/next/inline-icon.js +13 -0
  709. package/dist/primitives/next/link-element.d.ts +24 -0
  710. package/dist/primitives/next/link-element.d.ts.map +1 -0
  711. package/dist/primitives/next/link-element.js +47 -0
  712. package/dist/primitives/next/mdx-link.d.ts +4 -0
  713. package/dist/primitives/next/mdx-link.d.ts.map +1 -0
  714. package/dist/primitives/next/mdx-link.js +10 -0
  715. package/dist/primitives/next/media-stack.d.ts +9 -0
  716. package/dist/primitives/next/media-stack.d.ts.map +1 -0
  717. package/dist/primitives/next/media-stack.js +20 -0
  718. package/dist/primitives/next/nav-items.d.ts +11 -0
  719. package/dist/primitives/next/nav-items.d.ts.map +1 -0
  720. package/dist/primitives/next/nav-items.js +22 -0
  721. package/dist/primitives/next/youtube-embed.d.ts +12 -0
  722. package/dist/primitives/next/youtube-embed.d.ts.map +1 -0
  723. package/dist/primitives/next/youtube-embed.js +16 -0
  724. package/dist/primitives/popover.d.ts +12 -0
  725. package/dist/primitives/popover.d.ts.map +1 -0
  726. package/dist/primitives/popover.js +10 -0
  727. package/dist/primitives/pretty-json-print.d.ts +5 -0
  728. package/dist/primitives/pretty-json-print.d.ts.map +1 -0
  729. package/dist/primitives/pretty-json-print.js +22 -0
  730. package/dist/primitives/progress.d.ts +9 -0
  731. package/dist/primitives/progress.d.ts.map +1 -0
  732. package/dist/primitives/progress.js +7 -0
  733. package/dist/primitives/prompt-textarea.d.ts +19 -0
  734. package/dist/primitives/prompt-textarea.d.ts.map +1 -0
  735. package/dist/primitives/prompt-textarea.js +30 -0
  736. package/dist/primitives/radio-group.d.ts +12 -0
  737. package/dist/primitives/radio-group.d.ts.map +1 -0
  738. package/dist/primitives/radio-group.js +14 -0
  739. package/dist/primitives/resizable.d.ts +24 -0
  740. package/dist/primitives/resizable.d.ts.map +1 -0
  741. package/dist/primitives/resizable.js +8 -0
  742. package/dist/primitives/scroll-area.d.ts +14 -0
  743. package/dist/primitives/scroll-area.d.ts.map +1 -0
  744. package/dist/primitives/scroll-area.js +10 -0
  745. package/dist/primitives/search-input.d.ts +14 -0
  746. package/dist/primitives/search-input.d.ts.map +1 -0
  747. package/dist/primitives/search-input.js +16 -0
  748. package/dist/primitives/select.d.ts +27 -0
  749. package/dist/primitives/select.d.ts.map +1 -0
  750. package/dist/primitives/select.js +21 -0
  751. package/dist/primitives/separator.d.ts +9 -0
  752. package/dist/primitives/separator.d.ts.map +1 -0
  753. package/dist/primitives/separator.js +7 -0
  754. package/dist/primitives/sheet.d.ts +41 -0
  755. package/dist/primitives/sheet.d.ts.map +1 -0
  756. package/dist/primitives/sheet.js +35 -0
  757. package/dist/primitives/skeleton.d.ts +5 -0
  758. package/dist/primitives/skeleton.d.ts.map +1 -0
  759. package/dist/primitives/skeleton.js +7 -0
  760. package/dist/primitives/slider.d.ts +6 -0
  761. package/dist/primitives/slider.d.ts.map +1 -0
  762. package/dist/primitives/slider.js +15 -0
  763. package/dist/primitives/sonner.d.ts +6 -0
  764. package/dist/primitives/sonner.d.ts.map +1 -0
  765. package/dist/primitives/sonner.js +17 -0
  766. package/dist/primitives/spinner.d.ts +3 -0
  767. package/dist/primitives/spinner.d.ts.map +1 -0
  768. package/dist/primitives/spinner.js +7 -0
  769. package/dist/primitives/step-indicator.d.ts +10 -0
  770. package/dist/primitives/step-indicator.d.ts.map +1 -0
  771. package/dist/primitives/step-indicator.js +13 -0
  772. package/dist/primitives/stepper.d.ts +49 -0
  773. package/dist/primitives/stepper.d.ts.map +1 -0
  774. package/dist/primitives/stepper.js +75 -0
  775. package/dist/primitives/switch.d.ts +9 -0
  776. package/dist/primitives/switch.d.ts.map +1 -0
  777. package/dist/primitives/switch.js +7 -0
  778. package/dist/primitives/table.d.ts +35 -0
  779. package/dist/primitives/table.d.ts.map +1 -0
  780. package/dist/primitives/table.js +19 -0
  781. package/dist/primitives/tabs.d.ts +12 -0
  782. package/dist/primitives/tabs.d.ts.map +1 -0
  783. package/dist/primitives/tabs.js +35 -0
  784. package/dist/primitives/text-area.d.ts +6 -0
  785. package/dist/primitives/text-area.d.ts.map +1 -0
  786. package/dist/primitives/text-area.js +10 -0
  787. package/dist/primitives/text-link.d.ts +6 -0
  788. package/dist/primitives/text-link.d.ts.map +1 -0
  789. package/dist/primitives/text-link.js +5 -0
  790. package/dist/primitives/textarea.d.ts +13 -0
  791. package/dist/primitives/textarea.d.ts.map +1 -0
  792. package/dist/primitives/textarea.js +28 -0
  793. package/dist/primitives/textfield.d.ts +33 -0
  794. package/dist/primitives/textfield.d.ts.map +1 -0
  795. package/dist/primitives/textfield.js +9 -0
  796. package/dist/primitives/toast.d.ts +6 -0
  797. package/dist/primitives/toast.d.ts.map +1 -0
  798. package/dist/primitives/toast.js +13 -0
  799. package/dist/primitives/toggle-group.d.ts +14 -0
  800. package/dist/primitives/toggle-group.d.ts.map +1 -0
  801. package/dist/primitives/toggle-group.js +20 -0
  802. package/dist/primitives/toggle.d.ts +13 -0
  803. package/dist/primitives/toggle.d.ts.map +1 -0
  804. package/dist/primitives/toggle.js +24 -0
  805. package/dist/primitives/tooltip.d.ts +15 -0
  806. package/dist/primitives/tooltip.d.ts.map +1 -0
  807. package/dist/primitives/tooltip.js +11 -0
  808. package/dist/primitives/video-player.d.ts +7 -0
  809. package/dist/primitives/video-player.d.ts.map +1 -0
  810. package/dist/primitives/video-player.js +7 -0
  811. package/dist/primitives/youtube-pip-player.d.ts +33 -0
  812. package/dist/primitives/youtube-pip-player.d.ts.map +1 -0
  813. package/dist/primitives/youtube-pip-player.js +253 -0
  814. package/dist/progress.js +2 -0
  815. package/dist/progress.mjs +2 -0
  816. package/dist/project/gantt.js +2 -0
  817. package/dist/project/gantt.mjs +2 -0
  818. package/dist/project/index.js +2 -0
  819. package/dist/project/index.mjs +2 -0
  820. package/dist/project/kanban.js +2 -0
  821. package/dist/project/kanban.mjs +2 -0
  822. package/dist/project/list.js +2 -0
  823. package/dist/project/list.mjs +2 -0
  824. package/dist/radio-group.js +2 -0
  825. package/dist/radio-group.mjs +2 -0
  826. package/dist/resizable.js +2 -0
  827. package/dist/resizable.mjs +2 -0
  828. package/dist/scroll-area.js +2 -0
  829. package/dist/scroll-area.mjs +2 -0
  830. package/dist/select.js +2 -0
  831. package/dist/select.mjs +2 -0
  832. package/dist/separator.js +2 -0
  833. package/dist/separator.mjs +2 -0
  834. package/dist/sheet.js +2 -0
  835. package/dist/sheet.mjs +2 -0
  836. package/dist/skeleton.js +2 -0
  837. package/dist/skeleton.mjs +2 -0
  838. package/dist/slider.js +2 -0
  839. package/dist/slider.mjs +2 -0
  840. package/dist/sonner.js +2 -0
  841. package/dist/sonner.mjs +2 -0
  842. package/dist/spline/index.js +2 -0
  843. package/dist/spline/index.mjs +2 -0
  844. package/dist/spline/media-stack.js +2 -0
  845. package/dist/spline/media-stack.mjs +2 -0
  846. package/dist/spline/player.js +2 -0
  847. package/dist/spline/player.mjs +2 -0
  848. package/dist/src/3d/button.d.ts +27 -0
  849. package/dist/src/3d/button.d.ts.map +1 -0
  850. package/dist/src/3d/button.js +181 -0
  851. package/dist/src/3d/card.d.ts +29 -0
  852. package/dist/src/3d/card.d.ts.map +1 -0
  853. package/dist/src/3d/card.js +117 -0
  854. package/dist/src/3d/carousel.d.ts +26 -0
  855. package/dist/src/3d/carousel.d.ts.map +1 -0
  856. package/dist/src/3d/carousel.js +171 -0
  857. package/dist/src/3d/grid.d.ts +49 -0
  858. package/dist/src/3d/grid.d.ts.map +1 -0
  859. package/dist/src/3d/grid.js +126 -0
  860. package/dist/src/3d/index.d.ts +7 -0
  861. package/dist/src/3d/index.d.ts.map +1 -0
  862. package/dist/src/3d/index.js +7 -0
  863. package/dist/src/3d/marquee.d.ts +37 -0
  864. package/dist/src/3d/marquee.d.ts.map +1 -0
  865. package/dist/src/3d/marquee.js +208 -0
  866. package/dist/src/3d/pin.d.ts +8 -0
  867. package/dist/src/3d/pin.d.ts.map +1 -0
  868. package/dist/src/3d/pin.js +9 -0
  869. package/dist/src/auth/AuthGuard.d.ts +16 -0
  870. package/dist/src/auth/AuthGuard.d.ts.map +1 -0
  871. package/dist/src/auth/AuthGuard.js +32 -0
  872. package/dist/src/auth/IAMLoginButton.d.ts +27 -0
  873. package/dist/src/auth/IAMLoginButton.d.ts.map +1 -0
  874. package/dist/src/auth/IAMLoginButton.js +22 -0
  875. package/dist/src/auth/PasswordForm.d.ts +22 -0
  876. package/dist/src/auth/PasswordForm.d.ts.map +1 -0
  877. package/dist/src/auth/PasswordForm.js +28 -0
  878. package/dist/src/auth/SignIn.d.ts +37 -0
  879. package/dist/src/auth/SignIn.d.ts.map +1 -0
  880. package/dist/src/auth/SignIn.js +26 -0
  881. package/dist/src/auth/SocialButton.d.ts +27 -0
  882. package/dist/src/auth/SocialButton.d.ts.map +1 -0
  883. package/dist/src/auth/SocialButton.js +37 -0
  884. package/dist/src/auth/Web3Connect.d.ts +9 -0
  885. package/dist/src/auth/Web3Connect.d.ts.map +1 -0
  886. package/dist/src/auth/Web3Connect.js +11 -0
  887. package/dist/src/auth/iam.d.ts +56 -0
  888. package/dist/src/auth/iam.d.ts.map +1 -0
  889. package/dist/src/auth/iam.js +78 -0
  890. package/dist/src/auth/index.d.ts +19 -0
  891. package/dist/src/auth/index.d.ts.map +1 -0
  892. package/dist/src/auth/index.js +14 -0
  893. package/dist/src/auth/types.d.ts +43 -0
  894. package/dist/src/auth/types.d.ts.map +1 -0
  895. package/dist/src/auth/types.js +8 -0
  896. package/dist/src/avatar.d.ts +2 -0
  897. package/dist/src/avatar.d.ts.map +1 -0
  898. package/dist/src/avatar.js +1 -0
  899. package/dist/src/badge.d.ts +2 -0
  900. package/dist/src/badge.d.ts.map +1 -0
  901. package/dist/src/badge.js +1 -0
  902. package/dist/src/billing/components/account-members.d.ts +10 -0
  903. package/dist/src/billing/components/account-members.d.ts.map +1 -0
  904. package/dist/src/billing/components/account-members.js +63 -0
  905. package/dist/src/billing/components/account-switcher.d.ts +9 -0
  906. package/dist/src/billing/components/account-switcher.d.ts.map +1 -0
  907. package/dist/src/billing/components/account-switcher.js +52 -0
  908. package/dist/src/billing/components/animated-card.d.ts +9 -0
  909. package/dist/src/billing/components/animated-card.d.ts.map +1 -0
  910. package/dist/src/billing/components/animated-card.js +161 -0
  911. package/dist/src/billing/components/billing-settings.d.ts +26 -0
  912. package/dist/src/billing/components/billing-settings.d.ts.map +1 -0
  913. package/dist/src/billing/components/billing-settings.js +23 -0
  914. package/dist/src/billing/components/billing-workspace.d.ts +28 -0
  915. package/dist/src/billing/components/billing-workspace.d.ts.map +1 -0
  916. package/dist/src/billing/components/billing-workspace.js +22 -0
  917. package/dist/src/billing/components/business-profile-panel.d.ts +7 -0
  918. package/dist/src/billing/components/business-profile-panel.d.ts.map +1 -0
  919. package/dist/src/billing/components/business-profile-panel.js +45 -0
  920. package/dist/src/billing/components/card-form.d.ts +18 -0
  921. package/dist/src/billing/components/card-form.d.ts.map +1 -0
  922. package/dist/src/billing/components/card-form.js +139 -0
  923. package/dist/src/billing/components/cost-explorer.d.ts +7 -0
  924. package/dist/src/billing/components/cost-explorer.d.ts.map +1 -0
  925. package/dist/src/billing/components/cost-explorer.js +73 -0
  926. package/dist/src/billing/components/credit-modal.d.ts +38 -0
  927. package/dist/src/billing/components/credit-modal.d.ts.map +1 -0
  928. package/dist/src/billing/components/credit-modal.js +39 -0
  929. package/dist/src/billing/components/credits-panel.d.ts +8 -0
  930. package/dist/src/billing/components/credits-panel.d.ts.map +1 -0
  931. package/dist/src/billing/components/credits-panel.js +58 -0
  932. package/dist/src/billing/components/guided-setup.d.ts +13 -0
  933. package/dist/src/billing/components/guided-setup.d.ts.map +1 -0
  934. package/dist/src/billing/components/guided-setup.js +44 -0
  935. package/dist/src/billing/components/index.d.ts +49 -0
  936. package/dist/src/billing/components/index.d.ts.map +1 -0
  937. package/dist/src/billing/components/index.js +24 -0
  938. package/dist/src/billing/components/invoice-manager.d.ts +10 -0
  939. package/dist/src/billing/components/invoice-manager.d.ts.map +1 -0
  940. package/dist/src/billing/components/invoice-manager.js +131 -0
  941. package/dist/src/billing/components/invoices-payments.d.ts +7 -0
  942. package/dist/src/billing/components/invoices-payments.d.ts.map +1 -0
  943. package/dist/src/billing/components/invoices-payments.js +44 -0
  944. package/dist/src/billing/components/overview-dashboard.d.ts +31 -0
  945. package/dist/src/billing/components/overview-dashboard.d.ts.map +1 -0
  946. package/dist/src/billing/components/overview-dashboard.js +105 -0
  947. package/dist/src/billing/components/payment-manager.d.ts +13 -0
  948. package/dist/src/billing/components/payment-manager.d.ts.map +1 -0
  949. package/dist/src/billing/components/payment-manager.js +342 -0
  950. package/dist/src/billing/components/promotions-panel.d.ts +7 -0
  951. package/dist/src/billing/components/promotions-panel.d.ts.map +1 -0
  952. package/dist/src/billing/components/promotions-panel.js +48 -0
  953. package/dist/src/billing/components/spend-alerts.d.ts +9 -0
  954. package/dist/src/billing/components/spend-alerts.d.ts.map +1 -0
  955. package/dist/src/billing/components/spend-alerts.js +99 -0
  956. package/dist/src/billing/components/square-card-form.d.ts +32 -0
  957. package/dist/src/billing/components/square-card-form.d.ts.map +1 -0
  958. package/dist/src/billing/components/square-card-form.js +179 -0
  959. package/dist/src/billing/components/status-bar.d.ts +12 -0
  960. package/dist/src/billing/components/status-bar.d.ts.map +1 -0
  961. package/dist/src/billing/components/status-bar.js +32 -0
  962. package/dist/src/billing/components/subscription-portal.d.ts +17 -0
  963. package/dist/src/billing/components/subscription-portal.d.ts.map +1 -0
  964. package/dist/src/billing/components/subscription-portal.js +185 -0
  965. package/dist/src/billing/components/support-tiers-panel.d.ts +6 -0
  966. package/dist/src/billing/components/support-tiers-panel.d.ts.map +1 -0
  967. package/dist/src/billing/components/support-tiers-panel.js +90 -0
  968. package/dist/src/billing/components/tax-compliance-panel.d.ts +8 -0
  969. package/dist/src/billing/components/tax-compliance-panel.d.ts.map +1 -0
  970. package/dist/src/billing/components/tax-compliance-panel.js +41 -0
  971. package/dist/src/billing/components/transactions-panel.d.ts +8 -0
  972. package/dist/src/billing/components/transactions-panel.d.ts.map +1 -0
  973. package/dist/src/billing/components/transactions-panel.js +64 -0
  974. package/dist/src/billing/components/usage-panel.d.ts +7 -0
  975. package/dist/src/billing/components/usage-panel.d.ts.map +1 -0
  976. package/dist/src/billing/components/usage-panel.js +64 -0
  977. package/dist/src/billing/index.d.ts +7 -0
  978. package/dist/src/billing/index.d.ts.map +1 -0
  979. package/dist/src/billing/index.js +8 -0
  980. package/dist/src/billing/types/index.d.ts +312 -0
  981. package/dist/src/billing/types/index.d.ts.map +1 -0
  982. package/dist/src/billing/types/index.js +1 -0
  983. package/dist/src/button.d.ts +2 -0
  984. package/dist/src/button.d.ts.map +1 -0
  985. package/dist/src/button.js +1 -0
  986. package/dist/src/calendar-ext/index.d.ts +4 -0
  987. package/dist/src/calendar-ext/index.d.ts.map +1 -0
  988. package/dist/src/calendar-ext/index.js +7 -0
  989. package/dist/src/charts/index.d.ts +65 -0
  990. package/dist/src/charts/index.d.ts.map +1 -0
  991. package/dist/src/charts/index.js +76 -0
  992. package/dist/src/dash/crud.d.ts +37 -0
  993. package/dist/src/dash/crud.d.ts.map +1 -0
  994. package/dist/src/dash/crud.js +74 -0
  995. package/dist/src/dash/form.d.ts +52 -0
  996. package/dist/src/dash/form.d.ts.map +1 -0
  997. package/dist/src/dash/form.js +90 -0
  998. package/dist/src/dash/header.d.ts +28 -0
  999. package/dist/src/dash/header.d.ts.map +1 -0
  1000. package/dist/src/dash/header.js +24 -0
  1001. package/dist/src/dash/index.d.ts +21 -0
  1002. package/dist/src/dash/index.d.ts.map +1 -0
  1003. package/dist/src/dash/index.js +20 -0
  1004. package/dist/src/dash/layout.d.ts +16 -0
  1005. package/dist/src/dash/layout.d.ts.map +1 -0
  1006. package/dist/src/dash/layout.js +8 -0
  1007. package/dist/src/dash/sidebar.d.ts +31 -0
  1008. package/dist/src/dash/sidebar.d.ts.map +1 -0
  1009. package/dist/src/dash/sidebar.js +26 -0
  1010. package/dist/src/dash/table.d.ts +50 -0
  1011. package/dist/src/dash/table.d.ts.map +1 -0
  1012. package/dist/src/dash/table.js +88 -0
  1013. package/dist/src/desktop/hooks.d.ts +75 -0
  1014. package/dist/src/desktop/hooks.d.ts.map +1 -0
  1015. package/dist/src/desktop/hooks.js +194 -0
  1016. package/dist/src/desktop/index.d.ts +7 -0
  1017. package/dist/src/desktop/index.d.ts.map +1 -0
  1018. package/dist/src/desktop/index.js +8 -0
  1019. package/dist/src/desktop/spotlight.d.ts +24 -0
  1020. package/dist/src/desktop/spotlight.d.ts.map +1 -0
  1021. package/dist/src/desktop/spotlight.js +126 -0
  1022. package/dist/src/desktop/window.d.ts +34 -0
  1023. package/dist/src/desktop/window.d.ts.map +1 -0
  1024. package/dist/src/desktop/window.js +114 -0
  1025. package/dist/src/device/index.d.ts +2 -0
  1026. package/dist/src/device/index.d.ts.map +1 -0
  1027. package/dist/src/device/index.js +1 -0
  1028. package/dist/src/dock/basic.d.ts +20 -0
  1029. package/dist/src/dock/basic.d.ts.map +1 -0
  1030. package/dist/src/dock/basic.js +50 -0
  1031. package/dist/src/dock/index.d.ts +6 -0
  1032. package/dist/src/dock/index.d.ts.map +1 -0
  1033. package/dist/src/dock/index.js +6 -0
  1034. package/dist/src/dock/limelight-nav.d.ts +10 -0
  1035. package/dist/src/dock/limelight-nav.d.ts.map +1 -0
  1036. package/dist/src/dock/limelight-nav.js +25 -0
  1037. package/dist/src/dock/macos.d.ts +17 -0
  1038. package/dist/src/dock/macos.d.ts.map +1 -0
  1039. package/dist/src/dock/macos.js +38 -0
  1040. package/dist/src/dock/menu.d.ts +14 -0
  1041. package/dist/src/dock/menu.d.ts.map +1 -0
  1042. package/dist/src/dock/menu.js +10 -0
  1043. package/dist/src/dock/message.d.ts +15 -0
  1044. package/dist/src/dock/message.d.ts.map +1 -0
  1045. package/dist/src/dock/message.js +21 -0
  1046. package/dist/src/form/form.d.ts +26 -0
  1047. package/dist/src/form/form.d.ts.map +1 -0
  1048. package/dist/src/form/form.js +66 -0
  1049. package/dist/src/form/index.d.ts +2 -0
  1050. package/dist/src/form/index.d.ts.map +1 -0
  1051. package/dist/src/form/index.js +2 -0
  1052. package/dist/src/hooks/index.d.ts +8 -0
  1053. package/dist/src/hooks/index.d.ts.map +1 -0
  1054. package/dist/src/hooks/index.js +7 -0
  1055. package/dist/src/hooks/use-click-away.d.ts +3 -0
  1056. package/dist/src/hooks/use-click-away.d.ts.map +1 -0
  1057. package/dist/src/hooks/use-click-away.js +23 -0
  1058. package/dist/src/hooks/use-combined-refs.d.ts +4 -0
  1059. package/dist/src/hooks/use-combined-refs.d.ts.map +1 -0
  1060. package/dist/src/hooks/use-combined-refs.js +18 -0
  1061. package/dist/src/hooks/use-copy-clipboard.d.ts +10 -0
  1062. package/dist/src/hooks/use-copy-clipboard.d.ts.map +1 -0
  1063. package/dist/src/hooks/use-copy-clipboard.js +21 -0
  1064. package/dist/src/hooks/use-debounce.d.ts +2 -0
  1065. package/dist/src/hooks/use-debounce.d.ts.map +1 -0
  1066. package/dist/src/hooks/use-debounce.js +13 -0
  1067. package/dist/src/hooks/use-fill-ids.d.ts +9 -0
  1068. package/dist/src/hooks/use-fill-ids.d.ts.map +1 -0
  1069. package/dist/src/hooks/use-fill-ids.js +20 -0
  1070. package/dist/src/hooks/use-map.d.ts +2 -0
  1071. package/dist/src/hooks/use-map.d.ts.map +1 -0
  1072. package/dist/src/hooks/use-map.js +20 -0
  1073. package/dist/src/hooks/use-measure.d.ts +9 -0
  1074. package/dist/src/hooks/use-measure.d.ts.map +1 -0
  1075. package/dist/src/hooks/use-measure.js +25 -0
  1076. package/dist/src/hooks/use-reverse-video-playback.d.ts +2 -0
  1077. package/dist/src/hooks/use-reverse-video-playback.d.ts.map +1 -0
  1078. package/dist/src/hooks/use-reverse-video-playback.js +41 -0
  1079. package/dist/src/hooks/use-scroll-restoration.d.ts +9 -0
  1080. package/dist/src/hooks/use-scroll-restoration.d.ts.map +1 -0
  1081. package/dist/src/hooks/use-scroll-restoration.js +36 -0
  1082. package/dist/src/kanban/index.d.ts +3 -0
  1083. package/dist/src/kanban/index.d.ts.map +1 -0
  1084. package/dist/src/kanban/index.js +4 -0
  1085. package/dist/src/mcp/enhanced-server.d.ts +41 -0
  1086. package/dist/src/mcp/enhanced-server.d.ts.map +1 -0
  1087. package/dist/src/mcp/enhanced-server.js +1128 -0
  1088. package/dist/src/mcp/index.d.ts +40 -0
  1089. package/dist/src/mcp/index.d.ts.map +1 -0
  1090. package/dist/src/mcp/index.js +436 -0
  1091. package/dist/src/mermaid/index.d.ts +3 -0
  1092. package/dist/src/mermaid/index.d.ts.map +1 -0
  1093. package/dist/src/mermaid/index.js +3 -0
  1094. package/dist/src/models/ModelCard.d.ts +25 -0
  1095. package/dist/src/models/ModelCard.d.ts.map +1 -0
  1096. package/dist/src/models/ModelCard.js +73 -0
  1097. package/dist/src/models/ModelLibrary.d.ts +41 -0
  1098. package/dist/src/models/ModelLibrary.d.ts.map +1 -0
  1099. package/dist/src/models/ModelLibrary.js +63 -0
  1100. package/dist/src/models/ModelTable.d.ts +17 -0
  1101. package/dist/src/models/ModelTable.d.ts.map +1 -0
  1102. package/dist/src/models/ModelTable.js +35 -0
  1103. package/dist/src/models/ZenEnso.d.ts +17 -0
  1104. package/dist/src/models/ZenEnso.d.ts.map +1 -0
  1105. package/dist/src/models/ZenEnso.js +50 -0
  1106. package/dist/src/models/index.d.ts +23 -0
  1107. package/dist/src/models/index.d.ts.map +1 -0
  1108. package/dist/src/models/index.js +18 -0
  1109. package/dist/src/models/types.d.ts +40 -0
  1110. package/dist/src/models/types.d.ts.map +1 -0
  1111. package/dist/src/models/types.js +7 -0
  1112. package/dist/src/navigation/advanced-navigation-bar.d.ts +2 -0
  1113. package/dist/src/navigation/advanced-navigation-bar.d.ts.map +1 -0
  1114. package/dist/src/navigation/advanced-navigation-bar.js +4 -0
  1115. package/dist/src/navigation/ai-model-selector-navigation-bar.d.ts +2 -0
  1116. package/dist/src/navigation/ai-model-selector-navigation-bar.d.ts.map +1 -0
  1117. package/dist/src/navigation/ai-model-selector-navigation-bar.js +4 -0
  1118. package/dist/src/navigation/app-switcher-navigation-bar.d.ts +2 -0
  1119. package/dist/src/navigation/app-switcher-navigation-bar.d.ts.map +1 -0
  1120. package/dist/src/navigation/app-switcher-navigation-bar.js +4 -0
  1121. package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.d.ts +2 -0
  1122. package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.d.ts.map +1 -0
  1123. package/dist/src/navigation/breadcrumb-and-filters-navigation-bar.js +4 -0
  1124. package/dist/src/navigation/breadcrumb-navigation-bar.d.ts +2 -0
  1125. package/dist/src/navigation/breadcrumb-navigation-bar.d.ts.map +1 -0
  1126. package/dist/src/navigation/breadcrumb-navigation-bar.js +4 -0
  1127. package/dist/src/navigation/centered-logo-navigation-bar.d.ts +2 -0
  1128. package/dist/src/navigation/centered-logo-navigation-bar.d.ts.map +1 -0
  1129. package/dist/src/navigation/centered-logo-navigation-bar.js +4 -0
  1130. package/dist/src/navigation/collaboration-navigation-bar.d.ts +2 -0
  1131. package/dist/src/navigation/collaboration-navigation-bar.d.ts.map +1 -0
  1132. package/dist/src/navigation/collaboration-navigation-bar.js +4 -0
  1133. package/dist/src/navigation/communication-navigation-bar.d.ts +2 -0
  1134. package/dist/src/navigation/communication-navigation-bar.d.ts.map +1 -0
  1135. package/dist/src/navigation/communication-navigation-bar.js +4 -0
  1136. package/dist/src/navigation/context-switcher-navigation-bar.d.ts +2 -0
  1137. package/dist/src/navigation/context-switcher-navigation-bar.d.ts.map +1 -0
  1138. package/dist/src/navigation/context-switcher-navigation-bar.js +4 -0
  1139. package/dist/src/navigation/dashboard-navigation-bar.d.ts +2 -0
  1140. package/dist/src/navigation/dashboard-navigation-bar.d.ts.map +1 -0
  1141. package/dist/src/navigation/dashboard-navigation-bar.js +4 -0
  1142. package/dist/src/navigation/e-commerce-navigation-bar.d.ts +2 -0
  1143. package/dist/src/navigation/e-commerce-navigation-bar.d.ts.map +1 -0
  1144. package/dist/src/navigation/e-commerce-navigation-bar.js +4 -0
  1145. package/dist/src/navigation/hanzo-shell/AppSwitcher.d.ts +8 -0
  1146. package/dist/src/navigation/hanzo-shell/AppSwitcher.d.ts.map +1 -0
  1147. package/dist/src/navigation/hanzo-shell/AppSwitcher.js +42 -0
  1148. package/dist/src/navigation/hanzo-shell/BeamAvatar.d.ts +9 -0
  1149. package/dist/src/navigation/hanzo-shell/BeamAvatar.d.ts.map +1 -0
  1150. package/dist/src/navigation/hanzo-shell/BeamAvatar.js +38 -0
  1151. package/dist/src/navigation/hanzo-shell/HanzoCommandPalette.d.ts +28 -0
  1152. package/dist/src/navigation/hanzo-shell/HanzoCommandPalette.d.ts.map +1 -0
  1153. package/dist/src/navigation/hanzo-shell/HanzoCommandPalette.js +124 -0
  1154. package/dist/src/navigation/hanzo-shell/HanzoHeader.d.ts +16 -0
  1155. package/dist/src/navigation/hanzo-shell/HanzoHeader.d.ts.map +1 -0
  1156. package/dist/src/navigation/hanzo-shell/HanzoHeader.js +101 -0
  1157. package/dist/src/navigation/hanzo-shell/HanzoMark.d.ts +17 -0
  1158. package/dist/src/navigation/hanzo-shell/HanzoMark.d.ts.map +1 -0
  1159. package/dist/src/navigation/hanzo-shell/HanzoMark.js +57 -0
  1160. package/dist/src/navigation/hanzo-shell/UserAvatar.d.ts +15 -0
  1161. package/dist/src/navigation/hanzo-shell/UserAvatar.d.ts.map +1 -0
  1162. package/dist/src/navigation/hanzo-shell/UserAvatar.js +44 -0
  1163. package/dist/src/navigation/hanzo-shell/UserOrgDropdown.d.ts +11 -0
  1164. package/dist/src/navigation/hanzo-shell/UserOrgDropdown.d.ts.map +1 -0
  1165. package/dist/src/navigation/hanzo-shell/UserOrgDropdown.js +29 -0
  1166. package/dist/src/navigation/hanzo-shell/index.d.ts +14 -0
  1167. package/dist/src/navigation/hanzo-shell/index.d.ts.map +1 -0
  1168. package/dist/src/navigation/hanzo-shell/index.js +9 -0
  1169. package/dist/src/navigation/hanzo-shell/types.d.ts +95 -0
  1170. package/dist/src/navigation/hanzo-shell/types.d.ts.map +1 -0
  1171. package/dist/src/navigation/hanzo-shell/types.js +337 -0
  1172. package/dist/src/navigation/hanzo-shell/useHanzoAuth.d.ts +16 -0
  1173. package/dist/src/navigation/hanzo-shell/useHanzoAuth.d.ts.map +1 -0
  1174. package/dist/src/navigation/hanzo-shell/useHanzoAuth.js +93 -0
  1175. package/dist/src/navigation/icon-navigation-bar.d.ts +2 -0
  1176. package/dist/src/navigation/icon-navigation-bar.d.ts.map +1 -0
  1177. package/dist/src/navigation/icon-navigation-bar.js +4 -0
  1178. package/dist/src/navigation/index.d.ts +21 -0
  1179. package/dist/src/navigation/index.d.ts.map +1 -0
  1180. package/dist/src/navigation/index.js +21 -0
  1181. package/dist/src/navigation/search-and-toggle-navigation-bar.d.ts +2 -0
  1182. package/dist/src/navigation/search-and-toggle-navigation-bar.d.ts.map +1 -0
  1183. package/dist/src/navigation/search-and-toggle-navigation-bar.js +4 -0
  1184. package/dist/src/navigation/simple-navigation-bar.d.ts +2 -0
  1185. package/dist/src/navigation/simple-navigation-bar.d.ts.map +1 -0
  1186. package/dist/src/navigation/simple-navigation-bar.js +4 -0
  1187. package/dist/src/navigation/status-dashboard-navigation-bar.d.ts +2 -0
  1188. package/dist/src/navigation/status-dashboard-navigation-bar.d.ts.map +1 -0
  1189. package/dist/src/navigation/status-dashboard-navigation-bar.js +4 -0
  1190. package/dist/src/navigation/team-switcher-navigation-bar.d.ts +2 -0
  1191. package/dist/src/navigation/team-switcher-navigation-bar.d.ts.map +1 -0
  1192. package/dist/src/navigation/team-switcher-navigation-bar.js +4 -0
  1193. package/dist/src/navigation/two-tier-navigation-bar.d.ts +2 -0
  1194. package/dist/src/navigation/two-tier-navigation-bar.d.ts.map +1 -0
  1195. package/dist/src/navigation/two-tier-navigation-bar.js +4 -0
  1196. package/dist/src/navigation/underline-navigation-bar.d.ts +2 -0
  1197. package/dist/src/navigation/underline-navigation-bar.d.ts.map +1 -0
  1198. package/dist/src/navigation/underline-navigation-bar.js +4 -0
  1199. package/dist/src/network/NetworkSwitcher.d.ts +8 -0
  1200. package/dist/src/network/NetworkSwitcher.d.ts.map +1 -0
  1201. package/dist/src/network/NetworkSwitcher.js +80 -0
  1202. package/dist/src/network/index.d.ts +4 -0
  1203. package/dist/src/network/index.d.ts.map +1 -0
  1204. package/dist/src/network/index.js +3 -0
  1205. package/dist/src/network/networks.d.ts +39 -0
  1206. package/dist/src/network/networks.d.ts.map +1 -0
  1207. package/dist/src/network/networks.js +70 -0
  1208. package/dist/src/network/store.d.ts +24 -0
  1209. package/dist/src/network/store.d.ts.map +1 -0
  1210. package/dist/src/network/store.js +116 -0
  1211. package/dist/src/pattern/grid.d.ts +111 -0
  1212. package/dist/src/pattern/grid.d.ts.map +1 -0
  1213. package/dist/src/pattern/grid.js +126 -0
  1214. package/dist/src/pattern/index.d.ts +3 -0
  1215. package/dist/src/pattern/index.d.ts.map +1 -0
  1216. package/dist/src/pattern/index.js +2 -0
  1217. package/dist/src/project/gantt.d.ts +13 -0
  1218. package/dist/src/project/gantt.d.ts.map +1 -0
  1219. package/dist/src/project/gantt.js +9 -0
  1220. package/dist/src/project/index.d.ts +4 -0
  1221. package/dist/src/project/index.d.ts.map +1 -0
  1222. package/dist/src/project/index.js +7 -0
  1223. package/dist/src/project/kanban.d.ts +36 -0
  1224. package/dist/src/project/kanban.d.ts.map +1 -0
  1225. package/dist/src/project/kanban.js +259 -0
  1226. package/dist/src/project/list.d.ts +5 -0
  1227. package/dist/src/project/list.d.ts.map +1 -0
  1228. package/dist/src/project/list.js +8 -0
  1229. package/dist/src/registry/api.d.ts +38 -0
  1230. package/dist/src/registry/api.d.ts.map +1 -0
  1231. package/dist/src/registry/api.js +129 -0
  1232. package/dist/src/registry/index.d.ts +354 -0
  1233. package/dist/src/registry/index.d.ts.map +1 -0
  1234. package/dist/src/registry/index.js +45 -0
  1235. package/dist/src/spline/index.d.ts +3 -0
  1236. package/dist/src/spline/index.d.ts.map +1 -0
  1237. package/dist/src/spline/index.js +4 -0
  1238. package/dist/src/spline/media-stack.d.ts +15 -0
  1239. package/dist/src/spline/media-stack.d.ts.map +1 -0
  1240. package/dist/src/spline/media-stack.js +33 -0
  1241. package/dist/src/spline/player.d.ts +15 -0
  1242. package/dist/src/spline/player.d.ts.map +1 -0
  1243. package/dist/src/spline/player.js +12 -0
  1244. package/dist/src/ui/announcement.d.ts +9 -0
  1245. package/dist/src/ui/announcement.d.ts.map +1 -0
  1246. package/dist/src/ui/announcement.js +18 -0
  1247. package/dist/src/ui/avatar-group.d.ts +12 -0
  1248. package/dist/src/ui/avatar-group.d.ts.map +1 -0
  1249. package/dist/src/ui/avatar-group.js +12 -0
  1250. package/dist/src/ui/banner.d.ts +11 -0
  1251. package/dist/src/ui/banner.d.ts.map +1 -0
  1252. package/dist/src/ui/banner.js +25 -0
  1253. package/dist/src/ui/cursor.d.ts +9 -0
  1254. package/dist/src/ui/cursor.d.ts.map +1 -0
  1255. package/dist/src/ui/cursor.js +24 -0
  1256. package/dist/src/ui/index.d.ts +18 -0
  1257. package/dist/src/ui/index.d.ts.map +1 -0
  1258. package/dist/src/ui/index.js +10 -0
  1259. package/dist/src/ui/marquee.d.ts +10 -0
  1260. package/dist/src/ui/marquee.d.ts.map +1 -0
  1261. package/dist/src/ui/marquee.js +14 -0
  1262. package/dist/src/ui/pill.d.ts +11 -0
  1263. package/dist/src/ui/pill.d.ts.map +1 -0
  1264. package/dist/src/ui/pill.js +25 -0
  1265. package/dist/src/ui/spinner.d.ts +3 -0
  1266. package/dist/src/ui/spinner.d.ts.map +1 -0
  1267. package/dist/src/ui/spinner.js +7 -0
  1268. package/dist/src/ui/tags.d.ts +13 -0
  1269. package/dist/src/ui/tags.d.ts.map +1 -0
  1270. package/dist/src/ui/tags.js +11 -0
  1271. package/dist/src/ui/ticker.d.ts +10 -0
  1272. package/dist/src/ui/ticker.d.ts.map +1 -0
  1273. package/dist/src/ui/ticker.js +12 -0
  1274. package/dist/src/utils.d.ts +5 -0
  1275. package/dist/src/utils.d.ts.map +1 -0
  1276. package/dist/src/utils.js +16 -0
  1277. package/dist/src/wallet/WalletMenu.d.ts +9 -0
  1278. package/dist/src/wallet/WalletMenu.d.ts.map +1 -0
  1279. package/dist/src/wallet/WalletMenu.js +70 -0
  1280. package/dist/src/wallet/evm.d.ts +28 -0
  1281. package/dist/src/wallet/evm.d.ts.map +1 -0
  1282. package/dist/src/wallet/evm.js +113 -0
  1283. package/dist/src/wallet/index.d.ts +4 -0
  1284. package/dist/src/wallet/index.d.ts.map +1 -0
  1285. package/dist/src/wallet/index.js +3 -0
  1286. package/dist/src/wallet/types.d.ts +44 -0
  1287. package/dist/src/wallet/types.d.ts.map +1 -0
  1288. package/dist/src/wallet/types.js +17 -0
  1289. package/dist/style/theme-provider.d.ts +5 -0
  1290. package/dist/style/theme-provider.d.ts.map +1 -0
  1291. package/dist/style/theme-provider.js +8 -0
  1292. package/dist/switch.js +2 -0
  1293. package/dist/switch.mjs +2 -0
  1294. package/dist/table.js +2 -0
  1295. package/dist/table.mjs +2 -0
  1296. package/dist/tabs.js +2 -0
  1297. package/dist/tabs.mjs +2 -0
  1298. package/dist/tailwind/colors.tailwind.d.ts +53 -0
  1299. package/dist/tailwind/colors.tailwind.d.ts.map +1 -0
  1300. package/dist/tailwind/colors.tailwind.js +52 -0
  1301. package/dist/tailwind/fontFamily.tailwind.d.ts +9 -0
  1302. package/dist/tailwind/fontFamily.tailwind.d.ts.map +1 -0
  1303. package/dist/tailwind/fontFamily.tailwind.js +7 -0
  1304. package/dist/tailwind/fontSize.tailwind.d.ts +37 -0
  1305. package/dist/tailwind/fontSize.tailwind.d.ts.map +1 -0
  1306. package/dist/tailwind/fontSize.tailwind.js +13 -0
  1307. package/dist/tailwind/index.d.ts +4 -0
  1308. package/dist/tailwind/index.d.ts.map +1 -0
  1309. package/dist/tailwind/index.js +2 -0
  1310. package/dist/tailwind/index.mjs +1 -0
  1311. package/dist/tailwind/safelist.tailwind.d.ts +9 -0
  1312. package/dist/tailwind/safelist.tailwind.d.ts.map +1 -0
  1313. package/dist/tailwind/safelist.tailwind.js +25 -0
  1314. package/dist/tailwind/screens.tailwind.d.ts +10 -0
  1315. package/dist/tailwind/screens.tailwind.d.ts.map +1 -0
  1316. package/dist/tailwind/screens.tailwind.js +8 -0
  1317. package/dist/tailwind/spacing.tailwind.d.ts +59 -0
  1318. package/dist/tailwind/spacing.tailwind.d.ts.map +1 -0
  1319. package/dist/tailwind/spacing.tailwind.js +62 -0
  1320. package/dist/tailwind/tailwind.config.hanzo-preset.d.ts +1299 -0
  1321. package/dist/tailwind/tailwind.config.hanzo-preset.d.ts.map +1 -0
  1322. package/dist/tailwind/tailwind.config.hanzo-preset.js +911 -0
  1323. package/dist/tailwind/tw-font-desc.d.ts +7 -0
  1324. package/dist/tailwind/tw-font-desc.d.ts.map +1 -0
  1325. package/dist/tailwind/tw-font-desc.js +6 -0
  1326. package/dist/tailwind/z-index.tailwind.d.ts +51 -0
  1327. package/dist/tailwind/z-index.tailwind.d.ts.map +1 -0
  1328. package/dist/tailwind/z-index.tailwind.js +67 -0
  1329. package/dist/textarea.js +2 -0
  1330. package/dist/textarea.mjs +2 -0
  1331. package/dist/toggle-group.js +2 -0
  1332. package/dist/toggle-group.mjs +2 -0
  1333. package/dist/toggle.js +2 -0
  1334. package/dist/toggle.mjs +2 -0
  1335. package/dist/tooltip.js +2 -0
  1336. package/dist/tooltip.mjs +2 -0
  1337. package/dist/types/animation-def.d.ts +3 -0
  1338. package/dist/types/animation-def.d.ts.map +1 -0
  1339. package/dist/types/animation-def.js +1 -0
  1340. package/dist/types/breakpoints.d.ts +5 -0
  1341. package/dist/types/breakpoints.d.ts.map +1 -0
  1342. package/dist/types/breakpoints.js +4 -0
  1343. package/dist/types/bullet-item.d.ts +7 -0
  1344. package/dist/types/bullet-item.d.ts.map +1 -0
  1345. package/dist/types/bullet-item.js +1 -0
  1346. package/dist/types/button-def.d.ts +30 -0
  1347. package/dist/types/button-def.d.ts.map +1 -0
  1348. package/dist/types/button-def.js +1 -0
  1349. package/dist/types/dimensions.d.ts +6 -0
  1350. package/dist/types/dimensions.d.ts.map +1 -0
  1351. package/dist/types/dimensions.js +1 -0
  1352. package/dist/types/grid-def.d.ts +37 -0
  1353. package/dist/types/grid-def.d.ts.map +1 -0
  1354. package/dist/types/grid-def.js +33 -0
  1355. package/dist/types/image-def.d.ts +28 -0
  1356. package/dist/types/image-def.d.ts.map +1 -0
  1357. package/dist/types/image-def.js +1 -0
  1358. package/dist/types/index.d.ts +15 -0
  1359. package/dist/types/index.d.ts.map +1 -0
  1360. package/dist/types/index.js +2 -0
  1361. package/dist/types/index.mjs +1 -0
  1362. package/dist/types/link-def.d.ts +45 -0
  1363. package/dist/types/link-def.d.ts.map +1 -0
  1364. package/dist/types/link-def.js +1 -0
  1365. package/dist/types/media-stack-def.d.ts +26 -0
  1366. package/dist/types/media-stack-def.d.ts.map +1 -0
  1367. package/dist/types/media-stack-def.js +1 -0
  1368. package/dist/types/t-shirt-size.d.ts +3 -0
  1369. package/dist/types/t-shirt-size.d.ts.map +1 -0
  1370. package/dist/types/t-shirt-size.js +1 -0
  1371. package/dist/types/tshirt-dimensions.d.ts +13 -0
  1372. package/dist/types/tshirt-dimensions.d.ts.map +1 -0
  1373. package/dist/types/tshirt-dimensions.js +1 -0
  1374. package/dist/types/video-def.d.ts +10 -0
  1375. package/dist/types/video-def.d.ts.map +1 -0
  1376. package/dist/types/video-def.js +1 -0
  1377. package/dist/ui/announcement.js +2 -0
  1378. package/dist/ui/announcement.mjs +2 -0
  1379. package/dist/ui/avatar-group.js +2 -0
  1380. package/dist/ui/avatar-group.mjs +2 -0
  1381. package/dist/ui/banner.js +2 -0
  1382. package/dist/ui/banner.mjs +2 -0
  1383. package/dist/ui/cursor.js +2 -0
  1384. package/dist/ui/cursor.mjs +2 -0
  1385. package/dist/ui/index.js +2 -0
  1386. package/dist/ui/index.mjs +2 -0
  1387. package/dist/ui/marquee.js +2 -0
  1388. package/dist/ui/marquee.mjs +2 -0
  1389. package/dist/ui/pill.js +2 -0
  1390. package/dist/ui/pill.mjs +2 -0
  1391. package/dist/ui/spinner.js +2 -0
  1392. package/dist/ui/spinner.mjs +2 -0
  1393. package/dist/ui/tags.js +2 -0
  1394. package/dist/ui/tags.mjs +2 -0
  1395. package/dist/ui/ticker.js +2 -0
  1396. package/dist/ui/ticker.mjs +2 -0
  1397. package/dist/util/blob.d.ts +3 -0
  1398. package/dist/util/blob.d.ts.map +1 -0
  1399. package/dist/util/blob.js +23 -0
  1400. package/dist/util/copy-to-clipboard.d.ts +2 -0
  1401. package/dist/util/copy-to-clipboard.d.ts.map +1 -0
  1402. package/dist/util/copy-to-clipboard.js +18 -0
  1403. package/dist/util/create-shadow-root.d.ts +8 -0
  1404. package/dist/util/create-shadow-root.d.ts.map +1 -0
  1405. package/dist/util/create-shadow-root.js +18 -0
  1406. package/dist/util/date.d.ts +29 -0
  1407. package/dist/util/date.d.ts.map +1 -0
  1408. package/dist/util/date.js +60 -0
  1409. package/dist/util/debounce.d.ts +2 -0
  1410. package/dist/util/debounce.d.ts.map +1 -0
  1411. package/dist/util/debounce.js +11 -0
  1412. package/dist/util/file.d.ts +4 -0
  1413. package/dist/util/file.d.ts.map +1 -0
  1414. package/dist/util/file.js +13 -0
  1415. package/dist/util/format-and-abbreviate-as-currency.d.ts +18 -0
  1416. package/dist/util/format-and-abbreviate-as-currency.d.ts.map +1 -0
  1417. package/dist/util/format-and-abbreviate-as-currency.js +91 -0
  1418. package/dist/util/format-text.d.ts +8 -0
  1419. package/dist/util/format-text.d.ts.map +1 -0
  1420. package/dist/util/format-text.js +26 -0
  1421. package/dist/util/format-to-max-char.d.ts +12 -0
  1422. package/dist/util/format-to-max-char.d.ts.map +1 -0
  1423. package/dist/util/format-to-max-char.js +57 -0
  1424. package/dist/util/index-client.d.ts +3 -0
  1425. package/dist/util/index-client.d.ts.map +1 -0
  1426. package/dist/util/index-client.js +3 -0
  1427. package/dist/util/index.d.ts +37 -0
  1428. package/dist/util/index.d.ts.map +1 -0
  1429. package/dist/util/index.js +80 -0
  1430. package/dist/util/index.mjs +1 -0
  1431. package/dist/util/number-abbreviate.d.ts +10 -0
  1432. package/dist/util/number-abbreviate.d.ts.map +1 -0
  1433. package/dist/util/number-abbreviate.js +30 -0
  1434. package/dist/util/specifier.d.ts +8 -0
  1435. package/dist/util/specifier.d.ts.map +1 -0
  1436. package/dist/util/specifier.js +31 -0
  1437. package/dist/util/spread-to-transform.d.ts +8 -0
  1438. package/dist/util/spread-to-transform.d.ts.map +1 -0
  1439. package/dist/util/spread-to-transform.js +19 -0
  1440. package/dist/util/step-animation.d.ts +6 -0
  1441. package/dist/util/step-animation.d.ts.map +1 -0
  1442. package/dist/util/step-animation.js +60 -0
  1443. package/dist/util/timing.d.ts +2 -0
  1444. package/dist/util/timing.d.ts.map +1 -0
  1445. package/dist/util/timing.js +3 -0
  1446. package/dist/util/toasts.d.ts +3 -0
  1447. package/dist/util/toasts.d.ts.map +1 -0
  1448. package/dist/util/toasts.js +10 -0
  1449. package/dist/util/two-way-map.d.ts +9 -0
  1450. package/dist/util/two-way-map.d.ts.map +1 -0
  1451. package/dist/util/two-way-map.js +16 -0
  1452. package/dist/util/use-mobile.d.ts +2 -0
  1453. package/dist/util/use-mobile.d.ts.map +1 -0
  1454. package/dist/util/use-mobile.js +15 -0
  1455. package/dist/utils.d.ts +4 -0
  1456. package/dist/utils.d.ts.map +1 -0
  1457. package/dist/utils.js +7 -0
  1458. package/dist/wallet/index.js +3 -0
  1459. package/dist/wallet/index.mjs +3 -0
  1460. package/docs/_registry/index.ts +426 -0
  1461. package/docs/_registry/layout/docs-min.tsx +197 -0
  1462. package/docs/_registry/layout/page-min.tsx +128 -0
  1463. package/docs/components/accordion.tsx +118 -0
  1464. package/docs/components/banner.tsx +144 -0
  1465. package/docs/components/callout.tsx +112 -0
  1466. package/docs/components/card.tsx +52 -0
  1467. package/docs/components/codeblock.tsx +258 -0
  1468. package/docs/components/dialog/search-algolia.tsx +132 -0
  1469. package/docs/components/dialog/search-default.tsx +131 -0
  1470. package/docs/components/dialog/search-orama.tsx +143 -0
  1471. package/docs/components/dialog/search.tsx +529 -0
  1472. package/docs/components/dynamic-codeblock.tsx +129 -0
  1473. package/docs/components/files.tsx +81 -0
  1474. package/docs/components/github-info.tsx +107 -0
  1475. package/docs/components/heading.tsx +33 -0
  1476. package/docs/components/image-zoom.css +77 -0
  1477. package/docs/components/image-zoom.tsx +58 -0
  1478. package/docs/components/index.ts +7 -0
  1479. package/docs/components/inline-toc.tsx +48 -0
  1480. package/docs/components/sidebar/base.tsx +451 -0
  1481. package/docs/components/sidebar/link-item.tsx +65 -0
  1482. package/docs/components/sidebar/page-tree.tsx +113 -0
  1483. package/docs/components/sidebar/tabs/dropdown.tsx +109 -0
  1484. package/docs/components/sidebar/tabs/index.tsx +89 -0
  1485. package/docs/components/steps.tsx +9 -0
  1486. package/docs/components/tabs.tsx +203 -0
  1487. package/docs/components/toc/clerk.tsx +173 -0
  1488. package/docs/components/toc/default.tsx +57 -0
  1489. package/docs/components/toc/index.tsx +136 -0
  1490. package/docs/components/type-table.tsx +174 -0
  1491. package/docs/components/ui/accordion.tsx +88 -0
  1492. package/docs/components/ui/button.tsx +28 -0
  1493. package/docs/components/ui/collapsible.tsx +42 -0
  1494. package/docs/components/ui/navigation-menu.tsx +83 -0
  1495. package/docs/components/ui/popover.tsx +32 -0
  1496. package/docs/components/ui/scroll-area.tsx +59 -0
  1497. package/docs/components/ui/tabs.tsx +145 -0
  1498. package/docs/contexts/i18n.tsx +56 -0
  1499. package/docs/contexts/search.tsx +165 -0
  1500. package/docs/contexts/tree.tsx +65 -0
  1501. package/docs/css/aspen.css +39 -0
  1502. package/docs/css/black.css +39 -0
  1503. package/docs/css/catppuccin.css +49 -0
  1504. package/docs/css/colors/index.css +51 -0
  1505. package/docs/css/dusk.css +47 -0
  1506. package/docs/css/emerald.css +39 -0
  1507. package/docs/css/layouts/docs.css +1 -0
  1508. package/docs/css/layouts/home.css +1 -0
  1509. package/docs/css/layouts/notebook.css +1 -0
  1510. package/docs/css/neutral.css +7 -0
  1511. package/docs/css/ocean.css +48 -0
  1512. package/docs/css/preset.css +305 -0
  1513. package/docs/css/purple.css +39 -0
  1514. package/docs/css/ruby.css +39 -0
  1515. package/docs/css/shadcn.css +36 -0
  1516. package/docs/css/shiki.css +90 -0
  1517. package/docs/css/solar.css +75 -0
  1518. package/docs/css/style.css +9 -0
  1519. package/docs/css/vitepress.css +77 -0
  1520. package/docs/i18n.tsx +30 -0
  1521. package/docs/icons.tsx +354 -0
  1522. package/docs/layouts/docs/client.tsx +129 -0
  1523. package/docs/layouts/docs/index.tsx +321 -0
  1524. package/docs/layouts/docs/page/client.tsx +376 -0
  1525. package/docs/layouts/docs/page/index.tsx +251 -0
  1526. package/docs/layouts/docs/sidebar.tsx +265 -0
  1527. package/docs/layouts/home/client.tsx +375 -0
  1528. package/docs/layouts/home/index.tsx +51 -0
  1529. package/docs/layouts/home/navbar.tsx +55 -0
  1530. package/docs/layouts/notebook/client.tsx +281 -0
  1531. package/docs/layouts/notebook/index.tsx +461 -0
  1532. package/docs/layouts/notebook/page/client.tsx +375 -0
  1533. package/docs/layouts/notebook/page/index.tsx +251 -0
  1534. package/docs/layouts/notebook/sidebar.tsx +248 -0
  1535. package/docs/layouts/shared/index.tsx +89 -0
  1536. package/docs/layouts/shared/language-toggle.tsx +66 -0
  1537. package/docs/layouts/shared/link-item.tsx +119 -0
  1538. package/docs/layouts/shared/search-toggle.tsx +78 -0
  1539. package/docs/layouts/shared/theme-toggle.tsx +86 -0
  1540. package/docs/mdx.server.tsx +37 -0
  1541. package/docs/mdx.tsx +97 -0
  1542. package/docs/og.tsx +101 -0
  1543. package/docs/page.tsx +85 -0
  1544. package/docs/provider/base.tsx +173 -0
  1545. package/docs/provider/next.tsx +23 -0
  1546. package/docs/provider/react-router.tsx +23 -0
  1547. package/docs/provider/tanstack.tsx +23 -0
  1548. package/docs/provider/waku.tsx +23 -0
  1549. package/docs/source.ts +3 -0
  1550. package/docs/theme/typography/LICENSE +21 -0
  1551. package/docs/theme/typography/index.ts +201 -0
  1552. package/docs/theme/typography/styles.ts +449 -0
  1553. package/docs/utils/cn.ts +1 -0
  1554. package/docs/utils/is-active.ts +23 -0
  1555. package/docs/utils/merge-refs.ts +15 -0
  1556. package/docs/utils/use-copy-button.ts +39 -0
  1557. package/docs/utils/use-footer-items.ts +27 -0
  1558. package/docs/utils/use-is-scroll-top.ts +21 -0
  1559. package/finance/README.md +164 -0
  1560. package/finance/components/AdvancedChart.tsx +58 -0
  1561. package/finance/components/CompanyProfile.tsx +65 -0
  1562. package/finance/components/CryptoScreener.tsx +55 -0
  1563. package/finance/components/Financials.tsx +71 -0
  1564. package/finance/components/ForexScreener.tsx +56 -0
  1565. package/finance/components/MarketOverview.tsx +114 -0
  1566. package/finance/components/NewsTimeline.tsx +54 -0
  1567. package/finance/components/OrderEntry.tsx +157 -0
  1568. package/finance/components/OrdersHistory.tsx +103 -0
  1569. package/finance/components/PositionsList.tsx +85 -0
  1570. package/finance/components/StockScreener.tsx +56 -0
  1571. package/finance/components/SymbolInfo.tsx +62 -0
  1572. package/finance/components/TechnicalAnalysis.tsx +74 -0
  1573. package/finance/components/TickerTape.tsx +66 -0
  1574. package/finance/components/TradingPanel.tsx +238 -0
  1575. package/finance/components/index.ts +40 -0
  1576. package/finance/index.ts +23 -0
  1577. package/package.json +871 -0
  1578. package/style/drawer.css +163 -0
  1579. package/style/globals.css +146 -0
  1580. package/style/hanzo-common.css +31 -0
  1581. package/style/hanzo-default-colors.css +147 -0
  1582. package/style/tailwind.css +200 -0
  1583. package/style/theme-provider.tsx +20 -0
@@ -0,0 +1,4 @@
1
+ "use client";
2
+ import*as r from'react';import {cva}from'class-variance-authority';import {Terminal,RefreshCw,Copy,Download,Minimize2,Maximize2,ChevronRight}from'lucide-react';import {cn}from'@hanzo/ui-shadcn/lib/utils';import {Button}from'@hanzo/ui-shadcn/button';import {Input}from'@hanzo/ui-shadcn/input';import {ScrollArea}from'@hanzo/ui-shadcn/scroll-area';import {Separator}from'@hanzo/ui-shadcn/separator';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var Z=Object.defineProperty;var b=(c,f)=>Z(c,"name",{value:f,configurable:true});var me=cva("relative flex flex-col overflow-hidden rounded-lg border",{variants:{theme:{dark:"bg-black border-gray-700 text-green-400",light:"bg-white border-gray-300 text-gray-900",matrix:"bg-black border-green-500 text-green-400",hacker:"bg-gray-900 border-yellow-500 text-yellow-400",retro:"bg-amber-900 border-amber-600 text-amber-100",modern:"bg-slate-900 border-slate-700 text-slate-100"},size:{sm:"text-xs",default:"text-sm",lg:"text-base"}},defaultVariants:{theme:"dark",size:"default"}}),n={black:"text-black",red:"text-red-500",green:"text-green-500",yellow:"text-yellow-500",blue:"text-blue-500",magenta:"text-magenta-500",cyan:"text-cyan-500",white:"text-white",gray:"text-gray-500",brightRed:"text-red-400",brightGreen:"text-green-400",brightYellow:"text-yellow-400",brightBlue:"text-blue-400",brightMagenta:"text-magenta-400",brightCyan:"text-cyan-400",brightWhite:"text-gray-100"},ue=b(c=>{let f=/\x1b\[([0-9;]*)m/g,x=[],d=0,a=[],o;for(;(o=f.exec(c))!==null;)o.index>d&&x.push({text:c.slice(d,o.index),classes:[...a]}),o[1].split(";").map(m=>parseInt(m)||0).forEach(m=>{switch(m){case 0:a=[];break;case 30:a.push(n.black);break;case 31:a.push(n.red);break;case 32:a.push(n.green);break;case 33:a.push(n.yellow);break;case 34:a.push(n.blue);break;case 35:a.push(n.magenta);break;case 36:a.push(n.cyan);break;case 37:a.push(n.white);break;case 90:a.push(n.gray);break;case 91:a.push(n.brightRed);break;case 92:a.push(n.brightGreen);break;case 93:a.push(n.brightYellow);break;case 94:a.push(n.brightBlue);break;case 95:a.push(n.brightMagenta);break;case 96:a.push(n.brightCyan);break;case 97:a.push(n.brightWhite);break}}),d=o.index+o[0].length;return d<c.length&&x.push({text:c.slice(d),classes:[...a]}),x.map((y,m)=>jsx("span",{className:cn(y.classes),children:y.text},m))},"parseAnsiContent"),de=r.forwardRef(({className:c,theme:f,size:x,title:d="Terminal",prompt:a="$",maxLines:o=1e3,showLineNumbers:y=false,allowInput:m=true,allowClear:z=true,allowCopy:H=true,allowDownload:A=false,allowFullscreen:B=true,height:F="400px",autoScroll:M=true,history:P=[],onCommand:L,onClear:w,initialLines:U=[],...V},j)=>{let[u,D]=r.useState(U),[S,v]=r.useState(""),[k,N]=r.useState(-1),[R,O]=r.useState(false),[p,K]=r.useState(P),C=r.useRef(null),E=r.useRef(null);r.useEffect(()=>{M&&C.current&&(C.current.scrollTop=C.current.scrollHeight);},[u,M]);let h=r.useCallback(e=>{let s={...e,id:`line-${Date.now()}-${Math.random()}`,timestamp:Date.now()};D(g=>{let l=[...g,s];return l.length>o?l.slice(-o):l});},[o]),W=r.useCallback(async e=>{if(e.trim()){if(K(s=>[...s,e]),N(-1),h({type:"input",content:`${a} ${e}`,command:e}),e==="clear"){w?w():D([]);return}if(e==="history"){p.forEach((s,g)=>{h({type:"output",content:`${g+1} ${s}`});});return}if(e.startsWith("echo ")){h({type:"output",content:e.slice(5)});return}if(L)try{await L(e);}catch(s){h({type:"error",content:s instanceof Error?s.message:String(s),exitCode:1});}else h({type:"error",content:`Command not found: ${e}`,exitCode:127});}},[a,h,L,w,p]),G=b(e=>{e.preventDefault(),S.trim()&&(W(S),v(""));},"handleInputSubmit"),Y=b(e=>{if(e.key==="ArrowUp"){if(e.preventDefault(),k<p.length-1){let s=k+1;N(s),v(p[p.length-1-s]||"");}}else if(e.key==="ArrowDown")if(e.preventDefault(),k>0){let s=k-1;N(s),v(p[p.length-1-s]||"");}else k===0&&(N(-1),v(""));},"handleKeyDown"),q=r.useCallback(async()=>{let e=u.map(s=>s.content).join(`
3
+ `);try{await navigator.clipboard.writeText(e);}catch(s){console.error("Failed to copy terminal content:",s);}},[u]),X=r.useCallback(()=>{let e=u.map($=>`[${new Date($.timestamp).toISOString()}] ${$.content}`).join(`
4
+ `),s=new Blob([e],{type:"text/plain"}),g=URL.createObjectURL(s),l=document.createElement("a");l.href=g,l.download=`terminal-${Date.now()}.txt`,document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(g);},[u]),J=b(()=>{w?w():D([]);},"clearTerminal"),Q=b(()=>{m&&E.current&&E.current.focus();},"handleTerminalClick");return jsxs("div",{ref:j,className:cn(me({theme:f,size:x}),R&&"fixed inset-0 z-50",c),style:{height:R?"100vh":F},onClick:Q,...V,children:[jsxs("div",{className:"flex items-center justify-between border-b px-4 py-2 bg-muted/30",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsxs("div",{className:"flex gap-1",children:[jsx("div",{className:"w-3 h-3 rounded-full bg-red-500"}),jsx("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),jsx("div",{className:"w-3 h-3 rounded-full bg-green-500"})]}),jsx(Terminal,{className:"h-4 w-4"}),jsx("span",{className:"text-sm font-medium",children:d}),u.length>0&&jsxs("span",{className:"text-xs text-muted-foreground",children:[u.length," lines"]})]}),jsxs("div",{className:"flex items-center gap-1",children:[z&&jsx(Button,{variant:"ghost",size:"sm",onClick:J,className:"h-8 w-8 p-0",children:jsx(RefreshCw,{className:"h-3.5 w-3.5"})}),H&&jsx(Button,{variant:"ghost",size:"sm",onClick:q,className:"h-8 w-8 p-0",children:jsx(Copy,{className:"h-3.5 w-3.5"})}),A&&jsx(Button,{variant:"ghost",size:"sm",onClick:X,className:"h-8 w-8 p-0",children:jsx(Download,{className:"h-3.5 w-3.5"})}),B&&jsx(Button,{variant:"ghost",size:"sm",onClick:()=>O(!R),className:"h-8 w-8 p-0",children:R?jsx(Minimize2,{className:"h-3.5 w-3.5"}):jsx(Maximize2,{className:"h-3.5 w-3.5"})})]})]}),jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[jsx(ScrollArea,{ref:C,className:"flex-1 p-4",children:jsx("div",{className:"space-y-1 font-mono",children:u.map((e,s)=>jsxs("div",{className:"flex items-start gap-2",children:[y&&jsx("span",{className:"text-xs text-muted-foreground w-12 text-right flex-shrink-0",children:s+1}),jsx("div",{className:cn("flex-1 whitespace-pre-wrap break-words",e.type==="input"&&"text-inherit",e.type==="output"&&"text-muted-foreground",e.type==="error"&&"text-red-400",e.type==="system"&&"text-blue-400"),children:typeof e.content=="string"&&e.content.includes("\x1B[")?ue(e.content):e.content})]},e.id))})}),m&&jsxs(Fragment,{children:[jsx(Separator,{}),jsx("form",{onSubmit:G,className:"p-4",children:jsxs("div",{className:"flex items-center gap-2 font-mono",children:[jsx(ChevronRight,{className:"h-4 w-4 flex-shrink-0"}),jsx("span",{className:"flex-shrink-0",children:a}),jsx(Input,{ref:E,value:S,onChange:e=>v(e.target.value),onKeyDown:Y,className:"flex-1 border-0 bg-transparent p-0 focus-visible:ring-0 font-mono",placeholder:"Enter command...",autoComplete:"off",autoFocus:true})]})})]})]})]})});de.displayName="CodeTerminal";export{de as CodeTerminal,me as codeTerminalVariants};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var l=require('@radix-ui/react-collapsible');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var l__namespace=/*#__PURE__*/_interopNamespace(l);var i=l__namespace.Root,o=l__namespace.CollapsibleTrigger,e=l__namespace.CollapsibleContent;exports.Collapsible=i;exports.CollapsibleContent=e;exports.CollapsibleTrigger=o;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import*as l from'@radix-ui/react-collapsible';var i=l.Root,o=l.CollapsibleTrigger,e=l.CollapsibleContent;export{i as Collapsible,e as CollapsibleContent,o as CollapsibleTrigger};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var cmdk=require('cmdk'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),r=require('@radix-ui/react-dialog'),reactSlot=require('@radix-ui/react-slot'),classVarianceAuthority=require('class-variance-authority'),u=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var r__namespace=/*#__PURE__*/_interopNamespace(r);var u__namespace=/*#__PURE__*/_interopNamespace(u);var C=Object.defineProperty;var o=(t,e)=>C(t,"name",{value:e,configurable:true});function a(...t){return tailwindMerge.twMerge(clsx.clsx(t))}o(a,"cn");var w=classVarianceAuthority.cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground shadow hover:bg-primary/90",linkFG:"text-primary underline-offset-4 hover:underline",linkMuted:"text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}}),m=u__namespace.forwardRef(({className:t,variant:e="default",size:n="default",asChild:d=false,isLoading:c=false,children:y,...x},h)=>jsxRuntime.jsxs(d?reactSlot.Slot:"button",{"data-slot":"button","data-variant":e,"data-size":n,className:a(w({variant:e,size:n,className:t})),ref:h,...x,children:[c?jsxRuntime.jsx(lucideReact.Loader2,{className:a("h-4 w-4 animate-spin",n!=="icon"&&n!=="icon-sm"&&n!=="icon-lg"&&"mr-2")}):null,c&&(n==="icon"||n==="icon-sm"||n==="icon-lg")?null:y]}));m.displayName="Button";function g({...t}){return jsxRuntime.jsx(r__namespace.Root,{"data-slot":"dialog",...t})}o(g,"Dialog");function L({...t}){return jsxRuntime.jsx(r__namespace.Portal,{"data-slot":"dialog-portal",...t})}o(L,"DialogPortal");function T({className:t,...e}){return jsxRuntime.jsx(r__namespace.Overlay,{"data-slot":"dialog-overlay",className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 isolate z-50","bg-black/80",t),...e})}o(T,"DialogOverlay");function f({className:t,children:e,showCloseButton:n=true,...d}){return jsxRuntime.jsxs(L,{children:[jsxRuntime.jsx(T,{}),jsxRuntime.jsxs(r__namespace.Content,{"data-slot":"dialog-content",className:a("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg duration-200",t),...d,children:[e,n&&jsxRuntime.jsx(r__namespace.Close,{"data-slot":"dialog-close",asChild:true,children:jsxRuntime.jsxs(m,{variant:"ghost",size:"icon-sm",className:"absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none",children:[jsxRuntime.jsx(lucideReact.X,{className:"size-4"}),jsxRuntime.jsx("span",{className:"sr-only",children:"Close"})]})})]})]})}o(f,"DialogContent");var v=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command,{className:a("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md [&_[cmdk-list]]:scroll-pt-0 [&_[cmdk-list]]:scroll-auto",t),loop:true,...e}),"Command");v.displayName=cmdk.Command.displayName;var dt=o(({children:t,...e})=>jsxRuntime.jsx(g,{...e,children:jsxRuntime.jsx(f,{className:"overflow-hidden p-0 shadow-lg",children:jsxRuntime.jsx(v,{className:"[&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:t})})}),"CommandDialog"),I=o(({className:t,ref:e,...n})=>jsxRuntime.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[jsxRuntime.jsx(lucideReact.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),jsxRuntime.jsx(cmdk.Command.Input,{className:a("placeholder:!text-text-placeholder flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),ref:e,...n})]}),"CommandInput");I.displayName=cmdk.Command.Input.displayName;var E=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.List,{className:a("max-h-[300px] scroll-pt-0 overflow-x-hidden overflow-y-auto scroll-auto",t),...e}),"CommandList");E.displayName=cmdk.Command.List.displayName;var z=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Empty,{className:"py-6 text-center text-sm",...e}),"CommandEmpty");z.displayName=cmdk.Command.Empty.displayName;var M=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Group,{className:a("text-text-default [&_[cmdk-group-heading]]:text-text-default overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...e}),"CommandGroup");M.displayName=cmdk.Command.Group.displayName;var V=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Separator,{className:a("bg-divider -mx-1 h-px",t),...e}),"CommandSeparator");V.displayName=cmdk.Command.Separator.displayName;var H=o(({className:t,...e})=>jsxRuntime.jsx(cmdk.Command.Item,{className:a("hover:bg-bg-secondary data-[selected=true]:text-text-default data-[selected='true']:bg-bg-secondary relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",t),...e}),"CommandItem");H.displayName=cmdk.Command.Item.displayName;var G=o(({className:t,...e})=>jsxRuntime.jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...e}),"CommandShortcut");G.displayName="CommandShortcut";exports.Command=v;exports.CommandDialog=dt;exports.CommandEmpty=z;exports.CommandGroup=M;exports.CommandInput=I;exports.CommandItem=H;exports.CommandList=E;exports.CommandSeparator=V;exports.CommandShortcut=G;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import {Command}from'cmdk';import {Loader2,Search,X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import*as r from'@radix-ui/react-dialog';import {Slot}from'@radix-ui/react-slot';import {cva}from'class-variance-authority';import*as u from'react';import {jsxs,jsx}from'react/jsx-runtime';var C=Object.defineProperty;var o=(t,e)=>C(t,"name",{value:e,configurable:true});function a(...t){return twMerge(clsx(t))}o(a,"cn");var w=cva('inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*="size-"])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline",primary:"bg-primary text-primary-foreground shadow hover:bg-primary/90",linkFG:"text-primary underline-offset-4 hover:underline",linkMuted:"text-muted-foreground underline-offset-4 hover:underline hover:text-foreground"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}}),m=u.forwardRef(({className:t,variant:e="default",size:n="default",asChild:d=false,isLoading:c=false,children:y,...x},h)=>jsxs(d?Slot:"button",{"data-slot":"button","data-variant":e,"data-size":n,className:a(w({variant:e,size:n,className:t})),ref:h,...x,children:[c?jsx(Loader2,{className:a("h-4 w-4 animate-spin",n!=="icon"&&n!=="icon-sm"&&n!=="icon-lg"&&"mr-2")}):null,c&&(n==="icon"||n==="icon-sm"||n==="icon-lg")?null:y]}));m.displayName="Button";function g({...t}){return jsx(r.Root,{"data-slot":"dialog",...t})}o(g,"Dialog");function L({...t}){return jsx(r.Portal,{"data-slot":"dialog-portal",...t})}o(L,"DialogPortal");function T({className:t,...e}){return jsx(r.Overlay,{"data-slot":"dialog-overlay",className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 isolate z-50","bg-black/80",t),...e})}o(T,"DialogOverlay");function f({className:t,children:e,showCloseButton:n=true,...d}){return jsxs(L,{children:[jsx(T,{}),jsxs(r.Content,{"data-slot":"dialog-content",className:a("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 rounded-lg border p-6 shadow-lg duration-200",t),...d,children:[e,n&&jsx(r.Close,{"data-slot":"dialog-close",asChild:true,children:jsxs(m,{variant:"ghost",size:"icon-sm",className:"absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none",children:[jsx(X,{className:"size-4"}),jsx("span",{className:"sr-only",children:"Close"})]})})]})]})}o(f,"DialogContent");var v=o(({className:t,...e})=>jsx(Command,{className:a("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md [&_[cmdk-list]]:scroll-pt-0 [&_[cmdk-list]]:scroll-auto",t),loop:true,...e}),"Command");v.displayName=Command.displayName;var dt=o(({children:t,...e})=>jsx(g,{...e,children:jsx(f,{className:"overflow-hidden p-0 shadow-lg",children:jsx(v,{className:"[&_[cmdk-group-heading]]:text-text-secondary [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:t})})}),"CommandDialog"),I=o(({className:t,ref:e,...n})=>jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[jsx(Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),jsx(Command.Input,{className:a("placeholder:!text-text-placeholder flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50",t),ref:e,...n})]}),"CommandInput");I.displayName=Command.Input.displayName;var E=o(({className:t,...e})=>jsx(Command.List,{className:a("max-h-[300px] scroll-pt-0 overflow-x-hidden overflow-y-auto scroll-auto",t),...e}),"CommandList");E.displayName=Command.List.displayName;var z=o(({className:t,...e})=>jsx(Command.Empty,{className:"py-6 text-center text-sm",...e}),"CommandEmpty");z.displayName=Command.Empty.displayName;var M=o(({className:t,...e})=>jsx(Command.Group,{className:a("text-text-default [&_[cmdk-group-heading]]:text-text-default overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium",t),...e}),"CommandGroup");M.displayName=Command.Group.displayName;var V=o(({className:t,...e})=>jsx(Command.Separator,{className:a("bg-divider -mx-1 h-px",t),...e}),"CommandSeparator");V.displayName=Command.Separator.displayName;var H=o(({className:t,...e})=>jsx(Command.Item,{className:a("hover:bg-bg-secondary data-[selected=true]:text-text-default data-[selected='true']:bg-bg-secondary relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",t),...e}),"CommandItem");H.displayName=Command.Item.displayName;var G=o(({className:t,...e})=>jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...e}),"CommandShortcut");G.displayName="CommandShortcut";export{v as Command,dt as CommandDialog,z as CommandEmpty,M as CommandGroup,I as CommandInput,H as CommandItem,E as CommandList,V as CommandSeparator,G as CommandShortcut};
@@ -0,0 +1,11 @@
1
+ interface CalComEmbedProps {
2
+ calLink?: string;
3
+ email?: string;
4
+ name?: string;
5
+ meetingDate?: string;
6
+ height?: string | number;
7
+ className?: string;
8
+ }
9
+ export declare const CalComEmbed: ({ calLink, email, name, meetingDate, height, className }: CalComEmbedProps) => import("react/jsx-runtime").JSX.Element;
10
+ export default CalComEmbed;
11
+ //# sourceMappingURL=cal-embed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cal-embed.d.ts","sourceRoot":"","sources":["../../components/cal-embed.tsx"],"names":[],"mappings":"AAEA,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,0DAOzB,gBAAgB,4CAoDlB,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from 'react';
3
+ export const CalComEmbed = ({ calLink = 'adnexus/15min', email, name, meetingDate, height = '600px', className = '' }) => {
4
+ const iframeRef = useRef(null);
5
+ // Build cal.com URL with parameters
6
+ const buildCalUrl = () => {
7
+ const params = new URLSearchParams();
8
+ if (email)
9
+ params.append('email', email);
10
+ if (name)
11
+ params.append('name', name);
12
+ if (meetingDate)
13
+ params.append('date', meetingDate);
14
+ // Always enable overlay for better UX
15
+ params.append('embed', 'true');
16
+ const queryString = params.toString();
17
+ return `https://cal.com/${calLink}${queryString ? `?${queryString}` : ''}`;
18
+ };
19
+ useEffect(() => {
20
+ // Cal.com embed script for better integration
21
+ const script = document.createElement('script');
22
+ script.src = 'https://app.cal.com/embed/embed.js';
23
+ script.async = true;
24
+ document.body.appendChild(script);
25
+ return () => {
26
+ // Cleanup
27
+ if (document.body.contains(script)) {
28
+ document.body.removeChild(script);
29
+ }
30
+ };
31
+ }, []);
32
+ return (_jsx("div", { className: `cal-embed-container ${className}`, children: _jsx("iframe", { ref: iframeRef, src: buildCalUrl(), width: "100%", height: height, frameBorder: "0", allow: "camera; microphone; autoplay; encrypted-media;", style: {
33
+ border: 'none',
34
+ borderRadius: '8px',
35
+ overflow: 'hidden'
36
+ }, "data-cal-link": calLink, "data-cal-config": '{"layout":"month_view"}' }) }));
37
+ };
38
+ export default CalComEmbed;
@@ -0,0 +1,3 @@
1
+ export { cn, formatDate, absoluteUrl } from '../src/utils';
2
+ export * from '../primitives/index-next';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG1D,cAAc,0BAA0B,CAAA"}
@@ -0,0 +1,7 @@
1
+ // Component exports
2
+ // This file provides a central import point for all UI components
3
+ // Usage: import { Button, Card, cn } from '@hanzo/ui-shadcn/components'
4
+ // Export commonly used utilities
5
+ export { cn, formatDate, absoluteUrl } from '../src/utils';
6
+ // Re-export all primitives as components for backward compatibility
7
+ export * from '../primitives/index-next';
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var e=require('@radix-ui/react-context-menu'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var e__namespace=/*#__PURE__*/_interopNamespace(e);var u=Object.defineProperty;var i=(t,n)=>u(t,"name",{value:n,configurable:true});function a(...t){return tailwindMerge.twMerge(clsx.clsx(t))}i(a,"cn");var z=e__namespace.Root,G=e__namespace.Trigger,U=e__namespace.Group,D=e__namespace.Portal,_=e__namespace.Sub,j=e__namespace.RadioGroup,f=i(({className:t,inset:n,children:r,ref:s,...d})=>jsxRuntime.jsxs(e__namespace.SubTrigger,{className:a("focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white",n&&"pl-8",t),ref:s,...d,children:[r,jsxRuntime.jsx(lucideReact.ChevronRight,{className:"ml-auto h-4 w-4"})]}),"ContextMenuSubTrigger");f.displayName=e__namespace.SubTrigger.displayName;var M=i(({className:t,...n})=>jsxRuntime.jsx(e__namespace.SubContent,{className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md",t),...n}),"ContextMenuSubContent");M.displayName=e__namespace.SubContent.displayName;var P=i(({className:t,...n})=>jsxRuntime.jsx(e__namespace.Portal,{children:jsxRuntime.jsx(e__namespace.Content,{className:a("animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md",t),...n})}),"ContextMenuContent");P.displayName=e__namespace.Content.displayName;var b=i(({className:t,inset:n,...r})=>jsxRuntime.jsx(e__namespace.Item,{className:a("relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",t),...r}),"ContextMenuItem");b.displayName=e__namespace.Item.displayName;var v=i(({className:t,children:n,checked:r,...s})=>jsxRuntime.jsxs(e__namespace.CheckboxItem,{checked:r,className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...s,children:[jsxRuntime.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntime.jsx(e__namespace.ItemIndicator,{children:jsxRuntime.jsx(lucideReact.Check,{className:"h-4 w-4"})})}),n]}),"ContextMenuCheckboxItem");v.displayName=e__namespace.CheckboxItem.displayName;var g=i(({className:t,children:n,...r})=>jsxRuntime.jsxs(e__namespace.RadioItem,{className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r,children:[jsxRuntime.jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsxRuntime.jsx(e__namespace.ItemIndicator,{children:jsxRuntime.jsx(lucideReact.Circle,{className:"h-2 w-2 fill-current"})})}),n]}),"ContextMenuRadioItem");g.displayName=e__namespace.RadioItem.displayName;var y=i(({className:t,inset:n,...r})=>jsxRuntime.jsx(e__namespace.Label,{className:a("text-text-default px-2 py-1.5 text-sm font-semibold",n&&"pl-8",t),...r}),"ContextMenuLabel");y.displayName=e__namespace.Label.displayName;var h=i(({className:t,...n})=>jsxRuntime.jsx(e__namespace.Separator,{className:a("bg-border -mx-1 my-1 h-px",t),...n}),"ContextMenuSeparator");h.displayName=e__namespace.Separator.displayName;var N=i(({className:t,...n})=>jsxRuntime.jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...n}),"ContextMenuShortcut");N.displayName="ContextMenuShortcut";exports.ContextMenu=z;exports.ContextMenuCheckboxItem=v;exports.ContextMenuContent=P;exports.ContextMenuGroup=U;exports.ContextMenuItem=b;exports.ContextMenuLabel=y;exports.ContextMenuPortal=D;exports.ContextMenuRadioGroup=j;exports.ContextMenuRadioItem=g;exports.ContextMenuSeparator=h;exports.ContextMenuShortcut=N;exports.ContextMenuSub=_;exports.ContextMenuSubContent=M;exports.ContextMenuSubTrigger=f;exports.ContextMenuTrigger=G;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import*as e from'@radix-ui/react-context-menu';import {ChevronRight,Check,Circle}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var u=Object.defineProperty;var i=(t,n)=>u(t,"name",{value:n,configurable:true});function a(...t){return twMerge(clsx(t))}i(a,"cn");var z=e.Root,G=e.Trigger,U=e.Group,D=e.Portal,_=e.Sub,j=e.RadioGroup,f=i(({className:t,inset:n,children:r,ref:s,...d})=>jsxs(e.SubTrigger,{className:a("focus:bg-accent data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:text-white",n&&"pl-8",t),ref:s,...d,children:[r,jsx(ChevronRight,{className:"ml-auto h-4 w-4"})]}),"ContextMenuSubTrigger");f.displayName=e.SubTrigger.displayName;var M=i(({className:t,...n})=>jsx(e.SubContent,{className:a("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-gray-300 p-1 text-white shadow-md",t),...n}),"ContextMenuSubContent");M.displayName=e.SubContent.displayName;var P=i(({className:t,...n})=>jsx(e.Portal,{children:jsx(e.Content,{className:a("animate-in fade-in-80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-gray-600 bg-gray-300 p-1 text-gray-50 shadow-md",t),...n})}),"ContextMenuContent");P.displayName=e.Content.displayName;var b=i(({className:t,inset:n,...r})=>jsx(e.Item,{className:a("relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none focus:bg-gray-200 focus:text-white data-[disabled]:pointer-events-none data-[disabled]:opacity-50",n&&"pl-8",t),...r}),"ContextMenuItem");b.displayName=e.Item.displayName;var v=i(({className:t,children:n,checked:r,...s})=>jsxs(e.CheckboxItem,{checked:r,className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...s,children:[jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsx(e.ItemIndicator,{children:jsx(Check,{className:"h-4 w-4"})})}),n]}),"ContextMenuCheckboxItem");v.displayName=e.CheckboxItem.displayName;var g=i(({className:t,children:n,...r})=>jsxs(e.RadioItem,{className:a("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",t),...r,children:[jsx("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:jsx(e.ItemIndicator,{children:jsx(Circle,{className:"h-2 w-2 fill-current"})})}),n]}),"ContextMenuRadioItem");g.displayName=e.RadioItem.displayName;var y=i(({className:t,inset:n,...r})=>jsx(e.Label,{className:a("text-text-default px-2 py-1.5 text-sm font-semibold",n&&"pl-8",t),...r}),"ContextMenuLabel");y.displayName=e.Label.displayName;var h=i(({className:t,...n})=>jsx(e.Separator,{className:a("bg-border -mx-1 my-1 h-px",t),...n}),"ContextMenuSeparator");h.displayName=e.Separator.displayName;var N=i(({className:t,...n})=>jsx("span",{className:a("text-text-secondary ml-auto text-xs tracking-widest",t),...n}),"ContextMenuShortcut");N.displayName="ContextMenuShortcut";export{z as ContextMenu,v as ContextMenuCheckboxItem,P as ContextMenuContent,U as ContextMenuGroup,b as ContextMenuItem,y as ContextMenuLabel,D as ContextMenuPortal,j as ContextMenuRadioGroup,g as ContextMenuRadioItem,h as ContextMenuSeparator,N as ContextMenuShortcut,_ as ContextMenuSub,M as ContextMenuSubContent,f as ContextMenuSubTrigger,G as ContextMenuTrigger};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var $=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var $__namespace=/*#__PURE__*/_interopNamespace($);var I=Object.defineProperty;var c=(e,r)=>I(e,"name",{value:r,configurable:true});function n(...e){return tailwindMerge.twMerge(clsx.clsx(e))}c(n,"cn");function Z({columns:e,data:r,rowKey:h,selectable:i=false,selectedKeys:m,onSelectionChange:p,searchable:y=false,searchPlaceholder:b="Search...",totalRows:o,page:u=0,pageSize:P=20,onPageChange:F,onPageSizeChange:D,actions:V,loading:q=false,emptyMessage:d="No data",className:l}){let[a,g]=$__namespace.useState(""),[w,K]=$__namespace.useState(null),z=$__namespace.useMemo(()=>{if(!a)return r;let t=a.toLowerCase();return r.filter(f=>e.some(M=>(M.cell?"":String(f[M.id]??"")).toLowerCase().includes(t)))},[r,a,e]),j=$__namespace.useMemo(()=>{if(!w)return z;let{column:t,direction:f}=w;return [...z].sort((M,T)=>{let H=M[t],Q=T[t];if(H==null&&Q==null)return 0;if(H==null)return 1;if(Q==null)return -1;let Y=String(H).localeCompare(String(Q),void 0,{numeric:true});return f==="asc"?Y:-Y})},[z,w]),O=o??j.length,E=Math.max(1,Math.ceil(O/P)),L=F?j:j.slice(u*P,(u+1)*P),C=m??new Set,W=L.length>0&&L.every(t=>C.has(h(t)));function _(){p&&p(W?new Set:new Set(L.map(h)));}c(_,"toggleAll");function A(t){if(!p)return;let f=new Set(C);f.has(t)?f.delete(t):f.add(t),p(f);}c(A,"toggleRow");function G(t){K(f=>f?.column===t?f.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}c(G,"handleSort");let x=V?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxRuntime.jsxs("div",{className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",l),children:[(y||i)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[y&&jsxRuntime.jsx("input",{type:"text",placeholder:b,value:a,onChange:t=>g(t.target.value),className:n("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),i&&C.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[C.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[i&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:W,onChange:_,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),x.map(t=>jsxRuntime.jsx("th",{style:t.width?{width:t.width}:void 0,className:n("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>G(t.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&w?.column===t.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:w.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsxRuntime.jsx("tbody",{children:q?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):L.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:d})}):L.map(t=>{let f=h(t),M=C.has(f);return jsxRuntime.jsxs("tr",{className:n("border-b border-[var(--dash-border)] transition-colors",M?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[i&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:M,onChange:()=>A(f),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(T=>jsxRuntime.jsx("td",{className:n("px-4 py-2.5",T.align==="center"&&"text-center",T.align==="right"&&"text-right"),children:T.cell?T.cell(t):String(t[T.id]??"")},T.id)),V&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:V(t)})]},f)})})]})}),E>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:P,onChange:t=>D?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",u+1," of ",E]}),jsxRuntime.jsx("button",{type:"button",disabled:u===0,onClick:()=>F?.(u-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:u>=E-1,onClick:()=>F?.(u+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}c(Z,"Table");function U({title:e,fields:r,values:h,onSubmit:i,onCancel:m,submitLabel:p="Save",cancelLabel:y="Cancel",loading:b=false,className:o}){let[u,P]=$__namespace.useState(()=>{let d={};for(let l of r)d[l.name]=h?.[l.name]??l.defaultValue??(l.type==="toggle"?false:"");return d}),[F,D]=$__namespace.useState({});function V(d,l){P(a=>({...a,[d]:l})),D(a=>{if(!a[d])return a;let g={...a};return delete g[d],g});}c(V,"setValue");async function q(d){d.preventDefault();let l={};for(let a of r){let g=u[a.name];if(a.required&&(g===""||g===null||g===void 0)&&(l[a.name]=`${a.label} is required`),a.validate){let w=a.validate(g);w&&(l[a.name]=w);}}if(Object.keys(l).length>0){D(l);return}await i(u);}return c(q,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:q,className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",o),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:r.map(d=>jsxRuntime.jsx(re,{field:d,value:u[d.name],error:F[d.name],onChange:l=>V(d.name,l)},d.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:b?"Saving...":p}),m&&jsxRuntime.jsx("button",{type:"button",onClick:m,disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:y})]})]})}c(U,"Form");var J=n("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function re({field:e,value:r,error:h,onChange:i}){let m=`dash-field-${e.name}`,p=jsxRuntime.jsxs("label",{htmlFor:m,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),y=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,b=h?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:h}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("input",{id:m,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:o=>i(e.type==="number"?Number(o.target.value):o.target.value),className:n(J,h&&"border-[var(--dash-error)]")}),y,b]});case "textarea":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("textarea",{id:m,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:o=>i(o.target.value),className:n(J,"resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsxs("select",{id:m,value:String(r??""),disabled:e.disabled,onChange:o=>i(o.target.value),className:n(J,h&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(o=>jsxRuntime.jsx("option",{value:o.value,children:o.label},o.value))]}),y,b]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:m,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>i(!r),className:n("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:n("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:m,className:"text-sm text-[var(--dash-text)]",children:e.label}),y,b]});case "json":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("textarea",{id:m,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:o=>{try{i(JSON.parse(o.target.value));}catch{i(o.target.value);}},className:n(J,"font-mono text-xs resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "file":return jsxRuntime.jsxs("div",{children:[p,jsxRuntime.jsx("input",{id:m,type:"file",accept:e.accept,disabled:e.disabled,onChange:o=>{let u=o.target.files?.[0];u&&i(u);},className:n("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),y,b]});default:return null}}c(re,"FieldRenderer");function we({resourceName:e,resourceNamePlural:r,columns:h,data:i,rowKey:m,fields:p,rowToValues:y,onCreate:b,onUpdate:o,onDelete:u,canCreate:P=true,canEdit:F=true,canDelete:D=true,tableProps:V,loading:q=false,className:d}){let l=r??`${e}s`,[a,g]=$__namespace.useState("list"),[w,K]=$__namespace.useState(null),[z,j]=$__namespace.useState({}),[O,E]=$__namespace.useState(null),[L,C]=$__namespace.useState(false);function W(x){let t=m(x);K(t),j(y?y(x):x),g("edit");}c(W,"handleEdit");function _(x){E(m(x));}c(_,"handleDeleteConfirm");async function A(){if(!(!O||!u)){C(true);try{await u(O);}finally{C(false),E(null);}}}c(A,"confirmDelete");function G(x){return jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-1",children:[F&&o&&jsxRuntime.jsx("button",{type:"button",onClick:()=>W(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),D&&u&&jsxRuntime.jsx("button",{type:"button",onClick:()=>_(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return c(G,"actionsRenderer"),a==="list"?jsxRuntime.jsxs("div",{className:n("space-y-4",d),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:l}),P&&b&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{K(null),j({}),g("create");},className:n("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsxRuntime.jsx(Z,{columns:h,data:i,rowKey:m,actions:F||D?G:void 0,loading:q,searchable:true,emptyMessage:`No ${l.toLowerCase()} found`,...V}),O!==null&&jsxRuntime.jsx(ae,{resourceName:e,loading:L,onConfirm:A,onCancel:()=>E(null)})]}):jsxRuntime.jsxs("div",{className:n("space-y-4",d),children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>g("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",l]}),jsxRuntime.jsx(U,{title:a==="create"?`Create ${e}`:`Edit ${e}`,fields:p,values:a==="edit"?z:void 0,loading:L,submitLabel:a==="create"?"Create":"Save changes",onCancel:()=>g("list"),onSubmit:async x=>{C(true);try{a==="create"&&b?await b(x):a==="edit"&&w&&o&&await o(w,x),g("list");}finally{C(false);}}})]})}c(we,"Crud");function ae({resourceName:e,loading:r,onConfirm:h,onCancel:i}){return jsxRuntime.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxRuntime.jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxRuntime.jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxRuntime.jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsxRuntime.jsx("button",{type:"button",onClick:i,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsxRuntime.jsx("button",{type:"button",onClick:h,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}c(ae,"DeleteDialog");exports.Crud=we;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import*as $ from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var I=Object.defineProperty;var c=(e,r)=>I(e,"name",{value:r,configurable:true});function n(...e){return twMerge(clsx(e))}c(n,"cn");function Z({columns:e,data:r,rowKey:h,selectable:i=false,selectedKeys:m,onSelectionChange:p,searchable:y=false,searchPlaceholder:b="Search...",totalRows:o,page:u=0,pageSize:P=20,onPageChange:F,onPageSizeChange:D,actions:V,loading:q=false,emptyMessage:d="No data",className:l}){let[a,g]=$.useState(""),[w,K]=$.useState(null),z=$.useMemo(()=>{if(!a)return r;let t=a.toLowerCase();return r.filter(f=>e.some(M=>(M.cell?"":String(f[M.id]??"")).toLowerCase().includes(t)))},[r,a,e]),j=$.useMemo(()=>{if(!w)return z;let{column:t,direction:f}=w;return [...z].sort((M,T)=>{let H=M[t],Q=T[t];if(H==null&&Q==null)return 0;if(H==null)return 1;if(Q==null)return -1;let Y=String(H).localeCompare(String(Q),void 0,{numeric:true});return f==="asc"?Y:-Y})},[z,w]),O=o??j.length,E=Math.max(1,Math.ceil(O/P)),L=F?j:j.slice(u*P,(u+1)*P),C=m??new Set,W=L.length>0&&L.every(t=>C.has(h(t)));function _(){p&&p(W?new Set:new Set(L.map(h)));}c(_,"toggleAll");function A(t){if(!p)return;let f=new Set(C);f.has(t)?f.delete(t):f.add(t),p(f);}c(A,"toggleRow");function G(t){K(f=>f?.column===t?f.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}c(G,"handleSort");let x=V?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxs("div",{className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",l),children:[(y||i)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[y&&jsx("input",{type:"text",placeholder:b,value:a,onChange:t=>g(t.target.value),className:n("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),i&&C.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[C.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[i&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:W,onChange:_,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),x.map(t=>jsx("th",{style:t.width?{width:t.width}:void 0,className:n("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>G(t.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&w?.column===t.id&&jsx("span",{className:"text-[10px]",children:w.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsx("tbody",{children:q?jsx("tr",{children:jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):L.length===0?jsx("tr",{children:jsx("td",{colSpan:x.length+(i?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:d})}):L.map(t=>{let f=h(t),M=C.has(f);return jsxs("tr",{className:n("border-b border-[var(--dash-border)] transition-colors",M?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[i&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:M,onChange:()=>A(f),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(T=>jsx("td",{className:n("px-4 py-2.5",T.align==="center"&&"text-center",T.align==="right"&&"text-right"),children:T.cell?T.cell(t):String(t[T.id]??"")},T.id)),V&&jsx("td",{className:"px-4 py-2.5 text-right",children:V(t)})]},f)})})]})}),E>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:P,onChange:t=>D?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsx("option",{value:t,children:t},t))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",u+1," of ",E]}),jsx("button",{type:"button",disabled:u===0,onClick:()=>F?.(u-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:u>=E-1,onClick:()=>F?.(u+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}c(Z,"Table");function U({title:e,fields:r,values:h,onSubmit:i,onCancel:m,submitLabel:p="Save",cancelLabel:y="Cancel",loading:b=false,className:o}){let[u,P]=$.useState(()=>{let d={};for(let l of r)d[l.name]=h?.[l.name]??l.defaultValue??(l.type==="toggle"?false:"");return d}),[F,D]=$.useState({});function V(d,l){P(a=>({...a,[d]:l})),D(a=>{if(!a[d])return a;let g={...a};return delete g[d],g});}c(V,"setValue");async function q(d){d.preventDefault();let l={};for(let a of r){let g=u[a.name];if(a.required&&(g===""||g===null||g===void 0)&&(l[a.name]=`${a.label} is required`),a.validate){let w=a.validate(g);w&&(l[a.name]=w);}}if(Object.keys(l).length>0){D(l);return}await i(u);}return c(q,"handleSubmit"),jsxs("form",{onSubmit:q,className:n("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",o),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:r.map(d=>jsx(re,{field:d,value:u[d.name],error:F[d.name],onChange:l=>V(d.name,l)},d.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:b?"Saving...":p}),m&&jsx("button",{type:"button",onClick:m,disabled:b,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:y})]})]})}c(U,"Form");var J=n("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function re({field:e,value:r,error:h,onChange:i}){let m=`dash-field-${e.name}`,p=jsxs("label",{htmlFor:m,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),y=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,b=h?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:h}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[p,jsx("input",{id:m,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:o=>i(e.type==="number"?Number(o.target.value):o.target.value),className:n(J,h&&"border-[var(--dash-error)]")}),y,b]});case "textarea":return jsxs("div",{children:[p,jsx("textarea",{id:m,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:o=>i(o.target.value),className:n(J,"resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "select":case "relation":return jsxs("div",{children:[p,jsxs("select",{id:m,value:String(r??""),disabled:e.disabled,onChange:o=>i(o.target.value),className:n(J,h&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(o=>jsx("option",{value:o.value,children:o.label},o.value))]}),y,b]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:m,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>i(!r),className:n("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:n("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:m,className:"text-sm text-[var(--dash-text)]",children:e.label}),y,b]});case "json":return jsxs("div",{children:[p,jsx("textarea",{id:m,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:o=>{try{i(JSON.parse(o.target.value));}catch{i(o.target.value);}},className:n(J,"font-mono text-xs resize-y",h&&"border-[var(--dash-error)]")}),y,b]});case "file":return jsxs("div",{children:[p,jsx("input",{id:m,type:"file",accept:e.accept,disabled:e.disabled,onChange:o=>{let u=o.target.files?.[0];u&&i(u);},className:n("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),y,b]});default:return null}}c(re,"FieldRenderer");function we({resourceName:e,resourceNamePlural:r,columns:h,data:i,rowKey:m,fields:p,rowToValues:y,onCreate:b,onUpdate:o,onDelete:u,canCreate:P=true,canEdit:F=true,canDelete:D=true,tableProps:V,loading:q=false,className:d}){let l=r??`${e}s`,[a,g]=$.useState("list"),[w,K]=$.useState(null),[z,j]=$.useState({}),[O,E]=$.useState(null),[L,C]=$.useState(false);function W(x){let t=m(x);K(t),j(y?y(x):x),g("edit");}c(W,"handleEdit");function _(x){E(m(x));}c(_,"handleDeleteConfirm");async function A(){if(!(!O||!u)){C(true);try{await u(O);}finally{C(false),E(null);}}}c(A,"confirmDelete");function G(x){return jsxs("div",{className:"flex items-center justify-end gap-1",children:[F&&o&&jsx("button",{type:"button",onClick:()=>W(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),D&&u&&jsx("button",{type:"button",onClick:()=>_(x),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return c(G,"actionsRenderer"),a==="list"?jsxs("div",{className:n("space-y-4",d),children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:l}),P&&b&&jsxs("button",{type:"button",onClick:()=>{K(null),j({}),g("create");},className:n("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsx(Z,{columns:h,data:i,rowKey:m,actions:F||D?G:void 0,loading:q,searchable:true,emptyMessage:`No ${l.toLowerCase()} found`,...V}),O!==null&&jsx(ae,{resourceName:e,loading:L,onConfirm:A,onCancel:()=>E(null)})]}):jsxs("div",{className:n("space-y-4",d),children:[jsxs("button",{type:"button",onClick:()=>g("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",l]}),jsx(U,{title:a==="create"?`Create ${e}`:`Edit ${e}`,fields:p,values:a==="edit"?z:void 0,loading:L,submitLabel:a==="create"?"Create":"Save changes",onCancel:()=>g("list"),onSubmit:async x=>{C(true);try{a==="create"&&b?await b(x):a==="edit"&&w&&o&&await o(w,x),g("list");}finally{C(false);}}})]})}c(we,"Crud");function ae({resourceName:e,loading:r,onConfirm:h,onCancel:i}){return jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsx("button",{type:"button",onClick:i,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsx("button",{type:"button",onClick:h,disabled:r,className:n("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}c(ae,"DeleteDialog");export{we as Crud};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var f=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var f__namespace=/*#__PURE__*/_interopNamespace(f);var R=Object.defineProperty;var h=(e,a)=>R(e,"name",{value:a,configurable:true});function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}h(i,"cn");function J({title:e,fields:a,values:m,onSubmit:u,onCancel:l,submitLabel:b="Save",cancelLabel:p="Cancel",loading:d=false,className:r}){let[g,N]=f__namespace.useState(()=>{let s={};for(let o of a)s[o.name]=m?.[o.name]??o.defaultValue??(o.type==="toggle"?false:"");return s}),[k,y]=f__namespace.useState({});function F(s,o){N(n=>({...n,[s]:o})),y(n=>{if(!n[s])return n;let v={...n};return delete v[s],v});}h(F,"setValue");async function S(s){s.preventDefault();let o={};for(let n of a){let v=g[n.name];if(n.required&&(v===""||v===null||v===void 0)&&(o[n.name]=`${n.label} is required`),n.validate){let w=n.validate(v);w&&(o[n.name]=w);}}if(Object.keys(o).length>0){y(o);return}await u(g);}return h(S,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:S,className:i("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",r),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:a.map(s=>jsxRuntime.jsx(E,{field:s,value:g[s.name],error:k[s.name],onChange:o=>F(s.name,o)},s.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Saving...":b}),l&&jsxRuntime.jsx("button",{type:"button",onClick:l,disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:p})]})]})}h(J,"Form");var x=i("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function E({field:e,value:a,error:m,onChange:u}){let l=`dash-field-${e.name}`,b=jsxRuntime.jsxs("label",{htmlFor:l,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),p=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,d=m?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:m}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("input",{id:l,type:e.type,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,onChange:r=>u(e.type==="number"?Number(r.target.value):r.target.value),className:i(x,m&&"border-[var(--dash-error)]")}),p,d]});case "textarea":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("textarea",{id:l,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:r=>u(r.target.value),className:i(x,"resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsxs("select",{id:l,value:String(a??""),disabled:e.disabled,onChange:r=>u(r.target.value),className:i(x,m&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(r=>jsxRuntime.jsx("option",{value:r.value,children:r.label},r.value))]}),p,d]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:l,type:"button",role:"switch","aria-checked":!!a,disabled:e.disabled,onClick:()=>u(!a),className:i("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",a?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:i("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",a?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:l,className:"text-sm text-[var(--dash-text)]",children:e.label}),p,d]});case "json":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("textarea",{id:l,value:typeof a=="string"?a:JSON.stringify(a,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:r=>{try{u(JSON.parse(r.target.value));}catch{u(r.target.value);}},className:i(x,"font-mono text-xs resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "file":return jsxRuntime.jsxs("div",{children:[b,jsxRuntime.jsx("input",{id:l,type:"file",accept:e.accept,disabled:e.disabled,onChange:r=>{let g=r.target.files?.[0];g&&u(g);},className:i("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),p,d]});default:return null}}h(E,"FieldRenderer");exports.Form=J;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import*as f from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var R=Object.defineProperty;var h=(e,a)=>R(e,"name",{value:a,configurable:true});function i(...e){return twMerge(clsx(e))}h(i,"cn");function J({title:e,fields:a,values:m,onSubmit:u,onCancel:l,submitLabel:b="Save",cancelLabel:p="Cancel",loading:d=false,className:r}){let[g,N]=f.useState(()=>{let s={};for(let o of a)s[o.name]=m?.[o.name]??o.defaultValue??(o.type==="toggle"?false:"");return s}),[k,y]=f.useState({});function F(s,o){N(n=>({...n,[s]:o})),y(n=>{if(!n[s])return n;let v={...n};return delete v[s],v});}h(F,"setValue");async function S(s){s.preventDefault();let o={};for(let n of a){let v=g[n.name];if(n.required&&(v===""||v===null||v===void 0)&&(o[n.name]=`${n.label} is required`),n.validate){let w=n.validate(v);w&&(o[n.name]=w);}}if(Object.keys(o).length>0){y(o);return}await u(g);}return h(S,"handleSubmit"),jsxs("form",{onSubmit:S,className:i("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",r),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:a.map(s=>jsx(E,{field:s,value:g[s.name],error:k[s.name],onChange:o=>F(s.name,o)},s.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:d?"Saving...":b}),l&&jsx("button",{type:"button",onClick:l,disabled:d,className:i("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:p})]})]})}h(J,"Form");var x=i("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function E({field:e,value:a,error:m,onChange:u}){let l=`dash-field-${e.name}`,b=jsxs("label",{htmlFor:l,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),p=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,d=m?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:m}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[b,jsx("input",{id:l,type:e.type,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,onChange:r=>u(e.type==="number"?Number(r.target.value):r.target.value),className:i(x,m&&"border-[var(--dash-error)]")}),p,d]});case "textarea":return jsxs("div",{children:[b,jsx("textarea",{id:l,value:String(a??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:r=>u(r.target.value),className:i(x,"resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "select":case "relation":return jsxs("div",{children:[b,jsxs("select",{id:l,value:String(a??""),disabled:e.disabled,onChange:r=>u(r.target.value),className:i(x,m&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(r=>jsx("option",{value:r.value,children:r.label},r.value))]}),p,d]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:l,type:"button",role:"switch","aria-checked":!!a,disabled:e.disabled,onClick:()=>u(!a),className:i("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",a?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:i("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",a?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:l,className:"text-sm text-[var(--dash-text)]",children:e.label}),p,d]});case "json":return jsxs("div",{children:[b,jsx("textarea",{id:l,value:typeof a=="string"?a:JSON.stringify(a,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:r=>{try{u(JSON.parse(r.target.value));}catch{u(r.target.value);}},className:i(x,"font-mono text-xs resize-y",m&&"border-[var(--dash-error)]")}),p,d]});case "file":return jsxs("div",{children:[b,jsx("input",{id:l,type:"file",accept:e.accept,disabled:e.disabled,onChange:r=>{let g=r.target.files?.[0];g&&u(g);},className:i("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),p,d]});default:return null}}h(E,"FieldRenderer");export{J as Form};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var r=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var r__namespace=/*#__PURE__*/_interopNamespace(r);var k=Object.defineProperty;var o=(a,n)=>k(a,"name",{value:n,configurable:true});function v(...a){return tailwindMerge.twMerge(clsx.clsx(a))}o(v,"cn");function W({breadcrumbs:a,searchPlaceholder:n="Search...",onSearch:u,avatarUrl:i,userName:l,userDropdown:m,onToggleTheme:p,theme:f="dark",actions:g,className:b}){let[c,x]=r__namespace.useState(false),h=r__namespace.useRef(null);return r__namespace.useEffect(()=>{if(!c)return;function t(d){h.current&&!h.current.contains(d.target)&&x(false);}return o(t,"handleClick"),document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[c]),jsxRuntime.jsxs("div",{className:v("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",b),children:[a&&a.length>0&&jsxRuntime.jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:a.map((t,d)=>jsxRuntime.jsxs(r__namespace.Fragment,{children:[d>0&&jsxRuntime.jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),t.href?jsxRuntime.jsx("a",{href:t.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:t.label}):jsxRuntime.jsx("span",{className:"text-[var(--dash-text)]",children:t.label})]},d))}),jsxRuntime.jsx("div",{className:"flex-1"}),u&&jsxRuntime.jsxs("div",{className:"relative hidden sm:block",children:[jsxRuntime.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{type:"text",placeholder:n,onChange:t=>u(t.target.value),className:v("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),g,p&&jsxRuntime.jsx("button",{type:"button",onClick:p,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${f==="dark"?"light":"dark"} mode`,children:f==="dark"?jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(i||l)&&jsxRuntime.jsxs("div",{className:"relative",ref:h,children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>x(t=>!t),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:i?jsxRuntime.jsx("img",{src:i,alt:l??"User",className:"h-7 w-7 rounded-full object-cover"}):jsxRuntime.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(l??"?")[0].toUpperCase()})}),c&&m&&jsxRuntime.jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:m})]})]})}o(W,"Header");exports.Header=W;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import*as r from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var k=Object.defineProperty;var o=(a,n)=>k(a,"name",{value:n,configurable:true});function v(...a){return twMerge(clsx(a))}o(v,"cn");function W({breadcrumbs:a,searchPlaceholder:n="Search...",onSearch:u,avatarUrl:i,userName:l,userDropdown:m,onToggleTheme:p,theme:f="dark",actions:g,className:b}){let[c,x]=r.useState(false),h=r.useRef(null);return r.useEffect(()=>{if(!c)return;function t(d){h.current&&!h.current.contains(d.target)&&x(false);}return o(t,"handleClick"),document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[c]),jsxs("div",{className:v("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",b),children:[a&&a.length>0&&jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:a.map((t,d)=>jsxs(r.Fragment,{children:[d>0&&jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),t.href?jsx("a",{href:t.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:t.label}):jsx("span",{className:"text-[var(--dash-text)]",children:t.label})]},d))}),jsx("div",{className:"flex-1"}),u&&jsxs("div",{className:"relative hidden sm:block",children:[jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsx("input",{type:"text",placeholder:n,onChange:t=>u(t.target.value),className:v("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),g,p&&jsx("button",{type:"button",onClick:p,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${f==="dark"?"light":"dark"} mode`,children:f==="dark"?jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(i||l)&&jsxs("div",{className:"relative",ref:h,children:[jsx("button",{type:"button",onClick:()=>x(t=>!t),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:i?jsx("img",{src:i,alt:l??"User",className:"h-7 w-7 rounded-full object-cover"}):jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(l??"?")[0].toUpperCase()})}),c&&m&&jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:m})]})]})}o(W,"Header");export{W as Header};
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ 'use strict';var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime'),q=require('react');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var q__namespace=/*#__PURE__*/_interopNamespace(q);var ie=Object.defineProperty;var i=(e,r)=>ie(e,"name",{value:r,configurable:true});function a(...e){return tailwindMerge.twMerge(clsx.clsx(e))}i(a,"cn");function ce({sidebar:e,header:r,children:l,sidebarCollapsed:s=false,onSidebarCollapse:n,className:c}){return jsxRuntime.jsxs("div",{className:a("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsxRuntime.jsx("aside",{className:a("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxRuntime.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r&&jsxRuntime.jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:r}),jsxRuntime.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:l})]}),!s&&jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>n?.(true)})]})}i(ce,"Layout");function ue({size:e=28}){return jsxRuntime.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}i(ue,"HanzoMark");function he({logo:e,groups:r,userMenu:l,collapsed:s=false,onToggleCollapse:n,onNavigate:c,className:o}){return jsxRuntime.jsxs("nav",{className:a("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",o),children:[jsxRuntime.jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",s?"justify-center px-2":"px-4"),children:[e??jsxRuntime.jsx(ue,{}),!s&&n&&jsxRuntime.jsx("button",{type:"button",onClick:n,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),s&&n&&jsxRuntime.jsx("button",{type:"button",onClick:n,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((m,d)=>jsxRuntime.jsx(me,{group:m,collapsed:s,onNavigate:c},d))}),l&&jsxRuntime.jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:l})]})}i(he,"Sidebar");function me({group:e,collapsed:r,onNavigate:l}){let[s,n]=q__namespace.useState(e.defaultOpen!==false),c=e.collapsible!==false&&!!e.title;return jsxRuntime.jsxs("div",{className:"mb-1",children:[e.title&&!r&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>c&&n(o=>!o),className:a("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",c&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsxRuntime.jsx("span",{className:"flex-1 text-left",children:e.title}),c&&jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:a("transition-transform",s?"rotate-0":"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(s||r)&&jsxRuntime.jsx("ul",{className:"space-y-0.5 px-2",children:e.items.map(o=>jsxRuntime.jsx("li",{children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>l?.(o.href),title:r?o.label:void 0,className:a("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",o.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[o.icon&&jsxRuntime.jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:o.icon}),!r&&jsxRuntime.jsx("span",{className:"flex-1 truncate text-left",children:o.label}),!r&&o.badge!==void 0&&jsxRuntime.jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:o.badge})]})},o.href))})]})}i(me,"SidebarGroup");function ve({breadcrumbs:e,searchPlaceholder:r="Search...",onSearch:l,avatarUrl:s,userName:n,userDropdown:c,onToggleTheme:o,theme:m="dark",actions:d,className:v}){let[C,R]=q__namespace.useState(false),S=q__namespace.useRef(null);return q__namespace.useEffect(()=>{if(!C)return;function b(M){S.current&&!S.current.contains(M.target)&&R(false);}return i(b,"handleClick"),document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[C]),jsxRuntime.jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",v),children:[e&&e.length>0&&jsxRuntime.jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:e.map((b,M)=>jsxRuntime.jsxs(q__namespace.Fragment,{children:[M>0&&jsxRuntime.jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),b.href?jsxRuntime.jsx("a",{href:b.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:b.label}):jsxRuntime.jsx("span",{className:"text-[var(--dash-text)]",children:b.label})]},M))}),jsxRuntime.jsx("div",{className:"flex-1"}),l&&jsxRuntime.jsxs("div",{className:"relative hidden sm:block",children:[jsxRuntime.jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsxRuntime.jsx("input",{type:"text",placeholder:r,onChange:b=>l(b.target.value),className:a("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),d,o&&jsxRuntime.jsx("button",{type:"button",onClick:o,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${m==="dark"?"light":"dark"} mode`,children:m==="dark"?jsxRuntime.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsxRuntime.jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsxRuntime.jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(s||n)&&jsxRuntime.jsxs("div",{className:"relative",ref:S,children:[jsxRuntime.jsx("button",{type:"button",onClick:()=>R(b=>!b),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:s?jsxRuntime.jsx("img",{src:s,alt:n??"User",className:"h-7 w-7 rounded-full object-cover"}):jsxRuntime.jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(n??"?")[0].toUpperCase()})}),C&&c&&jsxRuntime.jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:c})]})]})}i(ve,"Header");function te({columns:e,data:r,rowKey:l,selectable:s=false,selectedKeys:n,onSelectionChange:c,searchable:o=false,searchPlaceholder:m="Search...",totalRows:d,page:v=0,pageSize:C=20,onPageChange:R,onPageSizeChange:S,actions:b,loading:M=false,emptyMessage:f="No data",className:x}){let[u,w]=q__namespace.useState(""),[L,A]=q__namespace.useState(null),G=q__namespace.useMemo(()=>{if(!u)return r;let t=u.toLowerCase();return r.filter(k=>e.some(O=>(O.cell?"":String(k[O.id]??"")).toLowerCase().includes(t)))},[r,u,e]),W=q__namespace.useMemo(()=>{if(!L)return G;let{column:t,direction:k}=L;return [...G].sort((O,E)=>{let Z=O[t],ee=E[t];if(Z==null&&ee==null)return 0;if(Z==null)return 1;if(ee==null)return -1;let se=String(Z).localeCompare(String(ee),void 0,{numeric:true});return k==="asc"?se:-se})},[G,L]),I=d??W.length,z=Math.max(1,Math.ceil(I/C)),j=R?W:W.slice(v*C,(v+1)*C),F=n??new Set,J=j.length>0&&j.every(t=>F.has(l(t)));function U(){c&&c(J?new Set:new Set(j.map(l)));}i(U,"toggleAll");function X(t){if(!c)return;let k=new Set(F);k.has(t)?k.delete(t):k.add(t),c(k);}i(X,"toggleRow");function Y(t){A(k=>k?.column===t?k.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}i(Y,"handleSort");let N=b?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxRuntime.jsxs("div",{className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",x),children:[(o||s)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[o&&jsxRuntime.jsx("input",{type:"text",placeholder:m,value:u,onChange:t=>w(t.target.value),className:a("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),s&&F.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[F.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[s&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:J,onChange:U,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),N.map(t=>jsxRuntime.jsx("th",{style:t.width?{width:t.width}:void 0,className:a("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>Y(t.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&L?.column===t.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:L.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsxRuntime.jsx("tbody",{children:M?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):j.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:f})}):j.map(t=>{let k=l(t),O=F.has(k);return jsxRuntime.jsxs("tr",{className:a("border-b border-[var(--dash-border)] transition-colors",O?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[s&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:O,onChange:()=>X(k),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(E=>jsxRuntime.jsx("td",{className:a("px-4 py-2.5",E.align==="center"&&"text-center",E.align==="right"&&"text-right"),children:E.cell?E.cell(t):String(t[E.id]??"")},E.id)),b&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:b(t)})]},k)})})]})}),z>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:C,onChange:t=>S?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsxRuntime.jsx("option",{value:t,children:t},t))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",v+1," of ",z]}),jsxRuntime.jsx("button",{type:"button",disabled:v===0,onClick:()=>R?.(v-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:v>=z-1,onClick:()=>R?.(v+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(te,"Table");function ae({title:e,fields:r,values:l,onSubmit:s,onCancel:n,submitLabel:c="Save",cancelLabel:o="Cancel",loading:m=false,className:d}){let[v,C]=q__namespace.useState(()=>{let f={};for(let x of r)f[x.name]=l?.[x.name]??x.defaultValue??(x.type==="toggle"?false:"");return f}),[R,S]=q__namespace.useState({});function b(f,x){C(u=>({...u,[f]:x})),S(u=>{if(!u[f])return u;let w={...u};return delete w[f],w});}i(b,"setValue");async function M(f){f.preventDefault();let x={};for(let u of r){let w=v[u.name];if(u.required&&(w===""||w===null||w===void 0)&&(x[u.name]=`${u.label} is required`),u.validate){let L=u.validate(w);L&&(x[u.name]=L);}}if(Object.keys(x).length>0){S(x);return}await s(v);}return i(M,"handleSubmit"),jsxRuntime.jsxs("form",{onSubmit:M,className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",d),children:[e&&jsxRuntime.jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsxRuntime.jsx("div",{className:"space-y-4",children:r.map(f=>jsxRuntime.jsx(pe,{field:f,value:v[f.name],error:R[f.name],onChange:x=>b(f.name,x)},f.name))}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsxRuntime.jsx("button",{type:"submit",disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:m?"Saving...":c}),n&&jsxRuntime.jsx("button",{type:"button",onClick:n,disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:o})]})]})}i(ae,"Form");var Q=a("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function pe({field:e,value:r,error:l,onChange:s}){let n=`dash-field-${e.name}`,c=jsxRuntime.jsxs("label",{htmlFor:n,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsxRuntime.jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),o=e.description?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,m=l?jsxRuntime.jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:l}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("input",{id:n,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:d=>s(e.type==="number"?Number(d.target.value):d.target.value),className:a(Q,l&&"border-[var(--dash-error)]")}),o,m]});case "textarea":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("textarea",{id:n,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:d=>s(d.target.value),className:a(Q,"resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "select":case "relation":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsxs("select",{id:n,value:String(r??""),disabled:e.disabled,onChange:d=>s(d.target.value),className:a(Q,l&&"border-[var(--dash-error)]"),children:[jsxRuntime.jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(d=>jsxRuntime.jsx("option",{value:d.value,children:d.label},d.value))]}),o,m]});case "toggle":return jsxRuntime.jsxs("div",{className:"flex items-center gap-3",children:[jsxRuntime.jsx("button",{id:n,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>s(!r),className:a("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsxRuntime.jsx("span",{className:a("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsxRuntime.jsx("label",{htmlFor:n,className:"text-sm text-[var(--dash-text)]",children:e.label}),o,m]});case "json":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("textarea",{id:n,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:d=>{try{s(JSON.parse(d.target.value));}catch{s(d.target.value);}},className:a(Q,"font-mono text-xs resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "file":return jsxRuntime.jsxs("div",{children:[c,jsxRuntime.jsx("input",{id:n,type:"file",accept:e.accept,disabled:e.disabled,onChange:d=>{let v=d.target.files?.[0];v&&s(v);},className:a("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),o,m]});default:return null}}i(pe,"FieldRenderer");function be({resourceName:e,resourceNamePlural:r,columns:l,data:s,rowKey:n,fields:c,rowToValues:o,onCreate:m,onUpdate:d,onDelete:v,canCreate:C=true,canEdit:R=true,canDelete:S=true,tableProps:b,loading:M=false,className:f}){let x=r??`${e}s`,[u,w]=q__namespace.useState("list"),[L,A]=q__namespace.useState(null),[G,W]=q__namespace.useState({}),[I,z]=q__namespace.useState(null),[j,F]=q__namespace.useState(false);function J(N){let t=n(N);A(t),W(o?o(N):N),w("edit");}i(J,"handleEdit");function U(N){z(n(N));}i(U,"handleDeleteConfirm");async function X(){if(!(!I||!v)){F(true);try{await v(I);}finally{F(false),z(null);}}}i(X,"confirmDelete");function Y(N){return jsxRuntime.jsxs("div",{className:"flex items-center justify-end gap-1",children:[R&&d&&jsxRuntime.jsx("button",{type:"button",onClick:()=>J(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),S&&v&&jsxRuntime.jsx("button",{type:"button",onClick:()=>U(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return i(Y,"actionsRenderer"),u==="list"?jsxRuntime.jsxs("div",{className:a("space-y-4",f),children:[jsxRuntime.jsxs("div",{className:"flex items-center justify-between",children:[jsxRuntime.jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:x}),C&&m&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{A(null),W({}),w("create");},className:a("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsxRuntime.jsx(te,{columns:l,data:s,rowKey:n,actions:R||S?Y:void 0,loading:M,searchable:true,emptyMessage:`No ${x.toLowerCase()} found`,...b}),I!==null&&jsxRuntime.jsx(fe,{resourceName:e,loading:j,onConfirm:X,onCancel:()=>z(null)})]}):jsxRuntime.jsxs("div",{className:a("space-y-4",f),children:[jsxRuntime.jsxs("button",{type:"button",onClick:()=>w("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",x]}),jsxRuntime.jsx(ae,{title:u==="create"?`Create ${e}`:`Edit ${e}`,fields:c,values:u==="edit"?G:void 0,loading:j,submitLabel:u==="create"?"Create":"Save changes",onCancel:()=>w("list"),onSubmit:async N=>{F(true);try{u==="create"&&m?await m(N):u==="edit"&&L&&d&&await d(L,N),w("list");}finally{F(false);}}})]})}i(be,"Crud");function fe({resourceName:e,loading:r,onConfirm:l,onCancel:s}){return jsxRuntime.jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxRuntime.jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxRuntime.jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxRuntime.jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxRuntime.jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsxRuntime.jsx("button",{type:"button",onClick:s,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsxRuntime.jsx("button",{type:"button",onClick:l,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}i(fe,"DeleteDialog");
3
+ exports.Crud=be;exports.Form=ae;exports.Header=ve;exports.Layout=ce;exports.Sidebar=he;exports.Table=te;
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';import*as q from'react';var ie=Object.defineProperty;var i=(e,r)=>ie(e,"name",{value:r,configurable:true});function a(...e){return twMerge(clsx(e))}i(a,"cn");function ce({sidebar:e,header:r,children:l,sidebarCollapsed:s=false,onSidebarCollapse:n,className:c}){return jsxs("div",{className:a("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsx("aside",{className:a("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[r&&jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:r}),jsx("main",{className:"flex-1 overflow-y-auto p-6",children:l})]}),!s&&jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>n?.(true)})]})}i(ce,"Layout");function ue({size:e=28}){return jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}i(ue,"HanzoMark");function he({logo:e,groups:r,userMenu:l,collapsed:s=false,onToggleCollapse:n,onNavigate:c,className:o}){return jsxs("nav",{className:a("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",o),children:[jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",s?"justify-center px-2":"px-4"),children:[e??jsx(ue,{}),!s&&n&&jsx("button",{type:"button",onClick:n,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),s&&n&&jsx("button",{type:"button",onClick:n,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((m,d)=>jsx(me,{group:m,collapsed:s,onNavigate:c},d))}),l&&jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:l})]})}i(he,"Sidebar");function me({group:e,collapsed:r,onNavigate:l}){let[s,n]=q.useState(e.defaultOpen!==false),c=e.collapsible!==false&&!!e.title;return jsxs("div",{className:"mb-1",children:[e.title&&!r&&jsxs("button",{type:"button",onClick:()=>c&&n(o=>!o),className:a("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",c&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsx("span",{className:"flex-1 text-left",children:e.title}),c&&jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:a("transition-transform",s?"rotate-0":"-rotate-90"),children:jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(s||r)&&jsx("ul",{className:"space-y-0.5 px-2",children:e.items.map(o=>jsx("li",{children:jsxs("button",{type:"button",onClick:()=>l?.(o.href),title:r?o.label:void 0,className:a("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",o.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[o.icon&&jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:o.icon}),!r&&jsx("span",{className:"flex-1 truncate text-left",children:o.label}),!r&&o.badge!==void 0&&jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:o.badge})]})},o.href))})]})}i(me,"SidebarGroup");function ve({breadcrumbs:e,searchPlaceholder:r="Search...",onSearch:l,avatarUrl:s,userName:n,userDropdown:c,onToggleTheme:o,theme:m="dark",actions:d,className:v}){let[C,R]=q.useState(false),S=q.useRef(null);return q.useEffect(()=>{if(!C)return;function b(M){S.current&&!S.current.contains(M.target)&&R(false);}return i(b,"handleClick"),document.addEventListener("mousedown",b),()=>document.removeEventListener("mousedown",b)},[C]),jsxs("div",{className:a("flex h-[var(--dash-header-height)] items-center gap-4 px-4","bg-[var(--dash-surface)] text-[var(--dash-text)]",v),children:[e&&e.length>0&&jsx("nav",{className:"flex items-center gap-1 text-sm","aria-label":"Breadcrumb",children:e.map((b,M)=>jsxs(q.Fragment,{children:[M>0&&jsx("span",{className:"text-[var(--dash-text-dim)]",children:"/"}),b.href?jsx("a",{href:b.href,className:"text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:b.label}):jsx("span",{className:"text-[var(--dash-text)]",children:b.label})]},M))}),jsx("div",{className:"flex-1"}),l&&jsxs("div",{className:"relative hidden sm:block",children:[jsxs("svg",{className:"absolute left-2.5 top-1/2 -translate-y-1/2 text-[var(--dash-text-dim)]",width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"7",cy:"7",r:"5.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M11 11l3 3",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}),jsx("input",{type:"text",placeholder:r,onChange:b=>l(b.target.value),className:a("h-8 w-56 rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] pl-8 pr-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","transition-colors")})]}),d,o&&jsx("button",{type:"button",onClick:o,className:"rounded-[var(--dash-radius-sm)] p-1.5 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors","aria-label":`Switch to ${m==="dark"?"light":"dark"} mode`,children:m==="dark"?jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:[jsx("circle",{cx:"8",cy:"8",r:"3.5",stroke:"currentColor",strokeWidth:"1.5"}),jsx("path",{d:"M8 1v2M8 13v2M1 8h2M13 8h2M3.05 3.05l1.41 1.41M11.54 11.54l1.41 1.41M3.05 12.95l1.41-1.41M11.54 4.46l1.41-1.41",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round"})]}):jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M14 9.5A6.5 6.5 0 016.5 2 5.5 5.5 0 1014 9.5z",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),(s||n)&&jsxs("div",{className:"relative",ref:S,children:[jsx("button",{type:"button",onClick:()=>R(b=>!b),className:"flex items-center gap-2 rounded-[var(--dash-radius-sm)] p-1 hover:bg-[var(--dash-surface-hover)] transition-colors",children:s?jsx("img",{src:s,alt:n??"User",className:"h-7 w-7 rounded-full object-cover"}):jsx("div",{className:"flex h-7 w-7 items-center justify-center rounded-full bg-[var(--dash-primary)] text-xs font-medium text-[var(--dash-primary-text)]",children:(n??"?")[0].toUpperCase()})}),C&&c&&jsx("div",{className:"absolute right-0 top-full z-50 mt-1 min-w-48 rounded-[var(--dash-radius)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 shadow-lg",children:c})]})]})}i(ve,"Header");function te({columns:e,data:r,rowKey:l,selectable:s=false,selectedKeys:n,onSelectionChange:c,searchable:o=false,searchPlaceholder:m="Search...",totalRows:d,page:v=0,pageSize:C=20,onPageChange:R,onPageSizeChange:S,actions:b,loading:M=false,emptyMessage:f="No data",className:x}){let[u,w]=q.useState(""),[L,A]=q.useState(null),G=q.useMemo(()=>{if(!u)return r;let t=u.toLowerCase();return r.filter(k=>e.some(O=>(O.cell?"":String(k[O.id]??"")).toLowerCase().includes(t)))},[r,u,e]),W=q.useMemo(()=>{if(!L)return G;let{column:t,direction:k}=L;return [...G].sort((O,E)=>{let Z=O[t],ee=E[t];if(Z==null&&ee==null)return 0;if(Z==null)return 1;if(ee==null)return -1;let se=String(Z).localeCompare(String(ee),void 0,{numeric:true});return k==="asc"?se:-se})},[G,L]),I=d??W.length,z=Math.max(1,Math.ceil(I/C)),j=R?W:W.slice(v*C,(v+1)*C),F=n??new Set,J=j.length>0&&j.every(t=>F.has(l(t)));function U(){c&&c(J?new Set:new Set(j.map(l)));}i(U,"toggleAll");function X(t){if(!c)return;let k=new Set(F);k.has(t)?k.delete(t):k.add(t),c(k);}i(X,"toggleRow");function Y(t){A(k=>k?.column===t?k.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"});}i(Y,"handleSort");let N=b?[...e,{id:"__actions",header:"",width:"auto"}]:e;return jsxs("div",{className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",x),children:[(o||s)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[o&&jsx("input",{type:"text",placeholder:m,value:u,onChange:t=>w(t.target.value),className:a("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),s&&F.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[F.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[s&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:J,onChange:U,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),N.map(t=>jsx("th",{style:t.width?{width:t.width}:void 0,className:a("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",t.align==="center"&&"text-center",t.align==="right"&&"text-right",!t.align&&"text-left",t.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:t.sortable?()=>Y(t.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,t.sortable&&L?.column===t.id&&jsx("span",{className:"text-[10px]",children:L.direction==="asc"?"\u2191":"\u2193"})]})},t.id))]})}),jsx("tbody",{children:M?jsx("tr",{children:jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):j.length===0?jsx("tr",{children:jsx("td",{colSpan:N.length+(s?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:f})}):j.map(t=>{let k=l(t),O=F.has(k);return jsxs("tr",{className:a("border-b border-[var(--dash-border)] transition-colors",O?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[s&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:O,onChange:()=>X(k),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),e.map(E=>jsx("td",{className:a("px-4 py-2.5",E.align==="center"&&"text-center",E.align==="right"&&"text-right"),children:E.cell?E.cell(t):String(t[E.id]??"")},E.id)),b&&jsx("td",{className:"px-4 py-2.5 text-right",children:b(t)})]},k)})})]})}),z>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:C,onChange:t=>S?.(Number(t.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(t=>jsx("option",{value:t,children:t},t))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",v+1," of ",z]}),jsx("button",{type:"button",disabled:v===0,onClick:()=>R?.(v-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:v>=z-1,onClick:()=>R?.(v+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(te,"Table");function ae({title:e,fields:r,values:l,onSubmit:s,onCancel:n,submitLabel:c="Save",cancelLabel:o="Cancel",loading:m=false,className:d}){let[v,C]=q.useState(()=>{let f={};for(let x of r)f[x.name]=l?.[x.name]??x.defaultValue??(x.type==="toggle"?false:"");return f}),[R,S]=q.useState({});function b(f,x){C(u=>({...u,[f]:x})),S(u=>{if(!u[f])return u;let w={...u};return delete w[f],w});}i(b,"setValue");async function M(f){f.preventDefault();let x={};for(let u of r){let w=v[u.name];if(u.required&&(w===""||w===null||w===void 0)&&(x[u.name]=`${u.label} is required`),u.validate){let L=u.validate(w);L&&(x[u.name]=L);}}if(Object.keys(x).length>0){S(x);return}await s(v);}return i(M,"handleSubmit"),jsxs("form",{onSubmit:M,className:a("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6",d),children:[e&&jsx("h3",{className:"mb-4 text-lg font-semibold text-[var(--dash-text)]",children:e}),jsx("div",{className:"space-y-4",children:r.map(f=>jsx(pe,{field:f,value:v[f.name],error:R[f.name],onChange:x=>b(f.name,x)},f.name))}),jsxs("div",{className:"mt-6 flex items-center gap-3",children:[jsx("button",{type:"submit",disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]","disabled:opacity-50 disabled:cursor-not-allowed"),children:m?"Saving...":c}),n&&jsx("button",{type:"button",onClick:n,disabled:m,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:o})]})]})}i(ae,"Form");var Q=a("w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 py-2 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]","disabled:opacity-50 disabled:cursor-not-allowed","transition-colors");function pe({field:e,value:r,error:l,onChange:s}){let n=`dash-field-${e.name}`,c=jsxs("label",{htmlFor:n,className:"mb-1 block text-sm font-medium text-[var(--dash-text)]",children:[e.label,e.required&&jsx("span",{className:"ml-0.5 text-[var(--dash-error)]",children:"*"})]}),o=e.description?jsx("p",{className:"mt-1 text-xs text-[var(--dash-text-dim)]",children:e.description}):null,m=l?jsx("p",{className:"mt-1 text-xs text-[var(--dash-error)]",children:l}):null;switch(e.type){case "text":case "email":case "password":case "number":return jsxs("div",{children:[c,jsx("input",{id:n,type:e.type,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,onChange:d=>s(e.type==="number"?Number(d.target.value):d.target.value),className:a(Q,l&&"border-[var(--dash-error)]")}),o,m]});case "textarea":return jsxs("div",{children:[c,jsx("textarea",{id:n,value:String(r??""),placeholder:e.placeholder,disabled:e.disabled,rows:e.rows??3,onChange:d=>s(d.target.value),className:a(Q,"resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "select":case "relation":return jsxs("div",{children:[c,jsxs("select",{id:n,value:String(r??""),disabled:e.disabled,onChange:d=>s(d.target.value),className:a(Q,l&&"border-[var(--dash-error)]"),children:[jsx("option",{value:"",children:e.placeholder??"Select..."}),(e.options??[]).map(d=>jsx("option",{value:d.value,children:d.label},d.value))]}),o,m]});case "toggle":return jsxs("div",{className:"flex items-center gap-3",children:[jsx("button",{id:n,type:"button",role:"switch","aria-checked":!!r,disabled:e.disabled,onClick:()=>s(!r),className:a("relative inline-flex h-5 w-9 flex-shrink-0 rounded-full transition-colors","focus:outline-none focus:ring-2 focus:ring-[var(--dash-primary)] focus:ring-offset-2 focus:ring-offset-[var(--dash-surface)]",r?"bg-[var(--dash-primary)]":"bg-[var(--dash-border)]",e.disabled&&"opacity-50 cursor-not-allowed"),children:jsx("span",{className:a("pointer-events-none inline-block h-4 w-4 rounded-full bg-white shadow transition-transform",r?"translate-x-4":"translate-x-0.5","mt-0.5")})}),jsx("label",{htmlFor:n,className:"text-sm text-[var(--dash-text)]",children:e.label}),o,m]});case "json":return jsxs("div",{children:[c,jsx("textarea",{id:n,value:typeof r=="string"?r:JSON.stringify(r,null,2),placeholder:e.placeholder??"{}",disabled:e.disabled,rows:e.rows??6,onChange:d=>{try{s(JSON.parse(d.target.value));}catch{s(d.target.value);}},className:a(Q,"font-mono text-xs resize-y",l&&"border-[var(--dash-error)]")}),o,m]});case "file":return jsxs("div",{children:[c,jsx("input",{id:n,type:"file",accept:e.accept,disabled:e.disabled,onChange:d=>{let v=d.target.files?.[0];v&&s(v);},className:a("w-full text-sm text-[var(--dash-text-muted)]","file:mr-3 file:rounded-[var(--dash-radius-sm)] file:border-0 file:bg-[var(--dash-primary)] file:px-3 file:py-1.5 file:text-sm file:font-medium file:text-[var(--dash-primary-text)]","file:cursor-pointer hover:file:bg-[var(--dash-primary-hover)]")}),o,m]});default:return null}}i(pe,"FieldRenderer");function be({resourceName:e,resourceNamePlural:r,columns:l,data:s,rowKey:n,fields:c,rowToValues:o,onCreate:m,onUpdate:d,onDelete:v,canCreate:C=true,canEdit:R=true,canDelete:S=true,tableProps:b,loading:M=false,className:f}){let x=r??`${e}s`,[u,w]=q.useState("list"),[L,A]=q.useState(null),[G,W]=q.useState({}),[I,z]=q.useState(null),[j,F]=q.useState(false);function J(N){let t=n(N);A(t),W(o?o(N):N),w("edit");}i(J,"handleEdit");function U(N){z(n(N));}i(U,"handleDeleteConfirm");async function X(){if(!(!I||!v)){F(true);try{await v(I);}finally{F(false),z(null);}}}i(X,"confirmDelete");function Y(N){return jsxs("div",{className:"flex items-center justify-end gap-1",children:[R&&d&&jsx("button",{type:"button",onClick:()=>J(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)] transition-colors",children:"Edit"}),S&&v&&jsx("button",{type:"button",onClick:()=>U(N),className:"rounded-[var(--dash-radius-sm)] px-2 py-1 text-xs text-[var(--dash-error)] hover:bg-[var(--dash-error-dim)] transition-colors",children:"Delete"})]})}return i(Y,"actionsRenderer"),u==="list"?jsxs("div",{className:a("space-y-4",f),children:[jsxs("div",{className:"flex items-center justify-between",children:[jsx("h2",{className:"text-xl font-semibold text-[var(--dash-text)]",children:x}),C&&m&&jsxs("button",{type:"button",onClick:()=>{A(null),W({}),w("create");},className:a("rounded-[var(--dash-radius)] px-3 py-1.5 text-sm font-medium transition-colors","bg-[var(--dash-primary)] text-[var(--dash-primary-text)]","hover:bg-[var(--dash-primary-hover)]"),children:["Create ",e]})]}),jsx(te,{columns:l,data:s,rowKey:n,actions:R||S?Y:void 0,loading:M,searchable:true,emptyMessage:`No ${x.toLowerCase()} found`,...b}),I!==null&&jsx(fe,{resourceName:e,loading:j,onConfirm:X,onCancel:()=>z(null)})]}):jsxs("div",{className:a("space-y-4",f),children:[jsxs("button",{type:"button",onClick:()=>w("list"),className:"inline-flex items-center gap-1 text-sm text-[var(--dash-text-muted)] hover:text-[var(--dash-text)] transition-colors",children:[jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),"Back to ",x]}),jsx(ae,{title:u==="create"?`Create ${e}`:`Edit ${e}`,fields:c,values:u==="edit"?G:void 0,loading:j,submitLabel:u==="create"?"Create":"Save changes",onCancel:()=>w("list"),onSubmit:async N=>{F(true);try{u==="create"&&m?await m(N):u==="edit"&&L&&d&&await d(L,N),w("list");}finally{F(false);}}})]})}i(be,"Crud");function fe({resourceName:e,loading:r,onConfirm:l,onCancel:s}){return jsx("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",children:jsxs("div",{className:"w-full max-w-sm rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)] p-6 shadow-lg",children:[jsxs("h3",{className:"text-lg font-semibold text-[var(--dash-text)]",children:["Delete ",e,"?"]}),jsxs("p",{className:"mt-2 text-sm text-[var(--dash-text-muted)]",children:["This action cannot be undone. The ",e.toLowerCase()," will be permanently removed."]}),jsxs("div",{className:"mt-6 flex items-center justify-end gap-3",children:[jsx("button",{type:"button",onClick:s,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","border border-[var(--dash-border)] text-[var(--dash-text-muted)]","hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]"),children:"Cancel"}),jsx("button",{type:"button",onClick:l,disabled:r,className:a("rounded-[var(--dash-radius)] px-4 py-2 text-sm font-medium transition-colors","bg-[var(--dash-error)] text-white","hover:bg-red-600","disabled:opacity-50 disabled:cursor-not-allowed"),children:r?"Deleting...":"Delete"})]})]})})}i(fe,"DeleteDialog");
3
+ export{be as Crud,ae as Form,ve as Header,ce as Layout,he as Sidebar,te as Table};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');var n=Object.defineProperty;var r=(e,a)=>n(e,"name",{value:a,configurable:true});function d(...e){return tailwindMerge.twMerge(clsx.clsx(e))}r(d,"cn");function N({sidebar:e,header:a,children:t,sidebarCollapsed:s=false,onSidebarCollapse:i,className:c}){return jsxRuntime.jsxs("div",{className:d("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsxRuntime.jsx("aside",{className:d("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxRuntime.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[a&&jsxRuntime.jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:a}),jsxRuntime.jsx("main",{className:"flex-1 overflow-y-auto p-6",children:t})]}),!s&&jsxRuntime.jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>i?.(true)})]})}r(N,"Layout");exports.Layout=N;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var n=Object.defineProperty;var r=(e,a)=>n(e,"name",{value:a,configurable:true});function d(...e){return twMerge(clsx(e))}r(d,"cn");function N({sidebar:e,header:a,children:t,sidebarCollapsed:s=false,onSidebarCollapse:i,className:c}){return jsxs("div",{className:d("flex h-screen overflow-hidden","bg-[var(--dash-bg)] text-[var(--dash-text)]",c),children:[jsx("aside",{className:d("flex-shrink-0 overflow-y-auto overflow-x-hidden transition-[width] duration-200","border-r border-[var(--dash-border)] bg-[var(--dash-surface)]",s?"w-[var(--dash-sidebar-collapsed-width)]":"w-[var(--dash-sidebar-width)]"),children:e}),jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[a&&jsx("header",{className:"flex-shrink-0 border-b border-[var(--dash-border)] bg-[var(--dash-surface)]",children:a}),jsx("main",{className:"flex-1 overflow-y-auto p-6",children:t})]}),!s&&jsx("div",{className:"fixed inset-0 z-40 bg-black/60 lg:hidden",onClick:()=>i?.(true)})]})}r(N,"Layout");export{N as Layout};
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ 'use strict';var u=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var u__namespace=/*#__PURE__*/_interopNamespace(u);var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:true});function i(...t){return tailwindMerge.twMerge(clsx.clsx(t))}n(i,"cn");function b({size:t=28}){return jsxRuntime.jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsxRuntime.jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}n(b,"HanzoMark");function L({logo:t,groups:r,userMenu:v,collapsed:o=false,onToggleCollapse:s,onNavigate:l,className:a}){return jsxRuntime.jsxs("nav",{className:i("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",a),children:[jsxRuntime.jsxs("div",{className:i("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",o?"justify-center px-2":"px-4"),children:[t??jsxRuntime.jsx(b,{}),!o&&s&&jsxRuntime.jsx("button",{type:"button",onClick:s,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsxRuntime.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o&&s&&jsxRuntime.jsx("button",{type:"button",onClick:s,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsxRuntime.jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((h,c)=>jsxRuntime.jsx(m,{group:h,collapsed:o,onNavigate:l},c))}),v&&jsxRuntime.jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:v})]})}n(L,"Sidebar");function m({group:t,collapsed:r,onNavigate:v}){let[o,s]=u__namespace.useState(t.defaultOpen!==false),l=t.collapsible!==false&&!!t.title;return jsxRuntime.jsxs("div",{className:"mb-1",children:[t.title&&!r&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>l&&s(a=>!a),className:i("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",l&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsxRuntime.jsx("span",{className:"flex-1 text-left",children:t.title}),l&&jsxRuntime.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:i("transition-transform",o?"rotate-0":"-rotate-90"),children:jsxRuntime.jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(o||r)&&jsxRuntime.jsx("ul",{className:"space-y-0.5 px-2",children:t.items.map(a=>jsxRuntime.jsx("li",{children:jsxRuntime.jsxs("button",{type:"button",onClick:()=>v?.(a.href),title:r?a.label:void 0,className:i("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",a.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[a.icon&&jsxRuntime.jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:a.icon}),!r&&jsxRuntime.jsx("span",{className:"flex-1 truncate text-left",children:a.label}),!r&&a.badge!==void 0&&jsxRuntime.jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:a.badge})]})},a.href))})]})}n(m,"SidebarGroup");
3
+ exports.Sidebar=L;
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ import*as u from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var p=Object.defineProperty;var n=(t,r)=>p(t,"name",{value:r,configurable:true});function i(...t){return twMerge(clsx(t))}n(i,"cn");function b({size:t=28}){return jsx("svg",{width:t,height:t,viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:jsx("path",{d:"M4 4h4v6h8V4h4v16h-4v-6H8v6H4V4z",fill:"currentColor"})})}n(b,"HanzoMark");function L({logo:t,groups:r,userMenu:v,collapsed:o=false,onToggleCollapse:s,onNavigate:l,className:a}){return jsxs("nav",{className:i("flex h-full flex-col","bg-[var(--dash-surface)] text-[var(--dash-text)]",a),children:[jsxs("div",{className:i("flex h-[var(--dash-header-height)] items-center border-b border-[var(--dash-border)]",o?"justify-center px-2":"px-4"),children:[t??jsx(b,{}),!o&&s&&jsx("button",{type:"button",onClick:s,className:"ml-auto rounded p-1 text-[var(--dash-text-dim)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]","aria-label":"Collapse sidebar",children:jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),o&&s&&jsx("button",{type:"button",onClick:s,className:"absolute -right-3 top-4 z-50 hidden rounded-full border border-[var(--dash-border)] bg-[var(--dash-surface)] p-1 text-[var(--dash-text-dim)] hover:text-[var(--dash-text)] lg:flex","aria-label":"Expand sidebar",children:jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),jsx("div",{className:"flex-1 overflow-y-auto py-2",children:r.map((h,c)=>jsx(m,{group:h,collapsed:o,onNavigate:l},c))}),v&&jsx("div",{className:"border-t border-[var(--dash-border)] p-2",children:v})]})}n(L,"Sidebar");function m({group:t,collapsed:r,onNavigate:v}){let[o,s]=u.useState(t.defaultOpen!==false),l=t.collapsible!==false&&!!t.title;return jsxs("div",{className:"mb-1",children:[t.title&&!r&&jsxs("button",{type:"button",onClick:()=>l&&s(a=>!a),className:i("flex w-full items-center px-4 py-1.5 text-[11px] font-semibold uppercase tracking-wider text-[var(--dash-text-dim)]",l&&"cursor-pointer hover:text-[var(--dash-text-muted)]"),children:[jsx("span",{className:"flex-1 text-left",children:t.title}),l&&jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"none",className:i("transition-transform",o?"rotate-0":"-rotate-90"),children:jsx("path",{d:"M4 6l4 4 4-4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})]}),(o||r)&&jsx("ul",{className:"space-y-0.5 px-2",children:t.items.map(a=>jsx("li",{children:jsxs("button",{type:"button",onClick:()=>v?.(a.href),title:r?a.label:void 0,className:i("flex w-full items-center gap-2 rounded-[var(--dash-radius-sm)] px-2 py-1.5 text-sm transition-colors",a.active?"bg-[var(--dash-primary)] text-[var(--dash-primary-text)]":"text-[var(--dash-text-muted)] hover:bg-[var(--dash-surface-hover)] hover:text-[var(--dash-text)]",r&&"justify-center px-0"),children:[a.icon&&jsx("span",{className:"flex h-5 w-5 items-center justify-center flex-shrink-0",children:a.icon}),!r&&jsx("span",{className:"flex-1 truncate text-left",children:a.label}),!r&&a.badge!==void 0&&jsx("span",{className:"ml-auto rounded-full bg-[var(--dash-primary)] px-1.5 py-0.5 text-[10px] font-medium text-[var(--dash-primary-text)]",children:a.badge})]})},a.href))})]})}n(m,"SidebarGroup");
3
+ export{L as Sidebar};
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ 'use strict';var u=require('react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function _interopNamespace(e){if(e&&e.__esModule)return e;var n=Object.create(null);if(e){Object.keys(e).forEach(function(k){if(k!=='default'){var d=Object.getOwnPropertyDescriptor(e,k);Object.defineProperty(n,k,d.get?d:{enumerable:true,get:function(){return e[k]}});}})}n.default=e;return Object.freeze(n)}var u__namespace=/*#__PURE__*/_interopNamespace(u);var J=Object.defineProperty;var i=(s,h)=>J(s,"name",{value:h,configurable:true});function c(...s){return tailwindMerge.twMerge(clsx.clsx(s))}i(c,"cn");function ee({columns:s,data:h,rowKey:f,selectable:l=false,selectedKeys:j,onSelectionChange:m,searchable:L=false,searchPlaceholder:z="Search...",totalRows:B,page:o=0,pageSize:g=20,onPageChange:w,onPageSizeChange:V,actions:y,loading:W=false,emptyMessage:_="No data",className:q}){let[x,A]=u__namespace.useState(""),[p,D]=u__namespace.useState(null),N=u__namespace.useMemo(()=>{if(!x)return h;let e=x.toLowerCase();return h.filter(r=>s.some(d=>(d.cell?"":String(r[d.id]??"")).toLowerCase().includes(e)))},[h,x,s]),k=u__namespace.useMemo(()=>{if(!p)return N;let{column:e,direction:r}=p;return [...N].sort((d,n)=>{let C=d[e],T=n[e];if(C==null&&T==null)return 0;if(C==null)return 1;if(T==null)return -1;let P=String(C).localeCompare(String(T),void 0,{numeric:true});return r==="asc"?P:-P})},[N,p]),E=B??k.length,S=Math.max(1,Math.ceil(E/g)),b=w?k:k.slice(o*g,(o+1)*g),v=j??new Set,M=b.length>0&&b.every(e=>v.has(f(e)));function F(){m&&m(M?new Set:new Set(b.map(f)));}i(F,"toggleAll");function G(e){if(!m)return;let r=new Set(v);r.has(e)?r.delete(e):r.add(e),m(r);}i(G,"toggleRow");function H(e){D(r=>r?.column===e?r.direction==="asc"?{column:e,direction:"desc"}:null:{column:e,direction:"asc"});}i(H,"handleSort");let R=y?[...s,{id:"__actions",header:"",width:"auto"}]:s;return jsxRuntime.jsxs("div",{className:c("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",q),children:[(L||l)&&jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[L&&jsxRuntime.jsx("input",{type:"text",placeholder:z,value:x,onChange:e=>A(e.target.value),className:c("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),l&&v.size>0&&jsxRuntime.jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[v.size," selected"]})]}),jsxRuntime.jsx("div",{className:"overflow-x-auto",children:jsxRuntime.jsxs("table",{className:"w-full text-sm",children:[jsxRuntime.jsx("thead",{children:jsxRuntime.jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[l&&jsxRuntime.jsx("th",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:M,onChange:F,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),R.map(e=>jsxRuntime.jsx("th",{style:e.width?{width:e.width}:void 0,className:c("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",e.align==="center"&&"text-center",e.align==="right"&&"text-right",!e.align&&"text-left",e.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:e.sortable?()=>H(e.id):void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.header,e.sortable&&p?.column===e.id&&jsxRuntime.jsx("span",{className:"text-[10px]",children:p.direction==="asc"?"\u2191":"\u2193"})]})},e.id))]})}),jsxRuntime.jsx("tbody",{children:W?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):b.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:_})}):b.map(e=>{let r=f(e),d=v.has(r);return jsxRuntime.jsxs("tr",{className:c("border-b border-[var(--dash-border)] transition-colors",d?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[l&&jsxRuntime.jsx("td",{className:"w-10 px-4 py-2.5",children:jsxRuntime.jsx("input",{type:"checkbox",checked:d,onChange:()=>G(r),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),s.map(n=>jsxRuntime.jsx("td",{className:c("px-4 py-2.5",n.align==="center"&&"text-center",n.align==="right"&&"text-right"),children:n.cell?n.cell(e):String(e[n.id]??"")},n.id)),y&&jsxRuntime.jsx("td",{className:"px-4 py-2.5 text-right",children:y(e)})]},r)})})]})}),S>1&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsx("span",{children:"Rows per page"}),jsxRuntime.jsx("select",{value:g,onChange:e=>V?.(Number(e.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(e=>jsxRuntime.jsx("option",{value:e,children:e},e))})]}),jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[jsxRuntime.jsxs("span",{children:["Page ",o+1," of ",S]}),jsxRuntime.jsx("button",{type:"button",disabled:o===0,onClick:()=>w?.(o-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsxRuntime.jsx("button",{type:"button",disabled:o>=S-1,onClick:()=>w?.(o+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsxRuntime.jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsxRuntime.jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(ee,"Table");exports.Table=ee;
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ import*as u from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {jsxs,jsx}from'react/jsx-runtime';var J=Object.defineProperty;var i=(s,h)=>J(s,"name",{value:h,configurable:true});function c(...s){return twMerge(clsx(s))}i(c,"cn");function ee({columns:s,data:h,rowKey:f,selectable:l=false,selectedKeys:j,onSelectionChange:m,searchable:L=false,searchPlaceholder:z="Search...",totalRows:B,page:o=0,pageSize:g=20,onPageChange:w,onPageSizeChange:V,actions:y,loading:W=false,emptyMessage:_="No data",className:q}){let[x,A]=u.useState(""),[p,D]=u.useState(null),N=u.useMemo(()=>{if(!x)return h;let e=x.toLowerCase();return h.filter(r=>s.some(d=>(d.cell?"":String(r[d.id]??"")).toLowerCase().includes(e)))},[h,x,s]),k=u.useMemo(()=>{if(!p)return N;let{column:e,direction:r}=p;return [...N].sort((d,n)=>{let C=d[e],T=n[e];if(C==null&&T==null)return 0;if(C==null)return 1;if(T==null)return -1;let P=String(C).localeCompare(String(T),void 0,{numeric:true});return r==="asc"?P:-P})},[N,p]),E=B??k.length,S=Math.max(1,Math.ceil(E/g)),b=w?k:k.slice(o*g,(o+1)*g),v=j??new Set,M=b.length>0&&b.every(e=>v.has(f(e)));function F(){m&&m(M?new Set:new Set(b.map(f)));}i(F,"toggleAll");function G(e){if(!m)return;let r=new Set(v);r.has(e)?r.delete(e):r.add(e),m(r);}i(G,"toggleRow");function H(e){D(r=>r?.column===e?r.direction==="asc"?{column:e,direction:"desc"}:null:{column:e,direction:"asc"});}i(H,"handleSort");let R=y?[...s,{id:"__actions",header:"",width:"auto"}]:s;return jsxs("div",{className:c("rounded-[var(--dash-radius-lg)] border border-[var(--dash-border)] bg-[var(--dash-surface)]",q),children:[(L||l)&&jsxs("div",{className:"flex items-center gap-3 border-b border-[var(--dash-border)] px-4 py-3",children:[L&&jsx("input",{type:"text",placeholder:z,value:x,onChange:e=>A(e.target.value),className:c("h-8 w-64 max-w-full rounded-[var(--dash-radius-sm)] border border-[var(--dash-border)] bg-[var(--dash-bg)] px-3 text-sm text-[var(--dash-text)]","placeholder:text-[var(--dash-text-dim)]","focus:border-[var(--dash-primary)] focus:outline-none focus:ring-1 focus:ring-[var(--dash-primary)]")}),l&&v.size>0&&jsxs("span",{className:"text-xs text-[var(--dash-text-muted)]",children:[v.size," selected"]})]}),jsx("div",{className:"overflow-x-auto",children:jsxs("table",{className:"w-full text-sm",children:[jsx("thead",{children:jsxs("tr",{className:"border-b border-[var(--dash-border)]",children:[l&&jsx("th",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:M,onChange:F,className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),R.map(e=>jsx("th",{style:e.width?{width:e.width}:void 0,className:c("px-4 py-2.5 text-[var(--dash-text-dim)] font-medium",e.align==="center"&&"text-center",e.align==="right"&&"text-right",!e.align&&"text-left",e.sortable&&"cursor-pointer select-none hover:text-[var(--dash-text-muted)]"),onClick:e.sortable?()=>H(e.id):void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[e.header,e.sortable&&p?.column===e.id&&jsx("span",{className:"text-[10px]",children:p.direction==="asc"?"\u2191":"\u2193"})]})},e.id))]})}),jsx("tbody",{children:W?jsx("tr",{children:jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:"Loading..."})}):b.length===0?jsx("tr",{children:jsx("td",{colSpan:R.length+(l?1:0),className:"px-4 py-8 text-center text-[var(--dash-text-dim)]",children:_})}):b.map(e=>{let r=f(e),d=v.has(r);return jsxs("tr",{className:c("border-b border-[var(--dash-border)] transition-colors",d?"bg-[var(--dash-surface-active)]":"hover:bg-[var(--dash-surface-hover)]"),children:[l&&jsx("td",{className:"w-10 px-4 py-2.5",children:jsx("input",{type:"checkbox",checked:d,onChange:()=>G(r),className:"h-4 w-4 rounded border-[var(--dash-border)] accent-[var(--dash-primary)]"})}),s.map(n=>jsx("td",{className:c("px-4 py-2.5",n.align==="center"&&"text-center",n.align==="right"&&"text-right"),children:n.cell?n.cell(e):String(e[n.id]??"")},n.id)),y&&jsx("td",{className:"px-4 py-2.5 text-right",children:y(e)})]},r)})})]})}),S>1&&jsxs("div",{className:"flex items-center justify-between border-t border-[var(--dash-border)] px-4 py-2.5 text-xs text-[var(--dash-text-muted)]",children:[jsxs("div",{className:"flex items-center gap-2",children:[jsx("span",{children:"Rows per page"}),jsx("select",{value:g,onChange:e=>V?.(Number(e.target.value)),className:"h-7 rounded border border-[var(--dash-border)] bg-[var(--dash-bg)] px-2 text-xs text-[var(--dash-text)] focus:outline-none",children:[10,20,50,100].map(e=>jsx("option",{value:e,children:e},e))})]}),jsxs("div",{className:"flex items-center gap-2",children:[jsxs("span",{children:["Page ",o+1," of ",S]}),jsx("button",{type:"button",disabled:o===0,onClick:()=>w?.(o-1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M10 4L6 8l4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),jsx("button",{type:"button",disabled:o>=S-1,onClick:()=>w?.(o+1),className:"rounded p-1 hover:bg-[var(--dash-surface-hover)] disabled:opacity-30 disabled:cursor-not-allowed",children:jsx("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"none",children:jsx("path",{d:"M6 4l4 4-4 4",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]})]})}i(ee,"Table");export{ee as Table};