@caffeinebounce/ui 0.62.2
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 +21 -0
- package/README.md +39 -0
- package/dist/FinancialStatementTable-BNUrdTU4.d.cts +249 -0
- package/dist/FinancialStatementTable-BNUrdTU4.d.ts +249 -0
- package/dist/NewsletterSignup-BPreFi5W.d.cts +37 -0
- package/dist/NewsletterSignup-BPreFi5W.d.ts +37 -0
- package/dist/TestimonialsSection-DtPu2OeR.d.ts +736 -0
- package/dist/TestimonialsSection-z-yotRfv.d.cts +736 -0
- package/dist/UnifiedTableControls-CG299y9h.d.ts +1233 -0
- package/dist/UnifiedTableControls-CIjRpNhy.d.cts +1233 -0
- package/dist/blog.d.cts +99 -0
- package/dist/blog.d.ts +99 -0
- package/dist/blog.js +292 -0
- package/dist/blog.mjs +279 -0
- package/dist/button-BHnoRUkF.d.cts +34 -0
- package/dist/button-BHnoRUkF.d.ts +34 -0
- package/dist/charts.d.cts +80 -0
- package/dist/charts.d.ts +80 -0
- package/dist/charts.js +19 -0
- package/dist/charts.mjs +2 -0
- package/dist/chunk-33JR5SYE.js +44 -0
- package/dist/chunk-3NDB4YPC.js +247 -0
- package/dist/chunk-5RW4PYZ6.js +1504 -0
- package/dist/chunk-5THF4YP6.mjs +155 -0
- package/dist/chunk-6BUBNZPG.mjs +164 -0
- package/dist/chunk-6DVWMJ3H.mjs +7029 -0
- package/dist/chunk-6TGV2DNP.js +120 -0
- package/dist/chunk-72JGQ7IJ.mjs +1498 -0
- package/dist/chunk-7DHKQODW.mjs +2932 -0
- package/dist/chunk-7IKHZKAC.js +160 -0
- package/dist/chunk-ADIDI7AJ.js +11 -0
- package/dist/chunk-BFWX5GJZ.mjs +940 -0
- package/dist/chunk-BMFQG6RA.mjs +5537 -0
- package/dist/chunk-C4UT5V3P.js +65 -0
- package/dist/chunk-CC4KUIKC.js +2004 -0
- package/dist/chunk-D3QXPL47.mjs +1814 -0
- package/dist/chunk-DQWHYBV2.js +36 -0
- package/dist/chunk-E42B4GSB.js +993 -0
- package/dist/chunk-ESZ7CBA2.js +1007 -0
- package/dist/chunk-EYJJQVV4.js +111 -0
- package/dist/chunk-FRRS2YZH.mjs +129 -0
- package/dist/chunk-G5TQWWQA.mjs +37 -0
- package/dist/chunk-GAIQJCAZ.js +5612 -0
- package/dist/chunk-GMBGWOCR.mjs +48 -0
- package/dist/chunk-GUSTCU2W.mjs +105 -0
- package/dist/chunk-HBLKVQIQ.mjs +23 -0
- package/dist/chunk-HMAMMC72.js +26 -0
- package/dist/chunk-IMKLN273.mjs +9 -0
- package/dist/chunk-J6OLBSZR.js +250 -0
- package/dist/chunk-JAE45W2T.js +28 -0
- package/dist/chunk-JORVSG52.js +606 -0
- package/dist/chunk-KB7UXIQZ.mjs +984 -0
- package/dist/chunk-KGGQ5NZV.js +186 -0
- package/dist/chunk-KHCC5UKW.mjs +22 -0
- package/dist/chunk-KRRIRS6A.mjs +1945 -0
- package/dist/chunk-LQCVRWVF.js +48 -0
- package/dist/chunk-MHZXUOGN.mjs +168 -0
- package/dist/chunk-MPZFPU4X.js +349 -0
- package/dist/chunk-MVYRNJA6.js +74 -0
- package/dist/chunk-N6AFNFZR.mjs +565 -0
- package/dist/chunk-OFQLWSUR.mjs +214 -0
- package/dist/chunk-OLAAXLXY.mjs +219 -0
- package/dist/chunk-OZZWDIOY.js +1859 -0
- package/dist/chunk-PZRI43EZ.js +111 -0
- package/dist/chunk-Q256HRYD.js +176 -0
- package/dist/chunk-Q52ZEL62.mjs +223 -0
- package/dist/chunk-R26Y7LGJ.js +142 -0
- package/dist/chunk-RBUYW6QQ.js +39 -0
- package/dist/chunk-RVEFPVZF.mjs +43 -0
- package/dist/chunk-SORWLKOK.js +96 -0
- package/dist/chunk-STEP6C4C.mjs +33 -0
- package/dist/chunk-T5R6HUDG.mjs +22 -0
- package/dist/chunk-T6ZBA6VJ.js +7109 -0
- package/dist/chunk-UM7WMXIU.js +2995 -0
- package/dist/chunk-VBD4Q5LL.mjs +117 -0
- package/dist/chunk-WOITB4JL.js +195 -0
- package/dist/chunk-YKZEKJMZ.mjs +71 -0
- package/dist/chunk-YL7RZRHM.mjs +103 -0
- package/dist/chunk-YSLD2HLP.mjs +346 -0
- package/dist/chunk-ZFLZA7UP.mjs +140 -0
- package/dist/chunk-ZKUIUE7W.mjs +26 -0
- package/dist/chunk-ZOA7B32D.js +248 -0
- package/dist/data-table.d.cts +46 -0
- package/dist/data-table.d.ts +46 -0
- package/dist/data-table.js +270 -0
- package/dist/data-table.mjs +13 -0
- package/dist/editor.d.cts +89 -0
- package/dist/editor.d.ts +89 -0
- package/dist/editor.js +10 -0
- package/dist/editor.mjs +1 -0
- package/dist/forms.d.cts +142 -0
- package/dist/forms.d.ts +142 -0
- package/dist/forms.js +24 -0
- package/dist/forms.mjs +11 -0
- package/dist/hooks-8ORd7T1A.d.cts +751 -0
- package/dist/hooks-B2jU1GVT.d.ts +751 -0
- package/dist/hooks.d.cts +6 -0
- package/dist/hooks.d.ts +6 -0
- package/dist/hooks.js +99 -0
- package/dist/hooks.mjs +10 -0
- package/dist/index.d.cts +3141 -0
- package/dist/index.d.ts +3141 -0
- package/dist/index.js +7332 -0
- package/dist/index.mjs +5876 -0
- package/dist/layouts-DPfDDF53.d.cts +1001 -0
- package/dist/layouts-DPfDDF53.d.ts +1001 -0
- package/dist/layouts.d.cts +4 -0
- package/dist/layouts.d.ts +4 -0
- package/dist/layouts.js +100 -0
- package/dist/layouts.mjs +11 -0
- package/dist/marketing-3d.d.cts +51 -0
- package/dist/marketing-3d.d.ts +51 -0
- package/dist/marketing-3d.js +553 -0
- package/dist/marketing-3d.mjs +526 -0
- package/dist/marketing.d.cts +583 -0
- package/dist/marketing.d.ts +583 -0
- package/dist/marketing.js +299 -0
- package/dist/marketing.mjs +10 -0
- package/dist/media.d.cts +29 -0
- package/dist/media.d.ts +29 -0
- package/dist/media.js +189 -0
- package/dist/media.mjs +182 -0
- package/dist/navigation.d.cts +591 -0
- package/dist/navigation.d.ts +591 -0
- package/dist/navigation.js +108 -0
- package/dist/navigation.mjs +15 -0
- package/dist/portal.d.cts +58 -0
- package/dist/portal.d.ts +58 -0
- package/dist/portal.js +403 -0
- package/dist/portal.mjs +395 -0
- package/dist/primitives.d.cts +508 -0
- package/dist/primitives.d.ts +508 -0
- package/dist/primitives.js +295 -0
- package/dist/primitives.mjs +14 -0
- package/dist/settings.d.cts +216 -0
- package/dist/settings.d.ts +216 -0
- package/dist/settings.js +34 -0
- package/dist/settings.mjs +9 -0
- package/dist/shared-Dqn36QHZ.d.cts +4 -0
- package/dist/shared-Dqn36QHZ.d.ts +4 -0
- package/dist/styles.css +1213 -0
- package/package.json +189 -0
- package/styles.css +1 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { cn } from './chunk-IMKLN273.mjs';
|
|
2
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
3
|
+
import { cva } from 'class-variance-authority';
|
|
4
|
+
import { Loader2 } from 'lucide-react';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var CTA_BUTTON_VARIANTS = [
|
|
8
|
+
"default",
|
|
9
|
+
"outline",
|
|
10
|
+
"secondary",
|
|
11
|
+
"premium"
|
|
12
|
+
];
|
|
13
|
+
function isCtaButtonVariant(variant) {
|
|
14
|
+
return CTA_BUTTON_VARIANTS.includes(
|
|
15
|
+
variant || "default"
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
function resolveButtonHoverEffect(variant, hoverEffect) {
|
|
19
|
+
if (hoverEffect) {
|
|
20
|
+
return hoverEffect;
|
|
21
|
+
}
|
|
22
|
+
return isCtaButtonVariant(variant) ? "theme" : "slide";
|
|
23
|
+
}
|
|
24
|
+
var buttonVariants = cva(
|
|
25
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap text-sm transition-all cursor-pointer disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2 focus:ring-offset-background aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
26
|
+
{
|
|
27
|
+
variants: {
|
|
28
|
+
variant: {
|
|
29
|
+
default: "button-cta button-cta-default border shadow-sm",
|
|
30
|
+
premium: "button-cta button-cta-premium border shadow-sm",
|
|
31
|
+
destructive: "border bg-destructive text-white hover:bg-destructive/90 dark:bg-destructive/60",
|
|
32
|
+
outline: "button-cta button-cta-outline border shadow-xs",
|
|
33
|
+
secondary: "button-cta button-cta-secondary border",
|
|
34
|
+
ghost: "font-medium text-foreground hover:bg-accent hover:text-accent-foreground",
|
|
35
|
+
"ghost-icon": "font-medium text-icon hover:text-icon-hover [&_svg]:transition-transform [&_svg]:duration-200 hover:[&_svg]:scale-110",
|
|
36
|
+
muted: "font-medium text-muted-foreground hover:text-foreground transition-colors",
|
|
37
|
+
link: "font-medium text-primary underline-offset-4 hover:underline"
|
|
38
|
+
},
|
|
39
|
+
size: {
|
|
40
|
+
default: "h-9 px-4 py-2 has-[>svg]:px-3",
|
|
41
|
+
sm: "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
|
|
42
|
+
lg: "h-10 px-6 has-[>svg]:px-4",
|
|
43
|
+
icon: "size-9",
|
|
44
|
+
"icon-sm": "size-8",
|
|
45
|
+
"icon-xs": "size-6 [&_svg]:size-3.5",
|
|
46
|
+
"icon-lg": "size-10"
|
|
47
|
+
},
|
|
48
|
+
corners: {
|
|
49
|
+
default: "rounded-box",
|
|
50
|
+
pill: "rounded-full",
|
|
51
|
+
sharp: "rounded-none"
|
|
52
|
+
},
|
|
53
|
+
hoverEffect: {
|
|
54
|
+
// Slide/theme effects are handled via CSS pseudo-elements (see base.css)
|
|
55
|
+
slide: "",
|
|
56
|
+
glow: "hover:shadow-lg hover:shadow-primary/25",
|
|
57
|
+
scale: "hover:scale-105 active:scale-95",
|
|
58
|
+
// "none" disables extra hover effects but preserves variant hover styles
|
|
59
|
+
none: ""
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
defaultVariants: {
|
|
63
|
+
variant: "default",
|
|
64
|
+
size: "default",
|
|
65
|
+
corners: "default"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
function Button({
|
|
70
|
+
className,
|
|
71
|
+
variant,
|
|
72
|
+
size,
|
|
73
|
+
corners,
|
|
74
|
+
hoverEffect,
|
|
75
|
+
asChild = false,
|
|
76
|
+
loading = false,
|
|
77
|
+
disabled,
|
|
78
|
+
children,
|
|
79
|
+
...props
|
|
80
|
+
}) {
|
|
81
|
+
const resolvedHoverEffect = resolveButtonHoverEffect(variant, hoverEffect);
|
|
82
|
+
if (asChild) {
|
|
83
|
+
return /* @__PURE__ */ jsx(
|
|
84
|
+
Slot,
|
|
85
|
+
{
|
|
86
|
+
"data-slot": "button",
|
|
87
|
+
"data-variant": variant || "default",
|
|
88
|
+
"data-hover-effect": resolvedHoverEffect,
|
|
89
|
+
className: cn(
|
|
90
|
+
buttonVariants({ variant, size, corners, hoverEffect, className })
|
|
91
|
+
),
|
|
92
|
+
"aria-disabled": disabled || loading || void 0,
|
|
93
|
+
...props,
|
|
94
|
+
children
|
|
95
|
+
}
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
return /* @__PURE__ */ jsxs(
|
|
99
|
+
"button",
|
|
100
|
+
{
|
|
101
|
+
"data-slot": "button",
|
|
102
|
+
"data-variant": variant || "default",
|
|
103
|
+
"data-hover-effect": resolvedHoverEffect,
|
|
104
|
+
className: cn(
|
|
105
|
+
buttonVariants({ variant, size, corners, hoverEffect, className })
|
|
106
|
+
),
|
|
107
|
+
disabled: disabled || loading,
|
|
108
|
+
...props,
|
|
109
|
+
children: [
|
|
110
|
+
loading && /* @__PURE__ */ jsx(Loader2, { className: "h-4 w-4 animate-spin" }),
|
|
111
|
+
children
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export { Button, buttonVariants };
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkADIDI7AJ_js = require('./chunk-ADIDI7AJ.js');
|
|
4
|
+
var SelectPrimitive = require('@radix-ui/react-select');
|
|
5
|
+
var lucideReact = require('lucide-react');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var SelectPrimitive__namespace = /*#__PURE__*/_interopNamespace(SelectPrimitive);
|
|
27
|
+
|
|
28
|
+
function Select({
|
|
29
|
+
...props
|
|
30
|
+
}) {
|
|
31
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Root, { "data-slot": "select", ...props });
|
|
32
|
+
}
|
|
33
|
+
function SelectGroup({
|
|
34
|
+
...props
|
|
35
|
+
}) {
|
|
36
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Group, { "data-slot": "select-group", ...props });
|
|
37
|
+
}
|
|
38
|
+
function SelectValue({
|
|
39
|
+
...props
|
|
40
|
+
}) {
|
|
41
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Value, { "data-slot": "select-value", ...props });
|
|
42
|
+
}
|
|
43
|
+
function SelectTrigger({
|
|
44
|
+
className,
|
|
45
|
+
size = "default",
|
|
46
|
+
variant = "default",
|
|
47
|
+
children,
|
|
48
|
+
...props
|
|
49
|
+
}) {
|
|
50
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
51
|
+
SelectPrimitive__namespace.Trigger,
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "select-trigger",
|
|
54
|
+
"data-size": size,
|
|
55
|
+
className: chunkADIDI7AJ_js.cn(
|
|
56
|
+
"data-placeholder:text-muted-foreground focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive flex w-fit items-center justify-between gap-2 rounded-box px-3 py-2 text-sm whitespace-nowrap transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
57
|
+
variant === "ghost" ? "border-none bg-transparent shadow-none hover:bg-accent hover:text-accent-foreground focus-visible:ring-0 [&_svg]:text-current [&_svg]:opacity-100" : "[&_svg:not([class*='text-'])]:text-muted-foreground border-input focus-visible:border-ring dark:bg-input/30 dark:hover:bg-input/50 border bg-transparent shadow-xs",
|
|
58
|
+
className
|
|
59
|
+
),
|
|
60
|
+
...props,
|
|
61
|
+
children: [
|
|
62
|
+
children,
|
|
63
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Icon, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" }) })
|
|
64
|
+
]
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
function SelectContent({
|
|
69
|
+
className,
|
|
70
|
+
children,
|
|
71
|
+
position = "popper",
|
|
72
|
+
align = "start",
|
|
73
|
+
...props
|
|
74
|
+
}) {
|
|
75
|
+
return /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.Portal, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
76
|
+
SelectPrimitive__namespace.Content,
|
|
77
|
+
{
|
|
78
|
+
"data-slot": "select-content",
|
|
79
|
+
className: chunkADIDI7AJ_js.cn(
|
|
80
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-box border shadow-md",
|
|
81
|
+
position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
82
|
+
className
|
|
83
|
+
),
|
|
84
|
+
position,
|
|
85
|
+
align,
|
|
86
|
+
...props,
|
|
87
|
+
children: [
|
|
88
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollUpButton, {}),
|
|
89
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
90
|
+
SelectPrimitive__namespace.Viewport,
|
|
91
|
+
{
|
|
92
|
+
className: chunkADIDI7AJ_js.cn(
|
|
93
|
+
"p-1",
|
|
94
|
+
position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"
|
|
95
|
+
),
|
|
96
|
+
children
|
|
97
|
+
}
|
|
98
|
+
),
|
|
99
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectScrollDownButton, {})
|
|
100
|
+
]
|
|
101
|
+
}
|
|
102
|
+
) });
|
|
103
|
+
}
|
|
104
|
+
function SelectLabel({
|
|
105
|
+
className,
|
|
106
|
+
...props
|
|
107
|
+
}) {
|
|
108
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
109
|
+
SelectPrimitive__namespace.Label,
|
|
110
|
+
{
|
|
111
|
+
"data-slot": "select-label",
|
|
112
|
+
className: chunkADIDI7AJ_js.cn("text-muted-foreground px-2 py-1.5 text-xs", className),
|
|
113
|
+
...props
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
function SelectItem({
|
|
118
|
+
className,
|
|
119
|
+
children,
|
|
120
|
+
...props
|
|
121
|
+
}) {
|
|
122
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
123
|
+
SelectPrimitive__namespace.Item,
|
|
124
|
+
{
|
|
125
|
+
"data-slot": "select-item",
|
|
126
|
+
className: chunkADIDI7AJ_js.cn(
|
|
127
|
+
"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
128
|
+
className
|
|
129
|
+
),
|
|
130
|
+
...props,
|
|
131
|
+
children: [
|
|
132
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute right-2 flex size-3.5 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemIndicator, { children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.CheckIcon, { className: "size-4" }) }) }),
|
|
133
|
+
/* @__PURE__ */ jsxRuntime.jsx(SelectPrimitive__namespace.ItemText, { children })
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
function SelectSeparator({
|
|
139
|
+
className,
|
|
140
|
+
...props
|
|
141
|
+
}) {
|
|
142
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
143
|
+
SelectPrimitive__namespace.Separator,
|
|
144
|
+
{
|
|
145
|
+
"data-slot": "select-separator",
|
|
146
|
+
className: chunkADIDI7AJ_js.cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
|
|
147
|
+
...props
|
|
148
|
+
}
|
|
149
|
+
);
|
|
150
|
+
}
|
|
151
|
+
function SelectScrollUpButton({
|
|
152
|
+
className,
|
|
153
|
+
...props
|
|
154
|
+
}) {
|
|
155
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
156
|
+
SelectPrimitive__namespace.ScrollUpButton,
|
|
157
|
+
{
|
|
158
|
+
"data-slot": "select-scroll-up-button",
|
|
159
|
+
className: chunkADIDI7AJ_js.cn(
|
|
160
|
+
"flex cursor-default items-center justify-center py-1",
|
|
161
|
+
className
|
|
162
|
+
),
|
|
163
|
+
...props,
|
|
164
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronUpIcon, { className: "size-4" })
|
|
165
|
+
}
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
function SelectScrollDownButton({
|
|
169
|
+
className,
|
|
170
|
+
...props
|
|
171
|
+
}) {
|
|
172
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
173
|
+
SelectPrimitive__namespace.ScrollDownButton,
|
|
174
|
+
{
|
|
175
|
+
"data-slot": "select-scroll-down-button",
|
|
176
|
+
className: chunkADIDI7AJ_js.cn(
|
|
177
|
+
"flex cursor-default items-center justify-center py-1",
|
|
178
|
+
className
|
|
179
|
+
),
|
|
180
|
+
...props,
|
|
181
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronDownIcon, { className: "size-4" })
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
exports.Select = Select;
|
|
187
|
+
exports.SelectContent = SelectContent;
|
|
188
|
+
exports.SelectGroup = SelectGroup;
|
|
189
|
+
exports.SelectItem = SelectItem;
|
|
190
|
+
exports.SelectLabel = SelectLabel;
|
|
191
|
+
exports.SelectScrollDownButton = SelectScrollDownButton;
|
|
192
|
+
exports.SelectScrollUpButton = SelectScrollUpButton;
|
|
193
|
+
exports.SelectSeparator = SelectSeparator;
|
|
194
|
+
exports.SelectTrigger = SelectTrigger;
|
|
195
|
+
exports.SelectValue = SelectValue;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { cn } from './chunk-IMKLN273.mjs';
|
|
2
|
+
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
function TooltipProvider({
|
|
6
|
+
delayDuration = 1e3,
|
|
7
|
+
skipDelayDuration = 300,
|
|
8
|
+
...props
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
TooltipPrimitive.Provider,
|
|
12
|
+
{
|
|
13
|
+
"data-slot": "tooltip-provider",
|
|
14
|
+
delayDuration,
|
|
15
|
+
skipDelayDuration,
|
|
16
|
+
...props
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
function Tooltip({
|
|
21
|
+
delayDuration = 1e3,
|
|
22
|
+
...props
|
|
23
|
+
}) {
|
|
24
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { delayDuration, children: /* @__PURE__ */ jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) });
|
|
25
|
+
}
|
|
26
|
+
function TooltipTrigger({
|
|
27
|
+
...props
|
|
28
|
+
}) {
|
|
29
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
|
|
30
|
+
}
|
|
31
|
+
function TooltipContent({
|
|
32
|
+
className,
|
|
33
|
+
sideOffset = 6,
|
|
34
|
+
children,
|
|
35
|
+
...props
|
|
36
|
+
}) {
|
|
37
|
+
return /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
38
|
+
TooltipPrimitive.Content,
|
|
39
|
+
{
|
|
40
|
+
"data-slot": "tooltip-content",
|
|
41
|
+
sideOffset,
|
|
42
|
+
className: cn(
|
|
43
|
+
// Base styles
|
|
44
|
+
"z-50 max-w-xs overflow-hidden",
|
|
45
|
+
// Colors - subtle grey distinct from main bg, respects light/dark mode
|
|
46
|
+
"bg-zinc-100 text-zinc-900 dark:bg-zinc-800 dark:text-zinc-100",
|
|
47
|
+
// Subtle shadow for depth
|
|
48
|
+
"shadow-md",
|
|
49
|
+
// Typography - clean small text, light weight
|
|
50
|
+
"text-xs leading-normal font-light",
|
|
51
|
+
// Spacing and shape - tight rounded corners
|
|
52
|
+
"rounded-box px-3 py-1.5",
|
|
53
|
+
// Animations - smooth fade and scale
|
|
54
|
+
"animate-in fade-in-0 zoom-in-95 duration-150",
|
|
55
|
+
"data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-100",
|
|
56
|
+
// Slide in from direction
|
|
57
|
+
"data-[side=bottom]:slide-in-from-top-1",
|
|
58
|
+
"data-[side=left]:slide-in-from-right-1",
|
|
59
|
+
"data-[side=right]:slide-in-from-left-1",
|
|
60
|
+
"data-[side=top]:slide-in-from-bottom-1",
|
|
61
|
+
// Transform origin for natural scaling
|
|
62
|
+
"origin-[--radix-tooltip-content-transform-origin]",
|
|
63
|
+
className
|
|
64
|
+
),
|
|
65
|
+
...props,
|
|
66
|
+
children
|
|
67
|
+
}
|
|
68
|
+
) });
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { cn } from './chunk-IMKLN273.mjs';
|
|
2
|
+
import { cva } from 'class-variance-authority';
|
|
3
|
+
import { jsx } from 'react/jsx-runtime';
|
|
4
|
+
|
|
5
|
+
var cardVariants = cva(
|
|
6
|
+
"bg-card text-card-foreground flex flex-col gap-6 rounded-box py-6",
|
|
7
|
+
{
|
|
8
|
+
variants: {
|
|
9
|
+
elevation: {
|
|
10
|
+
flat: "shadow-none",
|
|
11
|
+
raised: "shadow-sm",
|
|
12
|
+
floating: "shadow-lg"
|
|
13
|
+
},
|
|
14
|
+
border: {
|
|
15
|
+
default: "border",
|
|
16
|
+
subtle: "border border-border/50",
|
|
17
|
+
none: "border-0"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
defaultVariants: {
|
|
21
|
+
elevation: "raised",
|
|
22
|
+
border: "default"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
function Card({ className, elevation, border, ...props }) {
|
|
27
|
+
return /* @__PURE__ */ jsx(
|
|
28
|
+
"div",
|
|
29
|
+
{
|
|
30
|
+
"data-slot": "card",
|
|
31
|
+
className: cn(cardVariants({ elevation, border, className })),
|
|
32
|
+
...props
|
|
33
|
+
}
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
function CardHeader({ className, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
"div",
|
|
39
|
+
{
|
|
40
|
+
"data-slot": "card-header",
|
|
41
|
+
className: cn(
|
|
42
|
+
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
|
43
|
+
className
|
|
44
|
+
),
|
|
45
|
+
...props
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
function CardTitle({ className, ...props }) {
|
|
50
|
+
return /* @__PURE__ */ jsx(
|
|
51
|
+
"div",
|
|
52
|
+
{
|
|
53
|
+
"data-slot": "card-title",
|
|
54
|
+
className: cn("leading-none font-semibold", className),
|
|
55
|
+
...props
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function CardDescription({ className, ...props }) {
|
|
60
|
+
return /* @__PURE__ */ jsx(
|
|
61
|
+
"div",
|
|
62
|
+
{
|
|
63
|
+
"data-slot": "card-description",
|
|
64
|
+
className: cn("text-muted-foreground text-sm", className),
|
|
65
|
+
...props
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
function CardAction({ className, ...props }) {
|
|
70
|
+
return /* @__PURE__ */ jsx(
|
|
71
|
+
"div",
|
|
72
|
+
{
|
|
73
|
+
"data-slot": "card-action",
|
|
74
|
+
className: cn(
|
|
75
|
+
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
|
76
|
+
className
|
|
77
|
+
),
|
|
78
|
+
...props
|
|
79
|
+
}
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
function CardContent({ className, ...props }) {
|
|
83
|
+
return /* @__PURE__ */ jsx(
|
|
84
|
+
"div",
|
|
85
|
+
{
|
|
86
|
+
"data-slot": "card-content",
|
|
87
|
+
className: cn("px-6", className),
|
|
88
|
+
...props
|
|
89
|
+
}
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
function CardFooter({ className, ...props }) {
|
|
93
|
+
return /* @__PURE__ */ jsx(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
"data-slot": "card-footer",
|
|
97
|
+
className: cn("flex items-center px-6 [.border-t]:pt-6", className),
|
|
98
|
+
...props
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle };
|