@luxfi/ui 8.0.0 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (744) hide show
  1. package/dist/3d-button.cjs +298 -0
  2. package/dist/3d-button.d.ts +52 -0
  3. package/dist/3d-button.d.ts.map +1 -0
  4. package/dist/3d-button.js +273 -0
  5. package/dist/3d-card.cjs +236 -0
  6. package/dist/3d-card.d.ts +29 -0
  7. package/dist/3d-card.d.ts.map +1 -0
  8. package/dist/3d-card.js +209 -0
  9. package/dist/3d-carousel.cjs +375 -0
  10. package/dist/3d-carousel.d.ts +26 -0
  11. package/dist/3d-carousel.d.ts.map +1 -0
  12. package/dist/3d-carousel.js +348 -0
  13. package/dist/3d-grid.cjs +360 -0
  14. package/dist/3d-grid.d.ts +49 -0
  15. package/dist/3d-grid.d.ts.map +1 -0
  16. package/dist/3d-grid.js +335 -0
  17. package/dist/3d-marquee.cjs +8669 -0
  18. package/dist/3d-marquee.d.ts +65 -0
  19. package/dist/3d-marquee.d.ts.map +1 -0
  20. package/dist/3d-marquee.js +8645 -0
  21. package/dist/3d-model-viewer.cjs +909 -0
  22. package/dist/3d-model-viewer.d.ts +45 -0
  23. package/dist/3d-model-viewer.d.ts.map +1 -0
  24. package/dist/3d-model-viewer.js +886 -0
  25. package/dist/3d-pin.cjs +46 -0
  26. package/dist/3d-pin.d.ts +8 -0
  27. package/dist/3d-pin.d.ts.map +1 -0
  28. package/dist/3d-pin.js +24 -0
  29. package/dist/3d-scene.cjs +439 -0
  30. package/dist/3d-scene.d.ts +76 -0
  31. package/dist/3d-scene.d.ts.map +1 -0
  32. package/dist/3d-scene.js +407 -0
  33. package/dist/3d-text.cjs +367 -0
  34. package/dist/3d-text.d.ts +62 -0
  35. package/dist/3d-text.d.ts.map +1 -0
  36. package/dist/3d-text.js +341 -0
  37. package/dist/advanced-chart.cjs +53 -0
  38. package/dist/advanced-chart.d.ts +6 -0
  39. package/dist/advanced-chart.d.ts.map +1 -0
  40. package/dist/advanced-chart.js +51 -0
  41. package/dist/advanced-navigation-bar.cjs +459 -0
  42. package/dist/advanced-navigation-bar.d.ts +14 -0
  43. package/dist/advanced-navigation-bar.d.ts.map +1 -0
  44. package/dist/advanced-navigation-bar.js +437 -0
  45. package/dist/ai-actions.cjs +57 -0
  46. package/dist/ai-actions.d.ts +14 -0
  47. package/dist/ai-actions.d.ts.map +1 -0
  48. package/dist/ai-actions.js +35 -0
  49. package/dist/ai-agents.cjs +1764 -0
  50. package/dist/ai-agents.d.ts +56 -0
  51. package/dist/ai-agents.d.ts.map +1 -0
  52. package/dist/ai-agents.js +1740 -0
  53. package/dist/ai-assistant.cjs +907 -0
  54. package/dist/ai-assistant.d.ts +28 -0
  55. package/dist/ai-assistant.d.ts.map +1 -0
  56. package/dist/ai-assistant.js +886 -0
  57. package/dist/ai-chat.cjs +1165 -0
  58. package/dist/ai-chat.d.ts +56 -0
  59. package/dist/ai-chat.d.ts.map +1 -0
  60. package/dist/ai-chat.js +1141 -0
  61. package/dist/ai-code.cjs +1866 -0
  62. package/dist/ai-code.d.ts +58 -0
  63. package/dist/ai-code.d.ts.map +1 -0
  64. package/dist/ai-code.js +1841 -0
  65. package/dist/ai-model-selector-navigation-bar.cjs +59 -0
  66. package/dist/ai-model-selector-navigation-bar.d.ts +15 -0
  67. package/dist/ai-model-selector-navigation-bar.d.ts.map +1 -0
  68. package/dist/ai-model-selector-navigation-bar.js +37 -0
  69. package/dist/ai-models.cjs +41 -0
  70. package/dist/ai-models.d.ts +15 -0
  71. package/dist/ai-models.d.ts.map +1 -0
  72. package/dist/ai-models.js +19 -0
  73. package/dist/ai-playground.cjs +1110 -0
  74. package/dist/ai-playground.d.ts +66 -0
  75. package/dist/ai-playground.d.ts.map +1 -0
  76. package/dist/ai-playground.js +1088 -0
  77. package/dist/ai-tools.cjs +1043 -0
  78. package/dist/ai-tools.d.ts +23 -0
  79. package/dist/ai-tools.d.ts.map +1 -0
  80. package/dist/ai-tools.js +1022 -0
  81. package/dist/ai-vision.cjs +1831 -0
  82. package/dist/ai-vision.d.ts +74 -0
  83. package/dist/ai-vision.d.ts.map +1 -0
  84. package/dist/ai-vision.js +1810 -0
  85. package/dist/ai-voice-settings.cjs +1511 -0
  86. package/dist/ai-voice-settings.d.ts +100 -0
  87. package/dist/ai-voice-settings.d.ts.map +1 -0
  88. package/dist/ai-voice-settings.js +1478 -0
  89. package/dist/ai-voice.cjs +1522 -0
  90. package/dist/ai-voice.d.ts +72 -0
  91. package/dist/ai-voice.d.ts.map +1 -0
  92. package/dist/ai-voice.js +1501 -0
  93. package/dist/alert.cjs +13 -142
  94. package/dist/alert.js +14 -143
  95. package/dist/android.cjs +127 -0
  96. package/dist/android.d.ts +19 -0
  97. package/dist/android.d.ts.map +1 -0
  98. package/dist/android.js +104 -0
  99. package/dist/animated-background.cjs +8830 -0
  100. package/dist/animated-background.d.ts +103 -0
  101. package/dist/animated-background.d.ts.map +1 -0
  102. package/dist/animated-background.js +8824 -0
  103. package/dist/animated-beam.cjs +8438 -0
  104. package/dist/animated-beam.d.ts +15 -0
  105. package/dist/animated-beam.d.ts.map +1 -0
  106. package/dist/animated-beam.js +8417 -0
  107. package/dist/animated-cursor.cjs +269 -0
  108. package/dist/animated-cursor.d.ts +70 -0
  109. package/dist/animated-cursor.d.ts.map +1 -0
  110. package/dist/animated-cursor.js +264 -0
  111. package/dist/animated-icon.cjs +8927 -0
  112. package/dist/animated-icon.d.ts +119 -0
  113. package/dist/animated-icon.d.ts.map +1 -0
  114. package/dist/animated-icon.js +8902 -0
  115. package/dist/animated-list.cjs +9226 -0
  116. package/dist/animated-list.d.ts +126 -0
  117. package/dist/animated-list.d.ts.map +1 -0
  118. package/dist/animated-list.js +9201 -0
  119. package/dist/animated-number.cjs +8773 -0
  120. package/dist/animated-number.d.ts +127 -0
  121. package/dist/animated-number.d.ts.map +1 -0
  122. package/dist/animated-number.js +8767 -0
  123. package/dist/animated-testimonials.cjs +8653 -0
  124. package/dist/animated-testimonials.d.ts +17 -0
  125. package/dist/animated-testimonials.d.ts.map +1 -0
  126. package/dist/animated-testimonials.js +8632 -0
  127. package/dist/animated-text.cjs +8914 -0
  128. package/dist/animated-text.d.ts +65 -0
  129. package/dist/animated-text.d.ts.map +1 -0
  130. package/dist/animated-text.js +8890 -0
  131. package/dist/animated-tooltip.cjs +8624 -0
  132. package/dist/animated-tooltip.d.ts +9 -0
  133. package/dist/animated-tooltip.d.ts.map +1 -0
  134. package/dist/animated-tooltip.js +8603 -0
  135. package/dist/announcement.cjs +465 -0
  136. package/dist/announcement.d.ts +9 -0
  137. package/dist/announcement.d.ts.map +1 -0
  138. package/dist/announcement.js +443 -0
  139. package/dist/app-switcher-navigation-bar.cjs +470 -0
  140. package/dist/app-switcher-navigation-bar.d.ts +15 -0
  141. package/dist/app-switcher-navigation-bar.d.ts.map +1 -0
  142. package/dist/app-switcher-navigation-bar.js +448 -0
  143. package/dist/apple-cards-carousel.cjs +9356 -0
  144. package/dist/apple-cards-carousel.d.ts +36 -0
  145. package/dist/apple-cards-carousel.d.ts.map +1 -0
  146. package/dist/apple-cards-carousel.js +9334 -0
  147. package/dist/apple-hello-effect.cjs +8380 -0
  148. package/dist/apple-hello-effect.d.ts +8 -0
  149. package/dist/apple-hello-effect.d.ts.map +1 -0
  150. package/dist/apple-hello-effect.js +8359 -0
  151. package/dist/auth.cjs +6 -5
  152. package/dist/auth.d.ts.map +1 -1
  153. package/dist/auth.js +6 -5
  154. package/dist/badge.cjs +28 -164
  155. package/dist/badge.d.ts +2 -5
  156. package/dist/badge.d.ts.map +1 -1
  157. package/dist/badge.js +29 -165
  158. package/dist/bank.d.ts +6 -6
  159. package/dist/banner.cjs +78 -0
  160. package/dist/banner.d.ts +20 -0
  161. package/dist/banner.d.ts.map +1 -0
  162. package/dist/banner.js +55 -0
  163. package/dist/breadcrumb-and-filters-navigation-bar.cjs +51 -0
  164. package/dist/breadcrumb-and-filters-navigation-bar.d.ts +10 -0
  165. package/dist/breadcrumb-and-filters-navigation-bar.d.ts.map +1 -0
  166. package/dist/breadcrumb-and-filters-navigation-bar.js +29 -0
  167. package/dist/breadcrumb-navigation-bar.cjs +37 -0
  168. package/dist/breadcrumb-navigation-bar.d.ts +10 -0
  169. package/dist/breadcrumb-navigation-bar.d.ts.map +1 -0
  170. package/dist/breadcrumb-navigation-bar.js +15 -0
  171. package/dist/button.cjs +21 -150
  172. package/dist/button.d.ts +1 -1
  173. package/dist/button.d.ts.map +1 -1
  174. package/dist/button.js +21 -150
  175. package/dist/calendar.cjs +55 -0
  176. package/dist/calendar.d.ts +9 -0
  177. package/dist/calendar.d.ts.map +1 -0
  178. package/dist/calendar.js +53 -0
  179. package/dist/centered-logo-navigation-bar.cjs +37 -0
  180. package/dist/centered-logo-navigation-bar.d.ts +15 -0
  181. package/dist/centered-logo-navigation-bar.d.ts.map +1 -0
  182. package/dist/centered-logo-navigation-bar.js +15 -0
  183. package/dist/chart.cjs +266 -0
  184. package/dist/chart.d.ts +52 -0
  185. package/dist/chart.d.ts.map +1 -0
  186. package/dist/chart.js +238 -0
  187. package/dist/choicebox.cjs +77 -0
  188. package/dist/choicebox.d.ts +15 -0
  189. package/dist/choicebox.d.ts.map +1 -0
  190. package/dist/choicebox.js +55 -0
  191. package/dist/chrome.cjs +36 -30
  192. package/dist/chrome.d.ts.map +1 -1
  193. package/dist/chrome.js +37 -31
  194. package/dist/code-block.cjs +871 -0
  195. package/dist/code-block.d.ts +38 -0
  196. package/dist/code-block.d.ts.map +1 -0
  197. package/dist/code-block.js +849 -0
  198. package/dist/code-compare.cjs +1714 -0
  199. package/dist/code-compare.d.ts +46 -0
  200. package/dist/code-compare.d.ts.map +1 -0
  201. package/dist/code-compare.js +1692 -0
  202. package/dist/code-diff.cjs +1073 -0
  203. package/dist/code-diff.d.ts +42 -0
  204. package/dist/code-diff.d.ts.map +1 -0
  205. package/dist/code-diff.js +1051 -0
  206. package/dist/code-editor.cjs +641 -0
  207. package/dist/code-editor.d.ts +23 -0
  208. package/dist/code-editor.d.ts.map +1 -0
  209. package/dist/code-editor.js +616 -0
  210. package/dist/code-explorer.cjs +729 -0
  211. package/dist/code-explorer.d.ts +41 -0
  212. package/dist/code-explorer.d.ts.map +1 -0
  213. package/dist/code-explorer.js +707 -0
  214. package/dist/code-preview.cjs +1349 -0
  215. package/dist/code-preview.d.ts +38 -0
  216. package/dist/code-preview.d.ts.map +1 -0
  217. package/dist/code-preview.js +1327 -0
  218. package/dist/code-snippet.cjs +920 -0
  219. package/dist/code-snippet.d.ts +48 -0
  220. package/dist/code-snippet.d.ts.map +1 -0
  221. package/dist/code-snippet.js +897 -0
  222. package/dist/code-tabs.cjs +76 -0
  223. package/dist/code-tabs.d.ts +12 -0
  224. package/dist/code-tabs.d.ts.map +1 -0
  225. package/dist/code-tabs.js +54 -0
  226. package/dist/code-terminal.cjs +894 -0
  227. package/dist/code-terminal.d.ts +48 -0
  228. package/dist/code-terminal.d.ts.map +1 -0
  229. package/dist/code-terminal.js +872 -0
  230. package/dist/collaboration-navigation-bar.cjs +49 -0
  231. package/dist/collaboration-navigation-bar.d.ts +11 -0
  232. package/dist/collaboration-navigation-bar.d.ts.map +1 -0
  233. package/dist/collaboration-navigation-bar.js +27 -0
  234. package/dist/collapsible.cjs +34 -155
  235. package/dist/collapsible.d.ts.map +1 -1
  236. package/dist/collapsible.js +34 -155
  237. package/dist/color-picker.cjs +516 -0
  238. package/dist/color-picker.d.ts +10 -0
  239. package/dist/color-picker.d.ts.map +1 -0
  240. package/dist/color-picker.js +495 -0
  241. package/dist/combobox.cjs +488 -0
  242. package/dist/combobox.d.ts +13 -0
  243. package/dist/combobox.d.ts.map +1 -0
  244. package/dist/combobox.js +466 -0
  245. package/dist/communication-navigation-bar.cjs +438 -0
  246. package/dist/communication-navigation-bar.d.ts +7 -0
  247. package/dist/communication-navigation-bar.d.ts.map +1 -0
  248. package/dist/communication-navigation-bar.js +416 -0
  249. package/dist/company-profile.cjs +46 -0
  250. package/dist/company-profile.d.ts +10 -0
  251. package/dist/company-profile.d.ts.map +1 -0
  252. package/dist/company-profile.js +44 -0
  253. package/dist/comparison.cjs +60 -0
  254. package/dist/comparison.d.ts +16 -0
  255. package/dist/comparison.d.ts.map +1 -0
  256. package/dist/comparison.js +38 -0
  257. package/dist/context-switcher-navigation-bar.cjs +51 -0
  258. package/dist/context-switcher-navigation-bar.d.ts +10 -0
  259. package/dist/context-switcher-navigation-bar.d.ts.map +1 -0
  260. package/dist/context-switcher-navigation-bar.js +29 -0
  261. package/dist/credit-card.cjs +77 -0
  262. package/dist/credit-card.d.ts +11 -0
  263. package/dist/credit-card.d.ts.map +1 -0
  264. package/dist/credit-card.js +55 -0
  265. package/dist/crypto-screener.cjs +43 -0
  266. package/dist/crypto-screener.d.ts +4 -0
  267. package/dist/crypto-screener.d.ts.map +1 -0
  268. package/dist/crypto-screener.js +41 -0
  269. package/dist/cursor.cjs +71 -0
  270. package/dist/cursor.d.ts +9 -0
  271. package/dist/cursor.d.ts.map +1 -0
  272. package/dist/cursor.js +49 -0
  273. package/dist/dashboard-navigation-bar.cjs +441 -0
  274. package/dist/dashboard-navigation-bar.d.ts +11 -0
  275. package/dist/dashboard-navigation-bar.d.ts.map +1 -0
  276. package/dist/dashboard-navigation-bar.js +419 -0
  277. package/dist/dialog-stack.cjs +460 -0
  278. package/dist/dialog-stack.d.ts +13 -0
  279. package/dist/dialog-stack.d.ts.map +1 -0
  280. package/dist/dialog-stack.js +438 -0
  281. package/dist/dialog.cjs +12 -11
  282. package/dist/dialog.d.ts +1 -1
  283. package/dist/dialog.d.ts.map +1 -1
  284. package/dist/dialog.js +12 -11
  285. package/dist/direction.cjs +26 -0
  286. package/dist/direction.d.ts +20 -0
  287. package/dist/direction.d.ts.map +1 -0
  288. package/dist/direction.js +23 -0
  289. package/dist/dock.cjs +8675 -0
  290. package/dist/dock.d.ts +20 -0
  291. package/dist/dock.d.ts.map +1 -0
  292. package/dist/dock.js +8653 -0
  293. package/dist/dropzone.cjs +116 -0
  294. package/dist/dropzone.d.ts +11 -0
  295. package/dist/dropzone.d.ts.map +1 -0
  296. package/dist/dropzone.js +94 -0
  297. package/dist/e-commerce-navigation-bar.cjs +442 -0
  298. package/dist/e-commerce-navigation-bar.d.ts +12 -0
  299. package/dist/e-commerce-navigation-bar.d.ts.map +1 -0
  300. package/dist/e-commerce-navigation-bar.js +420 -0
  301. package/dist/editor.cjs +497 -0
  302. package/dist/editor.d.ts +9 -0
  303. package/dist/editor.d.ts.map +1 -0
  304. package/dist/editor.js +475 -0
  305. package/dist/empty.cjs +117 -0
  306. package/dist/empty.d.ts +18 -0
  307. package/dist/empty.d.ts.map +1 -0
  308. package/dist/empty.js +110 -0
  309. package/dist/engine.cjs +91 -0
  310. package/dist/engine.js +86 -0
  311. package/dist/field.cjs +2 -1
  312. package/dist/field.d.ts.map +1 -1
  313. package/dist/field.js +3 -2
  314. package/dist/financials.cjs +66 -0
  315. package/dist/financials.d.ts +12 -0
  316. package/dist/financials.d.ts.map +1 -0
  317. package/dist/financials.js +64 -0
  318. package/dist/forex-screener.cjs +44 -0
  319. package/dist/forex-screener.d.ts +4 -0
  320. package/dist/forex-screener.d.ts.map +1 -0
  321. package/dist/forex-screener.js +42 -0
  322. package/dist/gantt.cjs +65 -0
  323. package/dist/gantt.d.ts +13 -0
  324. package/dist/gantt.d.ts.map +1 -0
  325. package/dist/gantt.js +43 -0
  326. package/dist/grid-pattern.cjs +327 -0
  327. package/dist/grid-pattern.d.ts +111 -0
  328. package/dist/grid-pattern.d.ts.map +1 -0
  329. package/dist/grid-pattern.js +304 -0
  330. package/dist/hooks/use-mobile.d.ts +3 -0
  331. package/dist/hooks/use-mobile.d.ts.map +1 -0
  332. package/dist/icon-button.cjs +13 -142
  333. package/dist/icon-button.js +14 -143
  334. package/dist/icon-navigation-bar.cjs +48 -0
  335. package/dist/icon-navigation-bar.d.ts +11 -0
  336. package/dist/icon-navigation-bar.d.ts.map +1 -0
  337. package/dist/icon-navigation-bar.js +26 -0
  338. package/dist/image-crop.cjs +482 -0
  339. package/dist/image-crop.d.ts +9 -0
  340. package/dist/image-crop.d.ts.map +1 -0
  341. package/dist/image-crop.js +460 -0
  342. package/dist/image-zoom.cjs +77 -0
  343. package/dist/image-zoom.d.ts +7 -0
  344. package/dist/image-zoom.d.ts.map +1 -0
  345. package/dist/image-zoom.js +55 -0
  346. package/dist/image.cjs +15 -143
  347. package/dist/image.d.ts.map +1 -1
  348. package/dist/image.js +16 -144
  349. package/dist/index.cjs +30274 -1201
  350. package/dist/index.d.ts +121 -0
  351. package/dist/index.d.ts.map +1 -1
  352. package/dist/index.js +30006 -1220
  353. package/dist/ink.cjs +17 -0
  354. package/dist/ink.js +15 -0
  355. package/dist/input-otp.cjs +72 -0
  356. package/dist/input-otp.d.ts +35 -0
  357. package/dist/input-otp.d.ts.map +1 -0
  358. package/dist/input-otp.js +47 -0
  359. package/dist/iphone-15-pro.cjs +61 -0
  360. package/dist/iphone-15-pro.d.ts +9 -0
  361. package/dist/iphone-15-pro.d.ts.map +1 -0
  362. package/dist/iphone-15-pro.js +39 -0
  363. package/dist/item.cjs +215 -0
  364. package/dist/item.d.ts +41 -0
  365. package/dist/item.d.ts.map +1 -0
  366. package/dist/item.js +200 -0
  367. package/dist/kanban.cjs +1354 -0
  368. package/dist/kanban.d.ts +36 -0
  369. package/dist/kanban.d.ts.map +1 -0
  370. package/dist/kanban.js +1330 -0
  371. package/dist/kbd.cjs +40 -0
  372. package/dist/kbd.d.ts +4 -0
  373. package/dist/kbd.d.ts.map +1 -0
  374. package/dist/kbd.js +37 -0
  375. package/dist/limelight-nav-navigation-bar.cjs +51 -0
  376. package/dist/limelight-nav-navigation-bar.d.ts +10 -0
  377. package/dist/limelight-nav-navigation-bar.d.ts.map +1 -0
  378. package/dist/limelight-nav-navigation-bar.js +29 -0
  379. package/dist/limelight-nav.cjs +570 -0
  380. package/dist/limelight-nav.d.ts +10 -0
  381. package/dist/limelight-nav.d.ts.map +1 -0
  382. package/dist/limelight-nav.js +549 -0
  383. package/dist/link.cjs +29 -152
  384. package/dist/link.js +30 -153
  385. package/dist/list.cjs +35 -0
  386. package/dist/list.d.ts +5 -0
  387. package/dist/list.d.ts.map +1 -0
  388. package/dist/list.js +12 -0
  389. package/dist/magnetic.cjs +63 -0
  390. package/dist/magnetic.d.ts +8 -0
  391. package/dist/magnetic.d.ts.map +1 -0
  392. package/dist/magnetic.js +41 -0
  393. package/dist/market-overview.cjs +102 -0
  394. package/dist/market-overview.d.ts +4 -0
  395. package/dist/market-overview.d.ts.map +1 -0
  396. package/dist/market-overview.js +100 -0
  397. package/dist/marquee.cjs +67 -0
  398. package/dist/marquee.d.ts +10 -0
  399. package/dist/marquee.d.ts.map +1 -0
  400. package/dist/marquee.js +45 -0
  401. package/dist/menu-dock.cjs +64 -0
  402. package/dist/menu-dock.d.ts +14 -0
  403. package/dist/menu-dock.d.ts.map +1 -0
  404. package/dist/menu-dock.js +42 -0
  405. package/dist/menubar.cjs +116 -0
  406. package/dist/menubar.d.ts +30 -0
  407. package/dist/menubar.d.ts.map +1 -0
  408. package/dist/menubar.js +61 -0
  409. package/dist/message-dock.cjs +480 -0
  410. package/dist/message-dock.d.ts +15 -0
  411. package/dist/message-dock.d.ts.map +1 -0
  412. package/dist/message-dock.js +458 -0
  413. package/dist/mini-calendar.cjs +505 -0
  414. package/dist/mini-calendar.d.ts +10 -0
  415. package/dist/mini-calendar.d.ts.map +1 -0
  416. package/dist/mini-calendar.js +483 -0
  417. package/dist/minimal-tiptap.cjs +48 -0
  418. package/dist/minimal-tiptap.d.ts +8 -0
  419. package/dist/minimal-tiptap.d.ts.map +1 -0
  420. package/dist/minimal-tiptap.js +26 -0
  421. package/dist/motion-highlight.cjs +71 -0
  422. package/dist/motion-highlight.d.ts +7 -0
  423. package/dist/motion-highlight.d.ts.map +1 -0
  424. package/dist/motion-highlight.js +49 -0
  425. package/dist/music-player.cjs +810 -0
  426. package/dist/music-player.d.ts +18 -0
  427. package/dist/music-player.d.ts.map +1 -0
  428. package/dist/music-player.js +788 -0
  429. package/dist/native-select.cjs +82 -0
  430. package/dist/native-select.d.ts +9 -0
  431. package/dist/native-select.d.ts.map +1 -0
  432. package/dist/native-select.js +58 -0
  433. package/dist/news-timeline.cjs +42 -0
  434. package/dist/news-timeline.d.ts +4 -0
  435. package/dist/news-timeline.d.ts.map +1 -0
  436. package/dist/news-timeline.js +40 -0
  437. package/dist/order-entry.cjs +141 -0
  438. package/dist/order-entry.d.ts +15 -0
  439. package/dist/order-entry.d.ts.map +1 -0
  440. package/dist/order-entry.js +136 -0
  441. package/dist/orders-history.cjs +83 -0
  442. package/dist/orders-history.d.ts +18 -0
  443. package/dist/orders-history.d.ts.map +1 -0
  444. package/dist/orders-history.js +78 -0
  445. package/dist/pagination.cjs +132 -0
  446. package/dist/pagination.d.ts +29 -0
  447. package/dist/pagination.d.ts.map +1 -0
  448. package/dist/pagination.js +104 -0
  449. package/dist/particles-background.cjs +159 -0
  450. package/dist/particles-background.d.ts +18 -0
  451. package/dist/particles-background.d.ts.map +1 -0
  452. package/dist/particles-background.js +157 -0
  453. package/dist/pill.cjs +80 -0
  454. package/dist/pill.d.ts +21 -0
  455. package/dist/pill.d.ts.map +1 -0
  456. package/dist/pill.js +57 -0
  457. package/dist/pixel-image.cjs +71 -0
  458. package/dist/pixel-image.d.ts +8 -0
  459. package/dist/pixel-image.d.ts.map +1 -0
  460. package/dist/pixel-image.js +49 -0
  461. package/dist/popover.cjs +11 -9
  462. package/dist/popover.d.ts.map +1 -1
  463. package/dist/popover.js +11 -9
  464. package/dist/positions-list.cjs +98 -0
  465. package/dist/positions-list.d.ts +13 -0
  466. package/dist/positions-list.d.ts.map +1 -0
  467. package/dist/positions-list.js +93 -0
  468. package/dist/progress-circle.cjs +2 -1
  469. package/dist/progress-circle.d.ts.map +1 -1
  470. package/dist/progress-circle.js +2 -1
  471. package/dist/pulse-animation.cjs +8741 -0
  472. package/dist/pulse-animation.d.ts +155 -0
  473. package/dist/pulse-animation.d.ts.map +1 -0
  474. package/dist/pulse-animation.js +8732 -0
  475. package/dist/qr-code.cjs +65 -0
  476. package/dist/qr-code.d.ts +21 -0
  477. package/dist/qr-code.d.ts.map +1 -0
  478. package/dist/qr-code.js +43 -0
  479. package/dist/relative-time.cjs +88 -0
  480. package/dist/relative-time.d.ts +9 -0
  481. package/dist/relative-time.d.ts.map +1 -0
  482. package/dist/relative-time.js +66 -0
  483. package/dist/resizable.cjs +61 -0
  484. package/dist/resizable.d.ts +24 -0
  485. package/dist/resizable.d.ts.map +1 -0
  486. package/dist/resizable.js +37 -0
  487. package/dist/reveal-animation.cjs +8791 -0
  488. package/dist/reveal-animation.d.ts +134 -0
  489. package/dist/reveal-animation.d.ts.map +1 -0
  490. package/dist/reveal-animation.js +8779 -0
  491. package/dist/safari.cjs +90 -0
  492. package/dist/safari.d.ts +9 -0
  493. package/dist/safari.d.ts.map +1 -0
  494. package/dist/safari.js +68 -0
  495. package/dist/sandbox.cjs +94 -0
  496. package/dist/sandbox.d.ts +9 -0
  497. package/dist/sandbox.d.ts.map +1 -0
  498. package/dist/sandbox.js +72 -0
  499. package/dist/search-and-toggle-navigation-bar.cjs +51 -0
  500. package/dist/search-and-toggle-navigation-bar.d.ts +10 -0
  501. package/dist/search-and-toggle-navigation-bar.d.ts.map +1 -0
  502. package/dist/search-and-toggle-navigation-bar.js +29 -0
  503. package/dist/select.cjs +34 -160
  504. package/dist/select.d.ts.map +1 -1
  505. package/dist/select.js +34 -160
  506. package/dist/sidebar.cjs +1134 -0
  507. package/dist/sidebar.d.ts +80 -0
  508. package/dist/sidebar.d.ts.map +1 -0
  509. package/dist/sidebar.js +1090 -0
  510. package/dist/simple-navigation-bar.cjs +45 -0
  511. package/dist/simple-navigation-bar.d.ts +11 -0
  512. package/dist/simple-navigation-bar.d.ts.map +1 -0
  513. package/dist/simple-navigation-bar.js +23 -0
  514. package/dist/skeleton.cjs +14 -143
  515. package/dist/skeleton.d.ts +2 -41
  516. package/dist/skeleton.d.ts.map +1 -1
  517. package/dist/skeleton.js +15 -144
  518. package/dist/slider.d.ts +1 -0
  519. package/dist/slider.d.ts.map +1 -1
  520. package/dist/status-dashboard-navigation-bar.cjs +51 -0
  521. package/dist/status-dashboard-navigation-bar.d.ts +10 -0
  522. package/dist/status-dashboard-navigation-bar.d.ts.map +1 -0
  523. package/dist/status-dashboard-navigation-bar.js +29 -0
  524. package/dist/status.cjs +85 -0
  525. package/dist/status.d.ts +23 -0
  526. package/dist/status.d.ts.map +1 -0
  527. package/dist/status.js +62 -0
  528. package/dist/stock-screener.cjs +44 -0
  529. package/dist/stock-screener.d.ts +4 -0
  530. package/dist/stock-screener.d.ts.map +1 -0
  531. package/dist/stock-screener.js +42 -0
  532. package/dist/switch.cjs +1 -1
  533. package/dist/switch.d.ts +1 -3
  534. package/dist/switch.d.ts.map +1 -1
  535. package/dist/switch.js +1 -1
  536. package/dist/symbol-info.cjs +44 -0
  537. package/dist/symbol-info.d.ts +9 -0
  538. package/dist/symbol-info.d.ts.map +1 -0
  539. package/dist/symbol-info.js +42 -0
  540. package/dist/table.cjs +53 -167
  541. package/dist/table.d.ts.map +1 -1
  542. package/dist/table.js +53 -167
  543. package/dist/tag.cjs +13 -142
  544. package/dist/tag.js +14 -143
  545. package/dist/tags.cjs +385 -0
  546. package/dist/tags.d.ts +13 -0
  547. package/dist/tags.d.ts.map +1 -0
  548. package/dist/tags.js +364 -0
  549. package/dist/team-switcher-navigation-bar.cjs +51 -0
  550. package/dist/team-switcher-navigation-bar.d.ts +10 -0
  551. package/dist/team-switcher-navigation-bar.d.ts.map +1 -0
  552. package/dist/team-switcher-navigation-bar.js +29 -0
  553. package/dist/technical-analysis.cjs +69 -0
  554. package/dist/technical-analysis.d.ts +13 -0
  555. package/dist/technical-analysis.d.ts.map +1 -0
  556. package/dist/technical-analysis.js +67 -0
  557. package/dist/terminal.cjs +372 -0
  558. package/dist/terminal.d.ts +21 -0
  559. package/dist/terminal.d.ts.map +1 -0
  560. package/dist/terminal.js +350 -0
  561. package/dist/ticker-tape.cjs +54 -0
  562. package/dist/ticker-tape.d.ts +4 -0
  563. package/dist/ticker-tape.d.ts.map +1 -0
  564. package/dist/ticker-tape.js +52 -0
  565. package/dist/ticker.cjs +66 -0
  566. package/dist/ticker.d.ts +10 -0
  567. package/dist/ticker.d.ts.map +1 -0
  568. package/dist/ticker.js +44 -0
  569. package/dist/timeline.cjs +317 -0
  570. package/dist/timeline.d.ts +20 -0
  571. package/dist/timeline.d.ts.map +1 -0
  572. package/dist/timeline.js +295 -0
  573. package/dist/toggle.cjs +62 -0
  574. package/dist/toggle.d.ts +26 -0
  575. package/dist/toggle.d.ts.map +1 -0
  576. package/dist/toggle.js +57 -0
  577. package/dist/trading-panel.cjs +212 -0
  578. package/dist/trading-panel.d.ts +7 -0
  579. package/dist/trading-panel.d.ts.map +1 -0
  580. package/dist/trading-panel.js +207 -0
  581. package/dist/two-tier-navigation-bar.cjs +51 -0
  582. package/dist/two-tier-navigation-bar.d.ts +10 -0
  583. package/dist/two-tier-navigation-bar.d.ts.map +1 -0
  584. package/dist/two-tier-navigation-bar.js +29 -0
  585. package/dist/underline-navigation-bar.cjs +51 -0
  586. package/dist/underline-navigation-bar.d.ts +10 -0
  587. package/dist/underline-navigation-bar.d.ts.map +1 -0
  588. package/dist/underline-navigation-bar.js +29 -0
  589. package/dist/youtube-pip-player.cjs +489 -0
  590. package/dist/youtube-pip-player.d.ts +41 -0
  591. package/dist/youtube-pip-player.d.ts.map +1 -0
  592. package/dist/youtube-pip-player.js +466 -0
  593. package/package.json +755 -54
  594. package/src/3d-button.tsx +346 -0
  595. package/src/3d-card.tsx +271 -0
  596. package/src/3d-carousel.tsx +444 -0
  597. package/src/3d-grid.tsx +448 -0
  598. package/src/3d-marquee.tsx +422 -0
  599. package/src/3d-model-viewer.tsx +659 -0
  600. package/src/3d-pin.tsx +37 -0
  601. package/src/3d-scene.tsx +629 -0
  602. package/src/3d-text.tsx +442 -0
  603. package/src/advanced-chart.tsx +63 -0
  604. package/src/advanced-navigation-bar.tsx +83 -0
  605. package/src/ai-actions.tsx +60 -0
  606. package/src/ai-agents.tsx +1174 -0
  607. package/src/ai-assistant.tsx +227 -0
  608. package/src/ai-chat.tsx +554 -0
  609. package/src/ai-code.tsx +1331 -0
  610. package/src/ai-model-selector-navigation-bar.tsx +78 -0
  611. package/src/ai-models.tsx +58 -0
  612. package/src/ai-playground.tsx +429 -0
  613. package/src/ai-tools.tsx +383 -0
  614. package/src/ai-vision.tsx +1220 -0
  615. package/src/ai-voice-settings.tsx +726 -0
  616. package/src/ai-voice.tsx +735 -0
  617. package/src/android.tsx +92 -0
  618. package/src/animated-background.tsx +625 -0
  619. package/src/animated-beam.tsx +110 -0
  620. package/src/animated-cursor.tsx +406 -0
  621. package/src/animated-icon.tsx +520 -0
  622. package/src/animated-list.tsx +508 -0
  623. package/src/animated-number.tsx +485 -0
  624. package/src/animated-testimonials.tsx +119 -0
  625. package/src/animated-text.tsx +481 -0
  626. package/src/animated-tooltip.tsx +54 -0
  627. package/src/announcement.tsx +55 -0
  628. package/src/app-switcher-navigation-bar.tsx +76 -0
  629. package/src/apple-cards-carousel.tsx +349 -0
  630. package/src/apple-hello-effect.tsx +50 -0
  631. package/src/auth.tsx +9 -8
  632. package/src/avatar.tsx +1 -1
  633. package/src/badge.tsx +27 -30
  634. package/src/banner.tsx +62 -0
  635. package/src/breadcrumb-and-filters-navigation-bar.tsx +40 -0
  636. package/src/breadcrumb-navigation-bar.tsx +43 -0
  637. package/src/button.tsx +10 -9
  638. package/src/calendar.tsx +62 -0
  639. package/src/centered-logo-navigation-bar.tsx +43 -0
  640. package/src/chart.tsx +372 -0
  641. package/src/choicebox.tsx +89 -0
  642. package/src/chrome.tsx +41 -40
  643. package/src/code-block.tsx +278 -0
  644. package/src/code-compare.tsx +551 -0
  645. package/src/code-diff.tsx +573 -0
  646. package/src/code-editor.tsx +250 -0
  647. package/src/code-explorer.tsx +403 -0
  648. package/src/code-preview.tsx +488 -0
  649. package/src/code-snippet.tsx +336 -0
  650. package/src/code-tabs.tsx +78 -0
  651. package/src/code-terminal.tsx +530 -0
  652. package/src/collaboration-navigation-bar.tsx +50 -0
  653. package/src/collapsible.tsx +3 -2
  654. package/src/color-picker.tsx +68 -0
  655. package/src/combobox.tsx +87 -0
  656. package/src/communication-navigation-bar.tsx +42 -0
  657. package/src/company-profile.tsx +67 -0
  658. package/src/comparison.tsx +68 -0
  659. package/src/context-switcher-navigation-bar.tsx +39 -0
  660. package/src/credit-card.tsx +72 -0
  661. package/src/crypto-screener.tsx +57 -0
  662. package/src/cursor.tsx +61 -0
  663. package/src/dashboard-navigation-bar.tsx +49 -0
  664. package/src/dialog-stack.tsx +55 -0
  665. package/src/dialog.tsx +16 -15
  666. package/src/direction.tsx +40 -0
  667. package/src/dock.tsx +172 -0
  668. package/src/dropzone.tsx +106 -0
  669. package/src/e-commerce-navigation-bar.tsx +54 -0
  670. package/src/editor.tsx +85 -0
  671. package/src/empty.tsx +117 -0
  672. package/src/field.tsx +2 -1
  673. package/src/financials.tsx +85 -0
  674. package/src/forex-screener.tsx +58 -0
  675. package/src/gantt.tsx +68 -0
  676. package/src/grid-pattern.tsx +353 -0
  677. package/src/hooks/use-mobile.ts +29 -0
  678. package/src/icon-navigation-bar.tsx +36 -0
  679. package/src/image-crop.tsx +67 -0
  680. package/src/image-zoom.tsx +64 -0
  681. package/src/image.tsx +2 -1
  682. package/src/index.ts +123 -0
  683. package/src/input-otp.tsx +72 -0
  684. package/src/iphone-15-pro.tsx +69 -0
  685. package/src/item.tsx +193 -0
  686. package/src/kanban.tsx +772 -0
  687. package/src/kbd.tsx +32 -0
  688. package/src/limelight-nav-navigation-bar.tsx +39 -0
  689. package/src/limelight-nav.tsx +101 -0
  690. package/src/link.tsx +18 -18
  691. package/src/list.tsx +22 -0
  692. package/src/magnetic.tsx +54 -0
  693. package/src/market-overview.tsx +116 -0
  694. package/src/marquee.tsx +62 -0
  695. package/src/menu-dock.tsx +56 -0
  696. package/src/menubar.tsx +149 -0
  697. package/src/message-dock.tsx +89 -0
  698. package/src/mini-calendar.tsx +121 -0
  699. package/src/minimal-tiptap.tsx +32 -0
  700. package/src/motion-highlight.tsx +55 -0
  701. package/src/music-player.tsx +413 -0
  702. package/src/native-select.tsx +63 -0
  703. package/src/news-timeline.tsx +56 -0
  704. package/src/order-entry.tsx +162 -0
  705. package/src/orders-history.tsx +115 -0
  706. package/src/pagination.tsx +118 -0
  707. package/src/particles-background.tsx +225 -0
  708. package/src/pill.tsx +61 -0
  709. package/src/pixel-image.tsx +64 -0
  710. package/src/popover.tsx +10 -9
  711. package/src/positions-list.tsx +108 -0
  712. package/src/progress-circle.tsx +2 -1
  713. package/src/pulse-animation.tsx +606 -0
  714. package/src/qr-code.tsx +64 -0
  715. package/src/relative-time.tsx +84 -0
  716. package/src/resizable.tsx +46 -0
  717. package/src/reveal-animation.tsx +532 -0
  718. package/src/safari.tsx +115 -0
  719. package/src/sandbox.tsx +83 -0
  720. package/src/search-and-toggle-navigation-bar.tsx +39 -0
  721. package/src/select.tsx +31 -30
  722. package/src/sidebar.tsx +723 -0
  723. package/src/simple-navigation-bar.tsx +39 -0
  724. package/src/skeleton.tsx +20 -168
  725. package/src/slider.tsx +1 -0
  726. package/src/status-dashboard-navigation-bar.tsx +39 -0
  727. package/src/status.tsx +63 -0
  728. package/src/stock-screener.tsx +58 -0
  729. package/src/switch.tsx +2 -2
  730. package/src/symbol-info.tsx +64 -0
  731. package/src/table.tsx +26 -25
  732. package/src/tags.tsx +62 -0
  733. package/src/team-switcher-navigation-bar.tsx +39 -0
  734. package/src/technical-analysis.tsx +99 -0
  735. package/src/terminal.tsx +399 -0
  736. package/src/ticker-tape.tsx +68 -0
  737. package/src/ticker.tsx +52 -0
  738. package/src/timeline.tsx +412 -0
  739. package/src/toggle.tsx +84 -0
  740. package/src/trading-panel.tsx +262 -0
  741. package/src/two-tier-navigation-bar.tsx +39 -0
  742. package/src/underline-navigation-bar.tsx +39 -0
  743. package/src/youtube-pip-player.tsx +606 -0
  744. package/tokens.css +11 -0
package/src/safari.tsx ADDED
@@ -0,0 +1,115 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Box, css } from '@hanzo/ui'
5
+ import {
6
+ ChevronLeft,
7
+ ChevronRight,
8
+ Menu,
9
+ Plus,
10
+ RotateCw,
11
+ Share2,
12
+ } from "lucide-react"
13
+
14
+ import { cn } from "./utils"
15
+
16
+ interface SafariProps extends React.HTMLAttributes<HTMLDivElement> {
17
+ children?: React.ReactNode
18
+ url?: string
19
+ showToolbar?: boolean
20
+ }
21
+
22
+ const Safari = React.forwardRef<HTMLDivElement, SafariProps>(
23
+ (
24
+ {
25
+ className,
26
+ children,
27
+ url = "https://ui.hanzo.ai",
28
+ showToolbar = true,
29
+ ...props
30
+ },
31
+ ref
32
+ ) => {
33
+ return (
34
+ <Box
35
+ ref={ref}
36
+ className={cn(
37
+ "mx-auto w-full max-w-5xl overflow-hidden rounded-xl border shadow-2xl",
38
+ className
39
+ )}
40
+ {...props}
41
+ >
42
+ {/* Window Chrome */}
43
+ <Box className="flex items-center gap-2 border-b bg-[var(--color-bg-body)] px-3 py-2 dark:bg-[var(--color-bg-primary)]">
44
+ {/* Traffic Lights */}
45
+ <Box className="flex gap-2">
46
+ <Box className="h-3 w-3 rounded-full bg-[var(--lux-state-error)]" />
47
+ <Box className="h-3 w-3 rounded-full bg-[var(--lux-state-notice)]" />
48
+ <Box className="h-3 w-3 rounded-full bg-[var(--lux-state-success)]" />
49
+ </Box>
50
+
51
+ {/* Navigation Controls */}
52
+ <Box className="ml-2 flex items-center gap-1">
53
+ <Box tag="button" className="rounded p-1 hover:bg-[var(--color-bg-body)] dark:hover:bg-[var(--color-bg-primary)]">
54
+ <ChevronLeft style={css('h-4 w-4 text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]')} />
55
+ </Box>
56
+ <Box tag="button" className="rounded p-1 hover:bg-[var(--color-bg-body)] dark:hover:bg-[var(--color-bg-primary)]">
57
+ <ChevronRight style={css('h-4 w-4 text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]')} />
58
+ </Box>
59
+ </Box>
60
+
61
+ {/* URL Bar */}
62
+ <Box className="mx-3 flex flex-1 items-center gap-2 rounded-lg bg-white px-3 py-1.5 dark:bg-[var(--color-bg-primary)]">
63
+ <svg
64
+ className={'h-4 w-4 text-[var(--color-text-secondary)]'} style={css('h-4 w-4 text-[var(--color-text-secondary)]')}
65
+ viewBox="0 0 24 24"
66
+ fill="currentColor"
67
+ >
68
+ <path d="M12 2L2 7v10c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V7l-10-5z" />
69
+ </svg>
70
+ <Box tag="span" className="flex-1 text-sm text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]">
71
+ {url}
72
+ </Box>
73
+ <Box tag="button" className="rounded p-1 hover:bg-[var(--color-bg-body)] dark:hover:bg-[var(--color-bg-primary)]">
74
+ <RotateCw style={css('h-3.5 w-3.5 text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]')} />
75
+ </Box>
76
+ </Box>
77
+
78
+ {/* Right Controls */}
79
+ <Box className="flex items-center gap-1">
80
+ <Box tag="button" className="rounded p-1 hover:bg-[var(--color-bg-body)] dark:hover:bg-[var(--color-bg-primary)]">
81
+ <Share2 style={css('h-4 w-4 text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]')} />
82
+ </Box>
83
+ <Box tag="button" className="rounded p-1 hover:bg-[var(--color-bg-body)] dark:hover:bg-[var(--color-bg-primary)]">
84
+ <Plus style={css('h-4 w-4 text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]')} />
85
+ </Box>
86
+ <Box tag="button" className="rounded p-1 hover:bg-[var(--color-bg-body)] dark:hover:bg-[var(--color-bg-primary)]">
87
+ <Menu style={css('h-4 w-4 text-[var(--color-text-secondary)] dark:text-[var(--color-text-secondary)]')} />
88
+ </Box>
89
+ </Box>
90
+ </Box>
91
+
92
+ {/* Optional Toolbar */}
93
+ {showToolbar && (
94
+ <Box className="flex items-center gap-4 border-b bg-[var(--color-bg-body)] px-4 py-2 text-sm dark:bg-[var(--color-bg-primary)]">
95
+ <Box tag="button" className="text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] dark:text-[var(--color-text-secondary)] dark:hover:text-[var(--color-text-disabled)]">
96
+ Favorites
97
+ </Box>
98
+ <Box tag="button" className="text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] dark:text-[var(--color-text-secondary)] dark:hover:text-[var(--color-text-disabled)]">
99
+ Reading List
100
+ </Box>
101
+ <Box tag="button" className="text-[var(--color-text-secondary)] hover:text-[var(--color-text-primary)] dark:text-[var(--color-text-secondary)] dark:hover:text-[var(--color-text-disabled)]">
102
+ History
103
+ </Box>
104
+ </Box>
105
+ )}
106
+
107
+ {/* Content Area */}
108
+ <Box className="bg-white dark:bg-[var(--color-bg-primary)]">{children}</Box>
109
+ </Box>
110
+ )
111
+ }
112
+ )
113
+ Safari.displayName = "Safari"
114
+
115
+ export { Safari }
@@ -0,0 +1,83 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Box } from '@hanzo/ui'
5
+
6
+ import { cn } from "./utils"
7
+
8
+ export interface SandboxProps extends React.HTMLAttributes<HTMLDivElement> {
9
+ code?: string
10
+ language?: string
11
+ editable?: boolean
12
+ }
13
+
14
+ const Sandbox = React.forwardRef<HTMLDivElement, SandboxProps>(
15
+ (
16
+ {
17
+ className,
18
+ code = "",
19
+ language = "javascript",
20
+ editable = false,
21
+ ...props
22
+ },
23
+ ref
24
+ ) => {
25
+ const [value, setValue] = React.useState(code)
26
+ const [output, setOutput] = React.useState<string>("")
27
+
28
+ const handleRun = () => {
29
+ try {
30
+ // This is a placeholder - in production, use a proper sandboxed execution environment
31
+ const result = eval(value)
32
+ setOutput(String(result))
33
+ } catch (error) {
34
+ setOutput(
35
+ `Error: ${error instanceof Error ? error.message : String(error)}`
36
+ )
37
+ }
38
+ }
39
+
40
+ return (
41
+ <Box
42
+ ref={ref}
43
+ className={cn(
44
+ "grid gap-4 rounded-lg border bg-card text-card-foreground shadow-sm",
45
+ className
46
+ )}
47
+ {...props}
48
+ >
49
+ <Box className="space-y-2 p-4">
50
+ <Box className="flex items-center justify-between">
51
+ <Box tag="span" className="text-sm font-medium">Code Editor</Box>
52
+ <Box tag="button"
53
+ onClick={handleRun}
54
+ className="rounded-md bg-primary px-3 py-1 text-xs text-primary-foreground hover:bg-primary/90"
55
+ >
56
+ Run
57
+ </Box>
58
+ </Box>
59
+ <Box tag="textarea"
60
+ value={value}
61
+ onChange={(e) => setValue(e.target.value)}
62
+ readOnly={!editable}
63
+ className="min-h-[200px] w-full rounded-md border bg-muted p-4 font-mono text-sm"
64
+ placeholder="Enter your code here..."
65
+ />
66
+ </Box>
67
+
68
+ {output && (
69
+ <Box className="space-y-2 border-t p-4">
70
+ <Box tag="span" className="text-sm font-medium">Output</Box>
71
+ <Box tag="pre" className="rounded-md bg-muted p-4 text-sm">
72
+ <code>{output}</code>
73
+ </Box>
74
+ </Box>
75
+ )}
76
+ </Box>
77
+ )
78
+ }
79
+ )
80
+
81
+ Sandbox.displayName = "Sandbox"
82
+
83
+ export { Sandbox }
@@ -0,0 +1,39 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { Box } from '@hanzo/ui'
5
+
6
+ import { cn } from "./utils"
7
+
8
+ export interface SearchAndToggleNavigationBarProps
9
+ extends React.HTMLAttributes<HTMLElement> {
10
+ items?: Array<{ label: string; href: string }>
11
+ }
12
+
13
+ const SearchAndToggleNavigationBar = React.forwardRef<
14
+ HTMLElement,
15
+ SearchAndToggleNavigationBarProps
16
+ >(({ className, items = [], ...props }, ref) => {
17
+ return (
18
+ <Box tag="nav"
19
+ ref={ref}
20
+ className={cn("border-b bg-background", className)}
21
+ {...props}
22
+ >
23
+ <Box className="container flex h-16 items-center gap-6">
24
+ {items.map((item) => (
25
+ <Box tag="a"
26
+ key={item.href}
27
+ href={item.href}
28
+ className="text-sm font-medium transition-colors hover:text-primary"
29
+ >
30
+ {item.label}
31
+ </Box>
32
+ ))}
33
+ </Box>
34
+ </Box>
35
+ )
36
+ })
37
+ SearchAndToggleNavigationBar.displayName = "SearchAndToggleNavigationBar"
38
+
39
+ export { SearchAndToggleNavigationBar }
package/src/select.tsx CHANGED
@@ -1,6 +1,7 @@
1
1
  'use client';
2
2
 
3
3
  import { Select as GuiSelect } from '@hanzo/gui';
4
+ import { Box, css, sx } from '@hanzo/ui'
4
5
  import { useDebounce } from '@uidotdev/usehooks';
5
6
  import * as React from 'react';
6
7
 
@@ -18,15 +19,15 @@ import { cn } from './utils';
18
19
  import { Skeleton } from './skeleton';
19
20
 
20
21
  // Inline chevron icon (east-mini arrow)
21
- const ArrowIcon = ({ className }: { readonly className?: string }) => (
22
- <svg className={ className } viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
22
+ const ArrowIcon = (props: React.SVGProps<SVGSVGElement>) => (
23
+ <svg {...props} viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
23
24
  <path d="M7.5 15L12.5 10L7.5 5" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
24
25
  </svg>
25
26
  );
26
27
 
27
28
  // Inline check icon
28
- const CheckIcon = ({ className }: { readonly className?: string }) => (
29
- <svg className={ className } viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
29
+ const CheckIcon = (props: React.SVGProps<SVGSVGElement>) => (
30
+ <svg {...props} viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
30
31
  <path d="M16.667 5L7.5 14.167 3.333 10" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"/>
31
32
  </svg>
32
33
  );
@@ -45,7 +46,7 @@ function FilterInput({ placeholder, initialValue = '', onChange }: FilterInputPr
45
46
  onChange?.(e.target.value);
46
47
  }, [ onChange ]);
47
48
  return (
48
- <input
49
+ <Box tag="input"
49
50
  type="text"
50
51
  placeholder={ placeholder }
51
52
  value={ value }
@@ -238,7 +239,7 @@ export const SelectRoot = React.forwardRef<HTMLDivElement, SelectRootProps>(
238
239
  disablePreventBodyScroll
239
240
  name={ name }
240
241
  >
241
- <div
242
+ <Box
242
243
  ref={ ref }
243
244
  className={ cn('relative inline-flex', className) }
244
245
  style={ inlineStyle }
@@ -248,7 +249,7 @@ export const SelectRoot = React.forwardRef<HTMLDivElement, SelectRootProps>(
248
249
  data-size={ size || undefined }
249
250
  >
250
251
  { children }
251
- </div>
252
+ </Box>
252
253
  </GuiSelect>
253
254
  </SelectInternalContext.Provider>
254
255
  );
@@ -289,7 +290,7 @@ export const SelectControl = React.forwardRef<HTMLButtonElement, SelectControlPr
289
290
  ref={ ref as never }
290
291
  asChild={ asChild }
291
292
  unstyled
292
- className={ cn(
293
+ {...sx(
293
294
  'group peer inline-flex items-center gap-2 cursor-pointer',
294
295
  'rounded-lg text-sm transition-colors outline-none',
295
296
  'border border-[var(--color-input-border)] bg-[var(--color-input-bg)] text-[var(--color-input-fg)]',
@@ -300,7 +301,7 @@ export const SelectControl = React.forwardRef<HTMLButtonElement, SelectControlPr
300
301
  ctx.variant !== 'plain' && ctx.size === 'lg' && 'px-4 py-2.5 min-h-[52px]',
301
302
  ctx.variant !== 'plain' && ctx.size !== 'lg' && 'px-3 py-1.5 min-h-[36px]',
302
303
  triggerClassName,
303
- ) }
304
+ )}
304
305
  data-default-value={ isDefaultValue || undefined }
305
306
  { ...radixTriggerProps }
306
307
  >
@@ -308,9 +309,9 @@ export const SelectControl = React.forwardRef<HTMLButtonElement, SelectControlPr
308
309
  <>
309
310
  { children }
310
311
  { !noIndicator && (
311
- <span className="ml-auto shrink-0 transition-transform data-[state=open]:rotate-180 text-[var(--color-icon-secondary)]">
312
- <ArrowIcon className="h-5 w-5 -rotate-90"/>
313
- </span>
312
+ <Box tag="span" className="ml-auto shrink-0 transition-transform data-[state=open]:rotate-180 text-[var(--color-icon-secondary)]">
313
+ <ArrowIcon style={css('h-5 w-5 -rotate-90')}/>
314
+ </Box>
314
315
  ) }
315
316
  </>
316
317
  ) }
@@ -347,7 +348,7 @@ export const SelectClearTrigger = React.forwardRef<HTMLButtonElement, SelectClea
347
348
  }, [ ctx ]);
348
349
 
349
350
  return (
350
- <button
351
+ <Box tag="button"
351
352
  ref={ ref }
352
353
  type="button"
353
354
  onClick={ handleClick }
@@ -355,10 +356,10 @@ export const SelectClearTrigger = React.forwardRef<HTMLButtonElement, SelectClea
355
356
  aria-label="Clear selection"
356
357
  { ...rest }
357
358
  >
358
- <svg className="h-5 w-5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
359
+ <svg style={css('h-5 w-5')} viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
359
360
  <path d="M18 6L6 18M6 6l12 12" stroke="currentColor" strokeWidth="2" strokeLinecap="round"/>
360
361
  </svg>
361
- </button>
362
+ </Box>
362
363
  );
363
364
  },
364
365
  );
@@ -392,12 +393,12 @@ export const SelectContent = React.forwardRef<HTMLDivElement, SelectContentProps
392
393
  // Viewport is the box you can see, so the surface is declared there.
393
394
  <GuiSelect.Content { ...rest }>
394
395
  <GuiSelect.Viewport
395
- className={ cn(
396
+ {...sx(
396
397
  'min-w-[8rem] overflow-hidden rounded-lg p-1',
397
398
  'bg-[var(--color-popover-bg)] shadow-[var(--shadow-popover)]',
398
399
  'border border-[var(--color-border-divider)]',
399
400
  className,
400
- ) }
401
+ )}
401
402
  >
402
403
  { stampIndices(children, counter) }
403
404
  </GuiSelect.Viewport>
@@ -452,7 +453,7 @@ export const SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(
452
453
  ref={ ref as never }
453
454
  index={ index ?? 0 }
454
455
  value={ item.value }
455
- className={ cn(
456
+ {...sx(
456
457
  'relative flex cursor-pointer select-none items-center gap-2',
457
458
  'rounded-md px-3 py-2 text-sm outline-none',
458
459
  'text-[var(--color-text-primary)]',
@@ -460,15 +461,15 @@ export const SelectItem = React.forwardRef<HTMLDivElement, SelectItemProps>(
460
461
  'data-[state=checked]:font-medium',
461
462
  'data-[disabled]:opacity-50 data-[disabled]:pointer-events-none',
462
463
  className,
463
- ) }
464
+ )}
464
465
  { ...rest }
465
466
  >
466
467
  { item.icon }
467
468
  <GuiSelect.ItemText>
468
469
  { children ?? item.label }
469
470
  </GuiSelect.ItemText>
470
- <GuiSelect.ItemIndicator className="ml-auto shrink-0">
471
- <CheckIcon className="h-5 w-5"/>
471
+ <GuiSelect.ItemIndicator {...sx('ml-auto shrink-0')}>
472
+ <CheckIcon style={css('h-5 w-5')}/>
472
473
  </GuiSelect.ItemIndicator>
473
474
  </GuiSelect.Item>
474
475
  );
@@ -511,7 +512,7 @@ export const SelectValueText = React.forwardRef<HTMLSpanElement, SelectValueText
511
512
  if (!item) return null;
512
513
 
513
514
  const label = size === 'lg' ? (
514
- <span
515
+ <Box tag="span"
515
516
  className={ cn(
516
517
  'text-xs block',
517
518
  invalid ? 'text-[var(--color-text-error)]' : 'text-[var(--color-input-placeholder)]',
@@ -519,13 +520,13 @@ export const SelectValueText = React.forwardRef<HTMLSpanElement, SelectValueText
519
520
  style={{ display: '-webkit-box' }}
520
521
  >
521
522
  { placeholderText }
522
- </span>
523
+ </Box>
523
524
  ) : null;
524
525
 
525
526
  return (
526
527
  <>
527
528
  { label }
528
- <span className="inline-flex items-center flex-nowrap gap-1">
529
+ <Box tag="span" className="inline-flex items-center flex-nowrap gap-1">
529
530
  { item.icon }
530
531
  { mode !== 'compact' && (
531
532
  <span
@@ -539,7 +540,7 @@ export const SelectValueText = React.forwardRef<HTMLSpanElement, SelectValueText
539
540
  { item.renderLabel ? item.renderLabel('value-text') : item.label }
540
541
  </span>
541
542
  ) }
542
- </span>
543
+ </Box>
543
544
  </>
544
545
  );
545
546
  }
@@ -553,7 +554,7 @@ export const SelectValueText = React.forwardRef<HTMLSpanElement, SelectValueText
553
554
  <GuiSelect.Value
554
555
  ref={ ref as never }
555
556
  placeholder={ placeholderText }
556
- className={ cn('flex flex-col justify-center min-w-0 truncate', className) }
557
+ {...sx('flex flex-col justify-center min-w-0 truncate', className)}
557
558
  { ...rest }
558
559
  >
559
560
  { content }
@@ -576,8 +577,8 @@ export const SelectItemGroup = React.forwardRef<HTMLDivElement, SelectItemGroupP
576
577
  function SelectItemGroup(props, ref) {
577
578
  const { children, label, className, ...rest } = props;
578
579
  return (
579
- <GuiSelect.Group ref={ ref as never } className={ cn('py-1', className) } { ...rest }>
580
- <GuiSelect.Label className="px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)]">
580
+ <GuiSelect.Group ref={ ref as never } {...sx('py-1', className)} { ...rest }>
581
+ <GuiSelect.Label {...sx('px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)]')}>
581
582
  { label }
582
583
  </GuiSelect.Label>
583
584
  { children }
@@ -697,14 +698,14 @@ export const SelectAsync = React.forwardRef<HTMLDivElement, SelectAsyncProps>((p
697
698
  />
698
699
  </SelectControl>
699
700
  <SelectContent portalled={ portalled }>
700
- <div className="px-4">
701
+ <Box className="px-4">
701
702
  <FilterInput
702
703
  placeholder="Search"
703
704
  initialValue={ inputValue }
704
705
  onChange={ handleFilterChange }
705
706
  />
706
707
  { extraControls }
707
- </div>
708
+ </Box>
708
709
  { contentHeader }
709
710
  { collection.items.map((item) => (
710
711
  <SelectItem item={ item } key={ item.value }>