@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.
- package/README.md +146 -0
- package/dist/components/accordion.d.ts +35 -0
- package/dist/components/accordion.d.ts.map +1 -0
- package/dist/components/accordion.js +95 -0
- package/dist/components/accordion.js.map +7 -0
- package/dist/components/badge.d.ts +14 -0
- package/dist/components/badge.d.ts.map +1 -0
- package/dist/components/badge.js +78 -0
- package/dist/components/badge.js.map +7 -0
- package/dist/components/breadcrumb.d.ts +20 -0
- package/dist/components/breadcrumb.d.ts.map +1 -0
- package/dist/components/breadcrumb.js +98 -0
- package/dist/components/breadcrumb.js.map +7 -0
- package/dist/components/button.d.ts +47 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/button.js +295 -0
- package/dist/components/button.js.map +7 -0
- package/dist/components/card.d.ts +9 -0
- package/dist/components/card.d.ts.map +1 -0
- package/dist/components/card.js +65 -0
- package/dist/components/card.js.map +7 -0
- package/dist/components/carousel-dots.d.ts +9 -0
- package/dist/components/carousel-dots.d.ts.map +1 -0
- package/dist/components/carousel-dots.js +55 -0
- package/dist/components/carousel-dots.js.map +7 -0
- package/dist/components/carousel.d.ts +33 -0
- package/dist/components/carousel.d.ts.map +1 -0
- package/dist/components/carousel.js +217 -0
- package/dist/components/carousel.js.map +7 -0
- package/dist/components/checkbox.d.ts +13 -0
- package/dist/components/checkbox.d.ts.map +1 -0
- package/dist/components/checkbox.js +57 -0
- package/dist/components/checkbox.js.map +7 -0
- package/dist/components/context-menu.d.ts +28 -0
- package/dist/components/context-menu.d.ts.map +1 -0
- package/dist/components/context-menu.js +154 -0
- package/dist/components/context-menu.js.map +7 -0
- package/dist/components/dialog.d.ts +20 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/dialog.js +98 -0
- package/dist/components/dialog.js.map +7 -0
- package/dist/components/drawer.d.ts +26 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/drawer.js +133 -0
- package/dist/components/drawer.js.map +7 -0
- package/dist/components/index.d.ts +35 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +277 -0
- package/dist/components/index.js.map +7 -0
- package/dist/components/input.d.ts +20 -0
- package/dist/components/input.d.ts.map +1 -0
- package/dist/components/input.js +174 -0
- package/dist/components/input.js.map +7 -0
- package/dist/components/label.d.ts +6 -0
- package/dist/components/label.d.ts.map +1 -0
- package/dist/components/label.js +21 -0
- package/dist/components/label.js.map +7 -0
- package/dist/components/popover.d.ts +8 -0
- package/dist/components/popover.d.ts.map +1 -0
- package/dist/components/popover.js +38 -0
- package/dist/components/popover.js.map +7 -0
- package/dist/components/price-tag.d.ts +11 -0
- package/dist/components/price-tag.d.ts.map +1 -0
- package/dist/components/price-tag.js +31 -0
- package/dist/components/price-tag.js.map +7 -0
- package/dist/components/radio-group.d.ts +6 -0
- package/dist/components/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group.js +84 -0
- package/dist/components/radio-group.js.map +7 -0
- package/dist/components/scroll-area.d.ts +15 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/scroll-area.js +132 -0
- package/dist/components/scroll-area.js.map +7 -0
- package/dist/components/select.d.ts +59 -0
- package/dist/components/select.d.ts.map +1 -0
- package/dist/components/select.js +210 -0
- package/dist/components/select.js.map +7 -0
- package/dist/components/separator.d.ts +5 -0
- package/dist/components/separator.d.ts.map +1 -0
- package/dist/components/separator.js +25 -0
- package/dist/components/separator.js.map +7 -0
- package/dist/components/skeleton.d.ts +10 -0
- package/dist/components/skeleton.d.ts.map +1 -0
- package/dist/components/skeleton.js +29 -0
- package/dist/components/skeleton.js.map +7 -0
- package/dist/components/slider.d.ts +15 -0
- package/dist/components/slider.d.ts.map +1 -0
- package/dist/components/slider.js +95 -0
- package/dist/components/slider.js.map +7 -0
- package/dist/components/stacking-card.d.ts +54 -0
- package/dist/components/stacking-card.d.ts.map +1 -0
- package/dist/components/stacking-card.js +636 -0
- package/dist/components/stacking-card.js.map +7 -0
- package/dist/components/tabs.d.ts +8 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/components/tabs.js +48 -0
- package/dist/components/tabs.js.map +7 -0
- package/dist/components/textarea.d.ts +11 -0
- package/dist/components/textarea.d.ts.map +1 -0
- package/dist/components/textarea.js +43 -0
- package/dist/components/textarea.js.map +7 -0
- package/dist/components/toast.d.ts +7 -0
- package/dist/components/toast.d.ts.map +1 -0
- package/dist/components/toast.js +53 -0
- package/dist/components/toast.js.map +7 -0
- package/dist/components/toggle-button.d.ts +20 -0
- package/dist/components/toggle-button.d.ts.map +1 -0
- package/dist/components/toggle-button.js +56 -0
- package/dist/components/toggle-button.js.map +7 -0
- package/dist/components/typography/heading.d.ts +18 -0
- package/dist/components/typography/heading.d.ts.map +1 -0
- package/dist/components/typography/heading.js +105 -0
- package/dist/components/typography/heading.js.map +7 -0
- package/dist/components/typography/index.d.ts +5 -0
- package/dist/components/typography/index.d.ts.map +1 -0
- package/dist/components/typography/index.js +36 -0
- package/dist/components/typography/index.js.map +7 -0
- package/dist/components/typography/list.d.ts +17 -0
- package/dist/components/typography/list.d.ts.map +1 -0
- package/dist/components/typography/list.js +73 -0
- package/dist/components/typography/list.js.map +7 -0
- package/dist/components/typography/prose.d.ts +5 -0
- package/dist/components/typography/prose.d.ts.map +1 -0
- package/dist/components/typography/prose.js +50 -0
- package/dist/components/typography/prose.js.map +7 -0
- package/dist/components/typography/text.d.ts +11 -0
- package/dist/components/typography/text.d.ts.map +1 -0
- package/dist/components/typography/text.js +38 -0
- package/dist/components/typography/text.js.map +7 -0
- package/dist/icons/custom/boards-indicator.d.ts +7 -0
- package/dist/icons/custom/boards-indicator.d.ts.map +1 -0
- package/dist/icons/custom/boards-indicator.js +70 -0
- package/dist/icons/custom/boards-indicator.js.map +7 -0
- package/dist/icons/custom/download-history.d.ts +6 -0
- package/dist/icons/custom/download-history.d.ts.map +1 -0
- package/dist/icons/custom/download-history.js +19 -0
- package/dist/icons/custom/download-history.js.map +7 -0
- package/dist/icons/custom/exclamation-mark-in-octagon.d.ts +6 -0
- package/dist/icons/custom/exclamation-mark-in-octagon.d.ts.map +1 -0
- package/dist/icons/custom/exclamation-mark-in-octagon.js +57 -0
- package/dist/icons/custom/exclamation-mark-in-octagon.js.map +7 -0
- package/dist/icons/custom/pin.d.ts +6 -0
- package/dist/icons/custom/pin.d.ts.map +1 -0
- package/dist/icons/custom/pin.js +28 -0
- package/dist/icons/custom/pin.js.map +7 -0
- package/dist/icons/custom/premium-star.d.ts +10 -0
- package/dist/icons/custom/premium-star.d.ts.map +1 -0
- package/dist/icons/custom/premium-star.js +191 -0
- package/dist/icons/custom/premium-star.js.map +7 -0
- package/dist/icons/custom/social/discord.d.ts +6 -0
- package/dist/icons/custom/social/discord.d.ts.map +1 -0
- package/dist/icons/custom/social/discord.js +27 -0
- package/dist/icons/custom/social/discord.js.map +7 -0
- package/dist/icons/custom/social/index.d.ts +4 -0
- package/dist/icons/custom/social/index.d.ts.map +1 -0
- package/dist/icons/custom/social/index.js +4 -0
- package/dist/icons/custom/social/index.js.map +7 -0
- package/dist/icons/custom/social/tiktok.d.ts +6 -0
- package/dist/icons/custom/social/tiktok.d.ts.map +1 -0
- package/dist/icons/custom/social/tiktok.js +27 -0
- package/dist/icons/custom/social/tiktok.js.map +7 -0
- package/dist/icons/custom/social/twitter-x.d.ts +6 -0
- package/dist/icons/custom/social/twitter-x.d.ts.map +1 -0
- package/dist/icons/custom/social/twitter-x.js +29 -0
- package/dist/icons/custom/social/twitter-x.js.map +7 -0
- package/dist/icons/custom/tick-in-circle.d.ts +7 -0
- package/dist/icons/custom/tick-in-circle.d.ts.map +1 -0
- package/dist/icons/custom/tick-in-circle.js +32 -0
- package/dist/icons/custom/tick-in-circle.js.map +7 -0
- package/dist/icons/custom/tick-small.d.ts +6 -0
- package/dist/icons/custom/tick-small.d.ts.map +1 -0
- package/dist/icons/custom/tick-small.js +16 -0
- package/dist/icons/custom/tick-small.js.map +7 -0
- package/dist/icons/custom/tick.d.ts +3 -0
- package/dist/icons/custom/tick.d.ts.map +1 -0
- package/dist/icons/custom/tick.js +31 -0
- package/dist/icons/custom/tick.js.map +7 -0
- package/dist/icons/custom/uppbeat-credit.d.ts +4 -0
- package/dist/icons/custom/uppbeat-credit.d.ts.map +1 -0
- package/dist/icons/custom/uppbeat-credit.js +55 -0
- package/dist/icons/custom/uppbeat-credit.js.map +7 -0
- package/dist/icons/index.d.ts +20 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/index.js +15 -0
- package/dist/icons/index.js.map +7 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +7 -0
- package/dist/lib/utils.d.ts +7 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/utils.js.map +7 -0
- package/dist/styles/index.css +3 -0
- package/dist/styles/storybook.css +14 -0
- package/package.json +107 -0
- 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"}
|