@mihcm/ui 0.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (737) hide show
  1. package/README.md +138 -0
  2. package/dist/AccessLevelGroup.d.ts +37 -0
  3. package/dist/AccessLevelGroup.d.ts.map +1 -0
  4. package/dist/AccessLevelGroup.js +39 -0
  5. package/dist/AccessLevelGroup.js.map +1 -0
  6. package/dist/AccessLevelGroup.native.d.ts +18 -0
  7. package/dist/AccessLevelGroup.native.d.ts.map +1 -0
  8. package/dist/AccessLevelGroup.native.js +40 -0
  9. package/dist/AccessLevelGroup.native.js.map +1 -0
  10. package/dist/Accordion.d.ts +52 -0
  11. package/dist/Accordion.d.ts.map +1 -0
  12. package/dist/Accordion.js +90 -0
  13. package/dist/Accordion.js.map +1 -0
  14. package/dist/Accordion.native.d.ts +36 -0
  15. package/dist/Accordion.native.d.ts.map +1 -0
  16. package/dist/Accordion.native.js +86 -0
  17. package/dist/Accordion.native.js.map +1 -0
  18. package/dist/Alert.d.ts +33 -0
  19. package/dist/Alert.d.ts.map +1 -0
  20. package/dist/Alert.js +45 -0
  21. package/dist/Alert.js.map +1 -0
  22. package/dist/Alert.native.d.ts +26 -0
  23. package/dist/Alert.native.d.ts.map +1 -0
  24. package/dist/Alert.native.js +41 -0
  25. package/dist/Alert.native.js.map +1 -0
  26. package/dist/AlertDialog.d.ts +57 -0
  27. package/dist/AlertDialog.d.ts.map +1 -0
  28. package/dist/AlertDialog.js +91 -0
  29. package/dist/AlertDialog.js.map +1 -0
  30. package/dist/AlertDialog.native.d.ts +66 -0
  31. package/dist/AlertDialog.native.d.ts.map +1 -0
  32. package/dist/AlertDialog.native.js +71 -0
  33. package/dist/AlertDialog.native.js.map +1 -0
  34. package/dist/AspectRatio.d.ts +18 -0
  35. package/dist/AspectRatio.d.ts.map +1 -0
  36. package/dist/AspectRatio.js +19 -0
  37. package/dist/AspectRatio.js.map +1 -0
  38. package/dist/AspectRatio.native.d.ts +7 -0
  39. package/dist/AspectRatio.native.d.ts.map +1 -0
  40. package/dist/AspectRatio.native.js +13 -0
  41. package/dist/AspectRatio.native.js.map +1 -0
  42. package/dist/Avatar.d.ts +45 -0
  43. package/dist/Avatar.d.ts.map +1 -0
  44. package/dist/Avatar.js +69 -0
  45. package/dist/Avatar.js.map +1 -0
  46. package/dist/Avatar.native.d.ts +38 -0
  47. package/dist/Avatar.native.d.ts.map +1 -0
  48. package/dist/Avatar.native.js +56 -0
  49. package/dist/Avatar.native.js.map +1 -0
  50. package/dist/AvatarGroup.d.ts +32 -0
  51. package/dist/AvatarGroup.d.ts.map +1 -0
  52. package/dist/AvatarGroup.js +45 -0
  53. package/dist/AvatarGroup.js.map +1 -0
  54. package/dist/AvatarGroup.native.d.ts +18 -0
  55. package/dist/AvatarGroup.native.d.ts.map +1 -0
  56. package/dist/AvatarGroup.native.js +35 -0
  57. package/dist/AvatarGroup.native.js.map +1 -0
  58. package/dist/Badge.d.ts +26 -0
  59. package/dist/Badge.d.ts.map +1 -0
  60. package/dist/Badge.js +44 -0
  61. package/dist/Badge.js.map +1 -0
  62. package/dist/Badge.native.d.ts +23 -0
  63. package/dist/Badge.native.d.ts.map +1 -0
  64. package/dist/Badge.native.js +49 -0
  65. package/dist/Badge.native.js.map +1 -0
  66. package/dist/Banner.d.ts +27 -0
  67. package/dist/Banner.d.ts.map +1 -0
  68. package/dist/Banner.js +41 -0
  69. package/dist/Banner.js.map +1 -0
  70. package/dist/Banner.native.d.ts +24 -0
  71. package/dist/Banner.native.d.ts.map +1 -0
  72. package/dist/Banner.native.js +39 -0
  73. package/dist/Banner.native.js.map +1 -0
  74. package/dist/BarList.d.ts +27 -0
  75. package/dist/BarList.d.ts.map +1 -0
  76. package/dist/BarList.js +25 -0
  77. package/dist/BarList.js.map +1 -0
  78. package/dist/Breadcrumb.d.ts +67 -0
  79. package/dist/Breadcrumb.d.ts.map +1 -0
  80. package/dist/Breadcrumb.js +63 -0
  81. package/dist/Breadcrumb.js.map +1 -0
  82. package/dist/Breadcrumb.native.d.ts +64 -0
  83. package/dist/Breadcrumb.native.d.ts.map +1 -0
  84. package/dist/Breadcrumb.native.js +50 -0
  85. package/dist/Breadcrumb.native.js.map +1 -0
  86. package/dist/Button.d.ts +42 -0
  87. package/dist/Button.d.ts.map +1 -0
  88. package/dist/Button.js +68 -0
  89. package/dist/Button.js.map +1 -0
  90. package/dist/Button.native.d.ts +38 -0
  91. package/dist/Button.native.d.ts.map +1 -0
  92. package/dist/Button.native.js +51 -0
  93. package/dist/Button.native.js.map +1 -0
  94. package/dist/Calendar.d.ts +16 -0
  95. package/dist/Calendar.d.ts.map +1 -0
  96. package/dist/Calendar.js +94 -0
  97. package/dist/Calendar.js.map +1 -0
  98. package/dist/Calendar.native.d.ts +21 -0
  99. package/dist/Calendar.native.d.ts.map +1 -0
  100. package/dist/Calendar.native.js +15 -0
  101. package/dist/Calendar.native.js.map +1 -0
  102. package/dist/Card.d.ts +29 -0
  103. package/dist/Card.d.ts.map +1 -0
  104. package/dist/Card.js +44 -0
  105. package/dist/Card.js.map +1 -0
  106. package/dist/Card.native.d.ts +20 -0
  107. package/dist/Card.native.d.ts.map +1 -0
  108. package/dist/Card.native.js +32 -0
  109. package/dist/Card.native.js.map +1 -0
  110. package/dist/Carousel.d.ts +46 -0
  111. package/dist/Carousel.d.ts.map +1 -0
  112. package/dist/Carousel.js +115 -0
  113. package/dist/Carousel.js.map +1 -0
  114. package/dist/Carousel.native.d.ts +59 -0
  115. package/dist/Carousel.native.d.ts.map +1 -0
  116. package/dist/Carousel.native.js +93 -0
  117. package/dist/Carousel.native.js.map +1 -0
  118. package/dist/CategoryBar.d.ts +22 -0
  119. package/dist/CategoryBar.d.ts.map +1 -0
  120. package/dist/CategoryBar.js +27 -0
  121. package/dist/CategoryBar.js.map +1 -0
  122. package/dist/Chart.d.ts +77 -0
  123. package/dist/Chart.d.ts.map +1 -0
  124. package/dist/Chart.js +197 -0
  125. package/dist/Chart.js.map +1 -0
  126. package/dist/Checkbox.d.ts +28 -0
  127. package/dist/Checkbox.d.ts.map +1 -0
  128. package/dist/Checkbox.js +44 -0
  129. package/dist/Checkbox.js.map +1 -0
  130. package/dist/Checkbox.native.d.ts +13 -0
  131. package/dist/Checkbox.native.d.ts.map +1 -0
  132. package/dist/Checkbox.native.js +34 -0
  133. package/dist/Checkbox.native.js.map +1 -0
  134. package/dist/CheckboxGrid.d.ts +49 -0
  135. package/dist/CheckboxGrid.d.ts.map +1 -0
  136. package/dist/CheckboxGrid.js +79 -0
  137. package/dist/CheckboxGrid.js.map +1 -0
  138. package/dist/CheckboxGrid.native.d.ts +14 -0
  139. package/dist/CheckboxGrid.native.d.ts.map +1 -0
  140. package/dist/CheckboxGrid.native.js +47 -0
  141. package/dist/CheckboxGrid.native.js.map +1 -0
  142. package/dist/Collapsible.d.ts +51 -0
  143. package/dist/Collapsible.d.ts.map +1 -0
  144. package/dist/Collapsible.js +101 -0
  145. package/dist/Collapsible.js.map +1 -0
  146. package/dist/Collapsible.native.d.ts +53 -0
  147. package/dist/Collapsible.native.d.ts.map +1 -0
  148. package/dist/Collapsible.native.js +109 -0
  149. package/dist/Collapsible.native.js.map +1 -0
  150. package/dist/Combobox.d.ts +42 -0
  151. package/dist/Combobox.d.ts.map +1 -0
  152. package/dist/Combobox.js +96 -0
  153. package/dist/Combobox.js.map +1 -0
  154. package/dist/Combobox.native.d.ts +21 -0
  155. package/dist/Combobox.native.d.ts.map +1 -0
  156. package/dist/Combobox.native.js +28 -0
  157. package/dist/Combobox.native.js.map +1 -0
  158. package/dist/Command.d.ts +107 -0
  159. package/dist/Command.d.ts.map +1 -0
  160. package/dist/Command.js +68 -0
  161. package/dist/Command.js.map +1 -0
  162. package/dist/Command.native.d.ts +41 -0
  163. package/dist/Command.native.d.ts.map +1 -0
  164. package/dist/Command.native.js +31 -0
  165. package/dist/Command.native.js.map +1 -0
  166. package/dist/ContextMenu.d.ts +48 -0
  167. package/dist/ContextMenu.d.ts.map +1 -0
  168. package/dist/ContextMenu.js +79 -0
  169. package/dist/ContextMenu.js.map +1 -0
  170. package/dist/ContextMenu.native.d.ts +81 -0
  171. package/dist/ContextMenu.native.d.ts.map +1 -0
  172. package/dist/ContextMenu.native.js +82 -0
  173. package/dist/ContextMenu.native.js.map +1 -0
  174. package/dist/DataTable.d.ts +98 -0
  175. package/dist/DataTable.d.ts.map +1 -0
  176. package/dist/DataTable.js +291 -0
  177. package/dist/DataTable.js.map +1 -0
  178. package/dist/DataTable.native.d.ts +31 -0
  179. package/dist/DataTable.native.d.ts.map +1 -0
  180. package/dist/DataTable.native.js +22 -0
  181. package/dist/DataTable.native.js.map +1 -0
  182. package/dist/DatePicker.d.ts +63 -0
  183. package/dist/DatePicker.d.ts.map +1 -0
  184. package/dist/DatePicker.js +106 -0
  185. package/dist/DatePicker.js.map +1 -0
  186. package/dist/DatePicker.native.d.ts +21 -0
  187. package/dist/DatePicker.native.d.ts.map +1 -0
  188. package/dist/DatePicker.native.js +15 -0
  189. package/dist/DatePicker.native.js.map +1 -0
  190. package/dist/Dialog.d.ts +52 -0
  191. package/dist/Dialog.d.ts.map +1 -0
  192. package/dist/Dialog.js +93 -0
  193. package/dist/Dialog.js.map +1 -0
  194. package/dist/Dialog.native.d.ts +57 -0
  195. package/dist/Dialog.native.d.ts.map +1 -0
  196. package/dist/Dialog.native.js +62 -0
  197. package/dist/Dialog.native.js.map +1 -0
  198. package/dist/Drawer.d.ts +36 -0
  199. package/dist/Drawer.d.ts.map +1 -0
  200. package/dist/Drawer.js +57 -0
  201. package/dist/Drawer.js.map +1 -0
  202. package/dist/Drawer.native.d.ts +50 -0
  203. package/dist/Drawer.native.d.ts.map +1 -0
  204. package/dist/Drawer.native.js +43 -0
  205. package/dist/Drawer.native.js.map +1 -0
  206. package/dist/DropdownMenu.d.ts +57 -0
  207. package/dist/DropdownMenu.d.ts.map +1 -0
  208. package/dist/DropdownMenu.js +192 -0
  209. package/dist/DropdownMenu.js.map +1 -0
  210. package/dist/DropdownMenu.native.d.ts +53 -0
  211. package/dist/DropdownMenu.native.d.ts.map +1 -0
  212. package/dist/DropdownMenu.native.js +71 -0
  213. package/dist/DropdownMenu.native.js.map +1 -0
  214. package/dist/Dropzone.d.ts +27 -0
  215. package/dist/Dropzone.d.ts.map +1 -0
  216. package/dist/Dropzone.js +33 -0
  217. package/dist/Dropzone.js.map +1 -0
  218. package/dist/EmptyState.d.ts +21 -0
  219. package/dist/EmptyState.d.ts.map +1 -0
  220. package/dist/EmptyState.js +16 -0
  221. package/dist/EmptyState.js.map +1 -0
  222. package/dist/EmptyState.native.d.ts +19 -0
  223. package/dist/EmptyState.native.d.ts.map +1 -0
  224. package/dist/EmptyState.native.js +16 -0
  225. package/dist/EmptyState.native.js.map +1 -0
  226. package/dist/Form.d.ts +310 -0
  227. package/dist/Form.d.ts.map +1 -0
  228. package/dist/Form.js +260 -0
  229. package/dist/Form.js.map +1 -0
  230. package/dist/Form.native.d.ts +36 -0
  231. package/dist/Form.native.d.ts.map +1 -0
  232. package/dist/Form.native.js +33 -0
  233. package/dist/Form.native.js.map +1 -0
  234. package/dist/HoverCard.d.ts +47 -0
  235. package/dist/HoverCard.d.ts.map +1 -0
  236. package/dist/HoverCard.js +86 -0
  237. package/dist/HoverCard.js.map +1 -0
  238. package/dist/HoverCard.native.d.ts +48 -0
  239. package/dist/HoverCard.native.d.ts.map +1 -0
  240. package/dist/HoverCard.native.js +19 -0
  241. package/dist/HoverCard.native.js.map +1 -0
  242. package/dist/IconSidebar.d.ts +50 -0
  243. package/dist/IconSidebar.d.ts.map +1 -0
  244. package/dist/IconSidebar.js +121 -0
  245. package/dist/IconSidebar.js.map +1 -0
  246. package/dist/IconSidebar.native.d.ts +40 -0
  247. package/dist/IconSidebar.native.d.ts.map +1 -0
  248. package/dist/IconSidebar.native.js +24 -0
  249. package/dist/IconSidebar.native.js.map +1 -0
  250. package/dist/Input.d.ts +52 -0
  251. package/dist/Input.d.ts.map +1 -0
  252. package/dist/Input.js +57 -0
  253. package/dist/Input.js.map +1 -0
  254. package/dist/Input.native.d.ts +37 -0
  255. package/dist/Input.native.d.ts.map +1 -0
  256. package/dist/Input.native.js +39 -0
  257. package/dist/Input.native.js.map +1 -0
  258. package/dist/InputOTP.d.ts +30 -0
  259. package/dist/InputOTP.d.ts.map +1 -0
  260. package/dist/InputOTP.js +47 -0
  261. package/dist/InputOTP.js.map +1 -0
  262. package/dist/InputOTP.native.d.ts +32 -0
  263. package/dist/InputOTP.native.d.ts.map +1 -0
  264. package/dist/InputOTP.native.js +48 -0
  265. package/dist/InputOTP.native.js.map +1 -0
  266. package/dist/Label.d.ts +26 -0
  267. package/dist/Label.d.ts.map +1 -0
  268. package/dist/Label.js +35 -0
  269. package/dist/Label.js.map +1 -0
  270. package/dist/Label.native.d.ts +26 -0
  271. package/dist/Label.native.d.ts.map +1 -0
  272. package/dist/Label.native.js +30 -0
  273. package/dist/Label.native.js.map +1 -0
  274. package/dist/Link.d.ts +21 -0
  275. package/dist/Link.d.ts.map +1 -0
  276. package/dist/Link.js +46 -0
  277. package/dist/Link.js.map +1 -0
  278. package/dist/Link.native.d.ts +23 -0
  279. package/dist/Link.native.d.ts.map +1 -0
  280. package/dist/Link.native.js +59 -0
  281. package/dist/Link.native.js.map +1 -0
  282. package/dist/Logo.d.ts +25 -0
  283. package/dist/Logo.d.ts.map +1 -0
  284. package/dist/Logo.js +58 -0
  285. package/dist/Logo.js.map +1 -0
  286. package/dist/Logo.native.d.ts +22 -0
  287. package/dist/Logo.native.d.ts.map +1 -0
  288. package/dist/Logo.native.js +46 -0
  289. package/dist/Logo.native.js.map +1 -0
  290. package/dist/MainSidebar.d.ts +2 -0
  291. package/dist/MainSidebar.d.ts.map +1 -0
  292. package/dist/MainSidebar.js +3 -0
  293. package/dist/MainSidebar.js.map +1 -0
  294. package/dist/MainSidebar.native.d.ts +2 -0
  295. package/dist/MainSidebar.native.d.ts.map +1 -0
  296. package/dist/MainSidebar.native.js +2 -0
  297. package/dist/MainSidebar.native.js.map +1 -0
  298. package/dist/Menubar.d.ts +70 -0
  299. package/dist/Menubar.d.ts.map +1 -0
  300. package/dist/Menubar.js +142 -0
  301. package/dist/Menubar.js.map +1 -0
  302. package/dist/NavigationMenu.d.ts +12 -0
  303. package/dist/NavigationMenu.d.ts.map +1 -0
  304. package/dist/NavigationMenu.js +63 -0
  305. package/dist/NavigationMenu.js.map +1 -0
  306. package/dist/NavigationMenu.native.d.ts +44 -0
  307. package/dist/NavigationMenu.native.d.ts.map +1 -0
  308. package/dist/NavigationMenu.native.js +43 -0
  309. package/dist/NavigationMenu.native.js.map +1 -0
  310. package/dist/NotificationBadge.d.ts +33 -0
  311. package/dist/NotificationBadge.d.ts.map +1 -0
  312. package/dist/NotificationBadge.js +49 -0
  313. package/dist/NotificationBadge.js.map +1 -0
  314. package/dist/NotificationBadge.native.d.ts +25 -0
  315. package/dist/NotificationBadge.native.d.ts.map +1 -0
  316. package/dist/NotificationBadge.native.js +41 -0
  317. package/dist/NotificationBadge.native.js.map +1 -0
  318. package/dist/PageShell.d.ts +24 -0
  319. package/dist/PageShell.d.ts.map +1 -0
  320. package/dist/PageShell.js +24 -0
  321. package/dist/PageShell.js.map +1 -0
  322. package/dist/PageShell.native.d.ts +21 -0
  323. package/dist/PageShell.native.d.ts.map +1 -0
  324. package/dist/PageShell.native.js +19 -0
  325. package/dist/PageShell.native.js.map +1 -0
  326. package/dist/Pagination.d.ts +53 -0
  327. package/dist/Pagination.d.ts.map +1 -0
  328. package/dist/Pagination.js +79 -0
  329. package/dist/Pagination.js.map +1 -0
  330. package/dist/Pagination.native.d.ts +48 -0
  331. package/dist/Pagination.native.d.ts.map +1 -0
  332. package/dist/Pagination.native.js +55 -0
  333. package/dist/Pagination.native.js.map +1 -0
  334. package/dist/Popover.d.ts +57 -0
  335. package/dist/Popover.d.ts.map +1 -0
  336. package/dist/Popover.js +71 -0
  337. package/dist/Popover.js.map +1 -0
  338. package/dist/Popover.native.d.ts +48 -0
  339. package/dist/Popover.native.d.ts.map +1 -0
  340. package/dist/Popover.native.js +65 -0
  341. package/dist/Popover.native.js.map +1 -0
  342. package/dist/Popper.d.ts +54 -0
  343. package/dist/Popper.d.ts.map +1 -0
  344. package/dist/Popper.js +219 -0
  345. package/dist/Popper.js.map +1 -0
  346. package/dist/Progress.d.ts +79 -0
  347. package/dist/Progress.d.ts.map +1 -0
  348. package/dist/Progress.js +110 -0
  349. package/dist/Progress.js.map +1 -0
  350. package/dist/Progress.native.d.ts +42 -0
  351. package/dist/Progress.native.d.ts.map +1 -0
  352. package/dist/Progress.native.js +91 -0
  353. package/dist/Progress.native.js.map +1 -0
  354. package/dist/ProgressCircle.d.ts +69 -0
  355. package/dist/ProgressCircle.d.ts.map +1 -0
  356. package/dist/ProgressCircle.js +78 -0
  357. package/dist/ProgressCircle.js.map +1 -0
  358. package/dist/RadioCardGroup.d.ts +26 -0
  359. package/dist/RadioCardGroup.d.ts.map +1 -0
  360. package/dist/RadioCardGroup.js +26 -0
  361. package/dist/RadioCardGroup.js.map +1 -0
  362. package/dist/RadioGroup.d.ts +35 -0
  363. package/dist/RadioGroup.d.ts.map +1 -0
  364. package/dist/RadioGroup.js +68 -0
  365. package/dist/RadioGroup.js.map +1 -0
  366. package/dist/RadioGroup.native.d.ts +33 -0
  367. package/dist/RadioGroup.native.d.ts.map +1 -0
  368. package/dist/RadioGroup.native.js +55 -0
  369. package/dist/RadioGroup.native.js.map +1 -0
  370. package/dist/Resizable.d.ts +32 -0
  371. package/dist/Resizable.d.ts.map +1 -0
  372. package/dist/Resizable.js +31 -0
  373. package/dist/Resizable.js.map +1 -0
  374. package/dist/Resizable.native.d.ts +32 -0
  375. package/dist/Resizable.native.d.ts.map +1 -0
  376. package/dist/Resizable.native.js +23 -0
  377. package/dist/Resizable.native.js.map +1 -0
  378. package/dist/RichTextEditor.d.ts +38 -0
  379. package/dist/RichTextEditor.d.ts.map +1 -0
  380. package/dist/RichTextEditor.js +218 -0
  381. package/dist/RichTextEditor.js.map +1 -0
  382. package/dist/ScrollArea.d.ts +4 -0
  383. package/dist/ScrollArea.d.ts.map +1 -0
  384. package/dist/ScrollArea.js +26 -0
  385. package/dist/ScrollArea.js.map +1 -0
  386. package/dist/ScrollArea.native.d.ts +19 -0
  387. package/dist/ScrollArea.native.d.ts.map +1 -0
  388. package/dist/ScrollArea.native.js +19 -0
  389. package/dist/ScrollArea.native.js.map +1 -0
  390. package/dist/SearchField.d.ts +43 -0
  391. package/dist/SearchField.d.ts.map +1 -0
  392. package/dist/SearchField.js +34 -0
  393. package/dist/SearchField.js.map +1 -0
  394. package/dist/SearchField.native.d.ts +31 -0
  395. package/dist/SearchField.native.d.ts.map +1 -0
  396. package/dist/SearchField.native.js +30 -0
  397. package/dist/SearchField.native.js.map +1 -0
  398. package/dist/SectionHeader.d.ts +58 -0
  399. package/dist/SectionHeader.d.ts.map +1 -0
  400. package/dist/SectionHeader.js +95 -0
  401. package/dist/SectionHeader.js.map +1 -0
  402. package/dist/SectionHeader.native.d.ts +45 -0
  403. package/dist/SectionHeader.native.d.ts.map +1 -0
  404. package/dist/SectionHeader.native.js +92 -0
  405. package/dist/SectionHeader.native.js.map +1 -0
  406. package/dist/Select.d.ts +78 -0
  407. package/dist/Select.d.ts.map +1 -0
  408. package/dist/Select.js +310 -0
  409. package/dist/Select.js.map +1 -0
  410. package/dist/Select.native.d.ts +53 -0
  411. package/dist/Select.native.d.ts.map +1 -0
  412. package/dist/Select.native.js +86 -0
  413. package/dist/Select.native.js.map +1 -0
  414. package/dist/Separator.d.ts +20 -0
  415. package/dist/Separator.d.ts.map +1 -0
  416. package/dist/Separator.js +20 -0
  417. package/dist/Separator.js.map +1 -0
  418. package/dist/Separator.native.d.ts +8 -0
  419. package/dist/Separator.native.d.ts.map +1 -0
  420. package/dist/Separator.native.js +17 -0
  421. package/dist/Separator.native.js.map +1 -0
  422. package/dist/Sheet.d.ts +54 -0
  423. package/dist/Sheet.d.ts.map +1 -0
  424. package/dist/Sheet.js +191 -0
  425. package/dist/Sheet.js.map +1 -0
  426. package/dist/Sheet.native.d.ts +55 -0
  427. package/dist/Sheet.native.d.ts.map +1 -0
  428. package/dist/Sheet.native.js +112 -0
  429. package/dist/Sheet.native.js.map +1 -0
  430. package/dist/Sidebar.d.ts +131 -0
  431. package/dist/Sidebar.d.ts.map +1 -0
  432. package/dist/Sidebar.js +328 -0
  433. package/dist/Sidebar.js.map +1 -0
  434. package/dist/Skeleton.d.ts +14 -0
  435. package/dist/Skeleton.d.ts.map +1 -0
  436. package/dist/Skeleton.js +17 -0
  437. package/dist/Skeleton.js.map +1 -0
  438. package/dist/Skeleton.native.d.ts +6 -0
  439. package/dist/Skeleton.native.d.ts.map +1 -0
  440. package/dist/Skeleton.native.js +26 -0
  441. package/dist/Skeleton.native.js.map +1 -0
  442. package/dist/Slider.d.ts +63 -0
  443. package/dist/Slider.d.ts.map +1 -0
  444. package/dist/Slider.js +109 -0
  445. package/dist/Slider.js.map +1 -0
  446. package/dist/Slider.native.d.ts +38 -0
  447. package/dist/Slider.native.d.ts.map +1 -0
  448. package/dist/Slider.native.js +18 -0
  449. package/dist/Slider.native.js.map +1 -0
  450. package/dist/SortableList.d.ts +26 -0
  451. package/dist/SortableList.d.ts.map +1 -0
  452. package/dist/SortableList.js +44 -0
  453. package/dist/SortableList.js.map +1 -0
  454. package/dist/SparkChart.d.ts +34 -0
  455. package/dist/SparkChart.d.ts.map +1 -0
  456. package/dist/SparkChart.js +55 -0
  457. package/dist/SparkChart.js.map +1 -0
  458. package/dist/StatCard.d.ts +35 -0
  459. package/dist/StatCard.d.ts.map +1 -0
  460. package/dist/StatCard.js +37 -0
  461. package/dist/StatCard.js.map +1 -0
  462. package/dist/StatCard.native.d.ts +28 -0
  463. package/dist/StatCard.native.d.ts.map +1 -0
  464. package/dist/StatCard.native.js +31 -0
  465. package/dist/StatCard.native.js.map +1 -0
  466. package/dist/StatusBadge.d.ts +23 -0
  467. package/dist/StatusBadge.d.ts.map +1 -0
  468. package/dist/StatusBadge.js +33 -0
  469. package/dist/StatusBadge.js.map +1 -0
  470. package/dist/StatusBadge.native.d.ts +21 -0
  471. package/dist/StatusBadge.native.d.ts.map +1 -0
  472. package/dist/StatusBadge.native.js +37 -0
  473. package/dist/StatusBadge.native.js.map +1 -0
  474. package/dist/Switch.d.ts +31 -0
  475. package/dist/Switch.d.ts.map +1 -0
  476. package/dist/Switch.js +46 -0
  477. package/dist/Switch.js.map +1 -0
  478. package/dist/Switch.native.d.ts +16 -0
  479. package/dist/Switch.native.d.ts.map +1 -0
  480. package/dist/Switch.native.js +41 -0
  481. package/dist/Switch.native.js.map +1 -0
  482. package/dist/TabNavigation.d.ts +49 -0
  483. package/dist/TabNavigation.d.ts.map +1 -0
  484. package/dist/TabNavigation.js +121 -0
  485. package/dist/TabNavigation.js.map +1 -0
  486. package/dist/Table.d.ts +54 -0
  487. package/dist/Table.d.ts.map +1 -0
  488. package/dist/Table.js +96 -0
  489. package/dist/Table.js.map +1 -0
  490. package/dist/Table.native.d.ts +37 -0
  491. package/dist/Table.native.d.ts.map +1 -0
  492. package/dist/Table.native.js +37 -0
  493. package/dist/Table.native.js.map +1 -0
  494. package/dist/Tabs.d.ts +45 -0
  495. package/dist/Tabs.d.ts.map +1 -0
  496. package/dist/Tabs.js +94 -0
  497. package/dist/Tabs.js.map +1 -0
  498. package/dist/Tabs.native.d.ts +47 -0
  499. package/dist/Tabs.native.d.ts.map +1 -0
  500. package/dist/Tabs.native.js +57 -0
  501. package/dist/Tabs.native.js.map +1 -0
  502. package/dist/Tag.d.ts +24 -0
  503. package/dist/Tag.d.ts.map +1 -0
  504. package/dist/Tag.js +41 -0
  505. package/dist/Tag.js.map +1 -0
  506. package/dist/Tag.native.d.ts +23 -0
  507. package/dist/Tag.native.d.ts.map +1 -0
  508. package/dist/Tag.native.js +55 -0
  509. package/dist/Tag.native.js.map +1 -0
  510. package/dist/Text.d.ts +26 -0
  511. package/dist/Text.d.ts.map +1 -0
  512. package/dist/Text.js +63 -0
  513. package/dist/Text.js.map +1 -0
  514. package/dist/Text.native.d.ts +18 -0
  515. package/dist/Text.native.d.ts.map +1 -0
  516. package/dist/Text.native.js +58 -0
  517. package/dist/Text.native.js.map +1 -0
  518. package/dist/Textarea.d.ts +23 -0
  519. package/dist/Textarea.d.ts.map +1 -0
  520. package/dist/Textarea.js +39 -0
  521. package/dist/Textarea.js.map +1 -0
  522. package/dist/Textarea.native.d.ts +16 -0
  523. package/dist/Textarea.native.d.ts.map +1 -0
  524. package/dist/Textarea.native.js +30 -0
  525. package/dist/Textarea.native.js.map +1 -0
  526. package/dist/TiptapEditor.d.ts +24 -0
  527. package/dist/TiptapEditor.d.ts.map +1 -0
  528. package/dist/TiptapEditor.js +84 -0
  529. package/dist/TiptapEditor.js.map +1 -0
  530. package/dist/TitleBar.d.ts +31 -0
  531. package/dist/TitleBar.d.ts.map +1 -0
  532. package/dist/TitleBar.js +27 -0
  533. package/dist/TitleBar.js.map +1 -0
  534. package/dist/TitleBar.native.d.ts +19 -0
  535. package/dist/TitleBar.native.d.ts.map +1 -0
  536. package/dist/TitleBar.native.js +16 -0
  537. package/dist/TitleBar.native.js.map +1 -0
  538. package/dist/Toast.d.ts +72 -0
  539. package/dist/Toast.d.ts.map +1 -0
  540. package/dist/Toast.js +194 -0
  541. package/dist/Toast.js.map +1 -0
  542. package/dist/Toast.native.d.ts +65 -0
  543. package/dist/Toast.native.d.ts.map +1 -0
  544. package/dist/Toast.native.js +182 -0
  545. package/dist/Toast.native.js.map +1 -0
  546. package/dist/Toggle.d.ts +46 -0
  547. package/dist/Toggle.d.ts.map +1 -0
  548. package/dist/Toggle.js +70 -0
  549. package/dist/Toggle.js.map +1 -0
  550. package/dist/Toggle.native.d.ts +42 -0
  551. package/dist/Toggle.native.d.ts.map +1 -0
  552. package/dist/Toggle.native.js +56 -0
  553. package/dist/Toggle.native.js.map +1 -0
  554. package/dist/Tooltip.d.ts +32 -0
  555. package/dist/Tooltip.d.ts.map +1 -0
  556. package/dist/Tooltip.js +43 -0
  557. package/dist/Tooltip.js.map +1 -0
  558. package/dist/Tooltip.native.d.ts +25 -0
  559. package/dist/Tooltip.native.d.ts.map +1 -0
  560. package/dist/Tooltip.native.js +25 -0
  561. package/dist/Tooltip.native.js.map +1 -0
  562. package/dist/TopBar.d.ts +105 -0
  563. package/dist/TopBar.d.ts.map +1 -0
  564. package/dist/TopBar.js +90 -0
  565. package/dist/TopBar.js.map +1 -0
  566. package/dist/TopBar.native.d.ts +67 -0
  567. package/dist/TopBar.native.d.ts.map +1 -0
  568. package/dist/TopBar.native.js +41 -0
  569. package/dist/TopBar.native.js.map +1 -0
  570. package/dist/Tracker.d.ts +44 -0
  571. package/dist/Tracker.d.ts.map +1 -0
  572. package/dist/Tracker.js +92 -0
  573. package/dist/Tracker.js.map +1 -0
  574. package/dist/TransferList.d.ts +51 -0
  575. package/dist/TransferList.d.ts.map +1 -0
  576. package/dist/TransferList.js +107 -0
  577. package/dist/TransferList.js.map +1 -0
  578. package/dist/TransferList.native.d.ts +14 -0
  579. package/dist/TransferList.native.d.ts.map +1 -0
  580. package/dist/TransferList.native.js +57 -0
  581. package/dist/TransferList.native.js.map +1 -0
  582. package/dist/index.d.ts +78 -0
  583. package/dist/index.d.ts.map +1 -0
  584. package/dist/index.js +79 -0
  585. package/dist/index.js.map +1 -0
  586. package/dist/internal/cn.d.ts +7 -0
  587. package/dist/internal/cn.d.ts.map +1 -0
  588. package/dist/internal/cn.js +30 -0
  589. package/dist/internal/cn.js.map +1 -0
  590. package/package.json +499 -0
  591. package/src/AccessLevelGroup.native.tsx +103 -0
  592. package/src/AccessLevelGroup.tsx +103 -0
  593. package/src/Accordion.native.tsx +199 -0
  594. package/src/Accordion.tsx +279 -0
  595. package/src/Alert.native.tsx +100 -0
  596. package/src/Alert.tsx +101 -0
  597. package/src/AlertDialog.native.tsx +189 -0
  598. package/src/AlertDialog.tsx +194 -0
  599. package/src/AspectRatio.native.tsx +28 -0
  600. package/src/AspectRatio.tsx +35 -0
  601. package/src/Avatar.native.tsx +142 -0
  602. package/src/Avatar.tsx +155 -0
  603. package/src/AvatarGroup.native.tsx +81 -0
  604. package/src/AvatarGroup.tsx +114 -0
  605. package/src/Badge.native.tsx +85 -0
  606. package/src/Badge.tsx +93 -0
  607. package/src/Banner.native.tsx +77 -0
  608. package/src/Banner.tsx +95 -0
  609. package/src/BarList.tsx +102 -0
  610. package/src/Breadcrumb.native.tsx +238 -0
  611. package/src/Breadcrumb.tsx +258 -0
  612. package/src/Button.native.tsx +123 -0
  613. package/src/Button.tsx +153 -0
  614. package/src/Calendar.native.tsx +28 -0
  615. package/src/Calendar.tsx +211 -0
  616. package/src/Card.native.tsx +82 -0
  617. package/src/Card.tsx +94 -0
  618. package/src/Carousel.native.tsx +224 -0
  619. package/src/Carousel.tsx +292 -0
  620. package/src/CategoryBar.tsx +85 -0
  621. package/src/Chart.tsx +467 -0
  622. package/src/Checkbox.native.tsx +69 -0
  623. package/src/Checkbox.tsx +108 -0
  624. package/src/CheckboxGrid.native.tsx +160 -0
  625. package/src/CheckboxGrid.tsx +262 -0
  626. package/src/Collapsible.native.tsx +240 -0
  627. package/src/Collapsible.tsx +241 -0
  628. package/src/Combobox.native.tsx +171 -0
  629. package/src/Combobox.tsx +272 -0
  630. package/src/Command.native.tsx +71 -0
  631. package/src/Command.tsx +203 -0
  632. package/src/ContextMenu.native.tsx +313 -0
  633. package/src/ContextMenu.tsx +238 -0
  634. package/src/DataTable.native.tsx +70 -0
  635. package/src/DataTable.tsx +989 -0
  636. package/src/DatePicker.native.tsx +46 -0
  637. package/src/DatePicker.tsx +357 -0
  638. package/src/Dialog.native.tsx +181 -0
  639. package/src/Dialog.tsx +224 -0
  640. package/src/Drawer.native.tsx +134 -0
  641. package/src/Drawer.tsx +119 -0
  642. package/src/DropdownMenu.native.tsx +258 -0
  643. package/src/DropdownMenu.tsx +387 -0
  644. package/src/Dropzone.tsx +95 -0
  645. package/src/EmptyState.native.tsx +43 -0
  646. package/src/EmptyState.tsx +52 -0
  647. package/src/Form.native.tsx +94 -0
  648. package/src/Form.tsx +1324 -0
  649. package/src/HoverCard.native.tsx +63 -0
  650. package/src/HoverCard.tsx +181 -0
  651. package/src/IconSidebar.native.tsx +94 -0
  652. package/src/IconSidebar.tsx +448 -0
  653. package/src/Input.native.tsx +99 -0
  654. package/src/Input.tsx +132 -0
  655. package/src/InputOTP.native.tsx +154 -0
  656. package/src/InputOTP.tsx +119 -0
  657. package/src/Label.native.tsx +55 -0
  658. package/src/Label.tsx +60 -0
  659. package/src/Link.native.tsx +89 -0
  660. package/src/Link.tsx +85 -0
  661. package/src/Logo.native.tsx +114 -0
  662. package/src/Logo.tsx +153 -0
  663. package/src/MainSidebar.native.tsx +8 -0
  664. package/src/MainSidebar.tsx +10 -0
  665. package/src/Menubar.tsx +485 -0
  666. package/src/NavigationMenu.native.tsx +136 -0
  667. package/src/NavigationMenu.tsx +180 -0
  668. package/src/NotificationBadge.native.tsx +80 -0
  669. package/src/NotificationBadge.tsx +91 -0
  670. package/src/PageShell.native.tsx +43 -0
  671. package/src/PageShell.tsx +50 -0
  672. package/src/Pagination.native.tsx +217 -0
  673. package/src/Pagination.tsx +250 -0
  674. package/src/Popover.native.tsx +139 -0
  675. package/src/Popover.tsx +175 -0
  676. package/src/Popper.tsx +399 -0
  677. package/src/Progress.native.tsx +197 -0
  678. package/src/Progress.tsx +286 -0
  679. package/src/ProgressCircle.tsx +200 -0
  680. package/src/RadioCardGroup.tsx +97 -0
  681. package/src/RadioGroup.native.tsx +153 -0
  682. package/src/RadioGroup.tsx +201 -0
  683. package/src/Resizable.native.tsx +76 -0
  684. package/src/Resizable.tsx +88 -0
  685. package/src/RichTextEditor.tsx +513 -0
  686. package/src/ScrollArea.native.tsx +36 -0
  687. package/src/ScrollArea.tsx +62 -0
  688. package/src/SearchField.native.tsx +104 -0
  689. package/src/SearchField.tsx +136 -0
  690. package/src/SectionHeader.native.tsx +226 -0
  691. package/src/SectionHeader.tsx +250 -0
  692. package/src/Select.native.tsx +299 -0
  693. package/src/Select.tsx +710 -0
  694. package/src/Separator.native.tsx +38 -0
  695. package/src/Separator.tsx +43 -0
  696. package/src/Sheet.native.tsx +233 -0
  697. package/src/Sheet.tsx +329 -0
  698. package/src/Sidebar.tsx +956 -0
  699. package/src/Skeleton.native.tsx +47 -0
  700. package/src/Skeleton.tsx +29 -0
  701. package/src/Slider.native.tsx +64 -0
  702. package/src/Slider.tsx +284 -0
  703. package/src/SortableList.tsx +158 -0
  704. package/src/SparkChart.tsx +143 -0
  705. package/src/StatCard.native.tsx +64 -0
  706. package/src/StatCard.tsx +75 -0
  707. package/src/StatusBadge.native.tsx +57 -0
  708. package/src/StatusBadge.tsx +52 -0
  709. package/src/Switch.native.tsx +78 -0
  710. package/src/Switch.tsx +94 -0
  711. package/src/TabNavigation.tsx +329 -0
  712. package/src/Table.native.tsx +183 -0
  713. package/src/Table.tsx +260 -0
  714. package/src/Tabs.native.tsx +139 -0
  715. package/src/Tabs.tsx +216 -0
  716. package/src/Tag.native.tsx +87 -0
  717. package/src/Tag.tsx +93 -0
  718. package/src/Text.native.tsx +95 -0
  719. package/src/Text.tsx +93 -0
  720. package/src/Textarea.native.tsx +64 -0
  721. package/src/Textarea.tsx +66 -0
  722. package/src/TitleBar.native.tsx +46 -0
  723. package/src/TitleBar.tsx +64 -0
  724. package/src/Toast.native.tsx +366 -0
  725. package/src/Toast.tsx +408 -0
  726. package/src/Toggle.native.tsx +162 -0
  727. package/src/Toggle.tsx +169 -0
  728. package/src/Tooltip.native.tsx +62 -0
  729. package/src/Tooltip.tsx +88 -0
  730. package/src/TopBar.native.tsx +223 -0
  731. package/src/TopBar.tsx +436 -0
  732. package/src/Tracker.tsx +244 -0
  733. package/src/TransferList.native.tsx +180 -0
  734. package/src/TransferList.tsx +297 -0
  735. package/src/globals.d.ts +1 -0
  736. package/src/index.ts +502 -0
  737. package/src/internal/cn.ts +31 -0
package/src/Logo.tsx ADDED
@@ -0,0 +1,153 @@
1
+ 'use client';
2
+
3
+ import { forwardRef, type CSSProperties, type HTMLAttributes } from 'react';
4
+ import { cn } from './internal/cn.js';
5
+
6
+ export type LogoVariant = 'primary' | 'white' | 'black' | 'current';
7
+ export type LogoSize = 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'xxxl';
8
+ export type LogoBrand =
9
+ | 'mihcm'
10
+ | 'mihcm-lite'
11
+ | 'mia-one'
12
+ | 'smart-assist'
13
+ | 'syntra'
14
+ | 'smart-assist-icon'
15
+ | 'syntra-icon'
16
+ | 'mihcm-favicon';
17
+ export type LogoAssetVariant = 'primary' | 'secondary' | 'white' | 'black';
18
+
19
+ export interface LogoProps extends HTMLAttributes<HTMLSpanElement> {
20
+ /** Visual treatment for the built-in MiHCM mark. */
21
+ variant?: LogoVariant;
22
+ /** Preset size for the mark or supplied image. */
23
+ size?: LogoSize;
24
+ /** Approved brand asset family. Uses `/brand/logos/<brand>-<assetVariant>.svg`. */
25
+ brand?: LogoBrand;
26
+ /** Approved asset variant when `brand` is set. */
27
+ assetVariant?: LogoAssetVariant;
28
+ /** Base public path for approved logo assets. */
29
+ assetBasePath?: string;
30
+ /** Optional image source for approved downloaded brand assets. */
31
+ src?: string;
32
+ /** Accessible label for image or inline mark. Use empty text for decorative logos. */
33
+ alt?: string;
34
+ }
35
+
36
+ const sizeHeights: Record<LogoSize, number> = {
37
+ sm: 20,
38
+ md: 24,
39
+ lg: 32,
40
+ xl: 56,
41
+ xxl: 80,
42
+ xxxl: 112,
43
+ };
44
+
45
+ const logoAspectRatio: Record<LogoBrand | 'inline', number> = {
46
+ inline: 35 / 23,
47
+ mihcm: 128 / 86,
48
+ 'mihcm-lite': 128 / 88,
49
+ 'mia-one': 128 / 87,
50
+ 'smart-assist': 292 / 50,
51
+ syntra: 259 / 64,
52
+ 'smart-assist-icon': 128 / 99,
53
+ 'syntra-icon': 128 / 127,
54
+ 'mihcm-favicon': 176 / 118,
55
+ };
56
+
57
+ const primaryClasses = {
58
+ mark: 'fill-primary',
59
+ accent: 'fill-accent',
60
+ };
61
+
62
+ const monoClasses: Record<Exclude<LogoVariant, 'primary'>, string> = {
63
+ white: 'fill-primary-foreground',
64
+ black: 'fill-brand-neutral-821 dark:fill-brand-neutral-50',
65
+ current: 'fill-current',
66
+ };
67
+
68
+ function getPathClass(variant: LogoVariant, part: 'mark' | 'accent') {
69
+ if (variant === 'primary') {
70
+ return primaryClasses[part];
71
+ }
72
+
73
+ return monoClasses[variant];
74
+ }
75
+
76
+ export function getLogoAssetPath(
77
+ brand: LogoBrand,
78
+ assetVariant: LogoAssetVariant = 'primary',
79
+ assetBasePath = '/brand/logos',
80
+ ) {
81
+ const base = assetBasePath.replace(/\/$/, '');
82
+ return `${base}/${brand}-${assetVariant}.svg`;
83
+ }
84
+
85
+ export function getLogoSizeStyle(brand: LogoBrand | undefined, size: LogoSize) {
86
+ const height = sizeHeights[size];
87
+ const ratio = logoAspectRatio[brand ?? 'inline'];
88
+
89
+ return {
90
+ '--mihcm-logo-height': `${height}px`,
91
+ '--mihcm-logo-width': `${Math.round(height * ratio * 1000) / 1000}px`,
92
+ } as CSSProperties;
93
+ }
94
+
95
+ export const Logo = forwardRef<HTMLSpanElement, LogoProps>(function Logo(
96
+ {
97
+ className,
98
+ variant = 'primary',
99
+ size = 'md',
100
+ brand,
101
+ assetVariant = 'primary',
102
+ assetBasePath,
103
+ src,
104
+ alt = 'MiHCM',
105
+ style,
106
+ ...props
107
+ },
108
+ ref,
109
+ ) {
110
+ const resolvedSrc = src ?? (brand ? getLogoAssetPath(brand, assetVariant, assetBasePath) : undefined);
111
+ const labelProps =
112
+ alt.length > 0
113
+ ? { role: 'img', 'aria-label': alt }
114
+ : { 'aria-hidden': true };
115
+
116
+ return (
117
+ <span
118
+ ref={ref}
119
+ className={cn(
120
+ 'inline-flex h-[var(--mihcm-logo-height)] w-[var(--mihcm-logo-width)] shrink-0 items-center justify-center',
121
+ className,
122
+ )}
123
+ style={{ ...getLogoSizeStyle(brand, size), ...style }}
124
+ {...labelProps}
125
+ {...props}
126
+ >
127
+ {resolvedSrc ? (
128
+ <img src={resolvedSrc} alt={alt} className="block size-full object-contain" />
129
+ ) : (
130
+ <svg
131
+ viewBox="0 0 35 23"
132
+ fill="none"
133
+ xmlns="http://www.w3.org/2000/svg"
134
+ className="block size-full"
135
+ aria-hidden
136
+ >
137
+ <path
138
+ d="M21.978 12.836C21.978 10.798 20.594 10.381 19.139 10.381C18.458 10.416 17.793 10.605 17.194 10.932C16.596 11.26 16.079 11.718 15.682 12.273V23.08C14.428 23.08 13.225 22.582 12.337 21.695C11.45 20.808 10.952 19.605 10.952 18.35V13.293C10.992 12.913 10.95 12.53 10.827 12.168C10.704 11.806 10.505 11.476 10.242 11.199C9.979 10.922 9.659 10.706 9.304 10.565C8.949 10.424 8.568 10.361 8.187 10.382C7.506 10.417 6.841 10.606 6.242 10.933C5.644 11.261 5.127 11.719 4.73 12.274V23.081C3.476 23.081 2.272 22.583 1.385 21.696C0.498 20.809 0 19.606 0 18.351V6.415H4.621V7.07C4.621 7.652 4.548 8.38 4.548 8.38C5.149 7.636 5.908 7.034 6.77 6.619C7.632 6.204 8.576 5.986 9.533 5.98C10.623 5.902 11.711 6.147 12.662 6.684C13.614 7.222 14.386 8.027 14.882 9C15.492 8.072 16.323 7.31 17.301 6.783C18.278 6.256 19.371 5.98 20.482 5.98C20.482 5.98 23.983 6.882 21.978 12.836Z"
139
+ className={getPathClass(variant, 'mark')}
140
+ />
141
+ <path
142
+ d="M21.115 5.978C24.715 5.978 26.968 8.301 27.062 12.164V23.08C25.808 23.08 24.604 22.582 23.717 21.695C22.83 20.808 22.332 19.604 22.332 18.35V13.293C24.836 7.221 21.115 5.978 21.115 5.978Z"
143
+ className={getPathClass(variant, 'accent')}
144
+ />
145
+ <path
146
+ d="M25.199 5.701C25.757 5.418 26.212 4.966 26.498 4.409C26.784 3.852 26.887 3.22 26.792 2.601C26.728 2.16 26.568 1.738 26.322 1.366C26.077 0.994 25.753 0.681 25.373 0.448C24.993 0.215 24.567 0.068 24.124 0.019C23.681 -0.031 23.233 0.018 22.811 0.161C22.388 0.304 22.003 0.538 21.682 0.847C21.36 1.155 21.11 1.531 20.95 1.947C20.79 2.363 20.724 2.809 20.755 3.253C20.787 3.698 20.916 4.13 21.133 4.519C22.587 4.403 24.034 4.823 25.199 5.701Z"
147
+ className={getPathClass(variant, 'accent')}
148
+ />
149
+ </svg>
150
+ )}
151
+ </span>
152
+ );
153
+ });
@@ -0,0 +1,8 @@
1
+ export {
2
+ MainSidebar,
3
+ IconSidebar,
4
+ type MainSidebarItem,
5
+ type MainSidebarProps,
6
+ type IconSidebarItem,
7
+ type IconSidebarProps,
8
+ } from './IconSidebar.js';
@@ -0,0 +1,10 @@
1
+ 'use client';
2
+
3
+ export {
4
+ MainSidebar,
5
+ IconSidebar,
6
+ type MainSidebarItem,
7
+ type MainSidebarProps,
8
+ type IconSidebarItem,
9
+ type IconSidebarProps,
10
+ } from './IconSidebar.js';
@@ -0,0 +1,485 @@
1
+ 'use client';
2
+
3
+ /**
4
+ * Menubar (web variant — React DOM).
5
+ *
6
+ * A horizontal menu bar with dropdown menus, powered by Radix.
7
+ * Suitable for application-style top menu bars (File, Edit, View, etc.).
8
+ *
9
+ * <Menubar>
10
+ * <MenubarMenu>
11
+ * <MenubarTrigger>File</MenubarTrigger>
12
+ * <MenubarContent>
13
+ * <MenubarItem onSelect={() => {}}>New</MenubarItem>
14
+ * <MenubarSeparator />
15
+ * <MenubarItem onSelect={() => {}}>Exit</MenubarItem>
16
+ * </MenubarContent>
17
+ * </MenubarMenu>
18
+ * </Menubar>
19
+ *
20
+ * Wiki: docs/components/Menubar.md
21
+ */
22
+ import { forwardRef, type ComponentPropsWithoutRef, type ElementRef } from 'react';
23
+ import * as MenubarPrimitive from '@radix-ui/react-menubar';
24
+ import { cn } from './internal/cn.js';
25
+
26
+ type MenubarSize = 'sm' | 'md' | 'lg';
27
+ type MenubarSurface = 'default' | 'soft' | 'outline' | 'ghost';
28
+ type MenubarJustify = 'start' | 'center' | 'between' | 'end';
29
+ type MenubarContentSize = 'sm' | 'md' | 'lg' | 'xl' | 'auto';
30
+ type MenubarContentSurface = 'default' | 'soft' | 'outline' | 'elevated' | 'plain';
31
+ type MenubarAnimation = 'scale' | 'slide' | 'fade' | 'none';
32
+ type MenubarItemTone = 'default' | 'accent' | 'danger' | 'success' | 'warning';
33
+
34
+ const rootSizeClasses: Record<MenubarSize, string> = {
35
+ sm: 'min-h-9 gap-0.5 p-0.5',
36
+ md: 'min-h-10 gap-1 p-1',
37
+ lg: 'min-h-12 gap-1.5 p-1.5',
38
+ };
39
+
40
+ const rootSurfaceClasses: Record<MenubarSurface, string> = {
41
+ default: 'border border-border bg-card shadow-mi-card',
42
+ soft: 'border border-transparent bg-muted/60',
43
+ outline: 'border border-border bg-background',
44
+ ghost: 'border border-transparent bg-transparent shadow-none',
45
+ };
46
+
47
+ const rootJustifyClasses: Record<MenubarJustify, string> = {
48
+ start: 'justify-start',
49
+ center: 'justify-center',
50
+ between: 'justify-between',
51
+ end: 'justify-end',
52
+ };
53
+
54
+ const triggerSizeClasses: Record<MenubarSize, string> = {
55
+ sm: 'min-h-7 px-2 py-1 text-body-xs',
56
+ md: 'min-h-8 px-3 py-1.5 text-body-sm',
57
+ lg: 'min-h-9 px-4 py-2 text-body-md',
58
+ };
59
+
60
+ const triggerSurfaceClasses: Record<MenubarSurface, string> = {
61
+ default: 'hover:bg-accent/80 hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',
62
+ soft: 'hover:bg-muted focus:bg-muted data-[state=open]:bg-muted',
63
+ outline: 'border border-transparent hover:border-border hover:bg-background focus:border-ring focus:bg-background data-[state=open]:border-border data-[state=open]:bg-background',
64
+ ghost: 'hover:bg-transparent hover:text-primary focus:bg-transparent focus:text-primary data-[state=open]:bg-transparent data-[state=open]:text-primary',
65
+ };
66
+
67
+ const contentSizeClasses: Record<MenubarContentSize, string> = {
68
+ sm: 'min-w-[10rem]',
69
+ md: 'min-w-[12rem]',
70
+ lg: 'min-w-[16rem]',
71
+ xl: 'min-w-[22rem]',
72
+ auto: 'min-w-max',
73
+ };
74
+
75
+ const contentSurfaceClasses: Record<MenubarContentSurface, string> = {
76
+ default: 'border border-border bg-popover text-popover-foreground shadow-mi-dropdown',
77
+ soft: 'border border-border/70 bg-muted text-foreground shadow-mi-card',
78
+ outline: 'border border-border bg-background text-foreground shadow-mi-card',
79
+ elevated: 'border border-border bg-popover text-popover-foreground shadow-mi-modal',
80
+ plain: 'border border-transparent bg-popover text-popover-foreground shadow-none',
81
+ };
82
+
83
+ const contentAnimationClasses: Record<MenubarAnimation, string> = {
84
+ scale:
85
+ 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95',
86
+ slide:
87
+ 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[side=top]:slide-in-from-bottom-2 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2',
88
+ fade: 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=closed]:animate-out data-[state=closed]:fade-out-0',
89
+ none: '',
90
+ };
91
+
92
+ const itemSizeClasses: Record<MenubarSize, string> = {
93
+ sm: 'min-h-7 px-2 py-1 text-body-xs',
94
+ md: 'min-h-8 px-2 py-1.5 text-body-sm',
95
+ lg: 'min-h-10 px-3 py-2 text-body-md',
96
+ };
97
+
98
+ const itemToneClasses: Record<MenubarItemTone, string> = {
99
+ default: 'focus:bg-accent focus:text-accent-foreground',
100
+ accent: 'focus:bg-accent focus:text-accent-foreground',
101
+ danger: 'text-danger focus:bg-danger/10 focus:text-danger',
102
+ success: 'text-success focus:bg-success/10 focus:text-success',
103
+ warning: 'text-warning focus:bg-warning/10 focus:text-warning',
104
+ };
105
+
106
+ const labelSizeClasses: Record<MenubarSize, string> = {
107
+ sm: 'px-2 py-1 text-[0.6875rem]',
108
+ md: 'px-2 py-1.5 text-xs',
109
+ lg: 'px-3 py-2 text-body-sm',
110
+ };
111
+
112
+ /* ── Root ────────────────────────────────────────────────────────── */
113
+
114
+ export const Menubar = forwardRef<
115
+ ElementRef<typeof MenubarPrimitive.Root>,
116
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.Root> & {
117
+ size?: MenubarSize;
118
+ surface?: MenubarSurface;
119
+ justify?: MenubarJustify;
120
+ wrap?: boolean;
121
+ fullWidth?: boolean;
122
+ }
123
+ >(function Menubar(
124
+ {
125
+ className,
126
+ size = 'md',
127
+ surface = 'default',
128
+ justify = 'start',
129
+ wrap = false,
130
+ fullWidth = false,
131
+ ...props
132
+ },
133
+ ref,
134
+ ) {
135
+ return (
136
+ <MenubarPrimitive.Root
137
+ ref={ref}
138
+ className={cn(
139
+ 'flex items-center rounded-lg',
140
+ rootSizeClasses[size],
141
+ rootSurfaceClasses[surface],
142
+ rootJustifyClasses[justify],
143
+ wrap && 'flex-wrap',
144
+ fullWidth && 'w-full',
145
+ className,
146
+ )}
147
+ {...props}
148
+ />
149
+ );
150
+ });
151
+
152
+ /* ── Menu ────────────────────────────────────────────────────────── */
153
+
154
+ export const MenubarMenu: typeof MenubarPrimitive.Menu = MenubarPrimitive.Menu;
155
+ export const MenubarGroup: typeof MenubarPrimitive.Group = MenubarPrimitive.Group;
156
+ export const MenubarSub: typeof MenubarPrimitive.Sub = MenubarPrimitive.Sub;
157
+ export const MenubarRadioGroup: typeof MenubarPrimitive.RadioGroup = MenubarPrimitive.RadioGroup;
158
+ export const MenubarPortal: typeof MenubarPrimitive.Portal = MenubarPrimitive.Portal;
159
+
160
+ /* ── Trigger ─────────────────────────────────────────────────────── */
161
+
162
+ export const MenubarTrigger = forwardRef<
163
+ ElementRef<typeof MenubarPrimitive.Trigger>,
164
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.Trigger> & {
165
+ size?: MenubarSize;
166
+ surface?: MenubarSurface;
167
+ fullWidth?: boolean;
168
+ }
169
+ >(function MenubarTrigger(
170
+ { className, size = 'md', surface = 'default', fullWidth = false, ...props },
171
+ ref,
172
+ ) {
173
+ return (
174
+ <MenubarPrimitive.Trigger
175
+ ref={ref}
176
+ className={cn(
177
+ 'inline-flex cursor-pointer select-none items-center justify-center rounded-md font-medium outline-none transition-colors duration-200',
178
+ 'disabled:pointer-events-none disabled:opacity-50 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
179
+ triggerSizeClasses[size],
180
+ triggerSurfaceClasses[surface],
181
+ fullWidth && 'w-full',
182
+ className,
183
+ )}
184
+ {...props}
185
+ />
186
+ );
187
+ });
188
+
189
+ /* ── Content ─────────────────────────────────────────────────────── */
190
+
191
+ export const MenubarContent = forwardRef<
192
+ ElementRef<typeof MenubarPrimitive.Content>,
193
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.Content> & {
194
+ size?: MenubarContentSize;
195
+ surface?: MenubarContentSurface;
196
+ padding?: 'none' | 'sm' | 'md';
197
+ animation?: MenubarAnimation;
198
+ portal?: boolean;
199
+ maxHeight?: 'none' | 'sm' | 'md' | 'lg';
200
+ }
201
+ >(function MenubarContent(
202
+ {
203
+ className,
204
+ align = 'start',
205
+ alignOffset = -4,
206
+ sideOffset = 8,
207
+ size = 'md',
208
+ surface = 'default',
209
+ padding = 'md',
210
+ animation = 'scale',
211
+ portal = true,
212
+ maxHeight = 'none',
213
+ ...props
214
+ },
215
+ ref,
216
+ ) {
217
+ const content = (
218
+ <MenubarPrimitive.Content
219
+ ref={ref}
220
+ align={align}
221
+ alignOffset={alignOffset}
222
+ sideOffset={sideOffset}
223
+ className={cn(
224
+ 'z-50 overflow-hidden rounded-lg',
225
+ contentSizeClasses[size],
226
+ contentSurfaceClasses[surface],
227
+ contentAnimationClasses[animation],
228
+ padding === 'sm' && 'p-0.5',
229
+ padding === 'md' && 'p-1',
230
+ maxHeight === 'sm' && 'max-h-56 overflow-y-auto',
231
+ maxHeight === 'md' && 'max-h-72 overflow-y-auto',
232
+ maxHeight === 'lg' && 'max-h-96 overflow-y-auto',
233
+ className,
234
+ )}
235
+ {...props}
236
+ />
237
+ );
238
+ return portal ? <MenubarPrimitive.Portal>{content}</MenubarPrimitive.Portal> : content;
239
+ });
240
+
241
+ /* ── Item ────────────────────────────────────────────────────────── */
242
+
243
+ export const MenubarItem = forwardRef<
244
+ ElementRef<typeof MenubarPrimitive.Item>,
245
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.Item> & {
246
+ inset?: boolean;
247
+ size?: MenubarSize;
248
+ tone?: MenubarItemTone;
249
+ }
250
+ >(function MenubarItem({ className, inset, size = 'md', tone = 'default', ...props }, ref) {
251
+ return (
252
+ <MenubarPrimitive.Item
253
+ ref={ref}
254
+ className={cn(
255
+ 'relative flex cursor-pointer select-none items-center gap-2 rounded-md outline-none',
256
+ 'transition-colors duration-200',
257
+ itemSizeClasses[size],
258
+ itemToneClasses[tone],
259
+ 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
260
+ inset && 'pl-8',
261
+ className,
262
+ )}
263
+ {...props}
264
+ />
265
+ );
266
+ });
267
+
268
+ /* ── CheckboxItem ────────────────────────────────────────────────── */
269
+
270
+ export const MenubarCheckboxItem = forwardRef<
271
+ ElementRef<typeof MenubarPrimitive.CheckboxItem>,
272
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.CheckboxItem> & {
273
+ size?: MenubarSize;
274
+ tone?: MenubarItemTone;
275
+ }
276
+ >(function MenubarCheckboxItem(
277
+ { className, children, checked = false, size = 'md', tone = 'default', ...props },
278
+ ref,
279
+ ) {
280
+ return (
281
+ <MenubarPrimitive.CheckboxItem
282
+ ref={ref}
283
+ className={cn(
284
+ 'relative flex cursor-pointer select-none items-center gap-2 rounded-md pl-8 outline-none',
285
+ 'transition-colors duration-200',
286
+ itemSizeClasses[size],
287
+ itemToneClasses[tone],
288
+ 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
289
+ className,
290
+ )}
291
+ checked={checked}
292
+ {...props}
293
+ >
294
+ <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
295
+ <MenubarPrimitive.ItemIndicator>
296
+ <svg aria-hidden="true" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth={2.5} className="h-3.5 w-3.5">
297
+ <path strokeLinecap="round" strokeLinejoin="round" d="M3.5 8.5L6.5 11.5L12.5 5.5" />
298
+ </svg>
299
+ </MenubarPrimitive.ItemIndicator>
300
+ </span>
301
+ {children}
302
+ </MenubarPrimitive.CheckboxItem>
303
+ );
304
+ });
305
+
306
+ /* ── RadioItem ───────────────────────────────────────────────────── */
307
+
308
+ export const MenubarRadioItem = forwardRef<
309
+ ElementRef<typeof MenubarPrimitive.RadioItem>,
310
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.RadioItem> & {
311
+ size?: MenubarSize;
312
+ tone?: MenubarItemTone;
313
+ }
314
+ >(function MenubarRadioItem({ className, children, size = 'md', tone = 'default', ...props }, ref) {
315
+ return (
316
+ <MenubarPrimitive.RadioItem
317
+ ref={ref}
318
+ className={cn(
319
+ 'relative flex cursor-pointer select-none items-center gap-2 rounded-md pl-8 outline-none',
320
+ 'transition-colors duration-200',
321
+ itemSizeClasses[size],
322
+ itemToneClasses[tone],
323
+ 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
324
+ className,
325
+ )}
326
+ {...props}
327
+ >
328
+ <span className="absolute left-2 flex h-3.5 w-3.5 items-center justify-center">
329
+ <MenubarPrimitive.ItemIndicator>
330
+ <span className="h-2 w-2 rounded-full bg-foreground" />
331
+ </MenubarPrimitive.ItemIndicator>
332
+ </span>
333
+ {children}
334
+ </MenubarPrimitive.RadioItem>
335
+ );
336
+ });
337
+
338
+ /* ── Label ────────────────────────────────────────────────────────── */
339
+
340
+ export const MenubarLabel = forwardRef<
341
+ ElementRef<typeof MenubarPrimitive.Label>,
342
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.Label> & {
343
+ inset?: boolean;
344
+ size?: MenubarSize;
345
+ }
346
+ >(function MenubarLabel({ className, inset, size = 'md', ...props }, ref) {
347
+ return (
348
+ <MenubarPrimitive.Label
349
+ ref={ref}
350
+ className={cn(
351
+ 'font-semibold uppercase tracking-widest text-muted-foreground',
352
+ labelSizeClasses[size],
353
+ inset && 'pl-8',
354
+ className,
355
+ )}
356
+ {...props}
357
+ />
358
+ );
359
+ });
360
+
361
+ /* ── Separator ───────────────────────────────────────────────────── */
362
+
363
+ export const MenubarSeparator = forwardRef<
364
+ ElementRef<typeof MenubarPrimitive.Separator>,
365
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.Separator>
366
+ >(function MenubarSeparator({ className, ...props }, ref) {
367
+ return (
368
+ <MenubarPrimitive.Separator
369
+ ref={ref}
370
+ className={cn('-mx-1 my-1 h-px bg-border', className)}
371
+ {...props}
372
+ />
373
+ );
374
+ });
375
+
376
+ /* ── SubTrigger ──────────────────────────────────────────────────── */
377
+
378
+ export const MenubarSubTrigger = forwardRef<
379
+ ElementRef<typeof MenubarPrimitive.SubTrigger>,
380
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.SubTrigger> & {
381
+ inset?: boolean;
382
+ size?: MenubarSize;
383
+ tone?: MenubarItemTone;
384
+ }
385
+ >(function MenubarSubTrigger(
386
+ { className, inset, children, size = 'md', tone = 'default', ...props },
387
+ ref,
388
+ ) {
389
+ return (
390
+ <MenubarPrimitive.SubTrigger
391
+ ref={ref}
392
+ className={cn(
393
+ 'flex cursor-pointer select-none items-center gap-2 rounded-md outline-none',
394
+ 'transition-colors duration-200',
395
+ itemSizeClasses[size],
396
+ itemToneClasses[tone],
397
+ 'data-[state=open]:bg-accent data-[state=open]:text-accent-foreground',
398
+ 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
399
+ inset && 'pl-8',
400
+ className,
401
+ )}
402
+ {...props}
403
+ >
404
+ {children}
405
+ <svg aria-hidden="true" viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth={2} className="ml-auto h-4 w-4">
406
+ <path strokeLinecap="round" strokeLinejoin="round" d="M6 4l4 4-4 4" />
407
+ </svg>
408
+ </MenubarPrimitive.SubTrigger>
409
+ );
410
+ });
411
+
412
+ /* ── SubContent ──────────────────────────────────────────────────── */
413
+
414
+ export const MenubarSubContent = forwardRef<
415
+ ElementRef<typeof MenubarPrimitive.SubContent>,
416
+ ComponentPropsWithoutRef<typeof MenubarPrimitive.SubContent> & {
417
+ size?: MenubarContentSize;
418
+ surface?: MenubarContentSurface;
419
+ padding?: 'none' | 'sm' | 'md';
420
+ animation?: MenubarAnimation;
421
+ portal?: boolean;
422
+ maxHeight?: 'none' | 'sm' | 'md' | 'lg';
423
+ }
424
+ >(function MenubarSubContent(
425
+ {
426
+ className,
427
+ size = 'sm',
428
+ surface = 'default',
429
+ padding = 'md',
430
+ animation = 'scale',
431
+ portal = true,
432
+ maxHeight = 'none',
433
+ ...props
434
+ },
435
+ ref,
436
+ ) {
437
+ const content = (
438
+ <MenubarPrimitive.SubContent
439
+ ref={ref}
440
+ className={cn(
441
+ 'z-50 overflow-hidden rounded-lg',
442
+ contentSizeClasses[size],
443
+ contentSurfaceClasses[surface],
444
+ contentAnimationClasses[animation],
445
+ padding === 'sm' && 'p-0.5',
446
+ padding === 'md' && 'p-1',
447
+ maxHeight === 'sm' && 'max-h-56 overflow-y-auto',
448
+ maxHeight === 'md' && 'max-h-72 overflow-y-auto',
449
+ maxHeight === 'lg' && 'max-h-96 overflow-y-auto',
450
+ className,
451
+ )}
452
+ {...props}
453
+ />
454
+ );
455
+ return portal ? <MenubarPrimitive.Portal>{content}</MenubarPrimitive.Portal> : content;
456
+ });
457
+
458
+ /* ── Shortcut ────────────────────────────────────────────────────── */
459
+
460
+ export function MenubarShortcut({
461
+ className,
462
+ size = 'md',
463
+ tone = 'muted',
464
+ ...props
465
+ }: React.HTMLAttributes<HTMLSpanElement> & {
466
+ size?: MenubarSize;
467
+ tone?: 'muted' | 'foreground' | 'primary';
468
+ }) {
469
+ return (
470
+ <span
471
+ aria-hidden="true"
472
+ className={cn(
473
+ 'ml-auto pl-4 font-mono tracking-widest',
474
+ size === 'sm' && 'text-[0.6875rem]',
475
+ size === 'md' && 'text-xs',
476
+ size === 'lg' && 'text-body-sm',
477
+ tone === 'muted' && 'text-muted-foreground',
478
+ tone === 'foreground' && 'text-foreground',
479
+ tone === 'primary' && 'text-primary',
480
+ className,
481
+ )}
482
+ {...props}
483
+ />
484
+ );
485
+ }