@karakuri-ui/react 0.2.2 → 0.2.4
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 +9 -0
- package/dist/components/ui/accordion.d.mts +49 -0
- package/dist/components/ui/accordion.d.ts +49 -0
- package/dist/components/ui/accordion.js +220 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/accordion.mjs +181 -0
- package/dist/components/ui/accordion.mjs.map +1 -0
- package/dist/components/ui/alert.d.mts +47 -0
- package/dist/components/ui/alert.d.ts +47 -0
- package/dist/components/ui/alert.js +223 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/alert.mjs +185 -0
- package/dist/components/ui/alert.mjs.map +1 -0
- package/dist/components/ui/avatar.d.mts +232 -0
- package/dist/components/ui/avatar.d.ts +232 -0
- package/dist/components/ui/avatar.js +250 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/avatar.mjs +209 -0
- package/dist/components/ui/avatar.mjs.map +1 -0
- package/dist/components/ui/badge.d.mts +31 -0
- package/dist/components/ui/badge.d.ts +31 -0
- package/dist/components/ui/badge.js +205 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/badge.mjs +170 -0
- package/dist/components/ui/badge.mjs.map +1 -0
- package/dist/components/ui/breadcrumb.d.mts +57 -0
- package/dist/components/ui/breadcrumb.d.ts +57 -0
- package/dist/components/ui/breadcrumb.js +209 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/breadcrumb.mjs +168 -0
- package/dist/components/ui/breadcrumb.mjs.map +1 -0
- package/dist/components/ui/button-group.d.mts +22 -0
- package/dist/components/ui/button-group.d.ts +22 -0
- package/dist/components/ui/button-group.js +107 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button-group.mjs +72 -0
- package/dist/components/ui/button-group.mjs.map +1 -0
- package/dist/components/ui/button.d.mts +31 -0
- package/dist/components/ui/button.d.ts +31 -0
- package/dist/components/ui/button.js +176 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/button.mjs +141 -0
- package/dist/components/ui/button.mjs.map +1 -0
- package/dist/components/ui/card.d.mts +77 -0
- package/dist/components/ui/card.d.ts +77 -0
- package/dist/components/ui/card.js +370 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/card.mjs +328 -0
- package/dist/components/ui/card.mjs.map +1 -0
- package/dist/{chart.js → components/ui/chart.js} +29 -39
- package/dist/components/ui/chart.js.map +1 -0
- package/dist/{chart.mjs → components/ui/chart.mjs} +21 -31
- package/dist/components/ui/chart.mjs.map +1 -0
- package/dist/components/ui/checkbox.d.mts +24 -0
- package/dist/components/ui/checkbox.d.ts +24 -0
- package/dist/components/ui/checkbox.js +173 -0
- package/dist/components/ui/checkbox.js.map +1 -0
- package/dist/components/ui/checkbox.mjs +138 -0
- package/dist/components/ui/checkbox.mjs.map +1 -0
- package/dist/components/ui/divider.d.mts +27 -0
- package/dist/components/ui/divider.d.ts +27 -0
- package/dist/components/ui/divider.js +147 -0
- package/dist/components/ui/divider.js.map +1 -0
- package/dist/components/ui/divider.mjs +112 -0
- package/dist/components/ui/divider.mjs.map +1 -0
- package/dist/components/ui/drawer.d.mts +51 -0
- package/dist/components/ui/drawer.d.ts +51 -0
- package/dist/components/ui/drawer.js +225 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/drawer.mjs +178 -0
- package/dist/components/ui/drawer.mjs.map +1 -0
- package/dist/components/ui/dropdown.d.mts +59 -0
- package/dist/components/ui/dropdown.d.ts +59 -0
- package/dist/components/ui/dropdown.js +310 -0
- package/dist/components/ui/dropdown.js.map +1 -0
- package/dist/components/ui/dropdown.mjs +263 -0
- package/dist/components/ui/dropdown.mjs.map +1 -0
- package/dist/components/ui/field.d.mts +33 -0
- package/dist/components/ui/field.d.ts +33 -0
- package/dist/components/ui/field.js +146 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/field.mjs +108 -0
- package/dist/components/ui/field.mjs.map +1 -0
- package/dist/components/ui/icon-button.d.mts +20 -0
- package/dist/components/ui/icon-button.d.ts +20 -0
- package/dist/components/ui/icon-button.js +147 -0
- package/dist/components/ui/icon-button.js.map +1 -0
- package/dist/components/ui/icon-button.mjs +112 -0
- package/dist/components/ui/icon-button.mjs.map +1 -0
- package/dist/components/ui/index.d.mts +55 -0
- package/dist/components/ui/index.d.ts +55 -0
- package/dist/components/ui/index.js +476 -0
- package/dist/components/ui/index.js.map +1 -0
- package/dist/components/ui/index.mjs +246 -0
- package/dist/components/ui/index.mjs.map +1 -0
- package/dist/components/ui/input.d.mts +20 -0
- package/dist/components/ui/input.d.ts +20 -0
- package/dist/components/ui/input.js +250 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/input.mjs +215 -0
- package/dist/components/ui/input.mjs.map +1 -0
- package/dist/components/ui/metric-card.d.mts +53 -0
- package/dist/components/ui/metric-card.d.ts +53 -0
- package/dist/components/ui/metric-card.js +258 -0
- package/dist/components/ui/metric-card.js.map +1 -0
- package/dist/components/ui/metric-card.mjs +217 -0
- package/dist/components/ui/metric-card.mjs.map +1 -0
- package/dist/components/ui/modal.d.mts +77 -0
- package/dist/components/ui/modal.d.ts +77 -0
- package/dist/components/ui/modal.js +396 -0
- package/dist/components/ui/modal.js.map +1 -0
- package/dist/components/ui/modal.mjs +338 -0
- package/dist/components/ui/modal.mjs.map +1 -0
- package/dist/components/ui/navigation-menu.d.mts +139 -0
- package/dist/components/ui/navigation-menu.d.ts +139 -0
- package/dist/components/ui/navigation-menu.js +531 -0
- package/dist/components/ui/navigation-menu.js.map +1 -0
- package/dist/components/ui/navigation-menu.mjs +488 -0
- package/dist/components/ui/navigation-menu.mjs.map +1 -0
- package/dist/components/ui/pagination.d.mts +130 -0
- package/dist/components/ui/pagination.d.ts +130 -0
- package/dist/components/ui/pagination.js +495 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/pagination.mjs +449 -0
- package/dist/components/ui/pagination.mjs.map +1 -0
- package/dist/components/ui/popover.d.mts +41 -0
- package/dist/components/ui/popover.d.ts +41 -0
- package/dist/components/ui/popover.js +175 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/popover.mjs +133 -0
- package/dist/components/ui/popover.mjs.map +1 -0
- package/dist/components/ui/progress.d.mts +35 -0
- package/dist/components/ui/progress.d.ts +35 -0
- package/dist/components/ui/progress.js +194 -0
- package/dist/components/ui/progress.js.map +1 -0
- package/dist/components/ui/progress.mjs +159 -0
- package/dist/components/ui/progress.mjs.map +1 -0
- package/dist/components/ui/radio-group.d.mts +40 -0
- package/dist/components/ui/radio-group.d.ts +40 -0
- package/dist/components/ui/radio-group.js +177 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/radio-group.mjs +140 -0
- package/dist/components/ui/radio-group.mjs.map +1 -0
- package/dist/components/ui/segmented.d.mts +30 -0
- package/dist/components/ui/segmented.d.ts +30 -0
- package/dist/components/ui/segmented.js +241 -0
- package/dist/components/ui/segmented.js.map +1 -0
- package/dist/components/ui/segmented.mjs +204 -0
- package/dist/components/ui/segmented.mjs.map +1 -0
- package/dist/components/ui/select.d.mts +31 -0
- package/dist/components/ui/select.d.ts +31 -0
- package/dist/components/ui/select.js +317 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/select.mjs +276 -0
- package/dist/components/ui/select.mjs.map +1 -0
- package/dist/components/ui/skeleton.d.mts +26 -0
- package/dist/components/ui/skeleton.d.ts +26 -0
- package/dist/components/ui/skeleton.js +144 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/skeleton.mjs +109 -0
- package/dist/components/ui/skeleton.mjs.map +1 -0
- package/dist/components/ui/slider.d.mts +38 -0
- package/dist/components/ui/slider.d.ts +38 -0
- package/dist/components/ui/slider.js +180 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/slider.mjs +145 -0
- package/dist/components/ui/slider.mjs.map +1 -0
- package/dist/components/ui/spinner.d.mts +23 -0
- package/dist/components/ui/spinner.d.ts +23 -0
- package/dist/components/ui/spinner.js +471 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/spinner.mjs +436 -0
- package/dist/components/ui/spinner.mjs.map +1 -0
- package/dist/components/ui/switch.d.mts +22 -0
- package/dist/components/ui/switch.d.ts +22 -0
- package/dist/components/ui/switch.js +173 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/switch.mjs +138 -0
- package/dist/components/ui/switch.mjs.map +1 -0
- package/dist/components/ui/table.d.mts +74 -0
- package/dist/components/ui/table.d.ts +74 -0
- package/dist/components/ui/table.js +240 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/table.mjs +199 -0
- package/dist/components/ui/table.mjs.map +1 -0
- package/dist/components/ui/tabs.d.mts +40 -0
- package/dist/components/ui/tabs.d.ts +40 -0
- package/dist/components/ui/tabs.js +238 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/tabs.mjs +199 -0
- package/dist/components/ui/tabs.mjs.map +1 -0
- package/dist/components/ui/textarea.d.mts +19 -0
- package/dist/components/ui/textarea.d.ts +19 -0
- package/dist/components/ui/textarea.js +181 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/textarea.mjs +146 -0
- package/dist/components/ui/textarea.mjs.map +1 -0
- package/dist/components/ui/toast.d.mts +93 -0
- package/dist/components/ui/toast.d.ts +93 -0
- package/dist/components/ui/toast.js +429 -0
- package/dist/components/ui/toast.js.map +1 -0
- package/dist/components/ui/toast.mjs +393 -0
- package/dist/components/ui/toast.mjs.map +1 -0
- package/dist/components/ui/toggle-group.d.mts +47 -0
- package/dist/components/ui/toggle-group.d.ts +47 -0
- package/dist/components/ui/toggle-group.js +186 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle-group.mjs +149 -0
- package/dist/components/ui/toggle-group.mjs.map +1 -0
- package/dist/components/ui/toggle.d.mts +19 -0
- package/dist/components/ui/toggle.d.ts +19 -0
- package/dist/components/ui/toggle.js +194 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/toggle.mjs +159 -0
- package/dist/components/ui/toggle.mjs.map +1 -0
- package/dist/components/ui/tooltip.d.mts +37 -0
- package/dist/components/ui/tooltip.d.ts +37 -0
- package/dist/components/ui/tooltip.js +137 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/components/ui/tooltip.mjs +96 -0
- package/dist/components/ui/tooltip.mjs.map +1 -0
- package/dist/lib/utils.d.mts +10 -0
- package/dist/lib/utils.d.ts +10 -0
- package/dist/lib/utils.js +33 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/utils.mjs +9 -0
- package/dist/lib/utils.mjs.map +1 -0
- package/package.json +11 -11
- package/dist/chart.js.map +0 -1
- package/dist/chart.mjs.map +0 -1
- package/dist/index.d.mts +0 -1636
- package/dist/index.d.ts +0 -1636
- package/dist/index.js +0 -7291
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -7048
- package/dist/index.mjs.map +0 -1
- /package/dist/{chart.d.mts → components/ui/chart.d.mts} +0 -0
- /package/dist/{chart.d.ts → components/ui/chart.d.ts} +0 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var card_exports = {};
|
|
31
|
+
__export(card_exports, {
|
|
32
|
+
Card: () => Card,
|
|
33
|
+
CardAction: () => CardAction,
|
|
34
|
+
CardContent: () => CardContent,
|
|
35
|
+
CardDescription: () => CardDescription,
|
|
36
|
+
CardFooter: () => CardFooter,
|
|
37
|
+
CardHeader: () => CardHeader,
|
|
38
|
+
CardImage: () => CardImage,
|
|
39
|
+
CardTitle: () => CardTitle,
|
|
40
|
+
cardVariants: () => cardVariants
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(card_exports);
|
|
43
|
+
var React = __toESM(require("react"));
|
|
44
|
+
var import_react_slot = require("@radix-ui/react-slot");
|
|
45
|
+
var import_class_variance_authority = require("class-variance-authority");
|
|
46
|
+
var import_utils = require("../../lib/utils");
|
|
47
|
+
const CardContext = React.createContext({
|
|
48
|
+
size: "default",
|
|
49
|
+
direction: "vertical"
|
|
50
|
+
});
|
|
51
|
+
function useCard() {
|
|
52
|
+
return React.useContext(CardContext);
|
|
53
|
+
}
|
|
54
|
+
const cardVariants = (0, import_class_variance_authority.cva)(
|
|
55
|
+
"flex overflow-hidden transition-all duration-normal",
|
|
56
|
+
{
|
|
57
|
+
variants: {
|
|
58
|
+
variant: {
|
|
59
|
+
default: "bg-background-paper border border-border-subtle shadow-sm",
|
|
60
|
+
outline: "bg-background-paper border border-border",
|
|
61
|
+
ghost: "bg-transparent"
|
|
62
|
+
},
|
|
63
|
+
size: {
|
|
64
|
+
sm: "",
|
|
65
|
+
default: "",
|
|
66
|
+
lg: ""
|
|
67
|
+
},
|
|
68
|
+
radius: {
|
|
69
|
+
sm: "rounded-sm",
|
|
70
|
+
// 2px
|
|
71
|
+
base: "rounded",
|
|
72
|
+
// 4px
|
|
73
|
+
md: "rounded-md",
|
|
74
|
+
// 6px
|
|
75
|
+
lg: "rounded-lg",
|
|
76
|
+
// 8px
|
|
77
|
+
xl: "rounded-xl",
|
|
78
|
+
// 12px
|
|
79
|
+
"2xl": "rounded-2xl"
|
|
80
|
+
// 16px
|
|
81
|
+
},
|
|
82
|
+
direction: {
|
|
83
|
+
vertical: "flex-col",
|
|
84
|
+
horizontal: "flex-row"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
defaultVariants: {
|
|
88
|
+
variant: "default",
|
|
89
|
+
size: "default",
|
|
90
|
+
radius: "xl",
|
|
91
|
+
direction: "vertical"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
const CardRoot = React.forwardRef(
|
|
96
|
+
({
|
|
97
|
+
className,
|
|
98
|
+
variant = "default",
|
|
99
|
+
size = "default",
|
|
100
|
+
radius = "xl",
|
|
101
|
+
direction = "vertical",
|
|
102
|
+
interactive = false,
|
|
103
|
+
asChild = false,
|
|
104
|
+
children,
|
|
105
|
+
...props
|
|
106
|
+
}, ref) => {
|
|
107
|
+
const Comp = asChild ? import_react_slot.Slot : "div";
|
|
108
|
+
let content = children;
|
|
109
|
+
if (direction === "horizontal") {
|
|
110
|
+
const childArray = React.Children.toArray(children);
|
|
111
|
+
const imageChildren = [];
|
|
112
|
+
const otherChildren = [];
|
|
113
|
+
childArray.forEach((child) => {
|
|
114
|
+
if (React.isValidElement(child) && child.type === CardImage) {
|
|
115
|
+
imageChildren.push(child);
|
|
116
|
+
} else {
|
|
117
|
+
otherChildren.push(child);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
content = /* @__PURE__ */ React.createElement(React.Fragment, null, imageChildren, /* @__PURE__ */ React.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, otherChildren));
|
|
121
|
+
}
|
|
122
|
+
return /* @__PURE__ */ React.createElement(CardContext.Provider, { value: { size, direction } }, /* @__PURE__ */ React.createElement(
|
|
123
|
+
Comp,
|
|
124
|
+
{
|
|
125
|
+
ref,
|
|
126
|
+
className: (0, import_utils.cn)(
|
|
127
|
+
cardVariants({ variant, size, radius, direction }),
|
|
128
|
+
interactive && "cursor-pointer hover:shadow-md hover:-translate-y-0.5",
|
|
129
|
+
className
|
|
130
|
+
),
|
|
131
|
+
...props
|
|
132
|
+
},
|
|
133
|
+
content
|
|
134
|
+
));
|
|
135
|
+
}
|
|
136
|
+
);
|
|
137
|
+
CardRoot.displayName = "Card";
|
|
138
|
+
const sizePaddingMap = {
|
|
139
|
+
sm: "p-4",
|
|
140
|
+
// 16px
|
|
141
|
+
default: "p-4 sm:p-6",
|
|
142
|
+
// 16px → 24px
|
|
143
|
+
lg: "p-6 sm:p-8"
|
|
144
|
+
// 24px → 32px
|
|
145
|
+
};
|
|
146
|
+
const sizePaddingXMap = {
|
|
147
|
+
sm: "px-4",
|
|
148
|
+
// 16px
|
|
149
|
+
default: "px-4 sm:px-6",
|
|
150
|
+
// 16px → 24px
|
|
151
|
+
lg: "px-6 sm:px-8"
|
|
152
|
+
// 24px → 32px
|
|
153
|
+
};
|
|
154
|
+
const sizePaddingYMap = {
|
|
155
|
+
sm: "py-3",
|
|
156
|
+
// 12px
|
|
157
|
+
default: "py-3 sm:py-4",
|
|
158
|
+
// 12px → 16px
|
|
159
|
+
lg: "py-4 sm:py-5"
|
|
160
|
+
// 16px → 20px
|
|
161
|
+
};
|
|
162
|
+
const sizePaddingTMap = {
|
|
163
|
+
sm: "pt-5",
|
|
164
|
+
// 20px
|
|
165
|
+
default: "pt-5 sm:pt-6",
|
|
166
|
+
// 20px → 24px
|
|
167
|
+
lg: "pt-6 sm:pt-8"
|
|
168
|
+
// 24px → 32px
|
|
169
|
+
};
|
|
170
|
+
const sizeInnerPbMap = {
|
|
171
|
+
sm: "pb-3",
|
|
172
|
+
// 12px
|
|
173
|
+
default: "pb-3 sm:pb-4",
|
|
174
|
+
// 12px → 16px
|
|
175
|
+
lg: "pb-3 sm:pb-4"
|
|
176
|
+
// 12px → 16px (default와 동일)
|
|
177
|
+
};
|
|
178
|
+
const sizeLastPbMap = {
|
|
179
|
+
sm: "last:pb-5",
|
|
180
|
+
// 20px
|
|
181
|
+
default: "last:pb-5 sm:last:pb-6",
|
|
182
|
+
// 20px → 24px
|
|
183
|
+
lg: "last:pb-6 sm:last:pb-8"
|
|
184
|
+
// 24px → 32px
|
|
185
|
+
};
|
|
186
|
+
const overlayOpacityMap = {
|
|
187
|
+
10: "from-black/10",
|
|
188
|
+
20: "from-black/20",
|
|
189
|
+
30: "from-black/30",
|
|
190
|
+
40: "from-black/40",
|
|
191
|
+
50: "from-black/50",
|
|
192
|
+
60: "from-black/60",
|
|
193
|
+
70: "from-black/70",
|
|
194
|
+
80: "from-black/80",
|
|
195
|
+
90: "from-black/90"
|
|
196
|
+
};
|
|
197
|
+
const CardImage = React.forwardRef(
|
|
198
|
+
({ className, overlay = false, overlayOpacity = 60, overlayClassName, alt = "", ...props }, ref) => {
|
|
199
|
+
const { direction } = useCard();
|
|
200
|
+
const isHorizontal = direction === "horizontal";
|
|
201
|
+
if (isHorizontal) {
|
|
202
|
+
const opacityClass = overlay ? overlayOpacityMap[overlayOpacity] || "from-black/60" : null;
|
|
203
|
+
return /* @__PURE__ */ React.createElement("div", { className: (0, import_utils.cn)("relative shrink-0 w-48 overflow-hidden", className) }, /* @__PURE__ */ React.createElement(
|
|
204
|
+
"img",
|
|
205
|
+
{
|
|
206
|
+
ref,
|
|
207
|
+
alt,
|
|
208
|
+
className: "absolute inset-0 w-full h-full object-cover",
|
|
209
|
+
...props
|
|
210
|
+
}
|
|
211
|
+
), overlay && /* @__PURE__ */ React.createElement("div", { className: (0, import_utils.cn)("absolute inset-0 bg-gradient-to-t to-transparent", overlayClassName || opacityClass) }));
|
|
212
|
+
}
|
|
213
|
+
if (overlay) {
|
|
214
|
+
const opacityClass = overlayOpacityMap[overlayOpacity] || "from-black/60";
|
|
215
|
+
return /* @__PURE__ */ React.createElement("div", { className: "relative w-full shrink-0 overflow-hidden" }, /* @__PURE__ */ React.createElement(
|
|
216
|
+
"img",
|
|
217
|
+
{
|
|
218
|
+
ref,
|
|
219
|
+
alt,
|
|
220
|
+
className: (0, import_utils.cn)("w-full object-cover", className),
|
|
221
|
+
...props
|
|
222
|
+
}
|
|
223
|
+
), /* @__PURE__ */ React.createElement("div", { className: (0, import_utils.cn)("absolute inset-0 bg-gradient-to-t to-transparent", overlayClassName || opacityClass) }));
|
|
224
|
+
}
|
|
225
|
+
return /* @__PURE__ */ React.createElement(
|
|
226
|
+
"img",
|
|
227
|
+
{
|
|
228
|
+
ref,
|
|
229
|
+
alt,
|
|
230
|
+
className: (0, import_utils.cn)("w-full object-cover shrink-0", className),
|
|
231
|
+
...props
|
|
232
|
+
}
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
);
|
|
236
|
+
CardImage.displayName = "CardImage";
|
|
237
|
+
const CardHeader = React.forwardRef(
|
|
238
|
+
({ className, children, ...props }, ref) => {
|
|
239
|
+
const { size } = useCard();
|
|
240
|
+
const childArray = React.Children.toArray(children);
|
|
241
|
+
const actionChildren = [];
|
|
242
|
+
const otherChildren = [];
|
|
243
|
+
childArray.forEach((child) => {
|
|
244
|
+
if (React.isValidElement(child) && child.type === CardAction) {
|
|
245
|
+
actionChildren.push(child);
|
|
246
|
+
} else {
|
|
247
|
+
otherChildren.push(child);
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
return /* @__PURE__ */ React.createElement(
|
|
251
|
+
"div",
|
|
252
|
+
{
|
|
253
|
+
ref,
|
|
254
|
+
className: (0, import_utils.cn)(
|
|
255
|
+
"flex items-start gap-3",
|
|
256
|
+
sizePaddingXMap[size],
|
|
257
|
+
sizePaddingTMap[size],
|
|
258
|
+
sizeInnerPbMap[size],
|
|
259
|
+
sizeLastPbMap[size],
|
|
260
|
+
className
|
|
261
|
+
),
|
|
262
|
+
...props
|
|
263
|
+
},
|
|
264
|
+
/* @__PURE__ */ React.createElement("div", { className: "flex-1 min-w-0 space-y-3" }, otherChildren),
|
|
265
|
+
actionChildren
|
|
266
|
+
);
|
|
267
|
+
}
|
|
268
|
+
);
|
|
269
|
+
CardHeader.displayName = "CardHeader";
|
|
270
|
+
const CardTitle = React.forwardRef(
|
|
271
|
+
({ className, icon, children, ...props }, ref) => {
|
|
272
|
+
return /* @__PURE__ */ React.createElement(
|
|
273
|
+
"h3",
|
|
274
|
+
{
|
|
275
|
+
ref,
|
|
276
|
+
className: (0, import_utils.cn)(
|
|
277
|
+
"font-semibold text-foreground leading-none tracking-tight",
|
|
278
|
+
icon && "flex items-center gap-2",
|
|
279
|
+
className
|
|
280
|
+
),
|
|
281
|
+
...props
|
|
282
|
+
},
|
|
283
|
+
icon && /* @__PURE__ */ React.createElement("span", { className: "shrink-0 icon-sm [&>svg]:w-full [&>svg]:h-full", "aria-hidden": "true" }, icon),
|
|
284
|
+
children
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
);
|
|
288
|
+
CardTitle.displayName = "CardTitle";
|
|
289
|
+
const CardDescription = React.forwardRef(
|
|
290
|
+
({ className, ...props }, ref) => {
|
|
291
|
+
return /* @__PURE__ */ React.createElement(
|
|
292
|
+
"p",
|
|
293
|
+
{
|
|
294
|
+
ref,
|
|
295
|
+
className: (0, import_utils.cn)("text-sm text-text-muted", className),
|
|
296
|
+
...props
|
|
297
|
+
}
|
|
298
|
+
);
|
|
299
|
+
}
|
|
300
|
+
);
|
|
301
|
+
CardDescription.displayName = "CardDescription";
|
|
302
|
+
const CardAction = React.forwardRef(
|
|
303
|
+
({ className, ...props }, ref) => {
|
|
304
|
+
return /* @__PURE__ */ React.createElement(
|
|
305
|
+
"div",
|
|
306
|
+
{
|
|
307
|
+
ref,
|
|
308
|
+
className: (0, import_utils.cn)("shrink-0 ml-auto -mr-2 -mt-2", className),
|
|
309
|
+
...props
|
|
310
|
+
}
|
|
311
|
+
);
|
|
312
|
+
}
|
|
313
|
+
);
|
|
314
|
+
CardAction.displayName = "CardAction";
|
|
315
|
+
const CardContent = React.forwardRef(
|
|
316
|
+
({ className, ...props }, ref) => {
|
|
317
|
+
const { size } = useCard();
|
|
318
|
+
return /* @__PURE__ */ React.createElement(
|
|
319
|
+
"div",
|
|
320
|
+
{
|
|
321
|
+
ref,
|
|
322
|
+
className: (0, import_utils.cn)(sizePaddingXMap[size], "pb-0", sizeLastPbMap[size], className),
|
|
323
|
+
...props
|
|
324
|
+
}
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
);
|
|
328
|
+
CardContent.displayName = "CardContent";
|
|
329
|
+
const CardFooter = React.forwardRef(
|
|
330
|
+
({ className, ...props }, ref) => {
|
|
331
|
+
const { size } = useCard();
|
|
332
|
+
return /* @__PURE__ */ React.createElement(
|
|
333
|
+
"div",
|
|
334
|
+
{
|
|
335
|
+
ref,
|
|
336
|
+
className: (0, import_utils.cn)(
|
|
337
|
+
"flex items-center gap-2",
|
|
338
|
+
sizePaddingXMap[size],
|
|
339
|
+
sizePaddingYMap[size],
|
|
340
|
+
"mt-auto",
|
|
341
|
+
className
|
|
342
|
+
),
|
|
343
|
+
...props
|
|
344
|
+
}
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
);
|
|
348
|
+
CardFooter.displayName = "CardFooter";
|
|
349
|
+
const Card = Object.assign(CardRoot, {
|
|
350
|
+
Image: CardImage,
|
|
351
|
+
Header: CardHeader,
|
|
352
|
+
Title: CardTitle,
|
|
353
|
+
Description: CardDescription,
|
|
354
|
+
Action: CardAction,
|
|
355
|
+
Content: CardContent,
|
|
356
|
+
Footer: CardFooter
|
|
357
|
+
});
|
|
358
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
359
|
+
0 && (module.exports = {
|
|
360
|
+
Card,
|
|
361
|
+
CardAction,
|
|
362
|
+
CardContent,
|
|
363
|
+
CardDescription,
|
|
364
|
+
CardFooter,
|
|
365
|
+
CardHeader,
|
|
366
|
+
CardImage,
|
|
367
|
+
CardTitle,
|
|
368
|
+
cardVariants
|
|
369
|
+
});
|
|
370
|
+
//# sourceMappingURL=card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/ui/card.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../lib/utils'\n\n// ── Context for size propagation ──\ntype CardSize = 'sm' | 'default' | 'lg'\ntype CardDirection = 'vertical' | 'horizontal'\n\nconst CardContext = React.createContext<{ size: CardSize; direction: CardDirection }>({\n size: 'default',\n direction: 'vertical',\n})\n\nfunction useCard() {\n return React.useContext(CardContext)\n}\n\n// ── Card (Root) ──\nconst cardVariants = cva(\n 'flex overflow-hidden transition-all duration-normal',\n {\n variants: {\n variant: {\n default: 'bg-background-paper border border-border-subtle shadow-sm',\n outline: 'bg-background-paper border border-border',\n ghost: 'bg-transparent',\n },\n size: {\n sm: '',\n default: '',\n lg: '',\n },\n radius: {\n sm: 'rounded-sm', // 2px\n base: 'rounded', // 4px\n md: 'rounded-md', // 6px\n lg: 'rounded-lg', // 8px\n xl: 'rounded-xl', // 12px\n '2xl': 'rounded-2xl', // 16px\n },\n direction: {\n vertical: 'flex-col',\n horizontal: 'flex-row',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n radius: 'xl',\n direction: 'vertical',\n },\n }\n)\n\nexport type CardVariant = 'default' | 'outline' | 'ghost'\nexport type CardRadius = 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl'\n\nexport interface CardProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof cardVariants> {\n /** Visual style */\n variant?: CardVariant\n /** Content padding scale */\n size?: CardSize\n /** Border radius */\n radius?: CardRadius\n /** Layout direction */\n direction?: CardDirection\n /** Enable hover effect for interactive cards */\n interactive?: boolean\n /** Render as child element (Slot pattern) */\n asChild?: boolean\n}\n\nconst CardRoot = React.forwardRef<HTMLDivElement, CardProps>(\n ({\n className,\n variant = 'default',\n size = 'default',\n radius = 'xl',\n direction = 'vertical',\n interactive = false,\n asChild = false,\n children,\n ...props\n }, ref) => {\n const Comp = asChild ? Slot : 'div'\n\n // Horizontal: separate CardImage from rest, wrap rest in flex-col\n let content = children\n if (direction === 'horizontal') {\n const childArray = React.Children.toArray(children)\n const imageChildren: React.ReactNode[] = []\n const otherChildren: React.ReactNode[] = []\n\n childArray.forEach((child) => {\n if (React.isValidElement(child) && child.type === CardImage) {\n imageChildren.push(child)\n } else {\n otherChildren.push(child)\n }\n })\n\n content = (\n <>\n {imageChildren}\n <div className=\"flex-1 flex flex-col min-w-0\">\n {otherChildren}\n </div>\n </>\n )\n }\n\n return (\n <CardContext.Provider value={{ size, direction }}>\n <Comp\n ref={ref}\n className={cn(\n cardVariants({ variant, size, radius, direction }),\n interactive && 'cursor-pointer hover:shadow-md hover:-translate-y-0.5',\n className\n )}\n {...props}\n >\n {content}\n </Comp>\n </CardContext.Provider>\n )\n }\n)\nCardRoot.displayName = 'Card'\n\n// ── Size-based padding map (responsive: mobile → desktop) ──\nconst sizePaddingMap = {\n sm: 'p-4', // 16px\n default: 'p-4 sm:p-6', // 16px → 24px\n lg: 'p-6 sm:p-8', // 24px → 32px\n} as const\n\nconst sizePaddingXMap = {\n sm: 'px-4', // 16px\n default: 'px-4 sm:px-6', // 16px → 24px\n lg: 'px-6 sm:px-8', // 24px → 32px\n} as const\n\nconst sizePaddingYMap = {\n sm: 'py-3', // 12px\n default: 'py-3 sm:py-4', // 12px → 16px\n lg: 'py-4 sm:py-5', // 16px → 20px\n} as const\n\n// Top padding for CardHeader — optical balance (top >= sides)\nconst sizePaddingTMap = {\n sm: 'pt-5', // 20px\n default: 'pt-5 sm:pt-6', // 20px → 24px\n lg: 'pt-6 sm:pt-8', // 24px → 32px\n} as const\n\n// Inner bottom padding (between sections) — tighter than outer\nconst sizeInnerPbMap = {\n sm: 'pb-3', // 12px\n default: 'pb-3 sm:pb-4', // 12px → 16px\n lg: 'pb-3 sm:pb-4', // 12px → 16px (default와 동일)\n} as const\n\n// Last-child bottom padding for CardContent (when no footer) — match pt\nconst sizeLastPbMap = {\n sm: 'last:pb-5', // 20px\n default: 'last:pb-5 sm:last:pb-6', // 20px → 24px\n lg: 'last:pb-6 sm:last:pb-8', // 24px → 32px\n} as const\n\n// ── CardImage ──\n// Overlay opacity to Tailwind class mapping\nconst overlayOpacityMap: Record<number, string> = {\n 10: 'from-black/10',\n 20: 'from-black/20',\n 30: 'from-black/30',\n 40: 'from-black/40',\n 50: 'from-black/50',\n 60: 'from-black/60',\n 70: 'from-black/70',\n 80: 'from-black/80',\n 90: 'from-black/90',\n}\n\nexport interface CardImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n /** Gradient overlay on image */\n overlay?: boolean\n /** Overlay opacity (10–90). Default: 60 */\n overlayOpacity?: number\n /** Custom class for overlay gradient (overrides overlayOpacity) */\n overlayClassName?: string\n}\n\nconst CardImage = React.forwardRef<HTMLImageElement, CardImageProps>(\n ({ className, overlay = false, overlayOpacity = 60, overlayClassName, alt = '', ...props }, ref) => {\n const { direction } = useCard()\n const isHorizontal = direction === 'horizontal'\n\n // Horizontal: use absolute positioning so the image fills the\n // wrapper height which is determined by the content side via\n // flexbox align-items:stretch (default).\n if (isHorizontal) {\n const opacityClass = overlay\n ? (overlayOpacityMap[overlayOpacity] || 'from-black/60')\n : null\n\n return (\n <div className={cn('relative shrink-0 w-48 overflow-hidden', className)}>\n <img\n ref={ref}\n alt={alt}\n className=\"absolute inset-0 w-full h-full object-cover\"\n {...props}\n />\n {overlay && (\n <div className={cn('absolute inset-0 bg-gradient-to-t to-transparent', overlayClassName || opacityClass)} />\n )}\n </div>\n )\n }\n\n // Vertical\n if (overlay) {\n const opacityClass = overlayOpacityMap[overlayOpacity] || 'from-black/60'\n\n return (\n <div className=\"relative w-full shrink-0 overflow-hidden\">\n <img\n ref={ref}\n alt={alt}\n className={cn('w-full object-cover', className)}\n {...props}\n />\n <div className={cn('absolute inset-0 bg-gradient-to-t to-transparent', overlayClassName || opacityClass)} />\n </div>\n )\n }\n\n return (\n <img\n ref={ref}\n alt={alt}\n className={cn('w-full object-cover shrink-0', className)}\n {...props}\n />\n )\n }\n)\nCardImage.displayName = 'CardImage'\n\n// ── CardHeader ──\nexport interface CardHeaderProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardHeader = React.forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, children, ...props }, ref) => {\n const { size } = useCard()\n\n // Separate CardAction from other children for proper flex layout\n const childArray = React.Children.toArray(children)\n const actionChildren: React.ReactNode[] = []\n const otherChildren: React.ReactNode[] = []\n\n childArray.forEach((child) => {\n if (React.isValidElement(child) && child.type === CardAction) {\n actionChildren.push(child)\n } else {\n otherChildren.push(child)\n }\n })\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-start gap-3',\n sizePaddingXMap[size],\n sizePaddingTMap[size],\n sizeInnerPbMap[size],\n sizeLastPbMap[size],\n className\n )}\n {...props}\n >\n <div className=\"flex-1 min-w-0 space-y-3\">\n {otherChildren}\n </div>\n {actionChildren}\n </div>\n )\n }\n)\nCardHeader.displayName = 'CardHeader'\n\n// ── CardTitle ──\nexport interface CardTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {\n /** Leading icon */\n icon?: React.ReactNode\n}\n\nconst CardTitle = React.forwardRef<HTMLHeadingElement, CardTitleProps>(\n ({ className, icon, children, ...props }, ref) => {\n return (\n <h3\n ref={ref}\n className={cn(\n 'font-semibold text-foreground leading-none tracking-tight',\n icon && 'flex items-center gap-2',\n className\n )}\n {...props}\n >\n {icon && (\n <span className=\"shrink-0 icon-sm [&>svg]:w-full [&>svg]:h-full\" aria-hidden=\"true\">\n {icon}\n </span>\n )}\n {children}\n </h3>\n )\n }\n)\nCardTitle.displayName = 'CardTitle'\n\n// ── CardDescription ──\nexport interface CardDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {}\n\nconst CardDescription = React.forwardRef<HTMLParagraphElement, CardDescriptionProps>(\n ({ className, ...props }, ref) => {\n return (\n <p\n ref={ref}\n className={cn('text-sm text-text-muted', className)}\n {...props}\n />\n )\n }\n)\nCardDescription.displayName = 'CardDescription'\n\n// ── CardAction ──\nexport interface CardActionProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardAction = React.forwardRef<HTMLDivElement, CardActionProps>(\n ({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n className={cn('shrink-0 ml-auto -mr-2 -mt-2', className)}\n {...props}\n />\n )\n }\n)\nCardAction.displayName = 'CardAction'\n\n// ── CardContent ──\nexport interface CardContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardContent = React.forwardRef<HTMLDivElement, CardContentProps>(\n ({ className, ...props }, ref) => {\n const { size } = useCard()\n\n return (\n <div\n ref={ref}\n className={cn(sizePaddingXMap[size], 'pb-0', sizeLastPbMap[size], className)}\n {...props}\n />\n )\n }\n)\nCardContent.displayName = 'CardContent'\n\n// ── CardFooter ──\nexport interface CardFooterProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nconst CardFooter = React.forwardRef<HTMLDivElement, CardFooterProps>(\n ({ className, ...props }, ref) => {\n const { size } = useCard()\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center gap-2',\n sizePaddingXMap[size],\n sizePaddingYMap[size],\n 'mt-auto',\n className\n )}\n {...props}\n />\n )\n }\n)\nCardFooter.displayName = 'CardFooter'\n\n// ─── Namespace ──────────────────────────────────────────\nconst Card = Object.assign(CardRoot, {\n Image: CardImage,\n Header: CardHeader,\n Title: CardTitle,\n Description: CardDescription,\n Action: CardAction,\n Content: CardContent,\n Footer: CardFooter,\n})\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace Card {\n export type ImageProps = CardImageProps\n export type HeaderProps = CardHeaderProps\n export type TitleProps = CardTitleProps\n export type DescriptionProps = CardDescriptionProps\n export type ActionProps = CardActionProps\n export type ContentProps = CardContentProps\n export type FooterProps = CardFooterProps\n}\n\nexport {\n Card,\n CardImage,\n CardHeader,\n CardTitle,\n CardDescription,\n CardAction,\n CardContent,\n CardFooter,\n cardVariants,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,YAAuB;AACvB,wBAAqB;AACrB,sCAAuC;AACvC,mBAAmB;AAMnB,MAAM,cAAc,MAAM,cAA4D;AAAA,EACpF,MAAM;AAAA,EACN,WAAW;AACb,CAAC;AAED,SAAS,UAAU;AACjB,SAAO,MAAM,WAAW,WAAW;AACrC;AAGA,MAAM,mBAAe;AAAA,EACnB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,MACN;AAAA,MACA,QAAQ;AAAA,QACN,IAAI;AAAA;AAAA,QACJ,MAAM;AAAA;AAAA,QACN,IAAI;AAAA;AAAA,QACJ,IAAI;AAAA;AAAA,QACJ,IAAI;AAAA;AAAA,QACJ,OAAO;AAAA;AAAA,MACT;AAAA,MACA,WAAW;AAAA,QACT,UAAU;AAAA,QACV,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,WAAW;AAAA,IACb;AAAA,EACF;AACF;AAsBA,MAAM,WAAW,MAAM;AAAA,EACrB,CAAC;AAAA,IACC;AAAA,IACA,UAAU;AAAA,IACV,OAAO;AAAA,IACP,SAAS;AAAA,IACT,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,UAAU;AAAA,IACV;AAAA,IACA,GAAG;AAAA,EACL,GAAG,QAAQ;AACT,UAAM,OAAO,UAAU,yBAAO;AAG9B,QAAI,UAAU;AACd,QAAI,cAAc,cAAc;AAC9B,YAAM,aAAa,MAAM,SAAS,QAAQ,QAAQ;AAClD,YAAM,gBAAmC,CAAC;AAC1C,YAAM,gBAAmC,CAAC;AAE1C,iBAAW,QAAQ,CAAC,UAAU;AAC5B,YAAI,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS,WAAW;AAC3D,wBAAc,KAAK,KAAK;AAAA,QAC1B,OAAO;AACL,wBAAc,KAAK,KAAK;AAAA,QAC1B;AAAA,MACF,CAAC;AAED,gBACE,0DACG,eACD,oCAAC,SAAI,WAAU,kCACZ,aACH,CACF;AAAA,IAEJ;AAEA,WACE,oCAAC,YAAY,UAAZ,EAAqB,OAAO,EAAE,MAAM,UAAU,KAC7C;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW;AAAA,UACT,aAAa,EAAE,SAAS,MAAM,QAAQ,UAAU,CAAC;AAAA,UACjD,eAAe;AAAA,UACf;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,MAEH;AAAA,IACH,CACF;AAAA,EAEJ;AACF;AACA,SAAS,cAAc;AAGvB,MAAM,iBAAiB;AAAA,EACrB,IAAI;AAAA;AAAA,EACJ,SAAS;AAAA;AAAA,EACT,IAAI;AAAA;AACN;AAEA,MAAM,kBAAkB;AAAA,EACtB,IAAI;AAAA;AAAA,EACJ,SAAS;AAAA;AAAA,EACT,IAAI;AAAA;AACN;AAEA,MAAM,kBAAkB;AAAA,EACtB,IAAI;AAAA;AAAA,EACJ,SAAS;AAAA;AAAA,EACT,IAAI;AAAA;AACN;AAGA,MAAM,kBAAkB;AAAA,EACtB,IAAI;AAAA;AAAA,EACJ,SAAS;AAAA;AAAA,EACT,IAAI;AAAA;AACN;AAGA,MAAM,iBAAiB;AAAA,EACrB,IAAI;AAAA;AAAA,EACJ,SAAS;AAAA;AAAA,EACT,IAAI;AAAA;AACN;AAGA,MAAM,gBAAgB;AAAA,EACpB,IAAI;AAAA;AAAA,EACJ,SAAS;AAAA;AAAA,EACT,IAAI;AAAA;AACN;AAIA,MAAM,oBAA4C;AAAA,EAChD,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAWA,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,EAAE,WAAW,UAAU,OAAO,iBAAiB,IAAI,kBAAkB,MAAM,IAAI,GAAG,MAAM,GAAG,QAAQ;AAClG,UAAM,EAAE,UAAU,IAAI,QAAQ;AAC9B,UAAM,eAAe,cAAc;AAKnC,QAAI,cAAc;AAChB,YAAM,eAAe,UAChB,kBAAkB,cAAc,KAAK,kBACtC;AAEJ,aACE,oCAAC,SAAI,eAAW,iBAAG,0CAA0C,SAAS,KACpE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,WAAU;AAAA,UACT,GAAG;AAAA;AAAA,MACN,GACC,WACC,oCAAC,SAAI,eAAW,iBAAG,oDAAoD,oBAAoB,YAAY,GAAG,CAE9G;AAAA,IAEJ;AAGA,QAAI,SAAS;AACX,YAAM,eAAe,kBAAkB,cAAc,KAAK;AAE1D,aACE,oCAAC,SAAI,WAAU,8CACb;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA,eAAW,iBAAG,uBAAuB,SAAS;AAAA,UAC7C,GAAG;AAAA;AAAA,MACN,GACA,oCAAC,SAAI,eAAW,iBAAG,oDAAoD,oBAAoB,YAAY,GAAG,CAC5G;AAAA,IAEJ;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,eAAW,iBAAG,gCAAgC,SAAS;AAAA,QACtD,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,UAAU,cAAc;AAKxB,MAAM,aAAa,MAAM;AAAA,EACvB,CAAC,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,QAAQ;AAC1C,UAAM,EAAE,KAAK,IAAI,QAAQ;AAGzB,UAAM,aAAa,MAAM,SAAS,QAAQ,QAAQ;AAClD,UAAM,iBAAoC,CAAC;AAC3C,UAAM,gBAAmC,CAAC;AAE1C,eAAW,QAAQ,CAAC,UAAU;AAC5B,UAAI,MAAM,eAAe,KAAK,KAAK,MAAM,SAAS,YAAY;AAC5D,uBAAe,KAAK,KAAK;AAAA,MAC3B,OAAO;AACL,sBAAc,KAAK,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW;AAAA,UACT;AAAA,UACA,gBAAgB,IAAI;AAAA,UACpB,gBAAgB,IAAI;AAAA,UACpB,eAAe,IAAI;AAAA,UACnB,cAAc,IAAI;AAAA,UAClB;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,MAEJ,oCAAC,SAAI,WAAU,8BACZ,aACH;AAAA,MACC;AAAA,IACH;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAQzB,MAAM,YAAY,MAAM;AAAA,EACtB,CAAC,EAAE,WAAW,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ;AAChD,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW;AAAA,UACT;AAAA,UACA,QAAQ;AAAA,UACR;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,MAEH,QACC,oCAAC,UAAK,WAAU,kDAAiD,eAAY,UAC1E,IACH;AAAA,MAED;AAAA,IACH;AAAA,EAEJ;AACF;AACA,UAAU,cAAc;AAKxB,MAAM,kBAAkB,MAAM;AAAA,EAC5B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,iBAAG,2BAA2B,SAAS;AAAA,QACjD,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,gBAAgB,cAAc;AAK9B,MAAM,aAAa,MAAM;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,iBAAG,gCAAgC,SAAS;AAAA,QACtD,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAKzB,MAAM,cAAc,MAAM;AAAA,EACxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,UAAM,EAAE,KAAK,IAAI,QAAQ;AAEzB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW,iBAAG,gBAAgB,IAAI,GAAG,QAAQ,cAAc,IAAI,GAAG,SAAS;AAAA,QAC1E,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,YAAY,cAAc;AAK1B,MAAM,aAAa,MAAM;AAAA,EACvB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ;AAChC,UAAM,EAAE,KAAK,IAAI,QAAQ;AAEzB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAW;AAAA,UACT;AAAA,UACA,gBAAgB,IAAI;AAAA,UACpB,gBAAgB,IAAI;AAAA,UACpB;AAAA,UACA;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;AACA,WAAW,cAAc;AAGzB,MAAM,OAAO,OAAO,OAAO,UAAU;AAAA,EACnC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AACV,CAAC;","names":[]}
|