@bergetai/ui 0.14.1 → 0.15.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 (598) hide show
  1. package/README.md +32 -46
  2. package/dist/_virtual/_rolldown/runtime.cjs +23 -0
  3. package/dist/components/alert/Alert.cjs +31 -0
  4. package/dist/components/alert/Alert.cjs.map +1 -0
  5. package/dist/components/alert/Alert.d.cts +14 -0
  6. package/dist/components/alert/Alert.d.cts.map +1 -0
  7. package/dist/components/alert/Alert.d.mts +14 -0
  8. package/dist/components/alert/Alert.d.mts.map +1 -0
  9. package/dist/components/alert/Alert.mjs +27 -0
  10. package/dist/components/alert/Alert.mjs.map +1 -0
  11. package/dist/components/alert/index.d.cts +3 -0
  12. package/dist/components/alert/index.d.mts +3 -0
  13. package/dist/components/alert-dialog/AlertDialog.cjs +95 -0
  14. package/dist/components/alert-dialog/AlertDialog.cjs.map +1 -0
  15. package/dist/components/alert-dialog/AlertDialog.d.cts +46 -0
  16. package/dist/components/alert-dialog/AlertDialog.d.cts.map +1 -0
  17. package/dist/components/alert-dialog/AlertDialog.d.mts +46 -0
  18. package/dist/components/alert-dialog/AlertDialog.d.mts.map +1 -0
  19. package/dist/components/alert-dialog/AlertDialog.mjs +83 -0
  20. package/dist/components/alert-dialog/AlertDialog.mjs.map +1 -0
  21. package/dist/components/alert-dialog/index.d.cts +2 -0
  22. package/dist/components/alert-dialog/index.d.mts +2 -0
  23. package/dist/components/badge/Badge.cjs +57 -0
  24. package/dist/components/badge/Badge.cjs.map +1 -0
  25. package/dist/components/badge/Badge.d.cts +16 -0
  26. package/dist/components/badge/Badge.d.cts.map +1 -0
  27. package/dist/components/badge/Badge.d.mts +16 -0
  28. package/dist/components/badge/Badge.d.mts.map +1 -0
  29. package/dist/components/badge/Badge.mjs +55 -0
  30. package/dist/components/badge/Badge.mjs.map +1 -0
  31. package/dist/components/badge/index.d.cts +2 -0
  32. package/dist/components/badge/index.d.mts +2 -0
  33. package/dist/components/berget-logo/BergetLogo.cjs +87 -0
  34. package/dist/components/berget-logo/BergetLogo.cjs.map +1 -0
  35. package/dist/components/berget-logo/BergetLogo.d.cts +14 -0
  36. package/dist/components/berget-logo/BergetLogo.d.cts.map +1 -0
  37. package/dist/components/berget-logo/BergetLogo.d.mts +14 -0
  38. package/dist/components/berget-logo/BergetLogo.d.mts.map +1 -0
  39. package/dist/components/berget-logo/BergetLogo.mjs +85 -0
  40. package/dist/components/berget-logo/BergetLogo.mjs.map +1 -0
  41. package/dist/components/berget-logo/index.d.cts +2 -0
  42. package/dist/components/berget-logo/index.d.mts +2 -0
  43. package/dist/components/box/Box.cjs +67 -0
  44. package/dist/components/box/Box.cjs.map +1 -0
  45. package/dist/components/box/Box.d.cts +21 -0
  46. package/dist/components/box/Box.d.cts.map +1 -0
  47. package/dist/components/box/Box.d.mts +21 -0
  48. package/dist/components/box/Box.d.mts.map +1 -0
  49. package/dist/components/box/Box.mjs +64 -0
  50. package/dist/components/box/Box.mjs.map +1 -0
  51. package/dist/components/box/index.d.cts +2 -0
  52. package/dist/components/box/index.d.mts +2 -0
  53. package/dist/components/button/Button.cjs +75 -0
  54. package/dist/components/button/Button.cjs.map +1 -0
  55. package/dist/components/button/Button.d.cts +19 -0
  56. package/dist/components/button/Button.d.cts.map +1 -0
  57. package/dist/components/button/Button.d.mts +19 -0
  58. package/dist/components/button/Button.d.mts.map +1 -0
  59. package/dist/components/button/Button.mjs +74 -0
  60. package/dist/components/button/Button.mjs.map +1 -0
  61. package/dist/components/button/index.d.cts +3 -0
  62. package/dist/components/button/index.d.mts +3 -0
  63. package/dist/components/card/Card.cjs +36 -0
  64. package/dist/components/card/Card.cjs.map +1 -0
  65. package/dist/components/card/Card.d.cts +15 -0
  66. package/dist/components/card/Card.d.cts.map +1 -0
  67. package/dist/components/card/Card.d.mts +15 -0
  68. package/dist/components/card/Card.d.mts.map +1 -0
  69. package/dist/components/card/Card.mjs +28 -0
  70. package/dist/components/card/Card.mjs.map +1 -0
  71. package/dist/components/card/index.d.cts +3 -0
  72. package/dist/components/card/index.d.mts +3 -0
  73. package/dist/components/checkbox/Checkbox.cjs +87 -0
  74. package/dist/components/checkbox/Checkbox.cjs.map +1 -0
  75. package/dist/components/checkbox/Checkbox.d.cts +18 -0
  76. package/dist/components/checkbox/Checkbox.d.cts.map +1 -0
  77. package/dist/components/checkbox/Checkbox.d.mts +18 -0
  78. package/dist/components/checkbox/Checkbox.d.mts.map +1 -0
  79. package/dist/components/checkbox/Checkbox.mjs +84 -0
  80. package/dist/components/checkbox/Checkbox.mjs.map +1 -0
  81. package/dist/components/checkbox/index.d.cts +2 -0
  82. package/dist/components/checkbox/index.d.mts +2 -0
  83. package/dist/components/code-block/CodeBlock.cjs +58 -0
  84. package/dist/components/code-block/CodeBlock.cjs.map +1 -0
  85. package/dist/components/code-block/CodeBlock.d.cts +10 -0
  86. package/dist/components/code-block/CodeBlock.d.cts.map +1 -0
  87. package/dist/components/code-block/CodeBlock.d.mts +10 -0
  88. package/dist/components/code-block/CodeBlock.d.mts.map +1 -0
  89. package/dist/components/code-block/CodeBlock.mjs +58 -0
  90. package/dist/components/code-block/CodeBlock.mjs.map +1 -0
  91. package/dist/components/container/Container.cjs +50 -0
  92. package/dist/components/container/Container.cjs.map +1 -0
  93. package/dist/components/container/Container.d.cts +17 -0
  94. package/dist/components/container/Container.d.cts.map +1 -0
  95. package/dist/components/container/Container.d.mts +17 -0
  96. package/dist/components/container/Container.d.mts.map +1 -0
  97. package/dist/components/container/Container.mjs +47 -0
  98. package/dist/components/container/Container.mjs.map +1 -0
  99. package/dist/components/container/index.d.cts +2 -0
  100. package/dist/components/container/index.d.mts +2 -0
  101. package/dist/components/country-select/CountrySelect.cjs +95 -0
  102. package/dist/components/country-select/CountrySelect.cjs.map +1 -0
  103. package/dist/components/country-select/CountrySelect.d.cts +16 -0
  104. package/dist/components/country-select/CountrySelect.d.cts.map +1 -0
  105. package/dist/components/country-select/CountrySelect.d.mts +16 -0
  106. package/dist/components/country-select/CountrySelect.d.mts.map +1 -0
  107. package/dist/components/country-select/CountrySelect.mjs +93 -0
  108. package/dist/components/country-select/CountrySelect.mjs.map +1 -0
  109. package/dist/components/country-select/countries.cjs +409 -0
  110. package/dist/components/country-select/countries.cjs.map +1 -0
  111. package/dist/components/country-select/countries.d.cts +17 -0
  112. package/dist/components/country-select/countries.d.cts.map +1 -0
  113. package/dist/components/country-select/countries.d.mts +17 -0
  114. package/dist/components/country-select/countries.d.mts.map +1 -0
  115. package/dist/components/country-select/countries.mjs +405 -0
  116. package/dist/components/country-select/countries.mjs.map +1 -0
  117. package/dist/components/country-select/index.d.cts +3 -0
  118. package/dist/components/country-select/index.d.mts +3 -0
  119. package/dist/components/dialog/Dialog.cjs +85 -0
  120. package/dist/components/dialog/Dialog.cjs.map +1 -0
  121. package/dist/components/dialog/Dialog.d.cts +35 -0
  122. package/dist/components/dialog/Dialog.d.cts.map +1 -0
  123. package/dist/components/dialog/Dialog.d.mts +35 -0
  124. package/dist/components/dialog/Dialog.d.mts.map +1 -0
  125. package/dist/components/dialog/Dialog.mjs +74 -0
  126. package/dist/components/dialog/Dialog.mjs.map +1 -0
  127. package/dist/components/dialog/index.d.cts +2 -0
  128. package/dist/components/dialog/index.d.mts +2 -0
  129. package/dist/components/divider/Divider.cjs +72 -0
  130. package/dist/components/divider/Divider.cjs.map +1 -0
  131. package/dist/components/divider/Divider.mjs +70 -0
  132. package/dist/components/divider/Divider.mjs.map +1 -0
  133. package/dist/components/dropdown-menu/DropdownMenu.cjs +101 -0
  134. package/dist/components/dropdown-menu/DropdownMenu.cjs.map +1 -0
  135. package/dist/components/dropdown-menu/DropdownMenu.d.cts +62 -0
  136. package/dist/components/dropdown-menu/DropdownMenu.d.cts.map +1 -0
  137. package/dist/components/dropdown-menu/DropdownMenu.d.mts +62 -0
  138. package/dist/components/dropdown-menu/DropdownMenu.d.mts.map +1 -0
  139. package/dist/components/dropdown-menu/DropdownMenu.mjs +85 -0
  140. package/dist/components/dropdown-menu/DropdownMenu.mjs.map +1 -0
  141. package/dist/components/dropdown-menu/index.d.cts +3 -0
  142. package/dist/components/dropdown-menu/index.d.mts +3 -0
  143. package/dist/components/empty/Empty.cjs +51 -0
  144. package/dist/components/empty/Empty.cjs.map +1 -0
  145. package/dist/components/empty/Empty.d.cts +17 -0
  146. package/dist/components/empty/Empty.d.cts.map +1 -0
  147. package/dist/components/empty/Empty.d.mts +17 -0
  148. package/dist/components/empty/Empty.d.mts.map +1 -0
  149. package/dist/components/empty/Empty.mjs +44 -0
  150. package/dist/components/empty/Empty.mjs.map +1 -0
  151. package/dist/components/empty/index.d.cts +3 -0
  152. package/dist/components/empty/index.d.mts +3 -0
  153. package/dist/components/field/index.d.cts +2 -0
  154. package/dist/components/field/index.d.mts +2 -0
  155. package/dist/components/fog-illustration/FogIllustration.cjs +342 -0
  156. package/dist/components/fog-illustration/FogIllustration.cjs.map +1 -0
  157. package/dist/components/fog-illustration/FogIllustration.d.cts +35 -0
  158. package/dist/components/fog-illustration/FogIllustration.d.cts.map +1 -0
  159. package/dist/components/fog-illustration/FogIllustration.d.mts +35 -0
  160. package/dist/components/fog-illustration/FogIllustration.d.mts.map +1 -0
  161. package/dist/components/fog-illustration/FogIllustration.mjs +341 -0
  162. package/dist/components/fog-illustration/FogIllustration.mjs.map +1 -0
  163. package/dist/components/grid/Grid.cjs +51 -0
  164. package/dist/components/grid/Grid.cjs.map +1 -0
  165. package/dist/components/grid/Grid.d.cts +25 -0
  166. package/dist/components/grid/Grid.d.cts.map +1 -0
  167. package/dist/components/grid/Grid.d.mts +25 -0
  168. package/dist/components/grid/Grid.d.mts.map +1 -0
  169. package/dist/components/grid/Grid.mjs +48 -0
  170. package/dist/components/grid/Grid.mjs.map +1 -0
  171. package/dist/components/grid/index.d.cts +2 -0
  172. package/dist/components/grid/index.d.mts +2 -0
  173. package/dist/components/icon/Icon.cjs +30 -0
  174. package/dist/components/icon/Icon.cjs.map +1 -0
  175. package/dist/components/icon/Icon.d.cts +14 -0
  176. package/dist/components/icon/Icon.d.cts.map +1 -0
  177. package/dist/components/icon/Icon.d.mts +14 -0
  178. package/dist/components/icon/Icon.d.mts.map +1 -0
  179. package/dist/components/icon/Icon.mjs +28 -0
  180. package/dist/components/icon/Icon.mjs.map +1 -0
  181. package/dist/components/icon/index.d.cts +2 -0
  182. package/dist/components/icon/index.d.mts +2 -0
  183. package/dist/components/input/index.d.cts +2 -0
  184. package/dist/components/input/index.d.mts +2 -0
  185. package/dist/components/item/Item.cjs +65 -0
  186. package/dist/components/item/Item.cjs.map +1 -0
  187. package/dist/components/item/Item.d.cts +24 -0
  188. package/dist/components/item/Item.d.cts.map +1 -0
  189. package/dist/components/item/Item.d.mts +24 -0
  190. package/dist/components/item/Item.d.mts.map +1 -0
  191. package/dist/components/item/Item.mjs +54 -0
  192. package/dist/components/item/Item.mjs.map +1 -0
  193. package/dist/components/item/index.d.cts +3 -0
  194. package/dist/components/item/index.d.mts +3 -0
  195. package/dist/components/label/index.d.cts +2 -0
  196. package/dist/components/label/index.d.mts +2 -0
  197. package/dist/components/language-select/LanguageSelect.cjs +48 -0
  198. package/dist/components/language-select/LanguageSelect.cjs.map +1 -0
  199. package/dist/components/language-select/LanguageSelect.d.cts +17 -0
  200. package/dist/components/language-select/LanguageSelect.d.cts.map +1 -0
  201. package/dist/components/language-select/LanguageSelect.d.mts +17 -0
  202. package/dist/components/language-select/LanguageSelect.d.mts.map +1 -0
  203. package/dist/components/language-select/LanguageSelect.mjs +46 -0
  204. package/dist/components/language-select/LanguageSelect.mjs.map +1 -0
  205. package/dist/components/language-select/index.d.cts +2 -0
  206. package/dist/components/language-select/index.d.mts +2 -0
  207. package/dist/components/link/Link.cjs +71 -0
  208. package/dist/components/link/Link.cjs.map +1 -0
  209. package/dist/components/link/Link.d.cts +18 -0
  210. package/dist/components/link/Link.d.cts.map +1 -0
  211. package/dist/components/link/Link.d.mts +18 -0
  212. package/dist/components/link/Link.d.mts.map +1 -0
  213. package/dist/components/link/Link.mjs +68 -0
  214. package/dist/components/link/Link.mjs.map +1 -0
  215. package/dist/components/link/index.d.cts +2 -0
  216. package/dist/components/link/index.d.mts +2 -0
  217. package/dist/components/list/List.cjs +71 -0
  218. package/dist/components/list/List.cjs.map +1 -0
  219. package/dist/components/list/List.d.cts +24 -0
  220. package/dist/components/list/List.d.cts.map +1 -0
  221. package/dist/components/list/List.d.mts +24 -0
  222. package/dist/components/list/List.d.mts.map +1 -0
  223. package/dist/components/list/List.mjs +66 -0
  224. package/dist/components/list/List.mjs.map +1 -0
  225. package/dist/components/list/index.d.cts +2 -0
  226. package/dist/components/list/index.d.mts +2 -0
  227. package/dist/components/model-card/ModelCard.cjs +108 -0
  228. package/dist/components/model-card/ModelCard.cjs.map +1 -0
  229. package/dist/components/model-card/ModelCard.d.cts +58 -0
  230. package/dist/components/model-card/ModelCard.d.cts.map +1 -0
  231. package/dist/components/model-card/ModelCard.d.mts +58 -0
  232. package/dist/components/model-card/ModelCard.d.mts.map +1 -0
  233. package/dist/components/model-card/ModelCard.mjs +106 -0
  234. package/dist/components/model-card/ModelCard.mjs.map +1 -0
  235. package/dist/components/model-card/index.d.cts +3 -0
  236. package/dist/components/model-card/index.d.mts +3 -0
  237. package/dist/components/model-logo/ModelLogo.cjs +98 -0
  238. package/dist/components/model-logo/ModelLogo.cjs.map +1 -0
  239. package/dist/components/model-logo/ModelLogo.d.cts +32 -0
  240. package/dist/components/model-logo/ModelLogo.d.cts.map +1 -0
  241. package/dist/components/model-logo/ModelLogo.d.mts +32 -0
  242. package/dist/components/model-logo/ModelLogo.d.mts.map +1 -0
  243. package/dist/components/model-logo/ModelLogo.mjs +95 -0
  244. package/dist/components/model-logo/ModelLogo.mjs.map +1 -0
  245. package/dist/components/model-logo/index.d.cts +2 -0
  246. package/dist/components/model-logo/index.d.mts +2 -0
  247. package/dist/components/navigation-menu/NavigationMenu.cjs +65 -0
  248. package/dist/components/navigation-menu/NavigationMenu.cjs.map +1 -0
  249. package/dist/components/navigation-menu/NavigationMenu.d.cts +11 -0
  250. package/dist/components/navigation-menu/NavigationMenu.d.cts.map +1 -0
  251. package/dist/components/navigation-menu/NavigationMenu.d.mts +11 -0
  252. package/dist/components/navigation-menu/NavigationMenu.d.mts.map +1 -0
  253. package/dist/components/navigation-menu/NavigationMenu.mjs +57 -0
  254. package/dist/components/navigation-menu/NavigationMenu.mjs.map +1 -0
  255. package/dist/components/navigation-menu/index.d.cts +3 -0
  256. package/dist/components/navigation-menu/index.d.mts +3 -0
  257. package/dist/components/neural-flow/NeuralFlow.cjs +1038 -0
  258. package/dist/components/neural-flow/NeuralFlow.cjs.map +1 -0
  259. package/dist/components/neural-flow/NeuralFlow.d.cts +47 -0
  260. package/dist/components/neural-flow/NeuralFlow.d.cts.map +1 -0
  261. package/dist/components/neural-flow/NeuralFlow.d.mts +47 -0
  262. package/dist/components/neural-flow/NeuralFlow.d.mts.map +1 -0
  263. package/dist/components/neural-flow/NeuralFlow.mjs +1032 -0
  264. package/dist/components/neural-flow/NeuralFlow.mjs.map +1 -0
  265. package/dist/components/neural-flow/index.d.cts +2 -0
  266. package/dist/components/neural-flow/index.d.mts +2 -0
  267. package/dist/components/neural-flow/mnist-samples.cjs +73 -0
  268. package/dist/components/neural-flow/mnist-samples.cjs.map +1 -0
  269. package/dist/components/neural-flow/mnist-samples.mjs +73 -0
  270. package/dist/components/neural-flow/mnist-samples.mjs.map +1 -0
  271. package/dist/components/neural-flow/sparse-weights.cjs +21 -0
  272. package/dist/components/neural-flow/sparse-weights.cjs.map +1 -0
  273. package/dist/components/neural-flow/sparse-weights.mjs +21 -0
  274. package/dist/components/neural-flow/sparse-weights.mjs.map +1 -0
  275. package/dist/components/progress/Progress.cjs +25 -0
  276. package/dist/components/progress/Progress.cjs.map +1 -0
  277. package/dist/components/progress/Progress.d.cts +8 -0
  278. package/dist/components/progress/Progress.d.cts.map +1 -0
  279. package/dist/components/progress/Progress.d.mts +8 -0
  280. package/dist/components/progress/Progress.d.mts.map +1 -0
  281. package/dist/components/progress/Progress.mjs +19 -0
  282. package/dist/components/progress/Progress.mjs.map +1 -0
  283. package/dist/components/progress/index.d.cts +3 -0
  284. package/dist/components/progress/index.d.mts +3 -0
  285. package/dist/components/search-input/SearchInput.cjs +28 -0
  286. package/dist/components/search-input/SearchInput.cjs.map +1 -0
  287. package/dist/components/search-input/SearchInput.d.cts +10 -0
  288. package/dist/components/search-input/SearchInput.d.cts.map +1 -0
  289. package/dist/components/search-input/SearchInput.d.mts +10 -0
  290. package/dist/components/search-input/SearchInput.d.mts.map +1 -0
  291. package/dist/components/search-input/SearchInput.mjs +26 -0
  292. package/dist/components/search-input/SearchInput.mjs.map +1 -0
  293. package/dist/components/search-input/index.d.cts +2 -0
  294. package/dist/components/search-input/index.d.mts +2 -0
  295. package/dist/components/select/index.d.cts +2 -0
  296. package/dist/components/select/index.d.mts +2 -0
  297. package/dist/components/sidebar/Sidebar.cjs +203 -0
  298. package/dist/components/sidebar/Sidebar.cjs.map +1 -0
  299. package/dist/components/sidebar/Sidebar.d.cts +69 -0
  300. package/dist/components/sidebar/Sidebar.d.cts.map +1 -0
  301. package/dist/components/sidebar/Sidebar.d.mts +69 -0
  302. package/dist/components/sidebar/Sidebar.d.mts.map +1 -0
  303. package/dist/components/sidebar/Sidebar.mjs +150 -0
  304. package/dist/components/sidebar/Sidebar.mjs.map +1 -0
  305. package/dist/components/sidebar/index.d.cts +3 -0
  306. package/dist/components/sidebar/index.d.mts +3 -0
  307. package/dist/components/skeleton/Skeleton.cjs +20 -0
  308. package/dist/components/skeleton/Skeleton.cjs.map +1 -0
  309. package/dist/components/skeleton/Skeleton.d.cts +7 -0
  310. package/dist/components/skeleton/Skeleton.d.cts.map +1 -0
  311. package/dist/components/skeleton/Skeleton.d.mts +7 -0
  312. package/dist/components/skeleton/Skeleton.d.mts.map +1 -0
  313. package/dist/components/skeleton/Skeleton.mjs +18 -0
  314. package/dist/components/skeleton/Skeleton.mjs.map +1 -0
  315. package/dist/components/skeleton/index.d.cts +2 -0
  316. package/dist/components/skeleton/index.d.mts +2 -0
  317. package/dist/components/switch/Switch.cjs +85 -0
  318. package/dist/components/switch/Switch.cjs.map +1 -0
  319. package/dist/components/switch/Switch.d.cts +21 -0
  320. package/dist/components/switch/Switch.d.cts.map +1 -0
  321. package/dist/components/switch/Switch.d.mts +21 -0
  322. package/dist/components/switch/Switch.d.mts.map +1 -0
  323. package/dist/components/switch/Switch.mjs +81 -0
  324. package/dist/components/switch/Switch.mjs.map +1 -0
  325. package/dist/components/switch/index.d.cts +2 -0
  326. package/dist/components/switch/index.d.mts +2 -0
  327. package/dist/components/table/Table.cjs +67 -0
  328. package/dist/components/table/Table.cjs.map +1 -0
  329. package/dist/components/table/Table.d.cts +13 -0
  330. package/dist/components/table/Table.d.cts.map +1 -0
  331. package/dist/components/table/Table.d.mts +13 -0
  332. package/dist/components/table/Table.d.mts.map +1 -0
  333. package/dist/components/table/Table.mjs +58 -0
  334. package/dist/components/table/Table.mjs.map +1 -0
  335. package/dist/components/table/index.d.cts +2 -0
  336. package/dist/components/table/index.d.mts +2 -0
  337. package/dist/components/text-area/index.d.cts +2 -0
  338. package/dist/components/text-area/index.d.mts +2 -0
  339. package/dist/components/theme-provider/ThemeProvider.cjs +81 -0
  340. package/dist/components/theme-provider/ThemeProvider.cjs.map +1 -0
  341. package/dist/components/theme-provider/ThemeProvider.d.cts +21 -0
  342. package/dist/components/theme-provider/ThemeProvider.d.cts.map +1 -0
  343. package/dist/components/theme-provider/ThemeProvider.d.mts +21 -0
  344. package/dist/components/theme-provider/ThemeProvider.d.mts.map +1 -0
  345. package/dist/components/theme-provider/ThemeProvider.mjs +78 -0
  346. package/dist/components/theme-provider/ThemeProvider.mjs.map +1 -0
  347. package/dist/components/theme-provider/ThemeToggle.cjs +56 -0
  348. package/dist/components/theme-provider/ThemeToggle.cjs.map +1 -0
  349. package/dist/components/theme-provider/ThemeToggle.d.cts +12 -0
  350. package/dist/components/theme-provider/ThemeToggle.d.cts.map +1 -0
  351. package/dist/components/theme-provider/ThemeToggle.d.mts +12 -0
  352. package/dist/components/theme-provider/ThemeToggle.d.mts.map +1 -0
  353. package/dist/components/theme-provider/ThemeToggle.mjs +54 -0
  354. package/dist/components/theme-provider/ThemeToggle.mjs.map +1 -0
  355. package/dist/components/theme-provider/index.d.cts +3 -0
  356. package/dist/components/theme-provider/index.d.mts +3 -0
  357. package/dist/components/tooltip/Tooltip.cjs +28 -0
  358. package/dist/components/tooltip/Tooltip.cjs.map +1 -0
  359. package/dist/components/tooltip/Tooltip.d.cts +14 -0
  360. package/dist/components/tooltip/Tooltip.d.cts.map +1 -0
  361. package/dist/components/tooltip/Tooltip.d.mts +14 -0
  362. package/dist/components/tooltip/Tooltip.d.mts.map +1 -0
  363. package/dist/components/tooltip/Tooltip.mjs +23 -0
  364. package/dist/components/tooltip/Tooltip.mjs.map +1 -0
  365. package/dist/components/tooltip/index.d.cts +3 -0
  366. package/dist/components/tooltip/index.d.mts +3 -0
  367. package/dist/components/typography/Typography.cjs +69 -0
  368. package/dist/components/typography/Typography.cjs.map +1 -0
  369. package/dist/components/typography/Typography.d.cts +14 -0
  370. package/dist/components/typography/Typography.d.cts.map +1 -0
  371. package/dist/components/typography/Typography.d.mts +14 -0
  372. package/dist/components/typography/Typography.d.mts.map +1 -0
  373. package/dist/components/typography/Typography.mjs +67 -0
  374. package/dist/components/typography/Typography.mjs.map +1 -0
  375. package/dist/components/typography/index.d.cts +2 -0
  376. package/dist/components/typography/index.d.mts +2 -0
  377. package/dist/components/window-frame/WindowFrame.cjs +47 -0
  378. package/dist/components/window-frame/WindowFrame.cjs.map +1 -0
  379. package/dist/components/window-frame/WindowFrame.d.cts +19 -0
  380. package/dist/components/window-frame/WindowFrame.d.cts.map +1 -0
  381. package/dist/components/window-frame/WindowFrame.d.mts +19 -0
  382. package/dist/components/window-frame/WindowFrame.d.mts.map +1 -0
  383. package/dist/components/window-frame/WindowFrame.mjs +46 -0
  384. package/dist/components/window-frame/WindowFrame.mjs.map +1 -0
  385. package/dist/components/window-frame/index.d.cts +2 -0
  386. package/dist/components/window-frame/index.d.mts +2 -0
  387. package/dist/hooks/use-mobile.cjs +23 -0
  388. package/dist/hooks/use-mobile.cjs.map +1 -0
  389. package/dist/hooks/use-mobile.mjs +21 -0
  390. package/dist/hooks/use-mobile.mjs.map +1 -0
  391. package/dist/index.cjs +235 -5936
  392. package/dist/index.d.cts +90 -840
  393. package/dist/index.d.mts +90 -0
  394. package/dist/index.mjs +52 -0
  395. package/dist/lib/shiki-theme.cjs +10 -0
  396. package/dist/lib/shiki-theme.cjs.map +1 -0
  397. package/dist/lib/shiki-theme.d.cts +4 -0
  398. package/dist/lib/shiki-theme.d.cts.map +1 -0
  399. package/dist/lib/shiki-theme.d.mts +4 -0
  400. package/dist/lib/shiki-theme.d.mts.map +1 -0
  401. package/dist/lib/shiki-theme.mjs +11 -0
  402. package/dist/lib/shiki-theme.mjs.map +1 -0
  403. package/dist/lib/shiki.cjs +31 -0
  404. package/dist/lib/shiki.cjs.map +1 -0
  405. package/dist/lib/shiki.d.cts +6 -0
  406. package/dist/lib/shiki.d.cts.map +1 -0
  407. package/dist/lib/shiki.d.mts +6 -0
  408. package/dist/lib/shiki.d.mts.map +1 -0
  409. package/dist/lib/shiki.mjs +30 -0
  410. package/dist/lib/shiki.mjs.map +1 -0
  411. package/dist/lib/terminal.d.cts +12 -0
  412. package/dist/lib/terminal.d.cts.map +1 -0
  413. package/dist/lib/terminal.d.mts +12 -0
  414. package/dist/lib/terminal.d.mts.map +1 -0
  415. package/dist/lib/utils.cjs +43 -0
  416. package/dist/lib/utils.cjs.map +1 -0
  417. package/dist/lib/utils.mjs +41 -0
  418. package/dist/lib/utils.mjs.map +1 -0
  419. package/dist/neural-flow.cjs +3 -1015
  420. package/dist/neural-flow.d.cts +3 -47
  421. package/dist/neural-flow.d.mts +3 -0
  422. package/dist/neural-flow.mjs +1 -0
  423. package/dist/primitives/alert.cjs +43 -0
  424. package/dist/primitives/alert.cjs.map +1 -0
  425. package/dist/primitives/alert.d.cts +8 -0
  426. package/dist/primitives/alert.d.cts.map +1 -0
  427. package/dist/primitives/alert.d.mts +8 -0
  428. package/dist/primitives/alert.d.mts.map +1 -0
  429. package/dist/primitives/alert.mjs +39 -0
  430. package/dist/primitives/alert.mjs.map +1 -0
  431. package/dist/primitives/button.cjs +48 -0
  432. package/dist/primitives/button.cjs.map +1 -0
  433. package/dist/primitives/button.d.cts +11 -0
  434. package/dist/primitives/button.d.cts.map +1 -0
  435. package/dist/primitives/button.d.mts +11 -0
  436. package/dist/primitives/button.d.mts.map +1 -0
  437. package/dist/primitives/button.mjs +47 -0
  438. package/dist/primitives/button.mjs.map +1 -0
  439. package/dist/primitives/card.cjs +67 -0
  440. package/dist/primitives/card.cjs.map +1 -0
  441. package/dist/primitives/card.d.cts +11 -0
  442. package/dist/primitives/card.d.cts.map +1 -0
  443. package/dist/primitives/card.d.mts +11 -0
  444. package/dist/primitives/card.d.mts.map +1 -0
  445. package/dist/primitives/card.mjs +59 -0
  446. package/dist/primitives/card.mjs.map +1 -0
  447. package/dist/primitives/checkbox.cjs +22 -0
  448. package/dist/primitives/checkbox.cjs.map +1 -0
  449. package/dist/primitives/checkbox.mjs +22 -0
  450. package/dist/primitives/checkbox.mjs.map +1 -0
  451. package/dist/primitives/command.cjs +69 -0
  452. package/dist/primitives/command.cjs.map +1 -0
  453. package/dist/primitives/command.mjs +62 -0
  454. package/dist/primitives/command.mjs.map +1 -0
  455. package/dist/primitives/dropdown-menu.cjs +155 -0
  456. package/dist/primitives/dropdown-menu.cjs.map +1 -0
  457. package/dist/primitives/dropdown-menu.d.cts +30 -0
  458. package/dist/primitives/dropdown-menu.d.cts.map +1 -0
  459. package/dist/primitives/dropdown-menu.d.mts +30 -0
  460. package/dist/primitives/dropdown-menu.d.mts.map +1 -0
  461. package/dist/primitives/dropdown-menu.mjs +139 -0
  462. package/dist/primitives/dropdown-menu.mjs.map +1 -0
  463. package/dist/primitives/empty.cjs +67 -0
  464. package/dist/primitives/empty.cjs.map +1 -0
  465. package/dist/primitives/empty.d.cts +8 -0
  466. package/dist/primitives/empty.d.cts.map +1 -0
  467. package/dist/primitives/empty.d.mts +8 -0
  468. package/dist/primitives/empty.d.mts.map +1 -0
  469. package/dist/primitives/empty.mjs +62 -0
  470. package/dist/primitives/empty.mjs.map +1 -0
  471. package/dist/primitives/field.cjs +121 -0
  472. package/dist/primitives/field.cjs.map +1 -0
  473. package/dist/primitives/field.d.cts +27 -0
  474. package/dist/primitives/field.d.cts.map +1 -0
  475. package/dist/primitives/field.d.mts +27 -0
  476. package/dist/primitives/field.d.mts.map +1 -0
  477. package/dist/primitives/field.mjs +112 -0
  478. package/dist/primitives/field.mjs.map +1 -0
  479. package/dist/primitives/input-group.cjs +52 -0
  480. package/dist/primitives/input-group.cjs.map +1 -0
  481. package/dist/primitives/input-group.mjs +49 -0
  482. package/dist/primitives/input-group.mjs.map +1 -0
  483. package/dist/primitives/input.cjs +20 -0
  484. package/dist/primitives/input.cjs.map +1 -0
  485. package/dist/primitives/input.d.cts +6 -0
  486. package/dist/primitives/input.d.cts.map +1 -0
  487. package/dist/primitives/input.d.mts +6 -0
  488. package/dist/primitives/input.d.mts.map +1 -0
  489. package/dist/primitives/input.mjs +18 -0
  490. package/dist/primitives/input.mjs.map +1 -0
  491. package/dist/primitives/item.cjs +135 -0
  492. package/dist/primitives/item.cjs.map +1 -0
  493. package/dist/primitives/item.d.cts +18 -0
  494. package/dist/primitives/item.d.cts.map +1 -0
  495. package/dist/primitives/item.d.mts +18 -0
  496. package/dist/primitives/item.d.mts.map +1 -0
  497. package/dist/primitives/item.mjs +124 -0
  498. package/dist/primitives/item.mjs.map +1 -0
  499. package/dist/primitives/label.cjs +18 -0
  500. package/dist/primitives/label.cjs.map +1 -0
  501. package/dist/primitives/label.d.cts +6 -0
  502. package/dist/primitives/label.d.cts.map +1 -0
  503. package/dist/primitives/label.d.mts +6 -0
  504. package/dist/primitives/label.d.mts.map +1 -0
  505. package/dist/primitives/label.mjs +16 -0
  506. package/dist/primitives/label.mjs.map +1 -0
  507. package/dist/primitives/navigation-menu.cjs +44 -0
  508. package/dist/primitives/navigation-menu.cjs.map +1 -0
  509. package/dist/primitives/navigation-menu.d.cts +9 -0
  510. package/dist/primitives/navigation-menu.d.cts.map +1 -0
  511. package/dist/primitives/navigation-menu.d.mts +9 -0
  512. package/dist/primitives/navigation-menu.d.mts.map +1 -0
  513. package/dist/primitives/navigation-menu.mjs +41 -0
  514. package/dist/primitives/navigation-menu.mjs.map +1 -0
  515. package/dist/primitives/popover.cjs +40 -0
  516. package/dist/primitives/popover.cjs.map +1 -0
  517. package/dist/primitives/popover.mjs +36 -0
  518. package/dist/primitives/popover.mjs.map +1 -0
  519. package/dist/primitives/progress.cjs +50 -0
  520. package/dist/primitives/progress.cjs.map +1 -0
  521. package/dist/primitives/progress.d.cts +10 -0
  522. package/dist/primitives/progress.d.cts.map +1 -0
  523. package/dist/primitives/progress.d.mts +10 -0
  524. package/dist/primitives/progress.d.mts.map +1 -0
  525. package/dist/primitives/progress.mjs +46 -0
  526. package/dist/primitives/progress.mjs.map +1 -0
  527. package/dist/primitives/select.cjs +111 -0
  528. package/dist/primitives/select.cjs.map +1 -0
  529. package/dist/primitives/select.d.cts +18 -0
  530. package/dist/primitives/select.d.cts.map +1 -0
  531. package/dist/primitives/select.d.mts +18 -0
  532. package/dist/primitives/select.d.mts.map +1 -0
  533. package/dist/primitives/select.mjs +100 -0
  534. package/dist/primitives/select.mjs.map +1 -0
  535. package/dist/primitives/separator.cjs +17 -0
  536. package/dist/primitives/separator.cjs.map +1 -0
  537. package/dist/primitives/separator.d.cts +6 -0
  538. package/dist/primitives/separator.d.cts.map +1 -0
  539. package/dist/primitives/separator.d.mts +6 -0
  540. package/dist/primitives/separator.d.mts.map +1 -0
  541. package/dist/primitives/separator.mjs +17 -0
  542. package/dist/primitives/separator.mjs.map +1 -0
  543. package/dist/primitives/sheet.cjs +78 -0
  544. package/dist/primitives/sheet.cjs.map +1 -0
  545. package/dist/primitives/sheet.mjs +72 -0
  546. package/dist/primitives/sheet.mjs.map +1 -0
  547. package/dist/primitives/sidebar.cjs +413 -0
  548. package/dist/primitives/sidebar.cjs.map +1 -0
  549. package/dist/primitives/sidebar.d.cts +66 -0
  550. package/dist/primitives/sidebar.d.cts.map +1 -0
  551. package/dist/primitives/sidebar.d.mts +66 -0
  552. package/dist/primitives/sidebar.d.mts.map +1 -0
  553. package/dist/primitives/sidebar.mjs +388 -0
  554. package/dist/primitives/sidebar.mjs.map +1 -0
  555. package/dist/primitives/skeleton.cjs +15 -0
  556. package/dist/primitives/skeleton.cjs.map +1 -0
  557. package/dist/primitives/skeleton.mjs +15 -0
  558. package/dist/primitives/skeleton.mjs.map +1 -0
  559. package/dist/primitives/table.cjs +78 -0
  560. package/dist/primitives/table.cjs.map +1 -0
  561. package/dist/primitives/table.mjs +69 -0
  562. package/dist/primitives/table.mjs.map +1 -0
  563. package/dist/primitives/textarea.cjs +18 -0
  564. package/dist/primitives/textarea.cjs.map +1 -0
  565. package/dist/primitives/textarea.d.cts +6 -0
  566. package/dist/primitives/textarea.d.cts.map +1 -0
  567. package/dist/primitives/textarea.d.mts +6 -0
  568. package/dist/primitives/textarea.d.mts.map +1 -0
  569. package/dist/primitives/textarea.mjs +16 -0
  570. package/dist/primitives/textarea.mjs.map +1 -0
  571. package/dist/primitives/tooltip.cjs +46 -0
  572. package/dist/primitives/tooltip.cjs.map +1 -0
  573. package/dist/primitives/tooltip.d.cts +9 -0
  574. package/dist/primitives/tooltip.d.cts.map +1 -0
  575. package/dist/primitives/tooltip.d.mts +9 -0
  576. package/dist/primitives/tooltip.d.mts.map +1 -0
  577. package/dist/primitives/tooltip.mjs +43 -0
  578. package/dist/primitives/tooltip.mjs.map +1 -0
  579. package/dist/shiki.cjs +6 -80
  580. package/dist/shiki.d.cts +3 -10
  581. package/dist/shiki.d.mts +3 -0
  582. package/dist/shiki.mjs +3 -0
  583. package/dist/styles/index.css +11 -0
  584. package/package.json +19 -13
  585. package/dist/chunk-3LBFYXI6.js +0 -42
  586. package/dist/chunk-3LBFYXI6.js.map +0 -1
  587. package/dist/index.cjs.map +0 -1
  588. package/dist/index.d.ts +0 -840
  589. package/dist/index.js +0 -5681
  590. package/dist/index.js.map +0 -1
  591. package/dist/neural-flow.cjs.map +0 -1
  592. package/dist/neural-flow.d.ts +0 -47
  593. package/dist/neural-flow.js +0 -978
  594. package/dist/neural-flow.js.map +0 -1
  595. package/dist/shiki.cjs.map +0 -1
  596. package/dist/shiki.d.ts +0 -10
  597. package/dist/shiki.js +0 -11
  598. package/dist/shiki.js.map +0 -1
@@ -0,0 +1,106 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.mjs";
3
+ import { Typography } from "../typography/Typography.mjs";
4
+ import { Card } from "../card/Card.mjs";
5
+ import { ModelLogo } from "../model-logo/ModelLogo.mjs";
6
+ import * as React from "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ //#region src/components/model-card/ModelCard.tsx
9
+ const lifecycleLabels = {
10
+ preview: "Preview",
11
+ active: "Active",
12
+ deprecated: "Deprecated"
13
+ };
14
+ /** Per-status styling for the lifecycle tab (tint classes come from
15
+ * index.css; deprecated uses the granite neutral). Brightens when the
16
+ * card (`group`) is hovered. */
17
+ const lifecycleStyles = {
18
+ preview: "berget-tint berget-tint-warning",
19
+ active: "berget-tint berget-tint-success",
20
+ deprecated: "bg-berget-brand-granite-700 text-berget-muted-foreground"
21
+ };
22
+ const ModelCard = React.forwardRef(({ icon, provider, category, eyebrow, title, lifecycle, description, columns, meta, href, external, className, children, ...props }, ref) => {
23
+ const titleId = React.useId();
24
+ return /* @__PURE__ */ jsx("a", {
25
+ ref,
26
+ href,
27
+ "aria-labelledby": titleId,
28
+ ...external ? {
29
+ target: "_blank",
30
+ rel: "noopener noreferrer"
31
+ } : {},
32
+ className: cn("group block", className),
33
+ ...props,
34
+ children: /* @__PURE__ */ jsxs(Card, {
35
+ variant: "filled",
36
+ className: "relative flex h-full flex-col bg-berget-card-filled-bg p-5 transition-all hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))] sm:p-6",
37
+ children: [
38
+ lifecycle && /* @__PURE__ */ jsx("div", {
39
+ className: "absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm",
40
+ children: /* @__PURE__ */ jsx("div", {
41
+ className: cn("inline-flex h-6 items-center whitespace-nowrap border-0! px-8 text-sm", lifecycleStyles[lifecycle]),
42
+ children: lifecycleLabels[lifecycle]
43
+ })
44
+ }),
45
+ (icon || provider || category) && /* @__PURE__ */ jsx("div", {
46
+ className: "flex h-12 w-12 shrink-0 items-center justify-center rounded-berget-xs border border-berget-border bg-white/5 text-berget-foreground",
47
+ children: icon ?? /* @__PURE__ */ jsx(ModelLogo, {
48
+ provider,
49
+ category
50
+ })
51
+ }),
52
+ /* @__PURE__ */ jsxs("header", { children: [
53
+ eyebrow && /* @__PURE__ */ jsx(Typography, {
54
+ variant: "xs",
55
+ color: "muted",
56
+ className: "font-medium uppercase leading-none tracking-[0.25em]",
57
+ children: eyebrow
58
+ }),
59
+ /* @__PURE__ */ jsx("div", {
60
+ className: cn("flex items-baseline gap-3", lifecycle && "pr-24"),
61
+ children: /* @__PURE__ */ jsx(Typography, {
62
+ as: "h3",
63
+ id: titleId,
64
+ variant: "h5",
65
+ className: "min-w-0 truncate whitespace-nowrap leading-tight",
66
+ style: { fontFeatureSettings: "normal" },
67
+ children: title
68
+ })
69
+ }),
70
+ description && /* @__PURE__ */ jsx(Typography, {
71
+ variant: "xs",
72
+ color: "muted",
73
+ className: "leading-none",
74
+ children: description
75
+ })
76
+ ] }),
77
+ columns && columns.length > 0 && /* @__PURE__ */ jsx("div", {
78
+ className: "grid grid-cols-2",
79
+ children: columns.map((col, i) => /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Typography, {
80
+ variant: "xs",
81
+ color: "muted",
82
+ className: "leading-none",
83
+ children: col.label
84
+ }), /* @__PURE__ */ jsx(Typography, {
85
+ variant: "body",
86
+ className: "tabular-nums leading-none",
87
+ style: { fontFeatureSettings: "normal" },
88
+ children: col.value
89
+ })] }, i))
90
+ }),
91
+ meta && meta.length > 0 && /* @__PURE__ */ jsx(Typography, {
92
+ variant: "xs",
93
+ color: "muted",
94
+ className: "text-[0.65rem] uppercase tracking-[0.15em]",
95
+ children: meta.map((item, i) => /* @__PURE__ */ jsxs(React.Fragment, { children: [i > 0 && " ▪ ", item] }, i))
96
+ }),
97
+ children
98
+ ]
99
+ })
100
+ });
101
+ });
102
+ ModelCard.displayName = "ModelCard";
103
+ //#endregion
104
+ export { ModelCard };
105
+
106
+ //# sourceMappingURL=ModelCard.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelCard.mjs","names":[],"sources":["../../../src/components/model-card/ModelCard.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Card } from '../card';\nimport { type ModelCategory, type ModelLogoProvider, ModelLogo } from '../model-logo';\nimport { Typography } from '../typography';\n\n/**\n * ModelCard — a whole-card link tile for presenting AI models in a grid:\n * provider mark, category eyebrow, model name, optional lifecycle tab,\n * per-unit price columns, and fine-print capability facts.\n *\n * Presentational only: all copy is passed in as props; the card itself\n * owns no strings and no domain types.\n */\n/** Lifecycle status shown as a corner tab on the card. */\nexport type ModelLifecycle = 'preview' | 'active' | 'deprecated';\n\nconst lifecycleLabels: Record<ModelLifecycle, string> = {\n preview: 'Preview',\n active: 'Active',\n deprecated: 'Deprecated',\n};\n\n/** Per-status styling for the lifecycle tab (tint classes come from\n * index.css; deprecated uses the granite neutral). Brightens when the\n * card (`group`) is hovered. */\nconst lifecycleStyles: Record<ModelLifecycle, string> = {\n preview: 'berget-tint berget-tint-warning',\n active: 'berget-tint berget-tint-success',\n deprecated: 'bg-berget-brand-granite-700 text-berget-muted-foreground',\n};\n\nexport type { ModelCategory, ModelLogoProvider };\n\nexport interface ModelCardProps extends Omit<React.ComponentProps<'a'>, 'title' | 'children'> {\n /** Provider mark, rendered in a bordered square at the top of the card. */\n icon?: React.ReactNode;\n /**\n * Model family for the icon square — resolved to a bundled brand mark\n * (e.g. `'mistralai'`, `'moonshotai'`, `'berget'`). Ignored when `icon`\n * is set.\n */\n provider?: string;\n /** Fallback category for the icon square when no brand mark exists\n * (maps to the `model_type` values from `GET /v1/models`). */\n category?: ModelCategory;\n /** Small category label above the title (rendered uppercase). */\n eyebrow?: string;\n /** The model name — rendered as an `h3` and truncated when too long. */\n title: React.ReactNode;\n /**\n * Lifecycle status rendered as a corner tab: `preview` (yellow),\n * `active` (green), `deprecated` (gray).\n */\n lifecycle?: ModelLifecycle;\n /** Secondary line under the title, e.g. the provider name. */\n description?: React.ReactNode;\n /** Label-above-value columns, e.g. per-million-token input/output prices. */\n columns?: { label: React.ReactNode; value: React.ReactNode }[];\n /**\n * Fine-print capability facts rendered in one uppercase row with\n * square separators drawn by the card, e.g. ['Vision', '262K context'].\n */\n meta?: React.ReactNode[];\n /** Link target for the whole card. */\n href: string;\n /** Opens the link in a new tab (adds `target`/`rel`). */\n external?: boolean;\n /** Extra content rendered at the bottom of the card. */\n children?: React.ReactNode;\n}\n\nconst ModelCard = React.forwardRef<HTMLAnchorElement, ModelCardProps>(\n (\n {\n icon,\n provider,\n category,\n eyebrow,\n title,\n lifecycle,\n description,\n columns,\n meta,\n href,\n external,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const titleId = React.useId();\n\n return (\n <a\n ref={ref}\n href={href}\n aria-labelledby={titleId}\n {...(external ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n className={cn('group block', className)}\n {...props}\n >\n <Card\n variant=\"filled\"\n className=\"relative flex h-full flex-col bg-berget-card-filled-bg p-5 transition-all hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))] sm:p-6\"\n >\n {lifecycle && (\n <div className=\"absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\">\n <div\n className={cn(\n 'inline-flex h-6 items-center whitespace-nowrap border-0! px-8 text-sm',\n lifecycleStyles[lifecycle],\n )}\n >\n {lifecycleLabels[lifecycle]}\n </div>\n </div>\n )}\n {(icon || provider || category) && (\n <div className=\"flex h-12 w-12 shrink-0 items-center justify-center rounded-berget-xs border border-berget-border bg-white/5 text-berget-foreground\">\n {icon ?? <ModelLogo provider={provider} category={category} />}\n </div>\n )}\n\n {/* Identity cluster: eyebrow, title, description — cb tightly\n grouped; the card's flex gap separates it from other groups. */}\n <header>\n {eyebrow && (\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"font-medium uppercase leading-none tracking-[0.25em]\"\n >\n {eyebrow}\n </Typography>\n )}\n <div className={cn('flex items-baseline gap-3', lifecycle && 'pr-24')}>\n <Typography\n as=\"h3\"\n id={titleId}\n variant=\"h5\"\n className=\"min-w-0 truncate whitespace-nowrap leading-tight\"\n style={{ fontFeatureSettings: 'normal' }}\n >\n {title}\n </Typography>\n </div>\n {description && (\n <Typography variant=\"xs\" color=\"muted\" className=\"leading-none\">\n {description}\n </Typography>\n )}\n </header>\n\n {columns && columns.length > 0 && (\n <div className=\"grid grid-cols-2\">\n {columns.map((col, i) => (\n <div key={i}>\n <Typography variant=\"xs\" color=\"muted\" className=\"leading-none\">\n {col.label}\n </Typography>\n <Typography\n variant=\"body\"\n className=\"tabular-nums leading-none\"\n style={{ fontFeatureSettings: 'normal' }}\n >\n {col.value}\n </Typography>\n </div>\n ))}\n </div>\n )}\n\n {meta && meta.length > 0 && (\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"text-[0.65rem] uppercase tracking-[0.15em]\"\n >\n {meta.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 && ' ▪ '}\n {item}\n </React.Fragment>\n ))}\n </Typography>\n )}\n\n {children}\n </Card>\n </a>\n );\n },\n);\nModelCard.displayName = 'ModelCard';\n\nexport { ModelCard };\n"],"mappings":";;;;;;;;AAmBA,MAAM,kBAAkD;CACtD,SAAS;CACT,QAAQ;CACR,YAAY;AACd;;;;AAKA,MAAM,kBAAkD;CACtD,SAAS;CACT,QAAQ;CACR,YAAY;AACd;AA0CA,MAAM,YAAY,MAAM,YAEpB,EACE,MACA,UACA,UACA,SACA,OACA,WACA,aACA,SACA,MACA,MACA,UACA,WACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,UAAU,MAAM,MAAM;CAE5B,OACE,oBAAC,KAAD;EACO;EACC;EACN,mBAAiB;EACjB,GAAK,WAAW;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACpE,WAAW,GAAG,eAAe,SAAS;EACtC,GAAI;EAEJ,UAAA,qBAAC,MAAD;GACE,SAAQ;GACR,WAAU;GAFZ,UAAA;IAIG,aACC,oBAAC,OAAD;KAAK,WAAU;KACb,UAAA,oBAAC,OAAD;MACE,WAAW,GACT,yEACA,gBAAgB,UAClB;MAEC,UAAA,gBAAgB;KACd,CAAA;IACF,CAAA;KAEL,QAAQ,YAAY,aACpB,oBAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,oBAAC,WAAD;MAAqB;MAAoB;KAAW,CAAA;IAC1D,CAAA;IAKP,qBAAC,UAAD,EAAA,UAAA;KACG,WACC,oBAAC,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAET,UAAA;KACS,CAAA;KAEd,oBAAC,OAAD;MAAK,WAAW,GAAG,6BAA6B,aAAa,OAAO;MAClE,UAAA,oBAAC,YAAD;OACE,IAAG;OACH,IAAI;OACJ,SAAQ;OACR,WAAU;OACV,OAAO,EAAE,qBAAqB,SAAS;OAEtC,UAAA;MACS,CAAA;KACT,CAAA;KACJ,eACC,oBAAC,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA;KACS,CAAA;IAER,EAAA,CAAA;IAEP,WAAW,QAAQ,SAAS,KAC3B,oBAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,KAAK,KAAK,MACjB,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA,IAAI;KACK,CAAA,GACZ,oBAAC,YAAD;MACE,SAAQ;MACR,WAAU;MACV,OAAO,EAAE,qBAAqB,SAAS;MAEtC,UAAA,IAAI;KACK,CAAA,CACT,EAAA,GAXK,CAWL,CACN;IACE,CAAA;IAGN,QAAQ,KAAK,SAAS,KACrB,oBAAC,YAAD;KACE,SAAQ;KACR,OAAM;KACN,WAAU;KAET,UAAA,KAAK,KAAK,MAAM,MACf,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,IAAI,KAAK,OACT,IACa,EAAA,GAHK,CAGL,CACjB;IACS,CAAA;IAGb;GACG;;CACL,CAAA;AAEP,CACF;AACA,UAAU,cAAc"}
@@ -0,0 +1,3 @@
1
+ import { ModelCategory, ModelLogoProvider } from "../model-logo/ModelLogo.cjs";
2
+ import { ModelCard, ModelCardProps, ModelLifecycle } from "./ModelCard.cjs";
3
+ export { ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, type ModelLogoProvider };
@@ -0,0 +1,3 @@
1
+ import { ModelCategory, ModelLogoProvider } from "../model-logo/ModelLogo.mjs";
2
+ import { ModelCard, ModelCardProps, ModelLifecycle } from "./ModelCard.mjs";
3
+ export { ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, type ModelLogoProvider };
@@ -0,0 +1,98 @@
1
+ "use client";
2
+ const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
3
+ const require_utils = require("../../lib/utils.cjs");
4
+ const require_BergetLogo = require("../berget-logo/BergetLogo.cjs");
5
+ let react = require("react");
6
+ react = require_runtime.__toESM(react, 1);
7
+ let react_jsx_runtime = require("react/jsx-runtime");
8
+ let lucide_react = require("lucide-react");
9
+ //#region src/components/model-logo/ModelLogo.tsx
10
+ /** Accepted aliases, e.g. the raw `owned_by` strings from the models API. */
11
+ const providerAliases = {
12
+ qwen: "qwen",
13
+ mistralai: "mistral",
14
+ mistral: "mistral",
15
+ moonshotai: "kimi",
16
+ kimi: "kimi",
17
+ google: "google",
18
+ "zai-org": "zai",
19
+ zai: "zai",
20
+ berget: "berget",
21
+ bergetai: "berget"
22
+ };
23
+ /** Monochrome, `currentColor`, 24×24 brand marks (via @lobehub/icons, MIT). */
24
+ const providerPaths = {
25
+ qwen: ["M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z"],
26
+ mistral: ["M3.428 3.4h3.429v3.428h3.429v3.429h-.002 3.431V6.828h3.427V3.4h3.43v13.714H24v3.429H13.714v-3.428h-3.428v-3.429h-3.43v3.428h3.43v3.429H0v-3.429h3.428V3.4zm10.286 13.715h3.428v-3.429h-3.427v3.429z"],
27
+ kimi: ["M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z", "M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z"],
28
+ google: [
29
+ "M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z",
30
+ "M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z",
31
+ "M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z",
32
+ "M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z"
33
+ ],
34
+ zai: ["M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"]
35
+ };
36
+ const providerLabels = {
37
+ qwen: "Qwen",
38
+ mistral: "Mistral",
39
+ kimi: "Kimi",
40
+ google: "Google",
41
+ zai: "Z.ai",
42
+ berget: "Berget AI"
43
+ };
44
+ const categoryIcons = {
45
+ text: lucide_react.Bot,
46
+ "speech-to-text": lucide_react.AudioLines,
47
+ embedding: lucide_react.Braces,
48
+ rerank: lucide_react.ArrowDownWideNarrow,
49
+ "system-one": lucide_react.ScanEye,
50
+ vision: lucide_react.Eye
51
+ };
52
+ const categoryLabels = {
53
+ text: "Model",
54
+ "speech-to-text": "Speech-to-text",
55
+ embedding: "Embedding",
56
+ rerank: "Reranker",
57
+ "system-one": "System One",
58
+ vision: "Vision"
59
+ };
60
+ /**
61
+ * ModelLogo — brand mark for a supported model family, falling back to a
62
+ * category icon for everything else. Renders nothing if no `provider` and
63
+ * no `category` match.
64
+ */
65
+ const ModelLogo = react.forwardRef(({ provider, category, size = 24, className, ...props }, ref) => {
66
+ const resolved = provider ? providerAliases[provider.trim().toLowerCase()] : void 0;
67
+ if (resolved === "berget") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BergetLogo.BergetLogo, {
68
+ variant: "symbol",
69
+ size,
70
+ className: require_utils.cn("shrink-0", className)
71
+ });
72
+ if (resolved) return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
73
+ ref,
74
+ viewBox: "0 0 24 24",
75
+ fill: "currentColor",
76
+ width: size,
77
+ height: size,
78
+ role: "img",
79
+ "aria-label": providerLabels[resolved],
80
+ className: require_utils.cn("shrink-0", className),
81
+ ...props,
82
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("title", { children: providerLabels[resolved] }), providerPaths[resolved].map((d, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", { d }, i))]
83
+ });
84
+ if (category) {
85
+ const Icon = categoryIcons[category];
86
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {
87
+ className: require_utils.cn("shrink-0", className),
88
+ ...props
89
+ });
90
+ }
91
+ return null;
92
+ });
93
+ ModelLogo.displayName = "ModelLogo";
94
+ //#endregion
95
+ exports.ModelLogo = ModelLogo;
96
+ exports.categoryLabels = categoryLabels;
97
+
98
+ //# sourceMappingURL=ModelLogo.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelLogo.cjs","names":["Bot","AudioLines","Braces","ArrowDownWideNarrow","ScanEye","Eye","React","BergetLogo","cn"],"sources":["../../../src/components/model-logo/ModelLogo.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ArrowDownWideNarrow, AudioLines, Bot, Braces, Eye, ScanEye } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { BergetLogo } from '../berget-logo';\n\n/**\n * Model families with a bundled brand mark, keyed by the `owned_by` values\n * returned by `GET /v1/models` (normalized: lowercase, aliases below).\n */\nexport type ModelLogoProvider = 'qwen' | 'mistral' | 'kimi' | 'google' | 'zai' | 'berget';\n\n/** Fallback model categories for models without a brand mark, matching\n * the `model_type` values in `GET /v1/models` (plus `vision`, which lives\n * in per-model capabilities). */\nexport type ModelCategory =\n | 'text'\n | 'speech-to-text'\n | 'embedding'\n | 'rerank'\n | 'system-one'\n | 'vision';\n\n/** Accepted aliases, e.g. the raw `owned_by` strings from the models API. */\nconst providerAliases: Record<string, ModelLogoProvider> = {\n qwen: 'qwen',\n mistralai: 'mistral',\n mistral: 'mistral',\n moonshotai: 'kimi',\n kimi: 'kimi',\n google: 'google',\n 'zai-org': 'zai',\n zai: 'zai',\n berget: 'berget',\n bergetai: 'berget',\n};\n\n/** Monochrome, `currentColor`, 24×24 brand marks (via @lobehub/icons, MIT). */\nconst providerPaths: Record<Exclude<ModelLogoProvider, 'berget'>, string[]> = {\n qwen: [\n 'M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z',\n ],\n mistral: [\n 'M3.428 3.4h3.429v3.428h3.429v3.429h-.002 3.431V6.828h3.427V3.4h3.43v13.714H24v3.429H13.714v-3.428h-3.428v-3.429h-3.43v3.428h3.43v3.429H0v-3.429h3.428V3.4zm10.286 13.715h3.428v-3.429h-3.427v3.429z',\n ],\n kimi: [\n 'M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z',\n 'M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z',\n ],\n google: [\n 'M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z',\n 'M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z',\n 'M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z',\n 'M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z',\n ],\n zai: [\n 'M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z',\n ],\n};\n\nconst providerLabels: Record<ModelLogoProvider, string> = {\n qwen: 'Qwen',\n mistral: 'Mistral',\n kimi: 'Kimi',\n google: 'Google',\n zai: 'Z.ai',\n berget: 'Berget AI',\n};\n\nconst categoryIcons: Record<ModelCategory, React.ComponentType<{ className?: string }>> = {\n text: Bot,\n 'speech-to-text': AudioLines,\n embedding: Braces,\n rerank: ArrowDownWideNarrow,\n 'system-one': ScanEye,\n vision: Eye,\n};\n\nconst categoryLabels: Record<ModelCategory, string> = {\n text: 'Model',\n 'speech-to-text': 'Speech-to-text',\n embedding: 'Embedding',\n rerank: 'Reranker',\n 'system-one': 'System One',\n vision: 'Vision',\n};\n\nexport interface ModelLogoProps extends React.SVGAttributes<SVGSVGElement> {\n /**\n * Model family to render a brand mark for. Accepts the `owned_by` values\n * from `GET /v1/models` (e.g. `'moonshotai'`) case-insensitively.\n */\n provider?: string;\n /** Fallback category when `provider` is missing or unknown. */\n category?: ModelCategory;\n /** Size (width and height) in pixels. */\n size?: number;\n}\n\n/**\n * ModelLogo — brand mark for a supported model family, falling back to a\n * category icon for everything else. Renders nothing if no `provider` and\n * no `category` match.\n */\nexport const ModelLogo = React.forwardRef<SVGSVGElement, ModelLogoProps>(\n ({ provider, category, size = 24, className, ...props }, ref) => {\n const resolved = provider ? providerAliases[provider.trim().toLowerCase()] : undefined;\n\n if (resolved === 'berget') {\n return <BergetLogo variant=\"symbol\" size={size} className={cn('shrink-0', className)} />;\n }\n\n if (resolved) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n width={size}\n height={size}\n role=\"img\"\n aria-label={providerLabels[resolved]}\n className={cn('shrink-0', className)}\n {...props}\n >\n <title>{providerLabels[resolved]}</title>\n {providerPaths[resolved].map((d, i) => (\n <path key={i} d={d} />\n ))}\n </svg>\n );\n }\n\n if (category) {\n const Icon = categoryIcons[category];\n return <Icon className={cn('shrink-0', className)} {...props} />;\n }\n\n return null;\n },\n);\nModelLogo.displayName = 'ModelLogo';\n\nexport { categoryLabels };\n"],"mappings":";;;;;;;;;;AAyBA,MAAM,kBAAqD;CACzD,MAAM;CACN,WAAW;CACX,SAAS;CACT,YAAY;CACZ,MAAM;CACN,QAAQ;CACR,WAAW;CACX,KAAK;CACL,QAAQ;CACR,UAAU;AACZ;;AAGA,MAAM,gBAAwE;CAC5E,MAAM,CACJ,wjDACF;CACA,SAAS,CACP,qMACF;CACA,MAAM,CACJ,uGACA,udACF;CACA,QAAQ;EACN;EACA;EACA;EACA;CACF;CACA,KAAK,CACH,yHACF;AACF;AAEA,MAAM,iBAAoD;CACxD,MAAM;CACN,SAAS;CACT,MAAM;CACN,QAAQ;CACR,KAAK;CACL,QAAQ;AACV;AAEA,MAAM,gBAAoF;CACxF,MAAMA,aAAAA;CACN,kBAAkBC,aAAAA;CAClB,WAAWC,aAAAA;CACX,QAAQC,aAAAA;CACR,cAAcC,aAAAA;CACd,QAAQC,aAAAA;AACV;AAEA,MAAM,iBAAgD;CACpD,MAAM;CACN,kBAAkB;CAClB,WAAW;CACX,QAAQ;CACR,cAAc;CACd,QAAQ;AACV;;;;;;AAmBA,MAAa,YAAYC,MAAM,YAC5B,EAAE,UAAU,UAAU,OAAO,IAAI,WAAW,GAAG,SAAS,QAAQ;CAC/D,MAAM,WAAW,WAAW,gBAAgB,SAAS,KAAK,CAAC,CAAC,YAAY,KAAK,KAAA;CAE7E,IAAI,aAAa,UACf,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;EAAY,SAAQ;EAAe;EAAM,WAAWC,cAAAA,GAAG,YAAY,SAAS;CAAI,CAAA;CAGzF,IAAI,UACF,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACO;EACL,SAAQ;EACR,MAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAK;EACL,cAAY,eAAe;EAC3B,WAAWA,cAAAA,GAAG,YAAY,SAAS;EACnC,GAAI;EATN,UAAA,CAWE,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD,EAAA,UAAQ,eAAe,UAAiB,CAAA,GACvC,cAAc,SAAS,CAAC,KAAK,GAAG,MAC/B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAiB,EAAI,GAAV,CAAU,CACtB,CACE;;CAIT,IAAI,UAAU;EACZ,MAAM,OAAO,cAAc;EAC3B,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;GAAM,WAAWA,cAAAA,GAAG,YAAY,SAAS;GAAG,GAAI;EAAQ,CAAA;CACjE;CAEA,OAAO;AACT,CACF;AACA,UAAU,cAAc"}
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+ //#region src/components/model-logo/ModelLogo.d.ts
3
+ /**
4
+ * Model families with a bundled brand mark, keyed by the `owned_by` values
5
+ * returned by `GET /v1/models` (normalized: lowercase, aliases below).
6
+ */
7
+ export type ModelLogoProvider = 'qwen' | 'mistral' | 'kimi' | 'google' | 'zai' | 'berget';
8
+ /** Fallback model categories for models without a brand mark, matching
9
+ * the `model_type` values in `GET /v1/models` (plus `vision`, which lives
10
+ * in per-model capabilities). */
11
+ export type ModelCategory = 'text' | 'speech-to-text' | 'embedding' | 'rerank' | 'system-one' | 'vision';
12
+ declare const categoryLabels: Record<ModelCategory, string>;
13
+ export interface ModelLogoProps extends React.SVGAttributes<SVGSVGElement> {
14
+ /**
15
+ * Model family to render a brand mark for. Accepts the `owned_by` values
16
+ * from `GET /v1/models` (e.g. `'moonshotai'`) case-insensitively.
17
+ */
18
+ provider?: string;
19
+ /** Fallback category when `provider` is missing or unknown. */
20
+ category?: ModelCategory;
21
+ /** Size (width and height) in pixels. */
22
+ size?: number;
23
+ }
24
+ /**
25
+ * ModelLogo — brand mark for a supported model family, falling back to a
26
+ * category icon for everything else. Renders nothing if no `provider` and
27
+ * no `category` match.
28
+ */
29
+ export declare const ModelLogo: React.ForwardRefExoticComponent<ModelLogoProps & React.RefAttributes<SVGSVGElement>>;
30
+ //#endregion
31
+ export { categoryLabels };
32
+ //# sourceMappingURL=ModelLogo.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelLogo.d.cts","names":[],"sources":["../../../src/components/model-logo/ModelLogo.tsx"],"mappings":";;;;;;YAWY;;;;YAKA;cA+DN,gBAAgB,OAAO;iBASZ,uBAAuB,MAAM,cAAc;;;;;EAK1D;;EAEA,WAAW;;EAEX;;;;;;;qBAQW,WAAS,MAAA,0BAAA,iBAAA,MAAA,cAAA"}
@@ -0,0 +1,32 @@
1
+ import * as React from "react";
2
+ //#region src/components/model-logo/ModelLogo.d.ts
3
+ /**
4
+ * Model families with a bundled brand mark, keyed by the `owned_by` values
5
+ * returned by `GET /v1/models` (normalized: lowercase, aliases below).
6
+ */
7
+ export type ModelLogoProvider = 'qwen' | 'mistral' | 'kimi' | 'google' | 'zai' | 'berget';
8
+ /** Fallback model categories for models without a brand mark, matching
9
+ * the `model_type` values in `GET /v1/models` (plus `vision`, which lives
10
+ * in per-model capabilities). */
11
+ export type ModelCategory = 'text' | 'speech-to-text' | 'embedding' | 'rerank' | 'system-one' | 'vision';
12
+ declare const categoryLabels: Record<ModelCategory, string>;
13
+ export interface ModelLogoProps extends React.SVGAttributes<SVGSVGElement> {
14
+ /**
15
+ * Model family to render a brand mark for. Accepts the `owned_by` values
16
+ * from `GET /v1/models` (e.g. `'moonshotai'`) case-insensitively.
17
+ */
18
+ provider?: string;
19
+ /** Fallback category when `provider` is missing or unknown. */
20
+ category?: ModelCategory;
21
+ /** Size (width and height) in pixels. */
22
+ size?: number;
23
+ }
24
+ /**
25
+ * ModelLogo — brand mark for a supported model family, falling back to a
26
+ * category icon for everything else. Renders nothing if no `provider` and
27
+ * no `category` match.
28
+ */
29
+ export declare const ModelLogo: React.ForwardRefExoticComponent<ModelLogoProps & React.RefAttributes<SVGSVGElement>>;
30
+ //#endregion
31
+ export { categoryLabels };
32
+ //# sourceMappingURL=ModelLogo.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelLogo.d.mts","names":[],"sources":["../../../src/components/model-logo/ModelLogo.tsx"],"mappings":";;;;;;YAWY;;;;YAKA;cA+DN,gBAAgB,OAAO;iBASZ,uBAAuB,MAAM,cAAc;;;;;EAK1D;;EAEA,WAAW;;EAEX;;;;;;;qBAQW,WAAS,MAAA,0BAAA,iBAAA,MAAA,cAAA"}
@@ -0,0 +1,95 @@
1
+ "use client";
2
+ import { cn } from "../../lib/utils.mjs";
3
+ import { BergetLogo } from "../berget-logo/BergetLogo.mjs";
4
+ import * as React from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { ArrowDownWideNarrow, AudioLines, Bot, Braces, Eye, ScanEye } from "lucide-react";
7
+ //#region src/components/model-logo/ModelLogo.tsx
8
+ /** Accepted aliases, e.g. the raw `owned_by` strings from the models API. */
9
+ const providerAliases = {
10
+ qwen: "qwen",
11
+ mistralai: "mistral",
12
+ mistral: "mistral",
13
+ moonshotai: "kimi",
14
+ kimi: "kimi",
15
+ google: "google",
16
+ "zai-org": "zai",
17
+ zai: "zai",
18
+ berget: "berget",
19
+ bergetai: "berget"
20
+ };
21
+ /** Monochrome, `currentColor`, 24×24 brand marks (via @lobehub/icons, MIT). */
22
+ const providerPaths = {
23
+ qwen: ["M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z"],
24
+ mistral: ["M3.428 3.4h3.429v3.428h3.429v3.429h-.002 3.431V6.828h3.427V3.4h3.43v13.714H24v3.429H13.714v-3.428h-3.428v-3.429h-3.43v3.428h3.43v3.429H0v-3.429h3.428V3.4zm10.286 13.715h3.428v-3.429h-3.427v3.429z"],
25
+ kimi: ["M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z", "M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z"],
26
+ google: [
27
+ "M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z",
28
+ "M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z",
29
+ "M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z",
30
+ "M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z"
31
+ ],
32
+ zai: ["M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z"]
33
+ };
34
+ const providerLabels = {
35
+ qwen: "Qwen",
36
+ mistral: "Mistral",
37
+ kimi: "Kimi",
38
+ google: "Google",
39
+ zai: "Z.ai",
40
+ berget: "Berget AI"
41
+ };
42
+ const categoryIcons = {
43
+ text: Bot,
44
+ "speech-to-text": AudioLines,
45
+ embedding: Braces,
46
+ rerank: ArrowDownWideNarrow,
47
+ "system-one": ScanEye,
48
+ vision: Eye
49
+ };
50
+ const categoryLabels = {
51
+ text: "Model",
52
+ "speech-to-text": "Speech-to-text",
53
+ embedding: "Embedding",
54
+ rerank: "Reranker",
55
+ "system-one": "System One",
56
+ vision: "Vision"
57
+ };
58
+ /**
59
+ * ModelLogo — brand mark for a supported model family, falling back to a
60
+ * category icon for everything else. Renders nothing if no `provider` and
61
+ * no `category` match.
62
+ */
63
+ const ModelLogo = React.forwardRef(({ provider, category, size = 24, className, ...props }, ref) => {
64
+ const resolved = provider ? providerAliases[provider.trim().toLowerCase()] : void 0;
65
+ if (resolved === "berget") return /* @__PURE__ */ jsx(BergetLogo, {
66
+ variant: "symbol",
67
+ size,
68
+ className: cn("shrink-0", className)
69
+ });
70
+ if (resolved) return /* @__PURE__ */ jsxs("svg", {
71
+ ref,
72
+ viewBox: "0 0 24 24",
73
+ fill: "currentColor",
74
+ width: size,
75
+ height: size,
76
+ role: "img",
77
+ "aria-label": providerLabels[resolved],
78
+ className: cn("shrink-0", className),
79
+ ...props,
80
+ children: [/* @__PURE__ */ jsx("title", { children: providerLabels[resolved] }), providerPaths[resolved].map((d, i) => /* @__PURE__ */ jsx("path", { d }, i))]
81
+ });
82
+ if (category) {
83
+ const Icon = categoryIcons[category];
84
+ return /* @__PURE__ */ jsx(Icon, {
85
+ className: cn("shrink-0", className),
86
+ ...props
87
+ });
88
+ }
89
+ return null;
90
+ });
91
+ ModelLogo.displayName = "ModelLogo";
92
+ //#endregion
93
+ export { ModelLogo, categoryLabels };
94
+
95
+ //# sourceMappingURL=ModelLogo.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelLogo.mjs","names":[],"sources":["../../../src/components/model-logo/ModelLogo.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { ArrowDownWideNarrow, AudioLines, Bot, Braces, Eye, ScanEye } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { BergetLogo } from '../berget-logo';\n\n/**\n * Model families with a bundled brand mark, keyed by the `owned_by` values\n * returned by `GET /v1/models` (normalized: lowercase, aliases below).\n */\nexport type ModelLogoProvider = 'qwen' | 'mistral' | 'kimi' | 'google' | 'zai' | 'berget';\n\n/** Fallback model categories for models without a brand mark, matching\n * the `model_type` values in `GET /v1/models` (plus `vision`, which lives\n * in per-model capabilities). */\nexport type ModelCategory =\n | 'text'\n | 'speech-to-text'\n | 'embedding'\n | 'rerank'\n | 'system-one'\n | 'vision';\n\n/** Accepted aliases, e.g. the raw `owned_by` strings from the models API. */\nconst providerAliases: Record<string, ModelLogoProvider> = {\n qwen: 'qwen',\n mistralai: 'mistral',\n mistral: 'mistral',\n moonshotai: 'kimi',\n kimi: 'kimi',\n google: 'google',\n 'zai-org': 'zai',\n zai: 'zai',\n berget: 'berget',\n bergetai: 'berget',\n};\n\n/** Monochrome, `currentColor`, 24×24 brand marks (via @lobehub/icons, MIT). */\nconst providerPaths: Record<Exclude<ModelLogoProvider, 'berget'>, string[]> = {\n qwen: [\n 'M12.604 1.34c.393.69.784 1.382 1.174 2.075a.18.18 0 00.157.091h5.552c.174 0 .322.11.446.327l1.454 2.57c.19.337.24.478.024.837-.26.43-.513.864-.76 1.3l-.367.658c-.106.196-.223.28-.04.512l2.652 4.637c.172.301.111.494-.043.77-.437.785-.882 1.564-1.335 2.34-.159.272-.352.375-.68.37-.777-.016-1.552-.01-2.327.016a.099.099 0 00-.081.05 575.097 575.097 0 01-2.705 4.74c-.169.293-.38.363-.725.364-.997.003-2.002.004-3.017.002a.537.537 0 01-.465-.271l-1.335-2.323a.09.09 0 00-.083-.049H4.982c-.285.03-.553-.001-.805-.092l-1.603-2.77a.543.543 0 01-.002-.54l1.207-2.12a.198.198 0 000-.197 550.951 550.951 0 01-1.875-3.272l-.79-1.395c-.16-.31-.173-.496.095-.965.465-.813.927-1.625 1.387-2.436.132-.234.304-.334.584-.335a338.3 338.3 0 012.589-.001.124.124 0 00.107-.063l2.806-4.895a.488.488 0 01.422-.246c.524-.001 1.053 0 1.583-.006L11.704 1c.341-.003.724.032.9.34zm-3.432.403a.06.06 0 00-.052.03L6.254 6.788a.157.157 0 01-.135.078H3.253c-.056 0-.07.025-.041.074l5.81 10.156c.025.042.013.062-.034.063l-2.795.015a.218.218 0 00-.2.116l-1.32 2.31c-.044.078-.021.118.068.118l5.716.008c.046 0 .08.02.104.061l1.403 2.454c.046.081.092.082.139 0l5.006-8.76.783-1.382a.055.055 0 01.096 0l1.424 2.53a.122.122 0 00.107.062l2.763-.02a.04.04 0 00.035-.02.041.041 0 000-.04l-2.9-5.086a.108.108 0 010-.113l.293-.507 1.12-1.977c.024-.041.012-.062-.035-.062H9.2c-.059 0-.073-.026-.043-.077l1.434-2.505a.107.107 0 000-.114L9.225 1.774a.06.06 0 00-.053-.031zm6.29 8.02c.046 0 .058.02.034.06l-.832 1.465-2.613 4.585a.056.056 0 01-.05.029.058.058 0 01-.05-.029L8.498 9.841c-.02-.034-.01-.052.028-.054l.216-.012 6.722-.012z',\n ],\n mistral: [\n 'M3.428 3.4h3.429v3.428h3.429v3.429h-.002 3.431V6.828h3.427V3.4h3.43v13.714H24v3.429H13.714v-3.428h-3.428v-3.429h-3.43v3.428h3.43v3.429H0v-3.429h3.428V3.4zm10.286 13.715h3.428v-3.429h-3.427v3.429z',\n ],\n kimi: [\n 'M21.846 0a1.923 1.923 0 110 3.846H20.15a.226.226 0 01-.227-.226V1.923C19.923.861 20.784 0 21.846 0z',\n 'M11.065 11.199l7.257-7.2c.137-.136.06-.41-.116-.41H14.3a.164.164 0 00-.117.051l-7.82 7.756c-.122.12-.302.013-.302-.179V3.82c0-.127-.083-.23-.185-.23H3.186c-.103 0-.186.103-.186.23V19.77c0 .128.083.23.186.23h2.69c.103 0 .186-.102.186-.23v-3.25c0-.069.025-.135.069-.178l2.424-2.406a.158.158 0 01.205-.023l6.484 4.772a7.677 7.677 0 003.453 1.283c.108.012.2-.095.2-.23v-3.06c0-.117-.07-.212-.164-.227a5.028 5.028 0 01-2.027-.807l-5.613-4.064c-.117-.078-.132-.279-.028-.381z',\n ],\n google: [\n 'M23 12.245c0-.905-.075-1.565-.236-2.25h-10.54v4.083h6.186c-.124 1.014-.797 2.542-2.294 3.569l-.021.136 3.332 2.53.23.022C21.779 18.417 23 15.593 23 12.245z',\n 'M12.225 23c3.03 0 5.574-.978 7.433-2.665l-3.542-2.688c-.948.648-2.22 1.1-3.891 1.1a6.745 6.745 0 01-6.386-4.572l-.132.011-3.465 2.628-.045.124C4.043 20.531 7.835 23 12.225 23z',\n 'M5.84 14.175A6.65 6.65 0 015.463 12c0-.758.138-1.491.361-2.175l-.006-.147-3.508-2.67-.115.054A10.831 10.831 0 001 12c0 1.772.436 3.447 1.197 4.938l3.642-2.763z',\n 'M12.225 5.253c2.108 0 3.529.892 4.34 1.638l3.167-3.031C17.787 2.088 15.255 1 12.225 1 7.834 1 4.043 3.469 2.197 7.062l3.63 2.763a6.77 6.77 0 016.398-4.572z',\n ],\n zai: [\n 'M12.105 2L9.927 4.953H.653L2.83 2h9.276zM23.254 19.048L21.078 22h-9.242l2.174-2.952h9.244zM24 2L9.264 22H0L14.736 2H24z',\n ],\n};\n\nconst providerLabels: Record<ModelLogoProvider, string> = {\n qwen: 'Qwen',\n mistral: 'Mistral',\n kimi: 'Kimi',\n google: 'Google',\n zai: 'Z.ai',\n berget: 'Berget AI',\n};\n\nconst categoryIcons: Record<ModelCategory, React.ComponentType<{ className?: string }>> = {\n text: Bot,\n 'speech-to-text': AudioLines,\n embedding: Braces,\n rerank: ArrowDownWideNarrow,\n 'system-one': ScanEye,\n vision: Eye,\n};\n\nconst categoryLabels: Record<ModelCategory, string> = {\n text: 'Model',\n 'speech-to-text': 'Speech-to-text',\n embedding: 'Embedding',\n rerank: 'Reranker',\n 'system-one': 'System One',\n vision: 'Vision',\n};\n\nexport interface ModelLogoProps extends React.SVGAttributes<SVGSVGElement> {\n /**\n * Model family to render a brand mark for. Accepts the `owned_by` values\n * from `GET /v1/models` (e.g. `'moonshotai'`) case-insensitively.\n */\n provider?: string;\n /** Fallback category when `provider` is missing or unknown. */\n category?: ModelCategory;\n /** Size (width and height) in pixels. */\n size?: number;\n}\n\n/**\n * ModelLogo — brand mark for a supported model family, falling back to a\n * category icon for everything else. Renders nothing if no `provider` and\n * no `category` match.\n */\nexport const ModelLogo = React.forwardRef<SVGSVGElement, ModelLogoProps>(\n ({ provider, category, size = 24, className, ...props }, ref) => {\n const resolved = provider ? providerAliases[provider.trim().toLowerCase()] : undefined;\n\n if (resolved === 'berget') {\n return <BergetLogo variant=\"symbol\" size={size} className={cn('shrink-0', className)} />;\n }\n\n if (resolved) {\n return (\n <svg\n ref={ref}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n width={size}\n height={size}\n role=\"img\"\n aria-label={providerLabels[resolved]}\n className={cn('shrink-0', className)}\n {...props}\n >\n <title>{providerLabels[resolved]}</title>\n {providerPaths[resolved].map((d, i) => (\n <path key={i} d={d} />\n ))}\n </svg>\n );\n }\n\n if (category) {\n const Icon = categoryIcons[category];\n return <Icon className={cn('shrink-0', className)} {...props} />;\n }\n\n return null;\n },\n);\nModelLogo.displayName = 'ModelLogo';\n\nexport { categoryLabels };\n"],"mappings":";;;;;;;;AAyBA,MAAM,kBAAqD;CACzD,MAAM;CACN,WAAW;CACX,SAAS;CACT,YAAY;CACZ,MAAM;CACN,QAAQ;CACR,WAAW;CACX,KAAK;CACL,QAAQ;CACR,UAAU;AACZ;;AAGA,MAAM,gBAAwE;CAC5E,MAAM,CACJ,wjDACF;CACA,SAAS,CACP,qMACF;CACA,MAAM,CACJ,uGACA,udACF;CACA,QAAQ;EACN;EACA;EACA;EACA;CACF;CACA,KAAK,CACH,yHACF;AACF;AAEA,MAAM,iBAAoD;CACxD,MAAM;CACN,SAAS;CACT,MAAM;CACN,QAAQ;CACR,KAAK;CACL,QAAQ;AACV;AAEA,MAAM,gBAAoF;CACxF,MAAM;CACN,kBAAkB;CAClB,WAAW;CACX,QAAQ;CACR,cAAc;CACd,QAAQ;AACV;AAEA,MAAM,iBAAgD;CACpD,MAAM;CACN,kBAAkB;CAClB,WAAW;CACX,QAAQ;CACR,cAAc;CACd,QAAQ;AACV;;;;;;AAmBA,MAAa,YAAY,MAAM,YAC5B,EAAE,UAAU,UAAU,OAAO,IAAI,WAAW,GAAG,SAAS,QAAQ;CAC/D,MAAM,WAAW,WAAW,gBAAgB,SAAS,KAAK,CAAC,CAAC,YAAY,KAAK,KAAA;CAE7E,IAAI,aAAa,UACf,OAAO,oBAAC,YAAD;EAAY,SAAQ;EAAe;EAAM,WAAW,GAAG,YAAY,SAAS;CAAI,CAAA;CAGzF,IAAI,UACF,OACE,qBAAC,OAAD;EACO;EACL,SAAQ;EACR,MAAK;EACL,OAAO;EACP,QAAQ;EACR,MAAK;EACL,cAAY,eAAe;EAC3B,WAAW,GAAG,YAAY,SAAS;EACnC,GAAI;EATN,UAAA,CAWE,oBAAC,SAAD,EAAA,UAAQ,eAAe,UAAiB,CAAA,GACvC,cAAc,SAAS,CAAC,KAAK,GAAG,MAC/B,oBAAC,QAAD,EAAiB,EAAI,GAAV,CAAU,CACtB,CACE;;CAIT,IAAI,UAAU;EACZ,MAAM,OAAO,cAAc;EAC3B,OAAO,oBAAC,MAAD;GAAM,WAAW,GAAG,YAAY,SAAS;GAAG,GAAI;EAAQ,CAAA;CACjE;CAEA,OAAO;AACT,CACF;AACA,UAAU,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { ModelCategory, ModelLogo, ModelLogoProps, ModelLogoProvider, categoryLabels } from "./ModelLogo.cjs";
2
+ export { ModelCategory, ModelLogo, ModelLogoProps, ModelLogoProvider, categoryLabels };
@@ -0,0 +1,2 @@
1
+ import { ModelCategory, ModelLogo, ModelLogoProps, ModelLogoProvider, categoryLabels } from "./ModelLogo.mjs";
2
+ export { ModelCategory, ModelLogo, ModelLogoProps, ModelLogoProvider, categoryLabels };
@@ -0,0 +1,65 @@
1
+ "use client";
2
+ const require_utils = require("../../lib/utils.cjs");
3
+ const require_navigation_menu = require("../../primitives/navigation-menu.cjs");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ let class_variance_authority = require("class-variance-authority");
6
+ let lucide_react = require("lucide-react");
7
+ let _base_ui_react_navigation_menu = require("@base-ui/react/navigation-menu");
8
+ //#region src/components/navigation-menu/NavigationMenu.tsx
9
+ function NavigationMenu({ align = "start", className, children, ...props }) {
10
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_navigation_menu.NavigationMenu.Root, {
11
+ "data-slot": "navigation-menu",
12
+ className: require_utils.cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className),
13
+ ...props,
14
+ children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavigationMenuPositioner, { align })]
15
+ });
16
+ }
17
+ const navigationMenuTriggerStyle = (0, class_variance_authority.cva)("group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-berget-surface-02/50 data-popup-open:hover:bg-berget-surface-02 data-open:bg-berget-surface-02/50 data-open:hover:bg-berget-surface-02 data-open:focus:bg-berget-surface-02");
18
+ function NavigationMenuTrigger({ className, children, ...props }) {
19
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_navigation_menu.NavigationMenu.Trigger, {
20
+ "data-slot": "navigation-menu-trigger",
21
+ className: require_utils.cn(navigationMenuTriggerStyle(), "group", className),
22
+ ...props,
23
+ children: [
24
+ children,
25
+ " ",
26
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, {
27
+ className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180",
28
+ "aria-hidden": "true"
29
+ })
30
+ ]
31
+ });
32
+ }
33
+ function NavigationMenuLink({ className, ...props }) {
34
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Link, {
35
+ "data-slot": "navigation-menu-link",
36
+ className: require_utils.cn("flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-berget-xs data-active:bg-berget-surface-02/50 data-active:hover:bg-berget-surface-02 data-active:focus:bg-berget-surface-02 [&_svg:not([class*='size-'])]:size-4", className),
37
+ ...props
38
+ });
39
+ }
40
+ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8, align = "start", alignOffset = 0, ...props }) {
41
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Positioner, {
42
+ side,
43
+ sideOffset,
44
+ align,
45
+ alignOffset,
46
+ className: require_utils.cn("isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", className),
47
+ ...props,
48
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Popup, {
49
+ className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-berget-xs bg-berget-popover text-berget-popover-foreground shadow-berget-lg ring-1 ring-berget-border transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0",
50
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Viewport, { className: "relative size-full overflow-hidden" })
51
+ })
52
+ }) });
53
+ }
54
+ //#endregion
55
+ exports.NavigationMenu = NavigationMenu;
56
+ exports.NavigationMenuContent = require_navigation_menu.NavigationMenuContent;
57
+ exports.NavigationMenuIndicator = require_navigation_menu.NavigationMenuIndicator;
58
+ exports.NavigationMenuItem = require_navigation_menu.NavigationMenuItem;
59
+ exports.NavigationMenuLink = NavigationMenuLink;
60
+ exports.NavigationMenuList = require_navigation_menu.NavigationMenuList;
61
+ exports.NavigationMenuPositioner = NavigationMenuPositioner;
62
+ exports.NavigationMenuTrigger = NavigationMenuTrigger;
63
+ exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
64
+
65
+ //# sourceMappingURL=NavigationMenu.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationMenu.cjs","names":["NavigationMenuPrimitive","cn","cva","ChevronDown"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"sourcesContent":["'use client';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport {\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuIndicator,\n} from '../../primitives/navigation-menu';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n 'group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-berget-surface-02/50 data-popup-open:hover:bg-berget-surface-02 data-open:bg-berget-surface-02/50 data-open:hover:bg-berget-surface-02 data-open:focus:bg-berget-surface-02',\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-berget-xs data-active:bg-berget-surface-02/50 data-active:hover:bg-berget-surface-02 data-active:focus:bg-berget-surface-02 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Positioner (portal + popup + viewport) */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-berget-xs bg-berget-popover text-berget-popover-foreground shadow-berget-lg ring-1 ring-berget-border transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuPositioner,\n};\n"],"mappings":";;;;;;;;AAkBA,SAAS,eAAe,EACtB,QAAQ,SACR,WACA,UACA,GAAG,SAC4F;CAC/F,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,+BAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GACT,oFACA,SACF;EACA,GAAI;EANN,UAAA,CAQG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,0BAAD,EAAiC,MAAQ,CAAA,CACb;;AAElC;AAMA,MAAM,8BAAA,GAA6BC,yBAAAA,IAAAA,CACjC,shBACF;AAEA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SACqC;CACxC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACF,+BAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;EAHN,UAAA;GAKG;GAAU;GACX,iBAAA,GAAA,kBAAA,IAAA,CAACE,aAAAA,aAAD;IACE,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;AAMA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAA6C;CACvF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACH,+BAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GACT,0aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,yBAAyB,EAChC,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,GAAG,SACwC;CAC3C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,QAAzB,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,YAAzB;EACQ;EACM;EACL;EACM;EACb,WAAWC,cAAAA,GACT,sTACA,SACF;EACA,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,OAAzB;GAA+B,WAAU;GACvC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,UAAzB,EAAkC,WAAU,qCAAsC,CAAA;EACrD,CAAA;CACG,CAAA,EACN,CAAA;AAEpC"}
@@ -0,0 +1,11 @@
1
+ import { NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuList } from "../../primitives/navigation-menu.cjs";
2
+ import { NavigationMenu } from "@base-ui/react/navigation-menu";
3
+ //#region src/components/navigation-menu/NavigationMenu.d.ts
4
+ declare function NavigationMenu$1({ align, className, children, ...props }: NavigationMenu.Root.Props & Pick<NavigationMenu.Positioner.Props, 'align'>): import("react/jsx-runtime").JSX.Element;
5
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare function NavigationMenuTrigger({ className, children, ...props }: NavigationMenu.Trigger.Props): import("react/jsx-runtime").JSX.Element;
7
+ declare function NavigationMenuLink({ className, ...props }: NavigationMenu.Link.Props): import("react/jsx-runtime").JSX.Element;
8
+ declare function NavigationMenuPositioner({ className, side, sideOffset, align, alignOffset, ...props }: NavigationMenu.Positioner.Props): import("react/jsx-runtime").JSX.Element;
9
+ //#endregion
10
+ export { NavigationMenu$1 as NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, navigationMenuTriggerStyle };
11
+ //# sourceMappingURL=NavigationMenu.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationMenu.d.cts","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"mappings":";;;iBAkBSA,mBACP,OACA,WACA,aACG,SACFC,eAAwB,KAAK,QAAQ,KAAKA,eAAwB,WAAW,8CAAe,IAAA;cAoBzF,6BAA0B,iDAAA;iBAIvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAoB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBAiB9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
@@ -0,0 +1,11 @@
1
+ import { NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuList } from "../../primitives/navigation-menu.mjs";
2
+ import { NavigationMenu } from "@base-ui/react/navigation-menu";
3
+ //#region src/components/navigation-menu/NavigationMenu.d.ts
4
+ declare function NavigationMenu$1({ align, className, children, ...props }: NavigationMenu.Root.Props & Pick<NavigationMenu.Positioner.Props, 'align'>): import("react/jsx-runtime").JSX.Element;
5
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
6
+ declare function NavigationMenuTrigger({ className, children, ...props }: NavigationMenu.Trigger.Props): import("react/jsx-runtime").JSX.Element;
7
+ declare function NavigationMenuLink({ className, ...props }: NavigationMenu.Link.Props): import("react/jsx-runtime").JSX.Element;
8
+ declare function NavigationMenuPositioner({ className, side, sideOffset, align, alignOffset, ...props }: NavigationMenu.Positioner.Props): import("react/jsx-runtime").JSX.Element;
9
+ //#endregion
10
+ export { NavigationMenu$1 as NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, navigationMenuTriggerStyle };
11
+ //# sourceMappingURL=NavigationMenu.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NavigationMenu.d.mts","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"mappings":";;;iBAkBSA,mBACP,OACA,WACA,aACG,SACFC,eAAwB,KAAK,QAAQ,KAAKA,eAAwB,WAAW,8CAAe,IAAA;cAoBzF,6BAA0B,iDAAA;iBAIvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAoB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBAiB9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}