@music-vine/cadence 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 (197) hide show
  1. package/README.md +146 -0
  2. package/dist/components/accordion.d.ts +35 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +95 -0
  5. package/dist/components/accordion.js.map +7 -0
  6. package/dist/components/badge.d.ts +14 -0
  7. package/dist/components/badge.d.ts.map +1 -0
  8. package/dist/components/badge.js +78 -0
  9. package/dist/components/badge.js.map +7 -0
  10. package/dist/components/breadcrumb.d.ts +20 -0
  11. package/dist/components/breadcrumb.d.ts.map +1 -0
  12. package/dist/components/breadcrumb.js +98 -0
  13. package/dist/components/breadcrumb.js.map +7 -0
  14. package/dist/components/button.d.ts +47 -0
  15. package/dist/components/button.d.ts.map +1 -0
  16. package/dist/components/button.js +295 -0
  17. package/dist/components/button.js.map +7 -0
  18. package/dist/components/card.d.ts +9 -0
  19. package/dist/components/card.d.ts.map +1 -0
  20. package/dist/components/card.js +65 -0
  21. package/dist/components/card.js.map +7 -0
  22. package/dist/components/carousel-dots.d.ts +9 -0
  23. package/dist/components/carousel-dots.d.ts.map +1 -0
  24. package/dist/components/carousel-dots.js +55 -0
  25. package/dist/components/carousel-dots.js.map +7 -0
  26. package/dist/components/carousel.d.ts +33 -0
  27. package/dist/components/carousel.d.ts.map +1 -0
  28. package/dist/components/carousel.js +217 -0
  29. package/dist/components/carousel.js.map +7 -0
  30. package/dist/components/checkbox.d.ts +13 -0
  31. package/dist/components/checkbox.d.ts.map +1 -0
  32. package/dist/components/checkbox.js +57 -0
  33. package/dist/components/checkbox.js.map +7 -0
  34. package/dist/components/context-menu.d.ts +28 -0
  35. package/dist/components/context-menu.d.ts.map +1 -0
  36. package/dist/components/context-menu.js +154 -0
  37. package/dist/components/context-menu.js.map +7 -0
  38. package/dist/components/dialog.d.ts +20 -0
  39. package/dist/components/dialog.d.ts.map +1 -0
  40. package/dist/components/dialog.js +98 -0
  41. package/dist/components/dialog.js.map +7 -0
  42. package/dist/components/drawer.d.ts +26 -0
  43. package/dist/components/drawer.d.ts.map +1 -0
  44. package/dist/components/drawer.js +133 -0
  45. package/dist/components/drawer.js.map +7 -0
  46. package/dist/components/index.d.ts +35 -0
  47. package/dist/components/index.d.ts.map +1 -0
  48. package/dist/components/index.js +277 -0
  49. package/dist/components/index.js.map +7 -0
  50. package/dist/components/input.d.ts +20 -0
  51. package/dist/components/input.d.ts.map +1 -0
  52. package/dist/components/input.js +174 -0
  53. package/dist/components/input.js.map +7 -0
  54. package/dist/components/label.d.ts +6 -0
  55. package/dist/components/label.d.ts.map +1 -0
  56. package/dist/components/label.js +21 -0
  57. package/dist/components/label.js.map +7 -0
  58. package/dist/components/popover.d.ts +8 -0
  59. package/dist/components/popover.d.ts.map +1 -0
  60. package/dist/components/popover.js +38 -0
  61. package/dist/components/popover.js.map +7 -0
  62. package/dist/components/price-tag.d.ts +11 -0
  63. package/dist/components/price-tag.d.ts.map +1 -0
  64. package/dist/components/price-tag.js +31 -0
  65. package/dist/components/price-tag.js.map +7 -0
  66. package/dist/components/radio-group.d.ts +6 -0
  67. package/dist/components/radio-group.d.ts.map +1 -0
  68. package/dist/components/radio-group.js +84 -0
  69. package/dist/components/radio-group.js.map +7 -0
  70. package/dist/components/scroll-area.d.ts +15 -0
  71. package/dist/components/scroll-area.d.ts.map +1 -0
  72. package/dist/components/scroll-area.js +132 -0
  73. package/dist/components/scroll-area.js.map +7 -0
  74. package/dist/components/select.d.ts +59 -0
  75. package/dist/components/select.d.ts.map +1 -0
  76. package/dist/components/select.js +210 -0
  77. package/dist/components/select.js.map +7 -0
  78. package/dist/components/separator.d.ts +5 -0
  79. package/dist/components/separator.d.ts.map +1 -0
  80. package/dist/components/separator.js +25 -0
  81. package/dist/components/separator.js.map +7 -0
  82. package/dist/components/skeleton.d.ts +10 -0
  83. package/dist/components/skeleton.d.ts.map +1 -0
  84. package/dist/components/skeleton.js +29 -0
  85. package/dist/components/skeleton.js.map +7 -0
  86. package/dist/components/slider.d.ts +15 -0
  87. package/dist/components/slider.d.ts.map +1 -0
  88. package/dist/components/slider.js +95 -0
  89. package/dist/components/slider.js.map +7 -0
  90. package/dist/components/stacking-card.d.ts +54 -0
  91. package/dist/components/stacking-card.d.ts.map +1 -0
  92. package/dist/components/stacking-card.js +636 -0
  93. package/dist/components/stacking-card.js.map +7 -0
  94. package/dist/components/tabs.d.ts +8 -0
  95. package/dist/components/tabs.d.ts.map +1 -0
  96. package/dist/components/tabs.js +48 -0
  97. package/dist/components/tabs.js.map +7 -0
  98. package/dist/components/textarea.d.ts +11 -0
  99. package/dist/components/textarea.d.ts.map +1 -0
  100. package/dist/components/textarea.js +43 -0
  101. package/dist/components/textarea.js.map +7 -0
  102. package/dist/components/toast.d.ts +7 -0
  103. package/dist/components/toast.d.ts.map +1 -0
  104. package/dist/components/toast.js +53 -0
  105. package/dist/components/toast.js.map +7 -0
  106. package/dist/components/toggle-button.d.ts +20 -0
  107. package/dist/components/toggle-button.d.ts.map +1 -0
  108. package/dist/components/toggle-button.js +56 -0
  109. package/dist/components/toggle-button.js.map +7 -0
  110. package/dist/components/typography/heading.d.ts +18 -0
  111. package/dist/components/typography/heading.d.ts.map +1 -0
  112. package/dist/components/typography/heading.js +105 -0
  113. package/dist/components/typography/heading.js.map +7 -0
  114. package/dist/components/typography/index.d.ts +5 -0
  115. package/dist/components/typography/index.d.ts.map +1 -0
  116. package/dist/components/typography/index.js +36 -0
  117. package/dist/components/typography/index.js.map +7 -0
  118. package/dist/components/typography/list.d.ts +17 -0
  119. package/dist/components/typography/list.d.ts.map +1 -0
  120. package/dist/components/typography/list.js +73 -0
  121. package/dist/components/typography/list.js.map +7 -0
  122. package/dist/components/typography/prose.d.ts +5 -0
  123. package/dist/components/typography/prose.d.ts.map +1 -0
  124. package/dist/components/typography/prose.js +50 -0
  125. package/dist/components/typography/prose.js.map +7 -0
  126. package/dist/components/typography/text.d.ts +11 -0
  127. package/dist/components/typography/text.d.ts.map +1 -0
  128. package/dist/components/typography/text.js +38 -0
  129. package/dist/components/typography/text.js.map +7 -0
  130. package/dist/icons/custom/boards-indicator.d.ts +7 -0
  131. package/dist/icons/custom/boards-indicator.d.ts.map +1 -0
  132. package/dist/icons/custom/boards-indicator.js +70 -0
  133. package/dist/icons/custom/boards-indicator.js.map +7 -0
  134. package/dist/icons/custom/download-history.d.ts +6 -0
  135. package/dist/icons/custom/download-history.d.ts.map +1 -0
  136. package/dist/icons/custom/download-history.js +19 -0
  137. package/dist/icons/custom/download-history.js.map +7 -0
  138. package/dist/icons/custom/exclamation-mark-in-octagon.d.ts +6 -0
  139. package/dist/icons/custom/exclamation-mark-in-octagon.d.ts.map +1 -0
  140. package/dist/icons/custom/exclamation-mark-in-octagon.js +57 -0
  141. package/dist/icons/custom/exclamation-mark-in-octagon.js.map +7 -0
  142. package/dist/icons/custom/pin.d.ts +6 -0
  143. package/dist/icons/custom/pin.d.ts.map +1 -0
  144. package/dist/icons/custom/pin.js +28 -0
  145. package/dist/icons/custom/pin.js.map +7 -0
  146. package/dist/icons/custom/premium-star.d.ts +10 -0
  147. package/dist/icons/custom/premium-star.d.ts.map +1 -0
  148. package/dist/icons/custom/premium-star.js +191 -0
  149. package/dist/icons/custom/premium-star.js.map +7 -0
  150. package/dist/icons/custom/social/discord.d.ts +6 -0
  151. package/dist/icons/custom/social/discord.d.ts.map +1 -0
  152. package/dist/icons/custom/social/discord.js +27 -0
  153. package/dist/icons/custom/social/discord.js.map +7 -0
  154. package/dist/icons/custom/social/index.d.ts +4 -0
  155. package/dist/icons/custom/social/index.d.ts.map +1 -0
  156. package/dist/icons/custom/social/index.js +4 -0
  157. package/dist/icons/custom/social/index.js.map +7 -0
  158. package/dist/icons/custom/social/tiktok.d.ts +6 -0
  159. package/dist/icons/custom/social/tiktok.d.ts.map +1 -0
  160. package/dist/icons/custom/social/tiktok.js +27 -0
  161. package/dist/icons/custom/social/tiktok.js.map +7 -0
  162. package/dist/icons/custom/social/twitter-x.d.ts +6 -0
  163. package/dist/icons/custom/social/twitter-x.d.ts.map +1 -0
  164. package/dist/icons/custom/social/twitter-x.js +29 -0
  165. package/dist/icons/custom/social/twitter-x.js.map +7 -0
  166. package/dist/icons/custom/tick-in-circle.d.ts +7 -0
  167. package/dist/icons/custom/tick-in-circle.d.ts.map +1 -0
  168. package/dist/icons/custom/tick-in-circle.js +32 -0
  169. package/dist/icons/custom/tick-in-circle.js.map +7 -0
  170. package/dist/icons/custom/tick-small.d.ts +6 -0
  171. package/dist/icons/custom/tick-small.d.ts.map +1 -0
  172. package/dist/icons/custom/tick-small.js +16 -0
  173. package/dist/icons/custom/tick-small.js.map +7 -0
  174. package/dist/icons/custom/tick.d.ts +3 -0
  175. package/dist/icons/custom/tick.d.ts.map +1 -0
  176. package/dist/icons/custom/tick.js +31 -0
  177. package/dist/icons/custom/tick.js.map +7 -0
  178. package/dist/icons/custom/uppbeat-credit.d.ts +4 -0
  179. package/dist/icons/custom/uppbeat-credit.d.ts.map +1 -0
  180. package/dist/icons/custom/uppbeat-credit.js +55 -0
  181. package/dist/icons/custom/uppbeat-credit.js.map +7 -0
  182. package/dist/icons/index.d.ts +20 -0
  183. package/dist/icons/index.d.ts.map +1 -0
  184. package/dist/icons/index.js +15 -0
  185. package/dist/icons/index.js.map +7 -0
  186. package/dist/index.d.ts +19 -0
  187. package/dist/index.d.ts.map +1 -0
  188. package/dist/index.js +6 -0
  189. package/dist/index.js.map +7 -0
  190. package/dist/lib/utils.d.ts +7 -0
  191. package/dist/lib/utils.d.ts.map +1 -0
  192. package/dist/lib/utils.js +9 -0
  193. package/dist/lib/utils.js.map +7 -0
  194. package/dist/styles/index.css +3 -0
  195. package/dist/styles/storybook.css +14 -0
  196. package/package.json +107 -0
  197. package/tailwind.config.ts +299 -0
package/README.md ADDED
@@ -0,0 +1,146 @@
1
+ # @music-vine/cadence
2
+
3
+ Cadence Design System - UI components and icons for Uppbeat applications.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @music-vine/cadence
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### Components
14
+
15
+ ```tsx
16
+ import { Button, Text, Heading } from '@music-vine/cadence/ui';
17
+
18
+ function App() {
19
+ return (
20
+ <div>
21
+ <Heading>Welcome</Heading>
22
+ <Text>Hello world</Text>
23
+ <Button>Click me</Button>
24
+ </div>
25
+ );
26
+ }
27
+ ```
28
+
29
+ ### Icons
30
+
31
+ ```tsx
32
+ import { Play, Pause, Music } from '@music-vine/cadence/icons';
33
+
34
+ function Player() {
35
+ return (
36
+ <button>
37
+ <Play />
38
+ </button>
39
+ );
40
+ }
41
+ ```
42
+
43
+ ### Toast Notifications
44
+
45
+ ```tsx
46
+ import { toast, Toaster } from '@music-vine/cadence/ui';
47
+
48
+ function App() {
49
+ return (
50
+ <>
51
+ <button onClick={() => toast.success('Success!')}>Show Toast</button>
52
+ <Toaster />
53
+ </>
54
+ );
55
+ }
56
+ ```
57
+
58
+ ## Tailwind Configuration
59
+
60
+ Extend your Tailwind config with the Cadence theme:
61
+
62
+ ```js
63
+ // tailwind.config.js
64
+ import cadenceConfig from '@music-vine/cadence/tailwind.config';
65
+
66
+ export default {
67
+ presets: [cadenceConfig],
68
+ content: [
69
+ './src/**/*.{js,ts,jsx,tsx}',
70
+ './node_modules/@music-vine/cadence/dist/**/*.js',
71
+ ],
72
+ };
73
+ ```
74
+
75
+ ## Available Exports
76
+
77
+ | Export | Description |
78
+ |--------|-------------|
79
+ | `@music-vine/cadence/ui` | React UI components (Button, Text, Card, etc.) |
80
+ | `@music-vine/cadence/icons` | Lucide icons + custom Uppbeat icons |
81
+ | `@music-vine/cadence/styles` | Base CSS styles |
82
+ | `@music-vine/cadence/tailwind.config` | Tailwind CSS preset with Uppbeat theme |
83
+
84
+ ## Components
85
+
86
+ The following components are available:
87
+
88
+ - **Layout**: Card, Separator, ScrollArea
89
+ - **Typography**: Text, Heading
90
+ - **Forms**: Button, Input, Textarea, Checkbox, RadioGroup, Select, Slider, Label
91
+ - **Feedback**: Toast, Badge, Skeleton
92
+ - **Overlay**: Dialog, Drawer, Popover, ContextMenu
93
+ - **Navigation**: Tabs, Accordion, Carousel, Breadcrumb
94
+
95
+ ## Peer Dependencies
96
+
97
+ This package requires React 19+:
98
+
99
+ ```json
100
+ {
101
+ "react": "^19.0.0",
102
+ "react-dom": "^19.0.0"
103
+ }
104
+ ```
105
+
106
+ ## Development
107
+
108
+ ### Local Development
109
+
110
+ For local development within the monorepo, the package is automatically linked via npm workspaces.
111
+
112
+ ```bash
113
+ # Build the package
114
+ npm run build:packages
115
+
116
+ # Watch mode for development
117
+ npm run dev:packages
118
+ ```
119
+
120
+ ### Storybook
121
+
122
+ View and develop components in isolation:
123
+
124
+ ```bash
125
+ cd packages/cadence
126
+ npm run storybook
127
+ ```
128
+
129
+ ### Creating a Release
130
+
131
+ 1. Create a changeset when making changes:
132
+ ```bash
133
+ npx changeset
134
+ ```
135
+
136
+ 2. Select `@music-vine/cadence`, choose semver bump, write summary
137
+
138
+ 3. Commit the changeset file with your changes
139
+
140
+ 4. When merged to develop/main, GitHub Actions will create a release PR
141
+
142
+ 5. Merging the release PR publishes to npm automatically
143
+
144
+ ## License
145
+
146
+ Private package for Music Vine applications.
@@ -0,0 +1,35 @@
1
+ import { Accordion as AccordionPrimitive } from "radix-ui";
2
+ import type * as React from "react";
3
+ type AccordionVariant = "default" | "hc";
4
+ type AccordionItemProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> & {
5
+ variant?: AccordionVariant;
6
+ };
7
+ type AccordionProps = React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root> & {
8
+ variant?: AccordionVariant;
9
+ };
10
+ declare function Accordion({ variant, ...props }: AccordionProps): import("react/jsx-runtime").JSX.Element;
11
+ declare namespace Accordion {
12
+ var displayName: string;
13
+ }
14
+ declare function AccordionItem({ className, variant, ...props }: AccordionItemProps): import("react/jsx-runtime").JSX.Element;
15
+ declare namespace AccordionItem {
16
+ var displayName: string;
17
+ }
18
+ interface AccordionTriggerProps extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {
19
+ variant?: AccordionVariant;
20
+ headerClassName?: string;
21
+ triggerChildrenClassName?: string;
22
+ }
23
+ declare function AccordionTrigger({ className, children, variant, headerClassName, triggerChildrenClassName, ...props }: AccordionTriggerProps): import("react/jsx-runtime").JSX.Element;
24
+ declare namespace AccordionTrigger {
25
+ var displayName: string | undefined;
26
+ }
27
+ interface AccordionContentProps extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> {
28
+ variant?: AccordionVariant;
29
+ }
30
+ declare function AccordionContent({ className, children, variant, ...props }: AccordionContentProps): import("react/jsx-runtime").JSX.Element;
31
+ declare namespace AccordionContent {
32
+ var displayName: string | undefined;
33
+ }
34
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, type AccordionContentProps, type AccordionItemProps, type AccordionProps, type AccordionTriggerProps, type AccordionVariant, };
35
+ //# sourceMappingURL=accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"accordion.d.ts","sourceRoot":"","sources":["../../src/components/accordion.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAGpC,KAAK,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAAC;AAEzC,KAAK,kBAAkB,GAAG,KAAK,CAAC,wBAAwB,CACtD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,GAAG;IACF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,KAAK,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAClD,OAAO,kBAAkB,CAAC,IAAI,CAC/B,GAAG;IACF,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,iBAAS,SAAS,CAAC,EAAE,OAAmB,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAOnE;kBAPQ,SAAS;;;AAWlB,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,kBAAkB,2CAcpB;kBAlBQ,aAAa;;;AAsBtB,UAAU,qBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;IACzE,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,eAAe,EACf,wBAAwB,EACxB,GAAG,KAAK,EACT,EAAE,qBAAqB,2CA6BvB;kBApCQ,gBAAgB;;;AAwCzB,UAAU,qBACR,SAAQ,KAAK,CAAC,wBAAwB,CAAC,OAAO,kBAAkB,CAAC,OAAO,CAAC;IACzE,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,qBAAqB,2CAcvB;kBAnBQ,gBAAgB;;;AAuBzB,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { ChevronDown } from "lucide-react";
3
+ import { Accordion as AccordionPrimitive } from "radix-ui";
4
+ import { cn } from "../lib/utils";
5
+ function Accordion({ variant = "default", ...props }) {
6
+ return /* @__PURE__ */ jsx(
7
+ AccordionPrimitive.Root,
8
+ {
9
+ className: cn(variant === "hc" && "hc-accordion"),
10
+ ...props
11
+ }
12
+ );
13
+ }
14
+ Accordion.displayName = "Accordion";
15
+ function AccordionItem({
16
+ className,
17
+ variant = "default",
18
+ ...props
19
+ }) {
20
+ return /* @__PURE__ */ jsx(
21
+ AccordionPrimitive.Item,
22
+ {
23
+ className: cn(
24
+ variant === "default" ? "border-0 border-gray-150 border-b-1 border-solid bg-transparent transition-colors md:mb-1 dark:border-gray-800 [&:has(:focus-visible)]:ring-2 [&:has(:focus-visible)]:ring-pink-500 [&:has(:focus-visible)]:ring-offset-8 dark:[&:has(:focus-visible)]:ring-offset-gray-950" : "border-0 border-gray-800 border-b-1 border-solid bg-transparent transition-colors [&:has(:focus-visible)]:ring-2 [&:has(:focus-visible)]:ring-pink-500 [&:has(:focus-visible)]:ring-offset-8 [&:has(:focus-visible)]:ring-offset-gray-950 [&:has([data-state='open'])]:border-transparent",
25
+ "last-of-type:border-b-0",
26
+ className
27
+ ),
28
+ "data-variant": variant,
29
+ ...props
30
+ }
31
+ );
32
+ }
33
+ AccordionItem.displayName = "AccordionItem";
34
+ function AccordionTrigger({
35
+ className,
36
+ children,
37
+ variant = "default",
38
+ headerClassName,
39
+ triggerChildrenClassName,
40
+ ...props
41
+ }) {
42
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: cn("flex", headerClassName), children: /* @__PURE__ */ jsx(
43
+ AccordionPrimitive.Trigger,
44
+ {
45
+ className: cn(
46
+ variant === "default" ? "group my-4 flex flex-1 items-center justify-between text-left font-sans font-semibold text-base text-gray-950 transition-all md:my-3 2xl:my-2 2xl:text-lg dark:text-white [&>[data-icon='closed']]:data-[state=closed]:block [&>[data-icon='open']]:data-[state=open]:block [&>[data-icon]]:hidden" : "group my-3 flex flex-1 items-center justify-between text-left font-sans font-semibold text-base text-white transition-all 2xl:text-lg [&>[data-icon='closed']]:data-[state=closed]:block [&>[data-icon='open']]:data-[state=open]:block [&>[data-icon]]:hidden",
47
+ className
48
+ ),
49
+ "data-variant": variant,
50
+ style: { WebkitTapHighlightColor: "transparent" },
51
+ ...props,
52
+ children: /* @__PURE__ */ jsxs(
53
+ "div",
54
+ {
55
+ className: cn(
56
+ "flex flex-1 items-center justify-between gap-1 rounded-sm py-2 font-semibold text-base transition-colors 2xl:text-lg",
57
+ variant === "default" ? "md:px-2 md:hover:bg-gray-50 dark:md:hover:bg-gray-900" : "-my-1 px-2 hover:bg-gray-900",
58
+ triggerChildrenClassName
59
+ ),
60
+ children: [
61
+ children,
62
+ /* @__PURE__ */ jsx(ChevronDown, { className: "w-5 fill-none transition-transform duration-150 group-data-[state=open]:rotate-180" })
63
+ ]
64
+ }
65
+ )
66
+ }
67
+ ) });
68
+ }
69
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
70
+ function AccordionContent({
71
+ className,
72
+ children,
73
+ variant = "default",
74
+ ...props
75
+ }) {
76
+ return /* @__PURE__ */ jsx(
77
+ AccordionPrimitive.Content,
78
+ {
79
+ className: cn(
80
+ variant === "default" ? "overflow-hidden text-left font-sans text-gray-700 text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down md:px-2 2xl:text-base dark:text-gray-200" : "-mx-6 ~px-6/12 overflow-hidden bg-gray-900 pt-6 text-left font-sans text-gray-400 text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down 2xl:text-base"
81
+ ),
82
+ "data-variant": variant,
83
+ ...props,
84
+ children: /* @__PURE__ */ jsx("div", { className: cn("pb-8", className), children })
85
+ }
86
+ );
87
+ }
88
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
89
+ export {
90
+ Accordion,
91
+ AccordionContent,
92
+ AccordionItem,
93
+ AccordionTrigger
94
+ };
95
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/accordion.tsx"],
4
+ "sourcesContent": ["import { ChevronDown } from \"lucide-react\";\nimport { Accordion as AccordionPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\nimport { cn } from \"../lib/utils\";\n\ntype AccordionVariant = \"default\" | \"hc\";\n\ntype AccordionItemProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Item\n> & {\n variant?: AccordionVariant;\n};\n\ntype AccordionProps = React.ComponentPropsWithoutRef<\n typeof AccordionPrimitive.Root\n> & {\n variant?: AccordionVariant;\n};\n\nfunction Accordion({ variant = \"default\", ...props }: AccordionProps) {\n return (\n <AccordionPrimitive.Root\n className={cn(variant === \"hc\" && \"hc-accordion\")}\n {...props}\n />\n );\n}\n\nAccordion.displayName = \"Accordion\";\n\nfunction AccordionItem({\n className,\n variant = \"default\",\n ...props\n}: AccordionItemProps) {\n return (\n <AccordionPrimitive.Item\n className={cn(\n variant === \"default\"\n ? \"border-0 border-gray-150 border-b-1 border-solid bg-transparent transition-colors md:mb-1 dark:border-gray-800 [&:has(:focus-visible)]:ring-2 [&:has(:focus-visible)]:ring-pink-500 [&:has(:focus-visible)]:ring-offset-8 dark:[&:has(:focus-visible)]:ring-offset-gray-950\"\n : \"border-0 border-gray-800 border-b-1 border-solid bg-transparent transition-colors [&:has(:focus-visible)]:ring-2 [&:has(:focus-visible)]:ring-pink-500 [&:has(:focus-visible)]:ring-offset-8 [&:has(:focus-visible)]:ring-offset-gray-950 [&:has([data-state='open'])]:border-transparent\",\n \"last-of-type:border-b-0\",\n className\n )}\n data-variant={variant}\n {...props}\n />\n );\n}\n\nAccordionItem.displayName = \"AccordionItem\";\n\ninterface AccordionTriggerProps\n extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> {\n variant?: AccordionVariant;\n headerClassName?: string;\n triggerChildrenClassName?: string;\n}\n\nfunction AccordionTrigger({\n className,\n children,\n variant = \"default\",\n headerClassName,\n triggerChildrenClassName,\n ...props\n}: AccordionTriggerProps) {\n return (\n <AccordionPrimitive.Header className={cn(\"flex\", headerClassName)}>\n <AccordionPrimitive.Trigger\n className={cn(\n variant === \"default\"\n ? \"group my-4 flex flex-1 items-center justify-between text-left font-sans font-semibold text-base text-gray-950 transition-all md:my-3 2xl:my-2 2xl:text-lg dark:text-white [&>[data-icon='closed']]:data-[state=closed]:block [&>[data-icon='open']]:data-[state=open]:block [&>[data-icon]]:hidden\"\n : \"group my-3 flex flex-1 items-center justify-between text-left font-sans font-semibold text-base text-white transition-all 2xl:text-lg [&>[data-icon='closed']]:data-[state=closed]:block [&>[data-icon='open']]:data-[state=open]:block [&>[data-icon]]:hidden\",\n className\n )}\n data-variant={variant}\n style={{ WebkitTapHighlightColor: \"transparent\" }}\n {...props}\n >\n <div\n className={cn(\n \"flex flex-1 items-center justify-between gap-1 rounded-sm py-2 font-semibold text-base transition-colors 2xl:text-lg\",\n variant === \"default\"\n ? \"md:px-2 md:hover:bg-gray-50 dark:md:hover:bg-gray-900\"\n : \"-my-1 px-2 hover:bg-gray-900\",\n triggerChildrenClassName\n )}\n >\n {children}\n <ChevronDown className=\"w-5 fill-none transition-transform duration-150 group-data-[state=open]:rotate-180\" />\n </div>\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;\n\ninterface AccordionContentProps\n extends React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> {\n variant?: AccordionVariant;\n}\n\nfunction AccordionContent({\n className,\n children,\n variant = \"default\",\n ...props\n}: AccordionContentProps) {\n return (\n <AccordionPrimitive.Content\n className={cn(\n variant === \"default\"\n ? \"overflow-hidden text-left font-sans text-gray-700 text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down md:px-2 2xl:text-base dark:text-gray-200\"\n : \"-mx-6 ~px-6/12 overflow-hidden bg-gray-900 pt-6 text-left font-sans text-gray-400 text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down 2xl:text-base\"\n )}\n data-variant={variant}\n {...props}\n >\n <div className={cn(\"pb-8\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName;\n\nexport {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n type AccordionContentProps,\n type AccordionItemProps,\n type AccordionProps,\n type AccordionTriggerProps,\n type AccordionVariant,\n};\n"],
5
+ "mappings": "AAqBI,cA2DI,YA3DJ;AArBJ,SAAS,mBAAmB;AAC5B,SAAS,aAAa,0BAA0B;AAEhD,SAAS,UAAU;AAgBnB,SAAS,UAAU,EAAE,UAAU,WAAW,GAAG,MAAM,GAAmB;AACpE,SACE;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,WAAW,GAAG,YAAY,QAAQ,cAAc;AAAA,MAC/C,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,UAAU,cAAc;AAExB,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAAuB;AACrB,SACE;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,WAAW;AAAA,QACT,YAAY,YACR,gRACA;AAAA,QACJ;AAAA,QACA;AAAA,MACF;AAAA,MACA,gBAAc;AAAA,MACb,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,cAAc,cAAc;AAS5B,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA0B;AACxB,SACE,oBAAC,mBAAmB,QAAnB,EAA0B,WAAW,GAAG,QAAQ,eAAe,GAC9D;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,WAAW;AAAA,QACT,YAAY,YACR,uSACA;AAAA,QACJ;AAAA,MACF;AAAA,MACA,gBAAc;AAAA,MACd,OAAO,EAAE,yBAAyB,cAAc;AAAA,MAC/C,GAAG;AAAA,MAEJ;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,YACT;AAAA,YACA,YAAY,YACR,0DACA;AAAA,YACJ;AAAA,UACF;AAAA,UAEC;AAAA;AAAA,YACD,oBAAC,eAAY,WAAU,sFAAqF;AAAA;AAAA;AAAA,MAC9G;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,iBAAiB,cAAc,mBAAmB,QAAQ;AAO1D,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAA0B;AACxB,SACE;AAAA,IAAC,mBAAmB;AAAA,IAAnB;AAAA,MACC,WAAW;AAAA,QACT,YAAY,YACR,wMACA;AAAA,MACN;AAAA,MACA,gBAAc;AAAA,MACb,GAAG;AAAA,MAEJ,8BAAC,SAAI,WAAW,GAAG,QAAQ,SAAS,GAAI,UAAS;AAAA;AAAA,EACnD;AAEJ;AAEA,iBAAiB,cAAc,mBAAmB,QAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,14 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import type * as React from "react";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "bold" | "pink" | "white" | "transparent" | "light" | "subtle" | "pinkSecondary" | "contrast" | "success" | "error" | "primary" | "secondary" | "destructive" | "lightPink" | "outline" | "free" | "pink-200" | null | undefined;
5
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | null | undefined;
6
+ shadow?: boolean | null | undefined;
7
+ strong?: boolean | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
9
+ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
10
+ asChild?: boolean;
11
+ }
12
+ declare const Badge: ({ className, variant, size, shadow, strong, asChild, ...props }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
13
+ export { Badge, badgeVariants };
14
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../src/components/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,QAAA,MAAM,aAAa;;;;;8EAwDlB,CAAC;AAEF,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,QAAA,MAAM,KAAK,GAAI,iEAQZ,UAAU,4CAYZ,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,78 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { cva } from "class-variance-authority";
3
+ import { Slot as SlotPrimitive } from "radix-ui";
4
+ import { cn } from "../lib/utils";
5
+ const badgeVariants = cva(
6
+ "inline-flex items-center rounded-full border transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 dark:focus-visible:ring-neutral-300",
7
+ {
8
+ variants: {
9
+ variant: {
10
+ // Matching button variants (without hover/disabled states)
11
+ subtle: "border-1 border-gray-150 border-solid bg-white text-gray-950 dark:border-gray-800 dark:bg-gray-950 dark:text-white",
12
+ pink: "border-1 border-pink-500 border-solid bg-pink-500 text-white",
13
+ pinkSecondary: "border-1 border-pink-50 border-solid bg-pink-50 text-pink-600 dark:border-gray-900 dark:bg-gray-900 dark:text-white",
14
+ bold: "border-gray-950 bg-gray-950 text-white dark:border-white dark:bg-white dark:text-gray-950",
15
+ light: "border-gray-150 bg-gray-100 text-gray-950 dark:border-gray-800 dark:bg-gray-800 dark:text-white",
16
+ transparent: "border-transparent bg-transparent text-gray-950 dark:text-white",
17
+ contrast: "border-white bg-white text-gray-950",
18
+ success: "border-green-500 bg-green-500 text-white dark:border-green-400 dark:bg-green-400",
19
+ error: "border-red-600 bg-red-600 text-white dark:border-red-500 dark:bg-red-500",
20
+ primary: "border-gray-900 bg-gray-900 text-white dark:border-gray-50 dark:bg-gray-50 dark:text-gray-950",
21
+ secondary: "border-gray-150 bg-gray-100 text-gray-950 dark:border-gray-800 dark:bg-gray-800 dark:text-white",
22
+ destructive: "border-red bg-red text-white",
23
+ white: "border-neutral-200 bg-white text-pink-500",
24
+ lightPink: "border-pink-100 bg-pink-50 text-pink-600",
25
+ outline: "border border-gray-200 border-solid bg-transparent text-gray-800 focus-visible:ring-gray-500 dark:border-gray-800 dark:bg-transparent dark:text-white dark:focus-visible:ring-gray-400",
26
+ free: "border-free bg-free text-gray-950",
27
+ "pink-200": "border-pink-100 bg-pink-200 text-pink-500"
28
+ },
29
+ size: {
30
+ default: "h-8 px-4 py-2 leading-8",
31
+ xs: "h-5 gap-1.5 px-2 text-xs leading-5",
32
+ sm: "h-6 px-2.5 text-xs leading-6 2xl:text-sm",
33
+ lg: "h-10 gap-4 px-8 text-lg leading-10",
34
+ icon: "h-8 w-8 leading-8"
35
+ },
36
+ shadow: {
37
+ true: "shadow",
38
+ false: ""
39
+ },
40
+ strong: {
41
+ true: "font-semibold",
42
+ false: ""
43
+ }
44
+ },
45
+ defaultVariants: {
46
+ variant: "bold",
47
+ size: "default",
48
+ shadow: false,
49
+ strong: false
50
+ }
51
+ }
52
+ );
53
+ const Badge = ({
54
+ className,
55
+ variant,
56
+ size,
57
+ shadow,
58
+ strong,
59
+ asChild = false,
60
+ ...props
61
+ }) => {
62
+ const Comp = asChild ? SlotPrimitive.Slot : "div";
63
+ return /* @__PURE__ */ jsx(
64
+ Comp,
65
+ {
66
+ className: cn(
67
+ badgeVariants({ variant, size, shadow, strong }),
68
+ className
69
+ ),
70
+ ...props
71
+ }
72
+ );
73
+ };
74
+ export {
75
+ Badge,
76
+ badgeVariants
77
+ };
78
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/badge.tsx"],
4
+ "sourcesContent": ["import { cva, type VariantProps } from \"class-variance-authority\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-full border transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-950 focus-visible:ring-offset-2 dark:focus-visible:ring-neutral-300\",\n {\n variants: {\n variant: {\n // Matching button variants (without hover/disabled states)\n subtle:\n \"border-1 border-gray-150 border-solid bg-white text-gray-950 dark:border-gray-800 dark:bg-gray-950 dark:text-white\",\n pink: \"border-1 border-pink-500 border-solid bg-pink-500 text-white\",\n pinkSecondary:\n \"border-1 border-pink-50 border-solid bg-pink-50 text-pink-600 dark:border-gray-900 dark:bg-gray-900 dark:text-white\",\n bold: \"border-gray-950 bg-gray-950 text-white dark:border-white dark:bg-white dark:text-gray-950\",\n light:\n \"border-gray-150 bg-gray-100 text-gray-950 dark:border-gray-800 dark:bg-gray-800 dark:text-white\",\n transparent:\n \"border-transparent bg-transparent text-gray-950 dark:text-white\",\n contrast: \"border-white bg-white text-gray-950\",\n success:\n \"border-green-500 bg-green-500 text-white dark:border-green-400 dark:bg-green-400\",\n error:\n \"border-red-600 bg-red-600 text-white dark:border-red-500 dark:bg-red-500\",\n primary:\n \"border-gray-900 bg-gray-900 text-white dark:border-gray-50 dark:bg-gray-50 dark:text-gray-950\",\n secondary:\n \"border-gray-150 bg-gray-100 text-gray-950 dark:border-gray-800 dark:bg-gray-800 dark:text-white\",\n destructive: \"border-red bg-red text-white\",\n white: \"border-neutral-200 bg-white text-pink-500\",\n lightPink: \"border-pink-100 bg-pink-50 text-pink-600\",\n outline:\n \"border border-gray-200 border-solid bg-transparent text-gray-800 focus-visible:ring-gray-500 dark:border-gray-800 dark:bg-transparent dark:text-white dark:focus-visible:ring-gray-400\",\n free: \"border-free bg-free text-gray-950\",\n \"pink-200\": \"border-pink-100 bg-pink-200 text-pink-500\",\n },\n size: {\n default: \"h-8 px-4 py-2 leading-8\",\n xs: \"h-5 gap-1.5 px-2 text-xs leading-5\",\n sm: \"h-6 px-2.5 text-xs leading-6 2xl:text-sm\",\n lg: \"h-10 gap-4 px-8 text-lg leading-10\",\n icon: \"h-8 w-8 leading-8\",\n },\n shadow: {\n true: \"shadow\",\n false: \"\",\n },\n strong: {\n true: \"font-semibold\",\n false: \"\",\n },\n },\n defaultVariants: {\n variant: \"bold\",\n size: \"default\",\n shadow: false,\n strong: false,\n },\n }\n);\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {\n asChild?: boolean;\n}\n\nconst Badge = ({\n className,\n variant,\n size,\n shadow,\n strong,\n asChild = false,\n ...props\n}: BadgeProps) => {\n const Comp = asChild ? SlotPrimitive.Slot : \"div\";\n\n return (\n <Comp\n className={cn(\n badgeVariants({ variant, size, shadow, strong }),\n className\n )}\n {...props}\n />\n );\n};\n\nexport { Badge, badgeVariants };\n"],
5
+ "mappings": "AAkFI;AAlFJ,SAAS,WAA8B;AACvC,SAAS,QAAQ,qBAAqB;AAGtC,SAAS,UAAU;AAEnB,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA;AAAA,QAEP,QACE;AAAA,QACF,MAAM;AAAA,QACN,eACE;AAAA,QACF,MAAM;AAAA,QACN,OACE;AAAA,QACF,aACE;AAAA,QACF,UAAU;AAAA,QACV,SACE;AAAA,QACF,OACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,aAAa;AAAA,QACb,OAAO;AAAA,QACP,WAAW;AAAA,QACX,SACE;AAAA,QACF,MAAM;AAAA,QACN,YAAY;AAAA,MACd;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AACF;AAQA,MAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,MAAkB;AAChB,QAAM,OAAO,UAAU,cAAc,OAAO;AAE5C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT,cAAc,EAAE,SAAS,MAAM,QAAQ,OAAO,CAAC;AAAA,QAC/C;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,20 @@
1
+ import * as React from "react";
2
+ declare const Breadcrumb: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, "ref"> & {
3
+ separator?: React.ReactNode;
4
+ } & React.RefAttributes<HTMLElement>>;
5
+ declare const BreadcrumbList: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
6
+ declare const BreadcrumbItem: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React.RefAttributes<HTMLLIElement>>;
7
+ declare const BreadcrumbLink: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
8
+ asChild?: boolean;
9
+ } & React.RefAttributes<HTMLAnchorElement>>;
10
+ declare const BreadcrumbPage: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & React.RefAttributes<HTMLSpanElement>>;
11
+ declare const BreadcrumbSeparator: {
12
+ ({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
13
+ displayName: string;
14
+ };
15
+ declare const BreadcrumbEllipsis: {
16
+ ({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
17
+ displayName: string;
18
+ };
19
+ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, };
20
+ //# sourceMappingURL=breadcrumb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.d.ts","sourceRoot":"","sources":["../../src/components/breadcrumb.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,QAAA,MAAM,UAAU;gBAGA,KAAK,CAAC,SAAS;qCAE+C,CAAC;AAI/E,QAAA,MAAM,cAAc,2KAYlB,CAAC;AAIH,QAAA,MAAM,cAAc,kKASlB,CAAC;AAIH,QAAA,MAAM,cAAc;cAGN,OAAO;2CAenB,CAAC;AAIH,QAAA,MAAM,cAAc,sKAalB,CAAC;AAIH,QAAA,MAAM,mBAAmB;wCAItB,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC;;CAS5B,CAAC;AAIF,QAAA,MAAM,kBAAkB;8BAGrB,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC;;CAU9B,CAAC;AAIF,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,GACpB,CAAC"}
@@ -0,0 +1,98 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { ChevronRight, MoreHorizontal } from "lucide-react";
3
+ import { Slot as SlotPrimitive } from "radix-ui";
4
+ import * as React from "react";
5
+ import { cn } from "../lib/utils";
6
+ const Breadcrumb = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { "aria-label": "breadcrumb", ref, ...props }));
7
+ Breadcrumb.displayName = "Breadcrumb";
8
+ const BreadcrumbList = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
9
+ "ol",
10
+ {
11
+ className: cn(
12
+ "flex flex-wrap items-center gap-1 break-words text-neutral-500 text-sm sm:gap-2.5 dark:text-neutral-400",
13
+ className
14
+ ),
15
+ ref,
16
+ ...props
17
+ }
18
+ ));
19
+ BreadcrumbList.displayName = "BreadcrumbList";
20
+ const BreadcrumbItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
21
+ "li",
22
+ {
23
+ className: cn("inline-flex items-center", className),
24
+ ref,
25
+ ...props
26
+ }
27
+ ));
28
+ BreadcrumbItem.displayName = "BreadcrumbItem";
29
+ const BreadcrumbLink = React.forwardRef(({ asChild, className, ...props }, ref) => {
30
+ const Comp = asChild ? SlotPrimitive.Slot : "a";
31
+ return /* @__PURE__ */ jsx(
32
+ Comp,
33
+ {
34
+ className: cn(
35
+ "transition-colors hover:text-neutral-950 dark:hover:text-neutral-50",
36
+ className
37
+ ),
38
+ ref,
39
+ ...props
40
+ }
41
+ );
42
+ });
43
+ BreadcrumbLink.displayName = "BreadcrumbLink";
44
+ const BreadcrumbPage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
45
+ "span",
46
+ {
47
+ "aria-current": "page",
48
+ className: cn(
49
+ "font-normal text-neutral-950 dark:text-neutral-50",
50
+ className
51
+ ),
52
+ ref,
53
+ ...props
54
+ }
55
+ ));
56
+ BreadcrumbPage.displayName = "BreadcrumbPage";
57
+ const BreadcrumbSeparator = ({
58
+ children,
59
+ className,
60
+ ...props
61
+ }) => /* @__PURE__ */ jsx(
62
+ "li",
63
+ {
64
+ "aria-hidden": "true",
65
+ className: cn("[&>svg]:h-3.5 [&>svg]:w-3.5", className),
66
+ role: "presentation",
67
+ ...props,
68
+ children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
69
+ }
70
+ );
71
+ BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
72
+ const BreadcrumbEllipsis = ({
73
+ className,
74
+ ...props
75
+ }) => /* @__PURE__ */ jsxs(
76
+ "span",
77
+ {
78
+ "aria-hidden": "true",
79
+ className: cn("flex h-9 w-9 items-center justify-center", className),
80
+ role: "presentation",
81
+ ...props,
82
+ children: [
83
+ /* @__PURE__ */ jsx(MoreHorizontal, { className: "h-4 w-4" }),
84
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
85
+ ]
86
+ }
87
+ );
88
+ BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
89
+ export {
90
+ Breadcrumb,
91
+ BreadcrumbEllipsis,
92
+ BreadcrumbItem,
93
+ BreadcrumbLink,
94
+ BreadcrumbList,
95
+ BreadcrumbPage,
96
+ BreadcrumbSeparator
97
+ };
98
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/breadcrumb.tsx"],
4
+ "sourcesContent": ["import { ChevronRight, MoreHorizontal } from \"lucide-react\";\nimport { Slot as SlotPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\n\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 aria-label=\"breadcrumb\" ref={ref} {...props} />);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n className={cn(\n \"flex flex-wrap items-center gap-1 break-words text-neutral-500 text-sm sm:gap-2.5 dark:text-neutral-400\",\n className\n )}\n ref={ref}\n {...props}\n />\n));\n\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n className={cn(\"inline-flex items-center\", className)}\n ref={ref}\n {...props}\n />\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 ? SlotPrimitive.Slot : \"a\";\n\n return (\n <Comp\n className={cn(\n \"transition-colors hover:text-neutral-950 dark:hover:text-neutral-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n );\n});\n\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n aria-current=\"page\"\n className={cn(\n \"font-normal text-neutral-950 dark:text-neutral-50\",\n className\n )}\n ref={ref}\n {...props}\n />\n));\n\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:h-3.5 [&>svg]:w-3.5\", className)}\n role=\"presentation\"\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\n\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n role=\"presentation\"\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\n\nBreadcrumbEllipsis.displayName = \"BreadcrumbEllipsis\";\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n"],
5
+ "mappings": "AAWyB,cA6FvB,YA7FuB;AAXzB,SAAS,cAAc,sBAAsB;AAC7C,SAAS,QAAQ,qBAAqB;AACtC,YAAY,WAAW;AAEvB,SAAS,UAAU;AAEnB,MAAM,aAAa,MAAM,WAKvB,CAAC,EAAE,GAAG,MAAM,GAAG,QAAQ,oBAAC,SAAI,cAAW,cAAa,KAAW,GAAG,OAAO,CAAE;AAE7E,WAAW,cAAc;AAEzB,MAAM,iBAAiB,MAAM,WAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,eAAe,cAAc;AAE7B,MAAM,iBAAiB,MAAM,WAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC,WAAW,GAAG,4BAA4B,SAAS;AAAA,IACnD;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,eAAe,cAAc;AAE7B,MAAM,iBAAiB,MAAM,WAK3B,CAAC,EAAE,SAAS,WAAW,GAAG,MAAM,GAAG,QAAQ;AAC3C,QAAM,OAAO,UAAU,cAAc,OAAO;AAE5C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ,CAAC;AAED,eAAe,cAAc;AAE7B,MAAM,iBAAiB,MAAM,WAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAC;AAAA;AAAA,IACC,gBAAa;AAAA,IACb,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACA;AAAA,IACC,GAAG;AAAA;AACN,CACD;AAED,eAAe,cAAc;AAE7B,MAAM,sBAAsB,CAAC;AAAA,EAC3B;AAAA,EACA;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACC,eAAY;AAAA,IACZ,WAAW,GAAG,+BAA+B,SAAS;AAAA,IACtD,MAAK;AAAA,IACJ,GAAG;AAAA,IAEH,sBAAY,oBAAC,gBAAa;AAAA;AAC7B;AAGF,oBAAoB,cAAc;AAElC,MAAM,qBAAqB,CAAC;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,MACE;AAAA,EAAC;AAAA;AAAA,IACC,eAAY;AAAA,IACZ,WAAW,GAAG,4CAA4C,SAAS;AAAA,IACnE,MAAK;AAAA,IACJ,GAAG;AAAA,IAEJ;AAAA,0BAAC,kBAAe,WAAU,WAAU;AAAA,MACpC,oBAAC,UAAK,WAAU,WAAU,kBAAI;AAAA;AAAA;AAChC;AAGF,mBAAmB,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,47 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import { type ButtonHTMLAttributes } from "react";
3
+ type ButtonSize = "default" | "xs" | "sm" | "lg" | "icon" | "xl";
4
+ type ButtonFontSize = "xxs" | "xs" | "sm" | "base" | "lg" | "xl" | null;
5
+ declare const buttonVariants: (props?: ({
6
+ variant?: "bold" | "pink" | "transparent" | "light" | "subtle" | "pinkSecondary" | "contrast" | "success" | "error" | null | undefined;
7
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | "xl" | null | undefined;
8
+ fontSize?: "base" | "xs" | "sm" | "lg" | "xl" | "xxs" | "null" | null | undefined;
9
+ borderRadius?: "default" | "sm" | "rounded" | "full" | null | undefined;
10
+ border?: boolean | null | undefined;
11
+ noFeedback?: boolean | null | undefined;
12
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
13
+ type ResponsiveButtonSize = ButtonSize | {
14
+ default: ButtonSize;
15
+ xxs?: ButtonSize;
16
+ xs?: ButtonSize;
17
+ sm?: ButtonSize;
18
+ md?: ButtonSize;
19
+ lg?: ButtonSize;
20
+ xl?: ButtonSize;
21
+ "2xl"?: ButtonSize;
22
+ };
23
+ type ResponsiveButtonFontSize = Exclude<ButtonFontSize, null> | {
24
+ default?: Exclude<ButtonFontSize, null>;
25
+ xxs?: Exclude<ButtonFontSize, null>;
26
+ xs?: Exclude<ButtonFontSize, null>;
27
+ sm?: Exclude<ButtonFontSize, null>;
28
+ md?: Exclude<ButtonFontSize, null>;
29
+ lg?: Exclude<ButtonFontSize, null>;
30
+ xl?: Exclude<ButtonFontSize, null>;
31
+ "2xl"?: Exclude<ButtonFontSize, null>;
32
+ };
33
+ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement>, Omit<VariantProps<typeof buttonVariants>, "size" | "fontSize"> {
34
+ asChild?: boolean;
35
+ size?: ResponsiveButtonSize;
36
+ fontSize?: ResponsiveButtonFontSize;
37
+ icon?: boolean;
38
+ }
39
+ declare const Button: import("react").ForwardRefExoticComponent<ButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
40
+ declare const loadingVariants: (props?: ({
41
+ size?: "default" | "icon" | "xs" | "sm" | "lg" | "xl" | null | undefined;
42
+ visible?: boolean | null | undefined;
43
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
44
+ declare const Loading: ({ size, visible }: VariantProps<typeof loadingVariants>) => import("react/jsx-runtime").JSX.Element;
45
+ export { Button, buttonVariants, Loading, loadingVariants };
46
+ export type { ResponsiveButtonSize, ButtonSize, ResponsiveButtonFontSize, ButtonFontSize, };
47
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,KAAK,oBAAoB,EAAc,MAAM,OAAO,CAAC;AAwB9D,KAAK,UAAU,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;AAEjE,KAAK,cAAc,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAexE,QAAA,MAAM,cAAc;;;;;;;8EA0FnB,CAAC;AAEF,KAAK,oBAAoB,GACrB,UAAU,GACV;IACE,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,CAAC,EAAE,UAAU,CAAC;IACjB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,EAAE,CAAC,EAAE,UAAU,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB,CAAC;AAEN,KAAK,wBAAwB,GACzB,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,GAC7B;IACE,OAAO,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACpC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;CACvC,CAAC;AAkFN,MAAM,WAAW,WACf,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC,EAC7C,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,QAAA,MAAM,MAAM,2GAoIX,CAAC;AAIF,QAAA,MAAM,eAAe;;;8EAmBnB,CAAC;AAEH,QAAA,MAAM,OAAO,GAAI,mBAAmB,YAAY,CAAC,OAAO,eAAe,CAAC,4CAEvE,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;AAC5D,YAAY,EACV,oBAAoB,EACpB,UAAU,EACV,wBAAwB,EACxB,cAAc,GACf,CAAC"}