rivet-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +120 -0
  3. package/dist/chunk-fjtwj9cw.js +79 -0
  4. package/dist/chunk-fjtwj9cw.js.map +10 -0
  5. package/dist/components/Accordion/Accordion.d.ts +7 -0
  6. package/dist/components/Accordion/Accordion.stories.d.ts +10 -0
  7. package/dist/components/Accordion/index.d.ts +1 -0
  8. package/dist/components/Accordion/index.js +62 -0
  9. package/dist/components/Accordion/index.js.map +10 -0
  10. package/dist/components/Alert/Alert.d.ts +15 -0
  11. package/dist/components/Alert/Alert.stories.d.ts +23 -0
  12. package/dist/components/Alert/index.d.ts +2 -0
  13. package/dist/components/Alert/index.js +57 -0
  14. package/dist/components/Alert/index.js.map +10 -0
  15. package/dist/components/AlertDialog/AlertDialog.d.ts +11 -0
  16. package/dist/components/AlertDialog/AlertDialog.stories.d.ts +9 -0
  17. package/dist/components/AlertDialog/index.d.ts +1 -0
  18. package/dist/components/AlertDialog/index.js +66 -0
  19. package/dist/components/AlertDialog/index.js.map +10 -0
  20. package/dist/components/Autocomplete/Autocomplete.d.ts +17 -0
  21. package/dist/components/Autocomplete/Autocomplete.stories.d.ts +6 -0
  22. package/dist/components/Autocomplete/index.d.ts +1 -0
  23. package/dist/components/Autocomplete/index.js +109 -0
  24. package/dist/components/Autocomplete/index.js.map +10 -0
  25. package/dist/components/Avatar/Avatar.d.ts +19 -0
  26. package/dist/components/Avatar/Avatar.stories.d.ts +29 -0
  27. package/dist/components/Avatar/index.d.ts +2 -0
  28. package/dist/components/Avatar/index.js +65 -0
  29. package/dist/components/Avatar/index.js.map +10 -0
  30. package/dist/components/AvatarLabel/AvatarLabel.d.ts +12 -0
  31. package/dist/components/AvatarLabel/AvatarLabel.stories.d.ts +10 -0
  32. package/dist/components/AvatarLabel/index.d.ts +2 -0
  33. package/dist/components/AvatarLabel/index.js +74 -0
  34. package/dist/components/AvatarLabel/index.js.map +10 -0
  35. package/dist/components/Badge/Badge.d.ts +13 -0
  36. package/dist/components/Badge/Badge.stories.d.ts +25 -0
  37. package/dist/components/Badge/index.d.ts +2 -0
  38. package/dist/components/Badge/index.js +38 -0
  39. package/dist/components/Badge/index.js.map +10 -0
  40. package/dist/components/Button/Button.d.ts +15 -0
  41. package/dist/components/Button/Button.stories.d.ts +35 -0
  42. package/dist/components/Button/index.d.ts +2 -0
  43. package/dist/components/Button/index.js +44 -0
  44. package/dist/components/Button/index.js.map +10 -0
  45. package/dist/components/Card/Card.d.ts +6 -0
  46. package/dist/components/Card/Card.stories.d.ts +13 -0
  47. package/dist/components/Card/index.d.ts +1 -0
  48. package/dist/components/Card/index.js +47 -0
  49. package/dist/components/Card/index.js.map +10 -0
  50. package/dist/components/Checkbox/Checkbox.d.ts +6 -0
  51. package/dist/components/Checkbox/Checkbox.stories.d.ts +25 -0
  52. package/dist/components/Checkbox/index.d.ts +1 -0
  53. package/dist/components/Checkbox/index.js +68 -0
  54. package/dist/components/Checkbox/index.js.map +10 -0
  55. package/dist/components/Collapsible/Collapsible.d.ts +4 -0
  56. package/dist/components/Collapsible/Collapsible.stories.d.ts +10 -0
  57. package/dist/components/Collapsible/index.d.ts +1 -0
  58. package/dist/components/Collapsible/index.js +34 -0
  59. package/dist/components/Collapsible/index.js.map +10 -0
  60. package/dist/components/Combobox/Combobox.d.ts +24 -0
  61. package/dist/components/Combobox/Combobox.stories.d.ts +13 -0
  62. package/dist/components/Combobox/index.d.ts +1 -0
  63. package/dist/components/Combobox/index.js +162 -0
  64. package/dist/components/Combobox/index.js.map +10 -0
  65. package/dist/components/ConfirmDialog/ConfirmDialog.d.ts +22 -0
  66. package/dist/components/ConfirmDialog/ConfirmDialog.stories.d.ts +10 -0
  67. package/dist/components/ConfirmDialog/index.d.ts +2 -0
  68. package/dist/components/ConfirmDialog/index.js +85 -0
  69. package/dist/components/ConfirmDialog/index.js.map +10 -0
  70. package/dist/components/ContextMenu/ContextMenu.d.ts +21 -0
  71. package/dist/components/ContextMenu/ContextMenu.stories.d.ts +7 -0
  72. package/dist/components/ContextMenu/index.d.ts +1 -0
  73. package/dist/components/ContextMenu/index.js +117 -0
  74. package/dist/components/ContextMenu/index.js.map +10 -0
  75. package/dist/components/Dialog/Dialog.d.ts +11 -0
  76. package/dist/components/Dialog/Dialog.stories.d.ts +10 -0
  77. package/dist/components/Dialog/index.d.ts +1 -0
  78. package/dist/components/Dialog/index.js +66 -0
  79. package/dist/components/Dialog/index.js.map +10 -0
  80. package/dist/components/Drawer/Drawer.d.ts +13 -0
  81. package/dist/components/Drawer/Drawer.stories.d.ts +9 -0
  82. package/dist/components/Drawer/index.d.ts +1 -0
  83. package/dist/components/Drawer/index.js +81 -0
  84. package/dist/components/Drawer/index.js.map +10 -0
  85. package/dist/components/Field/Field.d.ts +8 -0
  86. package/dist/components/Field/Field.stories.d.ts +21 -0
  87. package/dist/components/Field/index.d.ts +1 -0
  88. package/dist/components/Field/index.js +52 -0
  89. package/dist/components/Field/index.js.map +10 -0
  90. package/dist/components/Fieldset/Fieldset.d.ts +3 -0
  91. package/dist/components/Fieldset/Fieldset.stories.d.ts +14 -0
  92. package/dist/components/Fieldset/index.d.ts +1 -0
  93. package/dist/components/Fieldset/index.js +27 -0
  94. package/dist/components/Fieldset/index.js.map +10 -0
  95. package/dist/components/Form/Form.d.ts +5 -0
  96. package/dist/components/Form/Form.stories.d.ts +5 -0
  97. package/dist/components/Form/index.d.ts +1 -0
  98. package/dist/components/Form/index.js +20 -0
  99. package/dist/components/Form/index.js.map +10 -0
  100. package/dist/components/Input/Input.d.ts +16 -0
  101. package/dist/components/Input/Input.stories.d.ts +34 -0
  102. package/dist/components/Input/index.d.ts +2 -0
  103. package/dist/components/Input/index.js +44 -0
  104. package/dist/components/Input/index.js.map +10 -0
  105. package/dist/components/Menu/Menu.d.ts +21 -0
  106. package/dist/components/Menu/Menu.stories.d.ts +9 -0
  107. package/dist/components/Menu/index.d.ts +1 -0
  108. package/dist/components/Menu/index.js +117 -0
  109. package/dist/components/Menu/index.js.map +10 -0
  110. package/dist/components/Menubar/Menubar.d.ts +2 -0
  111. package/dist/components/Menubar/Menubar.stories.d.ts +5 -0
  112. package/dist/components/Menubar/index.d.ts +1 -0
  113. package/dist/components/Menubar/index.js +20 -0
  114. package/dist/components/Menubar/index.js.map +10 -0
  115. package/dist/components/Meter/Meter.d.ts +6 -0
  116. package/dist/components/Meter/Meter.stories.d.ts +7 -0
  117. package/dist/components/Meter/index.d.ts +1 -0
  118. package/dist/components/Meter/index.js +48 -0
  119. package/dist/components/Meter/index.js.map +10 -0
  120. package/dist/components/NavigationMenu/NavigationMenu.d.ts +12 -0
  121. package/dist/components/NavigationMenu/NavigationMenu.stories.d.ts +5 -0
  122. package/dist/components/NavigationMenu/index.d.ts +1 -0
  123. package/dist/components/NavigationMenu/index.js +100 -0
  124. package/dist/components/NavigationMenu/index.js.map +10 -0
  125. package/dist/components/NumberField/NumberField.d.ts +8 -0
  126. package/dist/components/NumberField/NumberField.stories.d.ts +7 -0
  127. package/dist/components/NumberField/index.d.ts +1 -0
  128. package/dist/components/NumberField/index.js +84 -0
  129. package/dist/components/NumberField/index.js.map +10 -0
  130. package/dist/components/PageHeader/PageHeader.d.ts +10 -0
  131. package/dist/components/PageHeader/PageHeader.stories.d.ts +10 -0
  132. package/dist/components/PageHeader/index.d.ts +2 -0
  133. package/dist/components/PageHeader/index.js +48 -0
  134. package/dist/components/PageHeader/index.js.map +10 -0
  135. package/dist/components/Popover/Popover.d.ts +12 -0
  136. package/dist/components/Popover/Popover.stories.d.ts +9 -0
  137. package/dist/components/Popover/index.d.ts +1 -0
  138. package/dist/components/Popover/index.js +74 -0
  139. package/dist/components/Popover/index.js.map +10 -0
  140. package/dist/components/PreviewCard/PreviewCard.d.ts +9 -0
  141. package/dist/components/PreviewCard/PreviewCard.stories.d.ts +8 -0
  142. package/dist/components/PreviewCard/index.d.ts +1 -0
  143. package/dist/components/PreviewCard/index.js +53 -0
  144. package/dist/components/PreviewCard/index.js.map +10 -0
  145. package/dist/components/ProfileCard/ProfileCard.d.ts +19 -0
  146. package/dist/components/ProfileCard/ProfileCard.stories.d.ts +11 -0
  147. package/dist/components/ProfileCard/index.d.ts +2 -0
  148. package/dist/components/ProfileCard/index.js +97 -0
  149. package/dist/components/ProfileCard/index.js.map +10 -0
  150. package/dist/components/Progress/Progress.d.ts +6 -0
  151. package/dist/components/Progress/Progress.stories.d.ts +7 -0
  152. package/dist/components/Progress/index.d.ts +1 -0
  153. package/dist/components/Progress/index.js +48 -0
  154. package/dist/components/Progress/index.js.map +10 -0
  155. package/dist/components/Radio/Radio.d.ts +6 -0
  156. package/dist/components/Radio/Radio.stories.d.ts +20 -0
  157. package/dist/components/Radio/index.d.ts +1 -0
  158. package/dist/components/Radio/index.js +35 -0
  159. package/dist/components/Radio/index.js.map +10 -0
  160. package/dist/components/ScrollArea/ScrollArea.d.ts +7 -0
  161. package/dist/components/ScrollArea/ScrollArea.stories.d.ts +6 -0
  162. package/dist/components/ScrollArea/index.d.ts +1 -0
  163. package/dist/components/ScrollArea/index.js +55 -0
  164. package/dist/components/ScrollArea/index.js.map +10 -0
  165. package/dist/components/SearchField/SearchField.d.ts +11 -0
  166. package/dist/components/SearchField/SearchField.stories.d.ts +9 -0
  167. package/dist/components/SearchField/index.d.ts +2 -0
  168. package/dist/components/SearchField/index.js +65 -0
  169. package/dist/components/SearchField/index.js.map +10 -0
  170. package/dist/components/Select/Select.d.ts +19 -0
  171. package/dist/components/Select/Select.stories.d.ts +20 -0
  172. package/dist/components/Select/index.d.ts +1 -0
  173. package/dist/components/Select/index.js +143 -0
  174. package/dist/components/Select/index.js.map +10 -0
  175. package/dist/components/Separator/Separator.d.ts +2 -0
  176. package/dist/components/Separator/Separator.stories.d.ts +10 -0
  177. package/dist/components/Separator/index.d.ts +1 -0
  178. package/dist/components/Separator/index.js +20 -0
  179. package/dist/components/Separator/index.js.map +10 -0
  180. package/dist/components/Slider/Slider.d.ts +10 -0
  181. package/dist/components/Slider/Slider.stories.d.ts +7 -0
  182. package/dist/components/Slider/index.d.ts +1 -0
  183. package/dist/components/Slider/index.js +55 -0
  184. package/dist/components/Slider/index.js.map +10 -0
  185. package/dist/components/Switch/Switch.d.ts +3 -0
  186. package/dist/components/Switch/Switch.stories.d.ts +24 -0
  187. package/dist/components/Switch/index.d.ts +1 -0
  188. package/dist/components/Switch/index.js +27 -0
  189. package/dist/components/Switch/index.js.map +10 -0
  190. package/dist/components/Tabs/Tabs.d.ts +6 -0
  191. package/dist/components/Tabs/Tabs.stories.d.ts +9 -0
  192. package/dist/components/Tabs/index.d.ts +1 -0
  193. package/dist/components/Tabs/index.js +43 -0
  194. package/dist/components/Tabs/index.js.map +10 -0
  195. package/dist/components/Toast/Toast.d.ts +14 -0
  196. package/dist/components/Toast/Toast.stories.d.ts +8 -0
  197. package/dist/components/Toast/index.d.ts +1 -0
  198. package/dist/components/Toast/index.js +127 -0
  199. package/dist/components/Toast/index.js.map +10 -0
  200. package/dist/components/Toggle/Toggle.d.ts +3 -0
  201. package/dist/components/Toggle/Toggle.stories.d.ts +8 -0
  202. package/dist/components/Toggle/index.d.ts +1 -0
  203. package/dist/components/Toggle/index.js +20 -0
  204. package/dist/components/Toggle/index.js.map +10 -0
  205. package/dist/components/ToggleGroup/ToggleGroup.d.ts +3 -0
  206. package/dist/components/ToggleGroup/ToggleGroup.stories.d.ts +6 -0
  207. package/dist/components/ToggleGroup/index.d.ts +1 -0
  208. package/dist/components/ToggleGroup/index.js +20 -0
  209. package/dist/components/ToggleGroup/index.js.map +10 -0
  210. package/dist/components/Toolbar/Toolbar.d.ts +7 -0
  211. package/dist/components/Toolbar/Toolbar.stories.d.ts +7 -0
  212. package/dist/components/Toolbar/index.d.ts +1 -0
  213. package/dist/components/Toolbar/index.js +50 -0
  214. package/dist/components/Toolbar/index.js.map +10 -0
  215. package/dist/components/Tooltip/Tooltip.d.ts +9 -0
  216. package/dist/components/Tooltip/Tooltip.stories.d.ts +9 -0
  217. package/dist/components/Tooltip/index.d.ts +1 -0
  218. package/dist/components/Tooltip/index.js +48 -0
  219. package/dist/components/Tooltip/index.js.map +10 -0
  220. package/dist/fonts.css +3 -0
  221. package/dist/index.d.ts +55 -0
  222. package/dist/index.js +620 -0
  223. package/dist/index.js.map +9 -0
  224. package/dist/stories/Camps.stories.d.ts +11 -0
  225. package/dist/stories/Plains.stories.d.ts +11 -0
  226. package/dist/stories/Theming.stories.d.ts +8 -0
  227. package/dist/stories/Typography.stories.d.ts +5 -0
  228. package/dist/styles.css +2 -0
  229. package/dist/utils/cn.d.ts +2 -0
  230. package/dist/utils/cn.js +1806 -0
  231. package/dist/utils/cn.js.map +12 -0
  232. package/dist/utils/cn.test.d.ts +1 -0
  233. package/package.json +266 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Fieldset/Fieldset.tsx"],
4
+ "sourcesContent": [
5
+ "import { Fieldset as BaseFieldset } from '@base-ui/react/fieldset';\nimport React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport const FieldsetRoot = React.forwardRef<\n HTMLFieldSetElement,\n React.ComponentPropsWithoutRef<typeof BaseFieldset.Root>\n>(({ className, ...props }, ref) => (\n <BaseFieldset.Root\n ref={ref}\n className={cn('flex flex-col gap-4 border-0 m-0 p-0', className)}\n {...props}\n />\n));\nFieldsetRoot.displayName = 'FieldsetRoot';\n\nexport const FieldsetLegend = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof BaseFieldset.Legend>\n>(({ className, ...props }, ref) => (\n <BaseFieldset.Legend\n ref={ref}\n className={cn(\n 'text-base font-semibold text-kraft border-b border-kraft/15 pb-3 w-full',\n className\n )}\n {...props}\n />\n));\nFieldsetLegend.displayName = 'FieldsetLegend';\n"
6
+ ],
7
+ "mappings": ";;;;;AAAA,qBAAS;AACT;;AAGO,IAAM,eAAe,MAAM,WAGhC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,MAAd;AAAA,EACI;AAAA,EACA,WAAW,GAAG,wCAAwC,SAAS;AAAA,KAC3D;AAAA,CACR,CACH;AACD,aAAa,cAAc;AAEpB,IAAM,iBAAiB,MAAM,WAGlC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,QAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,2EACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,eAAe,cAAc;",
8
+ "debugId": "CF6A277F31D7E10A64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,5 @@
1
+ import * as React from 'react';
2
+ import { Form } from '@base-ui/react/form';
3
+ export declare const FormRoot: React.ForwardRefExoticComponent<Omit<Form.Props<Record<string, any>> & {
4
+ ref?: React.Ref<HTMLFormElement> | undefined;
5
+ }, "ref"> & React.RefAttributes<HTMLFormElement>>;
@@ -0,0 +1,5 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export { FormRoot } from './Form';
@@ -0,0 +1,20 @@
1
+ import {
2
+ cn
3
+ } from "../../utils/cn.js";
4
+
5
+ // src/components/Form/Form.tsx
6
+ import * as React from "react";
7
+ import { Form } from "@base-ui/react/form";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var FormRoot = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Form, {
10
+ ref,
11
+ className: cn("space-y-4", className),
12
+ ...props
13
+ }));
14
+ FormRoot.displayName = "FormRoot";
15
+ export {
16
+ FormRoot
17
+ };
18
+ export { FormRoot };
19
+
20
+ //# debugId=6744BFEFDDD7DA8664756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Form/Form.tsx"],
4
+ "sourcesContent": [
5
+ "import * as React from 'react';\nimport { Form } from '@base-ui/react/form';\nimport { cn } from '../../utils/cn';\n\nexport const FormRoot = React.forwardRef<\n HTMLFormElement,\n React.ComponentPropsWithoutRef<typeof Form>\n>(({ className, ...props }, ref) => (\n <Form ref={ref} className={cn('space-y-4', className)} {...props} />\n));\nFormRoot.displayName = 'FormRoot';\n"
6
+ ],
7
+ "mappings": ";;;;;AAAA;AACA;;AAGO,IAAM,WAAiB,iBAG5B,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAD;AAAA,EAAM;AAAA,EAAU,WAAW,GAAG,aAAa,SAAS;AAAA,KAAO;AAAA,CAAO,CACrE;AACD,SAAS,cAAc;",
8
+ "debugId": "6744BFEFDDD7DA8664756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,16 @@
1
+ import { Input as BaseInput } from '@base-ui/react/input';
2
+ import { type VariantProps } from 'cva';
3
+ import React from 'react';
4
+ export declare const inputVariants: (props?: ({
5
+ variant?: "default" | "error" | undefined;
6
+ size?: "sm" | "md" | "lg" | undefined;
7
+ } & ({
8
+ class?: import("cva").ClassValue;
9
+ className?: never;
10
+ } | {
11
+ class?: never;
12
+ className?: import("cva").ClassValue;
13
+ })) | undefined) => string;
14
+ export interface InputProps extends Omit<React.ComponentPropsWithoutRef<typeof BaseInput>, 'size'>, VariantProps<typeof inputVariants> {
15
+ }
16
+ export declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,34 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<import("./Input").InputProps & import("react").RefAttributes<HTMLInputElement>>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ argTypes: {
10
+ variant: {
11
+ control: "select";
12
+ options: string[];
13
+ };
14
+ size: {
15
+ control: "select";
16
+ options: string[];
17
+ };
18
+ disabled: {
19
+ control: "boolean";
20
+ };
21
+ placeholder: {
22
+ control: "text";
23
+ };
24
+ };
25
+ };
26
+ export default meta;
27
+ type Story = StoryObj<typeof meta>;
28
+ export declare const Default: Story;
29
+ export declare const Error: Story;
30
+ export declare const Small: Story;
31
+ export declare const Large: Story;
32
+ export declare const AllVariants: Story;
33
+ export declare const AllSizes: Story;
34
+ export declare const Disabled: Story;
@@ -0,0 +1,2 @@
1
+ export { Input, inputVariants } from './Input';
2
+ export type { InputProps } from './Input';
@@ -0,0 +1,44 @@
1
+ import {
2
+ cva
3
+ } from "../../chunk-fjtwj9cw.js";
4
+ import {
5
+ cn
6
+ } from "../../utils/cn.js";
7
+
8
+ // src/components/Input/Input.tsx
9
+ import { Input as BaseInput } from "@base-ui/react/input";
10
+ import React from "react";
11
+ import { jsx } from "react/jsx-runtime";
12
+ var inputVariants = cva({
13
+ base: "flex w-full rounded-lg border bg-surface px-3 text-sm text-kraft transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-kraft/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 data-disabled:cursor-not-allowed data-disabled:opacity-50",
14
+ variants: {
15
+ variant: {
16
+ default: "border-kraft/20 focus-visible:border-ribbon focus-visible:ring-ribbon",
17
+ error: "border-spool focus-visible:ring-spool"
18
+ },
19
+ size: {
20
+ sm: "h-8 text-xs",
21
+ md: "h-10",
22
+ lg: "h-12 text-base"
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ variant: "default",
27
+ size: "md"
28
+ }
29
+ });
30
+ var Input = React.forwardRef(({ className, variant, size, ...props }, ref) => {
31
+ return /* @__PURE__ */ jsx(BaseInput, {
32
+ ref,
33
+ className: cn(inputVariants({ variant, size }), className),
34
+ ...props
35
+ });
36
+ });
37
+ Input.displayName = "Input";
38
+ export {
39
+ inputVariants,
40
+ Input
41
+ };
42
+ export { inputVariants, Input };
43
+
44
+ //# debugId=789832A72C9D510264756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Input/Input.tsx"],
4
+ "sourcesContent": [
5
+ "import { Input as BaseInput } from '@base-ui/react/input';\nimport { cva, type VariantProps } from 'cva';\nimport { cn } from '../../utils/cn';\nimport React from 'react';\n\nexport const inputVariants = cva({\n base: 'flex w-full rounded-lg border bg-surface px-3 text-sm text-kraft transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-kraft/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 data-disabled:cursor-not-allowed data-disabled:opacity-50',\n variants: {\n variant: {\n default: 'border-kraft/20 focus-visible:border-ribbon focus-visible:ring-ribbon',\n error: 'border-spool focus-visible:ring-spool'\n },\n size: {\n sm: 'h-8 text-xs',\n md: 'h-10',\n lg: 'h-12 text-base'\n }\n },\n defaultVariants: {\n variant: 'default',\n size: 'md'\n }\n});\n\nexport interface InputProps\n extends Omit<React.ComponentPropsWithoutRef<typeof BaseInput>, 'size'>,\n VariantProps<typeof inputVariants> {}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ className, variant, size, ...props }, ref) => {\n return (\n <BaseInput\n ref={ref}\n className={cn(inputVariants({ variant, size }), className)}\n {...props}\n />\n );\n }\n);\n\nInput.displayName = 'Input';\n"
6
+ ],
7
+ "mappings": ";;;;;;;;AAAA,kBAAS;AAGT;AAAA;AAEO,IAAM,gBAAgB,IAAI;AAAA,EAC7B,MAAM;AAAA,EACN,UAAU;AAAA,IACN,SAAS;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,IACX;AAAA,IACA,MAAM;AAAA,MACF,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACR;AAAA,EACJ;AAAA,EACA,iBAAiB;AAAA,IACb,SAAS;AAAA,IACT,MAAM;AAAA,EACV;AACJ,CAAC;AAMM,IAAM,QAAQ,MAAM,WACvB,GAAG,WAAW,SAAS,SAAS,SAAS,QAAQ;AAAA,EAC7C,uBACI,IAAC,WAAD;AAAA,IACI;AAAA,IACA,WAAW,GAAG,cAAc,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,OACrD;AAAA,GACR;AAAA,CAGZ;AAEA,MAAM,cAAc;",
8
+ "debugId": "789832A72C9D510264756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { Menu } from '@base-ui/react/menu';
3
+ export declare const MenuRoot: <Payload>(props: Menu.Root.Props<Payload>) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const MenuPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ContextMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ export declare const MenuBackdrop: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ContextMenuBackdropProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ export declare const MenuGroup: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").ContextMenuGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ export declare const MenuRadioGroup: React.NamedExoticComponent<Omit<import("@base-ui/react").ContextMenuRadioGroupProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
8
+ export declare const MenuSubmenuRoot: typeof Menu.SubmenuRoot;
9
+ export declare const MenuTrigger: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").MenuTriggerProps<unknown> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
10
+ export declare const MenuPositioner: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ export declare const MenuPopup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuPopupProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ export declare const MenuArrow: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuArrowProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ export declare const MenuItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
14
+ export declare const MenuLinkItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuLinkItemProps, "ref"> & React.RefAttributes<Element>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
15
+ export declare const MenuSeparator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").SeparatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
16
+ export declare const MenuGroupLabel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuGroupLabelProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
17
+ export declare const MenuRadioItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuRadioItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
18
+ export declare const MenuRadioItemIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuRadioItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
19
+ export declare const MenuCheckboxItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuCheckboxItemProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
20
+ export declare const MenuCheckboxItemIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuCheckboxItemIndicatorProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
21
+ export declare const MenuSubmenuTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").ContextMenuSubmenuTriggerProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,9 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Basic: Story;
6
+ export declare const WithGroups: Story;
7
+ export declare const WithCheckboxItems: Story;
8
+ export declare const WithRadioItems: Story;
9
+ export declare const WithSubmenu: Story;
@@ -0,0 +1 @@
1
+ export { MenuRoot, MenuTrigger, MenuPortal, MenuBackdrop, MenuPositioner, MenuPopup, MenuArrow, MenuItem, MenuLinkItem, MenuSeparator, MenuGroup, MenuGroupLabel, MenuRadioGroup, MenuRadioItem, MenuRadioItemIndicator, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuSubmenuRoot, MenuSubmenuTrigger } from './Menu';
@@ -0,0 +1,117 @@
1
+ import {
2
+ cn
3
+ } from "../../utils/cn.js";
4
+
5
+ // src/components/Menu/Menu.tsx
6
+ import * as React from "react";
7
+ import { Menu } from "@base-ui/react/menu";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var MenuRoot = Menu.Root;
10
+ var MenuPortal = Menu.Portal;
11
+ var MenuBackdrop = Menu.Backdrop;
12
+ var MenuGroup = Menu.Group;
13
+ var MenuRadioGroup = Menu.RadioGroup;
14
+ var MenuSubmenuRoot = Menu.SubmenuRoot;
15
+ var MenuTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.Trigger, {
16
+ ref,
17
+ className: cn("inline-flex h-8 cursor-default items-center gap-1 rounded-sm px-3 text-sm font-medium text-kraft select-none outline-none", "hover:bg-canvas/60 focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-ribbon-500", "data-popup-open:bg-canvas/60", "data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
18
+ ...props
19
+ }));
20
+ MenuTrigger.displayName = "MenuTrigger";
21
+ var MenuPositioner = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.Positioner, {
22
+ ref,
23
+ className: cn("outline-none", className),
24
+ ...props
25
+ }));
26
+ MenuPositioner.displayName = "MenuPositioner";
27
+ var MenuPopup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.Popup, {
28
+ ref,
29
+ className: cn("min-w-[8rem] rounded-lg border border-kraft/15 bg-surface p-1 shadow-md", "origin-[var(--transform-origin)] transition-[transform,scale,opacity] duration-150", "data-starting-style:scale-95 data-starting-style:opacity-0", "data-ending-style:scale-95 data-ending-style:opacity-0", className),
30
+ ...props
31
+ }));
32
+ MenuPopup.displayName = "MenuPopup";
33
+ var MenuArrow = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.Arrow, {
34
+ ref,
35
+ className: cn("flex text-kraft/15", "data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180", "data-[side=bottom]:top-[-8px]", "data-[side=left]:right-[-13px] data-[side=left]:rotate-90", "data-[side=right]:left-[-13px] data-[side=right]:-rotate-90", className),
36
+ ...props
37
+ }));
38
+ MenuArrow.displayName = "MenuArrow";
39
+ var itemClasses = "relative flex cursor-default items-center gap-2 rounded-sm px-3 py-1.5 text-sm text-kraft select-none outline-none " + "data-highlighted:bg-canvas/60 data-popup-open:bg-canvas/40 " + "data-disabled:pointer-events-none data-disabled:opacity-50";
40
+ var MenuItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.Item, {
41
+ ref,
42
+ className: cn(itemClasses, className),
43
+ ...props
44
+ }));
45
+ MenuItem.displayName = "MenuItem";
46
+ var MenuLinkItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.LinkItem, {
47
+ ref,
48
+ className: cn(itemClasses, "no-underline", className),
49
+ ...props
50
+ }));
51
+ MenuLinkItem.displayName = "MenuLinkItem";
52
+ var MenuSeparator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.Separator, {
53
+ ref,
54
+ className: cn("my-1 h-px bg-kraft/10", className),
55
+ ...props
56
+ }));
57
+ MenuSeparator.displayName = "MenuSeparator";
58
+ var MenuGroupLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.GroupLabel, {
59
+ ref,
60
+ className: cn("px-3 py-1 text-xs font-semibold tracking-wide text-kraft/50", className),
61
+ ...props
62
+ }));
63
+ MenuGroupLabel.displayName = "MenuGroupLabel";
64
+ var MenuRadioItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.RadioItem, {
65
+ ref,
66
+ className: cn(itemClasses, "pl-8", className),
67
+ ...props
68
+ }));
69
+ MenuRadioItem.displayName = "MenuRadioItem";
70
+ var MenuRadioItemIndicator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.RadioItemIndicator, {
71
+ ref,
72
+ className: cn("absolute left-2 flex size-4 items-center justify-center", className),
73
+ ...props
74
+ }));
75
+ MenuRadioItemIndicator.displayName = "MenuRadioItemIndicator";
76
+ var MenuCheckboxItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.CheckboxItem, {
77
+ ref,
78
+ className: cn(itemClasses, "pl-8", className),
79
+ ...props
80
+ }));
81
+ MenuCheckboxItem.displayName = "MenuCheckboxItem";
82
+ var MenuCheckboxItemIndicator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.CheckboxItemIndicator, {
83
+ ref,
84
+ className: cn("absolute left-2 flex size-4 items-center justify-center", className),
85
+ ...props
86
+ }));
87
+ MenuCheckboxItemIndicator.displayName = "MenuCheckboxItemIndicator";
88
+ var MenuSubmenuTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menu.SubmenuTrigger, {
89
+ ref,
90
+ className: cn(itemClasses, "justify-between", className),
91
+ ...props
92
+ }));
93
+ MenuSubmenuTrigger.displayName = "MenuSubmenuTrigger";
94
+ export {
95
+ MenuTrigger,
96
+ MenuSubmenuTrigger,
97
+ MenuSubmenuRoot,
98
+ MenuSeparator,
99
+ MenuRoot,
100
+ MenuRadioItemIndicator,
101
+ MenuRadioItem,
102
+ MenuRadioGroup,
103
+ MenuPositioner,
104
+ MenuPortal,
105
+ MenuPopup,
106
+ MenuLinkItem,
107
+ MenuItem,
108
+ MenuGroupLabel,
109
+ MenuGroup,
110
+ MenuCheckboxItemIndicator,
111
+ MenuCheckboxItem,
112
+ MenuBackdrop,
113
+ MenuArrow
114
+ };
115
+ export { MenuRoot, MenuPortal, MenuBackdrop, MenuGroup, MenuRadioGroup, MenuSubmenuRoot, MenuTrigger, MenuPositioner, MenuPopup, MenuArrow, MenuItem, MenuLinkItem, MenuSeparator, MenuGroupLabel, MenuRadioItem, MenuRadioItemIndicator, MenuCheckboxItem, MenuCheckboxItemIndicator, MenuSubmenuTrigger };
116
+
117
+ //# debugId=D9064FB594664C3E64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Menu/Menu.tsx"],
4
+ "sourcesContent": [
5
+ "import * as React from 'react';\nimport { Menu } from '@base-ui/react/menu';\nimport { cn } from '../../utils/cn';\n\n// Pass-throughs\nexport const MenuRoot = Menu.Root;\nexport const MenuPortal = Menu.Portal;\nexport const MenuBackdrop = Menu.Backdrop;\nexport const MenuGroup = Menu.Group;\nexport const MenuRadioGroup = Menu.RadioGroup;\nexport const MenuSubmenuRoot = Menu.SubmenuRoot;\n\n// Styled parts\n\nexport const MenuTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Menu.Trigger>\n>(({ className, ...props }, ref) => (\n <Menu.Trigger\n ref={ref}\n className={cn(\n 'inline-flex h-8 cursor-default items-center gap-1 rounded-sm px-3 text-sm font-medium text-kraft select-none outline-none',\n 'hover:bg-canvas/60 focus-visible:outline-2 focus-visible:-outline-offset-1 focus-visible:outline-ribbon-500',\n 'data-popup-open:bg-canvas/60',\n 'data-disabled:cursor-not-allowed data-disabled:opacity-50',\n className\n )}\n {...props}\n />\n));\nMenuTrigger.displayName = 'MenuTrigger';\n\nexport const MenuPositioner = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.Positioner>\n>(({ className, ...props }, ref) => (\n <Menu.Positioner\n ref={ref}\n className={cn('outline-none', className)}\n {...props}\n />\n));\nMenuPositioner.displayName = 'MenuPositioner';\n\nexport const MenuPopup = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.Popup>\n>(({ className, ...props }, ref) => (\n <Menu.Popup\n ref={ref}\n className={cn(\n 'min-w-[8rem] rounded-lg border border-kraft/15 bg-surface p-1 shadow-md',\n 'origin-[var(--transform-origin)] transition-[transform,scale,opacity] duration-150',\n 'data-starting-style:scale-95 data-starting-style:opacity-0',\n 'data-ending-style:scale-95 data-ending-style:opacity-0',\n className\n )}\n {...props}\n />\n));\nMenuPopup.displayName = 'MenuPopup';\n\nexport const MenuArrow = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.Arrow>\n>(({ className, ...props }, ref) => (\n <Menu.Arrow\n ref={ref}\n className={cn(\n 'flex text-kraft/15',\n 'data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180',\n 'data-[side=bottom]:top-[-8px]',\n 'data-[side=left]:right-[-13px] data-[side=left]:rotate-90',\n 'data-[side=right]:left-[-13px] data-[side=right]:-rotate-90',\n className\n )}\n {...props}\n />\n));\nMenuArrow.displayName = 'MenuArrow';\n\nconst itemClasses =\n 'relative flex cursor-default items-center gap-2 rounded-sm px-3 py-1.5 text-sm text-kraft select-none outline-none ' +\n 'data-highlighted:bg-canvas/60 data-popup-open:bg-canvas/40 ' +\n 'data-disabled:pointer-events-none data-disabled:opacity-50';\n\nexport const MenuItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.Item>\n>(({ className, ...props }, ref) => (\n <Menu.Item ref={ref} className={cn(itemClasses, className)} {...props} />\n));\nMenuItem.displayName = 'MenuItem';\n\nexport const MenuLinkItem = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<typeof Menu.LinkItem>\n>(({ className, ...props }, ref) => (\n <Menu.LinkItem\n ref={ref}\n className={cn(itemClasses, 'no-underline', className)}\n {...props}\n />\n));\nMenuLinkItem.displayName = 'MenuLinkItem';\n\nexport const MenuSeparator = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.Separator>\n>(({ className, ...props }, ref) => (\n <Menu.Separator\n ref={ref}\n className={cn('my-1 h-px bg-kraft/10', className)}\n {...props}\n />\n));\nMenuSeparator.displayName = 'MenuSeparator';\n\nexport const MenuGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.GroupLabel>\n>(({ className, ...props }, ref) => (\n <Menu.GroupLabel\n ref={ref}\n className={cn(\n 'px-3 py-1 text-xs font-semibold tracking-wide text-kraft/50',\n className\n )}\n {...props}\n />\n));\nMenuGroupLabel.displayName = 'MenuGroupLabel';\n\nexport const MenuRadioItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.RadioItem>\n>(({ className, ...props }, ref) => (\n <Menu.RadioItem\n ref={ref}\n className={cn(itemClasses, 'pl-8', className)}\n {...props}\n />\n));\nMenuRadioItem.displayName = 'MenuRadioItem';\n\nexport const MenuRadioItemIndicator = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof Menu.RadioItemIndicator>\n>(({ className, ...props }, ref) => (\n <Menu.RadioItemIndicator\n ref={ref}\n className={cn(\n 'absolute left-2 flex size-4 items-center justify-center',\n className\n )}\n {...props}\n />\n));\nMenuRadioItemIndicator.displayName = 'MenuRadioItemIndicator';\n\nexport const MenuCheckboxItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.CheckboxItem>\n>(({ className, ...props }, ref) => (\n <Menu.CheckboxItem\n ref={ref}\n className={cn(itemClasses, 'pl-8', className)}\n {...props}\n />\n));\nMenuCheckboxItem.displayName = 'MenuCheckboxItem';\n\nexport const MenuCheckboxItemIndicator = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof Menu.CheckboxItemIndicator>\n>(({ className, ...props }, ref) => (\n <Menu.CheckboxItemIndicator\n ref={ref}\n className={cn(\n 'absolute left-2 flex size-4 items-center justify-center',\n className\n )}\n {...props}\n />\n));\nMenuCheckboxItemIndicator.displayName = 'MenuCheckboxItemIndicator';\n\nexport const MenuSubmenuTrigger = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menu.SubmenuTrigger>\n>(({ className, ...props }, ref) => (\n <Menu.SubmenuTrigger\n ref={ref}\n className={cn(itemClasses, 'justify-between', className)}\n {...props}\n />\n));\nMenuSubmenuTrigger.displayName = 'MenuSubmenuTrigger';\n"
6
+ ],
7
+ "mappings": ";;;;;AAAA;AACA;;AAIO,IAAM,WAAW,KAAK;AACtB,IAAM,aAAa,KAAK;AACxB,IAAM,eAAe,KAAK;AAC1B,IAAM,YAAY,KAAK;AACvB,IAAM,iBAAiB,KAAK;AAC5B,IAAM,kBAAkB,KAAK;AAI7B,IAAM,cAAoB,iBAG/B,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,SAAN;AAAA,EACI;AAAA,EACA,WAAW,GACP,6HACA,+GACA,gCACA,6DACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,YAAY,cAAc;AAEnB,IAAM,iBAAuB,iBAGlC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,YAAN;AAAA,EACI;AAAA,EACA,WAAW,GAAG,gBAAgB,SAAS;AAAA,KACnC;AAAA,CACR,CACH;AACD,eAAe,cAAc;AAEtB,IAAM,YAAkB,iBAG7B,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,OAAN;AAAA,EACI;AAAA,EACA,WAAW,GACP,2EACA,sFACA,8DACA,0DACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,UAAU,cAAc;AAEjB,IAAM,YAAkB,iBAG7B,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,OAAN;AAAA,EACI;AAAA,EACA,WAAW,GACP,sBACA,4DACA,iCACA,6DACA,+DACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,UAAU,cAAc;AAExB,IAAM,cACF,wHACA,gEACA;AAEG,IAAM,WAAiB,iBAG5B,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,MAAN;AAAA,EAAW;AAAA,EAAU,WAAW,GAAG,aAAa,SAAS;AAAA,KAAO;AAAA,CAAO,CAC1E;AACD,SAAS,cAAc;AAEhB,IAAM,eAAqB,iBAGhC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,UAAN;AAAA,EACI;AAAA,EACA,WAAW,GAAG,aAAa,gBAAgB,SAAS;AAAA,KAChD;AAAA,CACR,CACH;AACD,aAAa,cAAc;AAEpB,IAAM,gBAAsB,iBAGjC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,WAAN;AAAA,EACI;AAAA,EACA,WAAW,GAAG,yBAAyB,SAAS;AAAA,KAC5C;AAAA,CACR,CACH;AACD,cAAc,cAAc;AAErB,IAAM,iBAAuB,iBAGlC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,YAAN;AAAA,EACI;AAAA,EACA,WAAW,GACP,+DACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,eAAe,cAAc;AAEtB,IAAM,gBAAsB,iBAGjC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,WAAN;AAAA,EACI;AAAA,EACA,WAAW,GAAG,aAAa,QAAQ,SAAS;AAAA,KACxC;AAAA,CACR,CACH;AACD,cAAc,cAAc;AAErB,IAAM,yBAA+B,iBAG1C,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,oBAAN;AAAA,EACI;AAAA,EACA,WAAW,GACP,2DACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,uBAAuB,cAAc;AAE9B,IAAM,mBAAyB,iBAGpC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,cAAN;AAAA,EACI;AAAA,EACA,WAAW,GAAG,aAAa,QAAQ,SAAS;AAAA,KACxC;AAAA,CACR,CACH;AACD,iBAAiB,cAAc;AAExB,IAAM,4BAAkC,iBAG7C,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,uBAAN;AAAA,EACI;AAAA,EACA,WAAW,GACP,2DACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,0BAA0B,cAAc;AAEjC,IAAM,qBAA2B,iBAGtC,GAAG,cAAc,SAAS,wBACxB,IAAC,KAAK,gBAAN;AAAA,EACI;AAAA,EACA,WAAW,GAAG,aAAa,mBAAmB,SAAS;AAAA,KACnD;AAAA,CACR,CACH;AACD,mBAAmB,cAAc;",
8
+ "debugId": "D9064FB594664C3E64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,2 @@
1
+ import * as React from 'react';
2
+ export declare const MenubarRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").MenubarProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Basic: Story;
@@ -0,0 +1 @@
1
+ export { MenubarRoot } from './Menubar';
@@ -0,0 +1,20 @@
1
+ import {
2
+ cn
3
+ } from "../../utils/cn.js";
4
+
5
+ // src/components/Menubar/Menubar.tsx
6
+ import * as React from "react";
7
+ import { Menubar } from "@base-ui/react/menubar";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var MenubarRoot = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Menubar, {
10
+ ref,
11
+ className: cn("flex items-center gap-0.5 rounded-lg border border-kraft/15 bg-surface p-0.5", className),
12
+ ...props
13
+ }));
14
+ MenubarRoot.displayName = "MenubarRoot";
15
+ export {
16
+ MenubarRoot
17
+ };
18
+ export { MenubarRoot };
19
+
20
+ //# debugId=629B3381E6DAE41364756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Menubar/Menubar.tsx"],
4
+ "sourcesContent": [
5
+ "import * as React from 'react';\nimport { Menubar } from '@base-ui/react/menubar';\nimport { cn } from '../../utils/cn';\n\nexport const MenubarRoot = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Menubar>\n>(({ className, ...props }, ref) => (\n <Menubar\n ref={ref}\n className={cn(\n 'flex items-center gap-0.5 rounded-lg border border-kraft/15 bg-surface p-0.5',\n className\n )}\n {...props}\n />\n));\nMenubarRoot.displayName = 'MenubarRoot';\n"
6
+ ],
7
+ "mappings": ";;;;;AAAA;AACA;;AAGO,IAAM,cAAoB,iBAG/B,GAAG,cAAc,SAAS,wBACxB,IAAC,SAAD;AAAA,EACI;AAAA,EACA,WAAW,GACP,gFACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,YAAY,cAAc;",
8
+ "debugId": "629B3381E6DAE41364756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export declare const MeterRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").MeterRootProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
3
+ export declare const MeterLabel: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").MeterLabelProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
4
+ export declare const MeterTrack: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").MeterTrackProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ export declare const MeterIndicator: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").MeterIndicatorProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
6
+ export declare const MeterValue: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").MeterValueProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1,7 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
6
+ export declare const Low: Story;
7
+ export declare const Full: Story;
@@ -0,0 +1 @@
1
+ export { MeterRoot, MeterLabel, MeterTrack, MeterIndicator, MeterValue } from './Meter';
@@ -0,0 +1,48 @@
1
+ import {
2
+ cn
3
+ } from "../../utils/cn.js";
4
+
5
+ // src/components/Meter/Meter.tsx
6
+ import * as React from "react";
7
+ import { Meter } from "@base-ui/react/meter";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var MeterRoot = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Meter.Root, {
10
+ ref,
11
+ className: cn("flex w-full flex-col gap-1", className),
12
+ ...props
13
+ }));
14
+ MeterRoot.displayName = "MeterRoot";
15
+ var MeterLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Meter.Label, {
16
+ ref,
17
+ className: cn("text-sm font-medium text-kraft", className),
18
+ ...props
19
+ }));
20
+ MeterLabel.displayName = "MeterLabel";
21
+ var MeterTrack = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Meter.Track, {
22
+ ref,
23
+ className: cn("h-2 w-full overflow-hidden rounded-full bg-kraft/15", className),
24
+ ...props
25
+ }));
26
+ MeterTrack.displayName = "MeterTrack";
27
+ var MeterIndicator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Meter.Indicator, {
28
+ ref,
29
+ className: cn("h-full bg-ribbon transition-[width] duration-300", className),
30
+ ...props
31
+ }));
32
+ MeterIndicator.displayName = "MeterIndicator";
33
+ var MeterValue = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Meter.Value, {
34
+ ref,
35
+ className: cn("text-xs text-kraft/60", className),
36
+ ...props
37
+ }));
38
+ MeterValue.displayName = "MeterValue";
39
+ export {
40
+ MeterValue,
41
+ MeterTrack,
42
+ MeterRoot,
43
+ MeterLabel,
44
+ MeterIndicator
45
+ };
46
+ export { MeterRoot, MeterLabel, MeterTrack, MeterIndicator, MeterValue };
47
+
48
+ //# debugId=303D7D53D891184B64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Meter/Meter.tsx"],
4
+ "sourcesContent": [
5
+ "import * as React from 'react';\nimport { Meter } from '@base-ui/react/meter';\nimport { cn } from '../../utils/cn';\n\nexport const MeterRoot = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Meter.Root>\n>(({ className, ...props }, ref) => (\n <Meter.Root\n ref={ref}\n className={cn('flex w-full flex-col gap-1', className)}\n {...props}\n />\n));\nMeterRoot.displayName = 'MeterRoot';\n\nexport const MeterLabel = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof Meter.Label>\n>(({ className, ...props }, ref) => (\n <Meter.Label\n ref={ref}\n className={cn('text-sm font-medium text-kraft', className)}\n {...props}\n />\n));\nMeterLabel.displayName = 'MeterLabel';\n\nexport const MeterTrack = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Meter.Track>\n>(({ className, ...props }, ref) => (\n <Meter.Track\n ref={ref}\n className={cn(\n 'h-2 w-full overflow-hidden rounded-full bg-kraft/15',\n className\n )}\n {...props}\n />\n));\nMeterTrack.displayName = 'MeterTrack';\n\nexport const MeterIndicator = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Meter.Indicator>\n>(({ className, ...props }, ref) => (\n <Meter.Indicator\n ref={ref}\n className={cn(\n 'h-full bg-ribbon transition-[width] duration-300',\n className\n )}\n {...props}\n />\n));\nMeterIndicator.displayName = 'MeterIndicator';\n\nexport const MeterValue = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof Meter.Value>\n>(({ className, ...props }, ref) => (\n <Meter.Value\n ref={ref}\n className={cn('text-xs text-kraft/60', className)}\n {...props}\n />\n));\nMeterValue.displayName = 'MeterValue';\n"
6
+ ],
7
+ "mappings": ";;;;;AAAA;AACA;;AAGO,IAAM,YAAkB,iBAG7B,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAM,MAAP;AAAA,EACI;AAAA,EACA,WAAW,GAAG,8BAA8B,SAAS;AAAA,KACjD;AAAA,CACR,CACH;AACD,UAAU,cAAc;AAEjB,IAAM,aAAmB,iBAG9B,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAM,OAAP;AAAA,EACI;AAAA,EACA,WAAW,GAAG,kCAAkC,SAAS;AAAA,KACrD;AAAA,CACR,CACH;AACD,WAAW,cAAc;AAElB,IAAM,aAAmB,iBAG9B,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAM,OAAP;AAAA,EACI;AAAA,EACA,WAAW,GACP,uDACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,WAAW,cAAc;AAElB,IAAM,iBAAuB,iBAGlC,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAM,WAAP;AAAA,EACI;AAAA,EACA,WAAW,GACP,oDACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,eAAe,cAAc;AAEtB,IAAM,aAAmB,iBAG9B,GAAG,cAAc,SAAS,wBACxB,IAAC,MAAM,OAAP;AAAA,EACI;AAAA,EACA,WAAW,GAAG,yBAAyB,SAAS;AAAA,KAC5C;AAAA,CACR,CACH;AACD,WAAW,cAAc;",
8
+ "debugId": "303D7D53D891184B64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export declare const NavigationMenuPortal: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").NavigationMenuPortalProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
3
+ export declare const NavigationMenuRoot: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuRootProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
4
+ export declare const NavigationMenuList: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuListProps, "ref"> & React.RefAttributes<HTMLUListElement>, "ref"> & React.RefAttributes<HTMLUListElement>>;
5
+ export declare const NavigationMenuItem: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuItemProps, "ref"> & React.RefAttributes<HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
6
+ export declare const NavigationMenuTrigger: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuTriggerProps, "ref"> & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
7
+ export declare const NavigationMenuIcon: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuIconProps, "ref"> & React.RefAttributes<HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
8
+ export declare const NavigationMenuPositioner: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuPositionerProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
9
+ export declare const NavigationMenuViewport: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuViewportProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ export declare const NavigationMenuPopup: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuPopupProps, "ref"> & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
11
+ export declare const NavigationMenuContent: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuContentProps, "ref"> & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ export declare const NavigationMenuLink: React.ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").NavigationMenuLinkProps, "ref"> & React.RefAttributes<HTMLAnchorElement>, "ref"> & React.RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1,5 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ declare const meta: Meta;
3
+ export default meta;
4
+ type Story = StoryObj;
5
+ export declare const Default: Story;
@@ -0,0 +1 @@
1
+ export { NavigationMenuPortal, NavigationMenuRoot, NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuIcon, NavigationMenuPositioner, NavigationMenuViewport, NavigationMenuPopup, NavigationMenuContent, NavigationMenuLink } from './NavigationMenu';
@@ -0,0 +1,100 @@
1
+ import {
2
+ cn
3
+ } from "../../utils/cn.js";
4
+
5
+ // src/components/NavigationMenu/NavigationMenu.tsx
6
+ import * as React from "react";
7
+ import { NavigationMenu } from "@base-ui/react/navigation-menu";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var NavigationMenuPortal = NavigationMenu.Portal;
10
+ var NavigationMenuRoot = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Root, {
11
+ ref,
12
+ className: cn("relative flex items-center", className),
13
+ ...props
14
+ }));
15
+ NavigationMenuRoot.displayName = "NavigationMenuRoot";
16
+ var NavigationMenuList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.List, {
17
+ ref,
18
+ className: cn("flex flex-1 list-none items-center justify-center gap-1", className),
19
+ ...props
20
+ }));
21
+ NavigationMenuList.displayName = "NavigationMenuList";
22
+ var NavigationMenuItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Item, {
23
+ ref,
24
+ className: cn("relative", className),
25
+ ...props
26
+ }));
27
+ NavigationMenuItem.displayName = "NavigationMenuItem";
28
+ var NavigationMenuTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Trigger, {
29
+ ref,
30
+ className: cn("group inline-flex h-9 items-center justify-center gap-1 rounded-lg bg-transparent px-3 py-2 text-sm font-medium text-kraft transition-colors hover:bg-canvas/40 hover:text-kraft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon data-popup-open:bg-canvas/40", className),
31
+ ...props
32
+ }));
33
+ NavigationMenuTrigger.displayName = "NavigationMenuTrigger";
34
+ var NavigationMenuIcon = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Icon, {
35
+ ref,
36
+ className: cn("relative top-px ml-0.5 transition-transform duration-200 group-data-popup-open:rotate-180", className),
37
+ ...props,
38
+ children: children ?? /* @__PURE__ */ jsx("svg", {
39
+ xmlns: "http://www.w3.org/2000/svg",
40
+ width: "12",
41
+ height: "12",
42
+ viewBox: "0 0 24 24",
43
+ fill: "none",
44
+ stroke: "currentColor",
45
+ strokeWidth: "2.5",
46
+ strokeLinecap: "round",
47
+ strokeLinejoin: "round",
48
+ "aria-hidden": true,
49
+ children: /* @__PURE__ */ jsx("polyline", {
50
+ points: "6 9 12 15 18 9"
51
+ })
52
+ })
53
+ }));
54
+ NavigationMenuIcon.displayName = "NavigationMenuIcon";
55
+ var NavigationMenuPositioner = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Positioner, {
56
+ ref,
57
+ className: cn("absolute top-full left-0 z-50", className),
58
+ ...props
59
+ }));
60
+ NavigationMenuPositioner.displayName = "NavigationMenuPositioner";
61
+ var NavigationMenuViewport = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Viewport, {
62
+ ref,
63
+ className: cn("mt-1 overflow-hidden rounded-xl border border-kraft/15 bg-surface shadow-lg shadow-kraft/10", "transition-[width,height] duration-200 origin-top-left", className),
64
+ ...props
65
+ }));
66
+ NavigationMenuViewport.displayName = "NavigationMenuViewport";
67
+ var NavigationMenuPopup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Popup, {
68
+ ref,
69
+ className: cn("p-1", className),
70
+ ...props
71
+ }));
72
+ NavigationMenuPopup.displayName = "NavigationMenuPopup";
73
+ var NavigationMenuContent = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Content, {
74
+ ref,
75
+ className: cn("p-3", className),
76
+ ...props
77
+ }));
78
+ NavigationMenuContent.displayName = "NavigationMenuContent";
79
+ var NavigationMenuLink = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(NavigationMenu.Link, {
80
+ ref,
81
+ className: cn("block select-none rounded-lg px-3 py-2 text-sm text-kraft leading-snug no-underline outline-none transition-colors hover:bg-canvas/40 focus-visible:bg-canvas/40", className),
82
+ ...props
83
+ }));
84
+ NavigationMenuLink.displayName = "NavigationMenuLink";
85
+ export {
86
+ NavigationMenuViewport,
87
+ NavigationMenuTrigger,
88
+ NavigationMenuRoot,
89
+ NavigationMenuPositioner,
90
+ NavigationMenuPortal,
91
+ NavigationMenuPopup,
92
+ NavigationMenuList,
93
+ NavigationMenuLink,
94
+ NavigationMenuItem,
95
+ NavigationMenuIcon,
96
+ NavigationMenuContent
97
+ };
98
+ export { NavigationMenuPortal, NavigationMenuRoot, NavigationMenuList, NavigationMenuItem, NavigationMenuTrigger, NavigationMenuIcon, NavigationMenuPositioner, NavigationMenuViewport, NavigationMenuPopup, NavigationMenuContent, NavigationMenuLink };
99
+
100
+ //# debugId=A43D4C7F728B250464756E2164756E21