@bergetai/ui 0.15.0 → 0.16.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/dist/components/alert/Alert.d.cts +1 -1
  2. package/dist/components/alert/Alert.d.mts +1 -1
  3. package/dist/components/alert-dialog/AlertDialog.cjs +26 -5
  4. package/dist/components/alert-dialog/AlertDialog.cjs.map +1 -1
  5. package/dist/components/alert-dialog/AlertDialog.d.cts.map +1 -1
  6. package/dist/components/alert-dialog/AlertDialog.d.mts.map +1 -1
  7. package/dist/components/alert-dialog/AlertDialog.mjs +26 -5
  8. package/dist/components/alert-dialog/AlertDialog.mjs.map +1 -1
  9. package/dist/components/badge/Badge.cjs +12 -3
  10. package/dist/components/badge/Badge.cjs.map +1 -1
  11. package/dist/components/badge/Badge.d.cts +1 -1
  12. package/dist/components/badge/Badge.d.cts.map +1 -1
  13. package/dist/components/badge/Badge.d.mts +1 -1
  14. package/dist/components/badge/Badge.d.mts.map +1 -1
  15. package/dist/components/badge/Badge.mjs +12 -3
  16. package/dist/components/badge/Badge.mjs.map +1 -1
  17. package/dist/components/box/Box.cjs +3 -1
  18. package/dist/components/box/Box.cjs.map +1 -1
  19. package/dist/components/box/Box.d.cts +2 -2
  20. package/dist/components/box/Box.d.mts +2 -2
  21. package/dist/components/box/Box.mjs +3 -1
  22. package/dist/components/box/Box.mjs.map +1 -1
  23. package/dist/components/bubble/index.d.cts +2 -0
  24. package/dist/components/bubble/index.d.mts +2 -0
  25. package/dist/components/button/Button.cjs +40 -6
  26. package/dist/components/button/Button.cjs.map +1 -1
  27. package/dist/components/button/Button.d.cts.map +1 -1
  28. package/dist/components/button/Button.d.mts.map +1 -1
  29. package/dist/components/button/Button.mjs +40 -6
  30. package/dist/components/button/Button.mjs.map +1 -1
  31. package/dist/components/card/Card.cjs +2 -2
  32. package/dist/components/card/Card.cjs.map +1 -1
  33. package/dist/components/card/Card.mjs +2 -2
  34. package/dist/components/card/Card.mjs.map +1 -1
  35. package/dist/components/checkbox/Checkbox.cjs +28 -11
  36. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  37. package/dist/components/checkbox/Checkbox.d.cts.map +1 -1
  38. package/dist/components/checkbox/Checkbox.d.mts.map +1 -1
  39. package/dist/components/checkbox/Checkbox.mjs +28 -11
  40. package/dist/components/checkbox/Checkbox.mjs.map +1 -1
  41. package/dist/components/code-block/CodeBlock.cjs +10 -7
  42. package/dist/components/code-block/CodeBlock.cjs.map +1 -1
  43. package/dist/components/code-block/CodeBlock.mjs +10 -7
  44. package/dist/components/code-block/CodeBlock.mjs.map +1 -1
  45. package/dist/components/container/Container.cjs +16 -5
  46. package/dist/components/container/Container.cjs.map +1 -1
  47. package/dist/components/container/Container.d.cts.map +1 -1
  48. package/dist/components/container/Container.d.mts.map +1 -1
  49. package/dist/components/container/Container.mjs +16 -5
  50. package/dist/components/container/Container.mjs.map +1 -1
  51. package/dist/components/country-select/CountrySelect.cjs +22 -13
  52. package/dist/components/country-select/CountrySelect.cjs.map +1 -1
  53. package/dist/components/country-select/CountrySelect.mjs +22 -13
  54. package/dist/components/country-select/CountrySelect.mjs.map +1 -1
  55. package/dist/components/dialog/Dialog.cjs +23 -5
  56. package/dist/components/dialog/Dialog.cjs.map +1 -1
  57. package/dist/components/dialog/Dialog.d.cts.map +1 -1
  58. package/dist/components/dialog/Dialog.d.mts.map +1 -1
  59. package/dist/components/dialog/Dialog.mjs +23 -5
  60. package/dist/components/dialog/Dialog.mjs.map +1 -1
  61. package/dist/components/divider/Divider.cjs +5 -5
  62. package/dist/components/divider/Divider.cjs.map +1 -1
  63. package/dist/components/divider/Divider.mjs +5 -5
  64. package/dist/components/divider/Divider.mjs.map +1 -1
  65. package/dist/components/dropdown-menu/DropdownMenu.cjs +8 -2
  66. package/dist/components/dropdown-menu/DropdownMenu.cjs.map +1 -1
  67. package/dist/components/dropdown-menu/DropdownMenu.d.cts +2 -2
  68. package/dist/components/dropdown-menu/DropdownMenu.d.cts.map +1 -1
  69. package/dist/components/dropdown-menu/DropdownMenu.d.mts +2 -2
  70. package/dist/components/dropdown-menu/DropdownMenu.d.mts.map +1 -1
  71. package/dist/components/dropdown-menu/DropdownMenu.mjs +8 -2
  72. package/dist/components/dropdown-menu/DropdownMenu.mjs.map +1 -1
  73. package/dist/components/empty/Empty.cjs +4 -1
  74. package/dist/components/empty/Empty.cjs.map +1 -1
  75. package/dist/components/empty/Empty.d.cts.map +1 -1
  76. package/dist/components/empty/Empty.d.mts.map +1 -1
  77. package/dist/components/empty/Empty.mjs +4 -1
  78. package/dist/components/empty/Empty.mjs.map +1 -1
  79. package/dist/components/grid/Grid.cjs +11 -1
  80. package/dist/components/grid/Grid.cjs.map +1 -1
  81. package/dist/components/grid/Grid.d.cts +2 -2
  82. package/dist/components/grid/Grid.d.mts +2 -2
  83. package/dist/components/grid/Grid.mjs +11 -1
  84. package/dist/components/grid/Grid.mjs.map +1 -1
  85. package/dist/components/input-group/InputGroup.cjs +50 -0
  86. package/dist/components/input-group/InputGroup.cjs.map +1 -0
  87. package/dist/components/input-group/InputGroup.d.cts +33 -0
  88. package/dist/components/input-group/InputGroup.d.cts.map +1 -0
  89. package/dist/components/input-group/InputGroup.d.mts +33 -0
  90. package/dist/components/input-group/InputGroup.d.mts.map +1 -0
  91. package/dist/components/input-group/InputGroup.mjs +45 -0
  92. package/dist/components/input-group/InputGroup.mjs.map +1 -0
  93. package/dist/components/input-group/index.d.cts +3 -0
  94. package/dist/components/input-group/index.d.mts +3 -0
  95. package/dist/components/item/Item.cjs +4 -1
  96. package/dist/components/item/Item.cjs.map +1 -1
  97. package/dist/components/item/Item.d.cts.map +1 -1
  98. package/dist/components/item/Item.d.mts.map +1 -1
  99. package/dist/components/item/Item.mjs +4 -1
  100. package/dist/components/item/Item.mjs.map +1 -1
  101. package/dist/components/link/Link.cjs +32 -8
  102. package/dist/components/link/Link.cjs.map +1 -1
  103. package/dist/components/link/Link.d.cts +1 -1
  104. package/dist/components/link/Link.d.cts.map +1 -1
  105. package/dist/components/link/Link.d.mts +1 -1
  106. package/dist/components/link/Link.d.mts.map +1 -1
  107. package/dist/components/link/Link.mjs +32 -8
  108. package/dist/components/link/Link.mjs.map +1 -1
  109. package/dist/components/list/List.cjs +15 -6
  110. package/dist/components/list/List.cjs.map +1 -1
  111. package/dist/components/list/List.d.cts.map +1 -1
  112. package/dist/components/list/List.d.mts.map +1 -1
  113. package/dist/components/list/List.mjs +15 -6
  114. package/dist/components/list/List.mjs.map +1 -1
  115. package/dist/components/message/index.d.cts +2 -0
  116. package/dist/components/message/index.d.mts +2 -0
  117. package/dist/components/message-scroller/index.d.cts +2 -0
  118. package/dist/components/message-scroller/index.d.mts +2 -0
  119. package/dist/components/model-card/ModelCard.cjs +12 -9
  120. package/dist/components/model-card/ModelCard.cjs.map +1 -1
  121. package/dist/components/model-card/ModelCard.mjs +12 -9
  122. package/dist/components/model-card/ModelCard.mjs.map +1 -1
  123. package/dist/components/navigation-menu/NavigationMenu.cjs +43 -7
  124. package/dist/components/navigation-menu/NavigationMenu.cjs.map +1 -1
  125. package/dist/components/navigation-menu/NavigationMenu.d.cts.map +1 -1
  126. package/dist/components/navigation-menu/NavigationMenu.d.mts.map +1 -1
  127. package/dist/components/navigation-menu/NavigationMenu.mjs +43 -7
  128. package/dist/components/navigation-menu/NavigationMenu.mjs.map +1 -1
  129. package/dist/components/progress/Progress.cjs +4 -1
  130. package/dist/components/progress/Progress.cjs.map +1 -1
  131. package/dist/components/progress/Progress.mjs +4 -1
  132. package/dist/components/progress/Progress.mjs.map +1 -1
  133. package/dist/components/search-input/SearchInput.cjs +1 -1
  134. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  135. package/dist/components/search-input/SearchInput.mjs +1 -1
  136. package/dist/components/search-input/SearchInput.mjs.map +1 -1
  137. package/dist/components/sidebar/Sidebar.cjs +15 -6
  138. package/dist/components/sidebar/Sidebar.cjs.map +1 -1
  139. package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
  140. package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
  141. package/dist/components/sidebar/Sidebar.mjs +15 -6
  142. package/dist/components/sidebar/Sidebar.mjs.map +1 -1
  143. package/dist/components/slider/Slider.cjs +23 -0
  144. package/dist/components/slider/Slider.cjs.map +1 -0
  145. package/dist/components/slider/Slider.d.cts +20 -0
  146. package/dist/components/slider/Slider.d.cts.map +1 -0
  147. package/dist/components/slider/Slider.d.mts +20 -0
  148. package/dist/components/slider/Slider.d.mts.map +1 -0
  149. package/dist/components/slider/Slider.mjs +23 -0
  150. package/dist/components/slider/Slider.mjs.map +1 -0
  151. package/dist/components/slider/index.d.cts +2 -0
  152. package/dist/components/slider/index.d.mts +2 -0
  153. package/dist/components/switch/Switch.cjs +42 -11
  154. package/dist/components/switch/Switch.cjs.map +1 -1
  155. package/dist/components/switch/Switch.d.cts.map +1 -1
  156. package/dist/components/switch/Switch.d.mts.map +1 -1
  157. package/dist/components/switch/Switch.mjs +42 -11
  158. package/dist/components/switch/Switch.mjs.map +1 -1
  159. package/dist/components/table/Table.cjs +22 -5
  160. package/dist/components/table/Table.cjs.map +1 -1
  161. package/dist/components/table/Table.d.cts.map +1 -1
  162. package/dist/components/table/Table.d.mts.map +1 -1
  163. package/dist/components/table/Table.mjs +22 -5
  164. package/dist/components/table/Table.mjs.map +1 -1
  165. package/dist/components/theme-provider/ThemeToggle.cjs +9 -3
  166. package/dist/components/theme-provider/ThemeToggle.cjs.map +1 -1
  167. package/dist/components/theme-provider/ThemeToggle.mjs +9 -3
  168. package/dist/components/theme-provider/ThemeToggle.mjs.map +1 -1
  169. package/dist/components/tooltip/Tooltip.d.cts +1 -1
  170. package/dist/components/tooltip/Tooltip.d.mts +1 -1
  171. package/dist/components/typography/Typography.cjs +19 -13
  172. package/dist/components/typography/Typography.cjs.map +1 -1
  173. package/dist/components/typography/Typography.d.cts.map +1 -1
  174. package/dist/components/typography/Typography.d.mts.map +1 -1
  175. package/dist/components/typography/Typography.mjs +19 -13
  176. package/dist/components/typography/Typography.mjs.map +1 -1
  177. package/dist/components/window-frame/WindowFrame.cjs +18 -8
  178. package/dist/components/window-frame/WindowFrame.cjs.map +1 -1
  179. package/dist/components/window-frame/WindowFrame.mjs +18 -8
  180. package/dist/components/window-frame/WindowFrame.mjs.map +1 -1
  181. package/dist/index.cjs +49 -1
  182. package/dist/index.d.cts +12 -1
  183. package/dist/index.d.mts +12 -1
  184. package/dist/index.mjs +8 -2
  185. package/dist/primitives/bubble.cjs +80 -0
  186. package/dist/primitives/bubble.cjs.map +1 -0
  187. package/dist/primitives/bubble.d.cts +19 -0
  188. package/dist/primitives/bubble.d.cts.map +1 -0
  189. package/dist/primitives/bubble.d.mts +19 -0
  190. package/dist/primitives/bubble.d.mts.map +1 -0
  191. package/dist/primitives/bubble.mjs +75 -0
  192. package/dist/primitives/bubble.mjs.map +1 -0
  193. package/dist/primitives/button.cjs +1 -2
  194. package/dist/primitives/button.cjs.map +1 -1
  195. package/dist/primitives/button.d.cts +2 -2
  196. package/dist/primitives/button.d.cts.map +1 -1
  197. package/dist/primitives/button.d.mts +2 -2
  198. package/dist/primitives/button.d.mts.map +1 -1
  199. package/dist/primitives/button.mjs +1 -2
  200. package/dist/primitives/button.mjs.map +1 -1
  201. package/dist/primitives/field.d.cts +1 -1
  202. package/dist/primitives/field.d.mts +1 -1
  203. package/dist/primitives/input-group.cjs +37 -1
  204. package/dist/primitives/input-group.cjs.map +1 -1
  205. package/dist/primitives/input-group.d.cts +21 -0
  206. package/dist/primitives/input-group.d.cts.map +1 -0
  207. package/dist/primitives/input-group.d.mts +21 -0
  208. package/dist/primitives/input-group.d.mts.map +1 -0
  209. package/dist/primitives/input-group.mjs +34 -2
  210. package/dist/primitives/input-group.mjs.map +1 -1
  211. package/dist/primitives/item.d.cts +1 -1
  212. package/dist/primitives/item.d.mts +1 -1
  213. package/dist/primitives/message-scroller.cjs +69 -0
  214. package/dist/primitives/message-scroller.cjs.map +1 -0
  215. package/dist/primitives/message-scroller.d.cts +13 -0
  216. package/dist/primitives/message-scroller.d.cts.map +1 -0
  217. package/dist/primitives/message-scroller.d.mts +13 -0
  218. package/dist/primitives/message-scroller.d.mts.map +1 -0
  219. package/dist/primitives/message-scroller.mjs +62 -0
  220. package/dist/primitives/message-scroller.mjs.map +1 -0
  221. package/dist/primitives/message.cjs +58 -0
  222. package/dist/primitives/message.cjs.map +1 -0
  223. package/dist/primitives/message.d.cts +13 -0
  224. package/dist/primitives/message.d.cts.map +1 -0
  225. package/dist/primitives/message.d.mts +13 -0
  226. package/dist/primitives/message.d.mts.map +1 -0
  227. package/dist/primitives/message.mjs +51 -0
  228. package/dist/primitives/message.mjs.map +1 -0
  229. package/dist/primitives/sidebar.cjs +1 -1
  230. package/dist/primitives/sidebar.mjs +1 -1
  231. package/dist/primitives/slider.cjs +35 -0
  232. package/dist/primitives/slider.cjs.map +1 -0
  233. package/dist/primitives/slider.d.cts +6 -0
  234. package/dist/primitives/slider.d.cts.map +1 -0
  235. package/dist/primitives/slider.d.mts +6 -0
  236. package/dist/primitives/slider.d.mts.map +1 -0
  237. package/dist/primitives/slider.mjs +35 -0
  238. package/dist/primitives/slider.mjs.map +1 -0
  239. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"List.cjs","names":["React","cn","Divider","Icon","Check","Typography"],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { Divider } from '../divider';\nimport { Typography } from '../typography';\nimport { Check } from 'lucide-react';\n\nexport interface ListProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n ({ className, children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {childrenArray.map((child, index) => (\n <React.Fragment key={index}>\n {child}\n {index < childrenArray.length - 1 && <Divider variant=\"subtle\" />}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\nList.displayName = 'List';\n\nexport interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n children: React.ReactNode;\n interactive?: boolean;\n}\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n ({ className, icon, children, interactive = true, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-4 px-4 py-3 sm:px-6 sm:py-4',\n interactive && 'transition-all duration-200 hover:bg-berget-surface-hover cursor-pointer',\n className,\n )}\n {...props}\n >\n {icon && <div className=\"flex-shrink-0 flex items-center justify-center\">{icon}</div>}\n <div className=\"flex-1 min-w-0\">{children}</div>\n </div>\n ),\n);\nListItem.displayName = 'ListItem';\n\nexport interface ListHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst ListHeader = React.forwardRef<HTMLDivElement, ListHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('px-4 py-2 sm:px-6 sm:py-3 text-sm text-muted-foreground', className)}\n {...props}\n >\n {children}\n </div>\n ),\n);\nListHeader.displayName = 'ListHeader';\n\nexport interface FeatureListProps extends React.HTMLAttributes<HTMLUListElement> {\n items: string[];\n variant?: 'bullet' | 'checkmark';\n}\n\nconst FeatureList = React.forwardRef<HTMLUListElement, FeatureListProps>(\n ({ items, variant = 'bullet', className, ...props }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col gap-fluid-md', className)} {...props}>\n {items.map((item, index) => (\n <li key={index} className=\"flex items-start gap-fluid-md\">\n {variant === 'bullet' ? (\n <span className=\"w-1.5 h-1.5 rounded-full bg-berget-icon-muted flex-shrink-0 mt-2\" />\n ) : (\n <div className=\"flex-shrink-0 mt-0.5\">\n <Icon icon={Check} size={24} className=\"text-berget-logo-light\" />\n </div>\n )}\n <Typography variant=\"body\" color=\"muted\">\n {item}\n </Typography>\n </li>\n ))}\n </ul>\n );\n },\n);\nFeatureList.displayName = 'FeatureList';\n\nexport { List, ListItem, ListHeader, FeatureList };\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,OAAOA,MAAM,YAChB,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC1C,MAAM,gBAAgBA,MAAM,SAAS,QAAQ,QAAQ;CACrD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAU;EAAK,WAAWC,cAAAA,GAAG,iBAAiB,SAAS;EAAG,GAAI;EAC3D,UAAA,cAAc,KAAK,OAAO,UACzB,iBAAA,GAAA,kBAAA,KAAA,CAACD,MAAM,UAAP,EAAA,UAAA,CACG,OACA,QAAQ,cAAc,SAAS,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACE,gBAAAA,SAAD,EAAS,SAAQ,SAAU,CAAA,CAClD,EAAA,GAHK,KAGL,CACjB;CACE,CAAA;AAET,CACF;AACA,KAAK,cAAc;AAQnB,MAAM,WAAWF,MAAM,YACpB,EAAE,WAAW,MAAM,UAAU,cAAc,MAAM,GAAG,SAAS,QAC5D,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;CACO;CACL,WAAWC,cAAAA,GACT,qDACA,eAAe,4EACf,SACF;CACA,GAAI;CAPN,UAAA,CASG,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAkD,UAAA;CAAU,CAAA,GACpF,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAkB;CAAc,CAAA,CAC5C;AAET,CAAA,CAAA;AACA,SAAS,cAAc;AAMvB,MAAM,aAAaD,MAAM,YACtB,EAAE,WAAW,UAAU,GAAG,SAAS,QAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;CACO;CACL,WAAWC,cAAAA,GAAG,2DAA2D,SAAS;CAClF,GAAI;CAEH;AACE,CAAA,CAET;AACA,WAAW,cAAc;AAOzB,MAAM,cAAcD,MAAM,YACvB,EAAE,OAAO,UAAU,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC3D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EAAS;EAAK,WAAWC,cAAAA,GAAG,8BAA8B,SAAS;EAAG,GAAI;EACvE,UAAA,MAAM,KAAK,MAAM,UAChB,iBAAA,GAAA,kBAAA,KAAA,CAAC,MAAD;GAAgB,WAAU;GAA1B,UAAA,CACG,YAAY,WACX,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EAAM,WAAU,mEAAoE,CAAA,IAEpF,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACb,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACE,aAAAA,MAAD;KAAM,MAAMC,aAAAA;KAAO,MAAM;KAAI,WAAU;IAA0B,CAAA;GAC9D,CAAA,GAEP,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;IAAY,SAAQ;IAAO,OAAM;IAC9B,UAAA;GACS,CAAA,CACV;EAXK,GAAA,KAWL,CACL;CACC,CAAA;AAER,CACF;AACA,YAAY,cAAc"}
1
+ {"version":3,"file":"List.cjs","names":["React","cn","Divider","Icon","Check","Typography"],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { Divider } from '../divider';\nimport { Typography } from '../typography';\nimport { Check } from 'lucide-react';\n\nexport interface ListProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n ({ className, children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {childrenArray.map((child, index) => (\n <React.Fragment key={index}>\n {child}\n {index < childrenArray.length - 1 && <Divider variant=\"subtle\" />}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\nList.displayName = 'List';\n\nexport interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n children: React.ReactNode;\n interactive?: boolean;\n}\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n ({ className, icon, children, interactive = true, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n `\n flex items-center gap-4 px-4 py-3\n sm:px-6 sm:py-4\n `,\n interactive &&\n `\n cursor-pointer transition-all duration-200\n hover:bg-berget-surface-hover\n `,\n className,\n )}\n {...props}\n >\n {icon && <div className=\"flex shrink-0 items-center justify-center\">{icon}</div>}\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n ),\n);\nListItem.displayName = 'ListItem';\n\nexport interface ListHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst ListHeader = React.forwardRef<HTMLDivElement, ListHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n `\n px-4 py-2 text-sm text-muted-foreground\n sm:px-6 sm:py-3\n `,\n className,\n )}\n {...props}\n >\n {children}\n </div>\n ),\n);\nListHeader.displayName = 'ListHeader';\n\nexport interface FeatureListProps extends React.HTMLAttributes<HTMLUListElement> {\n items: string[];\n variant?: 'bullet' | 'checkmark';\n}\n\nconst FeatureList = React.forwardRef<HTMLUListElement, FeatureListProps>(\n ({ items, variant = 'bullet', className, ...props }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col gap-fluid-md', className)} {...props}>\n {items.map((item, index) => (\n <li key={index} className=\"flex items-start gap-fluid-md\">\n {variant === 'bullet' ? (\n <span\n className=\"\n mt-2 size-1.5 shrink-0 rounded-full bg-berget-icon-muted\n \"\n />\n ) : (\n <div className=\"mt-0.5 shrink-0\">\n <Icon icon={Check} size={24} className=\"text-berget-logo-light\" />\n </div>\n )}\n <Typography variant=\"body\" color=\"muted\">\n {item}\n </Typography>\n </li>\n ))}\n </ul>\n );\n },\n);\nFeatureList.displayName = 'FeatureList';\n\nexport { List, ListItem, ListHeader, FeatureList };\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,OAAOA,MAAM,YAChB,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC1C,MAAM,gBAAgBA,MAAM,SAAS,QAAQ,QAAQ;CACrD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAU;EAAK,WAAWC,cAAAA,GAAG,iBAAiB,SAAS;EAAG,GAAI;EAC3D,UAAA,cAAc,KAAK,OAAO,UACzB,iBAAA,GAAA,kBAAA,KAAA,CAACD,MAAM,UAAP,EAAA,UAAA,CACG,OACA,QAAQ,cAAc,SAAS,KAAK,iBAAA,GAAA,kBAAA,IAAA,CAACE,gBAAAA,SAAD,EAAS,SAAQ,SAAU,CAAA,CAClD,EAAA,GAHK,KAGL,CACjB;CACE,CAAA;AAET,CACF;AACA,KAAK,cAAc;AAQnB,MAAM,WAAWF,MAAM,YACpB,EAAE,WAAW,MAAM,UAAU,cAAc,MAAM,GAAG,SAAS,QAC5D,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;CACO;CACL,WAAWC,cAAAA,GACT;;;WAIA,eACE;;;aAIF,SACF;CACA,GAAI;CAdN,UAAA,CAgBG,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAA6C,UAAA;CAAU,CAAA,GAC/E,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,WAAU;EAAkB;CAAc,CAAA,CAC5C;AAET,CAAA,CAAA;AACA,SAAS,cAAc;AAMvB,MAAM,aAAaD,MAAM,YACtB,EAAE,WAAW,UAAU,GAAG,SAAS,QAClC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;CACO;CACL,WAAWC,cAAAA,GACT;;;WAIA,SACF;CACA,GAAI;CAEH;AACE,CAAA,CAET;AACA,WAAW,cAAc;AAOzB,MAAM,cAAcD,MAAM,YACvB,EAAE,OAAO,UAAU,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC3D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,MAAD;EAAS;EAAK,WAAWC,cAAAA,GAAG,8BAA8B,SAAS;EAAG,GAAI;EACvE,UAAA,MAAM,KAAK,MAAM,UAChB,iBAAA,GAAA,kBAAA,KAAA,CAAC,MAAD;GAAgB,WAAU;GAA1B,UAAA,CACG,YAAY,WACX,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD,EACE,WAAU,iGAGX,CAAA,IAED,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACb,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACE,aAAAA,MAAD;KAAM,MAAMC,aAAAA;KAAO,MAAM;KAAI,WAAU;IAA0B,CAAA;GAC9D,CAAA,GAEP,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;IAAY,SAAQ;IAAO,OAAM;IAC9B,UAAA;GACS,CAAA,CACV;EAfK,GAAA,KAeL,CACL;CACC,CAAA;AAER,CACF;AACA,YAAY,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.cts","names":[],"sources":["../../../src/components/list/List.tsx"],"mappings":";;iBASiB,kBAAkB,MAAM,eAAe;EACtD,UAAU,MAAM;;cAGZ,MAAI,MAAA,0BAAA,YAAA,MAAA,cAAA;iBAiBO,sBAAsB,MAAM,eAAe;EAC1D,OAAO,MAAM;EACb,UAAU,MAAM;EAChB;;cAGI,UAAQ,MAAA,0BAAA,gBAAA,MAAA,cAAA;iBAkBG,wBAAwB,MAAM,eAAe;EAC5D,UAAU,MAAM;;cAGZ,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA;iBAaC,yBAAyB,MAAM,eAAe;EAC7D;EACA;;cAGI,aAAW,MAAA,0BAAA,mBAAA,MAAA,cAAA"}
1
+ {"version":3,"file":"List.d.cts","names":[],"sources":["../../../src/components/list/List.tsx"],"mappings":";;iBASiB,kBAAkB,MAAM,eAAe;EACtD,UAAU,MAAM;;cAGZ,MAAI,MAAA,0BAAA,YAAA,MAAA,cAAA;iBAiBO,sBAAsB,MAAM,eAAe;EAC1D,OAAO,MAAM;EACb,UAAU,MAAM;EAChB;;cAGI,UAAQ,MAAA,0BAAA,gBAAA,MAAA,cAAA;iBAyBG,wBAAwB,MAAM,eAAe;EAC5D,UAAU,MAAM;;cAGZ,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA;iBAmBC,yBAAyB,MAAM,eAAe;EAC7D;EACA;;cAGI,aAAW,MAAA,0BAAA,mBAAA,MAAA,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"List.d.mts","names":[],"sources":["../../../src/components/list/List.tsx"],"mappings":";;iBASiB,kBAAkB,MAAM,eAAe;EACtD,UAAU,MAAM;;cAGZ,MAAI,MAAA,0BAAA,YAAA,MAAA,cAAA;iBAiBO,sBAAsB,MAAM,eAAe;EAC1D,OAAO,MAAM;EACb,UAAU,MAAM;EAChB;;cAGI,UAAQ,MAAA,0BAAA,gBAAA,MAAA,cAAA;iBAkBG,wBAAwB,MAAM,eAAe;EAC5D,UAAU,MAAM;;cAGZ,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA;iBAaC,yBAAyB,MAAM,eAAe;EAC7D;EACA;;cAGI,aAAW,MAAA,0BAAA,mBAAA,MAAA,cAAA"}
1
+ {"version":3,"file":"List.d.mts","names":[],"sources":["../../../src/components/list/List.tsx"],"mappings":";;iBASiB,kBAAkB,MAAM,eAAe;EACtD,UAAU,MAAM;;cAGZ,MAAI,MAAA,0BAAA,YAAA,MAAA,cAAA;iBAiBO,sBAAsB,MAAM,eAAe;EAC1D,OAAO,MAAM;EACb,UAAU,MAAM;EAChB;;cAGI,UAAQ,MAAA,0BAAA,gBAAA,MAAA,cAAA;iBAyBG,wBAAwB,MAAM,eAAe;EAC5D,UAAU,MAAM;;cAGZ,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA;iBAmBC,yBAAyB,MAAM,eAAe;EAC7D;EACA;;cAGI,aAAW,MAAA,0BAAA,mBAAA,MAAA,cAAA"}
@@ -19,20 +19,29 @@ const List = React.forwardRef(({ className, children, ...props }, ref) => {
19
19
  List.displayName = "List";
20
20
  const ListItem = React.forwardRef(({ className, icon, children, interactive = true, ...props }, ref) => /* @__PURE__ */ jsxs("div", {
21
21
  ref,
22
- className: cn("flex items-center gap-4 px-4 py-3 sm:px-6 sm:py-4", interactive && "transition-all duration-200 hover:bg-berget-surface-hover cursor-pointer", className),
22
+ className: cn(`
23
+ flex items-center gap-4 px-4 py-3
24
+ sm:px-6 sm:py-4
25
+ `, interactive && `
26
+ cursor-pointer transition-all duration-200
27
+ hover:bg-berget-surface-hover
28
+ `, className),
23
29
  ...props,
24
30
  children: [icon && /* @__PURE__ */ jsx("div", {
25
- className: "flex-shrink-0 flex items-center justify-center",
31
+ className: "flex shrink-0 items-center justify-center",
26
32
  children: icon
27
33
  }), /* @__PURE__ */ jsx("div", {
28
- className: "flex-1 min-w-0",
34
+ className: "min-w-0 flex-1",
29
35
  children
30
36
  })]
31
37
  }));
32
38
  ListItem.displayName = "ListItem";
33
39
  const ListHeader = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx("div", {
34
40
  ref,
35
- className: cn("px-4 py-2 sm:px-6 sm:py-3 text-sm text-muted-foreground", className),
41
+ className: cn(`
42
+ px-4 py-2 text-sm text-muted-foreground
43
+ sm:px-6 sm:py-3
44
+ `, className),
36
45
  ...props,
37
46
  children
38
47
  }));
@@ -44,8 +53,8 @@ const FeatureList = React.forwardRef(({ items, variant = "bullet", className, ..
44
53
  ...props,
45
54
  children: items.map((item, index) => /* @__PURE__ */ jsxs("li", {
46
55
  className: "flex items-start gap-fluid-md",
47
- children: [variant === "bullet" ? /* @__PURE__ */ jsx("span", { className: "w-1.5 h-1.5 rounded-full bg-berget-icon-muted flex-shrink-0 mt-2" }) : /* @__PURE__ */ jsx("div", {
48
- className: "flex-shrink-0 mt-0.5",
56
+ children: [variant === "bullet" ? /* @__PURE__ */ jsx("span", { className: "\n mt-2 size-1.5 shrink-0 rounded-full bg-berget-icon-muted\n " }) : /* @__PURE__ */ jsx("div", {
57
+ className: "mt-0.5 shrink-0",
49
58
  children: /* @__PURE__ */ jsx(Icon, {
50
59
  icon: Check,
51
60
  size: 24,
@@ -1 +1 @@
1
- {"version":3,"file":"List.mjs","names":[],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { Divider } from '../divider';\nimport { Typography } from '../typography';\nimport { Check } from 'lucide-react';\n\nexport interface ListProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n ({ className, children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {childrenArray.map((child, index) => (\n <React.Fragment key={index}>\n {child}\n {index < childrenArray.length - 1 && <Divider variant=\"subtle\" />}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\nList.displayName = 'List';\n\nexport interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n children: React.ReactNode;\n interactive?: boolean;\n}\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n ({ className, icon, children, interactive = true, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-4 px-4 py-3 sm:px-6 sm:py-4',\n interactive && 'transition-all duration-200 hover:bg-berget-surface-hover cursor-pointer',\n className,\n )}\n {...props}\n >\n {icon && <div className=\"flex-shrink-0 flex items-center justify-center\">{icon}</div>}\n <div className=\"flex-1 min-w-0\">{children}</div>\n </div>\n ),\n);\nListItem.displayName = 'ListItem';\n\nexport interface ListHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst ListHeader = React.forwardRef<HTMLDivElement, ListHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('px-4 py-2 sm:px-6 sm:py-3 text-sm text-muted-foreground', className)}\n {...props}\n >\n {children}\n </div>\n ),\n);\nListHeader.displayName = 'ListHeader';\n\nexport interface FeatureListProps extends React.HTMLAttributes<HTMLUListElement> {\n items: string[];\n variant?: 'bullet' | 'checkmark';\n}\n\nconst FeatureList = React.forwardRef<HTMLUListElement, FeatureListProps>(\n ({ items, variant = 'bullet', className, ...props }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col gap-fluid-md', className)} {...props}>\n {items.map((item, index) => (\n <li key={index} className=\"flex items-start gap-fluid-md\">\n {variant === 'bullet' ? (\n <span className=\"w-1.5 h-1.5 rounded-full bg-berget-icon-muted flex-shrink-0 mt-2\" />\n ) : (\n <div className=\"flex-shrink-0 mt-0.5\">\n <Icon icon={Check} size={24} className=\"text-berget-logo-light\" />\n </div>\n )}\n <Typography variant=\"body\" color=\"muted\">\n {item}\n </Typography>\n </li>\n ))}\n </ul>\n );\n },\n);\nFeatureList.displayName = 'FeatureList';\n\nexport { List, ListItem, ListHeader, FeatureList };\n"],"mappings":";;;;;;;;;AAaA,MAAM,OAAO,MAAM,YAChB,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC1C,MAAM,gBAAgB,MAAM,SAAS,QAAQ,QAAQ;CACrD,OACE,oBAAC,OAAD;EAAU;EAAK,WAAW,GAAG,iBAAiB,SAAS;EAAG,GAAI;EAC3D,UAAA,cAAc,KAAK,OAAO,UACzB,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,OACA,QAAQ,cAAc,SAAS,KAAK,oBAAC,SAAD,EAAS,SAAQ,SAAU,CAAA,CAClD,EAAA,GAHK,KAGL,CACjB;CACE,CAAA;AAET,CACF;AACA,KAAK,cAAc;AAQnB,MAAM,WAAW,MAAM,YACpB,EAAE,WAAW,MAAM,UAAU,cAAc,MAAM,GAAG,SAAS,QAC5D,qBAAC,OAAD;CACO;CACL,WAAW,GACT,qDACA,eAAe,4EACf,SACF;CACA,GAAI;CAPN,UAAA,CASG,QAAQ,oBAAC,OAAD;EAAK,WAAU;EAAkD,UAAA;CAAU,CAAA,GACpF,oBAAC,OAAD;EAAK,WAAU;EAAkB;CAAc,CAAA,CAC5C;AAET,CAAA,CAAA;AACA,SAAS,cAAc;AAMvB,MAAM,aAAa,MAAM,YACtB,EAAE,WAAW,UAAU,GAAG,SAAS,QAClC,oBAAC,OAAD;CACO;CACL,WAAW,GAAG,2DAA2D,SAAS;CAClF,GAAI;CAEH;AACE,CAAA,CAET;AACA,WAAW,cAAc;AAOzB,MAAM,cAAc,MAAM,YACvB,EAAE,OAAO,UAAU,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC3D,OACE,oBAAC,MAAD;EAAS;EAAK,WAAW,GAAG,8BAA8B,SAAS;EAAG,GAAI;EACvE,UAAA,MAAM,KAAK,MAAM,UAChB,qBAAC,MAAD;GAAgB,WAAU;GAA1B,UAAA,CACG,YAAY,WACX,oBAAC,QAAD,EAAM,WAAU,mEAAoE,CAAA,IAEpF,oBAAC,OAAD;IAAK,WAAU;IACb,UAAA,oBAAC,MAAD;KAAM,MAAM;KAAO,MAAM;KAAI,WAAU;IAA0B,CAAA;GAC9D,CAAA,GAEP,oBAAC,YAAD;IAAY,SAAQ;IAAO,OAAM;IAC9B,UAAA;GACS,CAAA,CACV;EAXK,GAAA,KAWL,CACL;CACC,CAAA;AAER,CACF;AACA,YAAY,cAAc"}
1
+ {"version":3,"file":"List.mjs","names":[],"sources":["../../../src/components/list/List.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Icon } from '../icon/Icon';\nimport { Divider } from '../divider';\nimport { Typography } from '../typography';\nimport { Check } from 'lucide-react';\n\nexport interface ListProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst List = React.forwardRef<HTMLDivElement, ListProps>(\n ({ className, children, ...props }, ref) => {\n const childrenArray = React.Children.toArray(children);\n return (\n <div ref={ref} className={cn('flex flex-col', className)} {...props}>\n {childrenArray.map((child, index) => (\n <React.Fragment key={index}>\n {child}\n {index < childrenArray.length - 1 && <Divider variant=\"subtle\" />}\n </React.Fragment>\n ))}\n </div>\n );\n },\n);\nList.displayName = 'List';\n\nexport interface ListItemProps extends React.HTMLAttributes<HTMLDivElement> {\n icon?: React.ReactNode;\n children: React.ReactNode;\n interactive?: boolean;\n}\n\nconst ListItem = React.forwardRef<HTMLDivElement, ListItemProps>(\n ({ className, icon, children, interactive = true, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n `\n flex items-center gap-4 px-4 py-3\n sm:px-6 sm:py-4\n `,\n interactive &&\n `\n cursor-pointer transition-all duration-200\n hover:bg-berget-surface-hover\n `,\n className,\n )}\n {...props}\n >\n {icon && <div className=\"flex shrink-0 items-center justify-center\">{icon}</div>}\n <div className=\"min-w-0 flex-1\">{children}</div>\n </div>\n ),\n);\nListItem.displayName = 'ListItem';\n\nexport interface ListHeaderProps extends React.HTMLAttributes<HTMLDivElement> {\n children: React.ReactNode;\n}\n\nconst ListHeader = React.forwardRef<HTMLDivElement, ListHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n `\n px-4 py-2 text-sm text-muted-foreground\n sm:px-6 sm:py-3\n `,\n className,\n )}\n {...props}\n >\n {children}\n </div>\n ),\n);\nListHeader.displayName = 'ListHeader';\n\nexport interface FeatureListProps extends React.HTMLAttributes<HTMLUListElement> {\n items: string[];\n variant?: 'bullet' | 'checkmark';\n}\n\nconst FeatureList = React.forwardRef<HTMLUListElement, FeatureListProps>(\n ({ items, variant = 'bullet', className, ...props }, ref) => {\n return (\n <ul ref={ref} className={cn('flex flex-col gap-fluid-md', className)} {...props}>\n {items.map((item, index) => (\n <li key={index} className=\"flex items-start gap-fluid-md\">\n {variant === 'bullet' ? (\n <span\n className=\"\n mt-2 size-1.5 shrink-0 rounded-full bg-berget-icon-muted\n \"\n />\n ) : (\n <div className=\"mt-0.5 shrink-0\">\n <Icon icon={Check} size={24} className=\"text-berget-logo-light\" />\n </div>\n )}\n <Typography variant=\"body\" color=\"muted\">\n {item}\n </Typography>\n </li>\n ))}\n </ul>\n );\n },\n);\nFeatureList.displayName = 'FeatureList';\n\nexport { List, ListItem, ListHeader, FeatureList };\n"],"mappings":";;;;;;;;;AAaA,MAAM,OAAO,MAAM,YAChB,EAAE,WAAW,UAAU,GAAG,SAAS,QAAQ;CAC1C,MAAM,gBAAgB,MAAM,SAAS,QAAQ,QAAQ;CACrD,OACE,oBAAC,OAAD;EAAU;EAAK,WAAW,GAAG,iBAAiB,SAAS;EAAG,GAAI;EAC3D,UAAA,cAAc,KAAK,OAAO,UACzB,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,OACA,QAAQ,cAAc,SAAS,KAAK,oBAAC,SAAD,EAAS,SAAQ,SAAU,CAAA,CAClD,EAAA,GAHK,KAGL,CACjB;CACE,CAAA;AAET,CACF;AACA,KAAK,cAAc;AAQnB,MAAM,WAAW,MAAM,YACpB,EAAE,WAAW,MAAM,UAAU,cAAc,MAAM,GAAG,SAAS,QAC5D,qBAAC,OAAD;CACO;CACL,WAAW,GACT;;;WAIA,eACE;;;aAIF,SACF;CACA,GAAI;CAdN,UAAA,CAgBG,QAAQ,oBAAC,OAAD;EAAK,WAAU;EAA6C,UAAA;CAAU,CAAA,GAC/E,oBAAC,OAAD;EAAK,WAAU;EAAkB;CAAc,CAAA,CAC5C;AAET,CAAA,CAAA;AACA,SAAS,cAAc;AAMvB,MAAM,aAAa,MAAM,YACtB,EAAE,WAAW,UAAU,GAAG,SAAS,QAClC,oBAAC,OAAD;CACO;CACL,WAAW,GACT;;;WAIA,SACF;CACA,GAAI;CAEH;AACE,CAAA,CAET;AACA,WAAW,cAAc;AAOzB,MAAM,cAAc,MAAM,YACvB,EAAE,OAAO,UAAU,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC3D,OACE,oBAAC,MAAD;EAAS;EAAK,WAAW,GAAG,8BAA8B,SAAS;EAAG,GAAI;EACvE,UAAA,MAAM,KAAK,MAAM,UAChB,qBAAC,MAAD;GAAgB,WAAU;GAA1B,UAAA,CACG,YAAY,WACX,oBAAC,QAAD,EACE,WAAU,iGAGX,CAAA,IAED,oBAAC,OAAD;IAAK,WAAU;IACb,UAAA,oBAAC,MAAD;KAAM,MAAM;KAAO,MAAM;KAAI,WAAU;IAA0B,CAAA;GAC9D,CAAA,GAEP,oBAAC,YAAD;IAAY,SAAQ;IAAO,OAAM;IAC9B,UAAA;GACS,CAAA,CACV;EAfK,GAAA,KAeL,CACL;CACC,CAAA;AAER,CACF;AACA,YAAY,cAAc"}
@@ -0,0 +1,2 @@
1
+ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader } from "../../primitives/message.cjs";
2
+ export { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader };
@@ -0,0 +1,2 @@
1
+ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader } from "../../primitives/message.mjs";
2
+ export { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader };
@@ -0,0 +1,2 @@
1
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "../../primitives/message-scroller.cjs";
2
+ export { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport };
@@ -0,0 +1,2 @@
1
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "../../primitives/message-scroller.mjs";
2
+ export { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport };
@@ -35,17 +35,20 @@ const ModelCard = react.forwardRef(({ icon, provider, category, eyebrow, title,
35
35
  ...props,
36
36
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Card.Card, {
37
37
  variant: "filled",
38
- 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",
38
+ className: "\n relative flex h-full flex-col bg-berget-card-filled-bg p-5\n transition-all\n hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))]\n sm:p-6\n ",
39
39
  children: [
40
40
  lifecycle && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
41
- className: "absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm",
41
+ className: "\n absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\n ",
42
42
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
43
- className: require_utils.cn("inline-flex h-6 items-center whitespace-nowrap border-0! px-8 text-sm", lifecycleStyles[lifecycle]),
43
+ className: require_utils.cn(`
44
+ inline-flex h-6 items-center border-0! px-8 text-sm
45
+ whitespace-nowrap
46
+ `, lifecycleStyles[lifecycle]),
44
47
  children: lifecycleLabels[lifecycle]
45
48
  })
46
49
  }),
47
50
  (icon || provider || category) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
48
- 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",
51
+ className: "\n flex size-12 shrink-0 items-center justify-center\n rounded-berget-xs border border-berget-border bg-white/5\n text-berget-foreground\n ",
49
52
  children: icon ?? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ModelLogo.ModelLogo, {
50
53
  provider,
51
54
  category
@@ -55,7 +58,7 @@ const ModelCard = react.forwardRef(({ icon, provider, category, eyebrow, title,
55
58
  eyebrow && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.Typography, {
56
59
  variant: "xs",
57
60
  color: "muted",
58
- className: "font-medium uppercase leading-none tracking-[0.25em]",
61
+ className: "leading-none font-medium tracking-[0.25em] uppercase",
59
62
  children: eyebrow
60
63
  }),
61
64
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
@@ -64,7 +67,7 @@ const ModelCard = react.forwardRef(({ icon, provider, category, eyebrow, title,
64
67
  as: "h3",
65
68
  id: titleId,
66
69
  variant: "h5",
67
- className: "min-w-0 truncate whitespace-nowrap leading-tight",
70
+ className: "min-w-0 truncate leading-tight whitespace-nowrap",
68
71
  style: { fontFeatureSettings: "normal" },
69
72
  children: title
70
73
  })
@@ -81,11 +84,11 @@ const ModelCard = react.forwardRef(({ icon, provider, category, eyebrow, title,
81
84
  children: columns.map((col, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.Typography, {
82
85
  variant: "xs",
83
86
  color: "muted",
84
- className: "leading-none",
87
+ className: "\n leading-none\n ",
85
88
  children: col.label
86
89
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.Typography, {
87
90
  variant: "body",
88
- className: "tabular-nums leading-none",
91
+ className: "leading-none tabular-nums",
89
92
  style: { fontFeatureSettings: "normal" },
90
93
  children: col.value
91
94
  })] }, i))
@@ -93,7 +96,7 @@ const ModelCard = react.forwardRef(({ icon, provider, category, eyebrow, title,
93
96
  meta && meta.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Typography.Typography, {
94
97
  variant: "xs",
95
98
  color: "muted",
96
- className: "text-[0.65rem] uppercase tracking-[0.15em]",
99
+ className: "text-[0.65rem] tracking-[0.15em] uppercase",
97
100
  children: meta.map((item, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react.Fragment, { children: [i > 0 && " ▪ ", item] }, i))
98
101
  }),
99
102
  children
@@ -1 +1 @@
1
- {"version":3,"file":"ModelCard.cjs","names":["React","cn","Card","ModelLogo","Typography"],"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,YAAYA,MAAM,YAEpB,EACE,MACA,UACA,UACA,SACA,OACA,WACA,aACA,SACA,MACA,MACA,UACA,WACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,UAAUA,MAAM,MAAM;CAE5B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;EACO;EACC;EACN,mBAAiB;EACjB,GAAK,WAAW;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACpE,WAAWC,cAAAA,GAAG,eAAe,SAAS;EACtC,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACC,aAAAA,MAAD;GACE,SAAQ;GACR,WAAU;GAFZ,UAAA;IAIG,aACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAU;KACb,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MACE,WAAWD,cAAAA,GACT,yEACA,gBAAgB,UAClB;MAEC,UAAA,gBAAgB;KACd,CAAA;IACF,CAAA;KAEL,QAAQ,YAAY,aACpB,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAACE,kBAAAA,WAAD;MAAqB;MAAoB;KAAW,CAAA;IAC1D,CAAA;IAKP,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD,EAAA,UAAA;KACG,WACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAET,UAAA;KACS,CAAA;KAEd,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MAAK,WAAWH,cAAAA,GAAG,6BAA6B,aAAa,OAAO;MAClE,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACG,mBAAAA,YAAD;OACE,IAAG;OACH,IAAI;OACJ,SAAQ;OACR,WAAU;OACV,OAAO,EAAE,qBAAqB,SAAS;OAEtC,UAAA;MACS,CAAA;KACT,CAAA;KACJ,eACC,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA;KACS,CAAA;IAER,EAAA,CAAA;IAEP,WAAW,QAAQ,SAAS,KAC3B,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,KAAK,KAAK,MACjB,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA,IAAI;KACK,CAAA,GACZ,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,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,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;KACE,SAAQ;KACR,OAAM;KACN,WAAU;KAET,UAAA,KAAK,KAAK,MAAM,MACf,iBAAA,GAAA,kBAAA,KAAA,CAACJ,MAAM,UAAP,EAAA,UAAA,CACG,IAAI,KAAK,OACT,IACa,EAAA,GAHK,CAGL,CACjB;IACS,CAAA;IAGb;GACG;;CACL,CAAA;AAEP,CACF;AACA,UAAU,cAAc"}
1
+ {"version":3,"file":"ModelCard.cjs","names":["React","cn","Card","ModelLogo","Typography"],"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=\"\n relative flex h-full flex-col bg-berget-card-filled-bg p-5\n transition-all\n hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))]\n sm:p-6\n \"\n >\n {lifecycle && (\n <div\n className=\"\n absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\n \"\n >\n <div\n className={cn(\n `\n inline-flex h-6 items-center border-0! px-8 text-sm\n whitespace-nowrap\n `,\n lifecycleStyles[lifecycle],\n )}\n >\n {lifecycleLabels[lifecycle]}\n </div>\n </div>\n )}\n {(icon || provider || category) && (\n <div\n className=\"\n flex size-12 shrink-0 items-center justify-center\n rounded-berget-xs border border-berget-border bg-white/5\n text-berget-foreground\n \"\n >\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=\"leading-none font-medium tracking-[0.25em] uppercase\"\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 leading-tight whitespace-nowrap\"\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\n variant=\"xs\"\n color=\"muted\"\n className=\"\n leading-none\n \"\n >\n {col.label}\n </Typography>\n <Typography\n variant=\"body\"\n className=\"leading-none tabular-nums\"\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] tracking-[0.15em] uppercase\"\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,YAAYA,MAAM,YAEpB,EACE,MACA,UACA,UACA,SACA,OACA,WACA,aACA,SACA,MACA,MACA,UACA,WACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,UAAUA,MAAM,MAAM;CAE5B,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;EACO;EACC;EACN,mBAAiB;EACjB,GAAK,WAAW;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACpE,WAAWC,cAAAA,GAAG,eAAe,SAAS;EACtC,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAACC,aAAAA,MAAD;GACE,SAAQ;GACR,WAAU;GAFZ,UAAA;IASG,aACC,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KACE,WAAU;KAIV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MACE,WAAWD,cAAAA,GACT;;;qBAIA,gBAAgB,UAClB;MAEC,UAAA,gBAAgB;KACd,CAAA;IACF,CAAA;KAEL,QAAQ,YAAY,aACpB,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KACE,WAAU;KAMT,UAAA,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAACE,kBAAAA,WAAD;MAAqB;MAAoB;KAAW,CAAA;IAC1D,CAAA;IAKP,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD,EAAA,UAAA;KACG,WACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAET,UAAA;KACS,CAAA;KAEd,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;MAAK,WAAWH,cAAAA,GAAG,6BAA6B,aAAa,OAAO;MAClE,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACG,mBAAAA,YAAD;OACE,IAAG;OACH,IAAI;OACJ,SAAQ;OACR,WAAU;OACV,OAAO,EAAE,qBAAqB,SAAS;OAEtC,UAAA;MACS,CAAA;KACT,CAAA;KACJ,eACC,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA;KACS,CAAA;IAER,EAAA,CAAA;IAEP,WAAW,QAAQ,SAAS,KAC3B,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,KAAK,KAAK,MACjB,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD,EAAA,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAIT,UAAA,IAAI;KACK,CAAA,GACZ,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;MACE,SAAQ;MACR,WAAU;MACV,OAAO,EAAE,qBAAqB,SAAS;MAEtC,UAAA,IAAI;KACK,CAAA,CACT,EAAA,GAjBK,CAiBL,CACN;IACE,CAAA;IAGN,QAAQ,KAAK,SAAS,KACrB,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;KACE,SAAQ;KACR,OAAM;KACN,WAAU;KAET,UAAA,KAAK,KAAK,MAAM,MACf,iBAAA,GAAA,kBAAA,KAAA,CAACJ,MAAM,UAAP,EAAA,UAAA,CACG,IAAI,KAAK,OACT,IACa,EAAA,GAHK,CAGL,CACjB;IACS,CAAA;IAGb;GACG;;CACL,CAAA;AAEP,CACF;AACA,UAAU,cAAc"}
@@ -33,17 +33,20 @@ const ModelCard = React.forwardRef(({ icon, provider, category, eyebrow, title,
33
33
  ...props,
34
34
  children: /* @__PURE__ */ jsxs(Card, {
35
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",
36
+ className: "\n relative flex h-full flex-col bg-berget-card-filled-bg p-5\n transition-all\n hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))]\n sm:p-6\n ",
37
37
  children: [
38
38
  lifecycle && /* @__PURE__ */ jsx("div", {
39
- className: "absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm",
39
+ className: "\n absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\n ",
40
40
  children: /* @__PURE__ */ jsx("div", {
41
- className: cn("inline-flex h-6 items-center whitespace-nowrap border-0! px-8 text-sm", lifecycleStyles[lifecycle]),
41
+ className: cn(`
42
+ inline-flex h-6 items-center border-0! px-8 text-sm
43
+ whitespace-nowrap
44
+ `, lifecycleStyles[lifecycle]),
42
45
  children: lifecycleLabels[lifecycle]
43
46
  })
44
47
  }),
45
48
  (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",
49
+ className: "\n flex size-12 shrink-0 items-center justify-center\n rounded-berget-xs border border-berget-border bg-white/5\n text-berget-foreground\n ",
47
50
  children: icon ?? /* @__PURE__ */ jsx(ModelLogo, {
48
51
  provider,
49
52
  category
@@ -53,7 +56,7 @@ const ModelCard = React.forwardRef(({ icon, provider, category, eyebrow, title,
53
56
  eyebrow && /* @__PURE__ */ jsx(Typography, {
54
57
  variant: "xs",
55
58
  color: "muted",
56
- className: "font-medium uppercase leading-none tracking-[0.25em]",
59
+ className: "leading-none font-medium tracking-[0.25em] uppercase",
57
60
  children: eyebrow
58
61
  }),
59
62
  /* @__PURE__ */ jsx("div", {
@@ -62,7 +65,7 @@ const ModelCard = React.forwardRef(({ icon, provider, category, eyebrow, title,
62
65
  as: "h3",
63
66
  id: titleId,
64
67
  variant: "h5",
65
- className: "min-w-0 truncate whitespace-nowrap leading-tight",
68
+ className: "min-w-0 truncate leading-tight whitespace-nowrap",
66
69
  style: { fontFeatureSettings: "normal" },
67
70
  children: title
68
71
  })
@@ -79,11 +82,11 @@ const ModelCard = React.forwardRef(({ icon, provider, category, eyebrow, title,
79
82
  children: columns.map((col, i) => /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Typography, {
80
83
  variant: "xs",
81
84
  color: "muted",
82
- className: "leading-none",
85
+ className: "\n leading-none\n ",
83
86
  children: col.label
84
87
  }), /* @__PURE__ */ jsx(Typography, {
85
88
  variant: "body",
86
- className: "tabular-nums leading-none",
89
+ className: "leading-none tabular-nums",
87
90
  style: { fontFeatureSettings: "normal" },
88
91
  children: col.value
89
92
  })] }, i))
@@ -91,7 +94,7 @@ const ModelCard = React.forwardRef(({ icon, provider, category, eyebrow, title,
91
94
  meta && meta.length > 0 && /* @__PURE__ */ jsx(Typography, {
92
95
  variant: "xs",
93
96
  color: "muted",
94
- className: "text-[0.65rem] uppercase tracking-[0.15em]",
97
+ className: "text-[0.65rem] tracking-[0.15em] uppercase",
95
98
  children: meta.map((item, i) => /* @__PURE__ */ jsxs(React.Fragment, { children: [i > 0 && " ▪ ", item] }, i))
96
99
  }),
97
100
  children
@@ -1 +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"}
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=\"\n relative flex h-full flex-col bg-berget-card-filled-bg p-5\n transition-all\n hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))]\n sm:p-6\n \"\n >\n {lifecycle && (\n <div\n className=\"\n absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\n \"\n >\n <div\n className={cn(\n `\n inline-flex h-6 items-center border-0! px-8 text-sm\n whitespace-nowrap\n `,\n lifecycleStyles[lifecycle],\n )}\n >\n {lifecycleLabels[lifecycle]}\n </div>\n </div>\n )}\n {(icon || provider || category) && (\n <div\n className=\"\n flex size-12 shrink-0 items-center justify-center\n rounded-berget-xs border border-berget-border bg-white/5\n text-berget-foreground\n \"\n >\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=\"leading-none font-medium tracking-[0.25em] uppercase\"\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 leading-tight whitespace-nowrap\"\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\n variant=\"xs\"\n color=\"muted\"\n className=\"\n leading-none\n \"\n >\n {col.label}\n </Typography>\n <Typography\n variant=\"body\"\n className=\"leading-none tabular-nums\"\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] tracking-[0.15em] uppercase\"\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;IASG,aACC,oBAAC,OAAD;KACE,WAAU;KAIV,UAAA,oBAAC,OAAD;MACE,WAAW,GACT;;;qBAIA,gBAAgB,UAClB;MAEC,UAAA,gBAAgB;KACd,CAAA;IACF,CAAA;KAEL,QAAQ,YAAY,aACpB,oBAAC,OAAD;KACE,WAAU;KAMT,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;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAIT,UAAA,IAAI;KACK,CAAA,GACZ,oBAAC,YAAD;MACE,SAAQ;MACR,WAAU;MACV,OAAO,EAAE,qBAAqB,SAAS;MAEtC,UAAA,IAAI;KACK,CAAA,CACT,EAAA,GAjBK,CAiBL,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"}
@@ -9,12 +9,29 @@ let _base_ui_react_navigation_menu = require("@base-ui/react/navigation-menu");
9
9
  function NavigationMenu({ align = "start", className, children, ...props }) {
10
10
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_navigation_menu.NavigationMenu.Root, {
11
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),
12
+ className: require_utils.cn(`
13
+ group/navigation-menu relative flex max-w-max flex-1 items-center
14
+ justify-center
15
+ `, className),
13
16
  ...props,
14
17
  children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavigationMenuPositioner, { align })]
15
18
  });
16
19
  }
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");
20
+ const navigationMenuTriggerStyle = (0, class_variance_authority.cva)(`
21
+ group/navigation-menu-trigger inline-flex h-9 w-max items-center
22
+ justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium
23
+ transition-all outline-none
24
+ hover:bg-berget-surface-02
25
+ focus:bg-berget-surface-02
26
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
27
+ focus-visible:outline-1
28
+ disabled:pointer-events-none disabled:opacity-50
29
+ data-open:bg-berget-surface-02/50
30
+ data-open:hover:bg-berget-surface-02
31
+ data-open:focus:bg-berget-surface-02
32
+ data-popup-open:bg-berget-surface-02/50
33
+ data-popup-open:hover:bg-berget-surface-02
34
+ `);
18
35
  function NavigationMenuTrigger({ className, children, ...props }) {
19
36
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_navigation_menu.NavigationMenu.Trigger, {
20
37
  "data-slot": "navigation-menu-trigger",
@@ -24,7 +41,7 @@ function NavigationMenuTrigger({ className, children, ...props }) {
24
41
  children,
25
42
  " ",
26
43
  /* @__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",
44
+ className: "\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n ",
28
45
  "aria-hidden": "true"
29
46
  })
30
47
  ]
@@ -33,7 +50,19 @@ function NavigationMenuTrigger({ className, children, ...props }) {
33
50
  function NavigationMenuLink({ className, ...props }) {
34
51
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Link, {
35
52
  "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),
53
+ className: require_utils.cn(`
54
+ flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all
55
+ outline-none
56
+ hover:bg-berget-surface-02
57
+ focus:bg-berget-surface-02
58
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
59
+ focus-visible:outline-1
60
+ in-data-[slot=navigation-menu-content]:rounded-berget-xs
61
+ data-active:bg-berget-surface-02/50
62
+ data-active:hover:bg-berget-surface-02
63
+ data-active:focus:bg-berget-surface-02
64
+ [&_svg:not([class*='size-'])]:size-4
65
+ `, className),
37
66
  ...props
38
67
  });
39
68
  }
@@ -43,11 +72,18 @@ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8,
43
72
  sideOffset,
44
73
  align,
45
74
  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),
75
+ className: require_utils.cn(`
76
+ isolate z-50 h-(--positioner-height) w-(--positioner-width)
77
+ max-w-(--available-width) transition-[top,left,right,bottom]
78
+ duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]
79
+ data-instant:transition-none
80
+ data-[side=bottom]:before:inset-x-0
81
+ data-[side=bottom]:before:top-[-10px]
82
+ `, className),
47
83
  ...props,
48
84
  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" })
85
+ className: "\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n ",
86
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Viewport, { className: "\n relative size-full overflow-hidden\n " })
51
87
  })
52
88
  }) });
53
89
  }
@@ -1 +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"}
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 `\n group/navigation-menu relative flex max-w-max flex-1 items-center\n justify-center\n `,\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 `\n group/navigation-menu-trigger inline-flex h-9 w-max items-center\n justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium\n transition-all outline-none\n hover:bg-berget-surface-02\n focus:bg-berget-surface-02\n focus-visible:ring-3 focus-visible:ring-berget-ring/50\n focus-visible:outline-1\n disabled:pointer-events-none disabled:opacity-50\n data-open:bg-berget-surface-02/50\n data-open:hover:bg-berget-surface-02\n data-open:focus:bg-berget-surface-02\n data-popup-open:bg-berget-surface-02/50\n data-popup-open:hover:bg-berget-surface-02\n `,\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=\"\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n \"\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 `\n flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all\n outline-none\n hover:bg-berget-surface-02\n focus:bg-berget-surface-02\n focus-visible:ring-3 focus-visible:ring-berget-ring/50\n focus-visible:outline-1\n in-data-[slot=navigation-menu-content]:rounded-berget-xs\n data-active:bg-berget-surface-02/50\n data-active:hover:bg-berget-surface-02\n data-active:focus:bg-berget-surface-02\n [&_svg:not([class*='size-'])]:size-4\n `,\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 `\n isolate z-50 h-(--positioner-height) w-(--positioner-width)\n max-w-(--available-width) transition-[top,left,right,bottom]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]\n data-instant:transition-none\n data-[side=bottom]:before:inset-x-0\n data-[side=bottom]:before:top-[-10px]\n `,\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup\n className=\"\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n \"\n >\n <NavigationMenuPrimitive.Viewport\n className=\"\n relative size-full overflow-hidden\n \"\n />\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;;;WAIA,SACF;EACA,GAAI;EATN,UAAA,CAWG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,0BAAD,EAAiC,MAAQ,CAAA,CACb;;AAElC;AAMA,MAAM,8BAAA,GAA6BC,yBAAAA,IAAAA,CACjC;;;;;;;;;;;;;;GAeF;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;IAKV,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;;;;;;;;;;;;WAaA,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;;;;;;;aAQA,SACF;EACA,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,OAAzB;GACE,WAAU;GAcV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,UAAzB,EACE,WAAU,+DAGX,CAAA;EAC4B,CAAA;CACG,CAAA,EACN,CAAA;AAEpC"}
@@ -1 +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"}
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;cAuBzF,6BAA0B,iDAAA;iBAkBvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAwB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBA6B9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
@@ -1 +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"}
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;cAuBzF,6BAA0B,iDAAA;iBAkBvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAwB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBA6B9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
@@ -9,12 +9,29 @@ import { NavigationMenu } from "@base-ui/react/navigation-menu";
9
9
  function NavigationMenu$1({ align = "start", className, children, ...props }) {
10
10
  return /* @__PURE__ */ jsxs(NavigationMenu.Root, {
11
11
  "data-slot": "navigation-menu",
12
- className: cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className),
12
+ className: cn(`
13
+ group/navigation-menu relative flex max-w-max flex-1 items-center
14
+ justify-center
15
+ `, className),
13
16
  ...props,
14
17
  children: [children, /* @__PURE__ */ jsx(NavigationMenuPositioner, { align })]
15
18
  });
16
19
  }
17
- const navigationMenuTriggerStyle = 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");
20
+ const navigationMenuTriggerStyle = cva(`
21
+ group/navigation-menu-trigger inline-flex h-9 w-max items-center
22
+ justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium
23
+ transition-all outline-none
24
+ hover:bg-berget-surface-02
25
+ focus:bg-berget-surface-02
26
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
27
+ focus-visible:outline-1
28
+ disabled:pointer-events-none disabled:opacity-50
29
+ data-open:bg-berget-surface-02/50
30
+ data-open:hover:bg-berget-surface-02
31
+ data-open:focus:bg-berget-surface-02
32
+ data-popup-open:bg-berget-surface-02/50
33
+ data-popup-open:hover:bg-berget-surface-02
34
+ `);
18
35
  function NavigationMenuTrigger({ className, children, ...props }) {
19
36
  return /* @__PURE__ */ jsxs(NavigationMenu.Trigger, {
20
37
  "data-slot": "navigation-menu-trigger",
@@ -24,7 +41,7 @@ function NavigationMenuTrigger({ className, children, ...props }) {
24
41
  children,
25
42
  " ",
26
43
  /* @__PURE__ */ jsx(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",
44
+ className: "\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n ",
28
45
  "aria-hidden": "true"
29
46
  })
30
47
  ]
@@ -33,7 +50,19 @@ function NavigationMenuTrigger({ className, children, ...props }) {
33
50
  function NavigationMenuLink({ className, ...props }) {
34
51
  return /* @__PURE__ */ jsx(NavigationMenu.Link, {
35
52
  "data-slot": "navigation-menu-link",
36
- className: 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),
53
+ className: cn(`
54
+ flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all
55
+ outline-none
56
+ hover:bg-berget-surface-02
57
+ focus:bg-berget-surface-02
58
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
59
+ focus-visible:outline-1
60
+ in-data-[slot=navigation-menu-content]:rounded-berget-xs
61
+ data-active:bg-berget-surface-02/50
62
+ data-active:hover:bg-berget-surface-02
63
+ data-active:focus:bg-berget-surface-02
64
+ [&_svg:not([class*='size-'])]:size-4
65
+ `, className),
37
66
  ...props
38
67
  });
39
68
  }
@@ -43,11 +72,18 @@ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8,
43
72
  sideOffset,
44
73
  align,
45
74
  alignOffset,
46
- className: 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),
75
+ className: cn(`
76
+ isolate z-50 h-(--positioner-height) w-(--positioner-width)
77
+ max-w-(--available-width) transition-[top,left,right,bottom]
78
+ duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]
79
+ data-instant:transition-none
80
+ data-[side=bottom]:before:inset-x-0
81
+ data-[side=bottom]:before:top-[-10px]
82
+ `, className),
47
83
  ...props,
48
84
  children: /* @__PURE__ */ jsx(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__ */ jsx(NavigationMenu.Viewport, { className: "relative size-full overflow-hidden" })
85
+ className: "\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n ",
86
+ children: /* @__PURE__ */ jsx(NavigationMenu.Viewport, { className: "\n relative size-full overflow-hidden\n " })
51
87
  })
52
88
  }) });
53
89
  }