@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
@@ -7,19 +7,25 @@ import { cva } from "class-variance-authority";
7
7
  const typographyVariants = cva("", {
8
8
  variants: {
9
9
  variant: {
10
- h1: "text-h1 font-h1 leading-h1 tracking-h1 text-balance",
11
- hero: "text-hero font-hero leading-hero tracking-hero text-balance font-normal [font-feature-settings:'normal']",
12
- h2: "text-h2 font-h2 leading-h2 tracking-h2 text-balance",
13
- h3: "text-h3 font-h3 leading-h3 tracking-h3 text-balance",
14
- h4: "text-h4 font-h4 leading-h4 tracking-h4 text-balance",
15
- h5: "text-xl font-xl leading-xl text-balance",
16
- large: "text-lg font-lg leading-lg text-pretty",
17
- body: "text-p font-p leading-p text-pretty",
18
- small: "text-sm font-sm leading-sm text-pretty",
19
- xs: "text-xs font-xs leading-xs text-pretty",
20
- caption: "text-caption font-caption leading-caption tracking-caption text-pretty font-semibold uppercase",
21
- mono: "text-mono font-mono leading-mono text-pretty",
22
- code: "text-xs font-mono"
10
+ h1: "font-h1 text-h1/h1 tracking-h1 text-balance",
11
+ hero: `
12
+ font-hero font-features-['normal'] text-hero/hero font-normal
13
+ tracking-hero text-balance
14
+ `,
15
+ h2: "font-h2 text-h2/h2 tracking-h2 text-balance",
16
+ h3: "font-h3 text-h3/tight tracking-h3 text-balance",
17
+ h4: "font-h4 text-h4/h4 tracking-h4 text-balance",
18
+ h5: "font-xl text-xl/h2 text-balance",
19
+ large: "font-lg text-lg/p text-pretty",
20
+ body: "font-p text-base/p text-pretty",
21
+ small: "font-sm text-caption/p text-pretty",
22
+ xs: "font-xs text-xs/p text-pretty",
23
+ caption: `
24
+ font-caption text-caption/h2 font-semibold tracking-caption text-pretty
25
+ uppercase
26
+ `,
27
+ mono: "font-mono text-base/p text-pretty",
28
+ code: "font-mono text-xs"
23
29
  },
24
30
  color: {
25
31
  default: "text-berget-foreground",
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.mjs","names":[],"sources":["../../../src/components/typography/Typography.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst typographyVariants = cva('', {\n variants: {\n variant: {\n // Fluid heading scale — use @theme tokens (clamp-based, 390px → 1440px)\n h1: 'text-h1 font-h1 leading-h1 tracking-h1 text-balance',\n // Hero display — from landing-page /dedicated-inference hero (Ovo, 400, tight display leading)\n hero: \"text-hero font-hero leading-hero tracking-hero text-balance font-normal [font-feature-settings:'normal']\",\n h2: 'text-h2 font-h2 leading-h2 tracking-h2 text-balance',\n h3: 'text-h3 font-h3 leading-h3 tracking-h3 text-balance',\n h4: 'text-h4 font-h4 leading-h4 tracking-h4 text-balance',\n // Static sans-serif sub-heading\n h5: 'text-xl font-xl leading-xl text-balance',\n // Body and UI text — use @theme tokens where available\n large: 'text-lg font-lg leading-lg text-pretty',\n body: 'text-p font-p leading-p text-pretty',\n small: 'text-sm font-sm leading-sm text-pretty',\n xs: 'text-xs font-xs leading-xs text-pretty',\n // Caption / overline / eyebrow (DM Sans, Semibold, uppercase)\n caption:\n 'text-caption font-caption leading-caption tracking-caption text-pretty font-semibold uppercase',\n // Monospaced — use @theme token\n mono: 'text-mono font-mono leading-mono text-pretty',\n // Inline code / spec labels\n code: 'text-xs font-mono',\n },\n color: {\n default: 'text-berget-foreground',\n muted: 'text-berget-muted-foreground',\n dim: 'text-berget-foreground/65',\n primary: 'text-berget-primary',\n },\n },\n defaultVariants: {\n variant: 'body',\n color: 'default',\n },\n});\n\nconst defaultElementMap: Record<string, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'span'> = {\n hero: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n large: 'p',\n body: 'p',\n small: 'p',\n xs: 'p',\n caption: 'span',\n mono: 'p',\n code: 'span',\n};\n\nexport interface TypographyProps\n extends\n Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n VariantProps<typeof typographyVariants> {\n as?: React.ElementType;\n}\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n ({ className, variant = 'body', color = 'default', as, children, ...props }, ref) => {\n const Component = (as ?? defaultElementMap[variant ?? 'body'] ?? 'p') as\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'p'\n | 'span';\n return (\n <Component\n className={cn(typographyVariants({ variant, color }), className)}\n ref={ref as any}\n {...(props as any)}\n >\n {children}\n </Component>\n );\n },\n);\nTypography.displayName = 'Typography';\n\nexport { Typography, typographyVariants };\n"],"mappings":";;;;;;AAMA,MAAM,qBAAqB,IAAI,IAAI;CACjC,UAAU;EACR,SAAS;GAEP,IAAI;GAEJ,MAAM;GACN,IAAI;GACJ,IAAI;GACJ,IAAI;GAEJ,IAAI;GAEJ,OAAO;GACP,MAAM;GACN,OAAO;GACP,IAAI;GAEJ,SACE;GAEF,MAAM;GAEN,MAAM;EACR;EACA,OAAO;GACL,SAAS;GACT,OAAO;GACP,KAAK;GACL,SAAS;EACX;CACF;CACA,iBAAiB;EACf,SAAS;EACT,OAAO;CACT;AACF,CAAC;AAED,MAAM,oBAAqF;CACzF,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,MAAM;CACN,OAAO;CACP,IAAI;CACJ,SAAS;CACT,MAAM;CACN,MAAM;AACR;AASA,MAAM,aAAa,MAAM,YACtB,EAAE,WAAW,UAAU,QAAQ,QAAQ,WAAW,IAAI,UAAU,GAAG,SAAS,QAAQ;CACnF,MAAM,YAAa,MAAM,kBAAkB,WAAW,WAAW;CAQjE,OACE,oBAAC,WAAD;EACE,WAAW,GAAG,mBAAmB;GAAE;GAAS;EAAM,CAAC,GAAG,SAAS;EAC1D;EACL,GAAK;EAEJ;CACQ,CAAA;AAEf,CACF;AACA,WAAW,cAAc"}
1
+ {"version":3,"file":"Typography.mjs","names":[],"sources":["../../../src/components/typography/Typography.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\n\nconst typographyVariants = cva('', {\n variants: {\n variant: {\n // Fluid heading scale — use @theme tokens (clamp-based, 390px → 1440px)\n h1: 'font-h1 text-h1/h1 tracking-h1 text-balance',\n // Hero display — from landing-page /dedicated-inference hero (Ovo, 400, tight display leading)\n hero: `\n font-hero font-features-['normal'] text-hero/hero font-normal\n tracking-hero text-balance\n `,\n h2: 'font-h2 text-h2/h2 tracking-h2 text-balance',\n h3: 'font-h3 text-h3/tight tracking-h3 text-balance',\n h4: 'font-h4 text-h4/h4 tracking-h4 text-balance',\n // Static sans-serif sub-heading\n h5: 'font-xl text-xl/h2 text-balance',\n // Body and UI text — use @theme tokens where available\n large: 'font-lg text-lg/p text-pretty',\n body: 'font-p text-base/p text-pretty',\n small: 'font-sm text-caption/p text-pretty',\n xs: 'font-xs text-xs/p text-pretty',\n // Caption / overline / eyebrow (DM Sans, Semibold, uppercase)\n caption: `\n font-caption text-caption/h2 font-semibold tracking-caption text-pretty\n uppercase\n `,\n // Monospaced — use @theme token\n mono: 'font-mono text-base/p text-pretty',\n // Inline code / spec labels\n code: 'font-mono text-xs',\n },\n color: {\n default: 'text-berget-foreground',\n muted: 'text-berget-muted-foreground',\n dim: 'text-berget-foreground/65',\n primary: 'text-berget-primary',\n },\n },\n defaultVariants: {\n variant: 'body',\n color: 'default',\n },\n});\n\nconst defaultElementMap: Record<string, 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'p' | 'span'> = {\n hero: 'h1',\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n large: 'p',\n body: 'p',\n small: 'p',\n xs: 'p',\n caption: 'span',\n mono: 'p',\n code: 'span',\n};\n\nexport interface TypographyProps\n extends\n Omit<React.HTMLAttributes<HTMLElement>, 'color'>,\n VariantProps<typeof typographyVariants> {\n as?: React.ElementType;\n}\n\nconst Typography = React.forwardRef<HTMLElement, TypographyProps>(\n ({ className, variant = 'body', color = 'default', as, children, ...props }, ref) => {\n const Component = (as ?? defaultElementMap[variant ?? 'body'] ?? 'p') as\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'p'\n | 'span';\n return (\n <Component\n className={cn(typographyVariants({ variant, color }), className)}\n ref={ref as any}\n {...(props as any)}\n >\n {children}\n </Component>\n );\n },\n);\nTypography.displayName = 'Typography';\n\nexport { Typography, typographyVariants };\n"],"mappings":";;;;;;AAMA,MAAM,qBAAqB,IAAI,IAAI;CACjC,UAAU;EACR,SAAS;GAEP,IAAI;GAEJ,MAAM;;;;GAIN,IAAI;GACJ,IAAI;GACJ,IAAI;GAEJ,IAAI;GAEJ,OAAO;GACP,MAAM;GACN,OAAO;GACP,IAAI;GAEJ,SAAS;;;;GAKT,MAAM;GAEN,MAAM;EACR;EACA,OAAO;GACL,SAAS;GACT,OAAO;GACP,KAAK;GACL,SAAS;EACX;CACF;CACA,iBAAiB;EACf,SAAS;EACT,OAAO;CACT;AACF,CAAC;AAED,MAAM,oBAAqF;CACzF,MAAM;CACN,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;CACP,MAAM;CACN,OAAO;CACP,IAAI;CACJ,SAAS;CACT,MAAM;CACN,MAAM;AACR;AASA,MAAM,aAAa,MAAM,YACtB,EAAE,WAAW,UAAU,QAAQ,QAAQ,WAAW,IAAI,UAAU,GAAG,SAAS,QAAQ;CACnF,MAAM,YAAa,MAAM,kBAAkB,WAAW,WAAW;CAQjE,OACE,oBAAC,WAAD;EACE,WAAW,GAAG,mBAAmB;GAAE;GAAS;EAAM,CAAC,GAAG,SAAS;EAC1D;EACL,GAAK;EAEJ;CACQ,CAAA;AAEf,CACF;AACA,WAAW,cAAc"}
@@ -14,27 +14,37 @@ const WindowFrame = react.forwardRef(({ title = "window", tabs, activeTab, onTab
14
14
  };
15
15
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
16
16
  ref,
17
- className: require_utils.cn("rounded-berget-sm overflow-hidden shadow-berget-md border border-berget-brand-granite-700 bg-berget-brand-granite-800", className),
17
+ className: require_utils.cn(`
18
+ overflow-hidden rounded-berget-sm border
19
+ border-berget-brand-granite-700 bg-berget-brand-granite-800
20
+ shadow-berget-md
21
+ `, className),
18
22
  ...props,
19
23
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
20
- className: "flex items-center gap-2 px-4 py-3 border-b border-berget-brand-granite-700 bg-berget-brand-granite-900",
24
+ className: "\n flex items-center gap-2 border-b border-berget-brand-granite-700\n bg-berget-brand-granite-900 px-4 py-3\n ",
21
25
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
22
- className: "flex items-center gap-2 flex-shrink-0",
26
+ className: "flex shrink-0 items-center gap-2",
23
27
  children: [
24
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "w-3 h-3 rounded-full bg-berget-brand-muscaria-400" }),
25
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "w-3 h-3 rounded-full bg-berget-brand-chanterelle-200" }),
26
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "w-3 h-3 rounded-full bg-berget-brand-moss-400" })
28
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "size-3 rounded-full bg-berget-brand-muscaria-400" }),
29
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "size-3 rounded-full bg-berget-brand-chanterelle-200" }),
30
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { className: "size-3 rounded-full bg-berget-brand-moss-400" })
27
31
  ]
28
32
  }), tabs && tabs.length > 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
29
33
  className: "ml-4 flex items-center gap-1",
30
34
  children: tabs.map((tab) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
31
35
  type: "button",
32
36
  onClick: () => handleTabChange(tab.id),
33
- className: require_utils.cn("px-3 py-1 text-sm transition-colors cursor-pointer", currentTab === tab.id ? "rounded-berget-xs bg-white/10 text-berget-foreground font-medium" : "rounded text-berget-muted-foreground hover:text-berget-foreground font-medium"),
37
+ className: require_utils.cn("cursor-pointer px-3 py-1 text-sm transition-colors", currentTab === tab.id ? `
38
+ rounded-berget-xs bg-white/10 font-medium
39
+ text-berget-foreground
40
+ ` : `
41
+ rounded-sm font-medium text-berget-muted-foreground
42
+ hover:text-berget-foreground
43
+ `),
34
44
  children: tab.label
35
45
  }, tab.id))
36
46
  }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
37
- className: "ml-4 text-sm font-mono text-berget-brand-moss-400",
47
+ className: "ml-4 font-mono text-sm text-berget-brand-moss-400",
38
48
  children: title
39
49
  })]
40
50
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children })]
@@ -1 +1 @@
1
- {"version":3,"file":"WindowFrame.cjs","names":["React","useState","cn"],"sources":["../../../src/components/window-frame/WindowFrame.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface WindowTab {\n id: string;\n label: string;\n}\n\nexport interface WindowFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Window title shown in the title bar when no tabs are provided */\n title?: string;\n /** Optional tabs for switching content */\n tabs?: WindowTab[];\n /** Controlled active tab ID */\n activeTab?: string;\n /** Callback when a tab is selected */\n onTabChange?: (tabId: string) => void;\n}\n\nexport const WindowFrame = React.forwardRef<HTMLDivElement, WindowFrameProps>(\n ({ title = 'window', tabs, activeTab, onTabChange, children, className, ...props }, ref) => {\n const [internalActive, setInternalActive] = useState(tabs?.[0]?.id ?? '');\n const currentTab = activeTab ?? internalActive;\n\n const handleTabChange = (id: string) => {\n if (onTabChange) {\n onTabChange(id);\n } else {\n setInternalActive(id);\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-berget-sm overflow-hidden shadow-berget-md border border-berget-brand-granite-700 bg-berget-brand-granite-800',\n className,\n )}\n {...props}\n >\n {/* Title bar */}\n <div className=\"flex items-center gap-2 px-4 py-3 border-b border-berget-brand-granite-700 bg-berget-brand-granite-900\">\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <div className=\"w-3 h-3 rounded-full bg-berget-brand-muscaria-400\" />\n <div className=\"w-3 h-3 rounded-full bg-berget-brand-chanterelle-200\" />\n <div className=\"w-3 h-3 rounded-full bg-berget-brand-moss-400\" />\n </div>\n\n {tabs && tabs.length > 0 ? (\n <div className=\"ml-4 flex items-center gap-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => handleTabChange(tab.id)}\n className={cn(\n 'px-3 py-1 text-sm transition-colors cursor-pointer',\n currentTab === tab.id\n ? 'rounded-berget-xs bg-white/10 text-berget-foreground font-medium'\n : 'rounded text-berget-muted-foreground hover:text-berget-foreground font-medium',\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n ) : (\n <span className=\"ml-4 text-sm font-mono text-berget-brand-moss-400\">{title}</span>\n )}\n </div>\n\n {/* Content area */}\n <div>{children}</div>\n </div>\n );\n },\n);\n\nWindowFrame.displayName = 'WindowFrame';\n"],"mappings":";;;;;;;AAsBA,MAAa,cAAcA,MAAM,YAC9B,EAAE,QAAQ,UAAU,MAAM,WAAW,aAAa,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC1F,MAAM,CAAC,gBAAgB,sBAAA,GAAqBC,MAAAA,SAAAA,CAAS,OAAO,EAAE,EAAE,MAAM,EAAE;CACxE,MAAM,aAAa,aAAa;CAEhC,MAAM,mBAAmB,OAAe;EACtC,IAAI,aACF,YAAY,EAAE;OAEd,kBAAkB,EAAE;CAExB;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACO;EACL,WAAWC,cAAAA,GACT,yHACA,SACF;EACA,GAAI;EANN,UAAA,CASE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,oDAAqD,CAAA;KACpE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,uDAAwD,CAAA;KACvE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,gDAAiD,CAAA;IAC7D;GAEJ,CAAA,GAAA,QAAQ,KAAK,SAAS,IACrB,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACZ,UAAA,KAAK,KAAK,QACT,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;KAEE,MAAK;KACL,eAAe,gBAAgB,IAAI,EAAE;KACrC,WAAWA,cAAAA,GACT,sDACA,eAAe,IAAI,KACf,qEACA,+EACN;KAEC,UAAA,IAAI;IACC,GAXD,IAAI,EAWH,CACT;GACE,CAAA,IAEL,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,WAAU;IAAqD,UAAA;GAAY,CAAA,CAEhF;EAGL,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAM,SAAc,CAAA,CACjB;;AAET,CACF;AAEA,YAAY,cAAc"}
1
+ {"version":3,"file":"WindowFrame.cjs","names":["React","useState","cn"],"sources":["../../../src/components/window-frame/WindowFrame.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface WindowTab {\n id: string;\n label: string;\n}\n\nexport interface WindowFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Window title shown in the title bar when no tabs are provided */\n title?: string;\n /** Optional tabs for switching content */\n tabs?: WindowTab[];\n /** Controlled active tab ID */\n activeTab?: string;\n /** Callback when a tab is selected */\n onTabChange?: (tabId: string) => void;\n}\n\nexport const WindowFrame = React.forwardRef<HTMLDivElement, WindowFrameProps>(\n ({ title = 'window', tabs, activeTab, onTabChange, children, className, ...props }, ref) => {\n const [internalActive, setInternalActive] = useState(tabs?.[0]?.id ?? '');\n const currentTab = activeTab ?? internalActive;\n\n const handleTabChange = (id: string) => {\n if (onTabChange) {\n onTabChange(id);\n } else {\n setInternalActive(id);\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n `\n overflow-hidden rounded-berget-sm border\n border-berget-brand-granite-700 bg-berget-brand-granite-800\n shadow-berget-md\n `,\n className,\n )}\n {...props}\n >\n {/* Title bar */}\n <div\n className=\"\n flex items-center gap-2 border-b border-berget-brand-granite-700\n bg-berget-brand-granite-900 px-4 py-3\n \"\n >\n <div className=\"flex shrink-0 items-center gap-2\">\n <div className=\"size-3 rounded-full bg-berget-brand-muscaria-400\" />\n <div className=\"size-3 rounded-full bg-berget-brand-chanterelle-200\" />\n <div className=\"size-3 rounded-full bg-berget-brand-moss-400\" />\n </div>\n\n {tabs && tabs.length > 0 ? (\n <div className=\"ml-4 flex items-center gap-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => handleTabChange(tab.id)}\n className={cn(\n 'cursor-pointer px-3 py-1 text-sm transition-colors',\n currentTab === tab.id\n ? `\n rounded-berget-xs bg-white/10 font-medium\n text-berget-foreground\n `\n : `\n rounded-sm font-medium text-berget-muted-foreground\n hover:text-berget-foreground\n `,\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n ) : (\n <span className=\"ml-4 font-mono text-sm text-berget-brand-moss-400\">{title}</span>\n )}\n </div>\n\n {/* Content area */}\n <div>{children}</div>\n </div>\n );\n },\n);\n\nWindowFrame.displayName = 'WindowFrame';\n"],"mappings":";;;;;;;AAsBA,MAAa,cAAcA,MAAM,YAC9B,EAAE,QAAQ,UAAU,MAAM,WAAW,aAAa,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC1F,MAAM,CAAC,gBAAgB,sBAAA,GAAqBC,MAAAA,SAAAA,CAAS,OAAO,EAAE,EAAE,MAAM,EAAE;CACxE,MAAM,aAAa,aAAa;CAEhC,MAAM,mBAAmB,OAAe;EACtC,IAAI,aACF,YAAY,EAAE;OAEd,kBAAkB,EAAE;CAExB;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACO;EACL,WAAWC,cAAAA,GACT;;;;aAKA,SACF;EACA,GAAI;EAVN,UAAA,CAaE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GACE,WAAU;GADZ,UAAA,CAME,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,mDAAoD,CAAA;KACnE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,sDAAuD,CAAA;KACtE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAK,WAAU,+CAAgD,CAAA;IAC5D;GAEJ,CAAA,GAAA,QAAQ,KAAK,SAAS,IACrB,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;IAAK,WAAU;IACZ,UAAA,KAAK,KAAK,QACT,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;KAEE,MAAK;KACL,eAAe,gBAAgB,IAAI,EAAE;KACrC,WAAWA,cAAAA,GACT,sDACA,eAAe,IAAI,KACf;;;0BAIA;;;uBAIN;KAEC,UAAA,IAAI;IACC,GAjBD,IAAI,EAiBH,CACT;GACE,CAAA,IAEL,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,WAAU;IAAqD,UAAA;GAAY,CAAA,CAEhF;EAGL,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD,EAAM,SAAc,CAAA,CACjB;;AAET,CACF;AAEA,YAAY,cAAc"}
@@ -13,27 +13,37 @@ const WindowFrame = React.forwardRef(({ title = "window", tabs, activeTab, onTab
13
13
  };
14
14
  return /* @__PURE__ */ jsxs("div", {
15
15
  ref,
16
- className: cn("rounded-berget-sm overflow-hidden shadow-berget-md border border-berget-brand-granite-700 bg-berget-brand-granite-800", className),
16
+ className: cn(`
17
+ overflow-hidden rounded-berget-sm border
18
+ border-berget-brand-granite-700 bg-berget-brand-granite-800
19
+ shadow-berget-md
20
+ `, className),
17
21
  ...props,
18
22
  children: [/* @__PURE__ */ jsxs("div", {
19
- className: "flex items-center gap-2 px-4 py-3 border-b border-berget-brand-granite-700 bg-berget-brand-granite-900",
23
+ className: "\n flex items-center gap-2 border-b border-berget-brand-granite-700\n bg-berget-brand-granite-900 px-4 py-3\n ",
20
24
  children: [/* @__PURE__ */ jsxs("div", {
21
- className: "flex items-center gap-2 flex-shrink-0",
25
+ className: "flex shrink-0 items-center gap-2",
22
26
  children: [
23
- /* @__PURE__ */ jsx("div", { className: "w-3 h-3 rounded-full bg-berget-brand-muscaria-400" }),
24
- /* @__PURE__ */ jsx("div", { className: "w-3 h-3 rounded-full bg-berget-brand-chanterelle-200" }),
25
- /* @__PURE__ */ jsx("div", { className: "w-3 h-3 rounded-full bg-berget-brand-moss-400" })
27
+ /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-berget-brand-muscaria-400" }),
28
+ /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-berget-brand-chanterelle-200" }),
29
+ /* @__PURE__ */ jsx("div", { className: "size-3 rounded-full bg-berget-brand-moss-400" })
26
30
  ]
27
31
  }), tabs && tabs.length > 0 ? /* @__PURE__ */ jsx("div", {
28
32
  className: "ml-4 flex items-center gap-1",
29
33
  children: tabs.map((tab) => /* @__PURE__ */ jsx("button", {
30
34
  type: "button",
31
35
  onClick: () => handleTabChange(tab.id),
32
- className: cn("px-3 py-1 text-sm transition-colors cursor-pointer", currentTab === tab.id ? "rounded-berget-xs bg-white/10 text-berget-foreground font-medium" : "rounded text-berget-muted-foreground hover:text-berget-foreground font-medium"),
36
+ className: cn("cursor-pointer px-3 py-1 text-sm transition-colors", currentTab === tab.id ? `
37
+ rounded-berget-xs bg-white/10 font-medium
38
+ text-berget-foreground
39
+ ` : `
40
+ rounded-sm font-medium text-berget-muted-foreground
41
+ hover:text-berget-foreground
42
+ `),
33
43
  children: tab.label
34
44
  }, tab.id))
35
45
  }) : /* @__PURE__ */ jsx("span", {
36
- className: "ml-4 text-sm font-mono text-berget-brand-moss-400",
46
+ className: "ml-4 font-mono text-sm text-berget-brand-moss-400",
37
47
  children: title
38
48
  })]
39
49
  }), /* @__PURE__ */ jsx("div", { children })]
@@ -1 +1 @@
1
- {"version":3,"file":"WindowFrame.mjs","names":[],"sources":["../../../src/components/window-frame/WindowFrame.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface WindowTab {\n id: string;\n label: string;\n}\n\nexport interface WindowFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Window title shown in the title bar when no tabs are provided */\n title?: string;\n /** Optional tabs for switching content */\n tabs?: WindowTab[];\n /** Controlled active tab ID */\n activeTab?: string;\n /** Callback when a tab is selected */\n onTabChange?: (tabId: string) => void;\n}\n\nexport const WindowFrame = React.forwardRef<HTMLDivElement, WindowFrameProps>(\n ({ title = 'window', tabs, activeTab, onTabChange, children, className, ...props }, ref) => {\n const [internalActive, setInternalActive] = useState(tabs?.[0]?.id ?? '');\n const currentTab = activeTab ?? internalActive;\n\n const handleTabChange = (id: string) => {\n if (onTabChange) {\n onTabChange(id);\n } else {\n setInternalActive(id);\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n 'rounded-berget-sm overflow-hidden shadow-berget-md border border-berget-brand-granite-700 bg-berget-brand-granite-800',\n className,\n )}\n {...props}\n >\n {/* Title bar */}\n <div className=\"flex items-center gap-2 px-4 py-3 border-b border-berget-brand-granite-700 bg-berget-brand-granite-900\">\n <div className=\"flex items-center gap-2 flex-shrink-0\">\n <div className=\"w-3 h-3 rounded-full bg-berget-brand-muscaria-400\" />\n <div className=\"w-3 h-3 rounded-full bg-berget-brand-chanterelle-200\" />\n <div className=\"w-3 h-3 rounded-full bg-berget-brand-moss-400\" />\n </div>\n\n {tabs && tabs.length > 0 ? (\n <div className=\"ml-4 flex items-center gap-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => handleTabChange(tab.id)}\n className={cn(\n 'px-3 py-1 text-sm transition-colors cursor-pointer',\n currentTab === tab.id\n ? 'rounded-berget-xs bg-white/10 text-berget-foreground font-medium'\n : 'rounded text-berget-muted-foreground hover:text-berget-foreground font-medium',\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n ) : (\n <span className=\"ml-4 text-sm font-mono text-berget-brand-moss-400\">{title}</span>\n )}\n </div>\n\n {/* Content area */}\n <div>{children}</div>\n </div>\n );\n },\n);\n\nWindowFrame.displayName = 'WindowFrame';\n"],"mappings":";;;;;;AAsBA,MAAa,cAAc,MAAM,YAC9B,EAAE,QAAQ,UAAU,MAAM,WAAW,aAAa,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC1F,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE;CACxE,MAAM,aAAa,aAAa;CAEhC,MAAM,mBAAmB,OAAe;EACtC,IAAI,aACF,YAAY,EAAE;OAEd,kBAAkB,EAAE;CAExB;CAEA,OACE,qBAAC,OAAD;EACO;EACL,WAAW,GACT,yHACA,SACF;EACA,GAAI;EANN,UAAA,CASE,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,oBAAC,OAAD,EAAK,WAAU,oDAAqD,CAAA;KACpE,oBAAC,OAAD,EAAK,WAAU,uDAAwD,CAAA;KACvE,oBAAC,OAAD,EAAK,WAAU,gDAAiD,CAAA;IAC7D;GAEJ,CAAA,GAAA,QAAQ,KAAK,SAAS,IACrB,oBAAC,OAAD;IAAK,WAAU;IACZ,UAAA,KAAK,KAAK,QACT,oBAAC,UAAD;KAEE,MAAK;KACL,eAAe,gBAAgB,IAAI,EAAE;KACrC,WAAW,GACT,sDACA,eAAe,IAAI,KACf,qEACA,+EACN;KAEC,UAAA,IAAI;IACC,GAXD,IAAI,EAWH,CACT;GACE,CAAA,IAEL,oBAAC,QAAD;IAAM,WAAU;IAAqD,UAAA;GAAY,CAAA,CAEhF;EAGL,CAAA,GAAA,oBAAC,OAAD,EAAM,SAAc,CAAA,CACjB;;AAET,CACF;AAEA,YAAY,cAAc"}
1
+ {"version":3,"file":"WindowFrame.mjs","names":[],"sources":["../../../src/components/window-frame/WindowFrame.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useState } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface WindowTab {\n id: string;\n label: string;\n}\n\nexport interface WindowFrameProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Window title shown in the title bar when no tabs are provided */\n title?: string;\n /** Optional tabs for switching content */\n tabs?: WindowTab[];\n /** Controlled active tab ID */\n activeTab?: string;\n /** Callback when a tab is selected */\n onTabChange?: (tabId: string) => void;\n}\n\nexport const WindowFrame = React.forwardRef<HTMLDivElement, WindowFrameProps>(\n ({ title = 'window', tabs, activeTab, onTabChange, children, className, ...props }, ref) => {\n const [internalActive, setInternalActive] = useState(tabs?.[0]?.id ?? '');\n const currentTab = activeTab ?? internalActive;\n\n const handleTabChange = (id: string) => {\n if (onTabChange) {\n onTabChange(id);\n } else {\n setInternalActive(id);\n }\n };\n\n return (\n <div\n ref={ref}\n className={cn(\n `\n overflow-hidden rounded-berget-sm border\n border-berget-brand-granite-700 bg-berget-brand-granite-800\n shadow-berget-md\n `,\n className,\n )}\n {...props}\n >\n {/* Title bar */}\n <div\n className=\"\n flex items-center gap-2 border-b border-berget-brand-granite-700\n bg-berget-brand-granite-900 px-4 py-3\n \"\n >\n <div className=\"flex shrink-0 items-center gap-2\">\n <div className=\"size-3 rounded-full bg-berget-brand-muscaria-400\" />\n <div className=\"size-3 rounded-full bg-berget-brand-chanterelle-200\" />\n <div className=\"size-3 rounded-full bg-berget-brand-moss-400\" />\n </div>\n\n {tabs && tabs.length > 0 ? (\n <div className=\"ml-4 flex items-center gap-1\">\n {tabs.map((tab) => (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => handleTabChange(tab.id)}\n className={cn(\n 'cursor-pointer px-3 py-1 text-sm transition-colors',\n currentTab === tab.id\n ? `\n rounded-berget-xs bg-white/10 font-medium\n text-berget-foreground\n `\n : `\n rounded-sm font-medium text-berget-muted-foreground\n hover:text-berget-foreground\n `,\n )}\n >\n {tab.label}\n </button>\n ))}\n </div>\n ) : (\n <span className=\"ml-4 font-mono text-sm text-berget-brand-moss-400\">{title}</span>\n )}\n </div>\n\n {/* Content area */}\n <div>{children}</div>\n </div>\n );\n },\n);\n\nWindowFrame.displayName = 'WindowFrame';\n"],"mappings":";;;;;;AAsBA,MAAa,cAAc,MAAM,YAC9B,EAAE,QAAQ,UAAU,MAAM,WAAW,aAAa,UAAU,WAAW,GAAG,SAAS,QAAQ;CAC1F,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE;CACxE,MAAM,aAAa,aAAa;CAEhC,MAAM,mBAAmB,OAAe;EACtC,IAAI,aACF,YAAY,EAAE;OAEd,kBAAkB,EAAE;CAExB;CAEA,OACE,qBAAC,OAAD;EACO;EACL,WAAW,GACT;;;;aAKA,SACF;EACA,GAAI;EAVN,UAAA,CAaE,qBAAC,OAAD;GACE,WAAU;GADZ,UAAA,CAME,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACE,oBAAC,OAAD,EAAK,WAAU,mDAAoD,CAAA;KACnE,oBAAC,OAAD,EAAK,WAAU,sDAAuD,CAAA;KACtE,oBAAC,OAAD,EAAK,WAAU,+CAAgD,CAAA;IAC5D;GAEJ,CAAA,GAAA,QAAQ,KAAK,SAAS,IACrB,oBAAC,OAAD;IAAK,WAAU;IACZ,UAAA,KAAK,KAAK,QACT,oBAAC,UAAD;KAEE,MAAK;KACL,eAAe,gBAAgB,IAAI,EAAE;KACrC,WAAW,GACT,sDACA,eAAe,IAAI,KACf;;;0BAIA;;;uBAIN;KAEC,UAAA,IAAI;IACC,GAjBD,IAAI,EAiBH,CACT;GACE,CAAA,IAEL,oBAAC,QAAD;IAAM,WAAU;IAAqD,UAAA;GAAY,CAAA,CAEhF;EAGL,CAAA,GAAA,oBAAC,OAAD,EAAM,SAAc,CAAA,CACjB;;AAET,CACF;AAEA,YAAY,cAAc"}
package/dist/index.cjs CHANGED
@@ -3,6 +3,9 @@ const require_ThemeProvider = require("./components/theme-provider/ThemeProvider
3
3
  const require_ThemeToggle = require("./components/theme-provider/ThemeToggle.cjs");
4
4
  const require_button = require("./primitives/button.cjs");
5
5
  const require_Button = require("./components/button/Button.cjs");
6
+ const require_bubble = require("./primitives/bubble.cjs");
7
+ const require_message = require("./primitives/message.cjs");
8
+ const require_message_scroller = require("./primitives/message-scroller.cjs");
6
9
  const require_Typography = require("./components/typography/Typography.cjs");
7
10
  const require_card = require("./primitives/card.cjs");
8
11
  const require_Card = require("./components/card/Card.cjs");
@@ -32,11 +35,14 @@ const require_Item = require("./components/item/Item.cjs");
32
35
  const require_empty = require("./primitives/empty.cjs");
33
36
  const require_Empty = require("./components/empty/Empty.cjs");
34
37
  const require_SearchInput = require("./components/search-input/SearchInput.cjs");
38
+ const require_Slider = require("./components/slider/Slider.cjs");
39
+ const require_textarea = require("./primitives/textarea.cjs");
40
+ const require_input_group = require("./primitives/input-group.cjs");
41
+ const require_InputGroup = require("./components/input-group/InputGroup.cjs");
35
42
  const require_Checkbox = require("./components/checkbox/Checkbox.cjs");
36
43
  const require_Switch = require("./components/switch/Switch.cjs");
37
44
  const require_select = require("./primitives/select.cjs");
38
45
  const require_Icon = require("./components/icon/Icon.cjs");
39
- const require_textarea = require("./primitives/textarea.cjs");
40
46
  const require_countries = require("./components/country-select/countries.cjs");
41
47
  const require_CountrySelect = require("./components/country-select/CountrySelect.cjs");
42
48
  const require_label = require("./primitives/label.cjs");
@@ -50,6 +56,7 @@ const require_List = require("./components/list/List.cjs");
50
56
  const require_CodeBlock = require("./components/code-block/CodeBlock.cjs");
51
57
  const require_WindowFrame = require("./components/window-frame/WindowFrame.cjs");
52
58
  const require_FogIllustration = require("./components/fog-illustration/FogIllustration.cjs");
59
+ let _shadcn_react_message_scroller = require("@shadcn/react/message-scroller");
53
60
  exports.Alert = require_Alert.Alert;
54
61
  exports.AlertDescription = require_alert.AlertDescription;
55
62
  exports.AlertDialog = require_AlertDialog.AlertDialog;
@@ -67,6 +74,10 @@ exports.AlertTitle = require_alert.AlertTitle;
67
74
  exports.Badge = require_Badge.Badge;
68
75
  exports.BergetLogo = require_BergetLogo.BergetLogo;
69
76
  exports.Box = require_Box.Box;
77
+ exports.Bubble = require_bubble.Bubble;
78
+ exports.BubbleContent = require_bubble.BubbleContent;
79
+ exports.BubbleGroup = require_bubble.BubbleGroup;
80
+ exports.BubbleReactions = require_bubble.BubbleReactions;
70
81
  exports.Button = require_Button.Button;
71
82
  exports.COUNTRIES = require_countries.COUNTRIES;
72
83
  exports.Card = require_Card.Card;
@@ -128,6 +139,12 @@ exports.FogIllustration = require_FogIllustration.FogIllustration;
128
139
  exports.Grid = require_Grid.Grid;
129
140
  exports.Icon = require_Icon.Icon;
130
141
  exports.Input = require_input.Input;
142
+ exports.InputGroup = require_InputGroup.InputGroup;
143
+ exports.InputGroupAddon = require_InputGroup.InputGroupAddon;
144
+ exports.InputGroupButton = require_input_group.InputGroupButton;
145
+ exports.InputGroupInput = require_input_group.InputGroupInput;
146
+ exports.InputGroupText = require_input_group.InputGroupText;
147
+ exports.InputGroupTextarea = require_input_group.InputGroupTextarea;
131
148
  exports.Item = require_Item.Item;
132
149
  exports.ItemActions = require_item.ItemActions;
133
150
  exports.ItemContent = require_item.ItemContent;
@@ -144,6 +161,18 @@ exports.Link = require_Link.Link;
144
161
  exports.List = require_List.List;
145
162
  exports.ListHeader = require_List.ListHeader;
146
163
  exports.ListItem = require_List.ListItem;
164
+ exports.Message = require_message.Message;
165
+ exports.MessageAvatar = require_message.MessageAvatar;
166
+ exports.MessageContent = require_message.MessageContent;
167
+ exports.MessageFooter = require_message.MessageFooter;
168
+ exports.MessageGroup = require_message.MessageGroup;
169
+ exports.MessageHeader = require_message.MessageHeader;
170
+ exports.MessageScroller = require_message_scroller.MessageScroller;
171
+ exports.MessageScrollerButton = require_message_scroller.MessageScrollerButton;
172
+ exports.MessageScrollerContent = require_message_scroller.MessageScrollerContent;
173
+ exports.MessageScrollerItem = require_message_scroller.MessageScrollerItem;
174
+ exports.MessageScrollerProvider = require_message_scroller.MessageScrollerProvider;
175
+ exports.MessageScrollerViewport = require_message_scroller.MessageScrollerViewport;
147
176
  exports.ModelCard = require_ModelCard.ModelCard;
148
177
  exports.ModelLogo = require_ModelLogo.ModelLogo;
149
178
  exports.NavigationMenu = require_NavigationMenu.NavigationMenu;
@@ -196,6 +225,7 @@ exports.SidebarRail = require_sidebar.SidebarRail;
196
225
  exports.SidebarSeparator = require_sidebar.SidebarSeparator;
197
226
  exports.SidebarTrigger = require_sidebar.SidebarTrigger;
198
227
  exports.Skeleton = require_Skeleton.Skeleton;
228
+ exports.Slider = require_Slider.Slider;
199
229
  exports.Switch = require_Switch.Switch;
200
230
  exports.Table = require_Table.Table;
201
231
  exports.TableBody = require_Table.TableBody;
@@ -231,5 +261,23 @@ exports.navigationMenuTriggerStyle = require_NavigationMenu.navigationMenuTrigge
231
261
  exports.switchRootVariants = require_Switch.switchRootVariants;
232
262
  exports.switchThumbVariants = require_Switch.switchThumbVariants;
233
263
  exports.typographyVariants = require_Typography.typographyVariants;
264
+ Object.defineProperty(exports, "useMessageScroller", {
265
+ enumerable: true,
266
+ get: function() {
267
+ return _shadcn_react_message_scroller.useMessageScroller;
268
+ }
269
+ });
270
+ Object.defineProperty(exports, "useMessageScrollerScrollable", {
271
+ enumerable: true,
272
+ get: function() {
273
+ return _shadcn_react_message_scroller.useMessageScrollerScrollable;
274
+ }
275
+ });
276
+ Object.defineProperty(exports, "useMessageScrollerVisibility", {
277
+ enumerable: true,
278
+ get: function() {
279
+ return _shadcn_react_message_scroller.useMessageScrollerVisibility;
280
+ }
281
+ });
234
282
  exports.useSidebar = require_sidebar.useSidebar;
235
283
  exports.useTheme = require_ThemeProvider.useTheme;
package/dist/index.d.cts CHANGED
@@ -4,6 +4,12 @@ import "./components/theme-provider/index.cjs";
4
4
  import { buttonVariants } from "./primitives/button.cjs";
5
5
  import { Button, ButtonProps } from "./components/button/Button.cjs";
6
6
  import "./components/button/index.cjs";
7
+ import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./primitives/bubble.cjs";
8
+ import "./components/bubble/index.cjs";
9
+ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader } from "./primitives/message.cjs";
10
+ import "./components/message/index.cjs";
11
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "./primitives/message-scroller.cjs";
12
+ import "./components/message-scroller/index.cjs";
7
13
  import { Typography, TypographyProps, typographyVariants } from "./components/typography/Typography.cjs";
8
14
  import "./components/typography/index.cjs";
9
15
  import { CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./primitives/card.cjs";
@@ -51,6 +57,11 @@ import "./components/empty/index.cjs";
51
57
  import "./components/input/index.cjs";
52
58
  import { SearchInput, SearchInputProps } from "./components/search-input/SearchInput.cjs";
53
59
  import "./components/search-input/index.cjs";
60
+ import { Slider, SliderProps } from "./components/slider/Slider.cjs";
61
+ import "./components/slider/index.cjs";
62
+ import { InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.cjs";
63
+ import { InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupProps } from "./components/input-group/InputGroup.cjs";
64
+ import "./components/input-group/index.cjs";
54
65
  import { Checkbox, CheckboxProps, checkboxVariants } from "./components/checkbox/Checkbox.cjs";
55
66
  import "./components/checkbox/index.cjs";
56
67
  import { Switch, SwitchProps, switchRootVariants, switchThumbVariants } from "./components/switch/Switch.cjs";
@@ -87,4 +98,4 @@ import { TerminalExample } from "./lib/terminal.cjs";
87
98
  import { WindowFrame, WindowFrameProps, WindowTab } from "./components/window-frame/WindowFrame.cjs";
88
99
  import "./components/window-frame/index.cjs";
89
100
  import { FOG_BRAND_PALETTE, FogIllustration, FogIllustrationProps, FogPalette } from "./components/fog-illustration/FogIllustration.cjs";
90
- export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, type CodeBlockProps, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, typographyVariants, useSidebar, useTheme };
101
+ export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, type CodeBlockProps, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, InputGroupInput, type InputGroupProps, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, typographyVariants, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
package/dist/index.d.mts CHANGED
@@ -4,6 +4,12 @@ import "./components/theme-provider/index.mjs";
4
4
  import { buttonVariants } from "./primitives/button.mjs";
5
5
  import { Button, ButtonProps } from "./components/button/Button.mjs";
6
6
  import "./components/button/index.mjs";
7
+ import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./primitives/bubble.mjs";
8
+ import "./components/bubble/index.mjs";
9
+ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader } from "./primitives/message.mjs";
10
+ import "./components/message/index.mjs";
11
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "./primitives/message-scroller.mjs";
12
+ import "./components/message-scroller/index.mjs";
7
13
  import { Typography, TypographyProps, typographyVariants } from "./components/typography/Typography.mjs";
8
14
  import "./components/typography/index.mjs";
9
15
  import { CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./primitives/card.mjs";
@@ -51,6 +57,11 @@ import "./components/empty/index.mjs";
51
57
  import "./components/input/index.mjs";
52
58
  import { SearchInput, SearchInputProps } from "./components/search-input/SearchInput.mjs";
53
59
  import "./components/search-input/index.mjs";
60
+ import { Slider, SliderProps } from "./components/slider/Slider.mjs";
61
+ import "./components/slider/index.mjs";
62
+ import { InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.mjs";
63
+ import { InputGroup, InputGroupAddon, InputGroupAddonProps, InputGroupProps } from "./components/input-group/InputGroup.mjs";
64
+ import "./components/input-group/index.mjs";
54
65
  import { Checkbox, CheckboxProps, checkboxVariants } from "./components/checkbox/Checkbox.mjs";
55
66
  import "./components/checkbox/index.mjs";
56
67
  import { Switch, SwitchProps, switchRootVariants, switchThumbVariants } from "./components/switch/Switch.mjs";
@@ -87,4 +98,4 @@ import { TerminalExample } from "./lib/terminal.mjs";
87
98
  import { WindowFrame, WindowFrameProps, WindowTab } from "./components/window-frame/WindowFrame.mjs";
88
99
  import "./components/window-frame/index.mjs";
89
100
  import { FOG_BRAND_PALETTE, FogIllustration, FogIllustrationProps, FogPalette } from "./components/fog-illustration/FogIllustration.mjs";
90
- export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, type CodeBlockProps, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, typographyVariants, useSidebar, useTheme };
101
+ export { Alert, AlertDescription, type AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, type AlertProps, AlertTitle, type AlertTitleProps, Badge, type BadgeProps, BergetLogo, type BergetLogoProps, Box, type BoxProps, type SpacingScale as BoxSpacingScale, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, type ButtonProps, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, type CardProps, CardTitle, Checkbox, type CheckboxProps, CodeBlock, type CodeBlockProps, Container, type ContainerProps, type Country, CountrySelect, type CountrySelectProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, type EmptyProps, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, type FeatureListProps, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, type FogIllustrationProps, type FogPalette, Grid, type GridColsScale, type GridProps, type GridRowsScale, type SpacingScale$1 as GridSpacingScale, Icon, type IconProps, Input, InputGroup, InputGroupAddon, type InputGroupAddonProps, InputGroupButton, InputGroupInput, type InputGroupProps, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, type ItemProps, ItemSeparator, ItemTitle, Label, LanguageSelect, type LanguageSelectOption, type LanguageSelectProps, Link, type LinkProps, List, ListHeader, type ListHeaderProps, ListItem, type ListItemProps, type ListProps, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, type ModelCardProps, type ModelCategory, type ModelLifecycle, ModelLogo, type ModelLogoProps, type ModelLogoProvider, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Progress, ProgressIndicator, ProgressLabel, type ProgressProps, ProgressTrack, ProgressValue, SearchInput, type SearchInputProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, type SkeletonProps, Slider, type SliderProps, Switch, type SwitchProps, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, type TerminalExample, Textarea, type Theme, ThemeProvider, type ThemeProviderProps, ThemeToggle, type ThemeToggleProps, Tooltip, TooltipContent, type TooltipContentProps, TooltipProvider, TooltipTrigger, type TooltipTriggerProps, Typography, type TypographyProps, WindowFrame, type WindowFrameProps, type WindowTab, alertVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, typographyVariants, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
package/dist/index.mjs CHANGED
@@ -2,6 +2,9 @@ import { ThemeProvider, useTheme } from "./components/theme-provider/ThemeProvid
2
2
  import { ThemeToggle } from "./components/theme-provider/ThemeToggle.mjs";
3
3
  import { buttonVariants } from "./primitives/button.mjs";
4
4
  import { Button } from "./components/button/Button.mjs";
5
+ import { Bubble, BubbleContent, BubbleGroup, BubbleReactions } from "./primitives/bubble.mjs";
6
+ import { Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader } from "./primitives/message.mjs";
7
+ import { MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "./primitives/message-scroller.mjs";
5
8
  import { Typography, typographyVariants } from "./components/typography/Typography.mjs";
6
9
  import { CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from "./primitives/card.mjs";
7
10
  import { Card, cardVariants } from "./components/card/Card.mjs";
@@ -31,11 +34,14 @@ import { Item, ItemDescription, ItemMedia, ItemSeparator, ItemTitle } from "./co
31
34
  import { EmptyContent, EmptyHeader } from "./primitives/empty.mjs";
32
35
  import { Empty, EmptyDescription, EmptyMedia, EmptyTitle } from "./components/empty/Empty.mjs";
33
36
  import { SearchInput } from "./components/search-input/SearchInput.mjs";
37
+ import { Slider } from "./components/slider/Slider.mjs";
38
+ import { Textarea } from "./primitives/textarea.mjs";
39
+ import { InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea } from "./primitives/input-group.mjs";
40
+ import { InputGroup, InputGroupAddon } from "./components/input-group/InputGroup.mjs";
34
41
  import { Checkbox, checkboxVariants } from "./components/checkbox/Checkbox.mjs";
35
42
  import { Switch, switchRootVariants, switchThumbVariants } from "./components/switch/Switch.mjs";
36
43
  import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "./primitives/select.mjs";
37
44
  import { Icon } from "./components/icon/Icon.mjs";
38
- import { Textarea } from "./primitives/textarea.mjs";
39
45
  import { COUNTRIES, EU_COUNTRY_CODES, getCountryByCode, getCountryByName, isEUCountry } from "./components/country-select/countries.mjs";
40
46
  import { CountrySelect } from "./components/country-select/CountrySelect.mjs";
41
47
  import { Label } from "./primitives/label.mjs";
@@ -49,4 +55,4 @@ import { FeatureList, List, ListHeader, ListItem } from "./components/list/List.
49
55
  import { CodeBlock } from "./components/code-block/CodeBlock.mjs";
50
56
  import { WindowFrame } from "./components/window-frame/WindowFrame.mjs";
51
57
  import { FOG_BRAND_PALETTE, FogIllustration } from "./components/fog-illustration/FogIllustration.mjs";
52
- export { Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Badge, BergetLogo, Box, Button, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Container, CountrySelect, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, Grid, Icon, Input, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, LanguageSelect, Link, List, ListHeader, ListItem, ModelCard, ModelLogo, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeProvider, ThemeToggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typography, WindowFrame, alertVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, typographyVariants, useSidebar, useTheme };
58
+ export { Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, Badge, BergetLogo, Box, Bubble, BubbleContent, BubbleGroup, BubbleReactions, Button, COUNTRIES, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, CodeBlock, Container, CountrySelect, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EU_COUNTRY_CODES, Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, FOG_BRAND_PALETTE, FeatureList, Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, FogIllustration, Grid, Icon, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, LanguageSelect, Link, List, ListHeader, ListItem, Message, MessageAvatar, MessageContent, MessageFooter, MessageGroup, MessageHeader, MessageScroller, MessageScrollerButton, MessageScrollerContent, MessageScrollerItem, MessageScrollerProvider, MessageScrollerViewport, ModelCard, ModelLogo, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPositioner, NavigationMenuTrigger, Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue, SearchInput, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarLogo, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarPageHeader, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeProvider, ThemeToggle, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, Typography, WindowFrame, alertVariants, badgeVariants, boxVariants, buttonVariants, cardVariants, categoryLabels, checkboxVariants, containerVariants, getCountryByCode, getCountryByName, gridVariants, isEUCountry, linkVariants, navigationMenuTriggerStyle, switchRootVariants, switchThumbVariants, typographyVariants, useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility, useSidebar, useTheme };
@@ -0,0 +1,80 @@
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ let react = require("react");
3
+ react = require_runtime.__toESM(react, 1);
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ let class_variance_authority = require("class-variance-authority");
6
+ let cn = require("cn");
7
+ let _base_ui_react_merge_props = require("@base-ui/react/merge-props");
8
+ let _base_ui_react_use_render = require("@base-ui/react/use-render");
9
+ //#region src/primitives/bubble.tsx
10
+ function BubbleGroup({ className, ...props }) {
11
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
12
+ "data-slot": "bubble-group",
13
+ className: (0, cn.cn)("flex min-w-0 flex-col gap-2", className),
14
+ ...props
15
+ });
16
+ }
17
+ const bubbleVariants = (0, class_variance_authority.cva)("group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full", {
18
+ variants: { variant: {
19
+ default: "*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80",
20
+ secondary: "*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]",
21
+ muted: "*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]",
22
+ tinted: "*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]",
23
+ outline: "*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30",
24
+ ghost: "border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50",
25
+ destructive: "*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30"
26
+ } },
27
+ defaultVariants: { variant: "default" }
28
+ });
29
+ function Bubble({ variant = "default", align = "start", className, ...props }) {
30
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
31
+ "data-slot": "bubble",
32
+ "data-variant": variant,
33
+ "data-align": align,
34
+ className: (0, cn.cn)(bubbleVariants({ variant }), className),
35
+ ...props
36
+ });
37
+ }
38
+ function BubbleContent({ className, render, ...props }) {
39
+ return (0, _base_ui_react_use_render.useRender)({
40
+ defaultTagName: "div",
41
+ props: (0, _base_ui_react_merge_props.mergeProps)({ className: (0, cn.cn)("w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50", className) }, props),
42
+ render,
43
+ state: { slot: "bubble-content" }
44
+ });
45
+ }
46
+ const bubbleReactionsVariants = (0, class_variance_authority.cva)("absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0", {
47
+ variants: {
48
+ side: {
49
+ top: "top-0 -translate-y-3/4",
50
+ bottom: "bottom-0 translate-y-3/4"
51
+ },
52
+ align: {
53
+ start: "left-3",
54
+ end: "right-3"
55
+ }
56
+ },
57
+ defaultVariants: {
58
+ side: "bottom",
59
+ align: "end"
60
+ }
61
+ });
62
+ function BubbleReactions({ side = "bottom", align = "end", className, ...props }) {
63
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
64
+ "data-slot": "bubble-reactions",
65
+ "data-align": align,
66
+ "data-side": side,
67
+ className: (0, cn.cn)(bubbleReactionsVariants({
68
+ side,
69
+ align
70
+ }), className),
71
+ ...props
72
+ });
73
+ }
74
+ //#endregion
75
+ exports.Bubble = Bubble;
76
+ exports.BubbleContent = BubbleContent;
77
+ exports.BubbleGroup = BubbleGroup;
78
+ exports.BubbleReactions = BubbleReactions;
79
+
80
+ //# sourceMappingURL=bubble.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble.cjs","names":["cva","useRender","mergeProps"],"sources":["../../src/primitives/bubble.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { mergeProps } from \"@base-ui/react/merge-props\"\nimport { useRender } from \"@base-ui/react/use-render\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"cn\"\n\nfunction BubbleGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"bubble-group\"\n className={cn(\"flex min-w-0 flex-col gap-2\", className)}\n {...props}\n />\n )\n}\n\nconst bubbleVariants = cva(\n \"group/bubble relative flex w-fit max-w-[80%] min-w-0 flex-col gap-1 group-data-[align=end]/message:self-end data-[align=end]:self-end data-[variant=ghost]:max-w-full\",\n {\n variants: {\n variant: {\n default:\n \"*:data-[slot=bubble-content]:bg-primary *:data-[slot=bubble-content]:text-primary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-primary/80\",\n secondary:\n \"*:data-[slot=bubble-content]:bg-secondary *:data-[slot=bubble-content]:text-secondary-foreground [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)]\",\n muted:\n \"*:data-[slot=bubble-content]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[color-mix(in_oklch,var(--muted),var(--foreground)_5%)]\",\n tinted:\n \"*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.93_calc(c*0.4)_h)] *:data-[slot=bubble-content]:text-foreground dark:*:data-[slot=bubble-content]:bg-[oklch(from_var(--primary)_0.3_calc(c*0.4)_h)] [&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.88_calc(c*0.5)_h)] dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-[oklch(from_var(--primary)_0.35_calc(c*0.5)_h)]\",\n outline:\n \"*:data-[slot=bubble-content]:border-border *:data-[slot=bubble-content]:bg-background [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-input/30\",\n ghost:\n \"border-none *:data-[slot=bubble-content]:rounded-none *:data-[slot=bubble-content]:bg-transparent *:data-[slot=bubble-content]:p-0 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted [&>[data-slot=bubble-content]:is(button,a):hover]:text-foreground dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-muted/50\",\n destructive:\n \"*:data-[slot=bubble-content]:bg-destructive/10 *:data-[slot=bubble-content]:text-destructive dark:*:data-[slot=bubble-content]:bg-destructive/20 [&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/20 dark:[&>[data-slot=bubble-content]:is(button,a):hover]:bg-destructive/30\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Bubble({\n variant = \"default\",\n align = \"start\",\n className,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof bubbleVariants> & {\n align?: \"start\" | \"end\"\n }) {\n return (\n <div\n data-slot=\"bubble\"\n data-variant={variant}\n data-align={align}\n className={cn(bubbleVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction BubbleContent({\n className,\n render,\n ...props\n}: useRender.ComponentProps<\"div\">) {\n return useRender({\n defaultTagName: \"div\",\n props: mergeProps<\"div\">(\n {\n className: cn(\n \"w-fit max-w-full min-w-0 overflow-hidden rounded-xl border border-transparent px-3 py-2 text-sm leading-relaxed wrap-break-word group-data-[align=end]/bubble:self-end [button]:text-left [button,a]:transition-colors [button,a]:outline-none [button,a]:focus-visible:border-ring [button,a]:focus-visible:ring-3 [button,a]:focus-visible:ring-ring/50\",\n className\n ),\n },\n props\n ),\n render,\n state: {\n slot: \"bubble-content\",\n },\n })\n}\n\nconst bubbleReactionsVariants = cva(\n \"absolute z-10 flex w-fit shrink-0 items-center justify-center gap-1 rounded-full bg-muted px-1.5 py-0.5 text-sm ring-3 ring-card has-[button]:p-0\",\n {\n variants: {\n side: {\n top: \"top-0 -translate-y-3/4\",\n bottom: \"bottom-0 translate-y-3/4\",\n },\n align: {\n start: \"left-3\",\n end: \"right-3\",\n },\n },\n defaultVariants: {\n side: \"bottom\",\n align: \"end\",\n },\n }\n)\n\nfunction BubbleReactions({\n side = \"bottom\",\n align = \"end\",\n className,\n ...props\n}: React.ComponentProps<\"div\"> & {\n align?: \"start\" | \"end\"\n side?: \"top\" | \"bottom\"\n}) {\n return (\n <div\n data-slot=\"bubble-reactions\"\n data-align={align}\n data-side={side}\n className={cn(bubbleReactionsVariants({ side, align }), className)}\n {...props}\n />\n )\n}\n\nexport { BubbleGroup, Bubble, BubbleContent, BubbleReactions }\n"],"mappings":";;;;;;;;;AAMA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,YAAA,GAAW,GAAA,GAAA,CAAG,+BAA+B,SAAS;EACtD,GAAI;CACL,CAAA;AAEL;AAEA,MAAM,kBAAA,GAAiBA,yBAAAA,IAAAA,CACrB,yKACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,OACE;EACF,QACE;EACF,SACE;EACF,OACE;EACF,aACE;CACJ,EACF;CACA,iBAAiB,EACf,SAAS,UACX;AACF,CACF;AAEA,SAAS,OAAO,EACd,UAAU,WACV,QAAQ,SACR,WACA,GAAG,SAIA;CACH,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,gBAAc;EACd,cAAY;EACZ,YAAA,GAAW,GAAA,GAAA,CAAG,eAAe,EAAE,QAAQ,CAAC,GAAG,SAAS;EACpD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,WACA,QACA,GAAG,SAC+B;CAClC,QAAA,GAAOC,0BAAAA,UAAAA,CAAU;EACf,gBAAgB;EAChB,QAAA,GAAOC,2BAAAA,WAAAA,CACL,EACE,YAAA,GAAW,GAAA,GAAA,CACT,6VACA,SACF,EACF,GACA,KACF;EACA;EACA,OAAO,EACL,MAAM,iBACR;CACF,CAAC;AACH;AAEA,MAAM,2BAAA,GAA0BF,yBAAAA,IAAAA,CAC9B,qJACA;CACE,UAAU;EACR,MAAM;GACJ,KAAK;GACL,QAAQ;EACV;EACA,OAAO;GACL,OAAO;GACP,KAAK;EACP;CACF;CACA,iBAAiB;EACf,MAAM;EACN,OAAO;CACT;AACF,CACF;AAEA,SAAS,gBAAgB,EACvB,OAAO,UACP,QAAQ,OACR,WACA,GAAG,SAIF;CACD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EACE,aAAU;EACV,cAAY;EACZ,aAAW;EACX,YAAA,GAAW,GAAA,GAAA,CAAG,wBAAwB;GAAE;GAAM;EAAM,CAAC,GAAG,SAAS;EACjE,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/primitives/bubble.d.ts
5
+ declare function BubbleGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
6
+ declare const bubbleVariants: (props?: ({
7
+ variant?: "default" | "secondary" | "muted" | "tinted" | "outline" | "ghost" | "destructive" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ declare function Bubble({ variant, align, className, ...props }: React.ComponentProps<"div"> & VariantProps<typeof bubbleVariants> & {
10
+ align?: "start" | "end";
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function BubbleContent({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
13
+ declare function BubbleReactions({ side, align, className, ...props }: React.ComponentProps<"div"> & {
14
+ align?: "start" | "end";
15
+ side?: "top" | "bottom";
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ //#endregion
18
+ export { Bubble, BubbleContent, BubbleGroup, BubbleReactions };
19
+ //# sourceMappingURL=bubble.d.cts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble.d.cts","names":[],"sources":["../../src/primitives/bubble.tsx"],"mappings":";;;;iBAMS,cAAc,cAAc,SAAS,MAAM,oDAAqB,IAAA;cAUnE,iBAAc;;6CAyBnB;iBAEQ,SACP,SACA,OACA,cACG,SACF,MAAM,wBACP,oBAAoB;EAClB;gCACD,IAAA;iBAYM,gBACP,WACA,WACG,SACF,UAAU,wBAAqB,MAAA,+BAAA,MAAA;iBAuCzB,kBACP,MACA,OACA,cACG,SACF,MAAM;EACP;EACA;gCACD,IAAA"}
@@ -0,0 +1,19 @@
1
+ import * as React from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/primitives/bubble.d.ts
5
+ declare function BubbleGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
6
+ declare const bubbleVariants: (props?: ({
7
+ variant?: "default" | "secondary" | "muted" | "tinted" | "outline" | "ghost" | "destructive" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ declare function Bubble({ variant, align, className, ...props }: React.ComponentProps<"div"> & VariantProps<typeof bubbleVariants> & {
10
+ align?: "start" | "end";
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function BubbleContent({ className, render, ...props }: useRender.ComponentProps<"div">): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
13
+ declare function BubbleReactions({ side, align, className, ...props }: React.ComponentProps<"div"> & {
14
+ align?: "start" | "end";
15
+ side?: "top" | "bottom";
16
+ }): import("react/jsx-runtime").JSX.Element;
17
+ //#endregion
18
+ export { Bubble, BubbleContent, BubbleGroup, BubbleReactions };
19
+ //# sourceMappingURL=bubble.d.mts.map