@karakuri-ui/react 0.1.3 → 0.2.1
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 +1 -0
- package/dist/chart.d.mts +163 -0
- package/dist/chart.d.ts +163 -0
- package/dist/chart.js +583 -0
- package/dist/chart.js.map +1 -0
- package/dist/chart.mjs +536 -0
- package/dist/chart.mjs.map +1 -0
- package/dist/index.d.mts +1 -161
- package/dist/index.d.ts +1 -161
- package/dist/index.js +360 -897
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +357 -880
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -2
package/dist/index.mjs
CHANGED
|
@@ -2942,517 +2942,8 @@ var Avatar = Object.assign(AvatarRoot, {
|
|
|
2942
2942
|
Group: AvatarGroup
|
|
2943
2943
|
});
|
|
2944
2944
|
|
|
2945
|
-
// src/components/ui/chart.tsx
|
|
2946
|
-
import * as React20 from "react";
|
|
2947
|
-
import * as RechartsPrimitive from "recharts";
|
|
2948
|
-
var THEMES = { light: "", dark: ".dark" };
|
|
2949
|
-
var ChartContext = React20.createContext(null);
|
|
2950
|
-
function useChart() {
|
|
2951
|
-
const context = React20.useContext(ChartContext);
|
|
2952
|
-
if (!context) {
|
|
2953
|
-
throw new Error("useChart must be used within a <ChartContainer />");
|
|
2954
|
-
}
|
|
2955
|
-
return context;
|
|
2956
|
-
}
|
|
2957
|
-
function ChartContainer({
|
|
2958
|
-
id,
|
|
2959
|
-
className,
|
|
2960
|
-
children,
|
|
2961
|
-
config,
|
|
2962
|
-
hoverFade = false,
|
|
2963
|
-
...props
|
|
2964
|
-
}) {
|
|
2965
|
-
const uniqueId = React20.useId();
|
|
2966
|
-
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
2967
|
-
const [activeIndex, setActiveIndex] = React20.useState(null);
|
|
2968
|
-
const [activeDataKey, setActiveDataKey] = React20.useState(null);
|
|
2969
|
-
return /* @__PURE__ */ React20.createElement(ChartContext.Provider, { value: { config, hoverFade, activeIndex, setActiveIndex, activeDataKey, setActiveDataKey } }, /* @__PURE__ */ React20.createElement(
|
|
2970
|
-
"div",
|
|
2971
|
-
{
|
|
2972
|
-
"data-slot": "chart",
|
|
2973
|
-
"data-chart": chartId,
|
|
2974
|
-
onMouseLeave: hoverFade ? () => {
|
|
2975
|
-
setActiveIndex(null);
|
|
2976
|
-
setActiveDataKey(null);
|
|
2977
|
-
} : void 0,
|
|
2978
|
-
className: cn(
|
|
2979
|
-
"flex aspect-video w-full justify-center text-xs outline-none [&_*]:outline-none",
|
|
2980
|
-
// Responsive axis tick font-size — consumed by ChartXAxis / ChartYAxis via var()
|
|
2981
|
-
"[--chart-axis-fs:var(--font-size-2xs)] sm:[--chart-axis-fs:var(--font-size-xs)]",
|
|
2982
|
-
// Recharts element overrides — use arbitrary properties for v3/v4 compat
|
|
2983
|
-
"[&_.recharts-cartesian-axis-tick_text]:[fill:var(--color-text-muted)]",
|
|
2984
|
-
"[&_.recharts-cartesian-grid_line[stroke='#ccc']]:[stroke:var(--color-border)]",
|
|
2985
|
-
"[&_.recharts-cartesian-grid_line]:[stroke-dasharray:3_3]",
|
|
2986
|
-
"[&_.recharts-curve.recharts-tooltip-cursor]:[stroke:var(--color-border)]",
|
|
2987
|
-
"[&_.recharts-dot[stroke='#fff']]:stroke-transparent",
|
|
2988
|
-
"[&_.recharts-layer]:outline-none",
|
|
2989
|
-
"[&_.recharts-polar-grid_[stroke='#ccc']]:[stroke:var(--color-border)]",
|
|
2990
|
-
"[&_.recharts-radial-bar-background-sector]:[fill:var(--color-background-muted)]",
|
|
2991
|
-
"[&_.recharts-rectangle.recharts-tooltip-cursor]:[fill:transparent]",
|
|
2992
|
-
"[&_.recharts-reference-line_[stroke='#ccc']]:[stroke:var(--color-border)]",
|
|
2993
|
-
"[&_.recharts-sector]:outline-none",
|
|
2994
|
-
"[&_.recharts-sector[stroke='#fff']]:stroke-transparent",
|
|
2995
|
-
"[&_.recharts-surface]:outline-none",
|
|
2996
|
-
className
|
|
2997
|
-
),
|
|
2998
|
-
...props
|
|
2999
|
-
},
|
|
3000
|
-
/* @__PURE__ */ React20.createElement(ChartStyle, { id: chartId, config }),
|
|
3001
|
-
/* @__PURE__ */ React20.createElement(RechartsPrimitive.ResponsiveContainer, null, children)
|
|
3002
|
-
));
|
|
3003
|
-
}
|
|
3004
|
-
var CHART_TOOLTIP_KEYFRAME = "@keyframes chart-tooltip-in{from{opacity:0}to{opacity:1}}";
|
|
3005
|
-
var ChartStyle = ({ id, config }) => {
|
|
3006
|
-
const colorConfig = Object.entries(config).filter(
|
|
3007
|
-
([, config2]) => config2.theme || config2.color
|
|
3008
|
-
);
|
|
3009
|
-
const colorCss = colorConfig.length ? Object.entries(THEMES).map(
|
|
3010
|
-
([theme, prefix]) => `
|
|
3011
|
-
${prefix} [data-chart=${id}] {
|
|
3012
|
-
${colorConfig.map(([key, itemConfig]) => {
|
|
3013
|
-
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
3014
|
-
return color ? ` --color-${key}: ${color};` : null;
|
|
3015
|
-
}).join("\n")}
|
|
3016
|
-
}
|
|
3017
|
-
`
|
|
3018
|
-
).join("\n") : "";
|
|
3019
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3020
|
-
"style",
|
|
3021
|
-
{
|
|
3022
|
-
dangerouslySetInnerHTML: {
|
|
3023
|
-
__html: CHART_TOOLTIP_KEYFRAME + colorCss
|
|
3024
|
-
}
|
|
3025
|
-
}
|
|
3026
|
-
);
|
|
3027
|
-
};
|
|
3028
|
-
var CHART_HOVER_FADE_OPACITY = 0.35;
|
|
3029
|
-
var CHART_FADE_TRANSITION = { transition: "fill-opacity var(--duration-fast) ease-out, stroke-opacity var(--duration-fast) ease-out" };
|
|
3030
|
-
var CHART_BAR_RADIUS_MAP = {
|
|
3031
|
-
none: 0,
|
|
3032
|
-
// --radius-none: 0px
|
|
3033
|
-
sm: 2,
|
|
3034
|
-
// --radius-sm: 2px
|
|
3035
|
-
base: 4,
|
|
3036
|
-
// --radius-base: 4px
|
|
3037
|
-
md: 6,
|
|
3038
|
-
// --radius-md: 6px
|
|
3039
|
-
lg: 8
|
|
3040
|
-
// --radius-lg: 8px
|
|
3041
|
-
};
|
|
3042
|
-
function ChartBar({
|
|
3043
|
-
radius = "none",
|
|
3044
|
-
layout = "vertical",
|
|
3045
|
-
stackPosition = "top",
|
|
3046
|
-
variant = "solid",
|
|
3047
|
-
fill,
|
|
3048
|
-
stackId,
|
|
3049
|
-
...props
|
|
3050
|
-
}) {
|
|
3051
|
-
const { hoverFade, activeIndex, setActiveIndex } = useChart();
|
|
3052
|
-
const r = CHART_BAR_RADIUS_MAP[radius];
|
|
3053
|
-
const isStacked = !!stackId || stackPosition === "bottom";
|
|
3054
|
-
const appliedRadius = r === 0 ? 0 : variant === "outline" && !isStacked ? r : layout === "horizontal" && stackPosition === "bottom" ? 0 : layout === "horizontal" ? [0, r, r, 0] : stackPosition === "bottom" ? 0 : [r, r, 0, 0];
|
|
3055
|
-
const outlineShape = React20.useCallback((shapeProps) => {
|
|
3056
|
-
const x = shapeProps.x ?? 0;
|
|
3057
|
-
const y = shapeProps.y ?? 0;
|
|
3058
|
-
const width = shapeProps.width ?? 0;
|
|
3059
|
-
const height = shapeProps.height ?? 0;
|
|
3060
|
-
if (!width || !height || width <= 0 || height <= 0) return /* @__PURE__ */ React20.createElement("g", null);
|
|
3061
|
-
const sw = 2;
|
|
3062
|
-
const inset = sw / 2;
|
|
3063
|
-
const rx = typeof appliedRadius === "number" ? Math.max(0, appliedRadius - inset) : 0;
|
|
3064
|
-
const fadeMultiplier = hoverFade && activeIndex !== null && shapeProps.index !== activeIndex ? CHART_HOVER_FADE_OPACITY : 1;
|
|
3065
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3066
|
-
"rect",
|
|
3067
|
-
{
|
|
3068
|
-
x: x + inset,
|
|
3069
|
-
y: y + inset,
|
|
3070
|
-
width: Math.max(0, width - sw),
|
|
3071
|
-
height: Math.max(0, height - sw),
|
|
3072
|
-
rx,
|
|
3073
|
-
fill,
|
|
3074
|
-
fillOpacity: 0.4 * fadeMultiplier,
|
|
3075
|
-
stroke: fill,
|
|
3076
|
-
strokeOpacity: fadeMultiplier,
|
|
3077
|
-
strokeWidth: sw,
|
|
3078
|
-
style: hoverFade ? CHART_FADE_TRANSITION : void 0
|
|
3079
|
-
}
|
|
3080
|
-
);
|
|
3081
|
-
}, [appliedRadius, fill, hoverFade, activeIndex]);
|
|
3082
|
-
const solidHoverShape = React20.useCallback((shapeProps) => {
|
|
3083
|
-
const opacity = activeIndex === null ? 1 : shapeProps.index === activeIndex ? 1 : CHART_HOVER_FADE_OPACITY;
|
|
3084
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3085
|
-
RechartsPrimitive.Rectangle,
|
|
3086
|
-
{
|
|
3087
|
-
...shapeProps,
|
|
3088
|
-
fillOpacity: opacity,
|
|
3089
|
-
style: CHART_FADE_TRANSITION
|
|
3090
|
-
}
|
|
3091
|
-
);
|
|
3092
|
-
}, [activeIndex]);
|
|
3093
|
-
const useOutline = variant === "outline" && !isStacked;
|
|
3094
|
-
const needsHoverShape = hoverFade && variant === "solid" && !useOutline;
|
|
3095
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3096
|
-
RechartsPrimitive.Bar,
|
|
3097
|
-
{
|
|
3098
|
-
radius: appliedRadius,
|
|
3099
|
-
fill,
|
|
3100
|
-
stackId,
|
|
3101
|
-
...hoverFade && { isAnimationActive: false },
|
|
3102
|
-
...useOutline && { shape: outlineShape },
|
|
3103
|
-
...needsHoverShape && { shape: solidHoverShape },
|
|
3104
|
-
...hoverFade && { onMouseEnter: (_, index) => setActiveIndex(index) },
|
|
3105
|
-
...props
|
|
3106
|
-
}
|
|
3107
|
-
);
|
|
3108
|
-
}
|
|
3109
|
-
function ChartTooltip(props) {
|
|
3110
|
-
return /* @__PURE__ */ React20.createElement(RechartsPrimitive.Tooltip, { animationDuration: 0, ...props });
|
|
3111
|
-
}
|
|
3112
|
-
function ChartTooltipContent({
|
|
3113
|
-
active,
|
|
3114
|
-
payload,
|
|
3115
|
-
className,
|
|
3116
|
-
indicator = "dot",
|
|
3117
|
-
hideLabel = false,
|
|
3118
|
-
hideIndicator = false,
|
|
3119
|
-
label,
|
|
3120
|
-
labelFormatter,
|
|
3121
|
-
labelClassName,
|
|
3122
|
-
formatter,
|
|
3123
|
-
color,
|
|
3124
|
-
nameKey,
|
|
3125
|
-
labelKey
|
|
3126
|
-
}) {
|
|
3127
|
-
const { config } = useChart();
|
|
3128
|
-
const tooltipLabel = React20.useMemo(() => {
|
|
3129
|
-
if (hideLabel || !payload?.length) {
|
|
3130
|
-
return null;
|
|
3131
|
-
}
|
|
3132
|
-
const [item] = payload;
|
|
3133
|
-
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
3134
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
3135
|
-
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
3136
|
-
if (labelFormatter) {
|
|
3137
|
-
return /* @__PURE__ */ React20.createElement("div", { className: cn("font-semibold", labelClassName) }, labelFormatter(value, payload));
|
|
3138
|
-
}
|
|
3139
|
-
if (!value) {
|
|
3140
|
-
return null;
|
|
3141
|
-
}
|
|
3142
|
-
return /* @__PURE__ */ React20.createElement("div", { className: cn("font-semibold", labelClassName) }, value);
|
|
3143
|
-
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
3144
|
-
if (!active || !payload?.length) {
|
|
3145
|
-
return null;
|
|
3146
|
-
}
|
|
3147
|
-
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
3148
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3149
|
-
"div",
|
|
3150
|
-
{
|
|
3151
|
-
className: cn(
|
|
3152
|
-
"grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border bg-background px-2.5 py-1.5 text-xs shadow-xl",
|
|
3153
|
-
className
|
|
3154
|
-
),
|
|
3155
|
-
style: { animation: "chart-tooltip-in var(--duration-slow) ease-out" }
|
|
3156
|
-
},
|
|
3157
|
-
!nestLabel ? tooltipLabel : null,
|
|
3158
|
-
/* @__PURE__ */ React20.createElement("div", { className: "grid gap-1.5" }, payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
3159
|
-
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
3160
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
3161
|
-
const indicatorColor = color || item.payload?.fill || item.color;
|
|
3162
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3163
|
-
"div",
|
|
3164
|
-
{
|
|
3165
|
-
key: item.dataKey,
|
|
3166
|
-
className: cn(
|
|
3167
|
-
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-text-muted",
|
|
3168
|
-
indicator === "dot" && "items-center"
|
|
3169
|
-
)
|
|
3170
|
-
},
|
|
3171
|
-
formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ React20.createElement(React20.Fragment, null, itemConfig?.icon ? /* @__PURE__ */ React20.createElement(itemConfig.icon, null) : !hideIndicator && /* @__PURE__ */ React20.createElement(
|
|
3172
|
-
"div",
|
|
3173
|
-
{
|
|
3174
|
-
className: cn(
|
|
3175
|
-
"shrink-0 rounded-sm",
|
|
3176
|
-
{
|
|
3177
|
-
"h-2.5 w-2.5": indicator === "dot",
|
|
3178
|
-
"w-1": indicator === "line",
|
|
3179
|
-
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
3180
|
-
"my-0.5": nestLabel && indicator === "dashed"
|
|
3181
|
-
}
|
|
3182
|
-
),
|
|
3183
|
-
style: {
|
|
3184
|
-
backgroundColor: indicator === "dashed" ? "transparent" : indicatorColor,
|
|
3185
|
-
borderColor: indicatorColor
|
|
3186
|
-
}
|
|
3187
|
-
}
|
|
3188
|
-
), /* @__PURE__ */ React20.createElement(
|
|
3189
|
-
"div",
|
|
3190
|
-
{
|
|
3191
|
-
className: cn(
|
|
3192
|
-
"flex flex-1 justify-between leading-none",
|
|
3193
|
-
nestLabel ? "items-end" : "items-center"
|
|
3194
|
-
)
|
|
3195
|
-
},
|
|
3196
|
-
/* @__PURE__ */ React20.createElement("div", { className: "grid gap-1.5" }, nestLabel ? tooltipLabel : null, /* @__PURE__ */ React20.createElement("span", { className: "text-text-muted" }, itemConfig?.label || item.name)),
|
|
3197
|
-
item.value && /* @__PURE__ */ React20.createElement("span", { className: "font-mono font-semibold text-foreground tabular-nums" }, item.value.toLocaleString())
|
|
3198
|
-
))
|
|
3199
|
-
);
|
|
3200
|
-
}))
|
|
3201
|
-
);
|
|
3202
|
-
}
|
|
3203
|
-
var ChartLegend = RechartsPrimitive.Legend;
|
|
3204
|
-
function ChartLegendContent({
|
|
3205
|
-
className,
|
|
3206
|
-
hideIcon = false,
|
|
3207
|
-
payload,
|
|
3208
|
-
verticalAlign = "bottom",
|
|
3209
|
-
align = "center",
|
|
3210
|
-
layout = "horizontal",
|
|
3211
|
-
nameKey
|
|
3212
|
-
}) {
|
|
3213
|
-
const { config } = useChart();
|
|
3214
|
-
if (!payload?.length) {
|
|
3215
|
-
return null;
|
|
3216
|
-
}
|
|
3217
|
-
const isVertical = layout === "vertical";
|
|
3218
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3219
|
-
"div",
|
|
3220
|
-
{
|
|
3221
|
-
className: cn(
|
|
3222
|
-
"flex gap-4",
|
|
3223
|
-
isVertical ? "flex-col items-start gap-1.5" : [
|
|
3224
|
-
"items-center",
|
|
3225
|
-
align === "left" ? "justify-start" : align === "right" ? "justify-end" : "justify-center",
|
|
3226
|
-
verticalAlign === "top" ? "pb-3" : "pt-3"
|
|
3227
|
-
],
|
|
3228
|
-
className
|
|
3229
|
-
)
|
|
3230
|
-
},
|
|
3231
|
-
payload.filter((item) => item.type !== "none").map((item) => {
|
|
3232
|
-
const key = `${nameKey || item.dataKey || "value"}`;
|
|
3233
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
3234
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3235
|
-
"div",
|
|
3236
|
-
{
|
|
3237
|
-
key: item.value,
|
|
3238
|
-
className: "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-text-muted"
|
|
3239
|
-
},
|
|
3240
|
-
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ React20.createElement(itemConfig.icon, null) : /* @__PURE__ */ React20.createElement(
|
|
3241
|
-
"div",
|
|
3242
|
-
{
|
|
3243
|
-
className: "h-2 w-2 shrink-0 rounded-sm",
|
|
3244
|
-
style: {
|
|
3245
|
-
backgroundColor: item.color
|
|
3246
|
-
}
|
|
3247
|
-
}
|
|
3248
|
-
),
|
|
3249
|
-
/* @__PURE__ */ React20.createElement("span", { className: "text-foreground" }, itemConfig?.label)
|
|
3250
|
-
);
|
|
3251
|
-
})
|
|
3252
|
-
);
|
|
3253
|
-
}
|
|
3254
|
-
function getPayloadConfigFromPayload(config, payload, key) {
|
|
3255
|
-
if (typeof payload !== "object" || payload === null) {
|
|
3256
|
-
return void 0;
|
|
3257
|
-
}
|
|
3258
|
-
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
3259
|
-
let configLabelKey = key;
|
|
3260
|
-
if (key in payload && typeof payload[key] === "string") {
|
|
3261
|
-
configLabelKey = payload[key];
|
|
3262
|
-
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
3263
|
-
configLabelKey = payloadPayload[key];
|
|
3264
|
-
}
|
|
3265
|
-
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
3266
|
-
}
|
|
3267
|
-
var CHART_AXIS_TICK_STYLE = { style: { fontSize: "var(--chart-axis-fs)", fill: "var(--color-text-subtle)" } };
|
|
3268
|
-
var CHART_XAXIS_PADDING = { left: 16, right: 16 };
|
|
3269
|
-
function ChartXAxis({ tick, padding, ...props }) {
|
|
3270
|
-
return /* @__PURE__ */ React20.createElement(RechartsPrimitive.XAxis, { tick: tick ?? CHART_AXIS_TICK_STYLE, padding: padding ?? CHART_XAXIS_PADDING, ...props });
|
|
3271
|
-
}
|
|
3272
|
-
function ChartYAxis({ tick, width = "auto", ...props }) {
|
|
3273
|
-
return /* @__PURE__ */ React20.createElement(RechartsPrimitive.YAxis, { tick: tick ?? CHART_AXIS_TICK_STYLE, width, ...props });
|
|
3274
|
-
}
|
|
3275
|
-
var CHART_LINE_DASH = "5 5";
|
|
3276
|
-
var CHART_DOT_PROPS = { r: 3, strokeWidth: 2 };
|
|
3277
|
-
var CHART_ACTIVE_DOT_PROPS = { r: 5, strokeWidth: 2 };
|
|
3278
|
-
function ChartLine({
|
|
3279
|
-
type = "monotone",
|
|
3280
|
-
variant = "solid",
|
|
3281
|
-
dot: showDot = true,
|
|
3282
|
-
activeDot: showActiveDot = true,
|
|
3283
|
-
stroke,
|
|
3284
|
-
dataKey,
|
|
3285
|
-
...props
|
|
3286
|
-
}) {
|
|
3287
|
-
const { hoverFade, activeDataKey, setActiveDataKey } = useChart();
|
|
3288
|
-
const isFaded = hoverFade && activeDataKey !== null && activeDataKey !== dataKey;
|
|
3289
|
-
const opacity = isFaded ? CHART_HOVER_FADE_OPACITY : 1;
|
|
3290
|
-
const dotProps = showDot ? variant === "dashed" ? { ...CHART_DOT_PROPS, strokeDasharray: "0" } : CHART_DOT_PROPS : false;
|
|
3291
|
-
const activeDotProps = showActiveDot ? variant === "dashed" ? { ...CHART_ACTIVE_DOT_PROPS, strokeDasharray: "0" } : CHART_ACTIVE_DOT_PROPS : false;
|
|
3292
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3293
|
-
RechartsPrimitive.Line,
|
|
3294
|
-
{
|
|
3295
|
-
type,
|
|
3296
|
-
dataKey,
|
|
3297
|
-
stroke,
|
|
3298
|
-
strokeWidth: 2,
|
|
3299
|
-
strokeDasharray: variant === "dashed" ? CHART_LINE_DASH : void 0,
|
|
3300
|
-
dot: dotProps,
|
|
3301
|
-
activeDot: activeDotProps,
|
|
3302
|
-
strokeOpacity: opacity,
|
|
3303
|
-
...hoverFade && { isAnimationActive: false },
|
|
3304
|
-
...hoverFade && { onMouseEnter: () => setActiveDataKey(dataKey) },
|
|
3305
|
-
style: hoverFade ? { transition: "stroke-opacity var(--duration-fast) ease-out" } : void 0,
|
|
3306
|
-
...props
|
|
3307
|
-
}
|
|
3308
|
-
);
|
|
3309
|
-
}
|
|
3310
|
-
var CHART_AREA_DEFAULT_OPACITY = 0.4;
|
|
3311
|
-
function ChartArea({
|
|
3312
|
-
type = "monotone",
|
|
3313
|
-
variant = "solid",
|
|
3314
|
-
dot: showDot = true,
|
|
3315
|
-
activeDot: showActiveDot = true,
|
|
3316
|
-
fillOpacity = CHART_AREA_DEFAULT_OPACITY,
|
|
3317
|
-
stroke,
|
|
3318
|
-
fill,
|
|
3319
|
-
dataKey,
|
|
3320
|
-
...props
|
|
3321
|
-
}) {
|
|
3322
|
-
const { hoverFade, activeDataKey, setActiveDataKey } = useChart();
|
|
3323
|
-
const isFaded = hoverFade && activeDataKey !== null && activeDataKey !== dataKey;
|
|
3324
|
-
const opacity = isFaded ? CHART_HOVER_FADE_OPACITY : 1;
|
|
3325
|
-
const dotProps = showDot ? CHART_DOT_PROPS : false;
|
|
3326
|
-
const activeDotProps = showActiveDot ? CHART_ACTIVE_DOT_PROPS : false;
|
|
3327
|
-
const gradientId = `area-gradient-${String(dataKey)}`;
|
|
3328
|
-
const effectiveFill = variant === "gradient" ? `url(#${gradientId})` : fill || stroke;
|
|
3329
|
-
const effectiveFillOpacity = variant === "gradient" ? 1 : fillOpacity;
|
|
3330
|
-
return /* @__PURE__ */ React20.createElement(React20.Fragment, null, variant === "gradient" && /* @__PURE__ */ React20.createElement("defs", null, /* @__PURE__ */ React20.createElement("linearGradient", { id: gradientId, x1: "0", y1: "0", x2: "0", y2: "1" }, /* @__PURE__ */ React20.createElement("stop", { offset: "5%", stopColor: fill || stroke, stopOpacity: 0.8 }), /* @__PURE__ */ React20.createElement("stop", { offset: "95%", stopColor: fill || stroke, stopOpacity: 0 }))), /* @__PURE__ */ React20.createElement(
|
|
3331
|
-
RechartsPrimitive.Area,
|
|
3332
|
-
{
|
|
3333
|
-
type,
|
|
3334
|
-
dataKey,
|
|
3335
|
-
stroke,
|
|
3336
|
-
fill: effectiveFill,
|
|
3337
|
-
fillOpacity: effectiveFillOpacity * opacity,
|
|
3338
|
-
strokeWidth: 2,
|
|
3339
|
-
dot: dotProps,
|
|
3340
|
-
activeDot: activeDotProps,
|
|
3341
|
-
strokeOpacity: opacity,
|
|
3342
|
-
...hoverFade && { isAnimationActive: false },
|
|
3343
|
-
...hoverFade && { onMouseEnter: () => setActiveDataKey(dataKey) },
|
|
3344
|
-
style: hoverFade ? { transition: "fill-opacity var(--duration-fast) ease-out, stroke-opacity var(--duration-fast) ease-out" } : void 0,
|
|
3345
|
-
...props
|
|
3346
|
-
}
|
|
3347
|
-
));
|
|
3348
|
-
}
|
|
3349
|
-
var CHART_PIE_ACTIVE_OFFSET = 8;
|
|
3350
|
-
var CHART_PIE_DONUT_INNER_RADIUS = 60;
|
|
3351
|
-
var CHART_PIE_LABEL_RADIAL = 16;
|
|
3352
|
-
var CHART_PIE_LABEL_HORIZ = 20;
|
|
3353
|
-
var CHART_PIE_SKIP_ANGLE = 15;
|
|
3354
|
-
function ChartPie({
|
|
3355
|
-
variant = "pie",
|
|
3356
|
-
label: labelMode = "none",
|
|
3357
|
-
labelContent = "value",
|
|
3358
|
-
activeShape: showActiveShape = true,
|
|
3359
|
-
innerRadius,
|
|
3360
|
-
paddingAngle = 0,
|
|
3361
|
-
cornerRadius = 0,
|
|
3362
|
-
startAngle = 90,
|
|
3363
|
-
endAngle = -270,
|
|
3364
|
-
...props
|
|
3365
|
-
}) {
|
|
3366
|
-
const resolvedInnerRadius = innerRadius ?? (variant === "donut" ? CHART_PIE_DONUT_INNER_RADIUS : 0);
|
|
3367
|
-
const activeShapeConfig = showActiveShape ? (props2) => /* @__PURE__ */ React20.createElement(
|
|
3368
|
-
RechartsPrimitive.Sector,
|
|
3369
|
-
{
|
|
3370
|
-
...props2,
|
|
3371
|
-
outerRadius: props2.outerRadius + CHART_PIE_ACTIVE_OFFSET
|
|
3372
|
-
}
|
|
3373
|
-
) : void 0;
|
|
3374
|
-
const getDisplayText = (entry) => labelContent === "percent" ? `${(entry.percent * 100).toFixed(0)}%` : entry.value;
|
|
3375
|
-
const labelConfig = labelMode === "outside" ? (entry) => {
|
|
3376
|
-
const RADIAN = Math.PI / 180;
|
|
3377
|
-
const { cx, cy, midAngle, outerRadius, fill } = entry;
|
|
3378
|
-
const sx = cx + outerRadius * Math.cos(-midAngle * RADIAN);
|
|
3379
|
-
const sy = cy + outerRadius * Math.sin(-midAngle * RADIAN);
|
|
3380
|
-
const mx = cx + (outerRadius + CHART_PIE_LABEL_RADIAL) * Math.cos(-midAngle * RADIAN);
|
|
3381
|
-
const my = cy + (outerRadius + CHART_PIE_LABEL_RADIAL) * Math.sin(-midAngle * RADIAN);
|
|
3382
|
-
const isRight = mx > cx;
|
|
3383
|
-
const ex = mx + (isRight ? CHART_PIE_LABEL_HORIZ : -CHART_PIE_LABEL_HORIZ);
|
|
3384
|
-
return /* @__PURE__ */ React20.createElement("g", null, /* @__PURE__ */ React20.createElement(
|
|
3385
|
-
"polyline",
|
|
3386
|
-
{
|
|
3387
|
-
points: `${sx},${sy} ${mx},${my} ${ex},${my}`,
|
|
3388
|
-
fill: "none",
|
|
3389
|
-
stroke: fill,
|
|
3390
|
-
strokeWidth: 1,
|
|
3391
|
-
strokeOpacity: 0.5
|
|
3392
|
-
}
|
|
3393
|
-
), /* @__PURE__ */ React20.createElement(
|
|
3394
|
-
"text",
|
|
3395
|
-
{
|
|
3396
|
-
x: ex + (isRight ? 4 : -4),
|
|
3397
|
-
y: my,
|
|
3398
|
-
textAnchor: isRight ? "start" : "end",
|
|
3399
|
-
dominantBaseline: "central",
|
|
3400
|
-
style: { fontSize: "var(--font-size-xs)", fill: "var(--color-text-muted)" }
|
|
3401
|
-
},
|
|
3402
|
-
getDisplayText(entry)
|
|
3403
|
-
));
|
|
3404
|
-
} : labelMode === "inside" ? (entry) => {
|
|
3405
|
-
const angle = Math.abs(entry.endAngle - entry.startAngle);
|
|
3406
|
-
if (angle < CHART_PIE_SKIP_ANGLE) return null;
|
|
3407
|
-
const RADIAN = Math.PI / 180;
|
|
3408
|
-
const { cx, cy, innerRadius: ir, outerRadius: or, midAngle } = entry;
|
|
3409
|
-
const ratio = ir > 0 ? 0.5 : 0.65;
|
|
3410
|
-
const radius = ir + (or - ir) * ratio;
|
|
3411
|
-
const x = cx + radius * Math.cos(-midAngle * RADIAN);
|
|
3412
|
-
const y = cy + radius * Math.sin(-midAngle * RADIAN);
|
|
3413
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3414
|
-
"text",
|
|
3415
|
-
{
|
|
3416
|
-
x,
|
|
3417
|
-
y,
|
|
3418
|
-
textAnchor: "middle",
|
|
3419
|
-
dominantBaseline: "central",
|
|
3420
|
-
style: { fontSize: "var(--font-size-xs)", fill: "white", fontWeight: 600 }
|
|
3421
|
-
},
|
|
3422
|
-
getDisplayText(entry)
|
|
3423
|
-
);
|
|
3424
|
-
} : false;
|
|
3425
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3426
|
-
RechartsPrimitive.Pie,
|
|
3427
|
-
{
|
|
3428
|
-
innerRadius: resolvedInnerRadius,
|
|
3429
|
-
paddingAngle,
|
|
3430
|
-
cornerRadius,
|
|
3431
|
-
startAngle,
|
|
3432
|
-
endAngle,
|
|
3433
|
-
label: labelConfig,
|
|
3434
|
-
labelLine: false,
|
|
3435
|
-
activeShape: activeShapeConfig,
|
|
3436
|
-
...props
|
|
3437
|
-
}
|
|
3438
|
-
);
|
|
3439
|
-
}
|
|
3440
|
-
var Chart = Object.assign(ChartContainer, {
|
|
3441
|
-
Bar: ChartBar,
|
|
3442
|
-
Line: ChartLine,
|
|
3443
|
-
Area: ChartArea,
|
|
3444
|
-
Pie: ChartPie,
|
|
3445
|
-
Tooltip: ChartTooltip,
|
|
3446
|
-
TooltipContent: ChartTooltipContent,
|
|
3447
|
-
Legend: ChartLegend,
|
|
3448
|
-
LegendContent: ChartLegendContent,
|
|
3449
|
-
XAxis: ChartXAxis,
|
|
3450
|
-
YAxis: ChartYAxis,
|
|
3451
|
-
Style: ChartStyle
|
|
3452
|
-
});
|
|
3453
|
-
|
|
3454
2945
|
// src/components/ui/metric-card.tsx
|
|
3455
|
-
import * as
|
|
2946
|
+
import * as React20 from "react";
|
|
3456
2947
|
import { cva as cva16 } from "class-variance-authority";
|
|
3457
2948
|
var metricCardVariants = cva16(
|
|
3458
2949
|
"transition-colors",
|
|
@@ -3512,11 +3003,11 @@ var trendConfig = {
|
|
|
3512
3003
|
down: { color: "text-text-error", srLabel: "Decreased" },
|
|
3513
3004
|
neutral: { color: "text-text-muted", srLabel: "No change" }
|
|
3514
3005
|
};
|
|
3515
|
-
var MetricCardContext =
|
|
3516
|
-
var MetricCardRoot =
|
|
3006
|
+
var MetricCardContext = React20.createContext({ size: "default", animated: false });
|
|
3007
|
+
var MetricCardRoot = React20.forwardRef(
|
|
3517
3008
|
({ className, variant, size, radius, animated = false, children, ...props }, ref) => {
|
|
3518
3009
|
const resolvedSize = size || "default";
|
|
3519
|
-
return /* @__PURE__ */
|
|
3010
|
+
return /* @__PURE__ */ React20.createElement(MetricCardContext.Provider, { value: { size: resolvedSize, animated } }, /* @__PURE__ */ React20.createElement(
|
|
3520
3011
|
"div",
|
|
3521
3012
|
{
|
|
3522
3013
|
ref,
|
|
@@ -3528,8 +3019,8 @@ var MetricCardRoot = React21.forwardRef(
|
|
|
3528
3019
|
}
|
|
3529
3020
|
);
|
|
3530
3021
|
MetricCardRoot.displayName = "MetricCard";
|
|
3531
|
-
var MetricCardHeader =
|
|
3532
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3022
|
+
var MetricCardHeader = React20.forwardRef(
|
|
3023
|
+
({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
|
|
3533
3024
|
"div",
|
|
3534
3025
|
{
|
|
3535
3026
|
ref,
|
|
@@ -3539,10 +3030,10 @@ var MetricCardHeader = React21.forwardRef(
|
|
|
3539
3030
|
)
|
|
3540
3031
|
);
|
|
3541
3032
|
MetricCardHeader.displayName = "MetricCardHeader";
|
|
3542
|
-
var MetricCardTitle =
|
|
3033
|
+
var MetricCardTitle = React20.forwardRef(
|
|
3543
3034
|
({ className, ...props }, ref) => {
|
|
3544
|
-
const { size } =
|
|
3545
|
-
return /* @__PURE__ */
|
|
3035
|
+
const { size } = React20.useContext(MetricCardContext);
|
|
3036
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3546
3037
|
"p",
|
|
3547
3038
|
{
|
|
3548
3039
|
ref,
|
|
@@ -3553,11 +3044,11 @@ var MetricCardTitle = React21.forwardRef(
|
|
|
3553
3044
|
}
|
|
3554
3045
|
);
|
|
3555
3046
|
MetricCardTitle.displayName = "MetricCardTitle";
|
|
3556
|
-
var MetricCardValue =
|
|
3047
|
+
var MetricCardValue = React20.forwardRef(
|
|
3557
3048
|
({ className, children, ...props }, ref) => {
|
|
3558
|
-
const { size, animated } =
|
|
3559
|
-
const [display, setDisplay] =
|
|
3560
|
-
|
|
3049
|
+
const { size, animated } = React20.useContext(MetricCardContext);
|
|
3050
|
+
const [display, setDisplay] = React20.useState(children);
|
|
3051
|
+
React20.useEffect(() => {
|
|
3561
3052
|
if (!animated || typeof children !== "string") {
|
|
3562
3053
|
setDisplay(children);
|
|
3563
3054
|
return;
|
|
@@ -3592,7 +3083,7 @@ var MetricCardValue = React21.forwardRef(
|
|
|
3592
3083
|
}, duration / steps);
|
|
3593
3084
|
return () => clearInterval(timer);
|
|
3594
3085
|
}, [children, animated]);
|
|
3595
|
-
return /* @__PURE__ */
|
|
3086
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3596
3087
|
"p",
|
|
3597
3088
|
{
|
|
3598
3089
|
ref,
|
|
@@ -3604,27 +3095,27 @@ var MetricCardValue = React21.forwardRef(
|
|
|
3604
3095
|
}
|
|
3605
3096
|
);
|
|
3606
3097
|
MetricCardValue.displayName = "MetricCardValue";
|
|
3607
|
-
var MetricCardTrend =
|
|
3098
|
+
var MetricCardTrend = React20.forwardRef(
|
|
3608
3099
|
({ className, direction, children, ...props }, ref) => {
|
|
3609
3100
|
const config = trendConfig[direction];
|
|
3610
|
-
return /* @__PURE__ */
|
|
3101
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3611
3102
|
"p",
|
|
3612
3103
|
{
|
|
3613
3104
|
ref,
|
|
3614
3105
|
className: cn("flex items-center gap-1 text-sm mt-2", config.color, className),
|
|
3615
3106
|
...props
|
|
3616
3107
|
},
|
|
3617
|
-
direction === "up" && /* @__PURE__ */
|
|
3618
|
-
direction === "down" && /* @__PURE__ */
|
|
3619
|
-
direction === "neutral" && /* @__PURE__ */
|
|
3620
|
-
/* @__PURE__ */
|
|
3108
|
+
direction === "up" && /* @__PURE__ */ React20.createElement("svg", { className: "icon-xs", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M4.5 15.75l7.5-7.5 7.5 7.5" })),
|
|
3109
|
+
direction === "down" && /* @__PURE__ */ React20.createElement("svg", { className: "icon-xs", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19.5 8.25l-7.5 7.5-7.5-7.5" })),
|
|
3110
|
+
direction === "neutral" && /* @__PURE__ */ React20.createElement("svg", { className: "icon-xs", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2.5, "aria-hidden": "true" }, /* @__PURE__ */ React20.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 12h14" })),
|
|
3111
|
+
/* @__PURE__ */ React20.createElement("span", { className: "sr-only" }, config.srLabel),
|
|
3621
3112
|
children
|
|
3622
3113
|
);
|
|
3623
3114
|
}
|
|
3624
3115
|
);
|
|
3625
3116
|
MetricCardTrend.displayName = "MetricCardTrend";
|
|
3626
|
-
var MetricCardDescription =
|
|
3627
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3117
|
+
var MetricCardDescription = React20.forwardRef(
|
|
3118
|
+
({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
|
|
3628
3119
|
"p",
|
|
3629
3120
|
{
|
|
3630
3121
|
ref,
|
|
@@ -3634,10 +3125,10 @@ var MetricCardDescription = React21.forwardRef(
|
|
|
3634
3125
|
)
|
|
3635
3126
|
);
|
|
3636
3127
|
MetricCardDescription.displayName = "MetricCardDescription";
|
|
3637
|
-
var MetricCardSymbol =
|
|
3128
|
+
var MetricCardSymbol = React20.forwardRef(
|
|
3638
3129
|
({ className, ...props }, ref) => {
|
|
3639
|
-
const { size } =
|
|
3640
|
-
return /* @__PURE__ */
|
|
3130
|
+
const { size } = React20.useContext(MetricCardContext);
|
|
3131
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3641
3132
|
"div",
|
|
3642
3133
|
{
|
|
3643
3134
|
ref,
|
|
@@ -3658,7 +3149,7 @@ var MetricCard = Object.assign(MetricCardRoot, {
|
|
|
3658
3149
|
});
|
|
3659
3150
|
|
|
3660
3151
|
// src/components/ui/badge.tsx
|
|
3661
|
-
import * as
|
|
3152
|
+
import * as React21 from "react";
|
|
3662
3153
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
3663
3154
|
import { cva as cva17 } from "class-variance-authority";
|
|
3664
3155
|
var colorMap = {
|
|
@@ -3745,7 +3236,7 @@ var dotColorMap = {
|
|
|
3745
3236
|
error: "bg-error",
|
|
3746
3237
|
info: "bg-info"
|
|
3747
3238
|
};
|
|
3748
|
-
var Badge =
|
|
3239
|
+
var Badge = React21.forwardRef(
|
|
3749
3240
|
({
|
|
3750
3241
|
className,
|
|
3751
3242
|
variant = "subtle",
|
|
@@ -3765,7 +3256,7 @@ var Badge = React22.forwardRef(
|
|
|
3765
3256
|
const colorClasses = colorMap[color][variant];
|
|
3766
3257
|
const outlineClasses = variant === "outline" ? "border bg-transparent" : "";
|
|
3767
3258
|
const dotColor = variant === "solid" ? "bg-current" : dotColorMap[color];
|
|
3768
|
-
return /* @__PURE__ */
|
|
3259
|
+
return /* @__PURE__ */ React21.createElement(
|
|
3769
3260
|
Comp,
|
|
3770
3261
|
{
|
|
3771
3262
|
ref,
|
|
@@ -3777,14 +3268,14 @@ var Badge = React22.forwardRef(
|
|
|
3777
3268
|
),
|
|
3778
3269
|
...props
|
|
3779
3270
|
},
|
|
3780
|
-
dot && /* @__PURE__ */
|
|
3271
|
+
dot && /* @__PURE__ */ React21.createElement(
|
|
3781
3272
|
"span",
|
|
3782
3273
|
{
|
|
3783
3274
|
className: cn("shrink-0 rounded-full", badgeDotSizes[resolvedSize], dotColor),
|
|
3784
3275
|
"aria-hidden": "true"
|
|
3785
3276
|
}
|
|
3786
3277
|
),
|
|
3787
|
-
icon && /* @__PURE__ */
|
|
3278
|
+
icon && /* @__PURE__ */ React21.createElement(
|
|
3788
3279
|
"span",
|
|
3789
3280
|
{
|
|
3790
3281
|
className: cn("shrink-0 [&>svg]:w-full [&>svg]:h-full", badgeIconSizes[resolvedSize]),
|
|
@@ -3793,7 +3284,7 @@ var Badge = React22.forwardRef(
|
|
|
3793
3284
|
icon
|
|
3794
3285
|
),
|
|
3795
3286
|
children,
|
|
3796
|
-
removable && /* @__PURE__ */
|
|
3287
|
+
removable && /* @__PURE__ */ React21.createElement(
|
|
3797
3288
|
"button",
|
|
3798
3289
|
{
|
|
3799
3290
|
type: "button",
|
|
@@ -3804,7 +3295,7 @@ var Badge = React22.forwardRef(
|
|
|
3804
3295
|
},
|
|
3805
3296
|
"aria-label": "Remove"
|
|
3806
3297
|
},
|
|
3807
|
-
/* @__PURE__ */
|
|
3298
|
+
/* @__PURE__ */ React21.createElement(
|
|
3808
3299
|
"svg",
|
|
3809
3300
|
{
|
|
3810
3301
|
className: "w-3 h-3",
|
|
@@ -3814,7 +3305,7 @@ var Badge = React22.forwardRef(
|
|
|
3814
3305
|
strokeWidth: 2,
|
|
3815
3306
|
"aria-hidden": "true"
|
|
3816
3307
|
},
|
|
3817
|
-
/* @__PURE__ */
|
|
3308
|
+
/* @__PURE__ */ React21.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
3818
3309
|
)
|
|
3819
3310
|
)
|
|
3820
3311
|
);
|
|
@@ -3823,15 +3314,15 @@ var Badge = React22.forwardRef(
|
|
|
3823
3314
|
Badge.displayName = "Badge";
|
|
3824
3315
|
|
|
3825
3316
|
// src/components/ui/card.tsx
|
|
3826
|
-
import * as
|
|
3317
|
+
import * as React22 from "react";
|
|
3827
3318
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
3828
3319
|
import { cva as cva18 } from "class-variance-authority";
|
|
3829
|
-
var CardContext =
|
|
3320
|
+
var CardContext = React22.createContext({
|
|
3830
3321
|
size: "default",
|
|
3831
3322
|
direction: "vertical"
|
|
3832
3323
|
});
|
|
3833
3324
|
function useCard() {
|
|
3834
|
-
return
|
|
3325
|
+
return React22.useContext(CardContext);
|
|
3835
3326
|
}
|
|
3836
3327
|
var cardVariants = cva18(
|
|
3837
3328
|
"flex overflow-hidden transition-all duration-normal",
|
|
@@ -3874,7 +3365,7 @@ var cardVariants = cva18(
|
|
|
3874
3365
|
}
|
|
3875
3366
|
}
|
|
3876
3367
|
);
|
|
3877
|
-
var CardRoot =
|
|
3368
|
+
var CardRoot = React22.forwardRef(
|
|
3878
3369
|
({
|
|
3879
3370
|
className,
|
|
3880
3371
|
variant = "default",
|
|
@@ -3889,19 +3380,19 @@ var CardRoot = React23.forwardRef(
|
|
|
3889
3380
|
const Comp = asChild ? Slot5 : "div";
|
|
3890
3381
|
let content = children;
|
|
3891
3382
|
if (direction === "horizontal") {
|
|
3892
|
-
const childArray =
|
|
3383
|
+
const childArray = React22.Children.toArray(children);
|
|
3893
3384
|
const imageChildren = [];
|
|
3894
3385
|
const otherChildren = [];
|
|
3895
3386
|
childArray.forEach((child) => {
|
|
3896
|
-
if (
|
|
3387
|
+
if (React22.isValidElement(child) && child.type === CardImage) {
|
|
3897
3388
|
imageChildren.push(child);
|
|
3898
3389
|
} else {
|
|
3899
3390
|
otherChildren.push(child);
|
|
3900
3391
|
}
|
|
3901
3392
|
});
|
|
3902
|
-
content = /* @__PURE__ */
|
|
3393
|
+
content = /* @__PURE__ */ React22.createElement(React22.Fragment, null, imageChildren, /* @__PURE__ */ React22.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, otherChildren));
|
|
3903
3394
|
}
|
|
3904
|
-
return /* @__PURE__ */
|
|
3395
|
+
return /* @__PURE__ */ React22.createElement(CardContext.Provider, { value: { size, direction } }, /* @__PURE__ */ React22.createElement(
|
|
3905
3396
|
Comp,
|
|
3906
3397
|
{
|
|
3907
3398
|
ref,
|
|
@@ -3968,13 +3459,13 @@ var overlayOpacityMap = {
|
|
|
3968
3459
|
80: "from-black/80",
|
|
3969
3460
|
90: "from-black/90"
|
|
3970
3461
|
};
|
|
3971
|
-
var CardImage =
|
|
3462
|
+
var CardImage = React22.forwardRef(
|
|
3972
3463
|
({ className, overlay = false, overlayOpacity = 60, overlayClassName, alt = "", ...props }, ref) => {
|
|
3973
3464
|
const { direction } = useCard();
|
|
3974
3465
|
const isHorizontal = direction === "horizontal";
|
|
3975
3466
|
if (isHorizontal) {
|
|
3976
3467
|
const opacityClass = overlay ? overlayOpacityMap[overlayOpacity] || "from-black/60" : null;
|
|
3977
|
-
return /* @__PURE__ */
|
|
3468
|
+
return /* @__PURE__ */ React22.createElement("div", { className: cn("relative shrink-0 w-48 overflow-hidden", className) }, /* @__PURE__ */ React22.createElement(
|
|
3978
3469
|
"img",
|
|
3979
3470
|
{
|
|
3980
3471
|
ref,
|
|
@@ -3982,11 +3473,11 @@ var CardImage = React23.forwardRef(
|
|
|
3982
3473
|
className: "absolute inset-0 w-full h-full object-cover",
|
|
3983
3474
|
...props
|
|
3984
3475
|
}
|
|
3985
|
-
), overlay && /* @__PURE__ */
|
|
3476
|
+
), overlay && /* @__PURE__ */ React22.createElement("div", { className: cn("absolute inset-0 bg-gradient-to-t to-transparent", overlayClassName || opacityClass) }));
|
|
3986
3477
|
}
|
|
3987
3478
|
if (overlay) {
|
|
3988
3479
|
const opacityClass = overlayOpacityMap[overlayOpacity] || "from-black/60";
|
|
3989
|
-
return /* @__PURE__ */
|
|
3480
|
+
return /* @__PURE__ */ React22.createElement("div", { className: "relative w-full shrink-0 overflow-hidden" }, /* @__PURE__ */ React22.createElement(
|
|
3990
3481
|
"img",
|
|
3991
3482
|
{
|
|
3992
3483
|
ref,
|
|
@@ -3994,9 +3485,9 @@ var CardImage = React23.forwardRef(
|
|
|
3994
3485
|
className: cn("w-full object-cover", className),
|
|
3995
3486
|
...props
|
|
3996
3487
|
}
|
|
3997
|
-
), /* @__PURE__ */
|
|
3488
|
+
), /* @__PURE__ */ React22.createElement("div", { className: cn("absolute inset-0 bg-gradient-to-t to-transparent", overlayClassName || opacityClass) }));
|
|
3998
3489
|
}
|
|
3999
|
-
return /* @__PURE__ */
|
|
3490
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4000
3491
|
"img",
|
|
4001
3492
|
{
|
|
4002
3493
|
ref,
|
|
@@ -4008,20 +3499,20 @@ var CardImage = React23.forwardRef(
|
|
|
4008
3499
|
}
|
|
4009
3500
|
);
|
|
4010
3501
|
CardImage.displayName = "CardImage";
|
|
4011
|
-
var CardHeader =
|
|
3502
|
+
var CardHeader = React22.forwardRef(
|
|
4012
3503
|
({ className, children, ...props }, ref) => {
|
|
4013
3504
|
const { size } = useCard();
|
|
4014
|
-
const childArray =
|
|
3505
|
+
const childArray = React22.Children.toArray(children);
|
|
4015
3506
|
const actionChildren = [];
|
|
4016
3507
|
const otherChildren = [];
|
|
4017
3508
|
childArray.forEach((child) => {
|
|
4018
|
-
if (
|
|
3509
|
+
if (React22.isValidElement(child) && child.type === CardAction) {
|
|
4019
3510
|
actionChildren.push(child);
|
|
4020
3511
|
} else {
|
|
4021
3512
|
otherChildren.push(child);
|
|
4022
3513
|
}
|
|
4023
3514
|
});
|
|
4024
|
-
return /* @__PURE__ */
|
|
3515
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4025
3516
|
"div",
|
|
4026
3517
|
{
|
|
4027
3518
|
ref,
|
|
@@ -4035,15 +3526,15 @@ var CardHeader = React23.forwardRef(
|
|
|
4035
3526
|
),
|
|
4036
3527
|
...props
|
|
4037
3528
|
},
|
|
4038
|
-
/* @__PURE__ */
|
|
3529
|
+
/* @__PURE__ */ React22.createElement("div", { className: "flex-1 min-w-0 space-y-3" }, otherChildren),
|
|
4039
3530
|
actionChildren
|
|
4040
3531
|
);
|
|
4041
3532
|
}
|
|
4042
3533
|
);
|
|
4043
3534
|
CardHeader.displayName = "CardHeader";
|
|
4044
|
-
var CardTitle =
|
|
3535
|
+
var CardTitle = React22.forwardRef(
|
|
4045
3536
|
({ className, icon, children, ...props }, ref) => {
|
|
4046
|
-
return /* @__PURE__ */
|
|
3537
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4047
3538
|
"h3",
|
|
4048
3539
|
{
|
|
4049
3540
|
ref,
|
|
@@ -4054,15 +3545,15 @@ var CardTitle = React23.forwardRef(
|
|
|
4054
3545
|
),
|
|
4055
3546
|
...props
|
|
4056
3547
|
},
|
|
4057
|
-
icon && /* @__PURE__ */
|
|
3548
|
+
icon && /* @__PURE__ */ React22.createElement("span", { className: "shrink-0 icon-sm [&>svg]:w-full [&>svg]:h-full", "aria-hidden": "true" }, icon),
|
|
4058
3549
|
children
|
|
4059
3550
|
);
|
|
4060
3551
|
}
|
|
4061
3552
|
);
|
|
4062
3553
|
CardTitle.displayName = "CardTitle";
|
|
4063
|
-
var CardDescription =
|
|
3554
|
+
var CardDescription = React22.forwardRef(
|
|
4064
3555
|
({ className, ...props }, ref) => {
|
|
4065
|
-
return /* @__PURE__ */
|
|
3556
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4066
3557
|
"p",
|
|
4067
3558
|
{
|
|
4068
3559
|
ref,
|
|
@@ -4073,9 +3564,9 @@ var CardDescription = React23.forwardRef(
|
|
|
4073
3564
|
}
|
|
4074
3565
|
);
|
|
4075
3566
|
CardDescription.displayName = "CardDescription";
|
|
4076
|
-
var CardAction =
|
|
3567
|
+
var CardAction = React22.forwardRef(
|
|
4077
3568
|
({ className, ...props }, ref) => {
|
|
4078
|
-
return /* @__PURE__ */
|
|
3569
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4079
3570
|
"div",
|
|
4080
3571
|
{
|
|
4081
3572
|
ref,
|
|
@@ -4086,10 +3577,10 @@ var CardAction = React23.forwardRef(
|
|
|
4086
3577
|
}
|
|
4087
3578
|
);
|
|
4088
3579
|
CardAction.displayName = "CardAction";
|
|
4089
|
-
var CardContent =
|
|
3580
|
+
var CardContent = React22.forwardRef(
|
|
4090
3581
|
({ className, ...props }, ref) => {
|
|
4091
3582
|
const { size } = useCard();
|
|
4092
|
-
return /* @__PURE__ */
|
|
3583
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4093
3584
|
"div",
|
|
4094
3585
|
{
|
|
4095
3586
|
ref,
|
|
@@ -4100,10 +3591,10 @@ var CardContent = React23.forwardRef(
|
|
|
4100
3591
|
}
|
|
4101
3592
|
);
|
|
4102
3593
|
CardContent.displayName = "CardContent";
|
|
4103
|
-
var CardFooter =
|
|
3594
|
+
var CardFooter = React22.forwardRef(
|
|
4104
3595
|
({ className, ...props }, ref) => {
|
|
4105
3596
|
const { size } = useCard();
|
|
4106
|
-
return /* @__PURE__ */
|
|
3597
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4107
3598
|
"div",
|
|
4108
3599
|
{
|
|
4109
3600
|
ref,
|
|
@@ -4131,9 +3622,9 @@ var Card = Object.assign(CardRoot, {
|
|
|
4131
3622
|
});
|
|
4132
3623
|
|
|
4133
3624
|
// src/components/ui/table.tsx
|
|
4134
|
-
import * as
|
|
3625
|
+
import * as React23 from "react";
|
|
4135
3626
|
import { cva as cva19 } from "class-variance-authority";
|
|
4136
|
-
var TableContext =
|
|
3627
|
+
var TableContext = React23.createContext({ size: "default", variant: "default", stickyHeader: false });
|
|
4137
3628
|
var cellPaddingMap = {
|
|
4138
3629
|
sm: "px-3 py-2 text-sm",
|
|
4139
3630
|
default: "px-4 py-3 text-sm",
|
|
@@ -4164,8 +3655,8 @@ var tableVariants = cva19(
|
|
|
4164
3655
|
}
|
|
4165
3656
|
}
|
|
4166
3657
|
);
|
|
4167
|
-
var TableRoot =
|
|
4168
|
-
({ className, size = "default", variant = "default", stickyHeader = false, wrapperClassName, ...props }, ref) => /* @__PURE__ */
|
|
3658
|
+
var TableRoot = React23.forwardRef(
|
|
3659
|
+
({ className, size = "default", variant = "default", stickyHeader = false, wrapperClassName, ...props }, ref) => /* @__PURE__ */ React23.createElement(TableContext.Provider, { value: { size, variant, stickyHeader } }, /* @__PURE__ */ React23.createElement("div", { className: cn("relative w-full overflow-auto", wrapperClassName) }, /* @__PURE__ */ React23.createElement(
|
|
4169
3660
|
"table",
|
|
4170
3661
|
{
|
|
4171
3662
|
ref,
|
|
@@ -4175,9 +3666,9 @@ var TableRoot = React24.forwardRef(
|
|
|
4175
3666
|
)))
|
|
4176
3667
|
);
|
|
4177
3668
|
TableRoot.displayName = "Table";
|
|
4178
|
-
var TableHeader =
|
|
4179
|
-
const { stickyHeader } =
|
|
4180
|
-
return /* @__PURE__ */
|
|
3669
|
+
var TableHeader = React23.forwardRef(({ className, ...props }, ref) => {
|
|
3670
|
+
const { stickyHeader } = React23.useContext(TableContext);
|
|
3671
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4181
3672
|
"thead",
|
|
4182
3673
|
{
|
|
4183
3674
|
ref,
|
|
@@ -4191,9 +3682,9 @@ var TableHeader = React24.forwardRef(({ className, ...props }, ref) => {
|
|
|
4191
3682
|
);
|
|
4192
3683
|
});
|
|
4193
3684
|
TableHeader.displayName = "TableHeader";
|
|
4194
|
-
var TableBody =
|
|
4195
|
-
const { variant } =
|
|
4196
|
-
return /* @__PURE__ */
|
|
3685
|
+
var TableBody = React23.forwardRef(({ className, ...props }, ref) => {
|
|
3686
|
+
const { variant } = React23.useContext(TableContext);
|
|
3687
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4197
3688
|
"tbody",
|
|
4198
3689
|
{
|
|
4199
3690
|
ref,
|
|
@@ -4207,7 +3698,7 @@ var TableBody = React24.forwardRef(({ className, ...props }, ref) => {
|
|
|
4207
3698
|
);
|
|
4208
3699
|
});
|
|
4209
3700
|
TableBody.displayName = "TableBody";
|
|
4210
|
-
var TableFooter =
|
|
3701
|
+
var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React23.createElement(
|
|
4211
3702
|
"tfoot",
|
|
4212
3703
|
{
|
|
4213
3704
|
ref,
|
|
@@ -4219,8 +3710,8 @@ var TableFooter = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4219
3710
|
}
|
|
4220
3711
|
));
|
|
4221
3712
|
TableFooter.displayName = "TableFooter";
|
|
4222
|
-
var TableRow =
|
|
4223
|
-
({ className, interactive = false, selected = false, ...props }, ref) => /* @__PURE__ */
|
|
3713
|
+
var TableRow = React23.forwardRef(
|
|
3714
|
+
({ className, interactive = false, selected = false, ...props }, ref) => /* @__PURE__ */ React23.createElement(
|
|
4224
3715
|
"tr",
|
|
4225
3716
|
{
|
|
4226
3717
|
ref,
|
|
@@ -4236,15 +3727,15 @@ var TableRow = React24.forwardRef(
|
|
|
4236
3727
|
);
|
|
4237
3728
|
TableRow.displayName = "TableRow";
|
|
4238
3729
|
var defaultSortIcons = {
|
|
4239
|
-
asc: /* @__PURE__ */
|
|
4240
|
-
desc: /* @__PURE__ */
|
|
4241
|
-
default: /* @__PURE__ */
|
|
3730
|
+
asc: /* @__PURE__ */ React23.createElement("svg", { className: "icon-xs", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React23.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M5 15l7-7 7 7" })),
|
|
3731
|
+
desc: /* @__PURE__ */ React23.createElement("svg", { className: "icon-xs", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React23.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" })),
|
|
3732
|
+
default: /* @__PURE__ */ React23.createElement("svg", { className: "icon-xs", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React23.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M7 16V4m0 0L3 8m4-4l4 4m6 0v12m0 0l4-4m-4 4l-4-4" }))
|
|
4242
3733
|
};
|
|
4243
|
-
var TableHead =
|
|
3734
|
+
var TableHead = React23.forwardRef(
|
|
4244
3735
|
({ className, align = "left", sortable = false, sortDirection = null, onSort, sortIcon, children, ...props }, ref) => {
|
|
4245
|
-
const { size } =
|
|
3736
|
+
const { size } = React23.useContext(TableContext);
|
|
4246
3737
|
const icons = { ...defaultSortIcons, ...sortIcon };
|
|
4247
|
-
const content = sortable ? /* @__PURE__ */
|
|
3738
|
+
const content = sortable ? /* @__PURE__ */ React23.createElement(
|
|
4248
3739
|
"button",
|
|
4249
3740
|
{
|
|
4250
3741
|
type: "button",
|
|
@@ -4252,12 +3743,12 @@ var TableHead = React24.forwardRef(
|
|
|
4252
3743
|
onClick: onSort
|
|
4253
3744
|
},
|
|
4254
3745
|
children,
|
|
4255
|
-
/* @__PURE__ */
|
|
3746
|
+
/* @__PURE__ */ React23.createElement("span", { className: cn(
|
|
4256
3747
|
"shrink-0 transition-colors duration-fast",
|
|
4257
3748
|
sortDirection ? "text-foreground" : "text-text-muted"
|
|
4258
3749
|
) }, sortDirection === "asc" ? icons.asc : sortDirection === "desc" ? icons.desc : icons.default)
|
|
4259
3750
|
) : children;
|
|
4260
|
-
return /* @__PURE__ */
|
|
3751
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4261
3752
|
"th",
|
|
4262
3753
|
{
|
|
4263
3754
|
ref,
|
|
@@ -4278,10 +3769,10 @@ var TableHead = React24.forwardRef(
|
|
|
4278
3769
|
}
|
|
4279
3770
|
);
|
|
4280
3771
|
TableHead.displayName = "TableHead";
|
|
4281
|
-
var TableCell =
|
|
3772
|
+
var TableCell = React23.forwardRef(
|
|
4282
3773
|
({ className, align = "left", ...props }, ref) => {
|
|
4283
|
-
const { size } =
|
|
4284
|
-
return /* @__PURE__ */
|
|
3774
|
+
const { size } = React23.useContext(TableContext);
|
|
3775
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4285
3776
|
"td",
|
|
4286
3777
|
{
|
|
4287
3778
|
ref,
|
|
@@ -4299,7 +3790,7 @@ var TableCell = React24.forwardRef(
|
|
|
4299
3790
|
}
|
|
4300
3791
|
);
|
|
4301
3792
|
TableCell.displayName = "TableCell";
|
|
4302
|
-
var TableCaption =
|
|
3793
|
+
var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React23.createElement(
|
|
4303
3794
|
"caption",
|
|
4304
3795
|
{
|
|
4305
3796
|
ref,
|
|
@@ -4319,11 +3810,11 @@ var Table = Object.assign(TableRoot, {
|
|
|
4319
3810
|
});
|
|
4320
3811
|
|
|
4321
3812
|
// src/components/ui/tabs.tsx
|
|
4322
|
-
import * as
|
|
3813
|
+
import * as React24 from "react";
|
|
4323
3814
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4324
3815
|
import { cva as cva20 } from "class-variance-authority";
|
|
4325
|
-
var TabsStyleContext =
|
|
4326
|
-
var useTabsStyleContext = () =>
|
|
3816
|
+
var TabsStyleContext = React24.createContext({});
|
|
3817
|
+
var useTabsStyleContext = () => React24.useContext(TabsStyleContext);
|
|
4327
3818
|
var tabsListVariants = cva20(
|
|
4328
3819
|
"inline-flex items-center text-text-subtle",
|
|
4329
3820
|
{
|
|
@@ -4344,9 +3835,9 @@ var tabsListVariants = cva20(
|
|
|
4344
3835
|
}
|
|
4345
3836
|
}
|
|
4346
3837
|
);
|
|
4347
|
-
var TabsList =
|
|
3838
|
+
var TabsList = React24.forwardRef(({ className, variant, size, fitted, color, radius, ...props }, ref) => {
|
|
4348
3839
|
const resolvedVariant = variant || "line";
|
|
4349
|
-
return /* @__PURE__ */
|
|
3840
|
+
return /* @__PURE__ */ React24.createElement(TabsStyleContext.Provider, { value: { variant: resolvedVariant, size: size || "default", fitted: fitted ?? false, color: color || "default", radius: radius || "md" } }, /* @__PURE__ */ React24.createElement(
|
|
4350
3841
|
TabsPrimitive.List,
|
|
4351
3842
|
{
|
|
4352
3843
|
ref,
|
|
@@ -4468,10 +3959,10 @@ var pillItemRadiusClasses = {
|
|
|
4468
3959
|
"3xl": "rounded-2xl",
|
|
4469
3960
|
full: "rounded-full"
|
|
4470
3961
|
};
|
|
4471
|
-
var TabsTrigger =
|
|
3962
|
+
var TabsTrigger = React24.forwardRef(({ className, children, ...props }, ref) => {
|
|
4472
3963
|
const { variant, size, fitted, color, radius } = useTabsStyleContext();
|
|
4473
3964
|
const resolvedSize = size || "default";
|
|
4474
|
-
return /* @__PURE__ */
|
|
3965
|
+
return /* @__PURE__ */ React24.createElement(
|
|
4475
3966
|
TabsPrimitive.Trigger,
|
|
4476
3967
|
{
|
|
4477
3968
|
ref,
|
|
@@ -4489,7 +3980,7 @@ var TabsTrigger = React25.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
4489
3980
|
);
|
|
4490
3981
|
});
|
|
4491
3982
|
TabsTrigger.displayName = "TabsTrigger";
|
|
4492
|
-
var TabsContent =
|
|
3983
|
+
var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React24.createElement(
|
|
4493
3984
|
TabsPrimitive.Content,
|
|
4494
3985
|
{
|
|
4495
3986
|
ref,
|
|
@@ -4509,15 +4000,15 @@ var Tabs = Object.assign(TabsRoot, {
|
|
|
4509
4000
|
});
|
|
4510
4001
|
|
|
4511
4002
|
// src/components/ui/navigation-menu.tsx
|
|
4512
|
-
import * as
|
|
4003
|
+
import * as React25 from "react";
|
|
4513
4004
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
4514
4005
|
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
4515
4006
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
4516
4007
|
function ChevronDownIcon({ className }) {
|
|
4517
|
-
return /* @__PURE__ */
|
|
4008
|
+
return /* @__PURE__ */ React25.createElement("svg", { className, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React25.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M19 9l-7 7-7-7" }));
|
|
4518
4009
|
}
|
|
4519
4010
|
function ChevronRightIcon2({ className }) {
|
|
4520
|
-
return /* @__PURE__ */
|
|
4011
|
+
return /* @__PURE__ */ React25.createElement("svg", { className, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React25.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" }));
|
|
4521
4012
|
}
|
|
4522
4013
|
var contentRadiusMap3 = {
|
|
4523
4014
|
sm: "rounded",
|
|
@@ -4539,15 +4030,15 @@ var itemRadiusMap3 = {
|
|
|
4539
4030
|
xl: "rounded-lg"
|
|
4540
4031
|
// 8px
|
|
4541
4032
|
};
|
|
4542
|
-
var NavigationMenuContext =
|
|
4033
|
+
var NavigationMenuContext = React25.createContext({
|
|
4543
4034
|
orientation: "horizontal",
|
|
4544
4035
|
size: "default",
|
|
4545
4036
|
collapsed: false,
|
|
4546
4037
|
radius: "lg",
|
|
4547
4038
|
fontWeight: "normal"
|
|
4548
4039
|
});
|
|
4549
|
-
var useNavigationMenuContext = () =>
|
|
4550
|
-
var ContentLevelContext =
|
|
4040
|
+
var useNavigationMenuContext = () => React25.useContext(NavigationMenuContext);
|
|
4041
|
+
var ContentLevelContext = React25.createContext(false);
|
|
4551
4042
|
var navigationMenuSizeMap = {
|
|
4552
4043
|
sm: {
|
|
4553
4044
|
trigger: "h-8 text-sm px-3 gap-2",
|
|
@@ -4594,7 +4085,7 @@ var navigationMenuSizeMap = {
|
|
|
4594
4085
|
groupMargin: "mt-6 first:mt-0"
|
|
4595
4086
|
}
|
|
4596
4087
|
};
|
|
4597
|
-
var NavigationMenuRoot =
|
|
4088
|
+
var NavigationMenuRoot = React25.forwardRef(
|
|
4598
4089
|
({
|
|
4599
4090
|
className,
|
|
4600
4091
|
orientation = "horizontal",
|
|
@@ -4613,12 +4104,12 @@ var NavigationMenuRoot = React26.forwardRef(
|
|
|
4613
4104
|
style,
|
|
4614
4105
|
...props
|
|
4615
4106
|
}, ref) => {
|
|
4616
|
-
const contextValue =
|
|
4107
|
+
const contextValue = React25.useMemo(
|
|
4617
4108
|
() => ({ orientation, size, collapsed: orientation === "vertical" ? collapsed : false, radius, fontWeight }),
|
|
4618
4109
|
[orientation, size, collapsed, radius, fontWeight]
|
|
4619
4110
|
);
|
|
4620
4111
|
if (orientation === "horizontal") {
|
|
4621
|
-
return /* @__PURE__ */
|
|
4112
|
+
return /* @__PURE__ */ React25.createElement(NavigationMenuContext.Provider, { value: contextValue }, /* @__PURE__ */ React25.createElement(
|
|
4622
4113
|
NavigationMenuPrimitive.Root,
|
|
4623
4114
|
{
|
|
4624
4115
|
ref,
|
|
@@ -4634,7 +4125,7 @@ var NavigationMenuRoot = React26.forwardRef(
|
|
|
4634
4125
|
}
|
|
4635
4126
|
const resolvedWidth = collapsed ? collapsedWidth ?? navigationMenuSizeMap[size].collapsedWidth : width ?? 256;
|
|
4636
4127
|
const widthValue = typeof resolvedWidth === "number" ? `${resolvedWidth}px` : resolvedWidth;
|
|
4637
|
-
return /* @__PURE__ */
|
|
4128
|
+
return /* @__PURE__ */ React25.createElement(NavigationMenuContext.Provider, { value: contextValue }, /* @__PURE__ */ React25.createElement(
|
|
4638
4129
|
"nav",
|
|
4639
4130
|
{
|
|
4640
4131
|
ref,
|
|
@@ -4652,11 +4143,11 @@ var NavigationMenuRoot = React26.forwardRef(
|
|
|
4652
4143
|
}
|
|
4653
4144
|
);
|
|
4654
4145
|
NavigationMenuRoot.displayName = "NavigationMenu";
|
|
4655
|
-
var NavigationMenuList =
|
|
4146
|
+
var NavigationMenuList = React25.forwardRef(
|
|
4656
4147
|
({ className, children, ...props }, ref) => {
|
|
4657
4148
|
const { orientation } = useNavigationMenuContext();
|
|
4658
4149
|
if (orientation === "horizontal") {
|
|
4659
|
-
return /* @__PURE__ */
|
|
4150
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4660
4151
|
NavigationMenuPrimitive.List,
|
|
4661
4152
|
{
|
|
4662
4153
|
ref,
|
|
@@ -4666,7 +4157,7 @@ var NavigationMenuList = React26.forwardRef(
|
|
|
4666
4157
|
children
|
|
4667
4158
|
);
|
|
4668
4159
|
}
|
|
4669
|
-
return /* @__PURE__ */
|
|
4160
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4670
4161
|
"ul",
|
|
4671
4162
|
{
|
|
4672
4163
|
ref,
|
|
@@ -4678,15 +4169,15 @@ var NavigationMenuList = React26.forwardRef(
|
|
|
4678
4169
|
}
|
|
4679
4170
|
);
|
|
4680
4171
|
NavigationMenuList.displayName = "NavigationMenuList";
|
|
4681
|
-
var NavigationMenuItem =
|
|
4172
|
+
var NavigationMenuItem = React25.forwardRef(
|
|
4682
4173
|
({ className, value, defaultOpen = false, children, ...props }, ref) => {
|
|
4683
4174
|
const { orientation, collapsed } = useNavigationMenuContext();
|
|
4684
|
-
const [open, setOpen] =
|
|
4685
|
-
|
|
4175
|
+
const [open, setOpen] = React25.useState(defaultOpen);
|
|
4176
|
+
React25.useEffect(() => {
|
|
4686
4177
|
if (collapsed) setOpen(false);
|
|
4687
4178
|
}, [collapsed]);
|
|
4688
4179
|
if (orientation === "horizontal") {
|
|
4689
|
-
return /* @__PURE__ */
|
|
4180
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4690
4181
|
NavigationMenuPrimitive.Item,
|
|
4691
4182
|
{
|
|
4692
4183
|
ref,
|
|
@@ -4697,25 +4188,25 @@ var NavigationMenuItem = React26.forwardRef(
|
|
|
4697
4188
|
children
|
|
4698
4189
|
);
|
|
4699
4190
|
}
|
|
4700
|
-
return /* @__PURE__ */
|
|
4191
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4701
4192
|
CollapsiblePrimitive.Root,
|
|
4702
4193
|
{
|
|
4703
4194
|
open: collapsed ? false : open,
|
|
4704
4195
|
onOpenChange: collapsed ? void 0 : setOpen,
|
|
4705
4196
|
asChild: true
|
|
4706
4197
|
},
|
|
4707
|
-
/* @__PURE__ */
|
|
4198
|
+
/* @__PURE__ */ React25.createElement("li", { ref, className: cn("", className), ...props }, children)
|
|
4708
4199
|
);
|
|
4709
4200
|
}
|
|
4710
4201
|
);
|
|
4711
4202
|
NavigationMenuItem.displayName = "NavigationMenuItem";
|
|
4712
|
-
var NavigationMenuTrigger =
|
|
4203
|
+
var NavigationMenuTrigger = React25.forwardRef(
|
|
4713
4204
|
({ className, children, icon, chevronIcon, ...props }, ref) => {
|
|
4714
4205
|
const { orientation, size, collapsed, radius, fontWeight: fw } = useNavigationMenuContext();
|
|
4715
4206
|
const s = navigationMenuSizeMap[size];
|
|
4716
4207
|
const fwClass = fw === "semibold" ? "font-semibold" : "font-normal";
|
|
4717
4208
|
if (orientation === "horizontal") {
|
|
4718
|
-
return /* @__PURE__ */
|
|
4209
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4719
4210
|
NavigationMenuPrimitive.Trigger,
|
|
4720
4211
|
{
|
|
4721
4212
|
ref,
|
|
@@ -4734,12 +4225,12 @@ var NavigationMenuTrigger = React26.forwardRef(
|
|
|
4734
4225
|
),
|
|
4735
4226
|
...props
|
|
4736
4227
|
},
|
|
4737
|
-
icon && /* @__PURE__ */
|
|
4228
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0 mr-2", s.icon) }, icon),
|
|
4738
4229
|
children,
|
|
4739
|
-
/* @__PURE__ */
|
|
4230
|
+
/* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0 ml-1 text-text-subtle transition-transform duration-fast group-data-[state=open]:rotate-180", s.icon) }, chevronIcon ?? /* @__PURE__ */ React25.createElement(ChevronDownIcon, { className: "size-full" }))
|
|
4740
4231
|
);
|
|
4741
4232
|
}
|
|
4742
|
-
return /* @__PURE__ */
|
|
4233
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4743
4234
|
CollapsiblePrimitive.Trigger,
|
|
4744
4235
|
{
|
|
4745
4236
|
ref,
|
|
@@ -4758,8 +4249,8 @@ var NavigationMenuTrigger = React26.forwardRef(
|
|
|
4758
4249
|
...collapsed && typeof children === "string" ? { title: children } : {},
|
|
4759
4250
|
...props
|
|
4760
4251
|
},
|
|
4761
|
-
icon && /* @__PURE__ */
|
|
4762
|
-
!collapsed && /* @__PURE__ */
|
|
4252
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon),
|
|
4253
|
+
!collapsed && /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement("span", { className: "flex-1 text-left truncate" }, children), /* @__PURE__ */ React25.createElement(
|
|
4763
4254
|
"span",
|
|
4764
4255
|
{
|
|
4765
4256
|
className: cn(
|
|
@@ -4768,18 +4259,18 @@ var NavigationMenuTrigger = React26.forwardRef(
|
|
|
4768
4259
|
"group-data-[state=open]:rotate-90"
|
|
4769
4260
|
)
|
|
4770
4261
|
},
|
|
4771
|
-
chevronIcon ?? /* @__PURE__ */
|
|
4262
|
+
chevronIcon ?? /* @__PURE__ */ React25.createElement(ChevronRightIcon2, { className: "size-full" })
|
|
4772
4263
|
))
|
|
4773
4264
|
);
|
|
4774
4265
|
}
|
|
4775
4266
|
);
|
|
4776
4267
|
NavigationMenuTrigger.displayName = "NavigationMenuTrigger";
|
|
4777
|
-
var NavigationMenuContent =
|
|
4268
|
+
var NavigationMenuContent = React25.forwardRef(
|
|
4778
4269
|
({ className, children, ...props }, ref) => {
|
|
4779
4270
|
const { orientation, size, collapsed, radius } = useNavigationMenuContext();
|
|
4780
4271
|
const s = navigationMenuSizeMap[size];
|
|
4781
4272
|
if (orientation === "horizontal") {
|
|
4782
|
-
return /* @__PURE__ */
|
|
4273
|
+
return /* @__PURE__ */ React25.createElement(ContentLevelContext.Provider, { value: true }, /* @__PURE__ */ React25.createElement(
|
|
4783
4274
|
NavigationMenuPrimitive.Content,
|
|
4784
4275
|
{
|
|
4785
4276
|
ref,
|
|
@@ -4790,11 +4281,11 @@ var NavigationMenuContent = React26.forwardRef(
|
|
|
4790
4281
|
),
|
|
4791
4282
|
...props
|
|
4792
4283
|
},
|
|
4793
|
-
/* @__PURE__ */
|
|
4284
|
+
/* @__PURE__ */ React25.createElement("div", { className: cn("min-w-[180px] border border-border bg-background shadow-lg p-1.5 grid gap-0.5", contentRadiusMap3[radius]) }, children)
|
|
4794
4285
|
));
|
|
4795
4286
|
}
|
|
4796
4287
|
if (collapsed) return null;
|
|
4797
|
-
return /* @__PURE__ */
|
|
4288
|
+
return /* @__PURE__ */ React25.createElement(ContentLevelContext.Provider, { value: true }, /* @__PURE__ */ React25.createElement(
|
|
4798
4289
|
CollapsiblePrimitive.Content,
|
|
4799
4290
|
{
|
|
4800
4291
|
ref,
|
|
@@ -4804,7 +4295,7 @@ var NavigationMenuContent = React26.forwardRef(
|
|
|
4804
4295
|
),
|
|
4805
4296
|
...props
|
|
4806
4297
|
},
|
|
4807
|
-
/* @__PURE__ */
|
|
4298
|
+
/* @__PURE__ */ React25.createElement("div", { className: cn(
|
|
4808
4299
|
"flex flex-col gap-0.5 py-1",
|
|
4809
4300
|
className
|
|
4810
4301
|
) }, children)
|
|
@@ -4812,16 +4303,16 @@ var NavigationMenuContent = React26.forwardRef(
|
|
|
4812
4303
|
}
|
|
4813
4304
|
);
|
|
4814
4305
|
NavigationMenuContent.displayName = "NavigationMenuContent";
|
|
4815
|
-
var NavigationMenuLink =
|
|
4306
|
+
var NavigationMenuLink = React25.forwardRef(
|
|
4816
4307
|
({ className, active, asChild, icon, children, ...props }, ref) => {
|
|
4817
4308
|
const { orientation, size, collapsed, radius, fontWeight: fw } = useNavigationMenuContext();
|
|
4818
4309
|
const s = navigationMenuSizeMap[size];
|
|
4819
4310
|
const fwClass = fw === "semibold" ? "font-semibold" : "font-normal";
|
|
4820
|
-
const inContent =
|
|
4311
|
+
const inContent = React25.useContext(ContentLevelContext);
|
|
4821
4312
|
if (orientation === "horizontal") {
|
|
4822
4313
|
const { onSelect, ...radixSafeProps } = props;
|
|
4823
4314
|
if (inContent) {
|
|
4824
|
-
return /* @__PURE__ */
|
|
4315
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4825
4316
|
NavigationMenuPrimitive.Link,
|
|
4826
4317
|
{
|
|
4827
4318
|
ref,
|
|
@@ -4840,10 +4331,10 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4840
4331
|
onSelect,
|
|
4841
4332
|
...radixSafeProps
|
|
4842
4333
|
},
|
|
4843
|
-
asChild ? children : /* @__PURE__ */
|
|
4334
|
+
asChild ? children : /* @__PURE__ */ React25.createElement(React25.Fragment, null, icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon), children)
|
|
4844
4335
|
);
|
|
4845
4336
|
}
|
|
4846
|
-
return /* @__PURE__ */
|
|
4337
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4847
4338
|
NavigationMenuPrimitive.Link,
|
|
4848
4339
|
{
|
|
4849
4340
|
ref,
|
|
@@ -4863,12 +4354,12 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4863
4354
|
onSelect,
|
|
4864
4355
|
...radixSafeProps
|
|
4865
4356
|
},
|
|
4866
|
-
asChild ? children : /* @__PURE__ */
|
|
4357
|
+
asChild ? children : /* @__PURE__ */ React25.createElement(React25.Fragment, null, icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon), children)
|
|
4867
4358
|
);
|
|
4868
4359
|
}
|
|
4869
4360
|
const Comp = asChild ? Slot6 : "a";
|
|
4870
4361
|
if (inContent) {
|
|
4871
|
-
return /* @__PURE__ */
|
|
4362
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4872
4363
|
Comp,
|
|
4873
4364
|
{
|
|
4874
4365
|
ref,
|
|
@@ -4885,11 +4376,11 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4885
4376
|
...active ? { "aria-current": "page" } : {},
|
|
4886
4377
|
...props
|
|
4887
4378
|
},
|
|
4888
|
-
icon && /* @__PURE__ */
|
|
4379
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon),
|
|
4889
4380
|
!collapsed && children
|
|
4890
4381
|
);
|
|
4891
4382
|
}
|
|
4892
|
-
return /* @__PURE__ */
|
|
4383
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4893
4384
|
Comp,
|
|
4894
4385
|
{
|
|
4895
4386
|
ref,
|
|
@@ -4907,28 +4398,28 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4907
4398
|
...collapsed && typeof children === "string" ? { title: children } : {},
|
|
4908
4399
|
...props
|
|
4909
4400
|
},
|
|
4910
|
-
icon && /* @__PURE__ */
|
|
4911
|
-
!collapsed && /* @__PURE__ */
|
|
4401
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon),
|
|
4402
|
+
!collapsed && /* @__PURE__ */ React25.createElement("span", { className: "truncate" }, children)
|
|
4912
4403
|
);
|
|
4913
4404
|
}
|
|
4914
4405
|
);
|
|
4915
4406
|
NavigationMenuLink.displayName = "NavigationMenuLink";
|
|
4916
|
-
var NavigationMenuGroup =
|
|
4407
|
+
var NavigationMenuGroup = React25.forwardRef(
|
|
4917
4408
|
({ className, label, children, ...props }, ref) => {
|
|
4918
4409
|
const { size, collapsed } = useNavigationMenuContext();
|
|
4919
4410
|
const s = navigationMenuSizeMap[size];
|
|
4920
|
-
return /* @__PURE__ */
|
|
4411
|
+
return /* @__PURE__ */ React25.createElement("div", { ref, role: "group", className: cn(label && !collapsed && s.groupMargin, className), ...props }, label && !collapsed && /* @__PURE__ */ React25.createElement("div", { className: cn(
|
|
4921
4412
|
"font-semibold text-text-subtle uppercase tracking-wider select-none",
|
|
4922
4413
|
s.groupLabel
|
|
4923
|
-
) }, label), /* @__PURE__ */
|
|
4414
|
+
) }, label), /* @__PURE__ */ React25.createElement("ul", { className: "flex flex-col gap-0.5" }, children));
|
|
4924
4415
|
}
|
|
4925
4416
|
);
|
|
4926
4417
|
NavigationMenuGroup.displayName = "NavigationMenuGroup";
|
|
4927
|
-
var NavigationMenuIndicator =
|
|
4418
|
+
var NavigationMenuIndicator = React25.forwardRef(
|
|
4928
4419
|
({ className, color = "default", ...props }, ref) => {
|
|
4929
4420
|
const { orientation } = useNavigationMenuContext();
|
|
4930
4421
|
if (orientation === "vertical") return null;
|
|
4931
|
-
return /* @__PURE__ */
|
|
4422
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4932
4423
|
NavigationMenuPrimitive.Indicator,
|
|
4933
4424
|
{
|
|
4934
4425
|
ref,
|
|
@@ -4940,7 +4431,7 @@ var NavigationMenuIndicator = React26.forwardRef(
|
|
|
4940
4431
|
),
|
|
4941
4432
|
...props
|
|
4942
4433
|
},
|
|
4943
|
-
/* @__PURE__ */
|
|
4434
|
+
/* @__PURE__ */ React25.createElement("div", { className: cn(
|
|
4944
4435
|
"relative h-full w-full rounded-full",
|
|
4945
4436
|
color === "default" ? "bg-foreground" : "bg-primary"
|
|
4946
4437
|
) })
|
|
@@ -4948,11 +4439,11 @@ var NavigationMenuIndicator = React26.forwardRef(
|
|
|
4948
4439
|
}
|
|
4949
4440
|
);
|
|
4950
4441
|
NavigationMenuIndicator.displayName = "NavigationMenuIndicator";
|
|
4951
|
-
var NavigationMenuViewport =
|
|
4442
|
+
var NavigationMenuViewport = React25.forwardRef(
|
|
4952
4443
|
({ className, ...props }, ref) => {
|
|
4953
4444
|
const { orientation } = useNavigationMenuContext();
|
|
4954
4445
|
if (orientation === "vertical") return null;
|
|
4955
|
-
return /* @__PURE__ */
|
|
4446
|
+
return /* @__PURE__ */ React25.createElement("div", { className: "absolute left-0 top-full z-dropdown w-auto pt-1" }, /* @__PURE__ */ React25.createElement(
|
|
4956
4447
|
NavigationMenuPrimitive.Viewport,
|
|
4957
4448
|
{
|
|
4958
4449
|
ref,
|
|
@@ -4984,10 +4475,10 @@ var NavigationMenu = Object.assign(NavigationMenuRoot, {
|
|
|
4984
4475
|
});
|
|
4985
4476
|
|
|
4986
4477
|
// src/components/ui/pagination.tsx
|
|
4987
|
-
import * as
|
|
4478
|
+
import * as React26 from "react";
|
|
4988
4479
|
import { cva as cva21 } from "class-variance-authority";
|
|
4989
4480
|
function ChevronLeftIcon({ className }) {
|
|
4990
|
-
return /* @__PURE__ */
|
|
4481
|
+
return /* @__PURE__ */ React26.createElement(
|
|
4991
4482
|
"svg",
|
|
4992
4483
|
{
|
|
4993
4484
|
className,
|
|
@@ -4996,11 +4487,11 @@ function ChevronLeftIcon({ className }) {
|
|
|
4996
4487
|
stroke: "currentColor",
|
|
4997
4488
|
strokeWidth: 2
|
|
4998
4489
|
},
|
|
4999
|
-
/* @__PURE__ */
|
|
4490
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15 19l-7-7 7-7" })
|
|
5000
4491
|
);
|
|
5001
4492
|
}
|
|
5002
4493
|
function ChevronRightIcon3({ className }) {
|
|
5003
|
-
return /* @__PURE__ */
|
|
4494
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5004
4495
|
"svg",
|
|
5005
4496
|
{
|
|
5006
4497
|
className,
|
|
@@ -5009,11 +4500,11 @@ function ChevronRightIcon3({ className }) {
|
|
|
5009
4500
|
stroke: "currentColor",
|
|
5010
4501
|
strokeWidth: 2
|
|
5011
4502
|
},
|
|
5012
|
-
/* @__PURE__ */
|
|
4503
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" })
|
|
5013
4504
|
);
|
|
5014
4505
|
}
|
|
5015
4506
|
function ChevronsLeftIcon({ className }) {
|
|
5016
|
-
return /* @__PURE__ */
|
|
4507
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5017
4508
|
"svg",
|
|
5018
4509
|
{
|
|
5019
4510
|
className,
|
|
@@ -5022,11 +4513,11 @@ function ChevronsLeftIcon({ className }) {
|
|
|
5022
4513
|
stroke: "currentColor",
|
|
5023
4514
|
strokeWidth: 2
|
|
5024
4515
|
},
|
|
5025
|
-
/* @__PURE__ */
|
|
4516
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M11 17l-5-5 5-5M18 17l-5-5 5-5" })
|
|
5026
4517
|
);
|
|
5027
4518
|
}
|
|
5028
4519
|
function ChevronsRightIcon({ className }) {
|
|
5029
|
-
return /* @__PURE__ */
|
|
4520
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5030
4521
|
"svg",
|
|
5031
4522
|
{
|
|
5032
4523
|
className,
|
|
@@ -5035,20 +4526,20 @@ function ChevronsRightIcon({ className }) {
|
|
|
5035
4526
|
stroke: "currentColor",
|
|
5036
4527
|
strokeWidth: 2
|
|
5037
4528
|
},
|
|
5038
|
-
/* @__PURE__ */
|
|
4529
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13 7l5 5-5 5M6 7l5 5-5 5" })
|
|
5039
4530
|
);
|
|
5040
4531
|
}
|
|
5041
4532
|
function EllipsisIcon2({ className }) {
|
|
5042
|
-
return /* @__PURE__ */
|
|
4533
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5043
4534
|
"svg",
|
|
5044
4535
|
{
|
|
5045
4536
|
className,
|
|
5046
4537
|
fill: "currentColor",
|
|
5047
4538
|
viewBox: "0 0 24 24"
|
|
5048
4539
|
},
|
|
5049
|
-
/* @__PURE__ */
|
|
5050
|
-
/* @__PURE__ */
|
|
5051
|
-
/* @__PURE__ */
|
|
4540
|
+
/* @__PURE__ */ React26.createElement("circle", { cx: "6", cy: "12", r: "1.5" }),
|
|
4541
|
+
/* @__PURE__ */ React26.createElement("circle", { cx: "12", cy: "12", r: "1.5" }),
|
|
4542
|
+
/* @__PURE__ */ React26.createElement("circle", { cx: "18", cy: "12", r: "1.5" })
|
|
5052
4543
|
);
|
|
5053
4544
|
}
|
|
5054
4545
|
function range(start, end) {
|
|
@@ -5089,9 +4580,9 @@ function usePagination({
|
|
|
5089
4580
|
...range(total - boundaries + 1, total)
|
|
5090
4581
|
];
|
|
5091
4582
|
}
|
|
5092
|
-
var PaginationContext =
|
|
4583
|
+
var PaginationContext = React26.createContext(null);
|
|
5093
4584
|
function usePaginationContext() {
|
|
5094
|
-
const ctx =
|
|
4585
|
+
const ctx = React26.useContext(PaginationContext);
|
|
5095
4586
|
if (!ctx) throw new Error("Pagination components must be used within <Pagination>");
|
|
5096
4587
|
return ctx;
|
|
5097
4588
|
}
|
|
@@ -5153,7 +4644,7 @@ function getItemClasses(variant, color, isActive, disabled) {
|
|
|
5153
4644
|
return "border border-transparent text-text-muted hover:bg-background-muted hover:text-foreground";
|
|
5154
4645
|
}
|
|
5155
4646
|
}
|
|
5156
|
-
var PaginationRoot =
|
|
4647
|
+
var PaginationRoot = React26.forwardRef(
|
|
5157
4648
|
({
|
|
5158
4649
|
className,
|
|
5159
4650
|
total = 1,
|
|
@@ -5173,17 +4664,17 @@ var PaginationRoot = React27.forwardRef(
|
|
|
5173
4664
|
children,
|
|
5174
4665
|
...props
|
|
5175
4666
|
}, ref) => {
|
|
5176
|
-
const [internalPage, setInternalPage] =
|
|
4667
|
+
const [internalPage, setInternalPage] = React26.useState(defaultValue);
|
|
5177
4668
|
const isControlled = value !== void 0;
|
|
5178
4669
|
const page = isControlled ? value : internalPage;
|
|
5179
|
-
const handlePageChange =
|
|
4670
|
+
const handlePageChange = React26.useCallback((newPage) => {
|
|
5180
4671
|
if (disabled) return;
|
|
5181
4672
|
const clamped = Math.max(1, Math.min(total, newPage));
|
|
5182
4673
|
if (!isControlled) setInternalPage(clamped);
|
|
5183
4674
|
onChange?.(clamped);
|
|
5184
4675
|
}, [disabled, total, isControlled, onChange]);
|
|
5185
4676
|
const paginationRange = usePagination({ total, siblings, boundaries, page });
|
|
5186
|
-
const contextValue =
|
|
4677
|
+
const contextValue = React26.useMemo(() => ({
|
|
5187
4678
|
page,
|
|
5188
4679
|
total,
|
|
5189
4680
|
siblings,
|
|
@@ -5197,7 +4688,7 @@ var PaginationRoot = React27.forwardRef(
|
|
|
5197
4688
|
onPageChange: handlePageChange,
|
|
5198
4689
|
paginationRange
|
|
5199
4690
|
}), [page, total, siblings, boundaries, size, variant, color, radius, disabled, loop, handlePageChange, paginationRange]);
|
|
5200
|
-
return /* @__PURE__ */
|
|
4691
|
+
return /* @__PURE__ */ React26.createElement(PaginationContext.Provider, { value: contextValue }, /* @__PURE__ */ React26.createElement(
|
|
5201
4692
|
"nav",
|
|
5202
4693
|
{
|
|
5203
4694
|
ref,
|
|
@@ -5211,11 +4702,11 @@ var PaginationRoot = React27.forwardRef(
|
|
|
5211
4702
|
}
|
|
5212
4703
|
);
|
|
5213
4704
|
PaginationRoot.displayName = "Pagination";
|
|
5214
|
-
var PaginationContent =
|
|
4705
|
+
var PaginationContent = React26.forwardRef(
|
|
5215
4706
|
({ className, ...props }, ref) => {
|
|
5216
4707
|
const { size } = usePaginationContext();
|
|
5217
4708
|
const sizeClass = paginationSizeMap[size];
|
|
5218
|
-
return /* @__PURE__ */
|
|
4709
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5219
4710
|
"ul",
|
|
5220
4711
|
{
|
|
5221
4712
|
ref,
|
|
@@ -5226,16 +4717,16 @@ var PaginationContent = React27.forwardRef(
|
|
|
5226
4717
|
}
|
|
5227
4718
|
);
|
|
5228
4719
|
PaginationContent.displayName = "PaginationContent";
|
|
5229
|
-
var PaginationItem =
|
|
5230
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
4720
|
+
var PaginationItem = React26.forwardRef(
|
|
4721
|
+
({ className, ...props }, ref) => /* @__PURE__ */ React26.createElement("li", { ref, className: cn("", className), ...props })
|
|
5231
4722
|
);
|
|
5232
4723
|
PaginationItem.displayName = "PaginationItem";
|
|
5233
|
-
var PaginationLink =
|
|
4724
|
+
var PaginationLink = React26.forwardRef(
|
|
5234
4725
|
({ className, page: targetPage, isActive: isActiveProp, ...props }, ref) => {
|
|
5235
4726
|
const ctx = usePaginationContext();
|
|
5236
4727
|
const isActive = isActiveProp ?? ctx.page === targetPage;
|
|
5237
4728
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5238
|
-
return /* @__PURE__ */
|
|
4729
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5239
4730
|
"button",
|
|
5240
4731
|
{
|
|
5241
4732
|
ref,
|
|
@@ -5257,7 +4748,7 @@ var PaginationLink = React27.forwardRef(
|
|
|
5257
4748
|
}
|
|
5258
4749
|
);
|
|
5259
4750
|
PaginationLink.displayName = "PaginationLink";
|
|
5260
|
-
var PaginationPrevious =
|
|
4751
|
+
var PaginationPrevious = React26.forwardRef(
|
|
5261
4752
|
({ className, icon, ...props }, ref) => {
|
|
5262
4753
|
const ctx = usePaginationContext();
|
|
5263
4754
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
@@ -5269,7 +4760,7 @@ var PaginationPrevious = React27.forwardRef(
|
|
|
5269
4760
|
ctx.onPageChange(ctx.page - 1);
|
|
5270
4761
|
}
|
|
5271
4762
|
};
|
|
5272
|
-
return /* @__PURE__ */
|
|
4763
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5273
4764
|
"button",
|
|
5274
4765
|
{
|
|
5275
4766
|
ref,
|
|
@@ -5285,12 +4776,12 @@ var PaginationPrevious = React27.forwardRef(
|
|
|
5285
4776
|
),
|
|
5286
4777
|
...props
|
|
5287
4778
|
},
|
|
5288
|
-
icon ?? /* @__PURE__ */
|
|
4779
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronLeftIcon, { className: sizeClass.icon })
|
|
5289
4780
|
);
|
|
5290
4781
|
}
|
|
5291
4782
|
);
|
|
5292
4783
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
5293
|
-
var PaginationNext =
|
|
4784
|
+
var PaginationNext = React26.forwardRef(
|
|
5294
4785
|
({ className, icon, ...props }, ref) => {
|
|
5295
4786
|
const ctx = usePaginationContext();
|
|
5296
4787
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
@@ -5302,7 +4793,7 @@ var PaginationNext = React27.forwardRef(
|
|
|
5302
4793
|
ctx.onPageChange(ctx.page + 1);
|
|
5303
4794
|
}
|
|
5304
4795
|
};
|
|
5305
|
-
return /* @__PURE__ */
|
|
4796
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5306
4797
|
"button",
|
|
5307
4798
|
{
|
|
5308
4799
|
ref,
|
|
@@ -5318,17 +4809,17 @@ var PaginationNext = React27.forwardRef(
|
|
|
5318
4809
|
),
|
|
5319
4810
|
...props
|
|
5320
4811
|
},
|
|
5321
|
-
icon ?? /* @__PURE__ */
|
|
4812
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronRightIcon3, { className: sizeClass.icon })
|
|
5322
4813
|
);
|
|
5323
4814
|
}
|
|
5324
4815
|
);
|
|
5325
4816
|
PaginationNext.displayName = "PaginationNext";
|
|
5326
|
-
var PaginationFirst =
|
|
4817
|
+
var PaginationFirst = React26.forwardRef(
|
|
5327
4818
|
({ className, icon, ...props }, ref) => {
|
|
5328
4819
|
const ctx = usePaginationContext();
|
|
5329
4820
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5330
4821
|
const isDisabled = ctx.disabled || ctx.page <= 1;
|
|
5331
|
-
return /* @__PURE__ */
|
|
4822
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5332
4823
|
"button",
|
|
5333
4824
|
{
|
|
5334
4825
|
ref,
|
|
@@ -5344,17 +4835,17 @@ var PaginationFirst = React27.forwardRef(
|
|
|
5344
4835
|
),
|
|
5345
4836
|
...props
|
|
5346
4837
|
},
|
|
5347
|
-
icon ?? /* @__PURE__ */
|
|
4838
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronsLeftIcon, { className: sizeClass.icon })
|
|
5348
4839
|
);
|
|
5349
4840
|
}
|
|
5350
4841
|
);
|
|
5351
4842
|
PaginationFirst.displayName = "PaginationFirst";
|
|
5352
|
-
var PaginationLast =
|
|
4843
|
+
var PaginationLast = React26.forwardRef(
|
|
5353
4844
|
({ className, icon, ...props }, ref) => {
|
|
5354
4845
|
const ctx = usePaginationContext();
|
|
5355
4846
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5356
4847
|
const isDisabled = ctx.disabled || ctx.page >= ctx.total;
|
|
5357
|
-
return /* @__PURE__ */
|
|
4848
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5358
4849
|
"button",
|
|
5359
4850
|
{
|
|
5360
4851
|
ref,
|
|
@@ -5370,16 +4861,16 @@ var PaginationLast = React27.forwardRef(
|
|
|
5370
4861
|
),
|
|
5371
4862
|
...props
|
|
5372
4863
|
},
|
|
5373
|
-
icon ?? /* @__PURE__ */
|
|
4864
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronsRightIcon, { className: sizeClass.icon })
|
|
5374
4865
|
);
|
|
5375
4866
|
}
|
|
5376
4867
|
);
|
|
5377
4868
|
PaginationLast.displayName = "PaginationLast";
|
|
5378
|
-
var PaginationEllipsis =
|
|
4869
|
+
var PaginationEllipsis = React26.forwardRef(
|
|
5379
4870
|
({ className, ...props }, ref) => {
|
|
5380
4871
|
const ctx = usePaginationContext();
|
|
5381
4872
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5382
|
-
return /* @__PURE__ */
|
|
4873
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5383
4874
|
"span",
|
|
5384
4875
|
{
|
|
5385
4876
|
ref,
|
|
@@ -5391,16 +4882,16 @@ var PaginationEllipsis = React27.forwardRef(
|
|
|
5391
4882
|
),
|
|
5392
4883
|
...props
|
|
5393
4884
|
},
|
|
5394
|
-
/* @__PURE__ */
|
|
5395
|
-
/* @__PURE__ */
|
|
4885
|
+
/* @__PURE__ */ React26.createElement(EllipsisIcon2, { className: sizeClass.icon }),
|
|
4886
|
+
/* @__PURE__ */ React26.createElement("span", { className: "sr-only" }, "More pages")
|
|
5396
4887
|
);
|
|
5397
4888
|
}
|
|
5398
4889
|
);
|
|
5399
4890
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
5400
|
-
var PaginationItems =
|
|
4891
|
+
var PaginationItems = React26.forwardRef(
|
|
5401
4892
|
({ className, ...props }, ref) => {
|
|
5402
4893
|
const ctx = usePaginationContext();
|
|
5403
|
-
return /* @__PURE__ */
|
|
4894
|
+
return /* @__PURE__ */ React26.createElement("div", { ref, className: cn("contents", className), ...props }, ctx.paginationRange.map((item, index) => /* @__PURE__ */ React26.createElement(PaginationItem, { key: `${item}-${index}` }, item === "dots" ? /* @__PURE__ */ React26.createElement(PaginationEllipsis, null) : /* @__PURE__ */ React26.createElement(PaginationLink, { page: item }))));
|
|
5404
4895
|
}
|
|
5405
4896
|
);
|
|
5406
4897
|
PaginationItems.displayName = "PaginationItems";
|
|
@@ -5417,11 +4908,11 @@ var Pagination = Object.assign(PaginationRoot, {
|
|
|
5417
4908
|
});
|
|
5418
4909
|
|
|
5419
4910
|
// src/components/ui/modal.tsx
|
|
5420
|
-
import * as
|
|
4911
|
+
import * as React27 from "react";
|
|
5421
4912
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
5422
4913
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
5423
4914
|
import { cva as cva22 } from "class-variance-authority";
|
|
5424
|
-
var DefaultCloseIcon = ({ className }) => /* @__PURE__ */
|
|
4915
|
+
var DefaultCloseIcon = ({ className }) => /* @__PURE__ */ React27.createElement(
|
|
5425
4916
|
"svg",
|
|
5426
4917
|
{
|
|
5427
4918
|
className,
|
|
@@ -5431,18 +4922,18 @@ var DefaultCloseIcon = ({ className }) => /* @__PURE__ */ React28.createElement(
|
|
|
5431
4922
|
strokeWidth: 2,
|
|
5432
4923
|
"aria-hidden": "true"
|
|
5433
4924
|
},
|
|
5434
|
-
/* @__PURE__ */
|
|
4925
|
+
/* @__PURE__ */ React27.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
5435
4926
|
);
|
|
5436
|
-
var ModalStyleContext =
|
|
4927
|
+
var ModalStyleContext = React27.createContext({
|
|
5437
4928
|
scrollBehavior: "outside"
|
|
5438
4929
|
});
|
|
5439
4930
|
function ModalRoot(props) {
|
|
5440
|
-
return /* @__PURE__ */
|
|
4931
|
+
return /* @__PURE__ */ React27.createElement(DialogPrimitive.Root, { ...props });
|
|
5441
4932
|
}
|
|
5442
4933
|
var ModalTrigger = DialogPrimitive.Trigger;
|
|
5443
4934
|
var ModalPortal = DialogPrimitive.Portal;
|
|
5444
4935
|
var ModalClose = DialogPrimitive.Close;
|
|
5445
|
-
var ModalOverlay =
|
|
4936
|
+
var ModalOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5446
4937
|
DialogPrimitive.Overlay,
|
|
5447
4938
|
{
|
|
5448
4939
|
ref,
|
|
@@ -5476,19 +4967,19 @@ var modalContentVariants = cva22("", {
|
|
|
5476
4967
|
size: "sm"
|
|
5477
4968
|
}
|
|
5478
4969
|
});
|
|
5479
|
-
var ModalContent =
|
|
4970
|
+
var ModalContent = React27.forwardRef(({ className, children, size = "sm", scrollBehavior = "outside", showCloseButton = true, closeIcon, ...props }, ref) => {
|
|
5480
4971
|
const isInside = scrollBehavior === "inside";
|
|
5481
4972
|
const isFull = size === "full";
|
|
5482
4973
|
const useInsideScroll = isInside || isFull;
|
|
5483
|
-
const closeButton = showCloseButton && /* @__PURE__ */
|
|
4974
|
+
const closeButton = showCloseButton && /* @__PURE__ */ React27.createElement(DialogPrimitive.Close, { className: cn(
|
|
5484
4975
|
"absolute right-4 top-4 rounded-md p-1",
|
|
5485
4976
|
"text-text-muted hover:text-foreground",
|
|
5486
4977
|
"transition-colors duration-fast",
|
|
5487
4978
|
"focus-visible:focus-ring focus-visible:outline-none",
|
|
5488
4979
|
"disabled:pointer-events-none"
|
|
5489
|
-
) }, closeIcon || /* @__PURE__ */
|
|
4980
|
+
) }, closeIcon || /* @__PURE__ */ React27.createElement(DefaultCloseIcon, { className: "icon-sm" }), /* @__PURE__ */ React27.createElement("span", { className: "sr-only" }, "Close"));
|
|
5490
4981
|
if (!useInsideScroll) {
|
|
5491
|
-
return /* @__PURE__ */
|
|
4982
|
+
return /* @__PURE__ */ React27.createElement(ModalPortal, null, /* @__PURE__ */ React27.createElement(ModalOverlay, null), /* @__PURE__ */ React27.createElement(ModalStyleContext.Provider, { value: { scrollBehavior: "outside" } }, /* @__PURE__ */ React27.createElement(
|
|
5492
4983
|
DialogPrimitive.Content,
|
|
5493
4984
|
{
|
|
5494
4985
|
ref,
|
|
@@ -5499,7 +4990,7 @@ var ModalContent = React28.forwardRef(({ className, children, size = "sm", scrol
|
|
|
5499
4990
|
),
|
|
5500
4991
|
...props
|
|
5501
4992
|
},
|
|
5502
|
-
/* @__PURE__ */
|
|
4993
|
+
/* @__PURE__ */ React27.createElement(DialogPrimitive.Close, { asChild: true }, /* @__PURE__ */ React27.createElement("div", { className: "flex min-h-full items-center justify-center p-4" }, /* @__PURE__ */ React27.createElement(
|
|
5503
4994
|
"div",
|
|
5504
4995
|
{
|
|
5505
4996
|
className: cn(
|
|
@@ -5514,7 +5005,7 @@ var ModalContent = React28.forwardRef(({ className, children, size = "sm", scrol
|
|
|
5514
5005
|
)))
|
|
5515
5006
|
)));
|
|
5516
5007
|
}
|
|
5517
|
-
return /* @__PURE__ */
|
|
5008
|
+
return /* @__PURE__ */ React27.createElement(ModalPortal, null, /* @__PURE__ */ React27.createElement(ModalOverlay, null), /* @__PURE__ */ React27.createElement(ModalStyleContext.Provider, { value: { scrollBehavior: "inside" } }, /* @__PURE__ */ React27.createElement("div", { className: "fixed inset-0 z-modal flex items-center justify-center p-4" }, /* @__PURE__ */ React27.createElement(
|
|
5518
5009
|
DialogPrimitive.Content,
|
|
5519
5010
|
{
|
|
5520
5011
|
ref,
|
|
@@ -5534,7 +5025,7 @@ var ModalContent = React28.forwardRef(({ className, children, size = "sm", scrol
|
|
|
5534
5025
|
))));
|
|
5535
5026
|
});
|
|
5536
5027
|
ModalContent.displayName = "ModalContent";
|
|
5537
|
-
var ModalHeader =
|
|
5028
|
+
var ModalHeader = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5538
5029
|
"div",
|
|
5539
5030
|
{
|
|
5540
5031
|
ref,
|
|
@@ -5543,7 +5034,7 @@ var ModalHeader = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5543
5034
|
}
|
|
5544
5035
|
));
|
|
5545
5036
|
ModalHeader.displayName = "ModalHeader";
|
|
5546
|
-
var ModalTitle =
|
|
5037
|
+
var ModalTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5547
5038
|
DialogPrimitive.Title,
|
|
5548
5039
|
{
|
|
5549
5040
|
ref,
|
|
@@ -5552,7 +5043,7 @@ var ModalTitle = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
5552
5043
|
}
|
|
5553
5044
|
));
|
|
5554
5045
|
ModalTitle.displayName = "ModalTitle";
|
|
5555
|
-
var ModalDescription =
|
|
5046
|
+
var ModalDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5556
5047
|
DialogPrimitive.Description,
|
|
5557
5048
|
{
|
|
5558
5049
|
ref,
|
|
@@ -5561,9 +5052,9 @@ var ModalDescription = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5561
5052
|
}
|
|
5562
5053
|
));
|
|
5563
5054
|
ModalDescription.displayName = "ModalDescription";
|
|
5564
|
-
var ModalBody =
|
|
5565
|
-
const { scrollBehavior } =
|
|
5566
|
-
return /* @__PURE__ */
|
|
5055
|
+
var ModalBody = React27.forwardRef(({ className, ...props }, ref) => {
|
|
5056
|
+
const { scrollBehavior } = React27.useContext(ModalStyleContext);
|
|
5057
|
+
return /* @__PURE__ */ React27.createElement(
|
|
5567
5058
|
"div",
|
|
5568
5059
|
{
|
|
5569
5060
|
ref,
|
|
@@ -5577,7 +5068,7 @@ var ModalBody = React28.forwardRef(({ className, ...props }, ref) => {
|
|
|
5577
5068
|
);
|
|
5578
5069
|
});
|
|
5579
5070
|
ModalBody.displayName = "ModalBody";
|
|
5580
|
-
var ModalFooter =
|
|
5071
|
+
var ModalFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5581
5072
|
"div",
|
|
5582
5073
|
{
|
|
5583
5074
|
ref,
|
|
@@ -5592,7 +5083,7 @@ ModalFooter.displayName = "ModalFooter";
|
|
|
5592
5083
|
var AlertModalRoot = AlertDialogPrimitive.Root;
|
|
5593
5084
|
var AlertModalTrigger = AlertDialogPrimitive.Trigger;
|
|
5594
5085
|
var AlertModalPortal = AlertDialogPrimitive.Portal;
|
|
5595
|
-
var AlertModalOverlay =
|
|
5086
|
+
var AlertModalOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5596
5087
|
AlertDialogPrimitive.Overlay,
|
|
5597
5088
|
{
|
|
5598
5089
|
ref,
|
|
@@ -5618,7 +5109,7 @@ var alertModalContentVariants = cva22("", {
|
|
|
5618
5109
|
size: "sm"
|
|
5619
5110
|
}
|
|
5620
5111
|
});
|
|
5621
|
-
var AlertModalContent =
|
|
5112
|
+
var AlertModalContent = React27.forwardRef(({ className, children, size = "sm", ...props }, ref) => /* @__PURE__ */ React27.createElement(AlertModalPortal, null, /* @__PURE__ */ React27.createElement(AlertModalOverlay, null), /* @__PURE__ */ React27.createElement("div", { className: "fixed inset-0 z-modal flex items-center justify-center p-4" }, /* @__PURE__ */ React27.createElement(
|
|
5622
5113
|
AlertDialogPrimitive.Content,
|
|
5623
5114
|
{
|
|
5624
5115
|
ref,
|
|
@@ -5634,7 +5125,7 @@ var AlertModalContent = React28.forwardRef(({ className, children, size = "sm",
|
|
|
5634
5125
|
children
|
|
5635
5126
|
))));
|
|
5636
5127
|
AlertModalContent.displayName = "AlertModalContent";
|
|
5637
|
-
var AlertModalHeader =
|
|
5128
|
+
var AlertModalHeader = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5638
5129
|
"div",
|
|
5639
5130
|
{
|
|
5640
5131
|
ref,
|
|
@@ -5643,7 +5134,7 @@ var AlertModalHeader = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5643
5134
|
}
|
|
5644
5135
|
));
|
|
5645
5136
|
AlertModalHeader.displayName = "AlertModalHeader";
|
|
5646
|
-
var AlertModalTitle =
|
|
5137
|
+
var AlertModalTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5647
5138
|
AlertDialogPrimitive.Title,
|
|
5648
5139
|
{
|
|
5649
5140
|
ref,
|
|
@@ -5652,7 +5143,7 @@ var AlertModalTitle = React28.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
5652
5143
|
}
|
|
5653
5144
|
));
|
|
5654
5145
|
AlertModalTitle.displayName = "AlertModalTitle";
|
|
5655
|
-
var AlertModalDescription =
|
|
5146
|
+
var AlertModalDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5656
5147
|
AlertDialogPrimitive.Description,
|
|
5657
5148
|
{
|
|
5658
5149
|
ref,
|
|
@@ -5661,7 +5152,7 @@ var AlertModalDescription = React28.forwardRef(({ className, ...props }, ref) =>
|
|
|
5661
5152
|
}
|
|
5662
5153
|
));
|
|
5663
5154
|
AlertModalDescription.displayName = "AlertModalDescription";
|
|
5664
|
-
var AlertModalBody =
|
|
5155
|
+
var AlertModalBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5665
5156
|
"div",
|
|
5666
5157
|
{
|
|
5667
5158
|
ref,
|
|
@@ -5670,7 +5161,7 @@ var AlertModalBody = React28.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
5670
5161
|
}
|
|
5671
5162
|
));
|
|
5672
5163
|
AlertModalBody.displayName = "AlertModalBody";
|
|
5673
|
-
var AlertModalFooter =
|
|
5164
|
+
var AlertModalFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5674
5165
|
"div",
|
|
5675
5166
|
{
|
|
5676
5167
|
ref,
|
|
@@ -5682,7 +5173,7 @@ var AlertModalFooter = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5682
5173
|
}
|
|
5683
5174
|
));
|
|
5684
5175
|
AlertModalFooter.displayName = "AlertModalFooter";
|
|
5685
|
-
var AlertModalAction =
|
|
5176
|
+
var AlertModalAction = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5686
5177
|
AlertDialogPrimitive.Action,
|
|
5687
5178
|
{
|
|
5688
5179
|
ref,
|
|
@@ -5691,7 +5182,7 @@ var AlertModalAction = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5691
5182
|
}
|
|
5692
5183
|
));
|
|
5693
5184
|
AlertModalAction.displayName = "AlertModalAction";
|
|
5694
|
-
var AlertModalCancel =
|
|
5185
|
+
var AlertModalCancel = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5695
5186
|
AlertDialogPrimitive.Cancel,
|
|
5696
5187
|
{
|
|
5697
5188
|
ref,
|
|
@@ -5727,10 +5218,10 @@ var AlertModal = Object.assign(AlertModalRoot, {
|
|
|
5727
5218
|
});
|
|
5728
5219
|
|
|
5729
5220
|
// src/components/ui/drawer.tsx
|
|
5730
|
-
import * as
|
|
5221
|
+
import * as React28 from "react";
|
|
5731
5222
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
5732
5223
|
import { cva as cva23 } from "class-variance-authority";
|
|
5733
|
-
var DefaultCloseIcon2 = ({ className }) => /* @__PURE__ */
|
|
5224
|
+
var DefaultCloseIcon2 = ({ className }) => /* @__PURE__ */ React28.createElement(
|
|
5734
5225
|
"svg",
|
|
5735
5226
|
{
|
|
5736
5227
|
className,
|
|
@@ -5740,7 +5231,7 @@ var DefaultCloseIcon2 = ({ className }) => /* @__PURE__ */ React29.createElement
|
|
|
5740
5231
|
strokeWidth: 2,
|
|
5741
5232
|
"aria-hidden": "true"
|
|
5742
5233
|
},
|
|
5743
|
-
/* @__PURE__ */
|
|
5234
|
+
/* @__PURE__ */ React28.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
5744
5235
|
);
|
|
5745
5236
|
var ANIMATION_CLASSES = {
|
|
5746
5237
|
right: "data-[state=open]:animate-drawer-right-enter data-[state=closed]:animate-drawer-right-exit",
|
|
@@ -5773,12 +5264,12 @@ var drawerSizeVertical = cva23("", {
|
|
|
5773
5264
|
defaultVariants: { size: "md" }
|
|
5774
5265
|
});
|
|
5775
5266
|
function DrawerRoot(props) {
|
|
5776
|
-
return /* @__PURE__ */
|
|
5267
|
+
return /* @__PURE__ */ React28.createElement(DialogPrimitive2.Root, { ...props });
|
|
5777
5268
|
}
|
|
5778
5269
|
var DrawerTrigger = DialogPrimitive2.Trigger;
|
|
5779
5270
|
var DrawerPortal = DialogPrimitive2.Portal;
|
|
5780
5271
|
var DrawerClose = DialogPrimitive2.Close;
|
|
5781
|
-
var DrawerOverlay =
|
|
5272
|
+
var DrawerOverlay = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5782
5273
|
DialogPrimitive2.Overlay,
|
|
5783
5274
|
{
|
|
5784
5275
|
ref,
|
|
@@ -5797,10 +5288,10 @@ var SIDE_POSITION = {
|
|
|
5797
5288
|
top: "inset-x-0 top-0",
|
|
5798
5289
|
bottom: "inset-x-0 bottom-0"
|
|
5799
5290
|
};
|
|
5800
|
-
var DrawerContent =
|
|
5291
|
+
var DrawerContent = React28.forwardRef(({ className, children, side = "right", size = "md", showCloseButton = true, closeIcon, ...props }, ref) => {
|
|
5801
5292
|
const isHorizontal = side === "left" || side === "right";
|
|
5802
5293
|
const sizeClass = isHorizontal ? drawerSizeHorizontal({ size }) : drawerSizeVertical({ size });
|
|
5803
|
-
return /* @__PURE__ */
|
|
5294
|
+
return /* @__PURE__ */ React28.createElement(DrawerPortal, null, /* @__PURE__ */ React28.createElement(DrawerOverlay, null), /* @__PURE__ */ React28.createElement(
|
|
5804
5295
|
DialogPrimitive2.Content,
|
|
5805
5296
|
{
|
|
5806
5297
|
ref,
|
|
@@ -5816,17 +5307,17 @@ var DrawerContent = React29.forwardRef(({ className, children, side = "right", s
|
|
|
5816
5307
|
...props
|
|
5817
5308
|
},
|
|
5818
5309
|
children,
|
|
5819
|
-
showCloseButton && /* @__PURE__ */
|
|
5310
|
+
showCloseButton && /* @__PURE__ */ React28.createElement(DialogPrimitive2.Close, { className: cn(
|
|
5820
5311
|
"absolute right-4 top-4 rounded-md p-1",
|
|
5821
5312
|
"text-text-muted hover:text-foreground",
|
|
5822
5313
|
"transition-colors duration-fast",
|
|
5823
5314
|
"focus-visible:focus-ring focus-visible:outline-none",
|
|
5824
5315
|
"disabled:pointer-events-none"
|
|
5825
|
-
) }, closeIcon || /* @__PURE__ */
|
|
5316
|
+
) }, closeIcon || /* @__PURE__ */ React28.createElement(DefaultCloseIcon2, { className: "icon-sm" }), /* @__PURE__ */ React28.createElement("span", { className: "sr-only" }, "Close"))
|
|
5826
5317
|
));
|
|
5827
5318
|
});
|
|
5828
5319
|
DrawerContent.displayName = "DrawerContent";
|
|
5829
|
-
var DrawerHeader =
|
|
5320
|
+
var DrawerHeader = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5830
5321
|
"div",
|
|
5831
5322
|
{
|
|
5832
5323
|
ref,
|
|
@@ -5835,7 +5326,7 @@ var DrawerHeader = React29.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
5835
5326
|
}
|
|
5836
5327
|
));
|
|
5837
5328
|
DrawerHeader.displayName = "DrawerHeader";
|
|
5838
|
-
var DrawerTitle =
|
|
5329
|
+
var DrawerTitle = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5839
5330
|
DialogPrimitive2.Title,
|
|
5840
5331
|
{
|
|
5841
5332
|
ref,
|
|
@@ -5844,7 +5335,7 @@ var DrawerTitle = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5844
5335
|
}
|
|
5845
5336
|
));
|
|
5846
5337
|
DrawerTitle.displayName = "DrawerTitle";
|
|
5847
|
-
var DrawerDescription =
|
|
5338
|
+
var DrawerDescription = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5848
5339
|
DialogPrimitive2.Description,
|
|
5849
5340
|
{
|
|
5850
5341
|
ref,
|
|
@@ -5853,7 +5344,7 @@ var DrawerDescription = React29.forwardRef(({ className, ...props }, ref) => /*
|
|
|
5853
5344
|
}
|
|
5854
5345
|
));
|
|
5855
5346
|
DrawerDescription.displayName = "DrawerDescription";
|
|
5856
|
-
var DrawerBody =
|
|
5347
|
+
var DrawerBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5857
5348
|
"div",
|
|
5858
5349
|
{
|
|
5859
5350
|
ref,
|
|
@@ -5862,7 +5353,7 @@ var DrawerBody = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
5862
5353
|
}
|
|
5863
5354
|
));
|
|
5864
5355
|
DrawerBody.displayName = "DrawerBody";
|
|
5865
|
-
var DrawerFooter =
|
|
5356
|
+
var DrawerFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5866
5357
|
"div",
|
|
5867
5358
|
{
|
|
5868
5359
|
ref,
|
|
@@ -5888,7 +5379,7 @@ var Drawer = Object.assign(DrawerRoot, {
|
|
|
5888
5379
|
});
|
|
5889
5380
|
|
|
5890
5381
|
// src/components/ui/tooltip.tsx
|
|
5891
|
-
import * as
|
|
5382
|
+
import * as React29 from "react";
|
|
5892
5383
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
5893
5384
|
import { cva as cva24 } from "class-variance-authority";
|
|
5894
5385
|
var ANIMATION_CLASSES2 = {
|
|
@@ -5922,13 +5413,13 @@ var ARROW_FILL = {
|
|
|
5922
5413
|
};
|
|
5923
5414
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
5924
5415
|
function TooltipRoot({ delayDuration = 200, ...props }) {
|
|
5925
|
-
return /* @__PURE__ */
|
|
5416
|
+
return /* @__PURE__ */ React29.createElement(TooltipPrimitive.Root, { delayDuration, ...props });
|
|
5926
5417
|
}
|
|
5927
5418
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
5928
5419
|
var TooltipPortal = TooltipPrimitive.Portal;
|
|
5929
|
-
var TooltipContent =
|
|
5420
|
+
var TooltipContent = React29.forwardRef(({ className, variant = "default", size, side = "top", sideOffset = 6, showArrow = true, children, ...props }, ref) => {
|
|
5930
5421
|
const resolvedSide = side;
|
|
5931
|
-
return /* @__PURE__ */
|
|
5422
|
+
return /* @__PURE__ */ React29.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React29.createElement(
|
|
5932
5423
|
TooltipPrimitive.Content,
|
|
5933
5424
|
{
|
|
5934
5425
|
ref,
|
|
@@ -5942,7 +5433,7 @@ var TooltipContent = React30.forwardRef(({ className, variant = "default", size,
|
|
|
5942
5433
|
...props
|
|
5943
5434
|
},
|
|
5944
5435
|
children,
|
|
5945
|
-
showArrow && /* @__PURE__ */
|
|
5436
|
+
showArrow && /* @__PURE__ */ React29.createElement(
|
|
5946
5437
|
TooltipPrimitive.Arrow,
|
|
5947
5438
|
{
|
|
5948
5439
|
className: ARROW_FILL[variant || "default"],
|
|
@@ -5953,7 +5444,7 @@ var TooltipContent = React30.forwardRef(({ className, variant = "default", size,
|
|
|
5953
5444
|
));
|
|
5954
5445
|
});
|
|
5955
5446
|
TooltipContent.displayName = "TooltipContent";
|
|
5956
|
-
var TooltipArrow =
|
|
5447
|
+
var TooltipArrow = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React29.createElement(
|
|
5957
5448
|
TooltipPrimitive.Arrow,
|
|
5958
5449
|
{
|
|
5959
5450
|
ref,
|
|
@@ -5964,7 +5455,7 @@ var TooltipArrow = React30.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
5964
5455
|
}
|
|
5965
5456
|
));
|
|
5966
5457
|
TooltipArrow.displayName = "TooltipArrow";
|
|
5967
|
-
var
|
|
5458
|
+
var Tooltip = Object.assign(TooltipRoot, {
|
|
5968
5459
|
Trigger: TooltipTrigger,
|
|
5969
5460
|
Content: TooltipContent,
|
|
5970
5461
|
Arrow: TooltipArrow,
|
|
@@ -5973,10 +5464,10 @@ var Tooltip2 = Object.assign(TooltipRoot, {
|
|
|
5973
5464
|
});
|
|
5974
5465
|
|
|
5975
5466
|
// src/components/ui/popover.tsx
|
|
5976
|
-
import * as
|
|
5467
|
+
import * as React30 from "react";
|
|
5977
5468
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
5978
5469
|
import { cva as cva25 } from "class-variance-authority";
|
|
5979
|
-
var DefaultCloseIcon3 = ({ className }) => /* @__PURE__ */
|
|
5470
|
+
var DefaultCloseIcon3 = ({ className }) => /* @__PURE__ */ React30.createElement(
|
|
5980
5471
|
"svg",
|
|
5981
5472
|
{
|
|
5982
5473
|
className,
|
|
@@ -5986,7 +5477,7 @@ var DefaultCloseIcon3 = ({ className }) => /* @__PURE__ */ React31.createElement
|
|
|
5986
5477
|
strokeWidth: 2,
|
|
5987
5478
|
"aria-hidden": "true"
|
|
5988
5479
|
},
|
|
5989
|
-
/* @__PURE__ */
|
|
5480
|
+
/* @__PURE__ */ React30.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
5990
5481
|
);
|
|
5991
5482
|
var ANIMATION_CLASSES3 = {
|
|
5992
5483
|
top: "data-[state=open]:animate-popover-top-enter data-[state=closed]:animate-popover-top-exit",
|
|
@@ -6022,16 +5513,16 @@ var CSS_ARROW_CLASSES = {
|
|
|
6022
5513
|
};
|
|
6023
5514
|
var ARROW_ELEVATED = "fill-background-paper drop-shadow-sm";
|
|
6024
5515
|
function PopoverRoot(props) {
|
|
6025
|
-
return /* @__PURE__ */
|
|
5516
|
+
return /* @__PURE__ */ React30.createElement(PopoverPrimitive.Root, { ...props });
|
|
6026
5517
|
}
|
|
6027
5518
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
6028
5519
|
var PopoverPortal = PopoverPrimitive.Portal;
|
|
6029
5520
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
6030
5521
|
var PopoverClose = PopoverPrimitive.Close;
|
|
6031
|
-
var PopoverContent =
|
|
5522
|
+
var PopoverContent = React30.forwardRef(({ className, variant = "default", size, side = "bottom", sideOffset, showArrow = true, showClose = false, closeIcon, children, ...props }, ref) => {
|
|
6032
5523
|
const resolvedSide = side;
|
|
6033
5524
|
const resolvedOffset = sideOffset ?? (variant === "default" && showArrow ? 12 : 6);
|
|
6034
|
-
return /* @__PURE__ */
|
|
5525
|
+
return /* @__PURE__ */ React30.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React30.createElement(
|
|
6035
5526
|
PopoverPrimitive.Content,
|
|
6036
5527
|
{
|
|
6037
5528
|
ref,
|
|
@@ -6044,16 +5535,16 @@ var PopoverContent = React31.forwardRef(({ className, variant = "default", size,
|
|
|
6044
5535
|
),
|
|
6045
5536
|
...props
|
|
6046
5537
|
},
|
|
6047
|
-
showClose && /* @__PURE__ */
|
|
5538
|
+
showClose && /* @__PURE__ */ React30.createElement(
|
|
6048
5539
|
PopoverPrimitive.Close,
|
|
6049
5540
|
{
|
|
6050
5541
|
className: "absolute top-3 right-3 rounded-md p-1 text-text-muted hover:text-foreground hover:bg-background-muted transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-focus-ring",
|
|
6051
5542
|
"aria-label": "Close"
|
|
6052
5543
|
},
|
|
6053
|
-
closeIcon || /* @__PURE__ */
|
|
5544
|
+
closeIcon || /* @__PURE__ */ React30.createElement(DefaultCloseIcon3, { className: "icon-sm" })
|
|
6054
5545
|
),
|
|
6055
5546
|
children,
|
|
6056
|
-
showArrow && variant === "default" && /* @__PURE__ */
|
|
5547
|
+
showArrow && variant === "default" && /* @__PURE__ */ React30.createElement(
|
|
6057
5548
|
"div",
|
|
6058
5549
|
{
|
|
6059
5550
|
className: cn(
|
|
@@ -6062,7 +5553,7 @@ var PopoverContent = React31.forwardRef(({ className, variant = "default", size,
|
|
|
6062
5553
|
)
|
|
6063
5554
|
}
|
|
6064
5555
|
),
|
|
6065
|
-
showArrow && variant === "elevated" && /* @__PURE__ */
|
|
5556
|
+
showArrow && variant === "elevated" && /* @__PURE__ */ React30.createElement(
|
|
6066
5557
|
PopoverPrimitive.Arrow,
|
|
6067
5558
|
{
|
|
6068
5559
|
className: ARROW_ELEVATED,
|
|
@@ -6073,7 +5564,7 @@ var PopoverContent = React31.forwardRef(({ className, variant = "default", size,
|
|
|
6073
5564
|
));
|
|
6074
5565
|
});
|
|
6075
5566
|
PopoverContent.displayName = "PopoverContent";
|
|
6076
|
-
var PopoverArrow =
|
|
5567
|
+
var PopoverArrow = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
6077
5568
|
PopoverPrimitive.Arrow,
|
|
6078
5569
|
{
|
|
6079
5570
|
ref,
|
|
@@ -6094,13 +5585,13 @@ var Popover = Object.assign(PopoverRoot, {
|
|
|
6094
5585
|
});
|
|
6095
5586
|
|
|
6096
5587
|
// src/components/ui/alert.tsx
|
|
6097
|
-
import * as
|
|
5588
|
+
import * as React31 from "react";
|
|
6098
5589
|
import { cva as cva26 } from "class-variance-authority";
|
|
6099
|
-
var InfoIcon = ({ className }) => /* @__PURE__ */
|
|
6100
|
-
var SuccessIcon = ({ className }) => /* @__PURE__ */
|
|
6101
|
-
var WarningIcon = ({ className }) => /* @__PURE__ */
|
|
6102
|
-
var ErrorIcon = ({ className }) => /* @__PURE__ */
|
|
6103
|
-
var DefaultCloseIcon4 = ({ className }) => /* @__PURE__ */
|
|
5590
|
+
var InfoIcon = ({ className }) => /* @__PURE__ */ React31.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React31.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React31.createElement("path", { d: "M12 16v-4" }), /* @__PURE__ */ React31.createElement("path", { d: "M12 8h.01" }));
|
|
5591
|
+
var SuccessIcon = ({ className }) => /* @__PURE__ */ React31.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React31.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React31.createElement("path", { d: "m9 12 2 2 4-4" }));
|
|
5592
|
+
var WarningIcon = ({ className }) => /* @__PURE__ */ React31.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React31.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }), /* @__PURE__ */ React31.createElement("path", { d: "M12 9v4" }), /* @__PURE__ */ React31.createElement("path", { d: "M12 17h.01" }));
|
|
5593
|
+
var ErrorIcon = ({ className }) => /* @__PURE__ */ React31.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React31.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React31.createElement("path", { d: "M12 8v5" }), /* @__PURE__ */ React31.createElement("path", { d: "M12 16h.01" }));
|
|
5594
|
+
var DefaultCloseIcon4 = ({ className }) => /* @__PURE__ */ React31.createElement("svg", { className, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React31.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" }));
|
|
6104
5595
|
var STATUS_ICONS = {
|
|
6105
5596
|
info: InfoIcon,
|
|
6106
5597
|
success: SuccessIcon,
|
|
@@ -6174,15 +5665,15 @@ var DESC_SIZE_MAP = {
|
|
|
6174
5665
|
default: "text-sm mt-1",
|
|
6175
5666
|
lg: "text-md mt-1.5"
|
|
6176
5667
|
};
|
|
6177
|
-
var AlertContext =
|
|
5668
|
+
var AlertContext = React31.createContext({
|
|
6178
5669
|
variant: "default",
|
|
6179
5670
|
color: "info",
|
|
6180
5671
|
size: "default"
|
|
6181
5672
|
});
|
|
6182
5673
|
function useAlertContext() {
|
|
6183
|
-
return
|
|
5674
|
+
return React31.useContext(AlertContext);
|
|
6184
5675
|
}
|
|
6185
|
-
var AlertRoot =
|
|
5676
|
+
var AlertRoot = React31.forwardRef(
|
|
6186
5677
|
({
|
|
6187
5678
|
className,
|
|
6188
5679
|
variant = "default",
|
|
@@ -6200,7 +5691,7 @@ var AlertRoot = React32.forwardRef(
|
|
|
6200
5691
|
const role = color === "error" ? "alert" : "status";
|
|
6201
5692
|
const colorClasses = colorMap2[color][variant];
|
|
6202
5693
|
const StatusIcon = STATUS_ICONS[color];
|
|
6203
|
-
return /* @__PURE__ */
|
|
5694
|
+
return /* @__PURE__ */ React31.createElement(AlertContext.Provider, { value: { variant, color, size } }, /* @__PURE__ */ React31.createElement(
|
|
6204
5695
|
"div",
|
|
6205
5696
|
{
|
|
6206
5697
|
ref,
|
|
@@ -6212,9 +5703,9 @@ var AlertRoot = React32.forwardRef(
|
|
|
6212
5703
|
),
|
|
6213
5704
|
...props
|
|
6214
5705
|
},
|
|
6215
|
-
!hideIcon && /* @__PURE__ */
|
|
6216
|
-
/* @__PURE__ */
|
|
6217
|
-
closable && /* @__PURE__ */
|
|
5706
|
+
!hideIcon && /* @__PURE__ */ React31.createElement("span", { className: "shrink-0" }, icon || /* @__PURE__ */ React31.createElement(StatusIcon, { className: ICON_SIZE_MAP[size] })),
|
|
5707
|
+
/* @__PURE__ */ React31.createElement("div", { className: "flex-1 min-w-0" }, children),
|
|
5708
|
+
closable && /* @__PURE__ */ React31.createElement(
|
|
6218
5709
|
"button",
|
|
6219
5710
|
{
|
|
6220
5711
|
type: "button",
|
|
@@ -6226,16 +5717,16 @@ var AlertRoot = React32.forwardRef(
|
|
|
6226
5717
|
onClick: onClose,
|
|
6227
5718
|
"aria-label": "Close"
|
|
6228
5719
|
},
|
|
6229
|
-
closeIcon || /* @__PURE__ */
|
|
5720
|
+
closeIcon || /* @__PURE__ */ React31.createElement(DefaultCloseIcon4, { className: "icon-sm" })
|
|
6230
5721
|
)
|
|
6231
5722
|
));
|
|
6232
5723
|
}
|
|
6233
5724
|
);
|
|
6234
5725
|
AlertRoot.displayName = "AlertRoot";
|
|
6235
|
-
var AlertTitle =
|
|
5726
|
+
var AlertTitle = React31.forwardRef(
|
|
6236
5727
|
({ className, ...props }, ref) => {
|
|
6237
5728
|
const { size } = useAlertContext();
|
|
6238
|
-
return /* @__PURE__ */
|
|
5729
|
+
return /* @__PURE__ */ React31.createElement(
|
|
6239
5730
|
"h5",
|
|
6240
5731
|
{
|
|
6241
5732
|
ref,
|
|
@@ -6246,10 +5737,10 @@ var AlertTitle = React32.forwardRef(
|
|
|
6246
5737
|
}
|
|
6247
5738
|
);
|
|
6248
5739
|
AlertTitle.displayName = "AlertTitle";
|
|
6249
|
-
var AlertDescription =
|
|
5740
|
+
var AlertDescription = React31.forwardRef(
|
|
6250
5741
|
({ className, ...props }, ref) => {
|
|
6251
5742
|
const { variant, size } = useAlertContext();
|
|
6252
|
-
return /* @__PURE__ */
|
|
5743
|
+
return /* @__PURE__ */ React31.createElement(
|
|
6253
5744
|
"p",
|
|
6254
5745
|
{
|
|
6255
5746
|
ref,
|
|
@@ -6271,14 +5762,14 @@ var Alert = Object.assign(AlertRoot, {
|
|
|
6271
5762
|
});
|
|
6272
5763
|
|
|
6273
5764
|
// src/components/ui/toast.tsx
|
|
6274
|
-
import * as
|
|
5765
|
+
import * as React32 from "react";
|
|
6275
5766
|
import { cva as cva27 } from "class-variance-authority";
|
|
6276
|
-
var InfoIcon2 = ({ className }) => /* @__PURE__ */
|
|
6277
|
-
var SuccessIcon2 = ({ className }) => /* @__PURE__ */
|
|
6278
|
-
var WarningIcon2 = ({ className }) => /* @__PURE__ */
|
|
6279
|
-
var ErrorIcon2 = ({ className }) => /* @__PURE__ */
|
|
6280
|
-
var DefaultCloseIcon5 = ({ className }) => /* @__PURE__ */
|
|
6281
|
-
var LoadingIcon = ({ className }) => /* @__PURE__ */
|
|
5767
|
+
var InfoIcon2 = ({ className }) => /* @__PURE__ */ React32.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React32.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React32.createElement("path", { d: "M12 16v-4" }), /* @__PURE__ */ React32.createElement("path", { d: "M12 8h.01" }));
|
|
5768
|
+
var SuccessIcon2 = ({ className }) => /* @__PURE__ */ React32.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React32.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React32.createElement("path", { d: "m9 12 2 2 4-4" }));
|
|
5769
|
+
var WarningIcon2 = ({ className }) => /* @__PURE__ */ React32.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React32.createElement("path", { d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" }), /* @__PURE__ */ React32.createElement("path", { d: "M12 9v4" }), /* @__PURE__ */ React32.createElement("path", { d: "M12 17h.01" }));
|
|
5770
|
+
var ErrorIcon2 = ({ className }) => /* @__PURE__ */ React32.createElement("svg", { className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true" }, /* @__PURE__ */ React32.createElement("circle", { cx: "12", cy: "12", r: "10" }), /* @__PURE__ */ React32.createElement("path", { d: "M12 8v5" }), /* @__PURE__ */ React32.createElement("path", { d: "M12 16h.01" }));
|
|
5771
|
+
var DefaultCloseIcon5 = ({ className }) => /* @__PURE__ */ React32.createElement("svg", { className, fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React32.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" }));
|
|
5772
|
+
var LoadingIcon = ({ className }) => /* @__PURE__ */ React32.createElement("svg", { className: cn("animate-spin", className), viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, "aria-hidden": "true" }, /* @__PURE__ */ React32.createElement("path", { d: "M21 12a9 9 0 1 1-6.219-8.56", strokeLinecap: "round" }));
|
|
6282
5773
|
var STATUS_ICONS2 = {
|
|
6283
5774
|
default: InfoIcon2,
|
|
6284
5775
|
success: SuccessIcon2,
|
|
@@ -6357,8 +5848,8 @@ function createToastStore() {
|
|
|
6357
5848
|
}
|
|
6358
5849
|
var globalStore = createToastStore();
|
|
6359
5850
|
function useToastStore() {
|
|
6360
|
-
const [, forceUpdate] =
|
|
6361
|
-
|
|
5851
|
+
const [, forceUpdate] = React32.useState(0);
|
|
5852
|
+
React32.useEffect(() => {
|
|
6362
5853
|
return globalStore.subscribe(() => forceUpdate((n) => n + 1));
|
|
6363
5854
|
}, []);
|
|
6364
5855
|
return globalStore.toasts;
|
|
@@ -6452,7 +5943,7 @@ toast.custom = (render, opts) => {
|
|
|
6452
5943
|
});
|
|
6453
5944
|
return id;
|
|
6454
5945
|
};
|
|
6455
|
-
var ToastItem =
|
|
5946
|
+
var ToastItem = React32.memo(function ToastItem2({
|
|
6456
5947
|
data,
|
|
6457
5948
|
position,
|
|
6458
5949
|
size,
|
|
@@ -6461,13 +5952,13 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6461
5952
|
defaultDuration,
|
|
6462
5953
|
onRemove
|
|
6463
5954
|
}) {
|
|
6464
|
-
const [isExiting, setIsExiting] =
|
|
6465
|
-
const [isEntered, setIsEntered] =
|
|
6466
|
-
const [isPaused, setIsPaused] =
|
|
6467
|
-
const timerRef =
|
|
6468
|
-
const remainingRef =
|
|
6469
|
-
const startTimeRef =
|
|
6470
|
-
|
|
5955
|
+
const [isExiting, setIsExiting] = React32.useState(false);
|
|
5956
|
+
const [isEntered, setIsEntered] = React32.useState(false);
|
|
5957
|
+
const [isPaused, setIsPaused] = React32.useState(false);
|
|
5958
|
+
const timerRef = React32.useRef(null);
|
|
5959
|
+
const remainingRef = React32.useRef(0);
|
|
5960
|
+
const startTimeRef = React32.useRef(0);
|
|
5961
|
+
React32.useEffect(() => {
|
|
6471
5962
|
const timer = setTimeout(() => setIsEntered(true), TOAST_EXIT_DURATION);
|
|
6472
5963
|
return () => clearTimeout(timer);
|
|
6473
5964
|
}, []);
|
|
@@ -6480,18 +5971,18 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6480
5971
|
const StatusIcon = STATUS_ICONS2[data.type];
|
|
6481
5972
|
const enterAnim = position.includes("right") ? "animate-toast-slide-in-right" : position.includes("left") ? "animate-toast-slide-in-left" : position.includes("top") ? "animate-toast-slide-in-top" : "animate-toast-slide-in-bottom";
|
|
6482
5973
|
const exitAnim = position.includes("right") ? "animate-toast-slide-out-right" : position.includes("left") ? "animate-toast-slide-out-left" : position.includes("top") ? "animate-toast-slide-out-top" : "animate-toast-slide-out-bottom";
|
|
6483
|
-
const handleDismiss =
|
|
5974
|
+
const handleDismiss = React32.useCallback(() => {
|
|
6484
5975
|
if (!dismissible) return;
|
|
6485
5976
|
setIsExiting(true);
|
|
6486
5977
|
data.onDismiss?.(data);
|
|
6487
5978
|
setTimeout(() => onRemove(data.id), TOAST_EXIT_DURATION);
|
|
6488
5979
|
}, [data, dismissible, onRemove]);
|
|
6489
|
-
const handleAutoClose =
|
|
5980
|
+
const handleAutoClose = React32.useCallback(() => {
|
|
6490
5981
|
setIsExiting(true);
|
|
6491
5982
|
data.onAutoClose?.(data);
|
|
6492
5983
|
setTimeout(() => onRemove(data.id), TOAST_EXIT_DURATION);
|
|
6493
5984
|
}, [data, onRemove]);
|
|
6494
|
-
|
|
5985
|
+
React32.useEffect(() => {
|
|
6495
5986
|
if (duration <= 0) return;
|
|
6496
5987
|
remainingRef.current = duration;
|
|
6497
5988
|
startTimeRef.current = Date.now();
|
|
@@ -6500,7 +5991,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6500
5991
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
6501
5992
|
};
|
|
6502
5993
|
}, [duration, handleAutoClose]);
|
|
6503
|
-
const handleMouseEnter =
|
|
5994
|
+
const handleMouseEnter = React32.useCallback(() => {
|
|
6504
5995
|
if (duration <= 0) return;
|
|
6505
5996
|
setIsPaused(true);
|
|
6506
5997
|
if (timerRef.current) {
|
|
@@ -6508,13 +5999,13 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6508
5999
|
remainingRef.current -= Date.now() - startTimeRef.current;
|
|
6509
6000
|
}
|
|
6510
6001
|
}, [duration]);
|
|
6511
|
-
const handleMouseLeave =
|
|
6002
|
+
const handleMouseLeave = React32.useCallback(() => {
|
|
6512
6003
|
if (duration <= 0) return;
|
|
6513
6004
|
setIsPaused(false);
|
|
6514
6005
|
startTimeRef.current = Date.now();
|
|
6515
6006
|
timerRef.current = setTimeout(handleAutoClose, Math.max(remainingRef.current, TOAST_MIN_RESUME_MS));
|
|
6516
6007
|
}, [duration, handleAutoClose]);
|
|
6517
|
-
|
|
6008
|
+
React32.useEffect(() => {
|
|
6518
6009
|
if (data._promiseState === "success" || data._promiseState === "error") {
|
|
6519
6010
|
const newDuration = data.duration ?? defaultDuration;
|
|
6520
6011
|
if (newDuration > 0) {
|
|
@@ -6525,7 +6016,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6525
6016
|
}
|
|
6526
6017
|
}
|
|
6527
6018
|
}, [data._promiseState, data.duration, defaultDuration, handleAutoClose]);
|
|
6528
|
-
return /* @__PURE__ */
|
|
6019
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6529
6020
|
"div",
|
|
6530
6021
|
{
|
|
6531
6022
|
role,
|
|
@@ -6541,9 +6032,9 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6541
6032
|
onMouseEnter: handleMouseEnter,
|
|
6542
6033
|
onMouseLeave: handleMouseLeave
|
|
6543
6034
|
},
|
|
6544
|
-
data.icon !== void 0 ? data.icon && /* @__PURE__ */
|
|
6545
|
-
/* @__PURE__ */
|
|
6546
|
-
(data.action || data.cancel) && /* @__PURE__ */
|
|
6035
|
+
data.icon !== void 0 ? data.icon && /* @__PURE__ */ React32.createElement("span", { className: "shrink-0" }, data.icon) : data.type !== "default" && /* @__PURE__ */ React32.createElement("span", { className: "shrink-0" }, /* @__PURE__ */ React32.createElement(StatusIcon, { className: "icon-sm" })),
|
|
6036
|
+
/* @__PURE__ */ React32.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React32.createElement("div", { className: "font-semibold" }, data.message), data.description && /* @__PURE__ */ React32.createElement("div", { className: cn("mt-1 opacity-80", size === "sm" ? "text-xs" : "text-sm") }, data.description)),
|
|
6037
|
+
(data.action || data.cancel) && /* @__PURE__ */ React32.createElement("div", { className: "flex items-center gap-1.5 shrink-0" }, data.cancel && /* @__PURE__ */ React32.createElement(
|
|
6547
6038
|
"button",
|
|
6548
6039
|
{
|
|
6549
6040
|
type: "button",
|
|
@@ -6554,7 +6045,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6554
6045
|
}
|
|
6555
6046
|
},
|
|
6556
6047
|
data.cancel.label
|
|
6557
|
-
), data.action && /* @__PURE__ */
|
|
6048
|
+
), data.action && /* @__PURE__ */ React32.createElement(
|
|
6558
6049
|
"button",
|
|
6559
6050
|
{
|
|
6560
6051
|
type: "button",
|
|
@@ -6566,7 +6057,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6566
6057
|
},
|
|
6567
6058
|
data.action.label
|
|
6568
6059
|
)),
|
|
6569
|
-
showClose && dismissible && /* @__PURE__ */
|
|
6060
|
+
showClose && dismissible && /* @__PURE__ */ React32.createElement(
|
|
6570
6061
|
"button",
|
|
6571
6062
|
{
|
|
6572
6063
|
type: "button",
|
|
@@ -6574,7 +6065,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6574
6065
|
onClick: handleDismiss,
|
|
6575
6066
|
"aria-label": "Close"
|
|
6576
6067
|
},
|
|
6577
|
-
/* @__PURE__ */
|
|
6068
|
+
/* @__PURE__ */ React32.createElement(DefaultCloseIcon5, { className: "icon-sm" })
|
|
6578
6069
|
)
|
|
6579
6070
|
);
|
|
6580
6071
|
});
|
|
@@ -6591,8 +6082,8 @@ function Toaster({
|
|
|
6591
6082
|
className
|
|
6592
6083
|
}) {
|
|
6593
6084
|
const toasts = useToastStore();
|
|
6594
|
-
const [expanded, setExpanded] =
|
|
6595
|
-
const handleRemove =
|
|
6085
|
+
const [expanded, setExpanded] = React32.useState(false);
|
|
6086
|
+
const handleRemove = React32.useCallback((id) => {
|
|
6596
6087
|
globalStore.removeToast(id);
|
|
6597
6088
|
}, []);
|
|
6598
6089
|
const visible = toasts.slice(0, visibleToasts);
|
|
@@ -6605,7 +6096,7 @@ function Toaster({
|
|
|
6605
6096
|
isTop ? "top-0" : "bottom-0",
|
|
6606
6097
|
isCenter ? "left-1/2 -translate-x-1/2" : isRight ? "right-0" : "left-0"
|
|
6607
6098
|
);
|
|
6608
|
-
return /* @__PURE__ */
|
|
6099
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6609
6100
|
"section",
|
|
6610
6101
|
{
|
|
6611
6102
|
"aria-label": "Notifications",
|
|
@@ -6621,7 +6112,7 @@ function Toaster({
|
|
|
6621
6112
|
},
|
|
6622
6113
|
visible.map((t, index) => {
|
|
6623
6114
|
const isStacked = !expand && !expanded && index > 0;
|
|
6624
|
-
return /* @__PURE__ */
|
|
6115
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6625
6116
|
"div",
|
|
6626
6117
|
{
|
|
6627
6118
|
key: t.id,
|
|
@@ -6639,7 +6130,7 @@ function Toaster({
|
|
|
6639
6130
|
} : { zIndex: visibleToasts - index }
|
|
6640
6131
|
}
|
|
6641
6132
|
},
|
|
6642
|
-
/* @__PURE__ */
|
|
6133
|
+
/* @__PURE__ */ React32.createElement(
|
|
6643
6134
|
ToastItem,
|
|
6644
6135
|
{
|
|
6645
6136
|
data: t,
|
|
@@ -6658,7 +6149,7 @@ function Toaster({
|
|
|
6658
6149
|
Toaster.displayName = "Toaster";
|
|
6659
6150
|
|
|
6660
6151
|
// src/components/ui/progress.tsx
|
|
6661
|
-
import * as
|
|
6152
|
+
import * as React33 from "react";
|
|
6662
6153
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
6663
6154
|
import { cva as cva28 } from "class-variance-authority";
|
|
6664
6155
|
var CIRCULAR_VIEWBOX = 100;
|
|
@@ -6706,7 +6197,7 @@ var valueFontSizes = {
|
|
|
6706
6197
|
default: "text-sm",
|
|
6707
6198
|
lg: "text-base"
|
|
6708
6199
|
};
|
|
6709
|
-
var Progress =
|
|
6200
|
+
var Progress = React33.forwardRef(({
|
|
6710
6201
|
className,
|
|
6711
6202
|
type = "linear",
|
|
6712
6203
|
value = 0,
|
|
@@ -6732,7 +6223,7 @@ var Progress = React34.forwardRef(({
|
|
|
6732
6223
|
const r = (CIRCULAR_VIEWBOX - strokeWidth) / 2;
|
|
6733
6224
|
const circumference = 2 * Math.PI * r;
|
|
6734
6225
|
const offset = circumference * (1 - percentage / 100);
|
|
6735
|
-
return /* @__PURE__ */
|
|
6226
|
+
return /* @__PURE__ */ React33.createElement(
|
|
6736
6227
|
"div",
|
|
6737
6228
|
{
|
|
6738
6229
|
className: cn("inline-flex items-center gap-2", className),
|
|
@@ -6742,7 +6233,7 @@ var Progress = React34.forwardRef(({
|
|
|
6742
6233
|
"aria-valuemax": max,
|
|
6743
6234
|
"aria-label": label
|
|
6744
6235
|
},
|
|
6745
|
-
/* @__PURE__ */
|
|
6236
|
+
/* @__PURE__ */ React33.createElement("div", { className: "relative", style: { width: diameter, height: diameter } }, /* @__PURE__ */ React33.createElement(
|
|
6746
6237
|
"svg",
|
|
6747
6238
|
{
|
|
6748
6239
|
viewBox: `0 0 ${CIRCULAR_VIEWBOX} ${CIRCULAR_VIEWBOX}`,
|
|
@@ -6750,7 +6241,7 @@ var Progress = React34.forwardRef(({
|
|
|
6750
6241
|
width: diameter,
|
|
6751
6242
|
height: diameter
|
|
6752
6243
|
},
|
|
6753
|
-
/* @__PURE__ */
|
|
6244
|
+
/* @__PURE__ */ React33.createElement(
|
|
6754
6245
|
"circle",
|
|
6755
6246
|
{
|
|
6756
6247
|
cx: CIRCULAR_CENTER,
|
|
@@ -6761,7 +6252,7 @@ var Progress = React34.forwardRef(({
|
|
|
6761
6252
|
strokeWidth
|
|
6762
6253
|
}
|
|
6763
6254
|
),
|
|
6764
|
-
/* @__PURE__ */
|
|
6255
|
+
/* @__PURE__ */ React33.createElement(
|
|
6765
6256
|
"circle",
|
|
6766
6257
|
{
|
|
6767
6258
|
cx: CIRCULAR_CENTER,
|
|
@@ -6775,14 +6266,14 @@ var Progress = React34.forwardRef(({
|
|
|
6775
6266
|
strokeLinecap: "round"
|
|
6776
6267
|
}
|
|
6777
6268
|
)
|
|
6778
|
-
), showValue && resolvedSize !== "sm" && /* @__PURE__ */
|
|
6269
|
+
), showValue && resolvedSize !== "sm" && /* @__PURE__ */ React33.createElement("div", { className: cn(
|
|
6779
6270
|
"absolute inset-0 flex items-center justify-center font-semibold font-mono tabular-nums text-foreground",
|
|
6780
6271
|
CIRCULAR_FONT_SIZES[resolvedSize]
|
|
6781
6272
|
) }, valueLabel))
|
|
6782
6273
|
);
|
|
6783
6274
|
}
|
|
6784
6275
|
const stripedBg = variant === "striped" ? "bg-[length:1rem_1rem] bg-[linear-gradient(45deg,rgba(255,255,255,0.15)_25%,transparent_25%,transparent_50%,rgba(255,255,255,0.15)_50%,rgba(255,255,255,0.15)_75%,transparent_75%,transparent)]" : "";
|
|
6785
|
-
return /* @__PURE__ */
|
|
6276
|
+
return /* @__PURE__ */ React33.createElement("div", { className: cn("flex items-center gap-3", showValue && "w-full", className) }, /* @__PURE__ */ React33.createElement(
|
|
6786
6277
|
ProgressPrimitive.Root,
|
|
6787
6278
|
{
|
|
6788
6279
|
ref,
|
|
@@ -6792,7 +6283,7 @@ var Progress = React34.forwardRef(({
|
|
|
6792
6283
|
"aria-label": label,
|
|
6793
6284
|
...props
|
|
6794
6285
|
},
|
|
6795
|
-
/* @__PURE__ */
|
|
6286
|
+
/* @__PURE__ */ React33.createElement(
|
|
6796
6287
|
ProgressPrimitive.Indicator,
|
|
6797
6288
|
{
|
|
6798
6289
|
className: cn(
|
|
@@ -6804,7 +6295,7 @@ var Progress = React34.forwardRef(({
|
|
|
6804
6295
|
style: { width: `${percentage}%` }
|
|
6805
6296
|
}
|
|
6806
6297
|
)
|
|
6807
|
-
), showValue && /* @__PURE__ */
|
|
6298
|
+
), showValue && /* @__PURE__ */ React33.createElement("span", { className: cn(
|
|
6808
6299
|
"shrink-0 font-semibold font-mono tabular-nums text-foreground",
|
|
6809
6300
|
valueFontSizes[resolvedSize]
|
|
6810
6301
|
) }, valueLabel));
|
|
@@ -6812,7 +6303,7 @@ var Progress = React34.forwardRef(({
|
|
|
6812
6303
|
Progress.displayName = "Progress";
|
|
6813
6304
|
|
|
6814
6305
|
// src/components/ui/spinner.tsx
|
|
6815
|
-
import * as
|
|
6306
|
+
import * as React34 from "react";
|
|
6816
6307
|
import { cva as cva29 } from "class-variance-authority";
|
|
6817
6308
|
var RING_SIZES = {
|
|
6818
6309
|
sm: 16,
|
|
@@ -6890,7 +6381,7 @@ var spinnerVariants = cva29(
|
|
|
6890
6381
|
}
|
|
6891
6382
|
}
|
|
6892
6383
|
);
|
|
6893
|
-
var Spinner =
|
|
6384
|
+
var Spinner = React34.forwardRef(
|
|
6894
6385
|
({
|
|
6895
6386
|
className,
|
|
6896
6387
|
variant = "ring",
|
|
@@ -6909,7 +6400,7 @@ var Spinner = React35.forwardRef(
|
|
|
6909
6400
|
flip: OrbitFlipSpinner,
|
|
6910
6401
|
morph: OrbitMorphSpinner
|
|
6911
6402
|
};
|
|
6912
|
-
return /* @__PURE__ */
|
|
6403
|
+
return /* @__PURE__ */ React34.createElement(
|
|
6913
6404
|
"div",
|
|
6914
6405
|
{
|
|
6915
6406
|
ref,
|
|
@@ -6918,12 +6409,12 @@ var Spinner = React35.forwardRef(
|
|
|
6918
6409
|
className: cn(spinnerVariants({ size }), className),
|
|
6919
6410
|
...props
|
|
6920
6411
|
},
|
|
6921
|
-
variant === "ring" && /* @__PURE__ */
|
|
6922
|
-
variant === "dots" && /* @__PURE__ */
|
|
6923
|
-
variant === "bars" && /* @__PURE__ */
|
|
6412
|
+
variant === "ring" && /* @__PURE__ */ React34.createElement(RingSpinner, { size: resolvedSize, color, speed }),
|
|
6413
|
+
variant === "dots" && /* @__PURE__ */ React34.createElement(DotsSpinner, { size: resolvedSize, color, speed }),
|
|
6414
|
+
variant === "bars" && /* @__PURE__ */ React34.createElement(BarsSpinner, { size: resolvedSize, color, speed }),
|
|
6924
6415
|
variant === "orbit" && (() => {
|
|
6925
6416
|
const OrbitComponent = orbitMap[orbitStyle];
|
|
6926
|
-
return /* @__PURE__ */
|
|
6417
|
+
return /* @__PURE__ */ React34.createElement(OrbitComponent, { size: resolvedSize, color, speed });
|
|
6927
6418
|
})()
|
|
6928
6419
|
);
|
|
6929
6420
|
}
|
|
@@ -6934,7 +6425,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6934
6425
|
const stroke = RING_STROKE[size];
|
|
6935
6426
|
const r = (RING_VIEWBOX - stroke) / 2;
|
|
6936
6427
|
const circumference = 2 * Math.PI * r;
|
|
6937
|
-
return /* @__PURE__ */
|
|
6428
|
+
return /* @__PURE__ */ React34.createElement(
|
|
6938
6429
|
"svg",
|
|
6939
6430
|
{
|
|
6940
6431
|
viewBox: `0 0 ${RING_VIEWBOX} ${RING_VIEWBOX}`,
|
|
@@ -6944,7 +6435,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6944
6435
|
className: "animate-spin",
|
|
6945
6436
|
style: { animationDuration: `${SPEED_MS[speed]}ms` }
|
|
6946
6437
|
},
|
|
6947
|
-
/* @__PURE__ */
|
|
6438
|
+
/* @__PURE__ */ React34.createElement(
|
|
6948
6439
|
"circle",
|
|
6949
6440
|
{
|
|
6950
6441
|
cx: RING_CENTER,
|
|
@@ -6954,7 +6445,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6954
6445
|
strokeWidth: stroke
|
|
6955
6446
|
}
|
|
6956
6447
|
),
|
|
6957
|
-
/* @__PURE__ */
|
|
6448
|
+
/* @__PURE__ */ React34.createElement(
|
|
6958
6449
|
"circle",
|
|
6959
6450
|
{
|
|
6960
6451
|
cx: RING_CENTER,
|
|
@@ -6972,7 +6463,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6972
6463
|
function DotsSpinner({ size, color, speed }) {
|
|
6973
6464
|
const dotSize = DOT_SIZES[size];
|
|
6974
6465
|
const gap = DOT_GAP[size];
|
|
6975
|
-
return /* @__PURE__ */
|
|
6466
|
+
return /* @__PURE__ */ React34.createElement("div", { className: "inline-flex items-center", style: { gap } }, Array.from({ length: DOT_COUNT }, (_, i) => /* @__PURE__ */ React34.createElement(
|
|
6976
6467
|
"div",
|
|
6977
6468
|
{
|
|
6978
6469
|
key: i,
|
|
@@ -6993,7 +6484,7 @@ function BarsSpinner({ size, color, speed }) {
|
|
|
6993
6484
|
const barWidth = BAR_WIDTHS[size];
|
|
6994
6485
|
const barHeight = BAR_HEIGHTS[size];
|
|
6995
6486
|
const gap = BAR_GAP[size];
|
|
6996
|
-
return /* @__PURE__ */
|
|
6487
|
+
return /* @__PURE__ */ React34.createElement("div", { className: "inline-flex items-center", style: { gap, height: barHeight } }, Array.from({ length: BAR_COUNT }, (_, i) => /* @__PURE__ */ React34.createElement(
|
|
6997
6488
|
"div",
|
|
6998
6489
|
{
|
|
6999
6490
|
key: i,
|
|
@@ -7020,7 +6511,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7020
6511
|
const stroke = ORBIT_STROKE[size];
|
|
7021
6512
|
const r = (RING_VIEWBOX - stroke * 2) / 2;
|
|
7022
6513
|
const circumference = 2 * Math.PI * r;
|
|
7023
|
-
return /* @__PURE__ */
|
|
6514
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7024
6515
|
"div",
|
|
7025
6516
|
{
|
|
7026
6517
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7031,7 +6522,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7031
6522
|
position: "relative"
|
|
7032
6523
|
}
|
|
7033
6524
|
},
|
|
7034
|
-
/* @__PURE__ */
|
|
6525
|
+
/* @__PURE__ */ React34.createElement(
|
|
7035
6526
|
"svg",
|
|
7036
6527
|
{
|
|
7037
6528
|
viewBox: `0 0 ${RING_VIEWBOX} ${RING_VIEWBOX}`,
|
|
@@ -7041,7 +6532,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7041
6532
|
className: "absolute inset-0 animate-spinner-orbit",
|
|
7042
6533
|
style: { animationDuration: `${ORBIT_SPEED_MS[speed]}ms` }
|
|
7043
6534
|
},
|
|
7044
|
-
/* @__PURE__ */
|
|
6535
|
+
/* @__PURE__ */ React34.createElement(
|
|
7045
6536
|
"circle",
|
|
7046
6537
|
{
|
|
7047
6538
|
cx: RING_CENTER,
|
|
@@ -7052,7 +6543,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7052
6543
|
}
|
|
7053
6544
|
)
|
|
7054
6545
|
),
|
|
7055
|
-
/* @__PURE__ */
|
|
6546
|
+
/* @__PURE__ */ React34.createElement(
|
|
7056
6547
|
"svg",
|
|
7057
6548
|
{
|
|
7058
6549
|
viewBox: `0 0 ${RING_VIEWBOX} ${RING_VIEWBOX}`,
|
|
@@ -7068,7 +6559,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7068
6559
|
opacity: 0.35
|
|
7069
6560
|
}
|
|
7070
6561
|
},
|
|
7071
|
-
/* @__PURE__ */
|
|
6562
|
+
/* @__PURE__ */ React34.createElement(
|
|
7072
6563
|
"circle",
|
|
7073
6564
|
{
|
|
7074
6565
|
cx: RING_CENTER,
|
|
@@ -7086,7 +6577,7 @@ function OrbitDotsSpinner({ size, color, speed }) {
|
|
|
7086
6577
|
const diameter = ORBIT_SIZES[size];
|
|
7087
6578
|
const dotSize = ORBIT_DOT_SIZE[size];
|
|
7088
6579
|
const orbitRadius = (diameter - dotSize) / 2;
|
|
7089
|
-
return /* @__PURE__ */
|
|
6580
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7090
6581
|
"div",
|
|
7091
6582
|
{
|
|
7092
6583
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7097,7 +6588,7 @@ function OrbitDotsSpinner({ size, color, speed }) {
|
|
|
7097
6588
|
position: "relative"
|
|
7098
6589
|
}
|
|
7099
6590
|
},
|
|
7100
|
-
/* @__PURE__ */
|
|
6591
|
+
/* @__PURE__ */ React34.createElement(
|
|
7101
6592
|
"div",
|
|
7102
6593
|
{
|
|
7103
6594
|
className: "animate-spinner-orbit",
|
|
@@ -7109,7 +6600,7 @@ function OrbitDotsSpinner({ size, color, speed }) {
|
|
|
7109
6600
|
transformStyle: "preserve-3d"
|
|
7110
6601
|
}
|
|
7111
6602
|
},
|
|
7112
|
-
[0, 120, 240].map((angle) => /* @__PURE__ */
|
|
6603
|
+
[0, 120, 240].map((angle) => /* @__PURE__ */ React34.createElement(
|
|
7113
6604
|
"div",
|
|
7114
6605
|
{
|
|
7115
6606
|
key: angle,
|
|
@@ -7142,7 +6633,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7142
6633
|
top: -overlap,
|
|
7143
6634
|
left: -overlap
|
|
7144
6635
|
};
|
|
7145
|
-
return /* @__PURE__ */
|
|
6636
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7146
6637
|
"div",
|
|
7147
6638
|
{
|
|
7148
6639
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7152,7 +6643,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7152
6643
|
perspective: cubeSize * 6
|
|
7153
6644
|
}
|
|
7154
6645
|
},
|
|
7155
|
-
/* @__PURE__ */
|
|
6646
|
+
/* @__PURE__ */ React34.createElement(
|
|
7156
6647
|
"div",
|
|
7157
6648
|
{
|
|
7158
6649
|
style: {
|
|
@@ -7162,7 +6653,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7162
6653
|
transformStyle: "preserve-3d"
|
|
7163
6654
|
}
|
|
7164
6655
|
},
|
|
7165
|
-
/* @__PURE__ */
|
|
6656
|
+
/* @__PURE__ */ React34.createElement(
|
|
7166
6657
|
"div",
|
|
7167
6658
|
{
|
|
7168
6659
|
className: "animate-spinner-orbit",
|
|
@@ -7174,12 +6665,12 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7174
6665
|
transformStyle: "preserve-3d"
|
|
7175
6666
|
}
|
|
7176
6667
|
},
|
|
7177
|
-
/* @__PURE__ */
|
|
7178
|
-
/* @__PURE__ */
|
|
7179
|
-
/* @__PURE__ */
|
|
7180
|
-
/* @__PURE__ */
|
|
7181
|
-
/* @__PURE__ */
|
|
7182
|
-
/* @__PURE__ */
|
|
6668
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `translateZ(${half}px)`, opacity: 0.25 } }),
|
|
6669
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `translateZ(${-half}px)`, opacity: 0.1 } }),
|
|
6670
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateY(-90deg) translateZ(${half}px)`, opacity: 0.2 } }),
|
|
6671
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateY(90deg) translateZ(${half}px)`, opacity: 0.2 } }),
|
|
6672
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateX(90deg) translateZ(${half}px)`, opacity: 0.15 } }),
|
|
6673
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateX(-90deg) translateZ(${half}px)`, opacity: 0.08 } })
|
|
7183
6674
|
)
|
|
7184
6675
|
)
|
|
7185
6676
|
);
|
|
@@ -7187,7 +6678,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7187
6678
|
var FLIP_SIZES = { sm: 14, default: 20, lg: 28 };
|
|
7188
6679
|
function OrbitFlipSpinner({ size, color, speed }) {
|
|
7189
6680
|
const sqSize = FLIP_SIZES[size];
|
|
7190
|
-
return /* @__PURE__ */
|
|
6681
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7191
6682
|
"div",
|
|
7192
6683
|
{
|
|
7193
6684
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7197,7 +6688,7 @@ function OrbitFlipSpinner({ size, color, speed }) {
|
|
|
7197
6688
|
perspective: sqSize * 4
|
|
7198
6689
|
}
|
|
7199
6690
|
},
|
|
7200
|
-
/* @__PURE__ */
|
|
6691
|
+
/* @__PURE__ */ React34.createElement("div", { style: { transform: "rotateX(25deg)", transformStyle: "preserve-3d", width: "100%", height: "100%" } }, /* @__PURE__ */ React34.createElement(
|
|
7201
6692
|
"div",
|
|
7202
6693
|
{
|
|
7203
6694
|
className: "animate-spinner-orbit",
|
|
@@ -7216,7 +6707,7 @@ function OrbitFlipSpinner({ size, color, speed }) {
|
|
|
7216
6707
|
var MORPH_SIZES = { sm: 16, default: 24, lg: 34 };
|
|
7217
6708
|
function OrbitMorphSpinner({ size, color, speed }) {
|
|
7218
6709
|
const morphSize = MORPH_SIZES[size];
|
|
7219
|
-
return /* @__PURE__ */
|
|
6710
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7220
6711
|
"div",
|
|
7221
6712
|
{
|
|
7222
6713
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7226,7 +6717,7 @@ function OrbitMorphSpinner({ size, color, speed }) {
|
|
|
7226
6717
|
perspective: morphSize * 3
|
|
7227
6718
|
}
|
|
7228
6719
|
},
|
|
7229
|
-
/* @__PURE__ */
|
|
6720
|
+
/* @__PURE__ */ React34.createElement(
|
|
7230
6721
|
"div",
|
|
7231
6722
|
{
|
|
7232
6723
|
className: "animate-spinner-morph",
|
|
@@ -7243,7 +6734,7 @@ function OrbitMorphSpinner({ size, color, speed }) {
|
|
|
7243
6734
|
}
|
|
7244
6735
|
|
|
7245
6736
|
// src/components/ui/skeleton.tsx
|
|
7246
|
-
import * as
|
|
6737
|
+
import * as React35 from "react";
|
|
7247
6738
|
import { cva as cva30 } from "class-variance-authority";
|
|
7248
6739
|
var PULSE_DURATION_MS = 2e3;
|
|
7249
6740
|
var WAVE_DURATION_MS = 1800;
|
|
@@ -7270,7 +6761,7 @@ var skeletonVariants = cva30(
|
|
|
7270
6761
|
}
|
|
7271
6762
|
}
|
|
7272
6763
|
);
|
|
7273
|
-
var SkeletonBlock =
|
|
6764
|
+
var SkeletonBlock = React35.forwardRef(
|
|
7274
6765
|
({
|
|
7275
6766
|
className,
|
|
7276
6767
|
variant = "text",
|
|
@@ -7281,7 +6772,7 @@ var SkeletonBlock = React36.forwardRef(
|
|
|
7281
6772
|
style,
|
|
7282
6773
|
...props
|
|
7283
6774
|
}, ref) => {
|
|
7284
|
-
return /* @__PURE__ */
|
|
6775
|
+
return /* @__PURE__ */ React35.createElement(
|
|
7285
6776
|
"div",
|
|
7286
6777
|
{
|
|
7287
6778
|
ref,
|
|
@@ -7301,7 +6792,7 @@ var SkeletonBlock = React36.forwardRef(
|
|
|
7301
6792
|
},
|
|
7302
6793
|
...props
|
|
7303
6794
|
},
|
|
7304
|
-
animation === "wave" && /* @__PURE__ */
|
|
6795
|
+
animation === "wave" && /* @__PURE__ */ React35.createElement(
|
|
7305
6796
|
"div",
|
|
7306
6797
|
{
|
|
7307
6798
|
className: "absolute inset-0 animate-skeleton-wave",
|
|
@@ -7315,7 +6806,7 @@ var SkeletonBlock = React36.forwardRef(
|
|
|
7315
6806
|
}
|
|
7316
6807
|
);
|
|
7317
6808
|
SkeletonBlock.displayName = "SkeletonBlock";
|
|
7318
|
-
var Skeleton =
|
|
6809
|
+
var Skeleton = React35.forwardRef(
|
|
7319
6810
|
({
|
|
7320
6811
|
count,
|
|
7321
6812
|
loading,
|
|
@@ -7324,13 +6815,13 @@ var Skeleton = React36.forwardRef(
|
|
|
7324
6815
|
...rest
|
|
7325
6816
|
}, ref) => {
|
|
7326
6817
|
if (loading !== void 0) {
|
|
7327
|
-
if (!loading) return /* @__PURE__ */
|
|
6818
|
+
if (!loading) return /* @__PURE__ */ React35.createElement(React35.Fragment, null, children);
|
|
7328
6819
|
}
|
|
7329
6820
|
if (count != null && count > 1 && variant === "text") {
|
|
7330
|
-
return /* @__PURE__ */
|
|
6821
|
+
return /* @__PURE__ */ React35.createElement("div", { ref, className: "space-y-2.5", "aria-hidden": "true" }, Array.from({ length: count }, (_, i) => {
|
|
7331
6822
|
const widthPattern = MULTI_LINE_WIDTHS[i % MULTI_LINE_WIDTHS.length];
|
|
7332
6823
|
const isLast = i === count - 1;
|
|
7333
|
-
return /* @__PURE__ */
|
|
6824
|
+
return /* @__PURE__ */ React35.createElement(
|
|
7334
6825
|
SkeletonBlock,
|
|
7335
6826
|
{
|
|
7336
6827
|
key: i,
|
|
@@ -7341,7 +6832,7 @@ var Skeleton = React36.forwardRef(
|
|
|
7341
6832
|
);
|
|
7342
6833
|
}));
|
|
7343
6834
|
}
|
|
7344
|
-
return /* @__PURE__ */
|
|
6835
|
+
return /* @__PURE__ */ React35.createElement(SkeletonBlock, { ref, variant, ...rest });
|
|
7345
6836
|
}
|
|
7346
6837
|
);
|
|
7347
6838
|
Skeleton.displayName = "Skeleton";
|
|
@@ -7388,19 +6879,6 @@ export {
|
|
|
7388
6879
|
CardHeader,
|
|
7389
6880
|
CardImage,
|
|
7390
6881
|
CardTitle,
|
|
7391
|
-
Chart,
|
|
7392
|
-
ChartArea,
|
|
7393
|
-
ChartBar,
|
|
7394
|
-
ChartContainer,
|
|
7395
|
-
ChartLegend,
|
|
7396
|
-
ChartLegendContent,
|
|
7397
|
-
ChartLine,
|
|
7398
|
-
ChartPie,
|
|
7399
|
-
ChartStyle,
|
|
7400
|
-
ChartTooltip,
|
|
7401
|
-
ChartTooltipContent,
|
|
7402
|
-
ChartXAxis,
|
|
7403
|
-
ChartYAxis,
|
|
7404
6882
|
Checkbox,
|
|
7405
6883
|
Divider,
|
|
7406
6884
|
Drawer,
|
|
@@ -7514,7 +6992,7 @@ export {
|
|
|
7514
6992
|
Toggle,
|
|
7515
6993
|
ToggleGroup,
|
|
7516
6994
|
ToggleGroupItem,
|
|
7517
|
-
|
|
6995
|
+
Tooltip,
|
|
7518
6996
|
TooltipArrow,
|
|
7519
6997
|
TooltipContent,
|
|
7520
6998
|
TooltipPortal,
|
|
@@ -7564,7 +7042,6 @@ export {
|
|
|
7564
7042
|
toggleVariants,
|
|
7565
7043
|
tooltipContentVariants,
|
|
7566
7044
|
useButtonGroup,
|
|
7567
|
-
useChart,
|
|
7568
7045
|
useFieldContext,
|
|
7569
7046
|
usePagination
|
|
7570
7047
|
};
|