@nuvia/components 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 (243) hide show
  1. package/README.md +96 -0
  2. package/dist/hooks/use-mobile.cjs +44 -0
  3. package/dist/hooks/use-mobile.cjs.map +1 -0
  4. package/dist/hooks/use-mobile.js +22 -0
  5. package/dist/hooks/use-mobile.js.map +1 -0
  6. package/dist/hooks/use-toast.cjs +146 -0
  7. package/dist/hooks/use-toast.cjs.map +1 -0
  8. package/dist/hooks/use-toast.js +122 -0
  9. package/dist/hooks/use-toast.js.map +1 -0
  10. package/dist/index.cjs +4117 -0
  11. package/dist/index.cjs.map +1 -0
  12. package/dist/index.js +3800 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/lib/fonts.cjs +15 -0
  15. package/dist/lib/fonts.cjs.map +1 -0
  16. package/dist/lib/fonts.js +13 -0
  17. package/dist/lib/fonts.js.map +1 -0
  18. package/dist/lib/utils.cjs +18 -0
  19. package/dist/lib/utils.cjs.map +1 -0
  20. package/dist/lib/utils.js +14 -0
  21. package/dist/lib/utils.js.map +1 -0
  22. package/dist/providers/theme.cjs +24 -0
  23. package/dist/providers/theme.cjs.map +1 -0
  24. package/dist/providers/theme.js +22 -0
  25. package/dist/providers/theme.js.map +1 -0
  26. package/dist/ui/accordion.cjs +75 -0
  27. package/dist/ui/accordion.cjs.map +1 -0
  28. package/dist/ui/accordion.js +49 -0
  29. package/dist/ui/accordion.js.map +1 -0
  30. package/dist/ui/alert-dialog.cjs +189 -0
  31. package/dist/ui/alert-dialog.cjs.map +1 -0
  32. package/dist/ui/alert-dialog.js +156 -0
  33. package/dist/ui/alert-dialog.js.map +1 -0
  34. package/dist/ui/alert.cjs +81 -0
  35. package/dist/ui/alert.cjs.map +1 -0
  36. package/dist/ui/alert.js +57 -0
  37. package/dist/ui/alert.js.map +1 -0
  38. package/dist/ui/aspect-ratio.cjs +29 -0
  39. package/dist/ui/aspect-ratio.cjs.map +1 -0
  40. package/dist/ui/aspect-ratio.js +7 -0
  41. package/dist/ui/aspect-ratio.js.map +1 -0
  42. package/dist/ui/auto-complete.cjs +284 -0
  43. package/dist/ui/auto-complete.cjs.map +1 -0
  44. package/dist/ui/auto-complete.js +262 -0
  45. package/dist/ui/auto-complete.js.map +1 -0
  46. package/dist/ui/avatar.cjs +70 -0
  47. package/dist/ui/avatar.cjs.map +1 -0
  48. package/dist/ui/avatar.js +45 -0
  49. package/dist/ui/avatar.js.map +1 -0
  50. package/dist/ui/badge.cjs +34 -0
  51. package/dist/ui/badge.cjs.map +1 -0
  52. package/dist/ui/badge.js +31 -0
  53. package/dist/ui/badge.js.map +1 -0
  54. package/dist/ui/breadcrumb.cjs +120 -0
  55. package/dist/ui/breadcrumb.cjs.map +1 -0
  56. package/dist/ui/breadcrumb.js +92 -0
  57. package/dist/ui/breadcrumb.js.map +1 -0
  58. package/dist/ui/button.cjs +80 -0
  59. package/dist/ui/button.cjs.map +1 -0
  60. package/dist/ui/button.js +57 -0
  61. package/dist/ui/button.js.map +1 -0
  62. package/dist/ui/calendar.cjs +135 -0
  63. package/dist/ui/calendar.cjs.map +1 -0
  64. package/dist/ui/calendar.js +113 -0
  65. package/dist/ui/calendar.js.map +1 -0
  66. package/dist/ui/card.cjs +89 -0
  67. package/dist/ui/card.cjs.map +1 -0
  68. package/dist/ui/card.js +62 -0
  69. package/dist/ui/card.js.map +1 -0
  70. package/dist/ui/carousel.cjs +269 -0
  71. package/dist/ui/carousel.cjs.map +1 -0
  72. package/dist/ui/carousel.js +240 -0
  73. package/dist/ui/carousel.js.map +1 -0
  74. package/dist/ui/chart.cjs +267 -0
  75. package/dist/ui/chart.cjs.map +1 -0
  76. package/dist/ui/chart.js +239 -0
  77. package/dist/ui/chart.js.map +1 -0
  78. package/dist/ui/checkbox.cjs +55 -0
  79. package/dist/ui/checkbox.cjs.map +1 -0
  80. package/dist/ui/checkbox.js +32 -0
  81. package/dist/ui/checkbox.js.map +1 -0
  82. package/dist/ui/chip.cjs +79 -0
  83. package/dist/ui/chip.cjs.map +1 -0
  84. package/dist/ui/chip.js +55 -0
  85. package/dist/ui/chip.js.map +1 -0
  86. package/dist/ui/collapsible.cjs +33 -0
  87. package/dist/ui/collapsible.cjs.map +1 -0
  88. package/dist/ui/collapsible.js +9 -0
  89. package/dist/ui/collapsible.js.map +1 -0
  90. package/dist/ui/combobox.cjs +254 -0
  91. package/dist/ui/combobox.cjs.map +1 -0
  92. package/dist/ui/combobox.js +232 -0
  93. package/dist/ui/combobox.js.map +1 -0
  94. package/dist/ui/command.cjs +199 -0
  95. package/dist/ui/command.cjs.map +1 -0
  96. package/dist/ui/command.js +168 -0
  97. package/dist/ui/command.js.map +1 -0
  98. package/dist/ui/context-menu.cjs +181 -0
  99. package/dist/ui/context-menu.cjs.map +1 -0
  100. package/dist/ui/context-menu.js +144 -0
  101. package/dist/ui/context-menu.js.map +1 -0
  102. package/dist/ui/dialog.cjs +132 -0
  103. package/dist/ui/dialog.cjs.map +1 -0
  104. package/dist/ui/dialog.js +100 -0
  105. package/dist/ui/dialog.js.map +1 -0
  106. package/dist/ui/drawer.cjs +128 -0
  107. package/dist/ui/drawer.cjs.map +1 -0
  108. package/dist/ui/drawer.js +97 -0
  109. package/dist/ui/drawer.js.map +1 -0
  110. package/dist/ui/dropdown-menu.cjs +194 -0
  111. package/dist/ui/dropdown-menu.cjs.map +1 -0
  112. package/dist/ui/dropdown-menu.js +157 -0
  113. package/dist/ui/dropdown-menu.js.map +1 -0
  114. package/dist/ui/form.cjs +179 -0
  115. package/dist/ui/form.cjs.map +1 -0
  116. package/dist/ui/form.js +149 -0
  117. package/dist/ui/form.js.map +1 -0
  118. package/dist/ui/hover-card.cjs +53 -0
  119. package/dist/ui/hover-card.cjs.map +1 -0
  120. package/dist/ui/hover-card.js +28 -0
  121. package/dist/ui/hover-card.js.map +1 -0
  122. package/dist/ui/input-otp.cjs +76 -0
  123. package/dist/ui/input-otp.cjs.map +1 -0
  124. package/dist/ui/input-otp.js +51 -0
  125. package/dist/ui/input-otp.js.map +1 -0
  126. package/dist/ui/input.cjs +51 -0
  127. package/dist/ui/input.cjs.map +1 -0
  128. package/dist/ui/input.js +29 -0
  129. package/dist/ui/input.js.map +1 -0
  130. package/dist/ui/label.cjs +55 -0
  131. package/dist/ui/label.cjs.map +1 -0
  132. package/dist/ui/label.js +32 -0
  133. package/dist/ui/label.js.map +1 -0
  134. package/dist/ui/lottie-animation.cjs +85 -0
  135. package/dist/ui/lottie-animation.cjs.map +1 -0
  136. package/dist/ui/lottie-animation.js +79 -0
  137. package/dist/ui/lottie-animation.js.map +1 -0
  138. package/dist/ui/menubar.cjs +210 -0
  139. package/dist/ui/menubar.cjs.map +1 -0
  140. package/dist/ui/menubar.js +172 -0
  141. package/dist/ui/menubar.js.map +1 -0
  142. package/dist/ui/multi-combobox.cjs +319 -0
  143. package/dist/ui/multi-combobox.cjs.map +1 -0
  144. package/dist/ui/multi-combobox.js +297 -0
  145. package/dist/ui/multi-combobox.js.map +1 -0
  146. package/dist/ui/navigation-menu.cjs +136 -0
  147. package/dist/ui/navigation-menu.cjs.map +1 -0
  148. package/dist/ui/navigation-menu.js +105 -0
  149. package/dist/ui/navigation-menu.js.map +1 -0
  150. package/dist/ui/pagination.cjs +172 -0
  151. package/dist/ui/pagination.cjs.map +1 -0
  152. package/dist/ui/pagination.js +144 -0
  153. package/dist/ui/pagination.js.map +1 -0
  154. package/dist/ui/popover.cjs +55 -0
  155. package/dist/ui/popover.cjs.map +1 -0
  156. package/dist/ui/popover.js +29 -0
  157. package/dist/ui/popover.js.map +1 -0
  158. package/dist/ui/progress.cjs +54 -0
  159. package/dist/ui/progress.cjs.map +1 -0
  160. package/dist/ui/progress.js +31 -0
  161. package/dist/ui/progress.js.map +1 -0
  162. package/dist/ui/radio-group.cjs +62 -0
  163. package/dist/ui/radio-group.cjs.map +1 -0
  164. package/dist/ui/radio-group.js +38 -0
  165. package/dist/ui/radio-group.js.map +1 -0
  166. package/dist/ui/resizable.cjs +65 -0
  167. package/dist/ui/resizable.cjs.map +1 -0
  168. package/dist/ui/resizable.js +41 -0
  169. package/dist/ui/resizable.js.map +1 -0
  170. package/dist/ui/scroll-area.cjs +66 -0
  171. package/dist/ui/scroll-area.cjs.map +1 -0
  172. package/dist/ui/scroll-area.js +42 -0
  173. package/dist/ui/scroll-area.js.map +1 -0
  174. package/dist/ui/select.cjs +152 -0
  175. package/dist/ui/select.cjs.map +1 -0
  176. package/dist/ui/select.js +120 -0
  177. package/dist/ui/select.js.map +1 -0
  178. package/dist/ui/separator.cjs +52 -0
  179. package/dist/ui/separator.cjs.map +1 -0
  180. package/dist/ui/separator.js +29 -0
  181. package/dist/ui/separator.js.map +1 -0
  182. package/dist/ui/sheet.cjs +143 -0
  183. package/dist/ui/sheet.cjs.map +1 -0
  184. package/dist/ui/sheet.js +111 -0
  185. package/dist/ui/sheet.js.map +1 -0
  186. package/dist/ui/sidebar.cjs +816 -0
  187. package/dist/ui/sidebar.cjs.map +1 -0
  188. package/dist/ui/sidebar.js +768 -0
  189. package/dist/ui/sidebar.js.map +1 -0
  190. package/dist/ui/skeleton.cjs +25 -0
  191. package/dist/ui/skeleton.cjs.map +1 -0
  192. package/dist/ui/skeleton.js +23 -0
  193. package/dist/ui/skeleton.js.map +1 -0
  194. package/dist/ui/slider.cjs +51 -0
  195. package/dist/ui/slider.cjs.map +1 -0
  196. package/dist/ui/slider.js +28 -0
  197. package/dist/ui/slider.js.map +1 -0
  198. package/dist/ui/sonner.cjs +46 -0
  199. package/dist/ui/sonner.cjs.map +1 -0
  200. package/dist/ui/sonner.js +41 -0
  201. package/dist/ui/sonner.js.map +1 -0
  202. package/dist/ui/spinner.cjs +83 -0
  203. package/dist/ui/spinner.cjs.map +1 -0
  204. package/dist/ui/spinner.js +81 -0
  205. package/dist/ui/spinner.js.map +1 -0
  206. package/dist/ui/switch.cjs +67 -0
  207. package/dist/ui/switch.cjs.map +1 -0
  208. package/dist/ui/switch.js +44 -0
  209. package/dist/ui/switch.js.map +1 -0
  210. package/dist/ui/table.cjs +118 -0
  211. package/dist/ui/table.cjs.map +1 -0
  212. package/dist/ui/table.js +89 -0
  213. package/dist/ui/table.js.map +1 -0
  214. package/dist/ui/tabs.cjs +79 -0
  215. package/dist/ui/tabs.cjs.map +1 -0
  216. package/dist/ui/tabs.js +53 -0
  217. package/dist/ui/tabs.js.map +1 -0
  218. package/dist/ui/textarea.cjs +48 -0
  219. package/dist/ui/textarea.cjs.map +1 -0
  220. package/dist/ui/textarea.js +26 -0
  221. package/dist/ui/textarea.js.map +1 -0
  222. package/dist/ui/toast.cjs +125 -0
  223. package/dist/ui/toast.cjs.map +1 -0
  224. package/dist/ui/toast.js +96 -0
  225. package/dist/ui/toast.js.map +1 -0
  226. package/dist/ui/toaster.cjs +251 -0
  227. package/dist/ui/toaster.cjs.map +1 -0
  228. package/dist/ui/toaster.js +228 -0
  229. package/dist/ui/toaster.js.map +1 -0
  230. package/dist/ui/toggle-group.cjs +101 -0
  231. package/dist/ui/toggle-group.cjs.map +1 -0
  232. package/dist/ui/toggle-group.js +76 -0
  233. package/dist/ui/toggle-group.js.map +1 -0
  234. package/dist/ui/toggle.cjs +66 -0
  235. package/dist/ui/toggle.cjs.map +1 -0
  236. package/dist/ui/toggle.js +42 -0
  237. package/dist/ui/toggle.js.map +1 -0
  238. package/dist/ui/tooltip.cjs +54 -0
  239. package/dist/ui/tooltip.cjs.map +1 -0
  240. package/dist/ui/tooltip.js +28 -0
  241. package/dist/ui/tooltip.js.map +1 -0
  242. package/package.json +116 -0
  243. package/src/styles/globals.css +529 -0
@@ -0,0 +1,120 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactSlot = require('@radix-ui/react-slot');
5
+ var reactIcons = require('@radix-ui/react-icons');
6
+ var clsx = require('clsx');
7
+ require('sonner');
8
+ var tailwindMerge = require('tailwind-merge');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
+
31
+ // src/ui/breadcrumb.tsx
32
+ var cn = (...inputs) => tailwindMerge.twMerge(clsx.clsx(inputs));
33
+ var Breadcrumb = React__namespace.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
34
+ Breadcrumb.displayName = "Breadcrumb";
35
+ var BreadcrumbList = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
36
+ "ol",
37
+ {
38
+ ref,
39
+ className: cn(
40
+ "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
41
+ className
42
+ ),
43
+ ...props
44
+ }
45
+ ));
46
+ BreadcrumbList.displayName = "BreadcrumbList";
47
+ var BreadcrumbItem = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
48
+ "li",
49
+ {
50
+ ref,
51
+ className: cn("inline-flex items-center gap-1.5", className),
52
+ ...props
53
+ }
54
+ ));
55
+ BreadcrumbItem.displayName = "BreadcrumbItem";
56
+ var BreadcrumbLink = React__namespace.forwardRef(({ asChild, className, ...props }, ref) => {
57
+ const Comp = asChild ? reactSlot.Slot : "a";
58
+ return /* @__PURE__ */ jsxRuntime.jsx(
59
+ Comp,
60
+ {
61
+ ref,
62
+ className: cn("transition-colors hover:text-foreground", className),
63
+ ...props
64
+ }
65
+ );
66
+ });
67
+ BreadcrumbLink.displayName = "BreadcrumbLink";
68
+ var BreadcrumbPage = React__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
69
+ "span",
70
+ {
71
+ ref,
72
+ "aria-disabled": "true",
73
+ "aria-current": "page",
74
+ className: cn("font-normal text-foreground", className),
75
+ ...props
76
+ }
77
+ ));
78
+ BreadcrumbPage.displayName = "BreadcrumbPage";
79
+ var BreadcrumbSeparator = ({
80
+ children,
81
+ className,
82
+ ...props
83
+ }) => /* @__PURE__ */ jsxRuntime.jsx(
84
+ "li",
85
+ {
86
+ role: "presentation",
87
+ "aria-hidden": "true",
88
+ className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className),
89
+ ...props,
90
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsx(reactIcons.ChevronRightIcon, {})
91
+ }
92
+ );
93
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
94
+ var BreadcrumbEllipsis = ({
95
+ className,
96
+ ...props
97
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(
98
+ "span",
99
+ {
100
+ role: "presentation",
101
+ "aria-hidden": "true",
102
+ className: cn("flex h-9 w-9 items-center justify-center", className),
103
+ ...props,
104
+ children: [
105
+ /* @__PURE__ */ jsxRuntime.jsx(reactIcons.DotsHorizontalIcon, { className: "h-4 w-4" }),
106
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "More" })
107
+ ]
108
+ }
109
+ );
110
+ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
111
+
112
+ exports.Breadcrumb = Breadcrumb;
113
+ exports.BreadcrumbEllipsis = BreadcrumbEllipsis;
114
+ exports.BreadcrumbItem = BreadcrumbItem;
115
+ exports.BreadcrumbLink = BreadcrumbLink;
116
+ exports.BreadcrumbList = BreadcrumbList;
117
+ exports.BreadcrumbPage = BreadcrumbPage;
118
+ exports.BreadcrumbSeparator = BreadcrumbSeparator;
119
+ //# sourceMappingURL=breadcrumb.cjs.map
120
+ //# sourceMappingURL=breadcrumb.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/ui/breadcrumb.tsx"],"names":["twMerge","clsx","React","jsx","Slot","ChevronRightIcon","jsxs","DotsHorizontalIcon"],"mappings":"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","file":"breadcrumb.cjs","sourcesContent":["import { clsx } from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { toast } from \"sonner\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]): string => twMerge(clsx(inputs));\n\nexport const capitalize = (str: string) =>\n str?.charAt(0)?.toUpperCase() + str?.slice(1);\n\nexport const handleError = (error: { message: string }): void => {\n toast.error(error.message);\n};\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRightIcon, DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { cn } from \"../lib/utils\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRightIcon />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <DotsHorizontalIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"]}
@@ -0,0 +1,92 @@
1
+ import * as React from 'react';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { ChevronRightIcon, DotsHorizontalIcon } from '@radix-ui/react-icons';
4
+ import { clsx } from 'clsx';
5
+ import 'sonner';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import { jsx, jsxs } from 'react/jsx-runtime';
8
+
9
+ // src/ui/breadcrumb.tsx
10
+ var cn = (...inputs) => twMerge(clsx(inputs));
11
+ var Breadcrumb = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
12
+ Breadcrumb.displayName = "Breadcrumb";
13
+ var BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14
+ "ol",
15
+ {
16
+ ref,
17
+ className: cn(
18
+ "flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5",
19
+ className
20
+ ),
21
+ ...props
22
+ }
23
+ ));
24
+ BreadcrumbList.displayName = "BreadcrumbList";
25
+ var BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
26
+ "li",
27
+ {
28
+ ref,
29
+ className: cn("inline-flex items-center gap-1.5", className),
30
+ ...props
31
+ }
32
+ ));
33
+ BreadcrumbItem.displayName = "BreadcrumbItem";
34
+ var BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {
35
+ const Comp = asChild ? Slot : "a";
36
+ return /* @__PURE__ */ jsx(
37
+ Comp,
38
+ {
39
+ ref,
40
+ className: cn("transition-colors hover:text-foreground", className),
41
+ ...props
42
+ }
43
+ );
44
+ });
45
+ BreadcrumbLink.displayName = "BreadcrumbLink";
46
+ var BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
47
+ "span",
48
+ {
49
+ ref,
50
+ "aria-disabled": "true",
51
+ "aria-current": "page",
52
+ className: cn("font-normal text-foreground", className),
53
+ ...props
54
+ }
55
+ ));
56
+ BreadcrumbPage.displayName = "BreadcrumbPage";
57
+ var BreadcrumbSeparator = ({
58
+ children,
59
+ className,
60
+ ...props
61
+ }) => /* @__PURE__ */ jsx(
62
+ "li",
63
+ {
64
+ role: "presentation",
65
+ "aria-hidden": "true",
66
+ className: cn("[&>svg]:w-3.5 [&>svg]:h-3.5", className),
67
+ ...props,
68
+ children: children ?? /* @__PURE__ */ jsx(ChevronRightIcon, {})
69
+ }
70
+ );
71
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
72
+ var BreadcrumbEllipsis = ({
73
+ className,
74
+ ...props
75
+ }) => /* @__PURE__ */ jsxs(
76
+ "span",
77
+ {
78
+ role: "presentation",
79
+ "aria-hidden": "true",
80
+ className: cn("flex h-9 w-9 items-center justify-center", className),
81
+ ...props,
82
+ children: [
83
+ /* @__PURE__ */ jsx(DotsHorizontalIcon, { className: "h-4 w-4" }),
84
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
85
+ ]
86
+ }
87
+ );
88
+ BreadcrumbEllipsis.displayName = "BreadcrumbElipssis";
89
+
90
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
91
+ //# sourceMappingURL=breadcrumb.js.map
92
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/ui/breadcrumb.tsx"],"names":[],"mappings":"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","file":"breadcrumb.js","sourcesContent":["import { clsx } from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { toast } from \"sonner\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]): string => twMerge(clsx(inputs));\n\nexport const capitalize = (str: string) =>\n str?.charAt(0)?.toUpperCase() + str?.slice(1);\n\nexport const handleError = (error: { message: string }): void => {\n toast.error(error.message);\n};\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRightIcon, DotsHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { cn } from \"../lib/utils\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className,\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRightIcon />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <DotsHorizontalIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n"]}
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactSlot = require('@radix-ui/react-slot');
5
+ var classVarianceAuthority = require('class-variance-authority');
6
+ var clsx = require('clsx');
7
+ require('sonner');
8
+ var tailwindMerge = require('tailwind-merge');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+
11
+ function _interopNamespace(e) {
12
+ if (e && e.__esModule) return e;
13
+ var n = Object.create(null);
14
+ if (e) {
15
+ Object.keys(e).forEach(function (k) {
16
+ if (k !== 'default') {
17
+ var d = Object.getOwnPropertyDescriptor(e, k);
18
+ Object.defineProperty(n, k, d.get ? d : {
19
+ enumerable: true,
20
+ get: function () { return e[k]; }
21
+ });
22
+ }
23
+ });
24
+ }
25
+ n.default = e;
26
+ return Object.freeze(n);
27
+ }
28
+
29
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
+
31
+ var cn = (...inputs) => tailwindMerge.twMerge(clsx.clsx(inputs));
32
+ var buttonVariants = classVarianceAuthority.cva(
33
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#5A6FC0] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
34
+ {
35
+ variants: {
36
+ variant: {
37
+ default: "bg-foreground-primary-medium text-white shadow hover:bg-primary/90",
38
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
39
+ outline: "border border-input bg-background hover:bg-secondary hover:text-accent-foreground text-foreground-secondary-heavy",
40
+ secondary: "bg-background-secondary-light hover:background-secondary-light/40 text-foreground-secondary-heavy",
41
+ ghost: "text-foreground-secondary-heavy hover:bg-background-secondary-light",
42
+ link: "text-text-links hover:bg-background-secondary-light",
43
+ accent: "bg-accent nuvia-gradient-1 text-white"
44
+ },
45
+ size: {
46
+ default: "h-10 px-4 py-2",
47
+ xs: "h-[30px] px-3 rounded-xl text-xs",
48
+ sm: "h-9 rounded-xl px-3 text-xs",
49
+ lg: "h-12 rounded-xl px-8",
50
+ icon: "h-10 w-10 min-w-10",
51
+ "icon-xs": "h-[30px] w-[30px] min-w-[30px]",
52
+ "icon-sm": "h-9 w-9 min-w-9",
53
+ bullet: "h-8 w-8 min-w-8"
54
+ }
55
+ },
56
+ defaultVariants: {
57
+ variant: "default",
58
+ size: "default"
59
+ }
60
+ }
61
+ );
62
+ var Button = React__namespace.forwardRef(
63
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
64
+ const Comp = asChild ? reactSlot.Slot : "button";
65
+ return /* @__PURE__ */ jsxRuntime.jsx(
66
+ Comp,
67
+ {
68
+ className: cn(buttonVariants({ variant, size, className })),
69
+ ref,
70
+ ...props
71
+ }
72
+ );
73
+ }
74
+ );
75
+ Button.displayName = "Button";
76
+
77
+ exports.Button = Button;
78
+ exports.buttonVariants = buttonVariants;
79
+ //# sourceMappingURL=button.cjs.map
80
+ //# sourceMappingURL=button.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/ui/button.tsx"],"names":["twMerge","clsx","cva","React","Slot","jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAM,KAAK,CAAA,GAAI,MAAA,KAAiCA,qBAAA,CAAQC,SAAA,CAAK,MAAM,CAAC,CAAA;ACE3E,IAAM,cAAA,GAAiBC,0BAAA;AAAA,EACrB,0RAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,oEAAA;AAAA,QACF,WAAA,EACE,oEAAA;AAAA,QACF,OAAA,EACE,mHAAA;AAAA,QACF,SAAA,EACE,mGAAA;AAAA,QACF,KAAA,EACE,qEAAA;AAAA,QACF,IAAA,EAAM,qDAAA;AAAA,QACN,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,gBAAA;AAAA,QACT,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM,oBAAA;AAAA,QACN,SAAA,EAAW,gCAAA;AAAA,QACX,SAAA,EAAW,iBAAA;AAAA,QACX,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,IAAM,MAAA,GAAeC,gBAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAChE,IAAA,MAAM,IAAA,GAAO,UAAUC,cAAA,GAAO,QAAA;AAC9B,IAAA,uBACEC,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,QAC1D,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"button.cjs","sourcesContent":["import { clsx } from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { toast } from \"sonner\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]): string => twMerge(clsx(inputs));\n\nexport const capitalize = (str: string) =>\n str?.charAt(0)?.toUpperCase() + str?.slice(1);\n\nexport const handleError = (error: { message: string }): void => {\n toast.error(error.message);\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#5A6FC0] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-foreground-primary-medium text-white shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-secondary hover:text-accent-foreground text-foreground-secondary-heavy\",\n secondary:\n \"bg-background-secondary-light hover:background-secondary-light/40 text-foreground-secondary-heavy\",\n ghost:\n \"text-foreground-secondary-heavy hover:bg-background-secondary-light\",\n link: \"text-text-links hover:bg-background-secondary-light\",\n accent: \"bg-accent nuvia-gradient-1 text-white\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n xs: \"h-[30px] px-3 rounded-xl text-xs\",\n sm: \"h-9 rounded-xl px-3 text-xs\",\n lg: \"h-12 rounded-xl px-8\",\n icon: \"h-10 w-10 min-w-10\",\n \"icon-xs\": \"h-[30px] w-[30px] min-w-[30px]\",\n \"icon-sm\": \"h-9 w-9 min-w-9\",\n bullet: \"h-8 w-8 min-w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"]}
@@ -0,0 +1,57 @@
1
+ import * as React from 'react';
2
+ import { Slot } from '@radix-ui/react-slot';
3
+ import { cva } from 'class-variance-authority';
4
+ import { clsx } from 'clsx';
5
+ import 'sonner';
6
+ import { twMerge } from 'tailwind-merge';
7
+ import { jsx } from 'react/jsx-runtime';
8
+
9
+ var cn = (...inputs) => twMerge(clsx(inputs));
10
+ var buttonVariants = cva(
11
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#5A6FC0] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
12
+ {
13
+ variants: {
14
+ variant: {
15
+ default: "bg-foreground-primary-medium text-white shadow hover:bg-primary/90",
16
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
17
+ outline: "border border-input bg-background hover:bg-secondary hover:text-accent-foreground text-foreground-secondary-heavy",
18
+ secondary: "bg-background-secondary-light hover:background-secondary-light/40 text-foreground-secondary-heavy",
19
+ ghost: "text-foreground-secondary-heavy hover:bg-background-secondary-light",
20
+ link: "text-text-links hover:bg-background-secondary-light",
21
+ accent: "bg-accent nuvia-gradient-1 text-white"
22
+ },
23
+ size: {
24
+ default: "h-10 px-4 py-2",
25
+ xs: "h-[30px] px-3 rounded-xl text-xs",
26
+ sm: "h-9 rounded-xl px-3 text-xs",
27
+ lg: "h-12 rounded-xl px-8",
28
+ icon: "h-10 w-10 min-w-10",
29
+ "icon-xs": "h-[30px] w-[30px] min-w-[30px]",
30
+ "icon-sm": "h-9 w-9 min-w-9",
31
+ bullet: "h-8 w-8 min-w-8"
32
+ }
33
+ },
34
+ defaultVariants: {
35
+ variant: "default",
36
+ size: "default"
37
+ }
38
+ }
39
+ );
40
+ var Button = React.forwardRef(
41
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
42
+ const Comp = asChild ? Slot : "button";
43
+ return /* @__PURE__ */ jsx(
44
+ Comp,
45
+ {
46
+ className: cn(buttonVariants({ variant, size, className })),
47
+ ref,
48
+ ...props
49
+ }
50
+ );
51
+ }
52
+ );
53
+ Button.displayName = "Button";
54
+
55
+ export { Button, buttonVariants };
56
+ //# sourceMappingURL=button.js.map
57
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/ui/button.tsx"],"names":[],"mappings":";;;;;;;;AAKO,IAAM,KAAK,CAAA,GAAI,MAAA,KAAiC,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;ACE3E,IAAM,cAAA,GAAiB,GAAA;AAAA,EACrB,0RAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EACE,oEAAA;AAAA,QACF,WAAA,EACE,oEAAA;AAAA,QACF,OAAA,EACE,mHAAA;AAAA,QACF,SAAA,EACE,mGAAA;AAAA,QACF,KAAA,EACE,qEAAA;AAAA,QACF,IAAA,EAAM,qDAAA;AAAA,QACN,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,gBAAA;AAAA,QACT,EAAA,EAAI,kCAAA;AAAA,QACJ,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM,oBAAA;AAAA,QACN,SAAA,EAAW,gCAAA;AAAA,QACX,SAAA,EAAW,iBAAA;AAAA,QACX,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM;AAAA;AACR;AAEJ;AAQA,IAAM,MAAA,GAAe,KAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAE,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,UAAU,KAAA,EAAO,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAChE,IAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,QAAA;AAC9B,IAAA,uBACE,GAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,cAAA,CAAe,EAAE,SAAS,IAAA,EAAM,SAAA,EAAW,CAAC,CAAA;AAAA,QAC1D,GAAA;AAAA,QACC,GAAG;AAAA;AAAA,KACN;AAAA,EAEJ;AACF;AACA,MAAA,CAAO,WAAA,GAAc,QAAA","file":"button.js","sourcesContent":["import { clsx } from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { toast } from \"sonner\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]): string => twMerge(clsx(inputs));\n\nexport const capitalize = (str: string) =>\n str?.charAt(0)?.toUpperCase() + str?.slice(1);\n\nexport const handleError = (error: { message: string }): void => {\n toast.error(error.message);\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#5A6FC0] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-foreground-primary-medium text-white shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-secondary hover:text-accent-foreground text-foreground-secondary-heavy\",\n secondary:\n \"bg-background-secondary-light hover:background-secondary-light/40 text-foreground-secondary-heavy\",\n ghost:\n \"text-foreground-secondary-heavy hover:bg-background-secondary-light\",\n link: \"text-text-links hover:bg-background-secondary-light\",\n accent: \"bg-accent nuvia-gradient-1 text-white\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n xs: \"h-[30px] px-3 rounded-xl text-xs\",\n sm: \"h-9 rounded-xl px-3 text-xs\",\n lg: \"h-12 rounded-xl px-8\",\n icon: \"h-10 w-10 min-w-10\",\n \"icon-xs\": \"h-[30px] w-[30px] min-w-[30px]\",\n \"icon-sm\": \"h-9 w-9 min-w-9\",\n bullet: \"h-8 w-8 min-w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n"]}
@@ -0,0 +1,135 @@
1
+ 'use strict';
2
+
3
+ var reactDayPicker = require('react-day-picker');
4
+ var clsx = require('clsx');
5
+ require('sonner');
6
+ var tailwindMerge = require('tailwind-merge');
7
+ var React = require('react');
8
+ var reactSlot = require('@radix-ui/react-slot');
9
+ var classVarianceAuthority = require('class-variance-authority');
10
+ var jsxRuntime = require('react/jsx-runtime');
11
+ var reactIcons = require('@radix-ui/react-icons');
12
+
13
+ function _interopNamespace(e) {
14
+ if (e && e.__esModule) return e;
15
+ var n = Object.create(null);
16
+ if (e) {
17
+ Object.keys(e).forEach(function (k) {
18
+ if (k !== 'default') {
19
+ var d = Object.getOwnPropertyDescriptor(e, k);
20
+ Object.defineProperty(n, k, d.get ? d : {
21
+ enumerable: true,
22
+ get: function () { return e[k]; }
23
+ });
24
+ }
25
+ });
26
+ }
27
+ n.default = e;
28
+ return Object.freeze(n);
29
+ }
30
+
31
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
+
33
+ var cn = (...inputs) => tailwindMerge.twMerge(clsx.clsx(inputs));
34
+ var buttonVariants = classVarianceAuthority.cva(
35
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#5A6FC0] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
36
+ {
37
+ variants: {
38
+ variant: {
39
+ default: "bg-foreground-primary-medium text-white shadow hover:bg-primary/90",
40
+ destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
41
+ outline: "border border-input bg-background hover:bg-secondary hover:text-accent-foreground text-foreground-secondary-heavy",
42
+ secondary: "bg-background-secondary-light hover:background-secondary-light/40 text-foreground-secondary-heavy",
43
+ ghost: "text-foreground-secondary-heavy hover:bg-background-secondary-light",
44
+ link: "text-text-links hover:bg-background-secondary-light",
45
+ accent: "bg-accent nuvia-gradient-1 text-white"
46
+ },
47
+ size: {
48
+ default: "h-10 px-4 py-2",
49
+ xs: "h-[30px] px-3 rounded-xl text-xs",
50
+ sm: "h-9 rounded-xl px-3 text-xs",
51
+ lg: "h-12 rounded-xl px-8",
52
+ icon: "h-10 w-10 min-w-10",
53
+ "icon-xs": "h-[30px] w-[30px] min-w-[30px]",
54
+ "icon-sm": "h-9 w-9 min-w-9",
55
+ bullet: "h-8 w-8 min-w-8"
56
+ }
57
+ },
58
+ defaultVariants: {
59
+ variant: "default",
60
+ size: "default"
61
+ }
62
+ }
63
+ );
64
+ var Button = React__namespace.forwardRef(
65
+ ({ className, variant, size, asChild = false, ...props }, ref) => {
66
+ const Comp = asChild ? reactSlot.Slot : "button";
67
+ return /* @__PURE__ */ jsxRuntime.jsx(
68
+ Comp,
69
+ {
70
+ className: cn(buttonVariants({ variant, size, className })),
71
+ ref,
72
+ ...props
73
+ }
74
+ );
75
+ }
76
+ );
77
+ Button.displayName = "Button";
78
+ function Calendar({
79
+ className,
80
+ classNames,
81
+ showOutsideDays = true,
82
+ ...props
83
+ }) {
84
+ return /* @__PURE__ */ jsxRuntime.jsx(
85
+ reactDayPicker.DayPicker,
86
+ {
87
+ showOutsideDays,
88
+ className: cn("p-3", className),
89
+ classNames: {
90
+ months: "flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0",
91
+ month: "space-y-4",
92
+ caption: "flex justify-center pt-1 relative items-center",
93
+ caption_label: "text-sm font-medium",
94
+ nav: "space-x-1 flex items-center",
95
+ nav_button: cn(
96
+ buttonVariants({ variant: "outline" }),
97
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
98
+ ),
99
+ nav_button_previous: "absolute left-1",
100
+ nav_button_next: "absolute right-1",
101
+ table: "w-full border-collapse space-y-1",
102
+ head_row: "flex",
103
+ head_cell: "text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]",
104
+ row: "flex w-full mt-2",
105
+ cell: cn(
106
+ "relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md",
107
+ props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
108
+ ),
109
+ day: cn(
110
+ buttonVariants({ variant: "ghost" }),
111
+ "h-8 w-8 p-0 font-normal aria-selected:opacity-100"
112
+ ),
113
+ day_range_start: "day-range-start",
114
+ day_range_end: "day-range-end",
115
+ day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
116
+ day_today: "bg-accent text-accent-foreground",
117
+ day_outside: "day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground",
118
+ day_disabled: "text-muted-foreground opacity-50",
119
+ day_range_middle: "aria-selected:bg-accent aria-selected:text-accent-foreground",
120
+ day_hidden: "invisible",
121
+ ...classNames
122
+ },
123
+ components: {
124
+ IconLeft: () => /* @__PURE__ */ jsxRuntime.jsx(reactIcons.CaretLeftIcon, { className: "h-4 w-4" }),
125
+ IconRight: () => /* @__PURE__ */ jsxRuntime.jsx(reactIcons.CaretRightIcon, { className: "h-4 w-4" })
126
+ },
127
+ ...props
128
+ }
129
+ );
130
+ }
131
+ Calendar.displayName = "Calendar";
132
+
133
+ exports.Calendar = Calendar;
134
+ //# sourceMappingURL=calendar.cjs.map
135
+ //# sourceMappingURL=calendar.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/utils.ts","../../src/ui/button.tsx","../../src/ui/calendar.tsx"],"names":["twMerge","clsx","cva","React","Slot","jsx","DayPicker","CaretLeftIcon","CaretRightIcon"],"mappings":"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","file":"calendar.cjs","sourcesContent":["import { clsx } from \"clsx\";\nimport type { ClassValue } from \"clsx\";\nimport { toast } from \"sonner\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport const cn = (...inputs: ClassValue[]): string => twMerge(clsx(inputs));\n\nexport const capitalize = (str: string) =>\n str?.charAt(0)?.toUpperCase() + str?.slice(1);\n\nexport const handleError = (error: { message: string }): void => {\n toast.error(error.message);\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../lib/utils\";\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-xl text-sm font-medium focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-[#5A6FC0] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n {\n variants: {\n variant: {\n default:\n \"bg-foreground-primary-medium text-white shadow hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-destructive-foreground hover:bg-destructive/90\",\n outline:\n \"border border-input bg-background hover:bg-secondary hover:text-accent-foreground text-foreground-secondary-heavy\",\n secondary:\n \"bg-background-secondary-light hover:background-secondary-light/40 text-foreground-secondary-heavy\",\n ghost:\n \"text-foreground-secondary-heavy hover:bg-background-secondary-light\",\n link: \"text-text-links hover:bg-background-secondary-light\",\n accent: \"bg-accent nuvia-gradient-1 text-white\",\n },\n size: {\n default: \"h-10 px-4 py-2\",\n xs: \"h-[30px] px-3 rounded-xl text-xs\",\n sm: \"h-9 rounded-xl px-3 text-xs\",\n lg: \"h-12 rounded-xl px-8\",\n icon: \"h-10 w-10 min-w-10\",\n \"icon-xs\": \"h-[30px] w-[30px] min-w-[30px]\",\n \"icon-sm\": \"h-9 w-9 min-w-9\",\n bullet: \"h-8 w-8 min-w-8\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\n","\"use client\";\n\nimport type * as React from \"react\";\nimport { DayPicker } from \"react-day-picker\";\nimport { CaretLeft, CaretRight } from \"@phosphor-icons/react\";\nimport { cn } from \"../lib/utils\";\nimport { buttonVariants } from \"./button\";\nimport { CaretLeftIcon, CaretRightIcon } from \"@radix-ui/react-icons\";\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0\",\n month: \"space-y-4\",\n caption: \"flex justify-center pt-1 relative items-center\",\n caption_label: \"text-sm font-medium\",\n nav: \"space-x-1 flex items-center\",\n nav_button: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\",\n ),\n nav_button_previous: \"absolute left-1\",\n nav_button_next: \"absolute right-1\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex\",\n head_cell:\n \"text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]\",\n row: \"flex w-full mt-2\",\n cell: cn(\n \"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md\",\n props.mode === \"range\"\n ? \"[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md\"\n : \"[&:has([aria-selected])]:rounded-md\",\n ),\n day: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"h-8 w-8 p-0 font-normal aria-selected:opacity-100\",\n ),\n day_range_start: \"day-range-start\",\n day_range_end: \"day-range-end\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside:\n \"day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_range_middle:\n \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: () => <CaretLeftIcon className=\"h-4 w-4\" />,\n IconRight: () => <CaretRightIcon className=\"h-4 w-4\" />,\n }}\n {...props}\n />\n );\n}\nCalendar.displayName = \"Calendar\";\n\nexport { Calendar };\n"]}