magnaui 0.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 (512) hide show
  1. package/LICENSE +38 -0
  2. package/LICENSES/Apache-2.0.txt +202 -0
  3. package/LICENSES/Libraries.dev-MIT.txt +21 -0
  4. package/LICENSES/Tiptap-MIT.txt +21 -0
  5. package/LICENSES/metal-fx-NOTICE.txt +22 -0
  6. package/LICENSES/three-MIT.txt +21 -0
  7. package/README.md +73 -0
  8. package/THIRD_PARTY_NOTICES.md +72 -0
  9. package/dist/assets/agent-studio.png +0 -0
  10. package/dist/assets/api-studio.png +0 -0
  11. package/dist/assets/app-store.png +0 -0
  12. package/dist/assets/approvals.png +0 -0
  13. package/dist/assets/assistant.png +0 -0
  14. package/dist/assets/brain.png +0 -0
  15. package/dist/assets/browser.png +0 -0
  16. package/dist/assets/checkbox/check.svg +3 -0
  17. package/dist/assets/checkbox/indeterminate.svg +3 -0
  18. package/dist/assets/code.png +0 -0
  19. package/dist/assets/connect-ai.png +0 -0
  20. package/dist/assets/connections.png +0 -0
  21. package/dist/assets/database.png +0 -0
  22. package/dist/assets/display/06153.svg +5 -0
  23. package/dist/assets/display/106a6.svg +22 -0
  24. package/dist/assets/display/16525.svg +5 -0
  25. package/dist/assets/display/18a45.svg +5 -0
  26. package/dist/assets/display/1c133.svg +5 -0
  27. package/dist/assets/display/1c6fa.svg +5 -0
  28. package/dist/assets/display/1db47.svg +5 -0
  29. package/dist/assets/display/237a6.svg +5 -0
  30. package/dist/assets/display/27ca8.svg +5 -0
  31. package/dist/assets/display/347ef.svg +22 -0
  32. package/dist/assets/display/35edd.svg +5 -0
  33. package/dist/assets/display/38def.svg +5 -0
  34. package/dist/assets/display/3a834.svg +5 -0
  35. package/dist/assets/display/3e51d.svg +5 -0
  36. package/dist/assets/display/3f95e.svg +5 -0
  37. package/dist/assets/display/400d1.svg +5 -0
  38. package/dist/assets/display/4239a.svg +5 -0
  39. package/dist/assets/display/4477e.svg +22 -0
  40. package/dist/assets/display/46574.svg +5 -0
  41. package/dist/assets/display/469e4.svg +5 -0
  42. package/dist/assets/display/48559.svg +22 -0
  43. package/dist/assets/display/4e103.svg +22 -0
  44. package/dist/assets/display/4ef80.svg +5 -0
  45. package/dist/assets/display/51b32.svg +22 -0
  46. package/dist/assets/display/5320a.svg +5 -0
  47. package/dist/assets/display/56a7a.svg +22 -0
  48. package/dist/assets/display/56cab.svg +5 -0
  49. package/dist/assets/display/5fc70.svg +22 -0
  50. package/dist/assets/display/60ab5.svg +22 -0
  51. package/dist/assets/display/60c44.svg +5 -0
  52. package/dist/assets/display/61721.svg +5 -0
  53. package/dist/assets/display/648b1.svg +5 -0
  54. package/dist/assets/display/65aad.svg +5 -0
  55. package/dist/assets/display/665bc.svg +5 -0
  56. package/dist/assets/display/691ac.svg +22 -0
  57. package/dist/assets/display/6a48e.svg +5 -0
  58. package/dist/assets/display/6af80.svg +22 -0
  59. package/dist/assets/display/6c384.svg +5 -0
  60. package/dist/assets/display/6c7fb.svg +5 -0
  61. package/dist/assets/display/6ce08.svg +22 -0
  62. package/dist/assets/display/76be1.svg +5 -0
  63. package/dist/assets/display/79287.svg +5 -0
  64. package/dist/assets/display/7ea85.svg +5 -0
  65. package/dist/assets/display/7eeaf.svg +5 -0
  66. package/dist/assets/display/82602.svg +5 -0
  67. package/dist/assets/display/8a43e.svg +5 -0
  68. package/dist/assets/display/8bdb8.svg +22 -0
  69. package/dist/assets/display/8d235.svg +5 -0
  70. package/dist/assets/display/90498.svg +22 -0
  71. package/dist/assets/display/908e9.svg +5 -0
  72. package/dist/assets/display/90942.svg +5 -0
  73. package/dist/assets/display/943fb.svg +5 -0
  74. package/dist/assets/display/96ddd.svg +22 -0
  75. package/dist/assets/display/9e5a0.svg +22 -0
  76. package/dist/assets/display/9e9ac.svg +5 -0
  77. package/dist/assets/display/a35a7.svg +22 -0
  78. package/dist/assets/display/af15f.svg +5 -0
  79. package/dist/assets/display/b04fe.svg +5 -0
  80. package/dist/assets/display/b0925.svg +5 -0
  81. package/dist/assets/display/b464b.svg +5 -0
  82. package/dist/assets/display/b8efe.svg +5 -0
  83. package/dist/assets/display/bbddb.svg +5 -0
  84. package/dist/assets/display/bd61c.svg +5 -0
  85. package/dist/assets/display/be577.svg +5 -0
  86. package/dist/assets/display/bf02d.svg +5 -0
  87. package/dist/assets/display/bf1dc.svg +5 -0
  88. package/dist/assets/display/c70b6.svg +5 -0
  89. package/dist/assets/display/c8a01.svg +5 -0
  90. package/dist/assets/display/cb00b.svg +22 -0
  91. package/dist/assets/display/cecfd.svg +5 -0
  92. package/dist/assets/display/d2cc2.svg +5 -0
  93. package/dist/assets/display/d428d.svg +22 -0
  94. package/dist/assets/display/d71e2.svg +22 -0
  95. package/dist/assets/display/d8f1d.svg +22 -0
  96. package/dist/assets/display/d92e5.svg +5 -0
  97. package/dist/assets/display/d9698.svg +5 -0
  98. package/dist/assets/display/e542b.svg +5 -0
  99. package/dist/assets/display/e59af.svg +5 -0
  100. package/dist/assets/display/e5a41.svg +5 -0
  101. package/dist/assets/display/e894a.svg +5 -0
  102. package/dist/assets/display/ea9e5.svg +5 -0
  103. package/dist/assets/display/eac01.svg +5 -0
  104. package/dist/assets/display/ec734.svg +5 -0
  105. package/dist/assets/display/edb55.svg +5 -0
  106. package/dist/assets/display/ee164.svg +5 -0
  107. package/dist/assets/display/f01d5.svg +5 -0
  108. package/dist/assets/display/f479a.svg +22 -0
  109. package/dist/assets/display/f8ebb.svg +22 -0
  110. package/dist/assets/display/fb8ab.svg +5 -0
  111. package/dist/assets/display/fbdce.svg +5 -0
  112. package/dist/assets/docs.png +0 -0
  113. package/dist/assets/editor/align-left.svg +5 -0
  114. package/dist/assets/editor/arrow-down.svg +5 -0
  115. package/dist/assets/editor/arrow-up.svg +5 -0
  116. package/dist/assets/editor/at.svg +5 -0
  117. package/dist/assets/editor/bold-active.svg +5 -0
  118. package/dist/assets/editor/bold-strong.svg +5 -0
  119. package/dist/assets/editor/bold.svg +5 -0
  120. package/dist/assets/editor/comment.svg +5 -0
  121. package/dist/assets/editor/divider-more.svg +5 -0
  122. package/dist/assets/editor/divider.svg +5 -0
  123. package/dist/assets/editor/duration-check.svg +3 -0
  124. package/dist/assets/editor/italic.svg +5 -0
  125. package/dist/assets/editor/link.svg +5 -0
  126. package/dist/assets/editor/more.svg +5 -0
  127. package/dist/assets/editor/status-available.svg +5 -0
  128. package/dist/assets/editor/status-busy.svg +5 -0
  129. package/dist/assets/editor/status-disabled.svg +5 -0
  130. package/dist/assets/editor/status-in-meeting.svg +5 -0
  131. package/dist/assets/editor/status-offline.svg +5 -0
  132. package/dist/assets/editor/strike.svg +5 -0
  133. package/dist/assets/editor/time-check.svg +3 -0
  134. package/dist/assets/editor/underline.svg +5 -0
  135. package/dist/assets/expenses.png +0 -0
  136. package/dist/assets/feeds/activity-more.svg +5 -0
  137. package/dist/assets/feeds/activity-user.svg +5 -0
  138. package/dist/assets/feeds/attachment.svg +5 -0
  139. package/dist/assets/feeds/calendar.svg +5 -0
  140. package/dist/assets/feeds/comment.svg +5 -0
  141. package/dist/assets/feeds/download-hover.svg +5 -0
  142. package/dist/assets/feeds/download.svg +5 -0
  143. package/dist/assets/feeds/filter.svg +5 -0
  144. package/dist/assets/feeds/header-calendar.svg +5 -0
  145. package/dist/assets/feeds/notification-attachment.svg +5 -0
  146. package/dist/assets/feeds/notification-company.svg +17 -0
  147. package/dist/assets/feeds/notification-filter.svg +5 -0
  148. package/dist/assets/feeds/notification-more.svg +5 -0
  149. package/dist/assets/feeds/search.svg +5 -0
  150. package/dist/assets/feeds/selected-filter-active.svg +5 -0
  151. package/dist/assets/feeds/selected-filter.svg +5 -0
  152. package/dist/assets/feeds/settings.svg +5 -0
  153. package/dist/assets/feeds/sort.svg +5 -0
  154. package/dist/assets/feeds/status-error.svg +5 -0
  155. package/dist/assets/feeds/status-pending.svg +5 -0
  156. package/dist/assets/feeds/status-success.svg +5 -0
  157. package/dist/assets/feeds/status-warning.svg +5 -0
  158. package/dist/assets/feeds/upload-avatar-empty56.svg +13 -0
  159. package/dist/assets/feeds/upload-avatar-empty64.svg +13 -0
  160. package/dist/assets/feeds/upload-cancel.svg +5 -0
  161. package/dist/assets/feeds/upload-company-empty.svg +42 -0
  162. package/dist/assets/feeds/upload-company.svg +17 -0
  163. package/dist/assets/feeds/upload-delete-error.svg +5 -0
  164. package/dist/assets/feeds/upload-delete.svg +5 -0
  165. package/dist/assets/feeds/upload-error.svg +5 -0
  166. package/dist/assets/feeds/upload-loading.svg +5 -0
  167. package/dist/assets/feeds/upload-success.svg +5 -0
  168. package/dist/assets/feeds/vertical-arrow.svg +5 -0
  169. package/dist/assets/feeds/vertical-calendar-active.svg +5 -0
  170. package/dist/assets/feeds/vertical-calendar-hover.svg +5 -0
  171. package/dist/assets/feeds/vertical-calendar.svg +5 -0
  172. package/dist/assets/file.png +0 -0
  173. package/dist/assets/folder.png +0 -0
  174. package/dist/assets/forms/07b3a.png +0 -0
  175. package/dist/assets/forms/09fe0.svg +5 -0
  176. package/dist/assets/forms/11a76.svg +5 -0
  177. package/dist/assets/forms/185ae.svg +5 -0
  178. package/dist/assets/forms/1f174.svg +5 -0
  179. package/dist/assets/forms/29541.svg +5 -0
  180. package/dist/assets/forms/2b6f8.svg +5 -0
  181. package/dist/assets/forms/36c22.svg +5 -0
  182. package/dist/assets/forms/4cb9a.svg +5 -0
  183. package/dist/assets/forms/4ff30.png +0 -0
  184. package/dist/assets/forms/537d2.svg +5 -0
  185. package/dist/assets/forms/60456.svg +5 -0
  186. package/dist/assets/forms/657e1.svg +5 -0
  187. package/dist/assets/forms/73539.svg +5 -0
  188. package/dist/assets/forms/76214.svg +5 -0
  189. package/dist/assets/forms/7bd9a.svg +5 -0
  190. package/dist/assets/forms/7c034.svg +5 -0
  191. package/dist/assets/forms/86e36.svg +5 -0
  192. package/dist/assets/forms/8d97b.svg +5 -0
  193. package/dist/assets/forms/90a18.svg +5 -0
  194. package/dist/assets/forms/939c2.png +0 -0
  195. package/dist/assets/forms/95ae4.svg +5 -0
  196. package/dist/assets/forms/970af.svg +5 -0
  197. package/dist/assets/forms/a119e.svg +5 -0
  198. package/dist/assets/forms/a521c.svg +5 -0
  199. package/dist/assets/forms/a74b0.svg +5 -0
  200. package/dist/assets/forms/baff4.svg +5 -0
  201. package/dist/assets/forms/c64ff.svg +5 -0
  202. package/dist/assets/forms/ca66f.svg +5 -0
  203. package/dist/assets/forms/e0344.svg +5 -0
  204. package/dist/assets/forms/e5b24.png +0 -0
  205. package/dist/assets/forms/e687f.svg +5 -0
  206. package/dist/assets/forms/eceaf.svg +5 -0
  207. package/dist/assets/forms/eed5c.png +0 -0
  208. package/dist/assets/forms/f26ce.svg +5 -0
  209. package/dist/assets/forms/f79d5.svg +5 -0
  210. package/dist/assets/habits.png +0 -0
  211. package/dist/assets/hackify.png +0 -0
  212. package/dist/assets/icons/add.svg +5 -0
  213. package/dist/assets/icons/apps.svg +5 -0
  214. package/dist/assets/icons/book.svg +5 -0
  215. package/dist/assets/icons/chat.svg +5 -0
  216. package/dist/assets/icons/folder.svg +5 -0
  217. package/dist/assets/icons/mic.svg +5 -0
  218. package/dist/assets/icons/notifications.svg +5 -0
  219. package/dist/assets/icons/shield.svg +5 -0
  220. package/dist/assets/icons/store.svg +5 -0
  221. package/dist/assets/icons/voice.svg +5 -0
  222. package/dist/assets/ledger.png +0 -0
  223. package/dist/assets/logos/glyph-black.svg +3 -0
  224. package/dist/assets/logos/glyph-color.svg +26 -0
  225. package/dist/assets/logos/glyph-white.svg +3 -0
  226. package/dist/assets/logos/horizontal-black.svg +5 -0
  227. package/dist/assets/logos/horizontal-color-black.svg +28 -0
  228. package/dist/assets/logos/horizontal-color-white.svg +28 -0
  229. package/dist/assets/logos/horizontal-white.svg +5 -0
  230. package/dist/assets/logos/stacked-black.svg +5 -0
  231. package/dist/assets/logos/stacked-color-black.svg +28 -0
  232. package/dist/assets/logos/stacked-color-white.svg +28 -0
  233. package/dist/assets/logos/stacked-white.svg +5 -0
  234. package/dist/assets/logos/tagline-horizontal-black.svg +6 -0
  235. package/dist/assets/logos/tagline-horizontal-color-black.svg +29 -0
  236. package/dist/assets/logos/tagline-horizontal-color-white.svg +29 -0
  237. package/dist/assets/logos/tagline-horizontal-white.svg +6 -0
  238. package/dist/assets/logos/tagline-inline-black.svg +7 -0
  239. package/dist/assets/logos/tagline-inline-color-black.svg +30 -0
  240. package/dist/assets/logos/tagline-inline-color-white-alt.svg +30 -0
  241. package/dist/assets/logos/tagline-inline-color-white.svg +30 -0
  242. package/dist/assets/logos/tagline-inline-white.svg +7 -0
  243. package/dist/assets/logos/tagline-stacked-black.svg +6 -0
  244. package/dist/assets/logos/tagline-stacked-color-black.svg +29 -0
  245. package/dist/assets/logos/tagline-stacked-color-white.svg +29 -0
  246. package/dist/assets/logos/tagline-stacked-white.svg +6 -0
  247. package/dist/assets/magna-brief.png +0 -0
  248. package/dist/assets/magna-ide.png +0 -0
  249. package/dist/assets/magna-logo-dark.svg +5 -0
  250. package/dist/assets/magna-logo-stacked.svg +29 -0
  251. package/dist/assets/magna-logo.svg +3 -0
  252. package/dist/assets/magna-music.png +0 -0
  253. package/dist/assets/magna-studio.png +0 -0
  254. package/dist/assets/magna-voice.png +0 -0
  255. package/dist/assets/mail.png +0 -0
  256. package/dist/assets/models.png +0 -0
  257. package/dist/assets/notes.png +0 -0
  258. package/dist/assets/notifications.png +0 -0
  259. package/dist/assets/salis-verify.png +0 -0
  260. package/dist/assets/salis.png +0 -0
  261. package/dist/assets/settings.png +0 -0
  262. package/dist/assets/sheets.png +0 -0
  263. package/dist/assets/sledes.png +0 -0
  264. package/dist/assets/spaces.png +0 -0
  265. package/dist/assets/task-manager.png +0 -0
  266. package/dist/assets/tasks.png +0 -0
  267. package/dist/assets/terminal.png +0 -0
  268. package/dist/assets/today.png +0 -0
  269. package/dist/assets/trajectory.png +0 -0
  270. package/dist/assets/vault.png +0 -0
  271. package/dist/assets/wafir.png +0 -0
  272. package/dist/assets/what-can-i-do.png +0 -0
  273. package/dist/assets/workflow.png +0 -0
  274. package/dist/components/interactions/border-beam.d.ts +5 -0
  275. package/dist/components/interactions/border-beam.js +15 -0
  276. package/dist/components/interactions/bot-avatar.d.ts +5 -0
  277. package/dist/components/interactions/bot-avatar.js +10 -0
  278. package/dist/components/interactions/image-generation.d.ts +58 -0
  279. package/dist/components/interactions/image-generation.js +86 -0
  280. package/dist/components/interactions/index.d.ts +7 -0
  281. package/dist/components/interactions/index.js +7 -0
  282. package/dist/components/interactions/liquid.d.ts +8 -0
  283. package/dist/components/interactions/liquid.js +19 -0
  284. package/dist/components/interactions/metal-fx.d.ts +6 -0
  285. package/dist/components/interactions/metal-fx.js +51 -0
  286. package/dist/components/interactions/preferences.d.ts +5 -0
  287. package/dist/components/interactions/preferences.js +55 -0
  288. package/dist/components/interactions/thinking-orb.d.ts +4 -0
  289. package/dist/components/interactions/thinking-orb.js +9 -0
  290. package/dist/components/interactions/voice-beam.d.ts +5 -0
  291. package/dist/components/interactions/voice-beam.js +33 -0
  292. package/dist/components/magna/app-icon.d.ts +13 -0
  293. package/dist/components/magna/app-icon.js +15 -0
  294. package/dist/components/magna/apps.d.ts +202 -0
  295. package/dist/components/magna/apps.js +243 -0
  296. package/dist/components/magna/chat-activity.d.ts +12 -0
  297. package/dist/components/magna/chat-activity.js +29 -0
  298. package/dist/components/magna/chat-composer.d.ts +31 -0
  299. package/dist/components/magna/chat-composer.js +122 -0
  300. package/dist/components/magna/chat-composer.module.css +36 -0
  301. package/dist/components/magna/desktop-button.d.ts +8 -0
  302. package/dist/components/magna/desktop-button.js +10 -0
  303. package/dist/components/magna/desktop-switch.d.ts +4 -0
  304. package/dist/components/magna/desktop-switch.js +8 -0
  305. package/dist/components/magna/file-tile.d.ts +9 -0
  306. package/dist/components/magna/file-tile.js +11 -0
  307. package/dist/components/magna/index.d.ts +11 -0
  308. package/dist/components/magna/index.js +11 -0
  309. package/dist/components/magna/logo-variants.d.ts +243 -0
  310. package/dist/components/magna/logo-variants.js +268 -0
  311. package/dist/components/magna/logo.d.ts +11 -0
  312. package/dist/components/magna/logo.js +42 -0
  313. package/dist/components/magna/navigation.d.ts +15 -0
  314. package/dist/components/magna/navigation.js +16 -0
  315. package/dist/components/magna/project-context.d.ts +11 -0
  316. package/dist/components/magna/project-context.js +8 -0
  317. package/dist/components/magna/voice-orb.d.ts +7 -0
  318. package/dist/components/magna/voice-orb.js +49 -0
  319. package/dist/components/magna/voice-orb.module.css +146 -0
  320. package/dist/components/theme-switch.d.ts +1 -0
  321. package/dist/components/theme-switch.js +14 -0
  322. package/dist/components/ui/accordion.d.ts +13 -0
  323. package/dist/components/ui/accordion.js +24 -0
  324. package/dist/components/ui/activity-feed.d.ts +64 -0
  325. package/dist/components/ui/activity-feed.js +40 -0
  326. package/dist/components/ui/alert.d.ts +31 -0
  327. package/dist/components/ui/alert.js +73 -0
  328. package/dist/components/ui/avatar-empty-icons.d.ts +3 -0
  329. package/dist/components/ui/avatar-empty-icons.js +14 -0
  330. package/dist/components/ui/avatar-group-compact.d.ts +140 -0
  331. package/dist/components/ui/avatar-group-compact.js +41 -0
  332. package/dist/components/ui/avatar-group.d.ts +237 -0
  333. package/dist/components/ui/avatar-group.js +37 -0
  334. package/dist/components/ui/avatar.d.ts +420 -0
  335. package/dist/components/ui/avatar.js +107 -0
  336. package/dist/components/ui/badge.d.ts +29 -0
  337. package/dist/components/ui/badge.js +67 -0
  338. package/dist/components/ui/banner.d.ts +26 -0
  339. package/dist/components/ui/banner.js +41 -0
  340. package/dist/components/ui/breadcrumb.d.ts +14 -0
  341. package/dist/components/ui/breadcrumb.js +23 -0
  342. package/dist/components/ui/button-group.d.ts +23 -0
  343. package/dist/components/ui/button-group.js +39 -0
  344. package/dist/components/ui/button.d.ts +22 -0
  345. package/dist/components/ui/button.js +62 -0
  346. package/dist/components/ui/chart-legend.d.ts +21 -0
  347. package/dist/components/ui/chart-legend.js +14 -0
  348. package/dist/components/ui/checkbox.d.ts +41 -0
  349. package/dist/components/ui/checkbox.js +42 -0
  350. package/dist/components/ui/color-picker.d.ts +13 -0
  351. package/dist/components/ui/color-picker.js +65 -0
  352. package/dist/components/ui/command-menu.d.ts +55 -0
  353. package/dist/components/ui/command-menu.js +33 -0
  354. package/dist/components/ui/compact-button.d.ts +22 -0
  355. package/dist/components/ui/compact-button.js +39 -0
  356. package/dist/components/ui/content-card.d.ts +22 -0
  357. package/dist/components/ui/content-card.js +11 -0
  358. package/dist/components/ui/content-label.d.ts +22 -0
  359. package/dist/components/ui/content-label.js +9 -0
  360. package/dist/components/ui/counter-input.d.ts +26 -0
  361. package/dist/components/ui/counter-input.js +47 -0
  362. package/dist/components/ui/datepicker.d.ts +9 -0
  363. package/dist/components/ui/datepicker.js +48 -0
  364. package/dist/components/ui/digit-input.d.ts +11 -0
  365. package/dist/components/ui/digit-input.js +98 -0
  366. package/dist/components/ui/display-asset.d.ts +3 -0
  367. package/dist/components/ui/display-asset.js +9 -0
  368. package/dist/components/ui/display-assets.d.ts +193 -0
  369. package/dist/components/ui/display-assets.js +195 -0
  370. package/dist/components/ui/divider.d.ts +13 -0
  371. package/dist/components/ui/divider.js +22 -0
  372. package/dist/components/ui/dot-stepper.d.ts +96 -0
  373. package/dist/components/ui/dot-stepper.js +29 -0
  374. package/dist/components/ui/drawer.d.ts +12 -0
  375. package/dist/components/ui/drawer.js +25 -0
  376. package/dist/components/ui/dropdown.d.ts +29 -0
  377. package/dist/components/ui/dropdown.js +74 -0
  378. package/dist/components/ui/fancy-button.d.ts +21 -0
  379. package/dist/components/ui/fancy-button.js +43 -0
  380. package/dist/components/ui/file-format-icon.d.ts +19 -0
  381. package/dist/components/ui/file-format-icon.js +48 -0
  382. package/dist/components/ui/file-upload-compositions.d.ts +32 -0
  383. package/dist/components/ui/file-upload-compositions.js +88 -0
  384. package/dist/components/ui/file-upload.d.ts +11 -0
  385. package/dist/components/ui/file-upload.js +20 -0
  386. package/dist/components/ui/filter.d.ts +53 -0
  387. package/dist/components/ui/filter.js +90 -0
  388. package/dist/components/ui/form-asset.d.ts +5 -0
  389. package/dist/components/ui/form-asset.js +10 -0
  390. package/dist/components/ui/hint.d.ts +22 -0
  391. package/dist/components/ui/hint.js +33 -0
  392. package/dist/components/ui/horizontal-stepper.d.ts +16 -0
  393. package/dist/components/ui/horizontal-stepper.js +28 -0
  394. package/dist/components/ui/inline-input.d.ts +24 -0
  395. package/dist/components/ui/inline-input.js +60 -0
  396. package/dist/components/ui/input.d.ts +205 -0
  397. package/dist/components/ui/input.js +69 -0
  398. package/dist/components/ui/kbd.d.ts +5 -0
  399. package/dist/components/ui/kbd.js +6 -0
  400. package/dist/components/ui/key-icon.d.ts +14 -0
  401. package/dist/components/ui/key-icon.js +35 -0
  402. package/dist/components/ui/label.d.ts +7 -0
  403. package/dist/components/ui/label.js +15 -0
  404. package/dist/components/ui/link-button.d.ts +22 -0
  405. package/dist/components/ui/link-button.js +38 -0
  406. package/dist/components/ui/magna-recipe.d.ts +83 -0
  407. package/dist/components/ui/magna-recipe.js +99 -0
  408. package/dist/components/ui/modal.d.ts +21 -0
  409. package/dist/components/ui/modal.js +35 -0
  410. package/dist/components/ui/notification-feed.d.ts +63 -0
  411. package/dist/components/ui/notification-feed.js +31 -0
  412. package/dist/components/ui/notification-provider.d.ts +1 -0
  413. package/dist/components/ui/notification-provider.js +13 -0
  414. package/dist/components/ui/notification.d.ts +24 -0
  415. package/dist/components/ui/notification.js +23 -0
  416. package/dist/components/ui/pagination.d.ts +19 -0
  417. package/dist/components/ui/pagination.js +38 -0
  418. package/dist/components/ui/password-strength.d.ts +16 -0
  419. package/dist/components/ui/password-strength.js +27 -0
  420. package/dist/components/ui/payment-icon.d.ts +11 -0
  421. package/dist/components/ui/payment-icon.js +19 -0
  422. package/dist/components/ui/popover.d.ts +36 -0
  423. package/dist/components/ui/popover.js +27 -0
  424. package/dist/components/ui/progress-bar.d.ts +35 -0
  425. package/dist/components/ui/progress-bar.js +32 -0
  426. package/dist/components/ui/progress-circle.d.ts +16 -0
  427. package/dist/components/ui/progress-circle.js +29 -0
  428. package/dist/components/ui/radio.d.ts +37 -0
  429. package/dist/components/ui/radio.js +39 -0
  430. package/dist/components/ui/rating.d.ts +62 -0
  431. package/dist/components/ui/rating.js +65 -0
  432. package/dist/components/ui/rich-editor.d.ts +77 -0
  433. package/dist/components/ui/rich-editor.js +248 -0
  434. package/dist/components/ui/rich-editor.module.css +58 -0
  435. package/dist/components/ui/scroll-area.d.ts +14 -0
  436. package/dist/components/ui/scroll-area.js +34 -0
  437. package/dist/components/ui/segmented-control.d.ts +8 -0
  438. package/dist/components/ui/segmented-control.js +30 -0
  439. package/dist/components/ui/select.d.ts +212 -0
  440. package/dist/components/ui/select.js +129 -0
  441. package/dist/components/ui/slider.d.ts +5 -0
  442. package/dist/components/ui/slider.js +16 -0
  443. package/dist/components/ui/social-button.d.ts +22 -0
  444. package/dist/components/ui/social-button.js +47 -0
  445. package/dist/components/ui/status-badge.d.ts +25 -0
  446. package/dist/components/ui/status-badge.js +51 -0
  447. package/dist/components/ui/status-modal.d.ts +26 -0
  448. package/dist/components/ui/status-modal.js +21 -0
  449. package/dist/components/ui/svg-rating-icons.d.ts +11 -0
  450. package/dist/components/ui/svg-rating-icons.js +33 -0
  451. package/dist/components/ui/switch-compositions.d.ts +46 -0
  452. package/dist/components/ui/switch-compositions.js +51 -0
  453. package/dist/components/ui/switch.d.ts +14 -0
  454. package/dist/components/ui/switch.js +17 -0
  455. package/dist/components/ui/tab-menu-horizontal.d.ts +11 -0
  456. package/dist/components/ui/tab-menu-horizontal.js +49 -0
  457. package/dist/components/ui/tab-menu-vertical.d.ts +9 -0
  458. package/dist/components/ui/tab-menu-vertical.js +23 -0
  459. package/dist/components/ui/table.d.ts +23 -0
  460. package/dist/components/ui/table.js +46 -0
  461. package/dist/components/ui/tag-input.d.ts +18 -0
  462. package/dist/components/ui/tag-input.js +57 -0
  463. package/dist/components/ui/tag.d.ts +28 -0
  464. package/dist/components/ui/tag.js +67 -0
  465. package/dist/components/ui/textarea.d.ts +21 -0
  466. package/dist/components/ui/textarea.js +32 -0
  467. package/dist/components/ui/time-picker.d.ts +35 -0
  468. package/dist/components/ui/time-picker.js +46 -0
  469. package/dist/components/ui/tooltip.d.ts +318 -0
  470. package/dist/components/ui/tooltip.js +56 -0
  471. package/dist/components/ui/vertical-stepper.d.ts +16 -0
  472. package/dist/components/ui/vertical-stepper.js +30 -0
  473. package/dist/design/figma-styles.d.ts +2 -0
  474. package/dist/design/figma-styles.js +2106 -0
  475. package/dist/design/theme.d.ts +18 -0
  476. package/dist/design/theme.js +185 -0
  477. package/dist/fonts/DM-Mono-OFL.txt +93 -0
  478. package/dist/fonts/Inter-OFL.txt +93 -0
  479. package/dist/fonts/README.md +23 -0
  480. package/dist/fonts/SHA256SUMS +11 -0
  481. package/dist/fonts/dm-mono-400-latin-ext.woff2 +0 -0
  482. package/dist/fonts/dm-mono-400-latin.woff2 +0 -0
  483. package/dist/fonts/dm-mono-500-latin-ext.woff2 +0 -0
  484. package/dist/fonts/dm-mono-500-latin.woff2 +0 -0
  485. package/dist/fonts/inter-cyrillic-ext.woff2 +0 -0
  486. package/dist/fonts/inter-cyrillic.woff2 +0 -0
  487. package/dist/fonts/inter-greek-ext.woff2 +0 -0
  488. package/dist/fonts/inter-greek.woff2 +0 -0
  489. package/dist/fonts/inter-latin-ext.woff2 +0 -0
  490. package/dist/fonts/inter-latin.woff2 +0 -0
  491. package/dist/fonts/inter-vietnamese.woff2 +0 -0
  492. package/dist/hooks/use-notification.d.ts +36 -0
  493. package/dist/hooks/use-notification.js +86 -0
  494. package/dist/hooks/use-tab-observer.d.ts +8 -0
  495. package/dist/hooks/use-tab-observer.js +72 -0
  496. package/dist/magna-assets.d.ts +2 -0
  497. package/dist/magna-assets.js +273 -0
  498. package/dist/magnaui.d.ts +77 -0
  499. package/dist/magnaui.js +77 -0
  500. package/dist/styles.css +2665 -0
  501. package/dist/utils/cn.d.ts +18 -0
  502. package/dist/utils/cn.js +14 -0
  503. package/dist/utils/polymorphic.d.ts +10 -0
  504. package/dist/utils/polymorphic.js +1 -0
  505. package/dist/utils/tv.d.ts +18 -0
  506. package/dist/utils/tv.js +5 -0
  507. package/dist/vendor/tailwind-variants/LICENSE +21 -0
  508. package/dist/vendor/tailwind-variants/config.d.ts +38 -0
  509. package/dist/vendor/tailwind-variants/generated.d.ts +3 -0
  510. package/dist/vendor/tailwind-variants/index.d.ts +370 -0
  511. package/docs/implementation-provenance.md +96 -0
  512. package/package.json +108 -0
@@ -0,0 +1,18 @@
1
+ import { type ClassValue } from "clsx";
2
+ export type { ClassValue } from "clsx";
3
+ export declare const twMergeConfig: {
4
+ extend: {
5
+ classGroups: {
6
+ 'font-size': {
7
+ text: string[];
8
+ }[];
9
+ shadow: {
10
+ shadow: string[];
11
+ }[];
12
+ rounded: {
13
+ rounded: string[];
14
+ }[];
15
+ };
16
+ };
17
+ };
18
+ export declare const cn: (...values: ClassValue[]) => string;
@@ -0,0 +1,14 @@
1
+ import { clsx } from "clsx";
2
+ import { extendTailwindMerge } from "tailwind-merge";
3
+ import { texts, shadows, borderRadii } from "../design/theme.js";
4
+ export const twMergeConfig = {
5
+ extend: {
6
+ classGroups: {
7
+ 'font-size': [{ text: Object.keys(texts) }],
8
+ shadow: [{ shadow: Object.keys(shadows) }],
9
+ rounded: [{ rounded: Object.keys(borderRadii) }],
10
+ },
11
+ },
12
+ };
13
+ const resolveClasses = extendTailwindMerge(twMergeConfig);
14
+ export const cn = (...values) => resolveClasses(clsx(values));
@@ -0,0 +1,10 @@
1
+ import type { ComponentPropsWithRef, ComponentPropsWithoutRef, ElementType, ReactNode } from "react";
2
+ export type PolymorphicComponentProps<T extends ElementType, P = object> = P & {
3
+ as?: T;
4
+ children?: ReactNode;
5
+ } & Omit<ComponentPropsWithoutRef<T>, keyof P | 'as'>;
6
+ export type PolymorphicRef<T extends ElementType> = ComponentPropsWithRef<T>['ref'];
7
+ export type PolymorphicComponentPropsWithRef<T extends ElementType, P = object> = PolymorphicComponentProps<T, P> & {
8
+ ref?: PolymorphicRef<T>;
9
+ };
10
+ export type PolymorphicComponent<P> = <T extends ElementType>(props: PolymorphicComponentPropsWithRef<T, P>) => ReactNode;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ export type { VariantProps, ClassValue } from "../vendor/tailwind-variants/index.js";
2
+ export declare const tv: import("../vendor/tailwind-variants/index.js").CreateTV<{
3
+ twMergeConfig: {
4
+ extend: {
5
+ classGroups: {
6
+ 'font-size': {
7
+ text: string[];
8
+ }[];
9
+ shadow: {
10
+ shadow: string[];
11
+ }[];
12
+ rounded: {
13
+ rounded: string[];
14
+ }[];
15
+ };
16
+ };
17
+ };
18
+ }>;
@@ -0,0 +1,5 @@
1
+ import { createTV } from "tailwind-variants";
2
+ import { twMergeConfig } from "./cn.js";
3
+ export const tv = createTV({
4
+ twMergeConfig,
5
+ });
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 Tailwid Variants
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,38 @@
1
+ import type {extendTailwindMerge} from "tailwind-merge";
2
+ import type {TVVariants} from "./index.js";
3
+ import type {TVGeneratedScreens} from "./generated.js";
4
+
5
+ type MergeConfig = Parameters<typeof extendTailwindMerge>[0];
6
+ type LegacyMergeConfig = Extract<MergeConfig, {extend?: unknown}>["extend"];
7
+
8
+ export type TWMConfig = {
9
+ /**
10
+ * Whether to merge the class names with `tailwind-merge` library.
11
+ * It's avoid to have duplicate tailwind classes. (Recommended)
12
+ * @see https://github.com/dcastil/tailwind-merge/blob/v2.2.0/README.md
13
+ * @default true
14
+ */
15
+ twMerge?: boolean;
16
+ /**
17
+ * The config object for `tailwind-merge` library.
18
+ * @see https://github.com/dcastil/tailwind-merge/blob/v2.2.0/docs/configuration.md
19
+ */
20
+ twMergeConfig?: MergeConfig & LegacyMergeConfig;
21
+ };
22
+
23
+ export type TVConfig<
24
+ // @ts-expect-error
25
+ V extends TVVariants | undefined = undefined,
26
+ // @ts-expect-error
27
+ EV extends TVVariants | undefined = undefined,
28
+ > = {
29
+ /**
30
+ * Whether to enable responsive variant transform.
31
+ * Which variants or screens(breakpoints) for responsive variant transform.
32
+ * @default false
33
+ */
34
+ responsiveVariants?:
35
+ | boolean
36
+ | TVGeneratedScreens[]
37
+ | {[K in keyof V | keyof EV]?: boolean | TVGeneratedScreens[]};
38
+ } & TWMConfig;
@@ -0,0 +1,3 @@
1
+ // Equivalent to tailwind-variants 0.2.1 TVGeneratedScreens at package build time.
2
+ // Materialized to avoid importing a consumer-specific Tailwind config API.
3
+ export type TVGeneratedScreens = "2xl" | "lg" | "md" | "sm" | "xl";
@@ -0,0 +1,370 @@
1
+ import type {ClassNameValue as ClassValue} from "tailwind-merge";
2
+
3
+ import {TVConfig, TWMConfig} from "./config.js";
4
+ import {TVGeneratedScreens} from "./generated.js";
5
+
6
+ /**
7
+ * ----------------------------------------
8
+ * Base Types
9
+ * ----------------------------------------
10
+ */
11
+
12
+ export type {ClassValue};
13
+
14
+ export type ClassProp<V extends unknown = ClassValue> =
15
+ | {class?: V; className?: never}
16
+ | {class?: never; className?: V};
17
+
18
+ type TVBaseName = "base";
19
+
20
+ type TVScreens = "initial" | TVGeneratedScreens;
21
+
22
+ type TVSlots = Record<string, ClassValue> | undefined;
23
+
24
+ /**
25
+ * ----------------------------------------------------------------------
26
+ * Utils
27
+ * ----------------------------------------------------------------------
28
+ */
29
+
30
+ export type OmitUndefined<T> = T extends undefined ? never : T;
31
+
32
+ export type StringToBoolean<T> = T extends "true" | "false" ? boolean : T;
33
+
34
+ export type CnOptions = ClassValue[];
35
+
36
+ export type CnReturn = string | undefined;
37
+
38
+ export declare const cnBase: <T extends CnOptions>(...classes: T) => CnReturn;
39
+
40
+ export declare const cn: <T extends CnOptions>(...classes: T) => (config?: TWMConfig) => CnReturn;
41
+
42
+ // compare if the value is true or array of values
43
+ export type isTrueOrArray<T> = T extends true | unknown[] ? true : false;
44
+
45
+ export type WithInitialScreen<T extends Array<string>> = ["initial", ...T];
46
+
47
+ /**
48
+ * ----------------------------------------------------------------------
49
+ * TV Types
50
+ * ----------------------------------------------------------------------
51
+ */
52
+
53
+ type TVSlotsWithBase<S extends TVSlots, B extends ClassValue> = B extends undefined
54
+ ? keyof S
55
+ : keyof S | TVBaseName;
56
+
57
+ type SlotsClassValue<S extends TVSlots, B extends ClassValue> = {
58
+ [K in TVSlotsWithBase<S, B>]?: ClassValue;
59
+ };
60
+
61
+ type TVVariantsDefault<S extends TVSlots, B extends ClassValue> = S extends undefined
62
+ ? {}
63
+ : {
64
+ [key: string]: {
65
+ [key: string]: S extends TVSlots ? SlotsClassValue<S, B> | ClassValue : ClassValue;
66
+ };
67
+ };
68
+
69
+ export type TVVariants<
70
+ S extends TVSlots | undefined,
71
+ B extends ClassValue | undefined = undefined,
72
+ EV extends TVVariants<ES> | undefined = undefined,
73
+ ES extends TVSlots | undefined = undefined,
74
+ > = EV extends undefined
75
+ ? TVVariantsDefault<S, B>
76
+ :
77
+ | {
78
+ [K in keyof EV]: {
79
+ [K2 in keyof EV[K]]: S extends TVSlots
80
+ ? SlotsClassValue<S, B> | ClassValue
81
+ : ClassValue;
82
+ };
83
+ }
84
+ | TVVariantsDefault<S, B>;
85
+
86
+ export type TVCompoundVariants<
87
+ V extends TVVariants<S>,
88
+ S extends TVSlots,
89
+ B extends ClassValue,
90
+ EV extends TVVariants<ES>,
91
+ ES extends TVSlots,
92
+ > = Array<
93
+ {
94
+ [K in keyof V | keyof EV]?:
95
+ | (K extends keyof V ? StringToBoolean<keyof V[K]> : never)
96
+ | (K extends keyof EV ? StringToBoolean<keyof EV[K]> : never)
97
+ | (K extends keyof V ? StringToBoolean<keyof V[K]>[] : never);
98
+ } & ClassProp<SlotsClassValue<S, B> | ClassValue>
99
+ >;
100
+
101
+ export type TVCompoundSlots<
102
+ V extends TVVariants<S>,
103
+ S extends TVSlots,
104
+ B extends ClassValue,
105
+ > = Array<
106
+ V extends undefined
107
+ ? {
108
+ slots: Array<TVSlotsWithBase<S, B>>;
109
+ } & ClassProp
110
+ : {
111
+ slots: Array<TVSlotsWithBase<S, B>>;
112
+ } & {
113
+ [K in keyof V]?: StringToBoolean<keyof V[K]> | StringToBoolean<keyof V[K]>[];
114
+ } & ClassProp
115
+ >;
116
+
117
+ export type TVDefaultVariants<
118
+ V extends TVVariants<S>,
119
+ S extends TVSlots,
120
+ EV extends TVVariants<ES>,
121
+ ES extends TVSlots,
122
+ > = {
123
+ [K in keyof V | keyof EV]?:
124
+ | (K extends keyof V ? StringToBoolean<keyof V[K]> : never)
125
+ | (K extends keyof EV ? StringToBoolean<keyof EV[K]> : never);
126
+ };
127
+
128
+ export type TVScreenPropsValue<
129
+ V extends TVVariants<S>,
130
+ S extends TVSlots,
131
+ K extends keyof V,
132
+ C extends TVConfig,
133
+ > = C["responsiveVariants"] extends string[]
134
+ ? {
135
+ [Screen in WithInitialScreen<C["responsiveVariants"]>[number]]?: StringToBoolean<keyof V[K]>;
136
+ }
137
+ : {
138
+ [Screen in TVScreens]?: StringToBoolean<keyof V[K]>;
139
+ };
140
+
141
+ export type TVProps<
142
+ V extends TVVariants<S>,
143
+ S extends TVSlots,
144
+ C extends TVConfig<V, EV>,
145
+ EV extends TVVariants<ES>,
146
+ ES extends TVSlots,
147
+ > = EV extends undefined
148
+ ? V extends undefined
149
+ ? ClassProp<ClassValue>
150
+ : {
151
+ [K in keyof V]?: isTrueOrArray<C["responsiveVariants"]> extends true
152
+ ? StringToBoolean<keyof V[K]> | TVScreenPropsValue<V, S, K, C> | undefined
153
+ : StringToBoolean<keyof V[K]> | undefined;
154
+ } & ClassProp<ClassValue>
155
+ : V extends undefined
156
+ ? {
157
+ [K in keyof EV]?: isTrueOrArray<C["responsiveVariants"]> extends true
158
+ ? StringToBoolean<keyof EV[K]> | TVScreenPropsValue<EV, ES, K, C> | undefined
159
+ : StringToBoolean<keyof EV[K]> | undefined;
160
+ } & ClassProp<ClassValue>
161
+ : {
162
+ [K in keyof V | keyof EV]?: isTrueOrArray<C["responsiveVariants"]> extends true
163
+ ?
164
+ | (K extends keyof V ? StringToBoolean<keyof V[K]> : never)
165
+ | (K extends keyof EV ? StringToBoolean<keyof EV[K]> : never)
166
+ | TVScreenPropsValue<EV & V, S, K, C>
167
+ | undefined
168
+ :
169
+ | (K extends keyof V ? StringToBoolean<keyof V[K]> : never)
170
+ | (K extends keyof EV ? StringToBoolean<keyof EV[K]> : never)
171
+ | undefined;
172
+ } & ClassProp<ClassValue>;
173
+
174
+ export type TVVariantKeys<V extends TVVariants<S>, S extends TVSlots> = V extends Object
175
+ ? Array<keyof V>
176
+ : undefined;
177
+
178
+ export type TVReturnProps<
179
+ V extends TVVariants<S>,
180
+ S extends TVSlots,
181
+ B extends ClassValue,
182
+ EV extends TVVariants<ES>,
183
+ ES extends TVSlots,
184
+ // @ts-expect-error
185
+ E extends TVReturnType = undefined,
186
+ > = {
187
+ extend: E;
188
+ base: B;
189
+ slots: S;
190
+ variants: V;
191
+ defaultVariants: TVDefaultVariants<V, S, EV, ES>;
192
+ compoundVariants: TVCompoundVariants<V, S, B, EV, ES>;
193
+ compoundSlots: TVCompoundSlots<V, S, B>;
194
+ variantKeys: TVVariantKeys<V, S>;
195
+ };
196
+
197
+ type HasSlots<S extends TVSlots, ES extends TVSlots> = S extends undefined
198
+ ? ES extends undefined
199
+ ? false
200
+ : true
201
+ : true;
202
+
203
+ export type TVReturnType<
204
+ V extends TVVariants<S>,
205
+ S extends TVSlots,
206
+ B extends ClassValue,
207
+ C extends TVConfig<V, EV>,
208
+ EV extends TVVariants<ES>,
209
+ ES extends TVSlots,
210
+ // @ts-expect-error
211
+ E extends TVReturnType = undefined,
212
+ > = {
213
+ (props?: TVProps<V, S, C, EV, ES>): HasSlots<S, ES> extends true
214
+ ? {
215
+ [K in keyof (ES extends undefined ? {} : ES)]: (
216
+ slotProps?: TVProps<V, S, C, EV, ES>,
217
+ ) => string;
218
+ } & {
219
+ [K in keyof (S extends undefined ? {} : S)]: (
220
+ slotProps?: TVProps<V, S, C, EV, ES>,
221
+ ) => string;
222
+ } & {
223
+ [K in TVSlotsWithBase<{}, B>]: (slotProps?: TVProps<V, S, C, EV, ES>) => string;
224
+ }
225
+ : string;
226
+ } & TVReturnProps<V, S, B, EV, ES, E>;
227
+
228
+ export type TV = {
229
+ <
230
+ V extends TVVariants<S, B, EV>,
231
+ CV extends TVCompoundVariants<V, S, B, EV, ES>,
232
+ DV extends TVDefaultVariants<V, S, EV, ES>,
233
+ C extends TVConfig<V, EV>,
234
+ B extends ClassValue = undefined,
235
+ S extends TVSlots = undefined,
236
+ // @ts-expect-error
237
+ E extends TVReturnType = TVReturnType<
238
+ V,
239
+ S,
240
+ B,
241
+ C,
242
+ // @ts-expect-error
243
+ EV extends undefined ? {} : EV,
244
+ // @ts-expect-error
245
+ ES extends undefined ? {} : ES
246
+ >,
247
+ EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"],
248
+ ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined,
249
+ >(
250
+ options: {
251
+ /**
252
+ * Extend allows for easy composition of components.
253
+ * @see https://www.tailwind-variants.org/docs/composing-components
254
+ */
255
+ extend?: E;
256
+ /**
257
+ * Base allows you to set a base class for a component.
258
+ */
259
+ base?: B;
260
+ /**
261
+ * Slots allow you to separate a component into multiple parts.
262
+ * @see https://www.tailwind-variants.org/docs/slots
263
+ */
264
+ slots?: S;
265
+ /**
266
+ * Variants allow you to create multiple versions of the same component.
267
+ * @see https://www.tailwind-variants.org/docs/variants#adding-variants
268
+ */
269
+ variants?: V;
270
+ /**
271
+ * Compound variants allow you to apply classes to multiple variants at once.
272
+ * @see https://www.tailwind-variants.org/docs/variants#compound-variants
273
+ */
274
+ compoundVariants?: CV;
275
+ /**
276
+ * Compound slots allow you to apply classes to multiple slots at once.
277
+ */
278
+ compoundSlots?: TVCompoundSlots<V, S, B>;
279
+ /**
280
+ * Default variants allow you to set default variants for a component.
281
+ * @see https://www.tailwind-variants.org/docs/variants#default-variants
282
+ */
283
+ defaultVariants?: DV;
284
+ },
285
+ /**
286
+ * The config object allows you to modify the default configuration.
287
+ * @see https://www.tailwind-variants.org/docs/api-reference#config-optional
288
+ */
289
+ config?: C,
290
+ ): TVReturnType<V, S, B, C, EV, ES, E>;
291
+ };
292
+
293
+ export type CreateTV<RV extends TVConfig["responsiveVariants"] = undefined> = {
294
+ <
295
+ V extends TVVariants<S, B, EV>,
296
+ CV extends TVCompoundVariants<V, S, B, EV, ES>,
297
+ DV extends TVDefaultVariants<V, S, EV, ES>,
298
+ C extends TVConfig<V, EV>,
299
+ B extends ClassValue = undefined,
300
+ S extends TVSlots = undefined,
301
+ // @ts-expect-error
302
+ E extends TVReturnType = TVReturnType<
303
+ V,
304
+ S,
305
+ B,
306
+ C,
307
+ // @ts-expect-error
308
+ EV extends undefined ? {} : EV,
309
+ // @ts-expect-error
310
+ ES extends undefined ? {} : ES
311
+ >,
312
+ EV extends TVVariants<ES, B, E["variants"], ES> = E["variants"],
313
+ ES extends TVSlots = E["slots"] extends TVSlots ? E["slots"] : undefined,
314
+ >(
315
+ options: {
316
+ /**
317
+ * Extend allows for easy composition of components.
318
+ * @see https://www.tailwind-variants.org/docs/composing-components
319
+ */
320
+ extend?: E;
321
+ /**
322
+ * Base allows you to set a base class for a component.
323
+ */
324
+ base?: B;
325
+ /**
326
+ * Slots allow you to separate a component into multiple parts.
327
+ * @see https://www.tailwind-variants.org/docs/slots
328
+ */
329
+ slots?: S;
330
+ /**
331
+ * Variants allow you to create multiple versions of the same component.
332
+ * @see https://www.tailwind-variants.org/docs/variants#adding-variants
333
+ */
334
+ variants?: V;
335
+ /**
336
+ * Compound variants allow you to apply classes to multiple variants at once.
337
+ * @see https://www.tailwind-variants.org/docs/variants#compound-variants
338
+ */
339
+ compoundVariants?: CV;
340
+ /**
341
+ * Compound slots allow you to apply classes to multiple slots at once.
342
+ */
343
+ compoundSlots?: TVCompoundSlots<V, S, B>;
344
+ /**
345
+ * Default variants allow you to set default variants for a component.
346
+ * @see https://www.tailwind-variants.org/docs/variants#default-variants
347
+ */
348
+ defaultVariants?: DV;
349
+ },
350
+ /**
351
+ * The config object allows you to modify the default configuration.
352
+ * @see https://www.tailwind-variants.org/docs/api-reference#config-optional
353
+ */
354
+ config?: C,
355
+ ): TVReturnType<V, S, B, C & RV, EV, ES, E>;
356
+ };
357
+
358
+ // main function
359
+ export declare const tv: TV;
360
+
361
+ export declare function createTV<T extends TVConfig["responsiveVariants"]>(
362
+ config: TVConfig & T,
363
+ ): CreateTV<T>;
364
+
365
+ export declare const defaultConfig: TVConfig;
366
+
367
+ export type VariantProps<Component extends (...args: any) => any> = Omit<
368
+ OmitUndefined<Parameters<Component>[0]>,
369
+ "class" | "className"
370
+ >;
@@ -0,0 +1,96 @@
1
+ # MagnaUI implementation provenance
2
+
3
+ This record describes the component implementation replacement and the material
4
+ that remains in the repository. It does not change the [MagnaUI Private Use
5
+ License](../LICENSE) or the [third-party notices](../THIRD_PARTY_NOTICES.md).
6
+
7
+ ## Implementation replacement
8
+
9
+ The base component implementations were rewritten while retaining the public
10
+ compound component APIs, the `magnaui` facade, and the MagnaUI design contract:
11
+ semantic colors, typography, dimensions, corner radii, spacing, and interaction
12
+ states. Existing source, documentation examples, and design snapshots were used
13
+ to understand those contracts.
14
+
15
+ The replacement includes context-based sharing between component slots, typed
16
+ slot recipes, revised utilities, native OTP fields, tab geometry observation, and
17
+ an external notification store. Installed Radix primitives continue to provide
18
+ accessible selection, keyboard navigation, focus management, and portals; cmdk
19
+ continues to provide command-menu behavior. Select retains its custom scroll
20
+ viewport and thumb. These changes replace implementation structure without
21
+ introducing a new visual design.
22
+
23
+ This was **not a clean-room implementation**: the previous source was inspected.
24
+ A rewrite, different architecture, or new branding is not proof of exclusive
25
+ ownership or proof that no protected material remains. This record therefore
26
+ does not certify the repository as entirely Magna-owned.
27
+
28
+ ## Design and artwork retained
29
+
30
+ The supplied Figma design includes inherited structure, Magna modifications, and
31
+ additional images. The checked-in [variable snapshot](../design/figma-tokens.json),
32
+ [style snapshot](../design/figma-styles.json), and
33
+ [design review](figma-review.md) record implementation inputs; they do not establish
34
+ ownership or grant separate rights to all designs or images.
35
+
36
+ The following artwork modules were deliberately left unchanged in this
37
+ replacement:
38
+
39
+ - [`avatar-empty-icons.tsx`](../components/ui/avatar-empty-icons.tsx)
40
+ - [`svg-rating-icons.tsx`](../components/ui/svg-rating-icons.tsx)
41
+
42
+ The artwork under [`public/magna`](../public/magna) and its
43
+ [asset manifest](../design/assets.json) are also retained. Exporting or including
44
+ an image from Figma does not itself establish that the image is exclusively
45
+ owned by Magna. Existing asset notices and applicable source permissions remain
46
+ in effect; this replacement does not remove or reassign them.
47
+
48
+ ## Notices and dependencies
49
+
50
+ The original MIT copyright and permission notice is preserved verbatim in
51
+ [THIRD_PARTY_NOTICES.md](../THIRD_PARTY_NOTICES.md). It continues to accompany
52
+ covered pre-existing material and any retained portions. Private-use terms apply
53
+ only within the scope stated in [LICENSE](../LICENSE).
54
+
55
+ React, React DOM, Radix, cmdk, Remix Icon, Next.js, Tailwind, and the other installed
56
+ packages retain their own licenses and notices. The [package manifest](../package.json)
57
+ and [lockfile](../pnpm-lock.yaml) identify the dependency set. Component source
58
+ replacement does not relicense these dependencies, bundled fonts, or assets.
59
+ The `private` and `UNLICENSED` package fields do not transfer third-party rights.
60
+
61
+ ## Verification recorded
62
+
63
+ The following checks passed during the replacement:
64
+
65
+ | Check | Scope |
66
+ | --- | --- |
67
+ | `pnpm exec tsc --noEmit` | TypeScript contracts across the project |
68
+ | `pnpm build` | Production compilation, project lint, type validation, and all static routes |
69
+ | `node scripts/verify-library.mjs` | 53 complete assets, 40 applications, 386 token names across 20 theme combinations, 72 desktop states, and Magna control radii |
70
+ | Targeted OTP handler checks | Repeated-digit focus advance, blocked spin/space keys, one-character replacement, mobile deletion, numeric paste, disabled fields, and consumer-cancelled paste |
71
+ | Targeted notification contract checks | Single notification, update, targeted dismissal, removal, and the imperative handle |
72
+
73
+ ## Browser comparison
74
+
75
+ Compared the replacement with the unchanged baseline documentation at a 1280px
76
+ viewport width. All 59 default previews rendered without browser warnings or
77
+ errors. Matching text, inputs, images, and icons were compared for position,
78
+ dimensions, font metrics, color, background, radius, and shadow with a 0.8px
79
+ geometry tolerance. Divider and tag differences found during that pass were
80
+ corrected and rechecked. Some SVG control marks became CSS shapes, and OTP fields
81
+ have clearer accessible labels; these were reviewed separately.
82
+
83
+ Eight representative previews were also compared in dark mode: Button,
84
+ FancyButton, Input, Select, Radio, Switch, Alert, and Badge. All measured values
85
+ matched. Screenshot inspection covered FancyButton highlights, the file-format
86
+ icon, and unchecked/checked checkbox states in light and dark themes.
87
+
88
+ Browser interaction checks covered checkbox keyboard activation, OTP typing,
89
+ paste, backspace and disabled fields, Select keyboard selection, dialog Escape
90
+ and focus restoration, and notification display and dismissal. Focused source
91
+ checks also covered tab indicator movement, notification handle retention,
92
+ nested `asChild`, and polymorphic children types.
93
+
94
+ These checks cover representative states, not every variant, browser, viewport,
95
+ animation frame, or accessibility workflow. They do not constitute a pixel-diff
96
+ guarantee or determine ownership.