@lglab/compose-ui 0.0.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/LICENSE.md +21 -0
- package/README.md +39 -0
- package/dist/components/button.d.ts +20 -0
- package/dist/components/button.d.ts.map +1 -0
- package/dist/components/dialog.d.ts +67 -0
- package/dist/components/dialog.d.ts.map +1 -0
- package/dist/components/drawer.d.ts +72 -0
- package/dist/components/drawer.d.ts.map +1 -0
- package/dist/components/scroll-area.d.ts +34 -0
- package/dist/components/scroll-area.d.ts.map +1 -0
- package/dist/components/tabs.d.ts +38 -0
- package/dist/components/tabs.d.ts.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +589 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/styles/default.css +73 -0
- package/package.json +71 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Compose UI
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
|
|
2
|
+
# @lglab/compose-ui
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
pnpm add @lglab/compose-ui
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
or
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
npm i @lglab/compose-ui
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
or
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
yarn add @lglab/compose-ui
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
or
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
bun add @lglab/compose-ui
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
import { Button } from '@lglab/compose-ui'
|
|
33
|
+
|
|
34
|
+
const Page = () => {
|
|
35
|
+
return (
|
|
36
|
+
<Button>Click</Button>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Button as BaseButton } from '@base-ui/react/button';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
type ButtonVariant = 'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'link';
|
|
4
|
+
type ButtonSize = 'sm' | 'default' | 'lg' | 'icon';
|
|
5
|
+
export type ButtonProps = React.ComponentProps<typeof BaseButton> & {
|
|
6
|
+
/** Visual style variant */
|
|
7
|
+
variant?: ButtonVariant;
|
|
8
|
+
/** Size of the button */
|
|
9
|
+
size?: ButtonSize;
|
|
10
|
+
/** Show loading state */
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
/** Content to show when loading */
|
|
13
|
+
loadingText?: string;
|
|
14
|
+
};
|
|
15
|
+
declare const Button: {
|
|
16
|
+
({ className, variant, size, loading, loadingText, disabled, children, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
displayName: string;
|
|
18
|
+
};
|
|
19
|
+
export { Button };
|
|
20
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../src/components/button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAG5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,KAAK,aAAa,GACd,SAAS,GACT,WAAW,GACX,SAAS,GACT,OAAO,GACP,aAAa,GACb,MAAM,CAAA;AACV,KAAK,UAAU,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAAA;AAmClD,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,GAAG;IAClE,2BAA2B;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,yBAAyB;IACzB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,yBAAyB;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,QAAA,MAAM,MAAM;uFAST,WAAW;;CAiBb,CAAA;AAID,OAAO,EAAE,MAAM,EAAE,CAAA"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Dialog as BaseDialog } from '@base-ui/react/dialog';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type DialogRootProps = React.ComponentProps<typeof BaseDialog.Root>;
|
|
4
|
+
declare const DialogRoot: {
|
|
5
|
+
(props: DialogRootProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
export type DialogTriggerProps = React.ComponentProps<typeof BaseDialog.Trigger> & {
|
|
9
|
+
/** Visual style variant */
|
|
10
|
+
variant?: 'default' | 'secondary' | 'outline' | 'ghost';
|
|
11
|
+
/** Size of the trigger button */
|
|
12
|
+
size?: 'sm' | 'default' | 'lg';
|
|
13
|
+
};
|
|
14
|
+
declare const DialogTrigger: {
|
|
15
|
+
({ className, variant, size, ...props }: DialogTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
export type DialogPortalProps = React.ComponentProps<typeof BaseDialog.Portal>;
|
|
19
|
+
declare const DialogPortal: {
|
|
20
|
+
(props: DialogPortalProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
23
|
+
export type DialogBackdropProps = React.ComponentProps<typeof BaseDialog.Backdrop>;
|
|
24
|
+
declare const DialogBackdrop: {
|
|
25
|
+
({ className, ...props }: DialogBackdropProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
export type DialogPopupProps = React.ComponentProps<typeof BaseDialog.Popup> & {
|
|
29
|
+
/** Size of the dialog popup */
|
|
30
|
+
size?: 'sm' | 'default' | 'lg' | 'xl' | 'full';
|
|
31
|
+
};
|
|
32
|
+
declare const DialogPopup: {
|
|
33
|
+
({ className, size, ...props }: DialogPopupProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
36
|
+
export type DialogTitleProps = React.ComponentProps<typeof BaseDialog.Title>;
|
|
37
|
+
declare const DialogTitle: {
|
|
38
|
+
({ className, ...props }: DialogTitleProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
displayName: string;
|
|
40
|
+
};
|
|
41
|
+
export type DialogDescriptionProps = React.ComponentProps<typeof BaseDialog.Description>;
|
|
42
|
+
declare const DialogDescription: {
|
|
43
|
+
({ className, ...props }: DialogDescriptionProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
export type DialogCloseProps = React.ComponentProps<typeof BaseDialog.Close> & {
|
|
47
|
+
/** Visual style variant */
|
|
48
|
+
variant?: 'default' | 'secondary' | 'outline' | 'ghost';
|
|
49
|
+
/** Size of the close button */
|
|
50
|
+
size?: 'sm' | 'default' | 'lg';
|
|
51
|
+
};
|
|
52
|
+
declare const DialogClose: {
|
|
53
|
+
({ className, variant, size, ...props }: DialogCloseProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
displayName: string;
|
|
55
|
+
};
|
|
56
|
+
export type DialogHeaderProps = React.HTMLAttributes<HTMLDivElement>;
|
|
57
|
+
declare const DialogHeader: {
|
|
58
|
+
({ className, ...props }: DialogHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
displayName: string;
|
|
60
|
+
};
|
|
61
|
+
export type DialogFooterProps = React.HTMLAttributes<HTMLDivElement>;
|
|
62
|
+
declare const DialogFooter: {
|
|
63
|
+
({ className, ...props }: DialogFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
64
|
+
displayName: string;
|
|
65
|
+
};
|
|
66
|
+
export { DialogRoot, DialogTrigger, DialogPortal, DialogBackdrop, DialogPopup, DialogTitle, DialogDescription, DialogClose, DialogHeader, DialogFooter, };
|
|
67
|
+
//# sourceMappingURL=dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../src/components/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;AAE1E,QAAA,MAAM,UAAU;YAAW,eAAe;;CAEzC,CAAA;AAqCD,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IACjF,2BAA2B;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;IACvD,iCAAiC;IACjC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,QAAA,MAAM,aAAa;6CAA4C,kBAAkB;;CAOhF,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAE9E,QAAA,MAAM,YAAY;YAAW,iBAAiB;;CAE7C,CAAA;AAQD,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;AAElF,QAAA,MAAM,cAAc;8BAA6B,mBAAmB;;CAYnE,CAAA;AAmCD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG;IAC7E,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;CAC/C,CAAA;AAED,QAAA,MAAM,WAAW;oCAAmC,gBAAgB;;CAOnE,CAAA;AAQD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;AAE5E,QAAA,MAAM,WAAW;8BAA6B,gBAAgB;;CAO7D,CAAA;AAQD,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;AAExF,QAAA,MAAM,iBAAiB;8BAA6B,sBAAsB;;CAEzE,CAAA;AAqCD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG;IAC7E,2BAA2B;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;IACvD,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,QAAA,MAAM,WAAW;6CAA4C,gBAAgB;;CAO5E,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEpE,QAAA,MAAM,YAAY;8BAA6B,iBAAiB;;CAE/D,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEpE,QAAA,MAAM,YAAY;8BAA6B,iBAAiB;;CAU/D,CAAA;AAQD,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,GACb,CAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Dialog as BaseDialog } from '@base-ui/react/dialog';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type DrawerRootProps = React.ComponentProps<typeof BaseDialog.Root>;
|
|
4
|
+
declare const DrawerRoot: {
|
|
5
|
+
(props: DrawerRootProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
export type DrawerTriggerProps = React.ComponentProps<typeof BaseDialog.Trigger> & {
|
|
9
|
+
/** Visual style variant */
|
|
10
|
+
variant?: 'default' | 'secondary' | 'outline' | 'ghost';
|
|
11
|
+
/** Size of the trigger button */
|
|
12
|
+
size?: 'sm' | 'default' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';
|
|
13
|
+
};
|
|
14
|
+
declare const DrawerTrigger: {
|
|
15
|
+
({ className, variant, size, ...props }: DrawerTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
export type DrawerPortalProps = React.ComponentProps<typeof BaseDialog.Portal>;
|
|
19
|
+
declare const DrawerPortal: {
|
|
20
|
+
(props: DrawerPortalProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
23
|
+
export type DrawerBackdropProps = React.ComponentProps<typeof BaseDialog.Backdrop>;
|
|
24
|
+
declare const DrawerBackdrop: {
|
|
25
|
+
({ className, ...props }: DrawerBackdropProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
export type DrawerPopupProps = React.ComponentProps<typeof BaseDialog.Popup> & {
|
|
29
|
+
/** Side from which the drawer slides in */
|
|
30
|
+
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
31
|
+
};
|
|
32
|
+
declare const DrawerPopup: {
|
|
33
|
+
({ className, side, ...props }: DrawerPopupProps): import("react/jsx-runtime").JSX.Element;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
36
|
+
export type DrawerTitleProps = React.ComponentProps<typeof BaseDialog.Title>;
|
|
37
|
+
declare const DrawerTitle: {
|
|
38
|
+
({ className, ...props }: DrawerTitleProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
displayName: string;
|
|
40
|
+
};
|
|
41
|
+
export type DrawerDescriptionProps = React.ComponentProps<typeof BaseDialog.Description>;
|
|
42
|
+
declare const DrawerDescription: {
|
|
43
|
+
({ className, ...props }: DrawerDescriptionProps): import("react/jsx-runtime").JSX.Element;
|
|
44
|
+
displayName: string;
|
|
45
|
+
};
|
|
46
|
+
export type DrawerCloseProps = React.ComponentProps<typeof BaseDialog.Close> & {
|
|
47
|
+
/** Visual style variant */
|
|
48
|
+
variant?: 'default' | 'secondary' | 'outline' | 'ghost';
|
|
49
|
+
/** Size of the close button */
|
|
50
|
+
size?: 'sm' | 'default' | 'lg' | 'icon' | 'icon-sm' | 'icon-lg';
|
|
51
|
+
};
|
|
52
|
+
declare const DrawerClose: {
|
|
53
|
+
({ className, variant, size, ...props }: DrawerCloseProps): import("react/jsx-runtime").JSX.Element;
|
|
54
|
+
displayName: string;
|
|
55
|
+
};
|
|
56
|
+
export type DrawerHeaderProps = React.HTMLAttributes<HTMLDivElement>;
|
|
57
|
+
declare const DrawerHeader: {
|
|
58
|
+
({ className, ...props }: DrawerHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
59
|
+
displayName: string;
|
|
60
|
+
};
|
|
61
|
+
export type DrawerContentProps = React.HTMLAttributes<HTMLDivElement>;
|
|
62
|
+
declare const DrawerContent: {
|
|
63
|
+
({ className, ...props }: DrawerContentProps): import("react/jsx-runtime").JSX.Element;
|
|
64
|
+
displayName: string;
|
|
65
|
+
};
|
|
66
|
+
export type DrawerFooterProps = React.HTMLAttributes<HTMLDivElement>;
|
|
67
|
+
declare const DrawerFooter: {
|
|
68
|
+
({ className, ...props }: DrawerFooterProps): import("react/jsx-runtime").JSX.Element;
|
|
69
|
+
displayName: string;
|
|
70
|
+
};
|
|
71
|
+
export { DrawerRoot, DrawerTrigger, DrawerPortal, DrawerBackdrop, DrawerPopup, DrawerTitle, DrawerDescription, DrawerClose, DrawerHeader, DrawerContent, DrawerFooter, };
|
|
72
|
+
//# sourceMappingURL=drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../src/components/drawer.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE5D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAA;AAE1E,QAAA,MAAM,UAAU;YAAW,eAAe;;CAEzC,CAAA;AAwCD,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,OAAO,CAAC,GAAG;IACjF,2BAA2B;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;IACvD,iCAAiC;IACjC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAChE,CAAA;AAED,QAAA,MAAM,aAAa;6CAA4C,kBAAkB;;CAOhF,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAA;AAE9E,QAAA,MAAM,YAAY;YAAW,iBAAiB;;CAE7C,CAAA;AAQD,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;AAElF,QAAA,MAAM,cAAc;8BAA6B,mBAAmB;;CAYnE,CAAA;AA+CD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG;IAC7E,2CAA2C;IAC3C,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;CAC3C,CAAA;AAED,QAAA,MAAM,WAAW;oCAAmC,gBAAgB;;CAOnE,CAAA;AAQD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAA;AAE5E,QAAA,MAAM,WAAW;8BAA6B,gBAAgB;;CAO7D,CAAA;AAQD,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,WAAW,CAAC,CAAA;AAExF,QAAA,MAAM,iBAAiB;8BAA6B,sBAAsB;;CAEzE,CAAA;AAwCD,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG;IAC7E,2BAA2B;IAC3B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,OAAO,CAAA;IACvD,+BAA+B;IAC/B,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAA;CAChE,CAAA;AAED,QAAA,MAAM,WAAW;6CAA4C,gBAAgB;;CAO5E,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEpE,QAAA,MAAM,YAAY;8BAA6B,iBAAiB;;CAE/D,CAAA;AAQD,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAErE,QAAA,MAAM,aAAa;8BAA6B,kBAAkB;;CAEjE,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA;AAEpE,QAAA,MAAM,YAAY;8BAA6B,iBAAiB;;CAE/D,CAAA;AAQD,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,GACb,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ScrollArea as BaseScrollArea } from '@base-ui/react/scroll-area';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type ScrollAreaRootProps = React.ComponentProps<typeof BaseScrollArea.Root>;
|
|
4
|
+
declare const ScrollAreaRoot: {
|
|
5
|
+
({ className, ...props }: ScrollAreaRootProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
export type ScrollAreaViewportProps = React.ComponentProps<typeof BaseScrollArea.Viewport>;
|
|
9
|
+
declare const ScrollAreaViewport: {
|
|
10
|
+
({ className, ...props }: ScrollAreaViewportProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
displayName: string;
|
|
12
|
+
};
|
|
13
|
+
export type ScrollAreaContentProps = React.ComponentProps<typeof BaseScrollArea.Content>;
|
|
14
|
+
declare const ScrollAreaContent: {
|
|
15
|
+
({ className, ...props }: ScrollAreaContentProps): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
displayName: string;
|
|
17
|
+
};
|
|
18
|
+
export type ScrollAreaScrollbarProps = React.ComponentProps<typeof BaseScrollArea.Scrollbar>;
|
|
19
|
+
declare const ScrollAreaScrollbar: {
|
|
20
|
+
({ className, orientation, ...props }: ScrollAreaScrollbarProps): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
displayName: string;
|
|
22
|
+
};
|
|
23
|
+
export type ScrollAreaThumbProps = React.ComponentProps<typeof BaseScrollArea.Thumb>;
|
|
24
|
+
declare const ScrollAreaThumb: {
|
|
25
|
+
({ className, ...props }: ScrollAreaThumbProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
displayName: string;
|
|
27
|
+
};
|
|
28
|
+
export type ScrollAreaCornerProps = React.ComponentProps<typeof BaseScrollArea.Corner>;
|
|
29
|
+
declare const ScrollAreaCorner: {
|
|
30
|
+
({ className, ...props }: ScrollAreaCornerProps): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
displayName: string;
|
|
32
|
+
};
|
|
33
|
+
export { ScrollAreaRoot, ScrollAreaViewport, ScrollAreaContent, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaCorner, };
|
|
34
|
+
//# sourceMappingURL=scroll-area.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../src/components/scroll-area.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAA;AACzE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAA;AAElF,QAAA,MAAM,cAAc;8BAA6B,mBAAmB;;CAEnE,CAAA;AAID,MAAM,MAAM,uBAAuB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;AAE1F,QAAA,MAAM,kBAAkB;8BAA6B,uBAAuB;;CAO3E,CAAA;AAID,MAAM,MAAM,sBAAsB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,CAAC,CAAA;AAExF,QAAA,MAAM,iBAAiB;8BAA6B,sBAAsB;;CAEzE,CAAA;AAID,MAAM,MAAM,wBAAwB,GAAG,KAAK,CAAC,cAAc,CACzD,OAAO,cAAc,CAAC,SAAS,CAChC,CAAA;AAED,QAAA,MAAM,mBAAmB;2CAItB,wBAAwB;;CAc1B,CAAA;AAID,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;AAEpF,QAAA,MAAM,eAAe;8BAA6B,oBAAoB;;CAWrE,CAAA;AAID,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,MAAM,CAAC,CAAA;AAEtF,QAAA,MAAM,gBAAgB;8BAA6B,qBAAqB;;CAEvE,CAAA;AAID,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Tabs as BaseTabs } from '@base-ui/react/tabs';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type TabsRootProps = React.ComponentProps<typeof BaseTabs.Root>;
|
|
4
|
+
declare const TabsRoot: {
|
|
5
|
+
({ className, ...props }: TabsRootProps): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
8
|
+
export type TabsListProps = React.ComponentProps<typeof BaseTabs.List> & {
|
|
9
|
+
/** Orientation of the tabs list */
|
|
10
|
+
orientation?: 'horizontal' | 'vertical';
|
|
11
|
+
};
|
|
12
|
+
declare const TabsList: {
|
|
13
|
+
({ className, orientation, ...props }: TabsListProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
16
|
+
export type TabsTabProps = React.ComponentProps<typeof BaseTabs.Tab> & {
|
|
17
|
+
/** Size of the tab */
|
|
18
|
+
size?: 'sm' | 'default' | 'lg';
|
|
19
|
+
};
|
|
20
|
+
declare const TabsTab: {
|
|
21
|
+
({ className, size, ...props }: TabsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
displayName: string;
|
|
23
|
+
};
|
|
24
|
+
export type TabsIndicatorProps = React.ComponentProps<typeof BaseTabs.Indicator> & {
|
|
25
|
+
/** Orientation of the indicator (should match the tabs list orientation) */
|
|
26
|
+
orientation?: 'horizontal' | 'vertical';
|
|
27
|
+
};
|
|
28
|
+
declare const TabsIndicator: {
|
|
29
|
+
({ className, orientation, ...props }: TabsIndicatorProps): import("react/jsx-runtime").JSX.Element;
|
|
30
|
+
displayName: string;
|
|
31
|
+
};
|
|
32
|
+
export type TabsPanelProps = React.ComponentProps<typeof BaseTabs.Panel>;
|
|
33
|
+
declare const TabsPanel: {
|
|
34
|
+
({ className, ...props }: TabsPanelProps): import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
displayName: string;
|
|
36
|
+
};
|
|
37
|
+
export { TabsRoot, TabsList, TabsTab, TabsIndicator, TabsPanel };
|
|
38
|
+
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/components/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAQ9B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEtE,QAAA,MAAM,QAAQ;8BAA6B,aAAa;;CAEvD,CAAA;AAuBD,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG;IACvE,mCAAmC;IACnC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC,CAAA;AAED,QAAA,MAAM,QAAQ;2CAAyD,aAAa;;CAOnF,CAAA;AAiCD,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG;IACrE,sBAAsB;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,QAAA,MAAM,OAAO;oCAAmC,YAAY;;CAE3D,CAAA;AAyBD,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,SAAS,CAAC,GAAG;IACjF,4EAA4E;IAC5E,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC,CAAA;AAED,QAAA,MAAM,aAAa;2CAIhB,kBAAkB;;CAOpB,CAAA;AAQD,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;AAExE,QAAA,MAAM,SAAS;8BAA6B,cAAc;;CAWzD,CAAA;AAQD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Button } from './components/button';
|
|
2
|
+
export { ScrollAreaRoot, ScrollAreaViewport, ScrollAreaContent, ScrollAreaScrollbar, ScrollAreaThumb, ScrollAreaCorner, } from './components/scroll-area';
|
|
3
|
+
export { TabsRoot, TabsList, TabsTab, TabsIndicator, TabsPanel } from './components/tabs';
|
|
4
|
+
export { DialogRoot, DialogTrigger, DialogPortal, DialogBackdrop, DialogPopup, DialogTitle, DialogDescription, DialogClose, DialogHeader, DialogFooter, } from './components/dialog';
|
|
5
|
+
export { DrawerRoot, DrawerTrigger, DrawerPortal, DrawerBackdrop, DrawerPopup, DrawerTitle, DrawerDescription, DrawerClose, DrawerHeader, DrawerContent, DrawerFooter, } from './components/drawer';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,gBAAgB,GACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAA"}
|
package/dist/index.es.js
ADDED
|
@@ -0,0 +1,589 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as a, jsxs as w, Fragment as N } from "react/jsx-runtime";
|
|
3
|
+
import { Button as D } from "@base-ui/react/button";
|
|
4
|
+
import { cva as i } from "class-variance-authority";
|
|
5
|
+
import { clsx as k } from "clsx";
|
|
6
|
+
import { twMerge as z } from "tailwind-merge";
|
|
7
|
+
import { forwardRef as b, createElement as m } from "react";
|
|
8
|
+
import { ScrollArea as d } from "@base-ui/react/scroll-area";
|
|
9
|
+
import { Tabs as u } from "@base-ui/react/tabs";
|
|
10
|
+
import { Dialog as s } from "@base-ui/react/dialog";
|
|
11
|
+
const T = (e) => e.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase(), C = (e) => e.replace(
|
|
12
|
+
/^([A-Z])|[\s-_]+(\w)/g,
|
|
13
|
+
(r, t, n) => n ? n.toUpperCase() : t.toLowerCase()
|
|
14
|
+
), f = (e) => {
|
|
15
|
+
const r = C(e);
|
|
16
|
+
return r.charAt(0).toUpperCase() + r.slice(1);
|
|
17
|
+
}, v = (...e) => e.filter((r, t, n) => !!r && r.trim() !== "" && n.indexOf(r) === t).join(" ").trim(), V = (e) => {
|
|
18
|
+
for (const r in e)
|
|
19
|
+
if (r.startsWith("aria-") || r === "role" || r === "title")
|
|
20
|
+
return !0;
|
|
21
|
+
};
|
|
22
|
+
var A = {
|
|
23
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
24
|
+
width: 24,
|
|
25
|
+
height: 24,
|
|
26
|
+
viewBox: "0 0 24 24",
|
|
27
|
+
fill: "none",
|
|
28
|
+
stroke: "currentColor",
|
|
29
|
+
strokeWidth: 2,
|
|
30
|
+
strokeLinecap: "round",
|
|
31
|
+
strokeLinejoin: "round"
|
|
32
|
+
};
|
|
33
|
+
const P = b(
|
|
34
|
+
({
|
|
35
|
+
color: e = "currentColor",
|
|
36
|
+
size: r = 24,
|
|
37
|
+
strokeWidth: t = 2,
|
|
38
|
+
absoluteStrokeWidth: n,
|
|
39
|
+
className: c = "",
|
|
40
|
+
children: l,
|
|
41
|
+
iconNode: g,
|
|
42
|
+
...p
|
|
43
|
+
}, y) => m(
|
|
44
|
+
"svg",
|
|
45
|
+
{
|
|
46
|
+
ref: y,
|
|
47
|
+
...A,
|
|
48
|
+
width: r,
|
|
49
|
+
height: r,
|
|
50
|
+
stroke: e,
|
|
51
|
+
strokeWidth: n ? Number(t) * 24 / Number(r) : t,
|
|
52
|
+
className: v("lucide", c),
|
|
53
|
+
...!l && !V(p) && { "aria-hidden": "true" },
|
|
54
|
+
...p
|
|
55
|
+
},
|
|
56
|
+
[
|
|
57
|
+
...g.map(([h, x]) => m(h, x)),
|
|
58
|
+
...Array.isArray(l) ? l : [l]
|
|
59
|
+
]
|
|
60
|
+
)
|
|
61
|
+
);
|
|
62
|
+
const S = (e, r) => {
|
|
63
|
+
const t = b(
|
|
64
|
+
({ className: n, ...c }, l) => m(P, {
|
|
65
|
+
ref: l,
|
|
66
|
+
iconNode: r,
|
|
67
|
+
className: v(
|
|
68
|
+
`lucide-${T(f(e))}`,
|
|
69
|
+
`lucide-${e}`,
|
|
70
|
+
n
|
|
71
|
+
),
|
|
72
|
+
...c
|
|
73
|
+
})
|
|
74
|
+
);
|
|
75
|
+
return t.displayName = f(e), t;
|
|
76
|
+
};
|
|
77
|
+
const R = [["path", { d: "M21 12a9 9 0 1 1-6.219-8.56", key: "13zald" }]], B = S("loader-circle", R);
|
|
78
|
+
function o(...e) {
|
|
79
|
+
return z(k(e));
|
|
80
|
+
}
|
|
81
|
+
const j = i(
|
|
82
|
+
// Base styles
|
|
83
|
+
[
|
|
84
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
|
|
85
|
+
],
|
|
86
|
+
{
|
|
87
|
+
variants: {
|
|
88
|
+
variant: {
|
|
89
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
90
|
+
destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
91
|
+
outline: "border border-border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
|
|
92
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
93
|
+
ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
|
|
94
|
+
link: "text-primary underline-offset-4 hover:underline"
|
|
95
|
+
},
|
|
96
|
+
size: {
|
|
97
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
98
|
+
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
99
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
100
|
+
icon: "size-9",
|
|
101
|
+
"icon-sm": "size-8",
|
|
102
|
+
"icon-lg": "size-10"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
defaultVariants: {
|
|
106
|
+
variant: "default",
|
|
107
|
+
size: "default"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
), L = ({
|
|
111
|
+
className: e,
|
|
112
|
+
variant: r,
|
|
113
|
+
size: t,
|
|
114
|
+
loading: n = !1,
|
|
115
|
+
loadingText: c,
|
|
116
|
+
disabled: l,
|
|
117
|
+
children: g,
|
|
118
|
+
...p
|
|
119
|
+
}) => /* @__PURE__ */ a(
|
|
120
|
+
D,
|
|
121
|
+
{
|
|
122
|
+
className: o(j({ variant: r, size: t }), e),
|
|
123
|
+
disabled: l || n,
|
|
124
|
+
...p,
|
|
125
|
+
children: n ? /* @__PURE__ */ w(N, { children: [
|
|
126
|
+
/* @__PURE__ */ a(B, { className: "animate-spin" }),
|
|
127
|
+
c ?? g
|
|
128
|
+
] }) : g
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
L.displayName = "Button";
|
|
132
|
+
const I = ({ className: e, ...r }) => /* @__PURE__ */ a(d.Root, { className: o("relative", e), ...r });
|
|
133
|
+
I.displayName = "ScrollArea.Root";
|
|
134
|
+
const _ = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
135
|
+
d.Viewport,
|
|
136
|
+
{
|
|
137
|
+
className: o("h-full overscroll-contain pr-3", e),
|
|
138
|
+
...r
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
_.displayName = "ScrollArea.Viewport";
|
|
142
|
+
const F = ({ className: e, ...r }) => /* @__PURE__ */ a(d.Content, { className: o("min-w-full", e), ...r });
|
|
143
|
+
F.displayName = "ScrollArea.Content";
|
|
144
|
+
const $ = ({
|
|
145
|
+
className: e,
|
|
146
|
+
orientation: r = "vertical",
|
|
147
|
+
...t
|
|
148
|
+
}) => /* @__PURE__ */ a(
|
|
149
|
+
d.Scrollbar,
|
|
150
|
+
{
|
|
151
|
+
className: o(
|
|
152
|
+
"flex touch-none select-none p-0.5 transition-colors duration-150 ease-out",
|
|
153
|
+
"data-hovering:bg-muted/50",
|
|
154
|
+
r === "vertical" && "h-full w-2.5",
|
|
155
|
+
r === "horizontal" && "h-2.5 w-full flex-col",
|
|
156
|
+
e
|
|
157
|
+
),
|
|
158
|
+
orientation: r,
|
|
159
|
+
...t
|
|
160
|
+
}
|
|
161
|
+
);
|
|
162
|
+
$.displayName = "ScrollArea.Scrollbar";
|
|
163
|
+
const H = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
164
|
+
d.Thumb,
|
|
165
|
+
{
|
|
166
|
+
className: o(
|
|
167
|
+
"relative flex-1 rounded-full bg-border transition-colors",
|
|
168
|
+
"hover:bg-muted-foreground/50",
|
|
169
|
+
e
|
|
170
|
+
),
|
|
171
|
+
...r
|
|
172
|
+
}
|
|
173
|
+
);
|
|
174
|
+
H.displayName = "ScrollArea.Thumb";
|
|
175
|
+
const M = ({ className: e, ...r }) => /* @__PURE__ */ a(d.Corner, { className: o("bg-muted/50", e), ...r });
|
|
176
|
+
M.displayName = "ScrollArea.Corner";
|
|
177
|
+
const U = ({ className: e, ...r }) => /* @__PURE__ */ a(u.Root, { className: o("flex flex-col", e), ...r });
|
|
178
|
+
U.displayName = "Tabs.Root";
|
|
179
|
+
const W = i(
|
|
180
|
+
["relative inline-flex w-fit items-center gap-1", "rounded-lg bg-muted p-1"],
|
|
181
|
+
{
|
|
182
|
+
variants: {
|
|
183
|
+
orientation: {
|
|
184
|
+
horizontal: "flex-row",
|
|
185
|
+
vertical: "flex-col"
|
|
186
|
+
}
|
|
187
|
+
},
|
|
188
|
+
defaultVariants: {
|
|
189
|
+
orientation: "horizontal"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
), Z = ({ className: e, orientation: r = "horizontal", ...t }) => /* @__PURE__ */ a(
|
|
193
|
+
u.List,
|
|
194
|
+
{
|
|
195
|
+
className: o(W({ orientation: r }), e),
|
|
196
|
+
...t
|
|
197
|
+
}
|
|
198
|
+
);
|
|
199
|
+
Z.displayName = "Tabs.List";
|
|
200
|
+
const E = i(
|
|
201
|
+
[
|
|
202
|
+
"relative z-10 inline-flex items-center justify-center whitespace-nowrap",
|
|
203
|
+
"rounded-md px-3 py-1.5 text-sm font-medium",
|
|
204
|
+
"transition-all duration-200",
|
|
205
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
206
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-70",
|
|
207
|
+
"text-foreground/80",
|
|
208
|
+
"data-[active]:text-foreground",
|
|
209
|
+
"hover:text-foreground"
|
|
210
|
+
],
|
|
211
|
+
{
|
|
212
|
+
variants: {
|
|
213
|
+
size: {
|
|
214
|
+
sm: "px-2 py-1 text-xs",
|
|
215
|
+
default: "px-3 py-1.5 text-sm",
|
|
216
|
+
lg: "px-4 py-2 text-base"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
defaultVariants: {
|
|
220
|
+
size: "default"
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
), K = ({ className: e, size: r, ...t }) => /* @__PURE__ */ a(u.Tab, { className: o(E({ size: r }), e), ...t });
|
|
224
|
+
K.displayName = "Tabs.Tab";
|
|
225
|
+
const O = i(
|
|
226
|
+
["absolute rounded-md bg-background shadow-sm", "transition-all duration-200 ease-out"],
|
|
227
|
+
{
|
|
228
|
+
variants: {
|
|
229
|
+
orientation: {
|
|
230
|
+
horizontal: "bottom-1 top-1 left-[var(--active-tab-left)] w-[var(--active-tab-width)]",
|
|
231
|
+
vertical: "left-1 right-1 top-[var(--active-tab-top)] h-[var(--active-tab-height)]"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
defaultVariants: {
|
|
235
|
+
orientation: "horizontal"
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
), q = ({
|
|
239
|
+
className: e,
|
|
240
|
+
orientation: r = "horizontal",
|
|
241
|
+
...t
|
|
242
|
+
}) => /* @__PURE__ */ a(
|
|
243
|
+
u.Indicator,
|
|
244
|
+
{
|
|
245
|
+
className: o(O({ orientation: r }), e),
|
|
246
|
+
...t
|
|
247
|
+
}
|
|
248
|
+
);
|
|
249
|
+
q.displayName = "Tabs.Indicator";
|
|
250
|
+
const G = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
251
|
+
u.Panel,
|
|
252
|
+
{
|
|
253
|
+
className: o(
|
|
254
|
+
"mt-2 ring-offset-background",
|
|
255
|
+
"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
256
|
+
e
|
|
257
|
+
),
|
|
258
|
+
...r
|
|
259
|
+
}
|
|
260
|
+
);
|
|
261
|
+
G.displayName = "Tabs.Panel";
|
|
262
|
+
const J = (e) => /* @__PURE__ */ a(s.Root, { ...e });
|
|
263
|
+
J.displayName = "Dialog.Root";
|
|
264
|
+
const Q = i(
|
|
265
|
+
[
|
|
266
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium",
|
|
267
|
+
"transition-all",
|
|
268
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
269
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
270
|
+
],
|
|
271
|
+
{
|
|
272
|
+
variants: {
|
|
273
|
+
variant: {
|
|
274
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
275
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
276
|
+
outline: "border border-border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
|
|
277
|
+
ghost: "hover:bg-accent hover:text-accent-foreground"
|
|
278
|
+
},
|
|
279
|
+
size: {
|
|
280
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
281
|
+
default: "h-9 px-4 py-2",
|
|
282
|
+
lg: "h-10 rounded-md px-6"
|
|
283
|
+
}
|
|
284
|
+
},
|
|
285
|
+
defaultVariants: {
|
|
286
|
+
variant: "default",
|
|
287
|
+
size: "default"
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
), X = ({ className: e, variant: r, size: t, ...n }) => /* @__PURE__ */ a(
|
|
291
|
+
s.Trigger,
|
|
292
|
+
{
|
|
293
|
+
className: o(Q({ variant: r, size: t }), e),
|
|
294
|
+
...n
|
|
295
|
+
}
|
|
296
|
+
);
|
|
297
|
+
X.displayName = "Dialog.Trigger";
|
|
298
|
+
const Y = (e) => /* @__PURE__ */ a(s.Portal, { ...e });
|
|
299
|
+
Y.displayName = "Dialog.Portal";
|
|
300
|
+
const ee = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
301
|
+
s.Backdrop,
|
|
302
|
+
{
|
|
303
|
+
className: o(
|
|
304
|
+
"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",
|
|
305
|
+
"transition-opacity duration-200",
|
|
306
|
+
"data-starting-style:opacity-0 data-ending-style:opacity-0",
|
|
307
|
+
e
|
|
308
|
+
),
|
|
309
|
+
...r
|
|
310
|
+
}
|
|
311
|
+
);
|
|
312
|
+
ee.displayName = "Dialog.Backdrop";
|
|
313
|
+
const re = i(
|
|
314
|
+
[
|
|
315
|
+
"fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2",
|
|
316
|
+
"w-full max-w-[calc(100vw-2rem)] rounded-lg border border-border bg-background p-6 shadow-lg",
|
|
317
|
+
"outline-none",
|
|
318
|
+
"transition-all duration-200",
|
|
319
|
+
"data-[starting-style]:scale-95 data-[starting-style]:opacity-0",
|
|
320
|
+
"data-[ending-style]:scale-95 data-[ending-style]:opacity-0",
|
|
321
|
+
"top-[calc(50%+1.25rem*var(--nested-dialogs))] scale-[calc(1-0.1*var(--nested-dialogs))]",
|
|
322
|
+
"data-[nested-dialog-open]:after:absolute data-[nested-dialog-open]:after:inset-0 data-[nested-dialog-open]:after:rounded-[inherit] data-[nested-dialog-open]:after:bg-black/5"
|
|
323
|
+
],
|
|
324
|
+
{
|
|
325
|
+
variants: {
|
|
326
|
+
size: {
|
|
327
|
+
sm: "w-sm",
|
|
328
|
+
default: "w-lg",
|
|
329
|
+
lg: "w-2xl",
|
|
330
|
+
xl: "w-4xl",
|
|
331
|
+
full: "h-[calc(100vh-2rem)]"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
defaultVariants: {
|
|
335
|
+
size: "default"
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
), ae = ({ className: e, size: r, ...t }) => /* @__PURE__ */ a(
|
|
339
|
+
s.Popup,
|
|
340
|
+
{
|
|
341
|
+
className: o(re({ size: r }), e),
|
|
342
|
+
...t
|
|
343
|
+
}
|
|
344
|
+
);
|
|
345
|
+
ae.displayName = "Dialog.Popup";
|
|
346
|
+
const te = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
347
|
+
s.Title,
|
|
348
|
+
{
|
|
349
|
+
className: o("text-lg font-semibold leading-none tracking-tight", e),
|
|
350
|
+
...r
|
|
351
|
+
}
|
|
352
|
+
);
|
|
353
|
+
te.displayName = "Dialog.Title";
|
|
354
|
+
const oe = ({ className: e, ...r }) => /* @__PURE__ */ a(s.Description, { className: o("mt-2", e), ...r });
|
|
355
|
+
oe.displayName = "Dialog.Description";
|
|
356
|
+
const ne = i(
|
|
357
|
+
[
|
|
358
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium",
|
|
359
|
+
"transition-all",
|
|
360
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
361
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
362
|
+
],
|
|
363
|
+
{
|
|
364
|
+
variants: {
|
|
365
|
+
variant: {
|
|
366
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
367
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
368
|
+
outline: "border border-border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
|
|
369
|
+
ghost: "hover:bg-accent hover:text-accent-foreground"
|
|
370
|
+
},
|
|
371
|
+
size: {
|
|
372
|
+
sm: "h-8 rounded-md px-3 text-xs",
|
|
373
|
+
default: "h-9 px-4 py-2",
|
|
374
|
+
lg: "h-10 rounded-md px-6"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
defaultVariants: {
|
|
378
|
+
variant: "outline",
|
|
379
|
+
size: "default"
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
), se = ({ className: e, variant: r, size: t, ...n }) => /* @__PURE__ */ a(
|
|
383
|
+
s.Close,
|
|
384
|
+
{
|
|
385
|
+
className: o(ne({ variant: r, size: t }), e),
|
|
386
|
+
...n
|
|
387
|
+
}
|
|
388
|
+
);
|
|
389
|
+
se.displayName = "Dialog.Close";
|
|
390
|
+
const ie = ({ className: e, ...r }) => /* @__PURE__ */ a("div", { className: o("flex flex-col space-y-1 mb-5", e), ...r });
|
|
391
|
+
ie.displayName = "Dialog.Header";
|
|
392
|
+
const le = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
393
|
+
"div",
|
|
394
|
+
{
|
|
395
|
+
className: o(
|
|
396
|
+
"mt-6 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
|
|
397
|
+
e
|
|
398
|
+
),
|
|
399
|
+
...r
|
|
400
|
+
}
|
|
401
|
+
);
|
|
402
|
+
le.displayName = "Dialog.Footer";
|
|
403
|
+
const de = (e) => /* @__PURE__ */ a(s.Root, { ...e });
|
|
404
|
+
de.displayName = "Drawer.Root";
|
|
405
|
+
const ce = i(
|
|
406
|
+
[
|
|
407
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium",
|
|
408
|
+
"transition-all",
|
|
409
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
410
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
411
|
+
],
|
|
412
|
+
{
|
|
413
|
+
variants: {
|
|
414
|
+
variant: {
|
|
415
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
416
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
417
|
+
outline: "border border-border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
|
|
418
|
+
ghost: "hover:bg-accent hover:text-accent-foreground"
|
|
419
|
+
},
|
|
420
|
+
size: {
|
|
421
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
422
|
+
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
423
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
424
|
+
icon: "size-9",
|
|
425
|
+
"icon-sm": "size-8",
|
|
426
|
+
"icon-lg": "size-10"
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
defaultVariants: {
|
|
430
|
+
variant: "default",
|
|
431
|
+
size: "default"
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
), ue = ({ className: e, variant: r, size: t, ...n }) => /* @__PURE__ */ a(
|
|
435
|
+
s.Trigger,
|
|
436
|
+
{
|
|
437
|
+
className: o(ce({ variant: r, size: t }), e),
|
|
438
|
+
...n
|
|
439
|
+
}
|
|
440
|
+
);
|
|
441
|
+
ue.displayName = "Drawer.Trigger";
|
|
442
|
+
const ge = (e) => /* @__PURE__ */ a(s.Portal, { ...e });
|
|
443
|
+
ge.displayName = "Drawer.Portal";
|
|
444
|
+
const pe = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
445
|
+
s.Backdrop,
|
|
446
|
+
{
|
|
447
|
+
className: o(
|
|
448
|
+
"fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",
|
|
449
|
+
"transition-opacity duration-300",
|
|
450
|
+
"data-starting-style:opacity-0 data-ending-style:opacity-0",
|
|
451
|
+
e
|
|
452
|
+
),
|
|
453
|
+
...r
|
|
454
|
+
}
|
|
455
|
+
);
|
|
456
|
+
pe.displayName = "Drawer.Backdrop";
|
|
457
|
+
const me = i(
|
|
458
|
+
[
|
|
459
|
+
"fixed z-50 flex flex-col bg-background p-6 shadow-lg",
|
|
460
|
+
"outline-none",
|
|
461
|
+
"transition-transform duration-300 ease-out",
|
|
462
|
+
"scale-[calc(1-0.1*var(--nested-dialogs))]",
|
|
463
|
+
"data-[nested-dialog-open]:after:absolute data-[nested-dialog-open]:after:inset-0 data-[nested-dialog-open]:after:rounded-[inherit] data-[nested-dialog-open]:after:bg-black/5"
|
|
464
|
+
],
|
|
465
|
+
{
|
|
466
|
+
variants: {
|
|
467
|
+
side: {
|
|
468
|
+
top: [
|
|
469
|
+
"inset-x-0 top-0 border-b border-border",
|
|
470
|
+
"data-starting-style:-translate-y-full",
|
|
471
|
+
"data-ending-style:-translate-y-full"
|
|
472
|
+
],
|
|
473
|
+
right: [
|
|
474
|
+
"inset-y-0 right-0 h-full w-sm max-w-full border-l border-border",
|
|
475
|
+
"data-starting-style:translate-x-full",
|
|
476
|
+
"data-ending-style:translate-x-full"
|
|
477
|
+
],
|
|
478
|
+
bottom: [
|
|
479
|
+
"inset-x-0 bottom-0 border-t border-border",
|
|
480
|
+
"data-starting-style:translate-y-full",
|
|
481
|
+
"data-ending-style:translate-y-full"
|
|
482
|
+
],
|
|
483
|
+
left: [
|
|
484
|
+
"inset-y-0 left-0 h-full w-sm max-w-full border-r border-border",
|
|
485
|
+
"data-starting-style:-translate-x-full",
|
|
486
|
+
"data-ending-style:-translate-x-full"
|
|
487
|
+
]
|
|
488
|
+
}
|
|
489
|
+
},
|
|
490
|
+
defaultVariants: {
|
|
491
|
+
side: "right"
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
), fe = ({ className: e, side: r, ...t }) => /* @__PURE__ */ a(
|
|
495
|
+
s.Popup,
|
|
496
|
+
{
|
|
497
|
+
className: o(me({ side: r }), e),
|
|
498
|
+
...t
|
|
499
|
+
}
|
|
500
|
+
);
|
|
501
|
+
fe.displayName = "Drawer.Popup";
|
|
502
|
+
const be = ({ className: e, ...r }) => /* @__PURE__ */ a(
|
|
503
|
+
s.Title,
|
|
504
|
+
{
|
|
505
|
+
className: o("text-lg font-semibold leading-none tracking-tight", e),
|
|
506
|
+
...r
|
|
507
|
+
}
|
|
508
|
+
);
|
|
509
|
+
be.displayName = "Drawer.Title";
|
|
510
|
+
const ve = ({ className: e, ...r }) => /* @__PURE__ */ a(s.Description, { className: o("", e), ...r });
|
|
511
|
+
ve.displayName = "Drawer.Description";
|
|
512
|
+
const ye = i(
|
|
513
|
+
[
|
|
514
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium",
|
|
515
|
+
"transition-all",
|
|
516
|
+
"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",
|
|
517
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
518
|
+
],
|
|
519
|
+
{
|
|
520
|
+
variants: {
|
|
521
|
+
variant: {
|
|
522
|
+
default: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
523
|
+
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
|
|
524
|
+
outline: "border border-border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground",
|
|
525
|
+
ghost: "hover:bg-accent hover:text-accent-foreground"
|
|
526
|
+
},
|
|
527
|
+
size: {
|
|
528
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
529
|
+
sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
530
|
+
lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
|
|
531
|
+
icon: "size-9",
|
|
532
|
+
"icon-sm": "size-8",
|
|
533
|
+
"icon-lg": "size-10"
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
defaultVariants: {
|
|
537
|
+
variant: "outline",
|
|
538
|
+
size: "default"
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
), he = ({ className: e, variant: r, size: t, ...n }) => /* @__PURE__ */ a(
|
|
542
|
+
s.Close,
|
|
543
|
+
{
|
|
544
|
+
className: o(ye({ variant: r, size: t }), e),
|
|
545
|
+
...n
|
|
546
|
+
}
|
|
547
|
+
);
|
|
548
|
+
he.displayName = "Drawer.Close";
|
|
549
|
+
const xe = ({ className: e, ...r }) => /* @__PURE__ */ a("div", { className: o("flex flex-col space-y-1.5", e), ...r });
|
|
550
|
+
xe.displayName = "Drawer.Header";
|
|
551
|
+
const we = ({ className: e, ...r }) => /* @__PURE__ */ a("div", { className: o("py-5", e), ...r });
|
|
552
|
+
we.displayName = "Drawer.Content";
|
|
553
|
+
const Ne = ({ className: e, ...r }) => /* @__PURE__ */ a("div", { className: o("", e), ...r });
|
|
554
|
+
Ne.displayName = "Drawer.Footer";
|
|
555
|
+
export {
|
|
556
|
+
L as Button,
|
|
557
|
+
ee as DialogBackdrop,
|
|
558
|
+
se as DialogClose,
|
|
559
|
+
oe as DialogDescription,
|
|
560
|
+
le as DialogFooter,
|
|
561
|
+
ie as DialogHeader,
|
|
562
|
+
ae as DialogPopup,
|
|
563
|
+
Y as DialogPortal,
|
|
564
|
+
J as DialogRoot,
|
|
565
|
+
te as DialogTitle,
|
|
566
|
+
X as DialogTrigger,
|
|
567
|
+
pe as DrawerBackdrop,
|
|
568
|
+
he as DrawerClose,
|
|
569
|
+
we as DrawerContent,
|
|
570
|
+
ve as DrawerDescription,
|
|
571
|
+
Ne as DrawerFooter,
|
|
572
|
+
xe as DrawerHeader,
|
|
573
|
+
fe as DrawerPopup,
|
|
574
|
+
ge as DrawerPortal,
|
|
575
|
+
de as DrawerRoot,
|
|
576
|
+
be as DrawerTitle,
|
|
577
|
+
ue as DrawerTrigger,
|
|
578
|
+
F as ScrollAreaContent,
|
|
579
|
+
M as ScrollAreaCorner,
|
|
580
|
+
I as ScrollAreaRoot,
|
|
581
|
+
$ as ScrollAreaScrollbar,
|
|
582
|
+
H as ScrollAreaThumb,
|
|
583
|
+
_ as ScrollAreaViewport,
|
|
584
|
+
q as TabsIndicator,
|
|
585
|
+
Z as TabsList,
|
|
586
|
+
G as TabsPanel,
|
|
587
|
+
U as TabsRoot,
|
|
588
|
+
K as TabsTab
|
|
589
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAA;AAG5C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
@theme inline {
|
|
2
|
+
--radius-sm: calc(var(--radius) - 4px);
|
|
3
|
+
--radius-md: calc(var(--radius) - 2px);
|
|
4
|
+
--radius-lg: var(--radius);
|
|
5
|
+
--radius-xl: calc(var(--radius) + 4px);
|
|
6
|
+
--radius-2xl: calc(var(--radius) + 8px);
|
|
7
|
+
--radius-3xl: calc(var(--radius) + 12px);
|
|
8
|
+
--radius-4xl: calc(var(--radius) + 16px);
|
|
9
|
+
--color-background: var(--background);
|
|
10
|
+
--color-foreground: var(--foreground);
|
|
11
|
+
--color-primary: var(--primary);
|
|
12
|
+
--color-primary-foreground: var(--primary-foreground);
|
|
13
|
+
--color-secondary: var(--secondary);
|
|
14
|
+
--color-secondary-foreground: var(--secondary-foreground);
|
|
15
|
+
--color-muted: var(--muted);
|
|
16
|
+
--color-muted-foreground: var(--muted-foreground);
|
|
17
|
+
--color-accent: var(--accent);
|
|
18
|
+
--color-accent-foreground: var(--accent-foreground);
|
|
19
|
+
--color-destructive: var(--destructive);
|
|
20
|
+
--color-border: var(--border);
|
|
21
|
+
--color-ring: var(--ring);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
:root {
|
|
25
|
+
--radius: 0.5rem;
|
|
26
|
+
--background: oklch(1 0 0);
|
|
27
|
+
--foreground: oklch(0.145 0 0);
|
|
28
|
+
--primary: oklch(0.205 0 0);
|
|
29
|
+
--primary-foreground: oklch(0.985 0 0);
|
|
30
|
+
--secondary: oklch(0.97 0 0);
|
|
31
|
+
--secondary-foreground: oklch(0.205 0 0);
|
|
32
|
+
--muted: oklch(0.97 0 0);
|
|
33
|
+
--muted-foreground: oklch(0.556 0 0);
|
|
34
|
+
--accent: oklch(0.97 0 0);
|
|
35
|
+
--accent-foreground: oklch(0.205 0 0);
|
|
36
|
+
--destructive: oklch(0.577 0.245 27.325);
|
|
37
|
+
--border: oklch(0.922 0 0);
|
|
38
|
+
--ring: oklch(0.708 0 0);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.dark {
|
|
42
|
+
--background: oklch(0.145 0 0);
|
|
43
|
+
--foreground: oklch(0.985 0 0);
|
|
44
|
+
--primary: oklch(0.922 0 0);
|
|
45
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
46
|
+
--secondary: oklch(0.269 0 0);
|
|
47
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
48
|
+
--muted: oklch(0.269 0 0);
|
|
49
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
50
|
+
--accent: oklch(0.269 0 0);
|
|
51
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
52
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
53
|
+
--border: oklch(1 0 0 / 10%);
|
|
54
|
+
--ring: oklch(0.556 0 0);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@media (prefers-color-scheme: dark) {
|
|
58
|
+
:root:not(.light) {
|
|
59
|
+
--background: oklch(0.145 0 0);
|
|
60
|
+
--foreground: oklch(0.985 0 0);
|
|
61
|
+
--primary: oklch(0.922 0 0);
|
|
62
|
+
--primary-foreground: oklch(0.205 0 0);
|
|
63
|
+
--secondary: oklch(0.269 0 0);
|
|
64
|
+
--secondary-foreground: oklch(0.985 0 0);
|
|
65
|
+
--muted: oklch(0.269 0 0);
|
|
66
|
+
--muted-foreground: oklch(0.708 0 0);
|
|
67
|
+
--accent: oklch(0.269 0 0);
|
|
68
|
+
--accent-foreground: oklch(0.985 0 0);
|
|
69
|
+
--destructive: oklch(0.704 0.191 22.216);
|
|
70
|
+
--border: oklch(1 0 0 / 10%);
|
|
71
|
+
--ring: oklch(0.556 0 0);
|
|
72
|
+
}
|
|
73
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lglab/compose-ui",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"publishConfig": {
|
|
5
|
+
"access": "public"
|
|
6
|
+
},
|
|
7
|
+
"description": "compose-ui library",
|
|
8
|
+
"author": "LGLab",
|
|
9
|
+
"license": "MIT",
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "https://github.com/LGLabGreg/compose-ui.git",
|
|
13
|
+
"directory": "packages/compose-ui"
|
|
14
|
+
},
|
|
15
|
+
"homepage": "https://compose-ui.dev",
|
|
16
|
+
"keywords": [
|
|
17
|
+
"compose-ui",
|
|
18
|
+
"react",
|
|
19
|
+
"base-ui",
|
|
20
|
+
"tailwind",
|
|
21
|
+
"library",
|
|
22
|
+
"typescript",
|
|
23
|
+
"open-source",
|
|
24
|
+
"accessible"
|
|
25
|
+
],
|
|
26
|
+
"type": "module",
|
|
27
|
+
"types": "./dist/index.d.ts",
|
|
28
|
+
"main": "./dist/index.es.js",
|
|
29
|
+
"module": "./dist/index.es.js",
|
|
30
|
+
"exports": {
|
|
31
|
+
".": {
|
|
32
|
+
"import": "./dist/index.es.js",
|
|
33
|
+
"types": "./dist/index.d.ts"
|
|
34
|
+
},
|
|
35
|
+
"./styles/*": "./dist/styles/*"
|
|
36
|
+
},
|
|
37
|
+
"files": [
|
|
38
|
+
"dist"
|
|
39
|
+
],
|
|
40
|
+
"sideEffects": [
|
|
41
|
+
"*.css"
|
|
42
|
+
],
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"@base-ui/react": "^1.0.0",
|
|
45
|
+
"class-variance-authority": "^0.7.1",
|
|
46
|
+
"clsx": "^2.1.1",
|
|
47
|
+
"react": "^19",
|
|
48
|
+
"react-dom": "^19.0.0",
|
|
49
|
+
"tailwind-merge": "^3.4.0",
|
|
50
|
+
"tailwindcss": "^4.0.0",
|
|
51
|
+
"lucide-react": "^0.562.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/node": "^25.0.3",
|
|
55
|
+
"@types/react": "^19.2.7",
|
|
56
|
+
"@types/react-dom": "^19.2.3",
|
|
57
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
58
|
+
"globals": "^17.0.0",
|
|
59
|
+
"react": "^19.2.3",
|
|
60
|
+
"react-dom": "^19.2.3",
|
|
61
|
+
"rollup-preserve-directives": "^1.1.3",
|
|
62
|
+
"typescript": "~5.9.3",
|
|
63
|
+
"typescript-eslint": "^8.51.0",
|
|
64
|
+
"vite": "^7.3.0",
|
|
65
|
+
"vite-plugin-dts": "^4.5.4",
|
|
66
|
+
"vite-plugin-static-copy": "^3.1.4"
|
|
67
|
+
},
|
|
68
|
+
"scripts": {
|
|
69
|
+
"build": "tsc -b && vite build"
|
|
70
|
+
}
|
|
71
|
+
}
|