@bergetai/ui 0.16.0 → 0.16.2

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 (155) hide show
  1. package/dist/components/alert-dialog/AlertDialog.cjs +26 -5
  2. package/dist/components/alert-dialog/AlertDialog.cjs.map +1 -1
  3. package/dist/components/alert-dialog/AlertDialog.d.cts.map +1 -1
  4. package/dist/components/alert-dialog/AlertDialog.d.mts.map +1 -1
  5. package/dist/components/alert-dialog/AlertDialog.mjs +26 -5
  6. package/dist/components/alert-dialog/AlertDialog.mjs.map +1 -1
  7. package/dist/components/badge/Badge.cjs +12 -3
  8. package/dist/components/badge/Badge.cjs.map +1 -1
  9. package/dist/components/badge/Badge.d.cts.map +1 -1
  10. package/dist/components/badge/Badge.d.mts.map +1 -1
  11. package/dist/components/badge/Badge.mjs +12 -3
  12. package/dist/components/badge/Badge.mjs.map +1 -1
  13. package/dist/components/box/Box.cjs +3 -1
  14. package/dist/components/box/Box.cjs.map +1 -1
  15. package/dist/components/box/Box.mjs +3 -1
  16. package/dist/components/box/Box.mjs.map +1 -1
  17. package/dist/components/button/Button.cjs +40 -6
  18. package/dist/components/button/Button.cjs.map +1 -1
  19. package/dist/components/button/Button.d.cts.map +1 -1
  20. package/dist/components/button/Button.d.mts.map +1 -1
  21. package/dist/components/button/Button.mjs +40 -6
  22. package/dist/components/button/Button.mjs.map +1 -1
  23. package/dist/components/card/Card.cjs +2 -2
  24. package/dist/components/card/Card.cjs.map +1 -1
  25. package/dist/components/card/Card.mjs +2 -2
  26. package/dist/components/card/Card.mjs.map +1 -1
  27. package/dist/components/checkbox/Checkbox.cjs +28 -11
  28. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  29. package/dist/components/checkbox/Checkbox.d.cts.map +1 -1
  30. package/dist/components/checkbox/Checkbox.d.mts.map +1 -1
  31. package/dist/components/checkbox/Checkbox.mjs +28 -11
  32. package/dist/components/checkbox/Checkbox.mjs.map +1 -1
  33. package/dist/components/code-block/CodeBlock.cjs +10 -7
  34. package/dist/components/code-block/CodeBlock.cjs.map +1 -1
  35. package/dist/components/code-block/CodeBlock.mjs +10 -7
  36. package/dist/components/code-block/CodeBlock.mjs.map +1 -1
  37. package/dist/components/container/Container.cjs +16 -5
  38. package/dist/components/container/Container.cjs.map +1 -1
  39. package/dist/components/container/Container.d.cts.map +1 -1
  40. package/dist/components/container/Container.d.mts.map +1 -1
  41. package/dist/components/container/Container.mjs +16 -5
  42. package/dist/components/container/Container.mjs.map +1 -1
  43. package/dist/components/country-select/CountrySelect.cjs +22 -13
  44. package/dist/components/country-select/CountrySelect.cjs.map +1 -1
  45. package/dist/components/country-select/CountrySelect.mjs +22 -13
  46. package/dist/components/country-select/CountrySelect.mjs.map +1 -1
  47. package/dist/components/dialog/Dialog.cjs +23 -5
  48. package/dist/components/dialog/Dialog.cjs.map +1 -1
  49. package/dist/components/dialog/Dialog.d.cts.map +1 -1
  50. package/dist/components/dialog/Dialog.d.mts.map +1 -1
  51. package/dist/components/dialog/Dialog.mjs +23 -5
  52. package/dist/components/dialog/Dialog.mjs.map +1 -1
  53. package/dist/components/divider/Divider.cjs +5 -5
  54. package/dist/components/divider/Divider.cjs.map +1 -1
  55. package/dist/components/divider/Divider.mjs +5 -5
  56. package/dist/components/divider/Divider.mjs.map +1 -1
  57. package/dist/components/dropdown-menu/DropdownMenu.cjs +8 -2
  58. package/dist/components/dropdown-menu/DropdownMenu.cjs.map +1 -1
  59. package/dist/components/dropdown-menu/DropdownMenu.d.cts.map +1 -1
  60. package/dist/components/dropdown-menu/DropdownMenu.d.mts.map +1 -1
  61. package/dist/components/dropdown-menu/DropdownMenu.mjs +8 -2
  62. package/dist/components/dropdown-menu/DropdownMenu.mjs.map +1 -1
  63. package/dist/components/empty/Empty.cjs +4 -1
  64. package/dist/components/empty/Empty.cjs.map +1 -1
  65. package/dist/components/empty/Empty.d.cts.map +1 -1
  66. package/dist/components/empty/Empty.d.mts.map +1 -1
  67. package/dist/components/empty/Empty.mjs +4 -1
  68. package/dist/components/empty/Empty.mjs.map +1 -1
  69. package/dist/components/grid/Grid.cjs +11 -1
  70. package/dist/components/grid/Grid.cjs.map +1 -1
  71. package/dist/components/grid/Grid.mjs +11 -1
  72. package/dist/components/grid/Grid.mjs.map +1 -1
  73. package/dist/components/input-group/InputGroup.cjs +11 -2
  74. package/dist/components/input-group/InputGroup.cjs.map +1 -1
  75. package/dist/components/input-group/InputGroup.d.cts.map +1 -1
  76. package/dist/components/input-group/InputGroup.d.mts.map +1 -1
  77. package/dist/components/input-group/InputGroup.mjs +11 -2
  78. package/dist/components/input-group/InputGroup.mjs.map +1 -1
  79. package/dist/components/item/Item.cjs +4 -1
  80. package/dist/components/item/Item.cjs.map +1 -1
  81. package/dist/components/item/Item.d.cts.map +1 -1
  82. package/dist/components/item/Item.d.mts.map +1 -1
  83. package/dist/components/item/Item.mjs +4 -1
  84. package/dist/components/item/Item.mjs.map +1 -1
  85. package/dist/components/link/Link.cjs +32 -8
  86. package/dist/components/link/Link.cjs.map +1 -1
  87. package/dist/components/link/Link.d.cts.map +1 -1
  88. package/dist/components/link/Link.d.mts.map +1 -1
  89. package/dist/components/link/Link.mjs +32 -8
  90. package/dist/components/link/Link.mjs.map +1 -1
  91. package/dist/components/list/List.cjs +15 -6
  92. package/dist/components/list/List.cjs.map +1 -1
  93. package/dist/components/list/List.d.cts.map +1 -1
  94. package/dist/components/list/List.d.mts.map +1 -1
  95. package/dist/components/list/List.mjs +15 -6
  96. package/dist/components/list/List.mjs.map +1 -1
  97. package/dist/components/model-card/ModelCard.cjs +12 -9
  98. package/dist/components/model-card/ModelCard.cjs.map +1 -1
  99. package/dist/components/model-card/ModelCard.mjs +12 -9
  100. package/dist/components/model-card/ModelCard.mjs.map +1 -1
  101. package/dist/components/navigation-menu/NavigationMenu.cjs +43 -7
  102. package/dist/components/navigation-menu/NavigationMenu.cjs.map +1 -1
  103. package/dist/components/navigation-menu/NavigationMenu.d.cts.map +1 -1
  104. package/dist/components/navigation-menu/NavigationMenu.d.mts.map +1 -1
  105. package/dist/components/navigation-menu/NavigationMenu.mjs +43 -7
  106. package/dist/components/navigation-menu/NavigationMenu.mjs.map +1 -1
  107. package/dist/components/progress/Progress.cjs +4 -1
  108. package/dist/components/progress/Progress.cjs.map +1 -1
  109. package/dist/components/progress/Progress.mjs +4 -1
  110. package/dist/components/progress/Progress.mjs.map +1 -1
  111. package/dist/components/search-input/SearchInput.cjs +1 -1
  112. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  113. package/dist/components/search-input/SearchInput.mjs +1 -1
  114. package/dist/components/search-input/SearchInput.mjs.map +1 -1
  115. package/dist/components/sidebar/Sidebar.cjs +15 -6
  116. package/dist/components/sidebar/Sidebar.cjs.map +1 -1
  117. package/dist/components/sidebar/Sidebar.d.cts.map +1 -1
  118. package/dist/components/sidebar/Sidebar.d.mts.map +1 -1
  119. package/dist/components/sidebar/Sidebar.mjs +15 -6
  120. package/dist/components/sidebar/Sidebar.mjs.map +1 -1
  121. package/dist/components/slider/Slider.cjs +8 -6
  122. package/dist/components/slider/Slider.cjs.map +1 -1
  123. package/dist/components/slider/Slider.d.cts +7 -5
  124. package/dist/components/slider/Slider.d.cts.map +1 -1
  125. package/dist/components/slider/Slider.d.mts +7 -5
  126. package/dist/components/slider/Slider.d.mts.map +1 -1
  127. package/dist/components/slider/Slider.mjs +8 -6
  128. package/dist/components/slider/Slider.mjs.map +1 -1
  129. package/dist/components/switch/Switch.cjs +42 -11
  130. package/dist/components/switch/Switch.cjs.map +1 -1
  131. package/dist/components/switch/Switch.d.cts.map +1 -1
  132. package/dist/components/switch/Switch.d.mts.map +1 -1
  133. package/dist/components/switch/Switch.mjs +42 -11
  134. package/dist/components/switch/Switch.mjs.map +1 -1
  135. package/dist/components/table/Table.cjs +22 -5
  136. package/dist/components/table/Table.cjs.map +1 -1
  137. package/dist/components/table/Table.d.cts.map +1 -1
  138. package/dist/components/table/Table.d.mts.map +1 -1
  139. package/dist/components/table/Table.mjs +22 -5
  140. package/dist/components/table/Table.mjs.map +1 -1
  141. package/dist/components/theme-provider/ThemeToggle.cjs +9 -3
  142. package/dist/components/theme-provider/ThemeToggle.cjs.map +1 -1
  143. package/dist/components/theme-provider/ThemeToggle.mjs +9 -3
  144. package/dist/components/theme-provider/ThemeToggle.mjs.map +1 -1
  145. package/dist/components/typography/Typography.cjs +19 -13
  146. package/dist/components/typography/Typography.cjs.map +1 -1
  147. package/dist/components/typography/Typography.d.cts.map +1 -1
  148. package/dist/components/typography/Typography.d.mts.map +1 -1
  149. package/dist/components/typography/Typography.mjs +19 -13
  150. package/dist/components/typography/Typography.mjs.map +1 -1
  151. package/dist/components/window-frame/WindowFrame.cjs +18 -8
  152. package/dist/components/window-frame/WindowFrame.cjs.map +1 -1
  153. package/dist/components/window-frame/WindowFrame.mjs +18 -8
  154. package/dist/components/window-frame/WindowFrame.mjs.map +1 -1
  155. package/package.json +1 -1
@@ -12,7 +12,10 @@ const Table = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
12
12
  Table.displayName = "Table";
13
13
  const TableHeader = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(TableHeader$1, {
14
14
  ref,
15
- className: cn("[&_tr]:border-b border-berget-table-border", className),
15
+ className: cn(`
16
+ border-berget-table-border
17
+ [&_tr]:border-b
18
+ `, className),
16
19
  ...props
17
20
  }));
18
21
  TableHeader.displayName = "TableHeader";
@@ -24,25 +27,39 @@ const TableBody = React.forwardRef(({ className, ...props }, ref) => /* @__PURE_
24
27
  TableBody.displayName = "TableBody";
25
28
  const TableFooter = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(TableFooter$1, {
26
29
  ref,
27
- className: cn("border-t border-berget-table-border bg-berget-table-footer-bg font-medium [&>tr]:last:border-0", className),
30
+ className: cn(`
31
+ border-t border-berget-table-border bg-berget-table-footer-bg
32
+ font-medium
33
+ [&>tr]:last:border-0
34
+ `, className),
28
35
  ...props
29
36
  }));
30
37
  TableFooter.displayName = "TableFooter";
31
38
  const TableRow = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(TableRow$1, {
32
39
  ref,
33
- className: cn("border-b border-berget-table-border transition-colors hover:bg-berget-table-row-hover data-[state=selected]:bg-berget-table-row-selected", className),
40
+ className: cn(`
41
+ border-b border-berget-table-border transition-colors
42
+ hover:bg-berget-table-row-hover
43
+ data-[state=selected]:bg-berget-table-row-selected
44
+ `, className),
34
45
  ...props
35
46
  }));
36
47
  TableRow.displayName = "TableRow";
37
48
  const TableHead = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(TableHead$1, {
38
49
  ref,
39
- className: cn("h-12 px-4 text-left align-middle font-medium text-berget-table-head-text [&:has([role=checkbox])]:pr-0", className),
50
+ className: cn(`
51
+ h-12 px-4 text-left align-middle font-medium text-berget-table-head-text
52
+ [&:has([role=checkbox])]:pr-0
53
+ `, className),
40
54
  ...props
41
55
  }));
42
56
  TableHead.displayName = "TableHead";
43
57
  const TableCell = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(TableCell$1, {
44
58
  ref,
45
- className: cn("p-4 align-middle [&:has([role=checkbox])]:pr-0", className),
59
+ className: cn(`
60
+ p-4 align-middle
61
+ [&:has([role=checkbox])]:pr-0
62
+ `, className),
46
63
  ...props
47
64
  }));
48
65
  TableCell.displayName = "TableCell";
@@ -1 +1 @@
1
- {"version":3,"file":"Table.mjs","names":["TablePrimitive","TableHeaderPrimitive","TableBodyPrimitive","TableFooterPrimitive","TableRowPrimitive","TableHeadPrimitive","TableCellPrimitive","TableCaptionPrimitive"],"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n Table as TablePrimitive,\n TableHeader as TableHeaderPrimitive,\n TableBody as TableBodyPrimitive,\n TableFooter as TableFooterPrimitive,\n TableHead as TableHeadPrimitive,\n TableRow as TableRowPrimitive,\n TableCell as TableCellPrimitive,\n TableCaption as TableCaptionPrimitive,\n} from '../../primitives/table';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => <TablePrimitive ref={ref} className={className} {...props} />,\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableHeaderPrimitive\n ref={ref}\n className={cn('[&_tr]:border-b border-berget-table-border', className)}\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableBodyPrimitive\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableFooterPrimitive\n ref={ref}\n className={cn(\n 'border-t border-berget-table-border bg-berget-table-footer-bg font-medium [&>tr]:last:border-0',\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <TableRowPrimitive\n ref={ref}\n className={cn(\n 'border-b border-berget-table-border transition-colors hover:bg-berget-table-row-hover data-[state=selected]:bg-berget-table-row-selected',\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableHeadPrimitive\n ref={ref}\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-berget-table-head-text [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableCellPrimitive\n ref={ref}\n className={cn('p-4 align-middle [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <TableCaptionPrimitive\n ref={ref}\n className={cn('mt-4 text-sm text-berget-table-caption-text', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n"],"mappings":";;;;;;AAeA,MAAM,QAAQ,MAAM,YACjB,EAAE,WAAW,GAAG,SAAS,QAAQ,oBAACA,SAAD;CAAqB;CAAgB;CAAW,GAAI;AAAQ,CAAA,CAChG;AACA,MAAM,cAAc;AAEpB,MAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,eAAD;CACO;CACL,WAAW,GAAG,8CAA8C,SAAS;CACrE,GAAI;AACL,CAAA,CACF;AACD,YAAY,cAAc;AAE1B,MAAM,YAAY,MAAM,YAGrB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,aAAD;CACO;CACL,WAAW,GAAG,8BAA8B,SAAS;CACrD,GAAI;AACL,CAAA,CACF;AACD,UAAU,cAAc;AAExB,MAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,eAAD;CACO;CACL,WAAW,GACT,kGACA,SACF;CACA,GAAI;AACL,CAAA,CACF;AACD,YAAY,cAAc;AAE1B,MAAM,WAAW,MAAM,YACpB,EAAE,WAAW,GAAG,SAAS,QACxB,oBAACC,YAAD;CACO;CACL,WAAW,GACT,4IACA,SACF;CACA,GAAI;AACL,CAAA,CAEL;AACA,SAAS,cAAc;AAEvB,MAAM,YAAY,MAAM,YAGrB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,aAAD;CACO;CACL,WAAW,GACT,0GACA,SACF;CACA,GAAI;AACL,CAAA,CACF;AACD,UAAU,cAAc;AAExB,MAAM,YAAY,MAAM,YAGrB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,aAAD;CACO;CACL,WAAW,GAAG,kDAAkD,SAAS;CACzE,GAAI;AACL,CAAA,CACF;AACD,UAAU,cAAc;AAExB,MAAM,eAAe,MAAM,YAGxB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,gBAAD;CACO;CACL,WAAW,GAAG,+CAA+C,SAAS;CACtE,GAAI;AACL,CAAA,CACF;AACD,aAAa,cAAc"}
1
+ {"version":3,"file":"Table.mjs","names":["TablePrimitive","TableHeaderPrimitive","TableBodyPrimitive","TableFooterPrimitive","TableRowPrimitive","TableHeadPrimitive","TableCellPrimitive","TableCaptionPrimitive"],"sources":["../../../src/components/table/Table.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n Table as TablePrimitive,\n TableHeader as TableHeaderPrimitive,\n TableBody as TableBodyPrimitive,\n TableFooter as TableFooterPrimitive,\n TableHead as TableHeadPrimitive,\n TableRow as TableRowPrimitive,\n TableCell as TableCellPrimitive,\n TableCaption as TableCaptionPrimitive,\n} from '../../primitives/table';\n\nconst Table = React.forwardRef<HTMLTableElement, React.HTMLAttributes<HTMLTableElement>>(\n ({ className, ...props }, ref) => <TablePrimitive ref={ref} className={className} {...props} />,\n);\nTable.displayName = 'Table';\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableHeaderPrimitive\n ref={ref}\n className={cn(\n `\n border-berget-table-border\n [&_tr]:border-b\n `,\n className,\n )}\n {...props}\n />\n));\nTableHeader.displayName = 'TableHeader';\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableBodyPrimitive\n ref={ref}\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n));\nTableBody.displayName = 'TableBody';\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <TableFooterPrimitive\n ref={ref}\n className={cn(\n `\n border-t border-berget-table-border bg-berget-table-footer-bg\n font-medium\n [&>tr]:last:border-0\n `,\n className,\n )}\n {...props}\n />\n));\nTableFooter.displayName = 'TableFooter';\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, React.HTMLAttributes<HTMLTableRowElement>>(\n ({ className, ...props }, ref) => (\n <TableRowPrimitive\n ref={ref}\n className={cn(\n `\n border-b border-berget-table-border transition-colors\n hover:bg-berget-table-row-hover\n data-[state=selected]:bg-berget-table-row-selected\n `,\n className,\n )}\n {...props}\n />\n ),\n);\nTableRow.displayName = 'TableRow';\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableHeadPrimitive\n ref={ref}\n className={cn(\n `\n h-12 px-4 text-left align-middle font-medium text-berget-table-head-text\n [&:has([role=checkbox])]:pr-0\n `,\n className,\n )}\n {...props}\n />\n));\nTableHead.displayName = 'TableHead';\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <TableCellPrimitive\n ref={ref}\n className={cn(\n `\n p-4 align-middle\n [&:has([role=checkbox])]:pr-0\n `,\n className,\n )}\n {...props}\n />\n));\nTableCell.displayName = 'TableCell';\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <TableCaptionPrimitive\n ref={ref}\n className={cn('mt-4 text-sm text-berget-table-caption-text', className)}\n {...props}\n />\n));\nTableCaption.displayName = 'TableCaption';\n\nexport { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };\n"],"mappings":";;;;;;AAeA,MAAM,QAAQ,MAAM,YACjB,EAAE,WAAW,GAAG,SAAS,QAAQ,oBAACA,SAAD;CAAqB;CAAgB;CAAW,GAAI;AAAQ,CAAA,CAChG;AACA,MAAM,cAAc;AAEpB,MAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,eAAD;CACO;CACL,WAAW,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA,CACF;AACD,YAAY,cAAc;AAE1B,MAAM,YAAY,MAAM,YAGrB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,aAAD;CACO;CACL,WAAW,GAAG,8BAA8B,SAAS;CACrD,GAAI;AACL,CAAA,CACF;AACD,UAAU,cAAc;AAExB,MAAM,cAAc,MAAM,YAGvB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,eAAD;CACO;CACL,WAAW,GACT;;;;SAKA,SACF;CACA,GAAI;AACL,CAAA,CACF;AACD,YAAY,cAAc;AAE1B,MAAM,WAAW,MAAM,YACpB,EAAE,WAAW,GAAG,SAAS,QACxB,oBAACC,YAAD;CACO;CACL,WAAW,GACT;;;;WAKA,SACF;CACA,GAAI;AACL,CAAA,CAEL;AACA,SAAS,cAAc;AAEvB,MAAM,YAAY,MAAM,YAGrB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,aAAD;CACO;CACL,WAAW,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA,CACF;AACD,UAAU,cAAc;AAExB,MAAM,YAAY,MAAM,YAGrB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,aAAD;CACO;CACL,WAAW,GACT;;;SAIA,SACF;CACA,GAAI;AACL,CAAA,CACF;AACD,UAAU,cAAc;AAExB,MAAM,eAAe,MAAM,YAGxB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAACC,gBAAD;CACO;CACL,WAAW,GAAG,+CAA+C,SAAS;CACtE,GAAI;AACL,CAAA,CACF;AACD,aAAa,cAAc"}
@@ -17,10 +17,16 @@ const ThemeToggle = react.forwardRef(({ className, label = "Toggle theme", size
17
17
  onClick: toggle,
18
18
  "aria-label": label,
19
19
  title: `Toggle ${resolvedTheme === "dark" ? "light" : "dark"} mode`,
20
- className: require_utils.cn("relative inline-flex items-center justify-center rounded-full cursor-pointer", "transition-colors duration-200", "hover:bg-berget-surface-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-berget-ring", size === "sm" && "w-7 h-7", size === "md" && "w-9 h-9", size === "lg" && "w-11 h-11", className),
20
+ className: require_utils.cn(`
21
+ relative inline-flex cursor-pointer items-center justify-center
22
+ rounded-full
23
+ `, "transition-colors duration-200", "hover:bg-berget-surface-hover", `
24
+ focus-visible:ring-2 focus-visible:ring-berget-ring
25
+ focus-visible:outline-none
26
+ `, size === "sm" && "size-7", size === "md" && "size-9", size === "lg" && "size-11", className),
21
27
  ...props,
22
28
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("svg", {
23
- className: require_utils.cn("absolute transition-all duration-200", resolvedTheme === "dark" ? "opacity-100 scale-100 rotate-0" : "opacity-0 scale-0 -rotate-90", size === "sm" && "w-3.5 h-3.5", size === "md" && "w-4 h-4", size === "lg" && "w-5 h-5"),
29
+ className: require_utils.cn("absolute transition-all duration-200", resolvedTheme === "dark" ? "scale-100 rotate-0 opacity-100" : "scale-0 -rotate-90 opacity-0", size === "sm" && "size-3.5", size === "md" && "size-4", size === "lg" && "size-5"),
24
30
  xmlns: "http://www.w3.org/2000/svg",
25
31
  fill: "none",
26
32
  viewBox: "0 0 24 24",
@@ -35,7 +41,7 @@ const ThemeToggle = react.forwardRef(({ className, label = "Toggle theme", size
35
41
  d: "M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41"
36
42
  })]
37
43
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("svg", {
38
- className: require_utils.cn("absolute transition-all duration-200", resolvedTheme === "light" ? "opacity-100 scale-100 rotate-0" : "opacity-0 scale-0 rotate-90", size === "sm" && "w-3.5 h-3.5", size === "md" && "w-4 h-4", size === "lg" && "w-5 h-5"),
44
+ className: require_utils.cn("absolute transition-all duration-200", resolvedTheme === "light" ? "scale-100 rotate-0 opacity-100" : "scale-0 rotate-90 opacity-0", size === "sm" && "size-3.5", size === "md" && "size-4", size === "lg" && "size-5"),
39
45
  xmlns: "http://www.w3.org/2000/svg",
40
46
  fill: "none",
41
47
  viewBox: "0 0 24 24",
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeToggle.cjs","names":["React","useTheme","cn"],"sources":["../../../src/components/theme-provider/ThemeToggle.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTheme } from './ThemeProvider';\nimport { cn } from '../../lib/utils';\n\nexport interface ThemeToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the toggle button */\n label?: string;\n /** Force a specific size class */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n ({ className, label = 'Toggle theme', size = 'md', ...props }, ref) => {\n const { theme, resolvedTheme, setTheme } = useTheme();\n\n const toggle = React.useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }, [theme, setTheme]);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={toggle}\n aria-label={label}\n title={`Toggle ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`}\n className={cn(\n 'relative inline-flex items-center justify-center rounded-full cursor-pointer',\n 'transition-colors duration-200',\n 'hover:bg-berget-surface-hover',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-berget-ring',\n size === 'sm' && 'w-7 h-7',\n size === 'md' && 'w-9 h-9',\n size === 'lg' && 'w-11 h-11',\n className,\n )}\n {...props}\n >\n {/* Sun */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'dark'\n ? 'opacity-100 scale-100 rotate-0'\n : 'opacity-0 scale-0 -rotate-90',\n size === 'sm' && 'w-3.5 h-3.5',\n size === 'md' && 'w-4 h-4',\n size === 'lg' && 'w-5 h-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path\n strokeLinecap=\"round\"\n d=\"M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41\"\n />\n </svg>\n\n {/* Moon */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'light'\n ? 'opacity-100 scale-100 rotate-0'\n : 'opacity-0 scale-0 rotate-90',\n size === 'sm' && 'w-3.5 h-3.5',\n size === 'md' && 'w-4 h-4',\n size === 'lg' && 'w-5 h-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n </button>\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle };\n"],"mappings":";;;;;;;;AAaA,MAAM,cAAcA,MAAM,YACvB,EAAE,WAAW,QAAQ,gBAAgB,OAAO,MAAM,GAAG,SAAS,QAAQ;CACrE,MAAM,EAAE,OAAO,eAAe,aAAaC,sBAAAA,SAAS;CAEpD,MAAM,SAASD,MAAM,kBAAkB;EACrC,SAAS,UAAU,SAAS,UAAU,MAAM;CAC9C,GAAG,CAAC,OAAO,QAAQ,CAAC;CAEpB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD;EACO;EACL,MAAK;EACL,SAAS;EACT,cAAY;EACZ,OAAO,UAAU,kBAAkB,SAAS,UAAU,OAAO;EAC7D,WAAWE,cAAAA,GACT,gFACA,kCACA,iCACA,kFACA,SAAS,QAAQ,WACjB,SAAS,QAAQ,WACjB,SAAS,QAAQ,aACjB,SACF;EACA,GAAI;EAhBN,UAAA,CAmBE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GACE,WAAWA,cAAAA,GACT,wCACA,kBAAkB,SACd,mCACA,gCACJ,SAAS,QAAQ,eACjB,SAAS,QAAQ,WACjB,SAAS,QAAQ,SACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAdf,UAAA,CAgBE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAK,CAAA,GAC/B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IACE,eAAc;IACd,GAAE;GACH,CAAA,CACE;EAGL,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GACE,WAAWA,cAAAA,GACT,wCACA,kBAAkB,UACd,mCACA,+BACJ,SAAS,QAAQ,eACjB,SAAS,QAAQ,WACjB,SAAS,QAAQ,SACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAEb,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IACE,eAAc;IACd,gBAAe;IACf,GAAE;GACH,CAAA;EACE,CAAA,CACC;;AAEZ,CACF;AAEA,YAAY,cAAc"}
1
+ {"version":3,"file":"ThemeToggle.cjs","names":["React","useTheme","cn"],"sources":["../../../src/components/theme-provider/ThemeToggle.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTheme } from './ThemeProvider';\nimport { cn } from '../../lib/utils';\n\nexport interface ThemeToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the toggle button */\n label?: string;\n /** Force a specific size class */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n ({ className, label = 'Toggle theme', size = 'md', ...props }, ref) => {\n const { theme, resolvedTheme, setTheme } = useTheme();\n\n const toggle = React.useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }, [theme, setTheme]);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={toggle}\n aria-label={label}\n title={`Toggle ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`}\n className={cn(\n `\n relative inline-flex cursor-pointer items-center justify-center\n rounded-full\n `,\n 'transition-colors duration-200',\n 'hover:bg-berget-surface-hover',\n `\n focus-visible:ring-2 focus-visible:ring-berget-ring\n focus-visible:outline-none\n `,\n size === 'sm' && 'size-7',\n size === 'md' && 'size-9',\n size === 'lg' && 'size-11',\n className,\n )}\n {...props}\n >\n {/* Sun */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'dark'\n ? 'scale-100 rotate-0 opacity-100'\n : 'scale-0 -rotate-90 opacity-0',\n size === 'sm' && 'size-3.5',\n size === 'md' && 'size-4',\n size === 'lg' && 'size-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path\n strokeLinecap=\"round\"\n d=\"M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41\"\n />\n </svg>\n\n {/* Moon */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'light'\n ? 'scale-100 rotate-0 opacity-100'\n : 'scale-0 rotate-90 opacity-0',\n size === 'sm' && 'size-3.5',\n size === 'md' && 'size-4',\n size === 'lg' && 'size-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n </button>\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle };\n"],"mappings":";;;;;;;;AAaA,MAAM,cAAcA,MAAM,YACvB,EAAE,WAAW,QAAQ,gBAAgB,OAAO,MAAM,GAAG,SAAS,QAAQ;CACrE,MAAM,EAAE,OAAO,eAAe,aAAaC,sBAAAA,SAAS;CAEpD,MAAM,SAASD,MAAM,kBAAkB;EACrC,SAAS,UAAU,SAAS,UAAU,MAAM;CAC9C,GAAG,CAAC,OAAO,QAAQ,CAAC;CAEpB,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,UAAD;EACO;EACL,MAAK;EACL,SAAS;EACT,cAAY;EACZ,OAAO,UAAU,kBAAkB,SAAS,UAAU,OAAO;EAC7D,WAAWE,cAAAA,GACT;;;aAIA,kCACA,iCACA;;;aAIA,SAAS,QAAQ,UACjB,SAAS,QAAQ,UACjB,SAAS,QAAQ,WACjB,SACF;EACA,GAAI;EAtBN,UAAA,CAyBE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GACE,WAAWA,cAAAA,GACT,wCACA,kBAAkB,SACd,mCACA,gCACJ,SAAS,QAAQ,YACjB,SAAS,QAAQ,UACjB,SAAS,QAAQ,QACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAdf,UAAA,CAgBE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAK,CAAA,GAC/B,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IACE,eAAc;IACd,GAAE;GACH,CAAA,CACE;EAGL,CAAA,GAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;GACE,WAAWA,cAAAA,GACT,wCACA,kBAAkB,UACd,mCACA,+BACJ,SAAS,QAAQ,YACjB,SAAS,QAAQ,UACjB,SAAS,QAAQ,QACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAEb,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IACE,eAAc;IACd,gBAAe;IACf,GAAE;GACH,CAAA;EACE,CAAA,CACC;;AAEZ,CACF;AAEA,YAAY,cAAc"}
@@ -15,10 +15,16 @@ const ThemeToggle = React.forwardRef(({ className, label = "Toggle theme", size
15
15
  onClick: toggle,
16
16
  "aria-label": label,
17
17
  title: `Toggle ${resolvedTheme === "dark" ? "light" : "dark"} mode`,
18
- className: cn("relative inline-flex items-center justify-center rounded-full cursor-pointer", "transition-colors duration-200", "hover:bg-berget-surface-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-berget-ring", size === "sm" && "w-7 h-7", size === "md" && "w-9 h-9", size === "lg" && "w-11 h-11", className),
18
+ className: cn(`
19
+ relative inline-flex cursor-pointer items-center justify-center
20
+ rounded-full
21
+ `, "transition-colors duration-200", "hover:bg-berget-surface-hover", `
22
+ focus-visible:ring-2 focus-visible:ring-berget-ring
23
+ focus-visible:outline-none
24
+ `, size === "sm" && "size-7", size === "md" && "size-9", size === "lg" && "size-11", className),
19
25
  ...props,
20
26
  children: [/* @__PURE__ */ jsxs("svg", {
21
- className: cn("absolute transition-all duration-200", resolvedTheme === "dark" ? "opacity-100 scale-100 rotate-0" : "opacity-0 scale-0 -rotate-90", size === "sm" && "w-3.5 h-3.5", size === "md" && "w-4 h-4", size === "lg" && "w-5 h-5"),
27
+ className: cn("absolute transition-all duration-200", resolvedTheme === "dark" ? "scale-100 rotate-0 opacity-100" : "scale-0 -rotate-90 opacity-0", size === "sm" && "size-3.5", size === "md" && "size-4", size === "lg" && "size-5"),
22
28
  xmlns: "http://www.w3.org/2000/svg",
23
29
  fill: "none",
24
30
  viewBox: "0 0 24 24",
@@ -33,7 +39,7 @@ const ThemeToggle = React.forwardRef(({ className, label = "Toggle theme", size
33
39
  d: "M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41"
34
40
  })]
35
41
  }), /* @__PURE__ */ jsx("svg", {
36
- className: cn("absolute transition-all duration-200", resolvedTheme === "light" ? "opacity-100 scale-100 rotate-0" : "opacity-0 scale-0 rotate-90", size === "sm" && "w-3.5 h-3.5", size === "md" && "w-4 h-4", size === "lg" && "w-5 h-5"),
42
+ className: cn("absolute transition-all duration-200", resolvedTheme === "light" ? "scale-100 rotate-0 opacity-100" : "scale-0 rotate-90 opacity-0", size === "sm" && "size-3.5", size === "md" && "size-4", size === "lg" && "size-5"),
37
43
  xmlns: "http://www.w3.org/2000/svg",
38
44
  fill: "none",
39
45
  viewBox: "0 0 24 24",
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeToggle.mjs","names":[],"sources":["../../../src/components/theme-provider/ThemeToggle.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTheme } from './ThemeProvider';\nimport { cn } from '../../lib/utils';\n\nexport interface ThemeToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the toggle button */\n label?: string;\n /** Force a specific size class */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n ({ className, label = 'Toggle theme', size = 'md', ...props }, ref) => {\n const { theme, resolvedTheme, setTheme } = useTheme();\n\n const toggle = React.useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }, [theme, setTheme]);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={toggle}\n aria-label={label}\n title={`Toggle ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`}\n className={cn(\n 'relative inline-flex items-center justify-center rounded-full cursor-pointer',\n 'transition-colors duration-200',\n 'hover:bg-berget-surface-hover',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-berget-ring',\n size === 'sm' && 'w-7 h-7',\n size === 'md' && 'w-9 h-9',\n size === 'lg' && 'w-11 h-11',\n className,\n )}\n {...props}\n >\n {/* Sun */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'dark'\n ? 'opacity-100 scale-100 rotate-0'\n : 'opacity-0 scale-0 -rotate-90',\n size === 'sm' && 'w-3.5 h-3.5',\n size === 'md' && 'w-4 h-4',\n size === 'lg' && 'w-5 h-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path\n strokeLinecap=\"round\"\n d=\"M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41\"\n />\n </svg>\n\n {/* Moon */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'light'\n ? 'opacity-100 scale-100 rotate-0'\n : 'opacity-0 scale-0 rotate-90',\n size === 'sm' && 'w-3.5 h-3.5',\n size === 'md' && 'w-4 h-4',\n size === 'lg' && 'w-5 h-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n </button>\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle };\n"],"mappings":";;;;;;AAaA,MAAM,cAAc,MAAM,YACvB,EAAE,WAAW,QAAQ,gBAAgB,OAAO,MAAM,GAAG,SAAS,QAAQ;CACrE,MAAM,EAAE,OAAO,eAAe,aAAa,SAAS;CAEpD,MAAM,SAAS,MAAM,kBAAkB;EACrC,SAAS,UAAU,SAAS,UAAU,MAAM;CAC9C,GAAG,CAAC,OAAO,QAAQ,CAAC;CAEpB,OACE,qBAAC,UAAD;EACO;EACL,MAAK;EACL,SAAS;EACT,cAAY;EACZ,OAAO,UAAU,kBAAkB,SAAS,UAAU,OAAO;EAC7D,WAAW,GACT,gFACA,kCACA,iCACA,kFACA,SAAS,QAAQ,WACjB,SAAS,QAAQ,WACjB,SAAS,QAAQ,aACjB,SACF;EACA,GAAI;EAhBN,UAAA,CAmBE,qBAAC,OAAD;GACE,WAAW,GACT,wCACA,kBAAkB,SACd,mCACA,gCACJ,SAAS,QAAQ,eACjB,SAAS,QAAQ,WACjB,SAAS,QAAQ,SACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAdf,UAAA,CAgBE,oBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAK,CAAA,GAC/B,oBAAC,QAAD;IACE,eAAc;IACd,GAAE;GACH,CAAA,CACE;EAGL,CAAA,GAAA,oBAAC,OAAD;GACE,WAAW,GACT,wCACA,kBAAkB,UACd,mCACA,+BACJ,SAAS,QAAQ,eACjB,SAAS,QAAQ,WACjB,SAAS,QAAQ,SACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAEb,UAAA,oBAAC,QAAD;IACE,eAAc;IACd,gBAAe;IACf,GAAE;GACH,CAAA;EACE,CAAA,CACC;;AAEZ,CACF;AAEA,YAAY,cAAc"}
1
+ {"version":3,"file":"ThemeToggle.mjs","names":[],"sources":["../../../src/components/theme-provider/ThemeToggle.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTheme } from './ThemeProvider';\nimport { cn } from '../../lib/utils';\n\nexport interface ThemeToggleProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n /** Accessible label for the toggle button */\n label?: string;\n /** Force a specific size class */\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst ThemeToggle = React.forwardRef<HTMLButtonElement, ThemeToggleProps>(\n ({ className, label = 'Toggle theme', size = 'md', ...props }, ref) => {\n const { theme, resolvedTheme, setTheme } = useTheme();\n\n const toggle = React.useCallback(() => {\n setTheme(theme === 'dark' ? 'light' : 'dark');\n }, [theme, setTheme]);\n\n return (\n <button\n ref={ref}\n type=\"button\"\n onClick={toggle}\n aria-label={label}\n title={`Toggle ${resolvedTheme === 'dark' ? 'light' : 'dark'} mode`}\n className={cn(\n `\n relative inline-flex cursor-pointer items-center justify-center\n rounded-full\n `,\n 'transition-colors duration-200',\n 'hover:bg-berget-surface-hover',\n `\n focus-visible:ring-2 focus-visible:ring-berget-ring\n focus-visible:outline-none\n `,\n size === 'sm' && 'size-7',\n size === 'md' && 'size-9',\n size === 'lg' && 'size-11',\n className,\n )}\n {...props}\n >\n {/* Sun */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'dark'\n ? 'scale-100 rotate-0 opacity-100'\n : 'scale-0 -rotate-90 opacity-0',\n size === 'sm' && 'size-3.5',\n size === 'md' && 'size-4',\n size === 'lg' && 'size-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <circle cx=\"12\" cy=\"12\" r=\"4\" />\n <path\n strokeLinecap=\"round\"\n d=\"M12 2v2m0 16v2m9-10h-2M5 12H3m15.36 6.36-1.41-1.41M6.05 6.05 4.64 4.64m12.72 0-1.41 1.41M6.05 17.95l-1.41 1.41\"\n />\n </svg>\n\n {/* Moon */}\n <svg\n className={cn(\n 'absolute transition-all duration-200',\n resolvedTheme === 'light'\n ? 'scale-100 rotate-0 opacity-100'\n : 'scale-0 rotate-90 opacity-0',\n size === 'sm' && 'size-3.5',\n size === 'md' && 'size-4',\n size === 'lg' && 'size-5',\n )}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z\"\n />\n </svg>\n </button>\n );\n },\n);\n\nThemeToggle.displayName = 'ThemeToggle';\n\nexport { ThemeToggle };\n"],"mappings":";;;;;;AAaA,MAAM,cAAc,MAAM,YACvB,EAAE,WAAW,QAAQ,gBAAgB,OAAO,MAAM,GAAG,SAAS,QAAQ;CACrE,MAAM,EAAE,OAAO,eAAe,aAAa,SAAS;CAEpD,MAAM,SAAS,MAAM,kBAAkB;EACrC,SAAS,UAAU,SAAS,UAAU,MAAM;CAC9C,GAAG,CAAC,OAAO,QAAQ,CAAC;CAEpB,OACE,qBAAC,UAAD;EACO;EACL,MAAK;EACL,SAAS;EACT,cAAY;EACZ,OAAO,UAAU,kBAAkB,SAAS,UAAU,OAAO;EAC7D,WAAW,GACT;;;aAIA,kCACA,iCACA;;;aAIA,SAAS,QAAQ,UACjB,SAAS,QAAQ,UACjB,SAAS,QAAQ,WACjB,SACF;EACA,GAAI;EAtBN,UAAA,CAyBE,qBAAC,OAAD;GACE,WAAW,GACT,wCACA,kBAAkB,SACd,mCACA,gCACJ,SAAS,QAAQ,YACjB,SAAS,QAAQ,UACjB,SAAS,QAAQ,QACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAdf,UAAA,CAgBE,oBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAK,CAAA,GAC/B,oBAAC,QAAD;IACE,eAAc;IACd,GAAE;GACH,CAAA,CACE;EAGL,CAAA,GAAA,oBAAC,OAAD;GACE,WAAW,GACT,wCACA,kBAAkB,UACd,mCACA,+BACJ,SAAS,QAAQ,YACjB,SAAS,QAAQ,UACjB,SAAS,QAAQ,QACnB;GACA,OAAM;GACN,MAAK;GACL,SAAQ;GACR,QAAO;GACP,aAAa;GAEb,UAAA,oBAAC,QAAD;IACE,eAAc;IACd,gBAAe;IACf,GAAE;GACH,CAAA;EACE,CAAA,CACC;;AAEZ,CACF;AAEA,YAAY,cAAc"}
@@ -8,19 +8,25 @@ let react_jsx_runtime = require("react/jsx-runtime");
8
8
  const typographyVariants = (0, require("class-variance-authority").cva)("", {
9
9
  variants: {
10
10
  variant: {
11
- h1: "text-h1 font-h1 leading-h1 tracking-h1 text-balance",
12
- hero: "text-hero font-hero leading-hero tracking-hero text-balance font-normal [font-feature-settings:'normal']",
13
- h2: "text-h2 font-h2 leading-h2 tracking-h2 text-balance",
14
- h3: "text-h3 font-h3 leading-h3 tracking-h3 text-balance",
15
- h4: "text-h4 font-h4 leading-h4 tracking-h4 text-balance",
16
- h5: "text-xl font-xl leading-xl text-balance",
17
- large: "text-lg font-lg leading-lg text-pretty",
18
- body: "text-p font-p leading-p text-pretty",
19
- small: "text-sm font-sm leading-sm text-pretty",
20
- xs: "text-xs font-xs leading-xs text-pretty",
21
- caption: "text-caption font-caption leading-caption tracking-caption text-pretty font-semibold uppercase",
22
- mono: "text-mono font-mono leading-mono text-pretty",
23
- code: "text-xs font-mono"
11
+ h1: "font-h1 text-h1/h1 tracking-h1 text-balance",
12
+ hero: `
13
+ font-hero font-features-['normal'] text-hero/hero font-normal
14
+ tracking-hero text-balance
15
+ `,
16
+ h2: "font-h2 text-h2/h2 tracking-h2 text-balance",
17
+ h3: "font-h3 text-h3/tight tracking-h3 text-balance",
18
+ h4: "font-h4 text-h4/h4 tracking-h4 text-balance",
19
+ h5: "font-xl text-xl/h2 text-balance",
20
+ large: "font-lg text-lg/p text-pretty",
21
+ body: "font-p text-base/p text-pretty",
22
+ small: "font-sm text-caption/p text-pretty",
23
+ xs: "font-xs text-xs/p text-pretty",
24
+ caption: `
25
+ font-caption text-caption/h2 font-semibold tracking-caption text-pretty
26
+ uppercase
27
+ `,
28
+ mono: "font-mono text-base/p text-pretty",
29
+ code: "font-mono text-xs"
24
30
  },
25
31
  color: {
26
32
  default: "text-berget-foreground",
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.cjs","names":["cva","React","cn"],"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,sBAAA,G,kCAAqBA,CAAAA,CAAAA,IAAAA,CAAI,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,aAAaC,MAAM,YACtB,EAAE,WAAW,UAAU,QAAQ,QAAQ,WAAW,IAAI,UAAU,GAAG,SAAS,QAAQ;CACnF,MAAM,YAAa,MAAM,kBAAkB,WAAW,WAAW;CAQjE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;EACE,WAAWC,cAAAA,GAAG,mBAAmB;GAAE;GAAS;EAAM,CAAC,GAAG,SAAS;EAC1D;EACL,GAAK;EAEJ;CACQ,CAAA;AAEf,CACF;AACA,WAAW,cAAc"}
1
+ {"version":3,"file":"Typography.cjs","names":["cva","React","cn"],"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,sBAAA,G,kCAAqBA,CAAAA,CAAAA,IAAAA,CAAI,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,aAAaC,MAAM,YACtB,EAAE,WAAW,UAAU,QAAQ,QAAQ,WAAW,IAAI,UAAU,GAAG,SAAS,QAAQ;CACnF,MAAM,YAAa,MAAM,kBAAkB,WAAW,WAAW;CAQjE,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;EACE,WAAWC,cAAAA,GAAG,mBAAmB;GAAE;GAAS;EAAM,CAAC,GAAG,SAAS;EAC1D;EACL,GAAK;EAEJ;CACQ,CAAA;AAEf,CACF;AACA,WAAW,cAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.d.cts","names":[],"sources":["../../../src/components/typography/Typography.tsx"],"mappings":";;;cAMM,qBAAkB;;;6CAoCtB;iBAkBe,wBAEb,KAAK,MAAM,eAAe,wBAC1B,oBAAoB;EACtB,KAAK,MAAM;;cAGP,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
1
+ {"version":3,"file":"Typography.d.cts","names":[],"sources":["../../../src/components/typography/Typography.tsx"],"mappings":";;;cAMM,qBAAkB;;;6CAyCtB;iBAkBe,wBAEb,KAAK,MAAM,eAAe,wBAC1B,oBAAoB;EACtB,KAAK,MAAM;;cAGP,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Typography.d.mts","names":[],"sources":["../../../src/components/typography/Typography.tsx"],"mappings":";;;cAMM,qBAAkB;;;6CAoCtB;iBAkBe,wBAEb,KAAK,MAAM,eAAe,wBAC1B,oBAAoB;EACtB,KAAK,MAAM;;cAGP,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
1
+ {"version":3,"file":"Typography.d.mts","names":[],"sources":["../../../src/components/typography/Typography.tsx"],"mappings":";;;cAMM,qBAAkB;;;6CAyCtB;iBAkBe,wBAEb,KAAK,MAAM,eAAe,wBAC1B,oBAAoB;EACtB,KAAK,MAAM;;cAGP,YAAU,MAAA,0BAAA,kBAAA,MAAA,cAAA"}
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bergetai/ui",
3
- "version": "0.16.0",
3
+ "version": "0.16.2",
4
4
  "description": "Berget Design System - Scandinavian-inspired design system with console aesthetic",
5
5
  "type": "module",
6
6
  "license": "MIT",