@bergetai/ui 0.16.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 (151) 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 +1 -1
  122. package/dist/components/slider/Slider.cjs.map +1 -1
  123. package/dist/components/slider/Slider.mjs +1 -1
  124. package/dist/components/slider/Slider.mjs.map +1 -1
  125. package/dist/components/switch/Switch.cjs +42 -11
  126. package/dist/components/switch/Switch.cjs.map +1 -1
  127. package/dist/components/switch/Switch.d.cts.map +1 -1
  128. package/dist/components/switch/Switch.d.mts.map +1 -1
  129. package/dist/components/switch/Switch.mjs +42 -11
  130. package/dist/components/switch/Switch.mjs.map +1 -1
  131. package/dist/components/table/Table.cjs +22 -5
  132. package/dist/components/table/Table.cjs.map +1 -1
  133. package/dist/components/table/Table.d.cts.map +1 -1
  134. package/dist/components/table/Table.d.mts.map +1 -1
  135. package/dist/components/table/Table.mjs +22 -5
  136. package/dist/components/table/Table.mjs.map +1 -1
  137. package/dist/components/theme-provider/ThemeToggle.cjs +9 -3
  138. package/dist/components/theme-provider/ThemeToggle.cjs.map +1 -1
  139. package/dist/components/theme-provider/ThemeToggle.mjs +9 -3
  140. package/dist/components/theme-provider/ThemeToggle.mjs.map +1 -1
  141. package/dist/components/typography/Typography.cjs +19 -13
  142. package/dist/components/typography/Typography.cjs.map +1 -1
  143. package/dist/components/typography/Typography.d.cts.map +1 -1
  144. package/dist/components/typography/Typography.d.mts.map +1 -1
  145. package/dist/components/typography/Typography.mjs +19 -13
  146. package/dist/components/typography/Typography.mjs.map +1 -1
  147. package/dist/components/window-frame/WindowFrame.cjs +18 -8
  148. package/dist/components/window-frame/WindowFrame.cjs.map +1 -1
  149. package/dist/components/window-frame/WindowFrame.mjs +18 -8
  150. package/dist/components/window-frame/WindowFrame.mjs.map +1 -1
  151. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ModelCard.mjs","names":[],"sources":["../../../src/components/model-card/ModelCard.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Card } from '../card';\nimport { type ModelCategory, type ModelLogoProvider, ModelLogo } from '../model-logo';\nimport { Typography } from '../typography';\n\n/**\n * ModelCard — a whole-card link tile for presenting AI models in a grid:\n * provider mark, category eyebrow, model name, optional lifecycle tab,\n * per-unit price columns, and fine-print capability facts.\n *\n * Presentational only: all copy is passed in as props; the card itself\n * owns no strings and no domain types.\n */\n/** Lifecycle status shown as a corner tab on the card. */\nexport type ModelLifecycle = 'preview' | 'active' | 'deprecated';\n\nconst lifecycleLabels: Record<ModelLifecycle, string> = {\n preview: 'Preview',\n active: 'Active',\n deprecated: 'Deprecated',\n};\n\n/** Per-status styling for the lifecycle tab (tint classes come from\n * index.css; deprecated uses the granite neutral). Brightens when the\n * card (`group`) is hovered. */\nconst lifecycleStyles: Record<ModelLifecycle, string> = {\n preview: 'berget-tint berget-tint-warning',\n active: 'berget-tint berget-tint-success',\n deprecated: 'bg-berget-brand-granite-700 text-berget-muted-foreground',\n};\n\nexport type { ModelCategory, ModelLogoProvider };\n\nexport interface ModelCardProps extends Omit<React.ComponentProps<'a'>, 'title' | 'children'> {\n /** Provider mark, rendered in a bordered square at the top of the card. */\n icon?: React.ReactNode;\n /**\n * Model family for the icon square — resolved to a bundled brand mark\n * (e.g. `'mistralai'`, `'moonshotai'`, `'berget'`). Ignored when `icon`\n * is set.\n */\n provider?: string;\n /** Fallback category for the icon square when no brand mark exists\n * (maps to the `model_type` values from `GET /v1/models`). */\n category?: ModelCategory;\n /** Small category label above the title (rendered uppercase). */\n eyebrow?: string;\n /** The model name — rendered as an `h3` and truncated when too long. */\n title: React.ReactNode;\n /**\n * Lifecycle status rendered as a corner tab: `preview` (yellow),\n * `active` (green), `deprecated` (gray).\n */\n lifecycle?: ModelLifecycle;\n /** Secondary line under the title, e.g. the provider name. */\n description?: React.ReactNode;\n /** Label-above-value columns, e.g. per-million-token input/output prices. */\n columns?: { label: React.ReactNode; value: React.ReactNode }[];\n /**\n * Fine-print capability facts rendered in one uppercase row with\n * square separators drawn by the card, e.g. ['Vision', '262K context'].\n */\n meta?: React.ReactNode[];\n /** Link target for the whole card. */\n href: string;\n /** Opens the link in a new tab (adds `target`/`rel`). */\n external?: boolean;\n /** Extra content rendered at the bottom of the card. */\n children?: React.ReactNode;\n}\n\nconst ModelCard = React.forwardRef<HTMLAnchorElement, ModelCardProps>(\n (\n {\n icon,\n provider,\n category,\n eyebrow,\n title,\n lifecycle,\n description,\n columns,\n meta,\n href,\n external,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const titleId = React.useId();\n\n return (\n <a\n ref={ref}\n href={href}\n aria-labelledby={titleId}\n {...(external ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n className={cn('group block', className)}\n {...props}\n >\n <Card\n variant=\"filled\"\n className=\"relative flex h-full flex-col bg-berget-card-filled-bg p-5 transition-all hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))] sm:p-6\"\n >\n {lifecycle && (\n <div className=\"absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\">\n <div\n className={cn(\n 'inline-flex h-6 items-center whitespace-nowrap border-0! px-8 text-sm',\n lifecycleStyles[lifecycle],\n )}\n >\n {lifecycleLabels[lifecycle]}\n </div>\n </div>\n )}\n {(icon || provider || category) && (\n <div className=\"flex h-12 w-12 shrink-0 items-center justify-center rounded-berget-xs border border-berget-border bg-white/5 text-berget-foreground\">\n {icon ?? <ModelLogo provider={provider} category={category} />}\n </div>\n )}\n\n {/* Identity cluster: eyebrow, title, description — cb tightly\n grouped; the card's flex gap separates it from other groups. */}\n <header>\n {eyebrow && (\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"font-medium uppercase leading-none tracking-[0.25em]\"\n >\n {eyebrow}\n </Typography>\n )}\n <div className={cn('flex items-baseline gap-3', lifecycle && 'pr-24')}>\n <Typography\n as=\"h3\"\n id={titleId}\n variant=\"h5\"\n className=\"min-w-0 truncate whitespace-nowrap leading-tight\"\n style={{ fontFeatureSettings: 'normal' }}\n >\n {title}\n </Typography>\n </div>\n {description && (\n <Typography variant=\"xs\" color=\"muted\" className=\"leading-none\">\n {description}\n </Typography>\n )}\n </header>\n\n {columns && columns.length > 0 && (\n <div className=\"grid grid-cols-2\">\n {columns.map((col, i) => (\n <div key={i}>\n <Typography variant=\"xs\" color=\"muted\" className=\"leading-none\">\n {col.label}\n </Typography>\n <Typography\n variant=\"body\"\n className=\"tabular-nums leading-none\"\n style={{ fontFeatureSettings: 'normal' }}\n >\n {col.value}\n </Typography>\n </div>\n ))}\n </div>\n )}\n\n {meta && meta.length > 0 && (\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"text-[0.65rem] uppercase tracking-[0.15em]\"\n >\n {meta.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 && ' ▪ '}\n {item}\n </React.Fragment>\n ))}\n </Typography>\n )}\n\n {children}\n </Card>\n </a>\n );\n },\n);\nModelCard.displayName = 'ModelCard';\n\nexport { ModelCard };\n"],"mappings":";;;;;;;;AAmBA,MAAM,kBAAkD;CACtD,SAAS;CACT,QAAQ;CACR,YAAY;AACd;;;;AAKA,MAAM,kBAAkD;CACtD,SAAS;CACT,QAAQ;CACR,YAAY;AACd;AA0CA,MAAM,YAAY,MAAM,YAEpB,EACE,MACA,UACA,UACA,SACA,OACA,WACA,aACA,SACA,MACA,MACA,UACA,WACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,UAAU,MAAM,MAAM;CAE5B,OACE,oBAAC,KAAD;EACO;EACC;EACN,mBAAiB;EACjB,GAAK,WAAW;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACpE,WAAW,GAAG,eAAe,SAAS;EACtC,GAAI;EAEJ,UAAA,qBAAC,MAAD;GACE,SAAQ;GACR,WAAU;GAFZ,UAAA;IAIG,aACC,oBAAC,OAAD;KAAK,WAAU;KACb,UAAA,oBAAC,OAAD;MACE,WAAW,GACT,yEACA,gBAAgB,UAClB;MAEC,UAAA,gBAAgB;KACd,CAAA;IACF,CAAA;KAEL,QAAQ,YAAY,aACpB,oBAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,oBAAC,WAAD;MAAqB;MAAoB;KAAW,CAAA;IAC1D,CAAA;IAKP,qBAAC,UAAD,EAAA,UAAA;KACG,WACC,oBAAC,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAET,UAAA;KACS,CAAA;KAEd,oBAAC,OAAD;MAAK,WAAW,GAAG,6BAA6B,aAAa,OAAO;MAClE,UAAA,oBAAC,YAAD;OACE,IAAG;OACH,IAAI;OACJ,SAAQ;OACR,WAAU;OACV,OAAO,EAAE,qBAAqB,SAAS;OAEtC,UAAA;MACS,CAAA;KACT,CAAA;KACJ,eACC,oBAAC,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA;KACS,CAAA;IAER,EAAA,CAAA;IAEP,WAAW,QAAQ,SAAS,KAC3B,oBAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,KAAK,KAAK,MACjB,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA,IAAI;KACK,CAAA,GACZ,oBAAC,YAAD;MACE,SAAQ;MACR,WAAU;MACV,OAAO,EAAE,qBAAqB,SAAS;MAEtC,UAAA,IAAI;KACK,CAAA,CACT,EAAA,GAXK,CAWL,CACN;IACE,CAAA;IAGN,QAAQ,KAAK,SAAS,KACrB,oBAAC,YAAD;KACE,SAAQ;KACR,OAAM;KACN,WAAU;KAET,UAAA,KAAK,KAAK,MAAM,MACf,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,IAAI,KAAK,OACT,IACa,EAAA,GAHK,CAGL,CACjB;IACS,CAAA;IAGb;GACG;;CACL,CAAA;AAEP,CACF;AACA,UAAU,cAAc"}
1
+ {"version":3,"file":"ModelCard.mjs","names":[],"sources":["../../../src/components/model-card/ModelCard.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { Card } from '../card';\nimport { type ModelCategory, type ModelLogoProvider, ModelLogo } from '../model-logo';\nimport { Typography } from '../typography';\n\n/**\n * ModelCard — a whole-card link tile for presenting AI models in a grid:\n * provider mark, category eyebrow, model name, optional lifecycle tab,\n * per-unit price columns, and fine-print capability facts.\n *\n * Presentational only: all copy is passed in as props; the card itself\n * owns no strings and no domain types.\n */\n/** Lifecycle status shown as a corner tab on the card. */\nexport type ModelLifecycle = 'preview' | 'active' | 'deprecated';\n\nconst lifecycleLabels: Record<ModelLifecycle, string> = {\n preview: 'Preview',\n active: 'Active',\n deprecated: 'Deprecated',\n};\n\n/** Per-status styling for the lifecycle tab (tint classes come from\n * index.css; deprecated uses the granite neutral). Brightens when the\n * card (`group`) is hovered. */\nconst lifecycleStyles: Record<ModelLifecycle, string> = {\n preview: 'berget-tint berget-tint-warning',\n active: 'berget-tint berget-tint-success',\n deprecated: 'bg-berget-brand-granite-700 text-berget-muted-foreground',\n};\n\nexport type { ModelCategory, ModelLogoProvider };\n\nexport interface ModelCardProps extends Omit<React.ComponentProps<'a'>, 'title' | 'children'> {\n /** Provider mark, rendered in a bordered square at the top of the card. */\n icon?: React.ReactNode;\n /**\n * Model family for the icon square — resolved to a bundled brand mark\n * (e.g. `'mistralai'`, `'moonshotai'`, `'berget'`). Ignored when `icon`\n * is set.\n */\n provider?: string;\n /** Fallback category for the icon square when no brand mark exists\n * (maps to the `model_type` values from `GET /v1/models`). */\n category?: ModelCategory;\n /** Small category label above the title (rendered uppercase). */\n eyebrow?: string;\n /** The model name — rendered as an `h3` and truncated when too long. */\n title: React.ReactNode;\n /**\n * Lifecycle status rendered as a corner tab: `preview` (yellow),\n * `active` (green), `deprecated` (gray).\n */\n lifecycle?: ModelLifecycle;\n /** Secondary line under the title, e.g. the provider name. */\n description?: React.ReactNode;\n /** Label-above-value columns, e.g. per-million-token input/output prices. */\n columns?: { label: React.ReactNode; value: React.ReactNode }[];\n /**\n * Fine-print capability facts rendered in one uppercase row with\n * square separators drawn by the card, e.g. ['Vision', '262K context'].\n */\n meta?: React.ReactNode[];\n /** Link target for the whole card. */\n href: string;\n /** Opens the link in a new tab (adds `target`/`rel`). */\n external?: boolean;\n /** Extra content rendered at the bottom of the card. */\n children?: React.ReactNode;\n}\n\nconst ModelCard = React.forwardRef<HTMLAnchorElement, ModelCardProps>(\n (\n {\n icon,\n provider,\n category,\n eyebrow,\n title,\n lifecycle,\n description,\n columns,\n meta,\n href,\n external,\n className,\n children,\n ...props\n },\n ref,\n ) => {\n const titleId = React.useId();\n\n return (\n <a\n ref={ref}\n href={href}\n aria-labelledby={titleId}\n {...(external ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n className={cn('group block', className)}\n {...props}\n >\n <Card\n variant=\"filled\"\n className=\"\n relative flex h-full flex-col bg-berget-card-filled-bg p-5\n transition-all\n hover:bg-[color-mix(in_oklab,var(--berget-brand-granite-100)_5%,var(--berget-card-filled-bg))]\n sm:p-6\n \"\n >\n {lifecycle && (\n <div\n className=\"\n absolute top-0 right-0 z-10 overflow-hidden rounded-bl-berget-sm\n \"\n >\n <div\n className={cn(\n `\n inline-flex h-6 items-center border-0! px-8 text-sm\n whitespace-nowrap\n `,\n lifecycleStyles[lifecycle],\n )}\n >\n {lifecycleLabels[lifecycle]}\n </div>\n </div>\n )}\n {(icon || provider || category) && (\n <div\n className=\"\n flex size-12 shrink-0 items-center justify-center\n rounded-berget-xs border border-berget-border bg-white/5\n text-berget-foreground\n \"\n >\n {icon ?? <ModelLogo provider={provider} category={category} />}\n </div>\n )}\n\n {/* Identity cluster: eyebrow, title, description — cb tightly\n grouped; the card's flex gap separates it from other groups. */}\n <header>\n {eyebrow && (\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"leading-none font-medium tracking-[0.25em] uppercase\"\n >\n {eyebrow}\n </Typography>\n )}\n <div className={cn('flex items-baseline gap-3', lifecycle && 'pr-24')}>\n <Typography\n as=\"h3\"\n id={titleId}\n variant=\"h5\"\n className=\"min-w-0 truncate leading-tight whitespace-nowrap\"\n style={{ fontFeatureSettings: 'normal' }}\n >\n {title}\n </Typography>\n </div>\n {description && (\n <Typography variant=\"xs\" color=\"muted\" className=\"leading-none\">\n {description}\n </Typography>\n )}\n </header>\n\n {columns && columns.length > 0 && (\n <div className=\"grid grid-cols-2\">\n {columns.map((col, i) => (\n <div key={i}>\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"\n leading-none\n \"\n >\n {col.label}\n </Typography>\n <Typography\n variant=\"body\"\n className=\"leading-none tabular-nums\"\n style={{ fontFeatureSettings: 'normal' }}\n >\n {col.value}\n </Typography>\n </div>\n ))}\n </div>\n )}\n\n {meta && meta.length > 0 && (\n <Typography\n variant=\"xs\"\n color=\"muted\"\n className=\"text-[0.65rem] tracking-[0.15em] uppercase\"\n >\n {meta.map((item, i) => (\n <React.Fragment key={i}>\n {i > 0 && ' ▪ '}\n {item}\n </React.Fragment>\n ))}\n </Typography>\n )}\n\n {children}\n </Card>\n </a>\n );\n },\n);\nModelCard.displayName = 'ModelCard';\n\nexport { ModelCard };\n"],"mappings":";;;;;;;;AAmBA,MAAM,kBAAkD;CACtD,SAAS;CACT,QAAQ;CACR,YAAY;AACd;;;;AAKA,MAAM,kBAAkD;CACtD,SAAS;CACT,QAAQ;CACR,YAAY;AACd;AA0CA,MAAM,YAAY,MAAM,YAEpB,EACE,MACA,UACA,UACA,SACA,OACA,WACA,aACA,SACA,MACA,MACA,UACA,WACA,UACA,GAAG,SAEL,QACG;CACH,MAAM,UAAU,MAAM,MAAM;CAE5B,OACE,oBAAC,KAAD;EACO;EACC;EACN,mBAAiB;EACjB,GAAK,WAAW;GAAE,QAAQ;GAAU,KAAK;EAAsB,IAAI,CAAC;EACpE,WAAW,GAAG,eAAe,SAAS;EACtC,GAAI;EAEJ,UAAA,qBAAC,MAAD;GACE,SAAQ;GACR,WAAU;GAFZ,UAAA;IASG,aACC,oBAAC,OAAD;KACE,WAAU;KAIV,UAAA,oBAAC,OAAD;MACE,WAAW,GACT;;;qBAIA,gBAAgB,UAClB;MAEC,UAAA,gBAAgB;KACd,CAAA;IACF,CAAA;KAEL,QAAQ,YAAY,aACpB,oBAAC,OAAD;KACE,WAAU;KAMT,UAAA,QAAQ,oBAAC,WAAD;MAAqB;MAAoB;KAAW,CAAA;IAC1D,CAAA;IAKP,qBAAC,UAAD,EAAA,UAAA;KACG,WACC,oBAAC,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAET,UAAA;KACS,CAAA;KAEd,oBAAC,OAAD;MAAK,WAAW,GAAG,6BAA6B,aAAa,OAAO;MAClE,UAAA,oBAAC,YAAD;OACE,IAAG;OACH,IAAI;OACJ,SAAQ;OACR,WAAU;OACV,OAAO,EAAE,qBAAqB,SAAS;OAEtC,UAAA;MACS,CAAA;KACT,CAAA;KACJ,eACC,oBAAC,YAAD;MAAY,SAAQ;MAAK,OAAM;MAAQ,WAAU;MAC9C,UAAA;KACS,CAAA;IAER,EAAA,CAAA;IAEP,WAAW,QAAQ,SAAS,KAC3B,oBAAC,OAAD;KAAK,WAAU;KACZ,UAAA,QAAQ,KAAK,KAAK,MACjB,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,YAAD;MACE,SAAQ;MACR,OAAM;MACN,WAAU;MAIT,UAAA,IAAI;KACK,CAAA,GACZ,oBAAC,YAAD;MACE,SAAQ;MACR,WAAU;MACV,OAAO,EAAE,qBAAqB,SAAS;MAEtC,UAAA,IAAI;KACK,CAAA,CACT,EAAA,GAjBK,CAiBL,CACN;IACE,CAAA;IAGN,QAAQ,KAAK,SAAS,KACrB,oBAAC,YAAD;KACE,SAAQ;KACR,OAAM;KACN,WAAU;KAET,UAAA,KAAK,KAAK,MAAM,MACf,qBAAC,MAAM,UAAP,EAAA,UAAA,CACG,IAAI,KAAK,OACT,IACa,EAAA,GAHK,CAGL,CACjB;IACS,CAAA;IAGb;GACG;;CACL,CAAA;AAEP,CACF;AACA,UAAU,cAAc"}
@@ -9,12 +9,29 @@ let _base_ui_react_navigation_menu = require("@base-ui/react/navigation-menu");
9
9
  function NavigationMenu({ align = "start", className, children, ...props }) {
10
10
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_navigation_menu.NavigationMenu.Root, {
11
11
  "data-slot": "navigation-menu",
12
- className: require_utils.cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className),
12
+ className: require_utils.cn(`
13
+ group/navigation-menu relative flex max-w-max flex-1 items-center
14
+ justify-center
15
+ `, className),
13
16
  ...props,
14
17
  children: [children, /* @__PURE__ */ (0, react_jsx_runtime.jsx)(NavigationMenuPositioner, { align })]
15
18
  });
16
19
  }
17
- const navigationMenuTriggerStyle = (0, class_variance_authority.cva)("group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-berget-surface-02/50 data-popup-open:hover:bg-berget-surface-02 data-open:bg-berget-surface-02/50 data-open:hover:bg-berget-surface-02 data-open:focus:bg-berget-surface-02");
20
+ const navigationMenuTriggerStyle = (0, class_variance_authority.cva)(`
21
+ group/navigation-menu-trigger inline-flex h-9 w-max items-center
22
+ justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium
23
+ transition-all outline-none
24
+ hover:bg-berget-surface-02
25
+ focus:bg-berget-surface-02
26
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
27
+ focus-visible:outline-1
28
+ disabled:pointer-events-none disabled:opacity-50
29
+ data-open:bg-berget-surface-02/50
30
+ data-open:hover:bg-berget-surface-02
31
+ data-open:focus:bg-berget-surface-02
32
+ data-popup-open:bg-berget-surface-02/50
33
+ data-popup-open:hover:bg-berget-surface-02
34
+ `);
18
35
  function NavigationMenuTrigger({ className, children, ...props }) {
19
36
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(_base_ui_react_navigation_menu.NavigationMenu.Trigger, {
20
37
  "data-slot": "navigation-menu-trigger",
@@ -24,7 +41,7 @@ function NavigationMenuTrigger({ className, children, ...props }) {
24
41
  children,
25
42
  " ",
26
43
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.ChevronDown, {
27
- className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180",
44
+ className: "\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n ",
28
45
  "aria-hidden": "true"
29
46
  })
30
47
  ]
@@ -33,7 +50,19 @@ function NavigationMenuTrigger({ className, children, ...props }) {
33
50
  function NavigationMenuLink({ className, ...props }) {
34
51
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Link, {
35
52
  "data-slot": "navigation-menu-link",
36
- className: require_utils.cn("flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-berget-xs data-active:bg-berget-surface-02/50 data-active:hover:bg-berget-surface-02 data-active:focus:bg-berget-surface-02 [&_svg:not([class*='size-'])]:size-4", className),
53
+ className: require_utils.cn(`
54
+ flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all
55
+ outline-none
56
+ hover:bg-berget-surface-02
57
+ focus:bg-berget-surface-02
58
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
59
+ focus-visible:outline-1
60
+ in-data-[slot=navigation-menu-content]:rounded-berget-xs
61
+ data-active:bg-berget-surface-02/50
62
+ data-active:hover:bg-berget-surface-02
63
+ data-active:focus:bg-berget-surface-02
64
+ [&_svg:not([class*='size-'])]:size-4
65
+ `, className),
37
66
  ...props
38
67
  });
39
68
  }
@@ -43,11 +72,18 @@ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8,
43
72
  sideOffset,
44
73
  align,
45
74
  alignOffset,
46
- className: require_utils.cn("isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", className),
75
+ className: require_utils.cn(`
76
+ isolate z-50 h-(--positioner-height) w-(--positioner-width)
77
+ max-w-(--available-width) transition-[top,left,right,bottom]
78
+ duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]
79
+ data-instant:transition-none
80
+ data-[side=bottom]:before:inset-x-0
81
+ data-[side=bottom]:before:top-[-10px]
82
+ `, className),
47
83
  ...props,
48
84
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Popup, {
49
- className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-berget-xs bg-berget-popover text-berget-popover-foreground shadow-berget-lg ring-1 ring-berget-border transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0",
50
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Viewport, { className: "relative size-full overflow-hidden" })
85
+ className: "\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n ",
86
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_base_ui_react_navigation_menu.NavigationMenu.Viewport, { className: "\n relative size-full overflow-hidden\n " })
51
87
  })
52
88
  }) });
53
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenu.cjs","names":["NavigationMenuPrimitive","cn","cva","ChevronDown"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"sourcesContent":["'use client';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport {\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuIndicator,\n} from '../../primitives/navigation-menu';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n 'group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-berget-surface-02/50 data-popup-open:hover:bg-berget-surface-02 data-open:bg-berget-surface-02/50 data-open:hover:bg-berget-surface-02 data-open:focus:bg-berget-surface-02',\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-berget-xs data-active:bg-berget-surface-02/50 data-active:hover:bg-berget-surface-02 data-active:focus:bg-berget-surface-02 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Positioner (portal + popup + viewport) */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-berget-xs bg-berget-popover text-berget-popover-foreground shadow-berget-lg ring-1 ring-berget-border transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuPositioner,\n};\n"],"mappings":";;;;;;;;AAkBA,SAAS,eAAe,EACtB,QAAQ,SACR,WACA,UACA,GAAG,SAC4F;CAC/F,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,+BAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GACT,oFACA,SACF;EACA,GAAI;EANN,UAAA,CAQG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,0BAAD,EAAiC,MAAQ,CAAA,CACb;;AAElC;AAMA,MAAM,8BAAA,GAA6BC,yBAAAA,IAAAA,CACjC,shBACF;AAEA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SACqC;CACxC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACF,+BAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;EAHN,UAAA;GAKG;GAAU;GACX,iBAAA,GAAA,kBAAA,IAAA,CAACE,aAAAA,aAAD;IACE,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;AAMA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAA6C;CACvF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACH,+BAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GACT,0aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,yBAAyB,EAChC,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,GAAG,SACwC;CAC3C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,QAAzB,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,YAAzB;EACQ;EACM;EACL;EACM;EACb,WAAWC,cAAAA,GACT,sTACA,SACF;EACA,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,OAAzB;GAA+B,WAAU;GACvC,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,UAAzB,EAAkC,WAAU,qCAAsC,CAAA;EACrD,CAAA;CACG,CAAA,EACN,CAAA;AAEpC"}
1
+ {"version":3,"file":"NavigationMenu.cjs","names":["NavigationMenuPrimitive","cn","cva","ChevronDown"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"sourcesContent":["'use client';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport {\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuIndicator,\n} from '../../primitives/navigation-menu';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n `\n group/navigation-menu relative flex max-w-max flex-1 items-center\n justify-center\n `,\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n `\n group/navigation-menu-trigger inline-flex h-9 w-max items-center\n justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium\n transition-all outline-none\n hover:bg-berget-surface-02\n focus:bg-berget-surface-02\n focus-visible:ring-3 focus-visible:ring-berget-ring/50\n focus-visible:outline-1\n disabled:pointer-events-none disabled:opacity-50\n data-open:bg-berget-surface-02/50\n data-open:hover:bg-berget-surface-02\n data-open:focus:bg-berget-surface-02\n data-popup-open:bg-berget-surface-02/50\n data-popup-open:hover:bg-berget-surface-02\n `,\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n \"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n `\n flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all\n outline-none\n hover:bg-berget-surface-02\n focus:bg-berget-surface-02\n focus-visible:ring-3 focus-visible:ring-berget-ring/50\n focus-visible:outline-1\n in-data-[slot=navigation-menu-content]:rounded-berget-xs\n data-active:bg-berget-surface-02/50\n data-active:hover:bg-berget-surface-02\n data-active:focus:bg-berget-surface-02\n [&_svg:not([class*='size-'])]:size-4\n `,\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Positioner (portal + popup + viewport) */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n `\n isolate z-50 h-(--positioner-height) w-(--positioner-width)\n max-w-(--available-width) transition-[top,left,right,bottom]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]\n data-instant:transition-none\n data-[side=bottom]:before:inset-x-0\n data-[side=bottom]:before:top-[-10px]\n `,\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup\n className=\"\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n \"\n >\n <NavigationMenuPrimitive.Viewport\n className=\"\n relative size-full overflow-hidden\n \"\n />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuPositioner,\n};\n"],"mappings":";;;;;;;;AAkBA,SAAS,eAAe,EACtB,QAAQ,SACR,WACA,UACA,GAAG,SAC4F;CAC/F,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACA,+BAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GACT;;;WAIA,SACF;EACA,GAAI;EATN,UAAA,CAWG,UACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,0BAAD,EAAiC,MAAQ,CAAA,CACb;;AAElC;AAMA,MAAM,8BAAA,GAA6BC,yBAAAA,IAAAA,CACjC;;;;;;;;;;;;;;GAeF;AAEA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SACqC;CACxC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAACF,+BAAAA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;EAHN,UAAA;GAKG;GAAU;GACX,iBAAA,GAAA,kBAAA,IAAA,CAACE,aAAAA,aAAD;IACE,WAAU;IAKV,eAAY;GACb,CAAA;EAC8B;;AAErC;AAMA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAA6C;CACvF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACH,+BAAAA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAWC,cAAAA,GACT;;;;;;;;;;;;WAaA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,yBAAyB,EAChC,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,GAAG,SACwC;CAC3C,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,QAAzB,EAAA,UACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,YAAzB;EACQ;EACM;EACL;EACM;EACb,WAAWC,cAAAA,GACT;;;;;;;aAQA,SACF;EACA,GAAI;EAEJ,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACD,+BAAAA,eAAwB,OAAzB;GACE,WAAU;GAcV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,+BAAAA,eAAwB,UAAzB,EACE,WAAU,+DAGX,CAAA;EAC4B,CAAA;CACG,CAAA,EACN,CAAA;AAEpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenu.d.cts","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"mappings":";;;iBAkBSA,mBACP,OACA,WACA,aACG,SACFC,eAAwB,KAAK,QAAQ,KAAKA,eAAwB,WAAW,8CAAe,IAAA;cAoBzF,6BAA0B,iDAAA;iBAIvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAoB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBAiB9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
1
+ {"version":3,"file":"NavigationMenu.d.cts","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"mappings":";;;iBAkBSA,mBACP,OACA,WACA,aACG,SACFC,eAAwB,KAAK,QAAQ,KAAKA,eAAwB,WAAW,8CAAe,IAAA;cAuBzF,6BAA0B,iDAAA;iBAkBvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAwB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBA6B9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenu.d.mts","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"mappings":";;;iBAkBSA,mBACP,OACA,WACA,aACG,SACFC,eAAwB,KAAK,QAAQ,KAAKA,eAAwB,WAAW,8CAAe,IAAA;cAoBzF,6BAA0B,iDAAA;iBAIvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAoB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBAiB9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
1
+ {"version":3,"file":"NavigationMenu.d.mts","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"mappings":";;;iBAkBSA,mBACP,OACA,WACA,aACG,SACFC,eAAwB,KAAK,QAAQ,KAAKA,eAAwB,WAAW,8CAAe,IAAA;cAuBzF,6BAA0B,iDAAA;iBAkBvB,wBACP,WACA,aACG,SACFA,eAAwB,QAAQ,oCAAK,IAAA;iBAwB/B,qBAAqB,cAAc,SAASA,eAAwB,KAAK,oCAAK,IAAA;iBA6B9E,2BACP,WACA,MACA,YACA,OACA,gBACG,SACFA,eAAwB,WAAW,oCAAK,IAAA"}
@@ -9,12 +9,29 @@ import { NavigationMenu } from "@base-ui/react/navigation-menu";
9
9
  function NavigationMenu$1({ align = "start", className, children, ...props }) {
10
10
  return /* @__PURE__ */ jsxs(NavigationMenu.Root, {
11
11
  "data-slot": "navigation-menu",
12
- className: cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className),
12
+ className: cn(`
13
+ group/navigation-menu relative flex max-w-max flex-1 items-center
14
+ justify-center
15
+ `, className),
13
16
  ...props,
14
17
  children: [children, /* @__PURE__ */ jsx(NavigationMenuPositioner, { align })]
15
18
  });
16
19
  }
17
- const navigationMenuTriggerStyle = cva("group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-berget-surface-02/50 data-popup-open:hover:bg-berget-surface-02 data-open:bg-berget-surface-02/50 data-open:hover:bg-berget-surface-02 data-open:focus:bg-berget-surface-02");
20
+ const navigationMenuTriggerStyle = cva(`
21
+ group/navigation-menu-trigger inline-flex h-9 w-max items-center
22
+ justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium
23
+ transition-all outline-none
24
+ hover:bg-berget-surface-02
25
+ focus:bg-berget-surface-02
26
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
27
+ focus-visible:outline-1
28
+ disabled:pointer-events-none disabled:opacity-50
29
+ data-open:bg-berget-surface-02/50
30
+ data-open:hover:bg-berget-surface-02
31
+ data-open:focus:bg-berget-surface-02
32
+ data-popup-open:bg-berget-surface-02/50
33
+ data-popup-open:hover:bg-berget-surface-02
34
+ `);
18
35
  function NavigationMenuTrigger({ className, children, ...props }) {
19
36
  return /* @__PURE__ */ jsxs(NavigationMenu.Trigger, {
20
37
  "data-slot": "navigation-menu-trigger",
@@ -24,7 +41,7 @@ function NavigationMenuTrigger({ className, children, ...props }) {
24
41
  children,
25
42
  " ",
26
43
  /* @__PURE__ */ jsx(ChevronDown, {
27
- className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180",
44
+ className: "\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n ",
28
45
  "aria-hidden": "true"
29
46
  })
30
47
  ]
@@ -33,7 +50,19 @@ function NavigationMenuTrigger({ className, children, ...props }) {
33
50
  function NavigationMenuLink({ className, ...props }) {
34
51
  return /* @__PURE__ */ jsx(NavigationMenu.Link, {
35
52
  "data-slot": "navigation-menu-link",
36
- className: cn("flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-berget-xs data-active:bg-berget-surface-02/50 data-active:hover:bg-berget-surface-02 data-active:focus:bg-berget-surface-02 [&_svg:not([class*='size-'])]:size-4", className),
53
+ className: cn(`
54
+ flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all
55
+ outline-none
56
+ hover:bg-berget-surface-02
57
+ focus:bg-berget-surface-02
58
+ focus-visible:ring-3 focus-visible:ring-berget-ring/50
59
+ focus-visible:outline-1
60
+ in-data-[slot=navigation-menu-content]:rounded-berget-xs
61
+ data-active:bg-berget-surface-02/50
62
+ data-active:hover:bg-berget-surface-02
63
+ data-active:focus:bg-berget-surface-02
64
+ [&_svg:not([class*='size-'])]:size-4
65
+ `, className),
37
66
  ...props
38
67
  });
39
68
  }
@@ -43,11 +72,18 @@ function NavigationMenuPositioner({ className, side = "bottom", sideOffset = 8,
43
72
  sideOffset,
44
73
  align,
45
74
  alignOffset,
46
- className: cn("isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0", className),
75
+ className: cn(`
76
+ isolate z-50 h-(--positioner-height) w-(--positioner-width)
77
+ max-w-(--available-width) transition-[top,left,right,bottom]
78
+ duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]
79
+ data-instant:transition-none
80
+ data-[side=bottom]:before:inset-x-0
81
+ data-[side=bottom]:before:top-[-10px]
82
+ `, className),
47
83
  ...props,
48
84
  children: /* @__PURE__ */ jsx(NavigationMenu.Popup, {
49
- className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-berget-xs bg-berget-popover text-berget-popover-foreground shadow-berget-lg ring-1 ring-berget-border transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0",
50
- children: /* @__PURE__ */ jsx(NavigationMenu.Viewport, { className: "relative size-full overflow-hidden" })
85
+ className: "\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n ",
86
+ children: /* @__PURE__ */ jsx(NavigationMenu.Viewport, { className: "\n relative size-full overflow-hidden\n " })
51
87
  })
52
88
  }) });
53
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"NavigationMenu.mjs","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"sourcesContent":["'use client';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport {\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuIndicator,\n} from '../../primitives/navigation-menu';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n 'group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-berget-surface-02/50 data-popup-open:hover:bg-berget-surface-02 data-open:bg-berget-surface-02/50 data-open:hover:bg-berget-surface-02 data-open:focus:bg-berget-surface-02',\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all outline-none hover:bg-berget-surface-02 focus:bg-berget-surface-02 focus-visible:ring-3 focus-visible:ring-berget-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-berget-xs data-active:bg-berget-surface-02/50 data-active:hover:bg-berget-surface-02 data-active:focus:bg-berget-surface-02 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Positioner (portal + popup + viewport) */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n 'isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0',\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup className=\"data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-berget-xs bg-berget-popover text-berget-popover-foreground shadow-berget-lg ring-1 ring-berget-border transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0\">\n <NavigationMenuPrimitive.Viewport className=\"relative size-full overflow-hidden\" />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuPositioner,\n};\n"],"mappings":";;;;;;;;AAkBA,SAASA,iBAAe,EACtB,QAAQ,SACR,WACA,UACA,GAAG,SAC4F;CAC/F,OACE,qBAACC,eAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GACT,oFACA,SACF;EACA,GAAI;EANN,UAAA,CAQG,UACD,oBAAC,0BAAD,EAAiC,MAAQ,CAAA,CACb;;AAElC;AAMA,MAAM,6BAA6B,IACjC,shBACF;AAEA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SACqC;CACxC,OACE,qBAACA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;EAHN,UAAA;GAKG;GAAU;GACX,oBAAC,aAAD;IACE,WAAU;IACV,eAAY;GACb,CAAA;EAC8B;;AAErC;AAMA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAA6C;CACvF,OACE,oBAACA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GACT,0aACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,yBAAyB,EAChC,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,GAAG,SACwC;CAC3C,OACE,oBAACA,eAAwB,QAAzB,EAAA,UACE,oBAACA,eAAwB,YAAzB;EACQ;EACM;EACL;EACM;EACb,WAAW,GACT,sTACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAACA,eAAwB,OAAzB;GAA+B,WAAU;GACvC,UAAA,oBAACA,eAAwB,UAAzB,EAAkC,WAAU,qCAAsC,CAAA;EACrD,CAAA;CACG,CAAA,EACN,CAAA;AAEpC"}
1
+ {"version":3,"file":"NavigationMenu.mjs","names":["NavigationMenu","NavigationMenuPrimitive"],"sources":["../../../src/components/navigation-menu/NavigationMenu.tsx"],"sourcesContent":["'use client';\n\nimport { NavigationMenu as NavigationMenuPrimitive } from '@base-ui/react/navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport {\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuIndicator,\n} from '../../primitives/navigation-menu';\n\n/* ------------------------------------------------------------------ */\n/* Root */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenu({\n align = 'start',\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Root.Props & Pick<NavigationMenuPrimitive.Positioner.Props, 'align'>) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\n `\n group/navigation-menu relative flex max-w-max flex-1 items-center\n justify-center\n `,\n className,\n )}\n {...props}\n >\n {children}\n <NavigationMenuPositioner align={align} />\n </NavigationMenuPrimitive.Root>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Trigger */\n/* ------------------------------------------------------------------ */\n\nconst navigationMenuTriggerStyle = cva(\n `\n group/navigation-menu-trigger inline-flex h-9 w-max items-center\n justify-center rounded-berget-xs px-2.5 py-1.5 text-sm font-medium\n transition-all outline-none\n hover:bg-berget-surface-02\n focus:bg-berget-surface-02\n focus-visible:ring-3 focus-visible:ring-berget-ring/50\n focus-visible:outline-1\n disabled:pointer-events-none disabled:opacity-50\n data-open:bg-berget-surface-02/50\n data-open:hover:bg-berget-surface-02\n data-open:focus:bg-berget-surface-02\n data-popup-open:bg-berget-surface-02/50\n data-popup-open:hover:bg-berget-surface-02\n `,\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: NavigationMenuPrimitive.Trigger.Props) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDown\n className=\"\n relative top-px ml-1 size-3 transition duration-300\n group-data-open/navigation-menu-trigger:rotate-180\n group-data-popup-open/navigation-menu-trigger:rotate-180\n \"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Link */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuLink({ className, ...props }: NavigationMenuPrimitive.Link.Props) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n `\n flex items-center gap-2 rounded-berget-xs p-2 text-sm transition-all\n outline-none\n hover:bg-berget-surface-02\n focus:bg-berget-surface-02\n focus-visible:ring-3 focus-visible:ring-berget-ring/50\n focus-visible:outline-1\n in-data-[slot=navigation-menu-content]:rounded-berget-xs\n data-active:bg-berget-surface-02/50\n data-active:hover:bg-berget-surface-02\n data-active:focus:bg-berget-surface-02\n [&_svg:not([class*='size-'])]:size-4\n `,\n className,\n )}\n {...props}\n />\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Positioner (portal + popup + viewport) */\n/* ------------------------------------------------------------------ */\n\nfunction NavigationMenuPositioner({\n className,\n side = 'bottom',\n sideOffset = 8,\n align = 'start',\n alignOffset = 0,\n ...props\n}: NavigationMenuPrimitive.Positioner.Props) {\n return (\n <NavigationMenuPrimitive.Portal>\n <NavigationMenuPrimitive.Positioner\n side={side}\n sideOffset={sideOffset}\n align={align}\n alignOffset={alignOffset}\n className={cn(\n `\n isolate z-50 h-(--positioner-height) w-(--positioner-width)\n max-w-(--available-width) transition-[top,left,right,bottom]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)]\n data-instant:transition-none\n data-[side=bottom]:before:inset-x-0\n data-[side=bottom]:before:top-[-10px]\n `,\n className,\n )}\n {...props}\n >\n <NavigationMenuPrimitive.Popup\n className=\"\n data-[ending-style]:easing-[ease]\n xs:w-(--popup-width)\n relative h-(--popup-height) w-(--popup-width)\n origin-(--transform-origin) rounded-berget-xs bg-berget-popover\n text-berget-popover-foreground shadow-berget-lg ring-1\n ring-berget-border\n transition-[opacity,transform,width,height,scale,translate]\n duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none\n data-ending-style:scale-90 data-ending-style:opacity-0\n data-ending-style:duration-150\n data-starting-style:scale-90 data-starting-style:opacity-0\n \"\n >\n <NavigationMenuPrimitive.Viewport\n className=\"\n relative size-full overflow-hidden\n \"\n />\n </NavigationMenuPrimitive.Popup>\n </NavigationMenuPrimitive.Positioner>\n </NavigationMenuPrimitive.Portal>\n );\n}\n\n/* ------------------------------------------------------------------ */\n/* Exports */\n/* ------------------------------------------------------------------ */\n\nexport {\n navigationMenuTriggerStyle,\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuPositioner,\n};\n"],"mappings":";;;;;;;;AAkBA,SAASA,iBAAe,EACtB,QAAQ,SACR,WACA,UACA,GAAG,SAC4F;CAC/F,OACE,qBAACC,eAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GACT;;;WAIA,SACF;EACA,GAAI;EATN,UAAA,CAWG,UACD,oBAAC,0BAAD,EAAiC,MAAQ,CAAA,CACb;;AAElC;AAMA,MAAM,6BAA6B,IACjC;;;;;;;;;;;;;;GAeF;AAEA,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SACqC;CACxC,OACE,qBAACA,eAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,2BAA2B,GAAG,SAAS,SAAS;EAC9D,GAAI;EAHN,UAAA;GAKG;GAAU;GACX,oBAAC,aAAD;IACE,WAAU;IAKV,eAAY;GACb,CAAA;EAC8B;;AAErC;AAMA,SAAS,mBAAmB,EAAE,WAAW,GAAG,SAA6C;CACvF,OACE,oBAACA,eAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GACT;;;;;;;;;;;;WAaA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,yBAAyB,EAChC,WACA,OAAO,UACP,aAAa,GACb,QAAQ,SACR,cAAc,GACd,GAAG,SACwC;CAC3C,OACE,oBAACA,eAAwB,QAAzB,EAAA,UACE,oBAACA,eAAwB,YAAzB;EACQ;EACM;EACL;EACM;EACb,WAAW,GACT;;;;;;;aAQA,SACF;EACA,GAAI;EAEJ,UAAA,oBAACA,eAAwB,OAAzB;GACE,WAAU;GAcV,UAAA,oBAACA,eAAwB,UAAzB,EACE,WAAU,+DAGX,CAAA;EAC4B,CAAA;CACG,CAAA,EACN,CAAA;AAEpC"}
@@ -10,7 +10,10 @@ const Progress = react.forwardRef(({ className, value, ...props }, ref) => {
10
10
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_progress.Progress, {
11
11
  ref,
12
12
  value,
13
- className: require_utils.cn(value == null && "[&_[data-slot=progress-indicator]]:w-1/3 [&_[data-slot=progress-indicator]]:animate-progress-indeterminate", className),
13
+ className: require_utils.cn(value == null && `
14
+ **:data-[slot=progress-indicator]:w-1/3
15
+ **:data-[slot=progress-indicator]:animate-progress-indeterminate
16
+ `, className),
14
17
  ...props
15
18
  });
16
19
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.cjs","names":["React","ProgressPrimitive","cn"],"sources":["../../../src/components/progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n ProgressIndicator,\n ProgressLabel,\n Progress as ProgressPrimitive,\n ProgressTrack,\n ProgressValue,\n} from '../../primitives/progress';\n\nexport type ProgressProps = React.ComponentProps<typeof ProgressPrimitive>;\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, ...props }, ref) => {\n const indeterminate = value == null;\n return (\n <ProgressPrimitive\n ref={ref}\n value={value}\n className={cn(\n indeterminate &&\n '[&_[data-slot=progress-indicator]]:w-1/3 [&_[data-slot=progress-indicator]]:animate-progress-indeterminate',\n className,\n )}\n {...props}\n />\n );\n },\n);\nProgress.displayName = 'Progress';\n\nexport { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };\n"],"mappings":";;;;;;;;AAcA,MAAM,WAAWA,MAAM,YACpB,EAAE,WAAW,OAAO,GAAG,SAAS,QAAQ;CAEvC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,iBAAAA,UAAD;EACO;EACE;EACP,WAAWC,cAAAA,GALO,SAAS,QAOvB,8GACF,SACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AACA,SAAS,cAAc"}
1
+ {"version":3,"file":"Progress.cjs","names":["React","ProgressPrimitive","cn"],"sources":["../../../src/components/progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n ProgressIndicator,\n ProgressLabel,\n Progress as ProgressPrimitive,\n ProgressTrack,\n ProgressValue,\n} from '../../primitives/progress';\n\nexport type ProgressProps = React.ComponentProps<typeof ProgressPrimitive>;\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, ...props }, ref) => {\n const indeterminate = value == null;\n return (\n <ProgressPrimitive\n ref={ref}\n value={value}\n className={cn(\n indeterminate &&\n `\n **:data-[slot=progress-indicator]:w-1/3\n **:data-[slot=progress-indicator]:animate-progress-indeterminate\n `,\n className,\n )}\n {...props}\n />\n );\n },\n);\nProgress.displayName = 'Progress';\n\nexport { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };\n"],"mappings":";;;;;;;;AAcA,MAAM,WAAWA,MAAM,YACpB,EAAE,WAAW,OAAO,GAAG,SAAS,QAAQ;CAEvC,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,iBAAAA,UAAD;EACO;EACE;EACP,WAAWC,cAAAA,GALO,SAAS,QAOvB;;;eAIF,SACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AACA,SAAS,cAAc"}
@@ -8,7 +8,10 @@ const Progress = React.forwardRef(({ className, value, ...props }, ref) => {
8
8
  return /* @__PURE__ */ jsx(Progress$1, {
9
9
  ref,
10
10
  value,
11
- className: cn(value == null && "[&_[data-slot=progress-indicator]]:w-1/3 [&_[data-slot=progress-indicator]]:animate-progress-indeterminate", className),
11
+ className: cn(value == null && `
12
+ **:data-[slot=progress-indicator]:w-1/3
13
+ **:data-[slot=progress-indicator]:animate-progress-indeterminate
14
+ `, className),
12
15
  ...props
13
16
  });
14
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Progress.mjs","names":["ProgressPrimitive"],"sources":["../../../src/components/progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n ProgressIndicator,\n ProgressLabel,\n Progress as ProgressPrimitive,\n ProgressTrack,\n ProgressValue,\n} from '../../primitives/progress';\n\nexport type ProgressProps = React.ComponentProps<typeof ProgressPrimitive>;\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, ...props }, ref) => {\n const indeterminate = value == null;\n return (\n <ProgressPrimitive\n ref={ref}\n value={value}\n className={cn(\n indeterminate &&\n '[&_[data-slot=progress-indicator]]:w-1/3 [&_[data-slot=progress-indicator]]:animate-progress-indeterminate',\n className,\n )}\n {...props}\n />\n );\n },\n);\nProgress.displayName = 'Progress';\n\nexport { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };\n"],"mappings":";;;;;;AAcA,MAAM,WAAW,MAAM,YACpB,EAAE,WAAW,OAAO,GAAG,SAAS,QAAQ;CAEvC,OACE,oBAACA,YAAD;EACO;EACE;EACP,WAAW,GALO,SAAS,QAOvB,8GACF,SACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AACA,SAAS,cAAc"}
1
+ {"version":3,"file":"Progress.mjs","names":["ProgressPrimitive"],"sources":["../../../src/components/progress/Progress.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport {\n ProgressIndicator,\n ProgressLabel,\n Progress as ProgressPrimitive,\n ProgressTrack,\n ProgressValue,\n} from '../../primitives/progress';\n\nexport type ProgressProps = React.ComponentProps<typeof ProgressPrimitive>;\n\nconst Progress = React.forwardRef<HTMLDivElement, ProgressProps>(\n ({ className, value, ...props }, ref) => {\n const indeterminate = value == null;\n return (\n <ProgressPrimitive\n ref={ref}\n value={value}\n className={cn(\n indeterminate &&\n `\n **:data-[slot=progress-indicator]:w-1/3\n **:data-[slot=progress-indicator]:animate-progress-indeterminate\n `,\n className,\n )}\n {...props}\n />\n );\n },\n);\nProgress.displayName = 'Progress';\n\nexport { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue };\n"],"mappings":";;;;;;AAcA,MAAM,WAAW,MAAM,YACpB,EAAE,WAAW,OAAO,GAAG,SAAS,QAAQ;CAEvC,OACE,oBAACA,YAAD;EACO;EACE;EACP,WAAW,GALO,SAAS,QAOvB;;;eAIF,SACF;EACA,GAAI;CACL,CAAA;AAEL,CACF;AACA,SAAS,cAAc"}
@@ -12,7 +12,7 @@ const SearchInput = ({ type = "search", placeholder = "Search...", className, re
12
12
  "data-slot": "search-input",
13
13
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(lucide_react.Search, {
14
14
  "aria-hidden": "true",
15
- className: "pointer-events-none absolute left-2.5 size-4 text-berget-muted-foreground"
15
+ className: "\n pointer-events-none absolute left-2.5 size-4\n text-berget-muted-foreground\n "
16
16
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_input.Input, {
17
17
  ref,
18
18
  type,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.cjs","names":["Search","Input","cn"],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { Input } from '../../primitives/input';\n\nexport type SearchInputProps = React.ComponentProps<'input'>;\n\nconst SearchInput = ({\n type = 'search',\n placeholder = 'Search...',\n className,\n ref,\n ...props\n}: SearchInputProps) => (\n <div className=\"relative flex w-full items-center\" data-slot=\"search-input\">\n <Search\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute left-2.5 size-4 text-berget-muted-foreground\"\n />\n <Input\n ref={ref}\n type={type}\n placeholder={placeholder}\n className={cn('rounded-full pl-8', className)}\n {...props}\n />\n </div>\n);\nSearchInput.displayName = 'SearchInput';\n\nexport { SearchInput };\n"],"mappings":";;;;;;;;;AASA,MAAM,eAAe,EACnB,OAAO,UACP,cAAc,aACd,WACA,KACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;CAAK,WAAU;CAAoC,aAAU;CAA7D,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,QAAD;EACE,eAAY;EACZ,WAAU;CACX,CAAA,GACD,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,OAAD;EACO;EACC;EACO;EACb,WAAWC,cAAAA,GAAG,qBAAqB,SAAS;EAC5C,GAAI;CACL,CAAA,CACE;;AAEP,YAAY,cAAc"}
1
+ {"version":3,"file":"SearchInput.cjs","names":["Search","Input","cn"],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { Input } from '../../primitives/input';\n\nexport type SearchInputProps = React.ComponentProps<'input'>;\n\nconst SearchInput = ({\n type = 'search',\n placeholder = 'Search...',\n className,\n ref,\n ...props\n}: SearchInputProps) => (\n <div className=\"relative flex w-full items-center\" data-slot=\"search-input\">\n <Search\n aria-hidden=\"true\"\n className=\"\n pointer-events-none absolute left-2.5 size-4\n text-berget-muted-foreground\n \"\n />\n <Input\n ref={ref}\n type={type}\n placeholder={placeholder}\n className={cn('rounded-full pl-8', className)}\n {...props}\n />\n </div>\n);\nSearchInput.displayName = 'SearchInput';\n\nexport { SearchInput };\n"],"mappings":";;;;;;;;;AASA,MAAM,eAAe,EACnB,OAAO,UACP,cAAc,aACd,WACA,KACA,GAAG,YAEH,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;CAAK,WAAU;CAAoC,aAAU;CAA7D,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,aAAAA,QAAD;EACE,eAAY;EACZ,WAAU;CAIX,CAAA,GACD,iBAAA,GAAA,kBAAA,IAAA,CAACC,cAAAA,OAAD;EACO;EACC;EACO;EACb,WAAWC,cAAAA,GAAG,qBAAqB,SAAS;EAC5C,GAAI;CACL,CAAA,CACE;;AAEP,YAAY,cAAc"}
@@ -10,7 +10,7 @@ const SearchInput = ({ type = "search", placeholder = "Search...", className, re
10
10
  "data-slot": "search-input",
11
11
  children: [/* @__PURE__ */ jsx(Search, {
12
12
  "aria-hidden": "true",
13
- className: "pointer-events-none absolute left-2.5 size-4 text-berget-muted-foreground"
13
+ className: "\n pointer-events-none absolute left-2.5 size-4\n text-berget-muted-foreground\n "
14
14
  }), /* @__PURE__ */ jsx(Input, {
15
15
  ref,
16
16
  type,
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.mjs","names":[],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { Input } from '../../primitives/input';\n\nexport type SearchInputProps = React.ComponentProps<'input'>;\n\nconst SearchInput = ({\n type = 'search',\n placeholder = 'Search...',\n className,\n ref,\n ...props\n}: SearchInputProps) => (\n <div className=\"relative flex w-full items-center\" data-slot=\"search-input\">\n <Search\n aria-hidden=\"true\"\n className=\"pointer-events-none absolute left-2.5 size-4 text-berget-muted-foreground\"\n />\n <Input\n ref={ref}\n type={type}\n placeholder={placeholder}\n className={cn('rounded-full pl-8', className)}\n {...props}\n />\n </div>\n);\nSearchInput.displayName = 'SearchInput';\n\nexport { SearchInput };\n"],"mappings":";;;;;;;AASA,MAAM,eAAe,EACnB,OAAO,UACP,cAAc,aACd,WACA,KACA,GAAG,YAEH,qBAAC,OAAD;CAAK,WAAU;CAAoC,aAAU;CAA7D,UAAA,CACE,oBAAC,QAAD;EACE,eAAY;EACZ,WAAU;CACX,CAAA,GACD,oBAAC,OAAD;EACO;EACC;EACO;EACb,WAAW,GAAG,qBAAqB,SAAS;EAC5C,GAAI;CACL,CAAA,CACE;;AAEP,YAAY,cAAc"}
1
+ {"version":3,"file":"SearchInput.mjs","names":[],"sources":["../../../src/components/search-input/SearchInput.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Search } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { Input } from '../../primitives/input';\n\nexport type SearchInputProps = React.ComponentProps<'input'>;\n\nconst SearchInput = ({\n type = 'search',\n placeholder = 'Search...',\n className,\n ref,\n ...props\n}: SearchInputProps) => (\n <div className=\"relative flex w-full items-center\" data-slot=\"search-input\">\n <Search\n aria-hidden=\"true\"\n className=\"\n pointer-events-none absolute left-2.5 size-4\n text-berget-muted-foreground\n \"\n />\n <Input\n ref={ref}\n type={type}\n placeholder={placeholder}\n className={cn('rounded-full pl-8', className)}\n {...props}\n />\n </div>\n);\nSearchInput.displayName = 'SearchInput';\n\nexport { SearchInput };\n"],"mappings":";;;;;;;AASA,MAAM,eAAe,EACnB,OAAO,UACP,cAAc,aACd,WACA,KACA,GAAG,YAEH,qBAAC,OAAD;CAAK,WAAU;CAAoC,aAAU;CAA7D,UAAA,CACE,oBAAC,QAAD;EACE,eAAY;EACZ,WAAU;CAIX,CAAA,GACD,oBAAC,OAAD;EACO;EACC;EACO;EACb,WAAW,GAAG,qBAAqB,SAAS;EAC5C,GAAI;CACL,CAAA,CACE;;AAEP,YAAY,cAAc"}
@@ -49,7 +49,7 @@ const sizingSubButtonClasses = "data-[size=md]:text-base data-[size=sm]:text-bas
49
49
  * set in small uppercase type with wide tracking. */
50
50
  function SidebarGroupLabel({ className, ...props }) {
51
51
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_sidebar.SidebarGroupLabel, {
52
- className: require_utils.cn("px-3 uppercase tracking-caption", className),
52
+ className: require_utils.cn("px-3 tracking-caption uppercase", className),
53
53
  ...props
54
54
  });
55
55
  }
@@ -91,7 +91,10 @@ function SidebarGroup({ className, ...props }) {
91
91
  * group). */
92
92
  function SidebarFooter({ className, ...props }) {
93
93
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_sidebar.SidebarFooter, {
94
- className: require_utils.cn("group-data-[collapsible=icon]:px-2.5 border-t border-berget-border", className),
94
+ className: require_utils.cn(`
95
+ border-t border-berget-border
96
+ group-data-[collapsible=icon]:px-2.5
97
+ `, className),
95
98
  ...props
96
99
  });
97
100
  }
@@ -102,7 +105,10 @@ function SidebarFooter({ className, ...props }) {
102
105
  * against the full 60px rail width. */
103
106
  function SidebarHeader({ className, ...props }) {
104
107
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_sidebar.SidebarHeader, {
105
- className: require_utils.cn("py-0 group-data-[collapsible=icon]:px-0 border-b border-berget-border", className),
108
+ className: require_utils.cn(`
109
+ border-b border-berget-border py-0
110
+ group-data-[collapsible=icon]:px-0
111
+ `, className),
106
112
  ...props
107
113
  });
108
114
  }
@@ -139,9 +145,9 @@ function SidebarLogo() {
139
145
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BergetLogo.BergetLogo, {
140
146
  variant: "logotype",
141
147
  size: 32,
142
- className: "shrink-0 transition-[opacity,visibility] duration-150 group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:invisible group-data-[collapsible=icon]:opacity-0"
148
+ className: "\n shrink-0 transition-[opacity,visibility] duration-150\n group-data-[collapsible=icon]:pointer-events-none\n group-data-[collapsible=icon]:invisible\n group-data-[collapsible=icon]:opacity-0\n "
143
149
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
144
- className: "pointer-events-none invisible absolute inset-y-0 left-0 flex w-15 items-center pl-5 opacity-0 transition-[padding-left,opacity,visibility] duration-200 ease-linear group-data-[collapsible=icon]:visible group-data-[collapsible=icon]:pl-3 group-data-[collapsible=icon]:opacity-100",
150
+ className: "\n pointer-events-none invisible absolute inset-y-0 left-0 flex w-15\n items-center pl-5 opacity-0\n transition-[padding-left,opacity,visibility] duration-200\n ease-linear\n group-data-[collapsible=icon]:visible\n group-data-[collapsible=icon]:pl-3\n group-data-[collapsible=icon]:opacity-100\n ",
145
151
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BergetLogo.BergetLogo, {
146
152
  variant: "symbol",
147
153
  size: 32
@@ -156,7 +162,10 @@ function SidebarLogo() {
156
162
  * square. Compose the SidebarTrigger and a title inside. */
157
163
  function SidebarPageHeader({ className, ...props }) {
158
164
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("header", {
159
- className: require_utils.cn("flex h-[calc(3.75rem+1px)] items-center gap-2 border-b border-berget-border px-4", className),
165
+ className: require_utils.cn(`
166
+ flex h-[calc(3.75rem+1px)] items-center gap-2 border-b
167
+ border-berget-border px-4
168
+ `, className),
160
169
  ...props
161
170
  });
162
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.cjs","names":["SidebarGroupLabelPrimitive","cn","SidebarProviderPrimitive","SidebarInsetPrimitive","SidebarGroupPrimitive","SidebarFooterPrimitive","SidebarHeaderPrimitive","BergetLogo","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive"],"sources":["../../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["'use client';\n\n/**\n * Sidebar — thin proxy over the shadcn sidebar primitive.\n *\n * All brand styling flows through the design-token bridge in\n * `src/styles/index.css` (`bg-sidebar`, `sidebar-border`, … resolve to\n * `--berget-sidebar-*`). The primitive itself is unmodified upstream\n * shadcn output and must never be edited — Berget-specific composition\n * belongs here.\n *\n * Menu buttons, group/menu actions and badges resolve their hover/active\n * states via the --berget-sidebar-accent tokens (a neutral surface step),\n * not a class-level override.\n *\n * Compose per app:\n *\n * <SidebarProvider>\n * <Sidebar>\n * <SidebarHeader>…</SidebarHeader>\n * <SidebarContent>…</SidebarContent>\n * <SidebarFooter>…</SidebarFooter>\n * </Sidebar>\n * <SidebarInset>…main content…</SidebarInset>\n * </SidebarProvider>\n *\n * Toggle with <SidebarTrigger />, the <SidebarRail />, or ⌘/Ctrl+B.\n */\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\nimport { BergetLogo } from '../berget-logo';\nimport {\n SidebarFooter as SidebarFooterPrimitive,\n SidebarGroup as SidebarGroupPrimitive,\n SidebarHeader as SidebarHeaderPrimitive,\n SidebarGroupLabel as SidebarGroupLabelPrimitive,\n SidebarInset as SidebarInsetPrimitive,\n SidebarMenuButton as SidebarMenuButtonPrimitive,\n SidebarMenuSubButton as SidebarMenuSubButtonPrimitive,\n SidebarProvider as SidebarProviderPrimitive,\n} from '../../primitives/sidebar';\n\n/** Icon-mode buttons: 40px square tiles (16px glyph + px-3, height matches\n * the expanded bar so the 24px content line doesn't collapse). The overrides\n * win over the primitive's size-8!/p-2! — w-10!/h-10! are emitted after\n * size-8! in the stylesheet, so both dimensions follow the overrides. */\nconst iconModeButtonClasses =\n 'group-data-[collapsible=icon]:w-10! group-data-[collapsible=icon]:h-10! group-data-[collapsible=icon]:px-3!';\n\n/** Menu-button typography: text-base with true 8px (p-2) padding on all\n * sides. h-auto releases the primitive's fixed heights (h-8/h-7/h-12) —\n * otherwise vertical padding has no room. Collapsed icon mode keeps its\n * important size/padding overrides from the primitive. */\nconst sizingMenuButtonClasses = 'text-base px-3 py-2 h-auto';\nconst sizingSubButtonClasses = 'data-[size=md]:text-base data-[size=sm]:text-base px-3 py-2 h-auto';\n\n/** Group label, indented to line up with the menu-button icons\n * (group p-2 + label px-3 = same 20px as group p-2 + button px-3) and\n * set in small uppercase type with wide tracking. */\nfunction SidebarGroupLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SidebarGroupLabelPrimitive>) {\n return (\n <SidebarGroupLabelPrimitive\n className={cn('px-3 uppercase tracking-caption', className)}\n {...props}\n />\n );\n}\n\n/** Provider with the Berget icon-rail width (60px = 10px gutters + 40px\n * buttons). Consumers can still override via `style`. */\nfunction SidebarProvider({\n className,\n style,\n ...props\n}: React.ComponentProps<typeof SidebarProviderPrimitive>) {\n return (\n <SidebarProviderPrimitive\n className={className}\n style={\n {\n '--sidebar-width-icon': '3.75rem',\n ...style,\n } as React.CSSProperties\n }\n {...props}\n />\n );\n}\n\n/** Inset with min-w-0 so the content column can shrink below its min-content\n * width. Without it (flex items default to min-width:auto), wide content — a\n * nowrap table, a code block — makes the inset refuse to yield space: the\n * sidebar's gap spacer collapses and the inset (and its sticky page header)\n * slides under the fixed sidebar, painting over it on scroll. A scroll\n * wrapper on the wide child alone is not sufficient — block-level\n * overflow-x-auto still propagates min-content up to the flex item.\n * Upstream shadcn-ui/ui#11370; no-op for pages that don't overflow. */\nfunction SidebarInset({ className, ...props }: React.ComponentProps<typeof SidebarInsetPrimitive>) {\n return <SidebarInsetPrimitive className={cn('min-w-0', className)} {...props} />;\n}\n\n/** Group with 10px horizontal gutters in icon mode (10 + 40 + 10 = 60px). */\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<typeof SidebarGroupPrimitive>) {\n return (\n <SidebarGroupPrimitive\n className={cn('group-data-[collapsible=icon]:px-2.5', className)}\n {...props}\n />\n );\n}\n\n/** Footer with a top border mirroring the sidebar header's bottom border, and\n * the same 10px icon-mode gutters as SidebarGroup (its menu sits outside a\n * group). */\nfunction SidebarFooter({\n className,\n ...props\n}: React.ComponentProps<typeof SidebarFooterPrimitive>) {\n return (\n <SidebarFooterPrimitive\n className={cn(\n 'group-data-[collapsible=icon]:px-2.5 border-t border-berget-border',\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Header without the primitive's block padding (its p-2 becomes py-0) and\n * with a bottom border matching the default page-header border; vertical\n * rhythm is consumer-controlled (e.g. a h-20 brand bar). Horizontal padding\n * is dropped in icon mode so rail content (logo slots etc.) can center\n * against the full 60px rail width. */\nfunction SidebarHeader({\n className,\n ...props\n}: React.ComponentProps<typeof SidebarHeaderPrimitive>) {\n return (\n <SidebarHeaderPrimitive\n className={cn(\n 'py-0 group-data-[collapsible=icon]:px-0 border-b border-berget-border',\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Berget brand slot for the sidebar header. Fades between the full logo\n * (expanded) and the symbol (collapsed icon rail).\n *\n * Implementation notes — all load-bearing:\n * - The symbol glides instead of popping: at pl-5 its box sits pixel-perfect\n * under the leading glyph of the full logo (both 35.5x32 at x=20), and its\n * padding-left animates to pl-3 (centered in the 60px rail) over 200ms\n * linear — exactly matching the sidebar width transition. The mark never\n * jumps: collapse fades the logotype out while the symbol glides into its\n * gliding position; expand reverses it.\n * - Both layers stay mounted: display isn't animatable, so unmounting the\n * symbol on expand would blink it off in one frame while the logotype is\n * still fading in. visibility+opacity handle hiding instead; visibility is\n * discretely animatable, deferring its flip until the fade completes,\n * and removing the hidden layer from the accessibility tree.\n * - The row is overflow-hidden and the logo shrink-0: when the rail narrows,\n * the fading full logo is clipped at the moving edge instead of being\n * squeezed (the SVG viewBox would otherwise scale it down).\n * - px-5 aligns the logo's left edge with the 20px content line of the\n * expanded sidebar (menu icons and group-label text both sit at 20px).\n * The fading full logo clips under the shrinking rail edge while fading.\n *\n * Renders its own SidebarHeader (px-0 — the row owns all horizontal padding,\n * so its position can't jump when the header's icon-mode padding lands).\n */\nfunction SidebarLogo() {\n return (\n <SidebarHeaderPrimitive className=\"px-0\">\n <div className=\"relative flex h-15 items-center overflow-hidden px-5\">\n <BergetLogo\n variant=\"logotype\"\n size={32}\n className=\"shrink-0 transition-[opacity,visibility] duration-150 group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:invisible group-data-[collapsible=icon]:opacity-0\"\n />\n <span className=\"pointer-events-none invisible absolute inset-y-0 left-0 flex w-15 items-center pl-5 opacity-0 transition-[padding-left,opacity,visibility] duration-200 ease-linear group-data-[collapsible=icon]:visible group-data-[collapsible=icon]:pl-3 group-data-[collapsible=icon]:opacity-100\">\n <BergetLogo variant=\"symbol\" size={32} />\n </span>\n </div>\n </SidebarHeaderPrimitive>\n );\n}\n\n/** Page header for use inside <SidebarInset>. Its height (60px content + 1px)\n * keeps the bottom border on the same line as the sidebar header's border —\n * both occupy the 60-61px row, making the collapsed brand cell a 60x60\n * square. Compose the SidebarTrigger and a title inside. */\nfunction SidebarPageHeader({ className, ...props }: React.ComponentProps<'header'>) {\n return (\n <header\n className={cn(\n 'flex h-[calc(3.75rem+1px)] items-center gap-2 border-b border-berget-border px-4',\n className,\n )}\n {...props}\n />\n );\n}\n\ntype SidebarMenuButtonProps = React.ComponentProps<typeof SidebarMenuButtonPrimitive>;\n\ntype SidebarMenuSubButtonProps = React.ComponentProps<typeof SidebarMenuSubButtonPrimitive>;\n\nfunction SidebarMenuButton({ className, ...props }: SidebarMenuButtonProps) {\n return (\n <SidebarMenuButtonPrimitive\n className={cn(sizingMenuButtonClasses, iconModeButtonClasses, className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({ className, ...props }: SidebarMenuSubButtonProps) {\n return (\n <SidebarMenuSubButtonPrimitive\n className={cn(sizingSubButtonClasses, '[&>svg]:text-inherit', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarInput,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubItem,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n} from '../../primitives/sidebar';\n\nexport {\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarLogo,\n SidebarMenuButton,\n SidebarMenuSubButton,\n SidebarPageHeader,\n SidebarProvider,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAM,wBACJ;;;;;AAMF,MAAM,0BAA0B;AAChC,MAAM,yBAAyB;;;;AAK/B,SAAS,kBAAkB,EACzB,WACA,GAAG,SACuD;CAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,gBAAAA,mBAAD;EACE,WAAWC,cAAAA,GAAG,mCAAmC,SAAS;EAC1D,GAAI;CACL,CAAA;AAEL;;;AAIA,SAAS,gBAAgB,EACvB,WACA,OACA,GAAG,SACqD;CACxD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,iBAAD;EACa;EACX,OACE;GACE,wBAAwB;GACxB,GAAG;EACL;EAEF,GAAI;CACL,CAAA;AAEL;;;;;;;;;AAUA,SAAS,aAAa,EAAE,WAAW,GAAG,SAA6D;CACjG,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,cAAD;EAAuB,WAAWF,cAAAA,GAAG,WAAW,SAAS;EAAG,GAAI;CAAQ,CAAA;AACjF;;AAGA,SAAS,aAAa,EAAE,WAAW,GAAG,SAA6D;CACjG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACG,gBAAAA,cAAD;EACE,WAAWH,cAAAA,GAAG,wCAAwC,SAAS;EAC/D,GAAI;CACL,CAAA;AAEL;;;;AAKA,SAAS,cAAc,EACrB,WACA,GAAG,SACmD;CACtD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACI,gBAAAA,eAAD;EACE,WAAWJ,cAAAA,GACT,sEACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;;;;;AAOA,SAAS,cAAc,EACrB,WACA,GAAG,SACmD;CACtD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACK,gBAAAA,eAAD;EACE,WAAWL,cAAAA,GACT,yEACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,SAAS,cAAc;CACrB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACK,gBAAAA,eAAD;EAAwB,WAAU;EAChC,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;IACE,SAAQ;IACR,MAAM;IACN,WAAU;GACX,CAAA,GACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IAAM,WAAU;IACd,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;KAAY,SAAQ;KAAS,MAAM;IAAK,CAAA;GACpC,CAAA,CACH;;CACiB,CAAA;AAE5B;;;;;AAMA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAyC;CAClF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EACE,WAAWN,cAAAA,GACT,oFACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAiC;CAC1E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACO,gBAAAA,mBAAD;EACE,WAAWP,cAAAA,GAAG,yBAAyB,uBAAuB,SAAS;EACvE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAoC;CAChF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACQ,gBAAAA,sBAAD;EACE,WAAWR,cAAAA,GAAG,wBAAwB,wBAAwB,SAAS;EACvE,GAAI;CACL,CAAA;AAEL"}
1
+ {"version":3,"file":"Sidebar.cjs","names":["SidebarGroupLabelPrimitive","cn","SidebarProviderPrimitive","SidebarInsetPrimitive","SidebarGroupPrimitive","SidebarFooterPrimitive","SidebarHeaderPrimitive","BergetLogo","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive"],"sources":["../../../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["'use client';\n\n/**\n * Sidebar — thin proxy over the shadcn sidebar primitive.\n *\n * All brand styling flows through the design-token bridge in\n * `src/styles/index.css` (`bg-sidebar`, `sidebar-border`, … resolve to\n * `--berget-sidebar-*`). The primitive itself is unmodified upstream\n * shadcn output and must never be edited — Berget-specific composition\n * belongs here.\n *\n * Menu buttons, group/menu actions and badges resolve their hover/active\n * states via the --berget-sidebar-accent tokens (a neutral surface step),\n * not a class-level override.\n *\n * Compose per app:\n *\n * <SidebarProvider>\n * <Sidebar>\n * <SidebarHeader>…</SidebarHeader>\n * <SidebarContent>…</SidebarContent>\n * <SidebarFooter>…</SidebarFooter>\n * </Sidebar>\n * <SidebarInset>…main content…</SidebarInset>\n * </SidebarProvider>\n *\n * Toggle with <SidebarTrigger />, the <SidebarRail />, or ⌘/Ctrl+B.\n */\nimport * as React from 'react';\n\nimport { cn } from '../../lib/utils';\nimport { BergetLogo } from '../berget-logo';\nimport {\n SidebarFooter as SidebarFooterPrimitive,\n SidebarGroup as SidebarGroupPrimitive,\n SidebarHeader as SidebarHeaderPrimitive,\n SidebarGroupLabel as SidebarGroupLabelPrimitive,\n SidebarInset as SidebarInsetPrimitive,\n SidebarMenuButton as SidebarMenuButtonPrimitive,\n SidebarMenuSubButton as SidebarMenuSubButtonPrimitive,\n SidebarProvider as SidebarProviderPrimitive,\n} from '../../primitives/sidebar';\n\n/** Icon-mode buttons: 40px square tiles (16px glyph + px-3, height matches\n * the expanded bar so the 24px content line doesn't collapse). The overrides\n * win over the primitive's size-8!/p-2! — w-10!/h-10! are emitted after\n * size-8! in the stylesheet, so both dimensions follow the overrides. */\nconst iconModeButtonClasses =\n 'group-data-[collapsible=icon]:w-10! group-data-[collapsible=icon]:h-10! group-data-[collapsible=icon]:px-3!';\n\n/** Menu-button typography: text-base with true 8px (p-2) padding on all\n * sides. h-auto releases the primitive's fixed heights (h-8/h-7/h-12) —\n * otherwise vertical padding has no room. Collapsed icon mode keeps its\n * important size/padding overrides from the primitive. */\nconst sizingMenuButtonClasses = 'text-base px-3 py-2 h-auto';\nconst sizingSubButtonClasses = 'data-[size=md]:text-base data-[size=sm]:text-base px-3 py-2 h-auto';\n\n/** Group label, indented to line up with the menu-button icons\n * (group p-2 + label px-3 = same 20px as group p-2 + button px-3) and\n * set in small uppercase type with wide tracking. */\nfunction SidebarGroupLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SidebarGroupLabelPrimitive>) {\n return (\n <SidebarGroupLabelPrimitive\n className={cn('px-3 tracking-caption uppercase', className)}\n {...props}\n />\n );\n}\n\n/** Provider with the Berget icon-rail width (60px = 10px gutters + 40px\n * buttons). Consumers can still override via `style`. */\nfunction SidebarProvider({\n className,\n style,\n ...props\n}: React.ComponentProps<typeof SidebarProviderPrimitive>) {\n return (\n <SidebarProviderPrimitive\n className={className}\n style={\n {\n '--sidebar-width-icon': '3.75rem',\n ...style,\n } as React.CSSProperties\n }\n {...props}\n />\n );\n}\n\n/** Inset with min-w-0 so the content column can shrink below its min-content\n * width. Without it (flex items default to min-width:auto), wide content — a\n * nowrap table, a code block — makes the inset refuse to yield space: the\n * sidebar's gap spacer collapses and the inset (and its sticky page header)\n * slides under the fixed sidebar, painting over it on scroll. A scroll\n * wrapper on the wide child alone is not sufficient — block-level\n * overflow-x-auto still propagates min-content up to the flex item.\n * Upstream shadcn-ui/ui#11370; no-op for pages that don't overflow. */\nfunction SidebarInset({ className, ...props }: React.ComponentProps<typeof SidebarInsetPrimitive>) {\n return <SidebarInsetPrimitive className={cn('min-w-0', className)} {...props} />;\n}\n\n/** Group with 10px horizontal gutters in icon mode (10 + 40 + 10 = 60px). */\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<typeof SidebarGroupPrimitive>) {\n return (\n <SidebarGroupPrimitive\n className={cn('group-data-[collapsible=icon]:px-2.5', className)}\n {...props}\n />\n );\n}\n\n/** Footer with a top border mirroring the sidebar header's bottom border, and\n * the same 10px icon-mode gutters as SidebarGroup (its menu sits outside a\n * group). */\nfunction SidebarFooter({\n className,\n ...props\n}: React.ComponentProps<typeof SidebarFooterPrimitive>) {\n return (\n <SidebarFooterPrimitive\n className={cn(\n `\n border-t border-berget-border\n group-data-[collapsible=icon]:px-2.5\n `,\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Header without the primitive's block padding (its p-2 becomes py-0) and\n * with a bottom border matching the default page-header border; vertical\n * rhythm is consumer-controlled (e.g. a h-20 brand bar). Horizontal padding\n * is dropped in icon mode so rail content (logo slots etc.) can center\n * against the full 60px rail width. */\nfunction SidebarHeader({\n className,\n ...props\n}: React.ComponentProps<typeof SidebarHeaderPrimitive>) {\n return (\n <SidebarHeaderPrimitive\n className={cn(\n `\n border-b border-berget-border py-0\n group-data-[collapsible=icon]:px-0\n `,\n className,\n )}\n {...props}\n />\n );\n}\n\n/** Berget brand slot for the sidebar header. Fades between the full logo\n * (expanded) and the symbol (collapsed icon rail).\n *\n * Implementation notes — all load-bearing:\n * - The symbol glides instead of popping: at pl-5 its box sits pixel-perfect\n * under the leading glyph of the full logo (both 35.5x32 at x=20), and its\n * padding-left animates to pl-3 (centered in the 60px rail) over 200ms\n * linear — exactly matching the sidebar width transition. The mark never\n * jumps: collapse fades the logotype out while the symbol glides into its\n * gliding position; expand reverses it.\n * - Both layers stay mounted: display isn't animatable, so unmounting the\n * symbol on expand would blink it off in one frame while the logotype is\n * still fading in. visibility+opacity handle hiding instead; visibility is\n * discretely animatable, deferring its flip until the fade completes,\n * and removing the hidden layer from the accessibility tree.\n * - The row is overflow-hidden and the logo shrink-0: when the rail narrows,\n * the fading full logo is clipped at the moving edge instead of being\n * squeezed (the SVG viewBox would otherwise scale it down).\n * - px-5 aligns the logo's left edge with the 20px content line of the\n * expanded sidebar (menu icons and group-label text both sit at 20px).\n * The fading full logo clips under the shrinking rail edge while fading.\n *\n * Renders its own SidebarHeader (px-0 — the row owns all horizontal padding,\n * so its position can't jump when the header's icon-mode padding lands).\n */\nfunction SidebarLogo() {\n return (\n <SidebarHeaderPrimitive className=\"px-0\">\n <div className=\"relative flex h-15 items-center overflow-hidden px-5\">\n <BergetLogo\n variant=\"logotype\"\n size={32}\n className=\"\n shrink-0 transition-[opacity,visibility] duration-150\n group-data-[collapsible=icon]:pointer-events-none\n group-data-[collapsible=icon]:invisible\n group-data-[collapsible=icon]:opacity-0\n \"\n />\n <span\n className=\"\n pointer-events-none invisible absolute inset-y-0 left-0 flex w-15\n items-center pl-5 opacity-0\n transition-[padding-left,opacity,visibility] duration-200\n ease-linear\n group-data-[collapsible=icon]:visible\n group-data-[collapsible=icon]:pl-3\n group-data-[collapsible=icon]:opacity-100\n \"\n >\n <BergetLogo variant=\"symbol\" size={32} />\n </span>\n </div>\n </SidebarHeaderPrimitive>\n );\n}\n\n/** Page header for use inside <SidebarInset>. Its height (60px content + 1px)\n * keeps the bottom border on the same line as the sidebar header's border —\n * both occupy the 60-61px row, making the collapsed brand cell a 60x60\n * square. Compose the SidebarTrigger and a title inside. */\nfunction SidebarPageHeader({ className, ...props }: React.ComponentProps<'header'>) {\n return (\n <header\n className={cn(\n `\n flex h-[calc(3.75rem+1px)] items-center gap-2 border-b\n border-berget-border px-4\n `,\n className,\n )}\n {...props}\n />\n );\n}\n\ntype SidebarMenuButtonProps = React.ComponentProps<typeof SidebarMenuButtonPrimitive>;\n\ntype SidebarMenuSubButtonProps = React.ComponentProps<typeof SidebarMenuSubButtonPrimitive>;\n\nfunction SidebarMenuButton({ className, ...props }: SidebarMenuButtonProps) {\n return (\n <SidebarMenuButtonPrimitive\n className={cn(sizingMenuButtonClasses, iconModeButtonClasses, className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({ className, ...props }: SidebarMenuSubButtonProps) {\n return (\n <SidebarMenuSubButtonPrimitive\n className={cn(sizingSubButtonClasses, '[&>svg]:text-inherit', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarInput,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubItem,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n} from '../../primitives/sidebar';\n\nexport {\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarLogo,\n SidebarMenuButton,\n SidebarMenuSubButton,\n SidebarPageHeader,\n SidebarProvider,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,MAAM,wBACJ;;;;;AAMF,MAAM,0BAA0B;AAChC,MAAM,yBAAyB;;;;AAK/B,SAAS,kBAAkB,EACzB,WACA,GAAG,SACuD;CAC1D,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACA,gBAAAA,mBAAD;EACE,WAAWC,cAAAA,GAAG,mCAAmC,SAAS;EAC1D,GAAI;CACL,CAAA;AAEL;;;AAIA,SAAS,gBAAgB,EACvB,WACA,OACA,GAAG,SACqD;CACxD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,iBAAD;EACa;EACX,OACE;GACE,wBAAwB;GACxB,GAAG;EACL;EAEF,GAAI;CACL,CAAA;AAEL;;;;;;;;;AAUA,SAAS,aAAa,EAAE,WAAW,GAAG,SAA6D;CACjG,OAAO,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,cAAD;EAAuB,WAAWF,cAAAA,GAAG,WAAW,SAAS;EAAG,GAAI;CAAQ,CAAA;AACjF;;AAGA,SAAS,aAAa,EAAE,WAAW,GAAG,SAA6D;CACjG,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACG,gBAAAA,cAAD;EACE,WAAWH,cAAAA,GAAG,wCAAwC,SAAS;EAC/D,GAAI;CACL,CAAA;AAEL;;;;AAKA,SAAS,cAAc,EACrB,WACA,GAAG,SACmD;CACtD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACI,gBAAAA,eAAD;EACE,WAAWJ,cAAAA,GACT;;;WAIA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;;;;;AAOA,SAAS,cAAc,EACrB,WACA,GAAG,SACmD;CACtD,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACK,gBAAAA,eAAD;EACE,WAAWL,cAAAA,GACT;;;WAIA,SACF;EACA,GAAI;CACL,CAAA;AAEL;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,SAAS,cAAc;CACrB,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACK,gBAAAA,eAAD;EAAwB,WAAU;EAChC,UAAA,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,mBAAAA,YAAD;IACE,SAAQ;IACR,MAAM;IACN,WAAU;GAMX,CAAA,GACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;IACE,WAAU;IAUV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACA,mBAAAA,YAAD;KAAY,SAAQ;KAAS,MAAM;IAAK,CAAA;GACpC,CAAA,CACH;;CACiB,CAAA;AAE5B;;;;;AAMA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAyC;CAClF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EACE,WAAWN,cAAAA,GACT;;;WAIA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAMA,SAAS,kBAAkB,EAAE,WAAW,GAAG,SAAiC;CAC1E,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACO,gBAAAA,mBAAD;EACE,WAAWP,cAAAA,GAAG,yBAAyB,uBAAuB,SAAS;EACvE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,qBAAqB,EAAE,WAAW,GAAG,SAAoC;CAChF,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACQ,gBAAAA,sBAAD;EACE,WAAWR,cAAAA,GAAG,wBAAwB,wBAAwB,SAAS;EACvE,GAAI;CACL,CAAA;AAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.cts","names":["SidebarGroupLabelPrimitive","SidebarProviderPrimitive","SidebarInsetPrimitive","SidebarGroupPrimitive","SidebarFooterPrimitive","SidebarHeaderPrimitive","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive"],"sources":["../../../src/components/sidebar/Sidebar.tsx"],"mappings":";;;;;;iBA4DS,oBACP,cACG,SACF,MAAM,sBAAsBA,mDAA2B,IAAA;;;iBAWjD,kBACP,WACA,UACG,SACF,MAAM,sBAAsBC,iDAAyB,IAAA;;;;;;;;;iBAuB/C,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;iBAKxF,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;;;iBAYxF,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;iBAiB7C,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqC7C,2CAAW,IAAA;;;;;iBAqBX,oBAAoB,cAAc,SAAS,MAAM,uDAAwB,IAAA;KAY7E,yBAAyB,MAAM,sBAAsBC;KAErD,4BAA4B,MAAM,sBAAsBC;iBAEpD,oBAAoB,cAAc,SAAS,qDAAsB,IAAA;iBASjE,uBAAuB,cAAc,SAAS,wDAAyB,IAAA"}
1
+ {"version":3,"file":"Sidebar.d.cts","names":["SidebarGroupLabelPrimitive","SidebarProviderPrimitive","SidebarInsetPrimitive","SidebarGroupPrimitive","SidebarFooterPrimitive","SidebarHeaderPrimitive","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive"],"sources":["../../../src/components/sidebar/Sidebar.tsx"],"mappings":";;;;;;iBA4DS,oBACP,cACG,SACF,MAAM,sBAAsBA,mDAA2B,IAAA;;;iBAWjD,kBACP,WACA,UACG,SACF,MAAM,sBAAsBC,iDAAyB,IAAA;;;;;;;;;iBAuB/C,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;iBAKxF,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;;;iBAYxF,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;iBAoB7C,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwC7C,2CAAW,IAAA;;;;;iBAoCX,oBAAoB,cAAc,SAAS,MAAM,uDAAwB,IAAA;KAe7E,yBAAyB,MAAM,sBAAsBC;KAErD,4BAA4B,MAAM,sBAAsBC;iBAEpD,oBAAoB,cAAc,SAAS,qDAAsB,IAAA;iBASjE,uBAAuB,cAAc,SAAS,wDAAyB,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Sidebar.d.mts","names":["SidebarGroupLabelPrimitive","SidebarProviderPrimitive","SidebarInsetPrimitive","SidebarGroupPrimitive","SidebarFooterPrimitive","SidebarHeaderPrimitive","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive"],"sources":["../../../src/components/sidebar/Sidebar.tsx"],"mappings":";;;;;;iBA4DS,oBACP,cACG,SACF,MAAM,sBAAsBA,mDAA2B,IAAA;;;iBAWjD,kBACP,WACA,UACG,SACF,MAAM,sBAAsBC,iDAAyB,IAAA;;;;;;;;;iBAuB/C,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;iBAKxF,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;;;iBAYxF,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;iBAiB7C,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqC7C,2CAAW,IAAA;;;;;iBAqBX,oBAAoB,cAAc,SAAS,MAAM,uDAAwB,IAAA;KAY7E,yBAAyB,MAAM,sBAAsBC;KAErD,4BAA4B,MAAM,sBAAsBC;iBAEpD,oBAAoB,cAAc,SAAS,qDAAsB,IAAA;iBASjE,uBAAuB,cAAc,SAAS,wDAAyB,IAAA"}
1
+ {"version":3,"file":"Sidebar.d.mts","names":["SidebarGroupLabelPrimitive","SidebarProviderPrimitive","SidebarInsetPrimitive","SidebarGroupPrimitive","SidebarFooterPrimitive","SidebarHeaderPrimitive","SidebarMenuButtonPrimitive","SidebarMenuSubButtonPrimitive"],"sources":["../../../src/components/sidebar/Sidebar.tsx"],"mappings":";;;;;;iBA4DS,oBACP,cACG,SACF,MAAM,sBAAsBA,mDAA2B,IAAA;;;iBAWjD,kBACP,WACA,UACG,SACF,MAAM,sBAAsBC,iDAAyB,IAAA;;;;;;;;;iBAuB/C,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;iBAKxF,eAAe,cAAc,SAAS,MAAM,sBAAsBC,8CAAsB,IAAA;;;;iBAYxF,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;iBAoB7C,gBACP,cACG,SACF,MAAM,sBAAsBC,+CAAuB,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwC7C,2CAAW,IAAA;;;;;iBAoCX,oBAAoB,cAAc,SAAS,MAAM,uDAAwB,IAAA;KAe7E,yBAAyB,MAAM,sBAAsBC;KAErD,4BAA4B,MAAM,sBAAsBC;iBAEpD,oBAAoB,cAAc,SAAS,qDAAsB,IAAA;iBASjE,uBAAuB,cAAc,SAAS,wDAAyB,IAAA"}