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,109 @@
1
+ import {
2
+ cn
3
+ } from "../../utils/cn.js";
4
+
5
+ // src/components/Autocomplete/Autocomplete.tsx
6
+ import { Autocomplete } from "@base-ui/react/autocomplete";
7
+ import React from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var AutocompleteRoot = Autocomplete.Root;
10
+ var AutocompleteValue = Autocomplete.Value;
11
+ var AutocompletePortal = Autocomplete.Portal;
12
+ var AutocompleteGroup = Autocomplete.Group;
13
+ var AutocompleteCollection = Autocomplete.Collection;
14
+ var AutocompleteInput = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Input, {
15
+ ref,
16
+ className: cn("flex h-10 w-full rounded-lg border border-kraft/25 bg-surface px-3.5 text-base text-kraft font-normal transition-colors placeholder:text-kraft/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ribbon data-disabled:cursor-not-allowed data-disabled:opacity-50", className),
17
+ ...props
18
+ }));
19
+ AutocompleteInput.displayName = "AutocompleteInput";
20
+ var AutocompleteTrigger = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Trigger, {
21
+ ref,
22
+ className: cn("flex h-10 w-7 items-center justify-center rounded-r-md border-0 bg-transparent p-0 text-kraft/60 transition-colors hover:not-data-disabled:text-kraft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1 data-disabled:opacity-50", className),
23
+ ...props
24
+ }));
25
+ AutocompleteTrigger.displayName = "AutocompleteTrigger";
26
+ var AutocompleteIcon = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Icon, {
27
+ ref,
28
+ className: cn("flex items-center justify-center", className),
29
+ ...props,
30
+ children: children ?? /* @__PURE__ */ jsx("svg", {
31
+ xmlns: "http://www.w3.org/2000/svg",
32
+ width: "12",
33
+ height: "12",
34
+ viewBox: "0 0 24 24",
35
+ fill: "none",
36
+ stroke: "currentColor",
37
+ strokeWidth: "2.5",
38
+ strokeLinecap: "round",
39
+ strokeLinejoin: "round",
40
+ "aria-hidden": true,
41
+ children: /* @__PURE__ */ jsx("polyline", {
42
+ points: "6 9 12 15 18 9"
43
+ })
44
+ })
45
+ }));
46
+ AutocompleteIcon.displayName = "AutocompleteIcon";
47
+ var AutocompleteClear = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Clear, {
48
+ ref,
49
+ className: cn("flex h-10 w-7 items-center justify-center rounded-lg border-0 bg-transparent p-0 text-kraft/50 transition-colors hover:not-data-disabled:text-spool focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1", className),
50
+ ...props
51
+ }));
52
+ AutocompleteClear.displayName = "AutocompleteClear";
53
+ var AutocompletePositioner = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Positioner, {
54
+ ref,
55
+ className: cn("z-50 outline-none", className),
56
+ sideOffset: 4,
57
+ ...props
58
+ }));
59
+ AutocompletePositioner.displayName = "AutocompletePositioner";
60
+ var AutocompletePopup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Popup, {
61
+ ref,
62
+ className: cn("w-(--anchor-width) max-h-[min(var(--available-height),22rem)] max-w-(--available-width) overflow-y-auto scroll-py-2 overscroll-contain rounded-lg border border-kraft/15 bg-surface py-1.5 shadow-lg shadow-kraft/10 origin-(--transform-origin) transition-[transform,scale,opacity] duration-100 data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0", className),
63
+ ...props
64
+ }));
65
+ AutocompletePopup.displayName = "AutocompletePopup";
66
+ var AutocompleteList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.List, {
67
+ ref,
68
+ className: cn("outline-none data-empty:p-0", className),
69
+ ...props
70
+ }));
71
+ AutocompleteList.displayName = "AutocompleteList";
72
+ var AutocompleteItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Item, {
73
+ ref,
74
+ className: cn("relative grid cursor-default select-none grid-cols-[0.875rem_1fr] items-center gap-2 px-3 py-2 text-sm text-kraft outline-none data-disabled:pointer-events-none data-disabled:opacity-50", 'data-highlighted:before:absolute data-highlighted:before:inset-x-1.5 data-highlighted:before:inset-y-0 data-highlighted:before:z-[-1] data-highlighted:before:rounded-lg data-highlighted:before:bg-kraft data-highlighted:before:content-[""] data-highlighted:relative data-highlighted:z-0 data-highlighted:text-white', className),
75
+ ...props
76
+ }));
77
+ AutocompleteItem.displayName = "AutocompleteItem";
78
+ var AutocompleteEmpty = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.Empty, {
79
+ ref,
80
+ className: cn("px-4 py-3 text-sm text-kraft/60 italic", className),
81
+ ...props
82
+ }));
83
+ AutocompleteEmpty.displayName = "AutocompleteEmpty";
84
+ var AutocompleteGroupLabel = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(Autocomplete.GroupLabel, {
85
+ ref,
86
+ className: cn("sticky top-0 z-1 bg-surface px-3 pb-1 pt-2.5 text-[0.65rem] font-semibold uppercase tracking-widest text-kraft/50", className),
87
+ ...props
88
+ }));
89
+ AutocompleteGroupLabel.displayName = "AutocompleteGroupLabel";
90
+ export {
91
+ AutocompleteValue,
92
+ AutocompleteTrigger,
93
+ AutocompleteRoot,
94
+ AutocompletePositioner,
95
+ AutocompletePortal,
96
+ AutocompletePopup,
97
+ AutocompleteList,
98
+ AutocompleteItem,
99
+ AutocompleteInput,
100
+ AutocompleteIcon,
101
+ AutocompleteGroupLabel,
102
+ AutocompleteGroup,
103
+ AutocompleteEmpty,
104
+ AutocompleteCollection,
105
+ AutocompleteClear
106
+ };
107
+ export { AutocompleteRoot, AutocompleteValue, AutocompletePortal, AutocompleteGroup, AutocompleteCollection, AutocompleteInput, AutocompleteTrigger, AutocompleteIcon, AutocompleteClear, AutocompletePositioner, AutocompletePopup, AutocompleteList, AutocompleteItem, AutocompleteEmpty, AutocompleteGroupLabel };
108
+
109
+ //# debugId=61B79479E0CAB79564756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Autocomplete/Autocomplete.tsx"],
4
+ "sourcesContent": [
5
+ "import { Autocomplete } from '@base-ui/react/autocomplete';\nimport React from 'react';\nimport { cn } from '../../utils/cn';\n\nexport const AutocompleteRoot = Autocomplete.Root;\nexport const AutocompleteValue = Autocomplete.Value;\nexport const AutocompletePortal = Autocomplete.Portal;\nexport const AutocompleteGroup = Autocomplete.Group;\nexport const AutocompleteCollection = Autocomplete.Collection;\n\nexport const AutocompleteInput = React.forwardRef<\n HTMLInputElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Input>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Input\n ref={ref}\n className={cn(\n 'flex h-10 w-full rounded-lg border border-kraft/25 bg-surface px-3.5 text-base text-kraft font-normal transition-colors placeholder:text-kraft/40 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ribbon data-disabled:cursor-not-allowed data-disabled:opacity-50',\n className\n )}\n {...props}\n />\n));\nAutocompleteInput.displayName = 'AutocompleteInput';\n\nexport const AutocompleteTrigger = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Trigger>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Trigger\n ref={ref}\n className={cn(\n 'flex h-10 w-7 items-center justify-center rounded-r-md border-0 bg-transparent p-0 text-kraft/60 transition-colors hover:not-data-disabled:text-kraft focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1 data-disabled:opacity-50',\n className\n )}\n {...props}\n />\n));\nAutocompleteTrigger.displayName = 'AutocompleteTrigger';\n\nexport const AutocompleteIcon = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Icon>\n>(({ className, children, ...props }, ref) => (\n <Autocomplete.Icon\n ref={ref}\n className={cn('flex items-center justify-center', className)}\n {...props}\n >\n {children ?? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n )}\n </Autocomplete.Icon>\n));\nAutocompleteIcon.displayName = 'AutocompleteIcon';\n\nexport const AutocompleteClear = React.forwardRef<\n HTMLButtonElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Clear>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Clear\n ref={ref}\n className={cn(\n 'flex h-10 w-7 items-center justify-center rounded-lg border-0 bg-transparent p-0 text-kraft/50 transition-colors hover:not-data-disabled:text-spool focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ribbon focus-visible:ring-offset-1',\n className\n )}\n {...props}\n />\n));\nAutocompleteClear.displayName = 'AutocompleteClear';\n\nexport const AutocompletePositioner = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Positioner>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Positioner\n ref={ref}\n className={cn('z-50 outline-none', className)}\n sideOffset={4}\n {...props}\n />\n));\nAutocompletePositioner.displayName = 'AutocompletePositioner';\n\nexport const AutocompletePopup = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Popup>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Popup\n ref={ref}\n className={cn(\n 'w-(--anchor-width) max-h-[min(var(--available-height),22rem)] max-w-(--available-width) overflow-y-auto scroll-py-2 overscroll-contain rounded-lg border border-kraft/15 bg-surface py-1.5 shadow-lg shadow-kraft/10 origin-(--transform-origin) transition-[transform,scale,opacity] duration-100 data-starting-style:scale-95 data-starting-style:opacity-0 data-ending-style:scale-95 data-ending-style:opacity-0',\n className\n )}\n {...props}\n />\n));\nAutocompletePopup.displayName = 'AutocompletePopup';\n\nexport const AutocompleteList = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.List>\n>(({ className, ...props }, ref) => (\n <Autocomplete.List\n ref={ref}\n className={cn('outline-none data-empty:p-0', className)}\n {...props}\n />\n));\nAutocompleteList.displayName = 'AutocompleteList';\n\nexport const AutocompleteItem = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Item>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Item\n ref={ref}\n className={cn(\n 'relative grid cursor-default select-none grid-cols-[0.875rem_1fr] items-center gap-2 px-3 py-2 text-sm text-kraft outline-none data-disabled:pointer-events-none data-disabled:opacity-50',\n 'data-highlighted:before:absolute data-highlighted:before:inset-x-1.5 data-highlighted:before:inset-y-0 data-highlighted:before:z-[-1] data-highlighted:before:rounded-lg data-highlighted:before:bg-kraft data-highlighted:before:content-[\"\"] data-highlighted:relative data-highlighted:z-0 data-highlighted:text-white',\n className\n )}\n {...props}\n />\n));\nAutocompleteItem.displayName = 'AutocompleteItem';\n\nexport const AutocompleteEmpty = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.Empty>\n>(({ className, ...props }, ref) => (\n <Autocomplete.Empty\n ref={ref}\n className={cn('px-4 py-3 text-sm text-kraft/60 italic', className)}\n {...props}\n />\n));\nAutocompleteEmpty.displayName = 'AutocompleteEmpty';\n\nexport const AutocompleteGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof Autocomplete.GroupLabel>\n>(({ className, ...props }, ref) => (\n <Autocomplete.GroupLabel\n ref={ref}\n className={cn(\n 'sticky top-0 z-1 bg-surface px-3 pb-1 pt-2.5 text-[0.65rem] font-semibold uppercase tracking-widest text-kraft/50',\n className\n )}\n {...props}\n />\n));\nAutocompleteGroupLabel.displayName = 'AutocompleteGroupLabel';\n"
6
+ ],
7
+ "mappings": ";;;;;AAAA;AACA;;AAGO,IAAM,mBAAmB,aAAa;AACtC,IAAM,oBAAoB,aAAa;AACvC,IAAM,qBAAqB,aAAa;AACxC,IAAM,oBAAoB,aAAa;AACvC,IAAM,yBAAyB,aAAa;AAE5C,IAAM,oBAAoB,MAAM,WAGrC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,OAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,qTACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,kBAAkB,cAAc;AAEzB,IAAM,sBAAsB,MAAM,WAGvC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,SAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,wRACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,oBAAoB,cAAc;AAE3B,IAAM,mBAAmB,MAAM,WAGpC,GAAG,WAAW,aAAa,SAAS,wBAClC,IAqBE,aAAa,MArBf;AAAA,EACI;AAAA,EACA,WAAW,GAAG,oCAAoC,SAAS;AAAA,KACvD;AAAA,EAHR,UAKK,4BACG,IAaE,OAbF;AAAA,IACI,OAAM;AAAA,IACN,OAAM;AAAA,IACN,QAAO;AAAA,IACP,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,QAAO;AAAA,IACP,aAAY;AAAA,IACZ,eAAc;AAAA,IACd,gBAAe;AAAA,IACf,eAAW;AAAA,IAVf,0BAYI,IAAC,YAAD;AAAA,MAAU,QAAO;AAAA,KAAiB;AAAA,GACpC;AAAA,CAER,CACL;AACD,iBAAiB,cAAc;AAExB,IAAM,oBAAoB,MAAM,WAGrC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,OAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,6PACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,kBAAkB,cAAc;AAEzB,IAAM,yBAAyB,MAAM,WAG1C,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,YAAd;AAAA,EACI;AAAA,EACA,WAAW,GAAG,qBAAqB,SAAS;AAAA,EAC5C,YAAY;AAAA,KACR;AAAA,CACR,CACH;AACD,uBAAuB,cAAc;AAE9B,IAAM,oBAAoB,MAAM,WAGrC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,OAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,wZACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,kBAAkB,cAAc;AAEzB,IAAM,mBAAmB,MAAM,WAGpC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,MAAd;AAAA,EACI;AAAA,EACA,WAAW,GAAG,+BAA+B,SAAS;AAAA,KAClD;AAAA,CACR,CACH;AACD,iBAAiB,cAAc;AAExB,IAAM,mBAAmB,MAAM,WAGpC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,MAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,6LACA,6TACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,iBAAiB,cAAc;AAExB,IAAM,oBAAoB,MAAM,WAGrC,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,OAAd;AAAA,EACI;AAAA,EACA,WAAW,GAAG,0CAA0C,SAAS;AAAA,KAC7D;AAAA,CACR,CACH;AACD,kBAAkB,cAAc;AAEzB,IAAM,yBAAyB,MAAM,WAG1C,GAAG,cAAc,SAAS,wBACxB,IAAC,aAAa,YAAd;AAAA,EACI;AAAA,EACA,WAAW,GACP,qHACA,SACJ;AAAA,KACI;AAAA,CACR,CACH;AACD,uBAAuB,cAAc;",
8
+ "debugId": "61B79479E0CAB79564756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,19 @@
1
+ import { Avatar as BaseAvatar } from '@base-ui/react/avatar';
2
+ import { type VariantProps } from 'cva';
3
+ import React from 'react';
4
+ export declare const avatarVariants: (props?: ({
5
+ color?: "canvas" | "ribbon" | "mustard" | "kraft" | "denim" | "spool" | 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 AvatarProps extends Omit<React.ComponentPropsWithoutRef<typeof BaseAvatar.Root>, 'color'>, VariantProps<typeof avatarVariants> {
15
+ src?: string;
16
+ alt?: string;
17
+ initials?: string;
18
+ }
19
+ export declare function Avatar({ className, color, size, src, alt, initials, ...props }: AvatarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,29 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { Avatar } from './Avatar';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Avatar;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ tags: string[];
10
+ argTypes: {
11
+ color: {
12
+ control: "select";
13
+ options: string[];
14
+ };
15
+ size: {
16
+ control: "select";
17
+ options: string[];
18
+ };
19
+ };
20
+ };
21
+ export default meta;
22
+ type Story = StoryObj<typeof meta>;
23
+ export declare const Default: Story;
24
+ export declare const Mustard: Story;
25
+ export declare const Kraft: Story;
26
+ export declare const Denim: Story;
27
+ export declare const Spool: Story;
28
+ export declare const Sizes: Story;
29
+ export declare const AllColors: Story;
@@ -0,0 +1,2 @@
1
+ export { Avatar, avatarVariants } from './Avatar';
2
+ export type { AvatarProps } from './Avatar';
@@ -0,0 +1,65 @@
1
+ import {
2
+ cva
3
+ } from "../../chunk-fjtwj9cw.js";
4
+ import {
5
+ cn
6
+ } from "../../utils/cn.js";
7
+
8
+ // src/components/Avatar/Avatar.tsx
9
+ import { Avatar as BaseAvatar } from "@base-ui/react/avatar";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var avatarVariants = cva({
12
+ base: "inline-flex items-center justify-center rounded-full font-semibold shrink-0 overflow-hidden select-none align-middle",
13
+ variants: {
14
+ color: {
15
+ ribbon: "bg-ribbon text-white",
16
+ mustard: "bg-mustard text-white",
17
+ kraft: "bg-kraft text-white",
18
+ denim: "bg-denim text-white",
19
+ spool: "bg-spool text-white",
20
+ canvas: "bg-canvas text-kraft"
21
+ },
22
+ size: {
23
+ sm: "h-8 w-8 text-xs",
24
+ md: "h-10 w-10 text-sm",
25
+ lg: "h-14 w-14 text-base"
26
+ }
27
+ },
28
+ defaultVariants: {
29
+ color: "ribbon",
30
+ size: "md"
31
+ }
32
+ });
33
+ function Avatar({
34
+ className,
35
+ color,
36
+ size,
37
+ src,
38
+ alt,
39
+ initials,
40
+ ...props
41
+ }) {
42
+ return /* @__PURE__ */ jsxs(BaseAvatar.Root, {
43
+ className: cn(avatarVariants({ color, size }), className),
44
+ ...props,
45
+ children: [
46
+ src && /* @__PURE__ */ jsx(BaseAvatar.Image, {
47
+ src,
48
+ alt: alt ?? "",
49
+ className: "h-full w-full object-cover"
50
+ }),
51
+ /* @__PURE__ */ jsx(BaseAvatar.Fallback, {
52
+ className: "flex h-full w-full items-center justify-center",
53
+ "aria-label": !src ? alt : undefined,
54
+ children: initials
55
+ })
56
+ ]
57
+ });
58
+ }
59
+ export {
60
+ avatarVariants,
61
+ Avatar
62
+ };
63
+ export { avatarVariants, Avatar };
64
+
65
+ //# debugId=76F8DF60B52F47E464756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Avatar/Avatar.tsx"],
4
+ "sourcesContent": [
5
+ "import { Avatar as BaseAvatar } from '@base-ui/react/avatar';\nimport { cva, type VariantProps } from 'cva';\nimport { cn } from '../../utils/cn';\nimport React from 'react';\n\nexport const avatarVariants = cva({\n base: 'inline-flex items-center justify-center rounded-full font-semibold shrink-0 overflow-hidden select-none align-middle',\n variants: {\n color: {\n ribbon: 'bg-ribbon text-white',\n mustard: 'bg-mustard text-white',\n kraft: 'bg-kraft text-white',\n denim: 'bg-denim text-white',\n 'spool': 'bg-spool text-white',\n canvas: 'bg-canvas text-kraft'\n },\n size: {\n sm: 'h-8 w-8 text-xs',\n md: 'h-10 w-10 text-sm',\n lg: 'h-14 w-14 text-base'\n }\n },\n defaultVariants: {\n color: 'ribbon',\n size: 'md'\n }\n});\n\nexport interface AvatarProps\n extends Omit<\n React.ComponentPropsWithoutRef<typeof BaseAvatar.Root>,\n 'color'\n >,\n VariantProps<typeof avatarVariants> {\n src?: string;\n alt?: string;\n initials?: string;\n}\n\nexport function Avatar({\n className,\n color,\n size,\n src,\n alt,\n initials,\n ...props\n}: AvatarProps) {\n return (\n <BaseAvatar.Root\n className={cn(avatarVariants({ color, size }), className)}\n {...props}\n >\n {src && (\n <BaseAvatar.Image\n src={src}\n alt={alt ?? ''}\n className=\"h-full w-full object-cover\"\n />\n )}\n <BaseAvatar.Fallback\n className=\"flex h-full w-full items-center justify-center\"\n aria-label={!src ? alt : undefined}\n >\n {initials}\n </BaseAvatar.Fallback>\n </BaseAvatar.Root>\n );\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;AAAA,mBAAS;;AAKF,IAAM,iBAAiB,IAAI;AAAA,EAC9B,MAAM;AAAA,EACN,UAAU;AAAA,IACN,OAAO;AAAA,MACH,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAS;AAAA,MACT,QAAQ;AAAA,IACZ;AAAA,IACA,MAAM;AAAA,MACF,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IACR;AAAA,EACJ;AAAA,EACA,iBAAiB;AAAA,IACb,OAAO;AAAA,IACP,MAAM;AAAA,EACV;AACJ,CAAC;AAaM,SAAS,MAAM;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AAAA,GACS;AAAA,EACZ,uBACI,KAiBE,WAAW,MAjBb;AAAA,IACI,WAAW,GAAG,eAAe,EAAE,OAAO,KAAK,CAAC,GAAG,SAAS;AAAA,OACpD;AAAA,IAFR,UAiBE;AAAA,MAbG,uBACG,IAAC,WAAW,OAAZ;AAAA,QACI;AAAA,QACA,KAAK,OAAO;AAAA,QACZ,WAAU;AAAA,OACd;AAAA,sBAEJ,IAKE,WAAW,UALb;AAAA,QACI,WAAU;AAAA,QACV,eAAa,MAAM,MAAM;AAAA,QAF7B,UAIK;AAAA,OACH;AAAA;AAAA,GACJ;AAAA;",
8
+ "debugId": "76F8DF60B52F47E464756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,12 @@
1
+ import { type AvatarProps } from '../Avatar';
2
+ export interface AvatarLabelProps {
3
+ src?: string;
4
+ alt?: string;
5
+ initials?: string;
6
+ avatarColor?: AvatarProps['color'];
7
+ name: string;
8
+ subtitle?: string;
9
+ size?: 'sm' | 'md' | 'lg';
10
+ className?: string;
11
+ }
12
+ export declare function AvatarLabel({ src, alt, initials, avatarColor, name, subtitle, size, className }: AvatarLabelProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { AvatarLabel } from './AvatarLabel';
3
+ declare const meta: Meta<typeof AvatarLabel>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof AvatarLabel>;
6
+ export declare const Default: Story;
7
+ export declare const Small: Story;
8
+ export declare const Large: Story;
9
+ export declare const WithImage: Story;
10
+ export declare const AllColors: Story;
@@ -0,0 +1,2 @@
1
+ export { AvatarLabel } from './AvatarLabel';
2
+ export type { AvatarLabelProps } from './AvatarLabel';
@@ -0,0 +1,74 @@
1
+ import {
2
+ Avatar
3
+ } from "../Avatar/index.js";
4
+ import"../../chunk-fjtwj9cw.js";
5
+ import {
6
+ cn
7
+ } from "../../utils/cn.js";
8
+
9
+ // src/components/AvatarLabel/AvatarLabel.tsx
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var sizeConfig = {
12
+ sm: {
13
+ avatarSize: "sm",
14
+ name: "text-sm font-medium",
15
+ subtitle: "text-xs",
16
+ gap: "gap-2"
17
+ },
18
+ md: {
19
+ avatarSize: "md",
20
+ name: "text-sm font-medium",
21
+ subtitle: "text-xs",
22
+ gap: "gap-3"
23
+ },
24
+ lg: {
25
+ avatarSize: "lg",
26
+ name: "text-base font-semibold",
27
+ subtitle: "text-sm",
28
+ gap: "gap-4"
29
+ }
30
+ };
31
+ function AvatarLabel({
32
+ src,
33
+ alt,
34
+ initials,
35
+ avatarColor,
36
+ name,
37
+ subtitle,
38
+ size = "md",
39
+ className
40
+ }) {
41
+ const cfg = sizeConfig[size];
42
+ return /* @__PURE__ */ jsxs("div", {
43
+ className: cn("flex items-center", cfg.gap, className),
44
+ children: [
45
+ /* @__PURE__ */ jsx(Avatar, {
46
+ src,
47
+ alt,
48
+ initials,
49
+ color: avatarColor,
50
+ size: cfg.avatarSize,
51
+ className: "shrink-0"
52
+ }),
53
+ /* @__PURE__ */ jsxs("div", {
54
+ className: "min-w-0",
55
+ children: [
56
+ /* @__PURE__ */ jsx("p", {
57
+ className: cn("truncate text-kraft", cfg.name),
58
+ children: name
59
+ }),
60
+ subtitle && /* @__PURE__ */ jsx("p", {
61
+ className: cn("truncate text-kraft/60", cfg.subtitle),
62
+ children: subtitle
63
+ })
64
+ ]
65
+ })
66
+ ]
67
+ });
68
+ }
69
+ export {
70
+ AvatarLabel
71
+ };
72
+ export { AvatarLabel };
73
+
74
+ //# debugId=E8E2BB1255807FB164756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/AvatarLabel/AvatarLabel.tsx"],
4
+ "sourcesContent": [
5
+ "import * as React from 'react';\nimport { Avatar, type AvatarProps } from '../Avatar';\nimport { cn } from '../../utils/cn';\n\nconst sizeConfig = {\n sm: {\n avatarSize: 'sm' as const,\n name: 'text-sm font-medium',\n subtitle: 'text-xs',\n gap: 'gap-2'\n },\n md: {\n avatarSize: 'md' as const,\n name: 'text-sm font-medium',\n subtitle: 'text-xs',\n gap: 'gap-3'\n },\n lg: {\n avatarSize: 'lg' as const,\n name: 'text-base font-semibold',\n subtitle: 'text-sm',\n gap: 'gap-4'\n }\n};\n\nexport interface AvatarLabelProps {\n src?: string;\n alt?: string;\n initials?: string;\n avatarColor?: AvatarProps['color'];\n name: string;\n subtitle?: string;\n size?: 'sm' | 'md' | 'lg';\n className?: string;\n}\n\nexport function AvatarLabel({\n src,\n alt,\n initials,\n avatarColor,\n name,\n subtitle,\n size = 'md',\n className\n}: AvatarLabelProps) {\n const cfg = sizeConfig[size];\n return (\n <div className={cn('flex items-center', cfg.gap, className)}>\n <Avatar\n src={src}\n alt={alt}\n initials={initials}\n color={avatarColor}\n size={cfg.avatarSize}\n className=\"shrink-0\"\n />\n <div className=\"min-w-0\">\n <p className={cn('truncate text-kraft', cfg.name)}>{name}</p>\n {subtitle && (\n <p className={cn('truncate text-kraft/60', cfg.subtitle)}>\n {subtitle}\n </p>\n )}\n </div>\n </div>\n );\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;;AAIA,IAAM,aAAa;AAAA,EACf,IAAI;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,EACT;AAAA,EACA,IAAI;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,EACT;AAAA,EACA,IAAI;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,UAAU;AAAA,IACV,KAAK;AAAA,EACT;AACJ;AAaO,SAAS,WAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP;AAAA,GACiB;AAAA,EACjB,MAAM,MAAM,WAAW;AAAA,EACvB,uBACI,KAiBE,OAjBF;AAAA,IAAK,WAAW,GAAG,qBAAqB,IAAI,KAAK,SAAS;AAAA,IAA1D,UAiBE;AAAA,sBAhBE,IAAC,QAAD;AAAA,QACI;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO;AAAA,QACP,MAAM,IAAI;AAAA,QACV,WAAU;AAAA,OACd;AAAA,sBACA,KAOE,OAPF;AAAA,QAAK,WAAU;AAAA,QAAf,UAOE;AAAA,0BANE,IAA2D,KAA3D;AAAA,YAAG,WAAW,GAAG,uBAAuB,IAAI,IAAI;AAAA,YAAhD,UAAoD;AAAA,WAAO;AAAA,UAC1D,4BACG,IAEE,KAFF;AAAA,YAAG,WAAW,GAAG,0BAA0B,IAAI,QAAQ;AAAA,YAAvD,UACK;AAAA,WACH;AAAA;AAAA,OAER;AAAA;AAAA,GACJ;AAAA;",
8
+ "debugId": "E8E2BB1255807FB164756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,13 @@
1
+ import { type VariantProps } from 'cva';
2
+ export declare const badgeVariants: (props?: ({
3
+ variant?: "outline" | "ribbon" | "mustard" | "kraft" | "denim" | "spool" | undefined;
4
+ } & ({
5
+ class?: import("cva").ClassValue;
6
+ className?: never;
7
+ } | {
8
+ class?: never;
9
+ className?: import("cva").ClassValue;
10
+ })) | undefined) => string;
11
+ export interface BadgeProps extends React.HTMLAttributes<HTMLSpanElement>, VariantProps<typeof badgeVariants> {
12
+ }
13
+ export declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { Badge } from './Badge';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Badge;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ tags: string[];
10
+ argTypes: {
11
+ variant: {
12
+ control: "select";
13
+ options: string[];
14
+ };
15
+ };
16
+ };
17
+ export default meta;
18
+ type Story = StoryObj<typeof meta>;
19
+ export declare const Ribbon: Story;
20
+ export declare const Mustard: Story;
21
+ export declare const Kraft: Story;
22
+ export declare const Denim: Story;
23
+ export declare const Spool: Story;
24
+ export declare const Outline: Story;
25
+ export declare const AllVariants: Story;
@@ -0,0 +1,2 @@
1
+ export { Badge, badgeVariants } from './Badge';
2
+ export type { BadgeProps } from './Badge';
@@ -0,0 +1,38 @@
1
+ import {
2
+ cva
3
+ } from "../../chunk-fjtwj9cw.js";
4
+ import {
5
+ cn
6
+ } from "../../utils/cn.js";
7
+
8
+ // src/components/Badge/Badge.tsx
9
+ import { jsx } from "react/jsx-runtime";
10
+ var badgeVariants = cva({
11
+ base: "inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors",
12
+ variants: {
13
+ variant: {
14
+ ribbon: "border border-ribbon/20 bg-ribbon/10 text-ribbon",
15
+ mustard: "border border-mustard/20 bg-mustard/10 text-mustard",
16
+ kraft: "border border-kraft/15 bg-canvas text-kraft",
17
+ denim: "border border-denim/20 bg-denim/10 text-denim",
18
+ spool: "border border-spool/20 bg-spool/10 text-spool",
19
+ outline: "border border-kraft/30 bg-transparent text-kraft"
20
+ }
21
+ },
22
+ defaultVariants: {
23
+ variant: "ribbon"
24
+ }
25
+ });
26
+ function Badge({ className, variant, ...props }) {
27
+ return /* @__PURE__ */ jsx("span", {
28
+ className: cn(badgeVariants({ variant }), className),
29
+ ...props
30
+ });
31
+ }
32
+ export {
33
+ badgeVariants,
34
+ Badge
35
+ };
36
+ export { badgeVariants, Badge };
37
+
38
+ //# debugId=0C6F283C3BEC155B64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Badge/Badge.tsx"],
4
+ "sourcesContent": [
5
+ "import { cva, type VariantProps } from 'cva';\nimport { cn } from '../../utils/cn';\n\nexport const badgeVariants = cva({\n base: 'inline-flex items-center rounded-full px-2.5 py-0.5 text-xs font-semibold transition-colors',\n variants: {\n variant: {\n ribbon: 'border border-ribbon/20 bg-ribbon/10 text-ribbon',\n mustard: 'border border-mustard/20 bg-mustard/10 text-mustard',\n kraft: 'border border-kraft/15 bg-canvas text-kraft',\n denim: 'border border-denim/20 bg-denim/10 text-denim',\n spool: 'border border-spool/20 bg-spool/10 text-spool',\n outline: 'border border-kraft/30 bg-transparent text-kraft'\n }\n },\n defaultVariants: {\n variant: 'ribbon'\n }\n});\n\nexport interface BadgeProps\n extends\n React.HTMLAttributes<HTMLSpanElement>,\n VariantProps<typeof badgeVariants> {}\n\nexport function Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <span\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;;AAGO,IAAM,gBAAgB,IAAI;AAAA,EAC7B,MAAM;AAAA,EACN,UAAU;AAAA,IACN,SAAS;AAAA,MACL,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,OAAO;AAAA,MACP,OAAO;AAAA,MACP,OAAO;AAAA,MACP,SAAS;AAAA,IACb;AAAA,EACJ;AAAA,EACA,iBAAiB;AAAA,IACb,SAAS;AAAA,EACb;AACJ,CAAC;AAOM,SAAS,KAAK,GAAG,WAAW,YAAY,SAAqB;AAAA,EAChE,uBACI,IAAC,QAAD;AAAA,IACI,WAAW,GAAG,cAAc,EAAE,QAAQ,CAAC,GAAG,SAAS;AAAA,OAC/C;AAAA,GACR;AAAA;",
8
+ "debugId": "0C6F283C3BEC155B64756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,15 @@
1
+ import { Button as BaseButton } from '@base-ui/react/button';
2
+ import { type VariantProps } from 'cva';
3
+ export declare const buttonVariants: (props?: ({
4
+ variant?: "primary" | "secondary" | "destructive" | "outline" | "ghost" | undefined;
5
+ size?: "sm" | "md" | "lg" | undefined;
6
+ } & ({
7
+ class?: import("cva").ClassValue;
8
+ className?: never;
9
+ } | {
10
+ class?: never;
11
+ className?: import("cva").ClassValue;
12
+ })) | undefined) => string;
13
+ export interface ButtonProps extends React.ComponentPropsWithoutRef<typeof BaseButton>, VariantProps<typeof buttonVariants> {
14
+ }
15
+ export declare function Button({ className, variant, size, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,35 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ import { Button } from './Button';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof Button;
6
+ parameters: {
7
+ layout: string;
8
+ };
9
+ tags: string[];
10
+ argTypes: {
11
+ variant: {
12
+ control: "select";
13
+ options: string[];
14
+ };
15
+ size: {
16
+ control: "select";
17
+ options: string[];
18
+ };
19
+ disabled: {
20
+ control: "boolean";
21
+ };
22
+ };
23
+ };
24
+ export default meta;
25
+ type Story = StoryObj<typeof meta>;
26
+ export declare const Primary: Story;
27
+ export declare const Secondary: Story;
28
+ export declare const Destructive: Story;
29
+ export declare const Outline: Story;
30
+ export declare const Ghost: Story;
31
+ export declare const Small: Story;
32
+ export declare const Large: Story;
33
+ export declare const AllVariants: Story;
34
+ export declare const AllSizes: Story;
35
+ export declare const Disabled: Story;
@@ -0,0 +1,2 @@
1
+ export { Button, buttonVariants } from './Button';
2
+ export type { ButtonProps } from './Button';
@@ -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/Button/Button.tsx
9
+ import { Button as BaseButton } from "@base-ui/react/button";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var buttonVariants = cva({
12
+ base: "inline-flex items-center justify-center rounded-lg font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 data-disabled:pointer-events-none data-disabled:opacity-50",
13
+ variants: {
14
+ variant: {
15
+ primary: "bg-denim text-white shadow-sm hover:not-data-disabled:bg-denim/90 focus-visible:ring-denim",
16
+ secondary: "border border-kraft/15 bg-canvas text-kraft hover:not-data-disabled:bg-canvas/70 focus-visible:ring-kraft",
17
+ destructive: "bg-spool text-white hover:not-data-disabled:bg-spool/85 focus-visible:ring-spool",
18
+ outline: "border border-kraft/25 bg-transparent text-kraft shadow-sm hover:not-data-disabled:bg-canvas focus-visible:ring-kraft",
19
+ ghost: "text-kraft hover:not-data-disabled:bg-canvas focus-visible:ring-kraft"
20
+ },
21
+ size: {
22
+ sm: "h-8 px-3 text-sm",
23
+ md: "h-10 px-4 text-sm",
24
+ lg: "h-12 px-6 text-base"
25
+ }
26
+ },
27
+ defaultVariants: {
28
+ variant: "primary",
29
+ size: "md"
30
+ }
31
+ });
32
+ function Button({ className, variant, size, ...props }) {
33
+ return /* @__PURE__ */ jsx(BaseButton, {
34
+ className: cn(buttonVariants({ variant, size }), className),
35
+ ...props
36
+ });
37
+ }
38
+ export {
39
+ buttonVariants,
40
+ Button
41
+ };
42
+ export { buttonVariants, Button };
43
+
44
+ //# debugId=977B340CD56BA22064756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/components/Button/Button.tsx"],
4
+ "sourcesContent": [
5
+ "import { Button as BaseButton } from '@base-ui/react/button';\nimport { cva, type VariantProps } from 'cva';\nimport { cn } from '../../utils/cn';\n\nexport const buttonVariants = cva({\n base: 'inline-flex items-center justify-center rounded-lg font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 data-disabled:pointer-events-none data-disabled:opacity-50',\n variants: {\n variant: {\n primary:\n 'bg-denim text-white shadow-sm hover:not-data-disabled:bg-denim/90 focus-visible:ring-denim',\n secondary:\n 'border border-kraft/15 bg-canvas text-kraft hover:not-data-disabled:bg-canvas/70 focus-visible:ring-kraft',\n destructive:\n 'bg-spool text-white hover:not-data-disabled:bg-spool/85 focus-visible:ring-spool',\n outline:\n 'border border-kraft/25 bg-transparent text-kraft shadow-sm hover:not-data-disabled:bg-canvas focus-visible:ring-kraft',\n ghost: 'text-kraft hover:not-data-disabled:bg-canvas focus-visible:ring-kraft'\n },\n size: {\n sm: 'h-8 px-3 text-sm',\n md: 'h-10 px-4 text-sm',\n lg: 'h-12 px-6 text-base'\n }\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md'\n }\n});\n\nexport interface ButtonProps\n extends React.ComponentPropsWithoutRef<typeof BaseButton>,\n VariantProps<typeof buttonVariants> {}\n\nexport function Button({ className, variant, size, ...props }: ButtonProps) {\n return (\n <BaseButton\n className={cn(buttonVariants({ variant, size }), className)}\n {...props}\n />\n );\n}\n"
6
+ ],
7
+ "mappings": ";;;;;;;;AAAA,mBAAS;;AAIF,IAAM,iBAAiB,IAAI;AAAA,EAC9B,MAAM;AAAA,EACN,UAAU;AAAA,IACN,SAAS;AAAA,MACL,SACI;AAAA,MACJ,WACI;AAAA,MACJ,aACI;AAAA,MACJ,SACI;AAAA,MACJ,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,SAAS,MAAM,GAAG,WAAW,SAAS,SAAS,SAAsB;AAAA,EACxE,uBACI,IAAC,YAAD;AAAA,IACI,WAAW,GAAG,eAAe,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,OACtD;AAAA,GACR;AAAA;",
8
+ "debugId": "977B340CD56BA22064756E2164756E21",
9
+ "names": []
10
+ }
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ export declare const Card: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
3
+ export declare const CardHeader: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
4
+ export declare const CardTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
5
+ export declare const CardContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
6
+ export declare const CardFooter: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,13 @@
1
+ import type { StoryObj } from '@storybook/react-vite';
2
+ declare const meta: {
3
+ title: string;
4
+ component: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
5
+ parameters: {
6
+ layout: string;
7
+ };
8
+ tags: string[];
9
+ };
10
+ export default meta;
11
+ type Story = StoryObj<typeof meta>;
12
+ export declare const Default: Story;
13
+ export declare const Simple: Story;
@@ -0,0 +1 @@
1
+ export { Card, CardHeader, CardTitle, CardContent, CardFooter } from './Card';