@7onic-ui/react 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +120 -166
- 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/llms.txt +474 -0
- package/package.json +21 -9
package/dist/index.mjs
CHANGED
|
@@ -2945,517 +2945,8 @@ var Avatar = Object.assign(AvatarRoot, {
|
|
|
2945
2945
|
Group: AvatarGroup
|
|
2946
2946
|
});
|
|
2947
2947
|
|
|
2948
|
-
// src/components/ui/chart.tsx
|
|
2949
|
-
import * as React20 from "react";
|
|
2950
|
-
import * as RechartsPrimitive from "recharts";
|
|
2951
|
-
var THEMES = { light: "", dark: ".dark" };
|
|
2952
|
-
var ChartContext = React20.createContext(null);
|
|
2953
|
-
function useChart() {
|
|
2954
|
-
const context = React20.useContext(ChartContext);
|
|
2955
|
-
if (!context) {
|
|
2956
|
-
throw new Error("useChart must be used within a <ChartContainer />");
|
|
2957
|
-
}
|
|
2958
|
-
return context;
|
|
2959
|
-
}
|
|
2960
|
-
function ChartContainer({
|
|
2961
|
-
id,
|
|
2962
|
-
className,
|
|
2963
|
-
children,
|
|
2964
|
-
config,
|
|
2965
|
-
hoverFade = false,
|
|
2966
|
-
...props
|
|
2967
|
-
}) {
|
|
2968
|
-
const uniqueId = React20.useId();
|
|
2969
|
-
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
2970
|
-
const [activeIndex, setActiveIndex] = React20.useState(null);
|
|
2971
|
-
const [activeDataKey, setActiveDataKey] = React20.useState(null);
|
|
2972
|
-
return /* @__PURE__ */ React20.createElement(ChartContext.Provider, { value: { config, hoverFade, activeIndex, setActiveIndex, activeDataKey, setActiveDataKey } }, /* @__PURE__ */ React20.createElement(
|
|
2973
|
-
"div",
|
|
2974
|
-
{
|
|
2975
|
-
"data-slot": "chart",
|
|
2976
|
-
"data-chart": chartId,
|
|
2977
|
-
onMouseLeave: hoverFade ? () => {
|
|
2978
|
-
setActiveIndex(null);
|
|
2979
|
-
setActiveDataKey(null);
|
|
2980
|
-
} : void 0,
|
|
2981
|
-
className: cn(
|
|
2982
|
-
"flex aspect-video w-full justify-center text-xs outline-none [&_*]:outline-none",
|
|
2983
|
-
// Responsive axis tick font-size — consumed by ChartXAxis / ChartYAxis via var()
|
|
2984
|
-
"[--chart-axis-fs:var(--font-size-2xs)] sm:[--chart-axis-fs:var(--font-size-xs)]",
|
|
2985
|
-
// Recharts element overrides — use arbitrary properties for v3/v4 compat
|
|
2986
|
-
"[&_.recharts-cartesian-axis-tick_text]:[fill:var(--color-text-muted)]",
|
|
2987
|
-
"[&_.recharts-cartesian-grid_line[stroke='#ccc']]:[stroke:var(--color-border)]",
|
|
2988
|
-
"[&_.recharts-cartesian-grid_line]:[stroke-dasharray:3_3]",
|
|
2989
|
-
"[&_.recharts-curve.recharts-tooltip-cursor]:[stroke:var(--color-border)]",
|
|
2990
|
-
"[&_.recharts-dot[stroke='#fff']]:stroke-transparent",
|
|
2991
|
-
"[&_.recharts-layer]:outline-none",
|
|
2992
|
-
"[&_.recharts-polar-grid_[stroke='#ccc']]:[stroke:var(--color-border)]",
|
|
2993
|
-
"[&_.recharts-radial-bar-background-sector]:[fill:var(--color-background-muted)]",
|
|
2994
|
-
"[&_.recharts-rectangle.recharts-tooltip-cursor]:[fill:transparent]",
|
|
2995
|
-
"[&_.recharts-reference-line_[stroke='#ccc']]:[stroke:var(--color-border)]",
|
|
2996
|
-
"[&_.recharts-sector]:outline-none",
|
|
2997
|
-
"[&_.recharts-sector[stroke='#fff']]:stroke-transparent",
|
|
2998
|
-
"[&_.recharts-surface]:outline-none",
|
|
2999
|
-
className
|
|
3000
|
-
),
|
|
3001
|
-
...props
|
|
3002
|
-
},
|
|
3003
|
-
/* @__PURE__ */ React20.createElement(ChartStyle, { id: chartId, config }),
|
|
3004
|
-
/* @__PURE__ */ React20.createElement(RechartsPrimitive.ResponsiveContainer, null, children)
|
|
3005
|
-
));
|
|
3006
|
-
}
|
|
3007
|
-
var CHART_TOOLTIP_KEYFRAME = "@keyframes chart-tooltip-in{from{opacity:0}to{opacity:1}}";
|
|
3008
|
-
var ChartStyle = ({ id, config }) => {
|
|
3009
|
-
const colorConfig = Object.entries(config).filter(
|
|
3010
|
-
([, config2]) => config2.theme || config2.color
|
|
3011
|
-
);
|
|
3012
|
-
const colorCss = colorConfig.length ? Object.entries(THEMES).map(
|
|
3013
|
-
([theme, prefix]) => `
|
|
3014
|
-
${prefix} [data-chart=${id}] {
|
|
3015
|
-
${colorConfig.map(([key, itemConfig]) => {
|
|
3016
|
-
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
3017
|
-
return color ? ` --color-${key}: ${color};` : null;
|
|
3018
|
-
}).join("\n")}
|
|
3019
|
-
}
|
|
3020
|
-
`
|
|
3021
|
-
).join("\n") : "";
|
|
3022
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3023
|
-
"style",
|
|
3024
|
-
{
|
|
3025
|
-
dangerouslySetInnerHTML: {
|
|
3026
|
-
__html: CHART_TOOLTIP_KEYFRAME + colorCss
|
|
3027
|
-
}
|
|
3028
|
-
}
|
|
3029
|
-
);
|
|
3030
|
-
};
|
|
3031
|
-
var CHART_HOVER_FADE_OPACITY = 0.35;
|
|
3032
|
-
var CHART_FADE_TRANSITION = { transition: "fill-opacity var(--duration-fast) ease-out, stroke-opacity var(--duration-fast) ease-out" };
|
|
3033
|
-
var CHART_BAR_RADIUS_MAP = {
|
|
3034
|
-
none: 0,
|
|
3035
|
-
// --radius-none: 0px
|
|
3036
|
-
sm: 2,
|
|
3037
|
-
// --radius-sm: 2px
|
|
3038
|
-
base: 4,
|
|
3039
|
-
// --radius-base: 4px
|
|
3040
|
-
md: 6,
|
|
3041
|
-
// --radius-md: 6px
|
|
3042
|
-
lg: 8
|
|
3043
|
-
// --radius-lg: 8px
|
|
3044
|
-
};
|
|
3045
|
-
function ChartBar({
|
|
3046
|
-
radius = "none",
|
|
3047
|
-
layout = "vertical",
|
|
3048
|
-
stackPosition = "top",
|
|
3049
|
-
variant = "solid",
|
|
3050
|
-
fill,
|
|
3051
|
-
stackId,
|
|
3052
|
-
...props
|
|
3053
|
-
}) {
|
|
3054
|
-
const { hoverFade, activeIndex, setActiveIndex } = useChart();
|
|
3055
|
-
const r = CHART_BAR_RADIUS_MAP[radius];
|
|
3056
|
-
const isStacked = !!stackId || stackPosition === "bottom";
|
|
3057
|
-
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];
|
|
3058
|
-
const outlineShape = React20.useCallback((shapeProps) => {
|
|
3059
|
-
const x = shapeProps.x ?? 0;
|
|
3060
|
-
const y = shapeProps.y ?? 0;
|
|
3061
|
-
const width = shapeProps.width ?? 0;
|
|
3062
|
-
const height = shapeProps.height ?? 0;
|
|
3063
|
-
if (!width || !height || width <= 0 || height <= 0) return /* @__PURE__ */ React20.createElement("g", null);
|
|
3064
|
-
const sw = 2;
|
|
3065
|
-
const inset = sw / 2;
|
|
3066
|
-
const rx = typeof appliedRadius === "number" ? Math.max(0, appliedRadius - inset) : 0;
|
|
3067
|
-
const fadeMultiplier = hoverFade && activeIndex !== null && shapeProps.index !== activeIndex ? CHART_HOVER_FADE_OPACITY : 1;
|
|
3068
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3069
|
-
"rect",
|
|
3070
|
-
{
|
|
3071
|
-
x: x + inset,
|
|
3072
|
-
y: y + inset,
|
|
3073
|
-
width: Math.max(0, width - sw),
|
|
3074
|
-
height: Math.max(0, height - sw),
|
|
3075
|
-
rx,
|
|
3076
|
-
fill,
|
|
3077
|
-
fillOpacity: 0.4 * fadeMultiplier,
|
|
3078
|
-
stroke: fill,
|
|
3079
|
-
strokeOpacity: fadeMultiplier,
|
|
3080
|
-
strokeWidth: sw,
|
|
3081
|
-
style: hoverFade ? CHART_FADE_TRANSITION : void 0
|
|
3082
|
-
}
|
|
3083
|
-
);
|
|
3084
|
-
}, [appliedRadius, fill, hoverFade, activeIndex]);
|
|
3085
|
-
const solidHoverShape = React20.useCallback((shapeProps) => {
|
|
3086
|
-
const opacity = activeIndex === null ? 1 : shapeProps.index === activeIndex ? 1 : CHART_HOVER_FADE_OPACITY;
|
|
3087
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3088
|
-
RechartsPrimitive.Rectangle,
|
|
3089
|
-
{
|
|
3090
|
-
...shapeProps,
|
|
3091
|
-
fillOpacity: opacity,
|
|
3092
|
-
style: CHART_FADE_TRANSITION
|
|
3093
|
-
}
|
|
3094
|
-
);
|
|
3095
|
-
}, [activeIndex]);
|
|
3096
|
-
const useOutline = variant === "outline" && !isStacked;
|
|
3097
|
-
const needsHoverShape = hoverFade && variant === "solid" && !useOutline;
|
|
3098
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3099
|
-
RechartsPrimitive.Bar,
|
|
3100
|
-
{
|
|
3101
|
-
radius: appliedRadius,
|
|
3102
|
-
fill,
|
|
3103
|
-
stackId,
|
|
3104
|
-
...hoverFade && { isAnimationActive: false },
|
|
3105
|
-
...useOutline && { shape: outlineShape },
|
|
3106
|
-
...needsHoverShape && { shape: solidHoverShape },
|
|
3107
|
-
...hoverFade && { onMouseEnter: (_, index) => setActiveIndex(index) },
|
|
3108
|
-
...props
|
|
3109
|
-
}
|
|
3110
|
-
);
|
|
3111
|
-
}
|
|
3112
|
-
function ChartTooltip(props) {
|
|
3113
|
-
return /* @__PURE__ */ React20.createElement(RechartsPrimitive.Tooltip, { animationDuration: 0, ...props });
|
|
3114
|
-
}
|
|
3115
|
-
function ChartTooltipContent({
|
|
3116
|
-
active,
|
|
3117
|
-
payload,
|
|
3118
|
-
className,
|
|
3119
|
-
indicator = "dot",
|
|
3120
|
-
hideLabel = false,
|
|
3121
|
-
hideIndicator = false,
|
|
3122
|
-
label,
|
|
3123
|
-
labelFormatter,
|
|
3124
|
-
labelClassName,
|
|
3125
|
-
formatter,
|
|
3126
|
-
color,
|
|
3127
|
-
nameKey,
|
|
3128
|
-
labelKey
|
|
3129
|
-
}) {
|
|
3130
|
-
const { config } = useChart();
|
|
3131
|
-
const tooltipLabel = React20.useMemo(() => {
|
|
3132
|
-
if (hideLabel || !payload?.length) {
|
|
3133
|
-
return null;
|
|
3134
|
-
}
|
|
3135
|
-
const [item] = payload;
|
|
3136
|
-
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
3137
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
3138
|
-
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
3139
|
-
if (labelFormatter) {
|
|
3140
|
-
return /* @__PURE__ */ React20.createElement("div", { className: cn("font-semibold", labelClassName) }, labelFormatter(value, payload));
|
|
3141
|
-
}
|
|
3142
|
-
if (!value) {
|
|
3143
|
-
return null;
|
|
3144
|
-
}
|
|
3145
|
-
return /* @__PURE__ */ React20.createElement("div", { className: cn("font-semibold", labelClassName) }, value);
|
|
3146
|
-
}, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);
|
|
3147
|
-
if (!active || !payload?.length) {
|
|
3148
|
-
return null;
|
|
3149
|
-
}
|
|
3150
|
-
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
3151
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3152
|
-
"div",
|
|
3153
|
-
{
|
|
3154
|
-
className: cn(
|
|
3155
|
-
"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",
|
|
3156
|
-
className
|
|
3157
|
-
),
|
|
3158
|
-
style: { animation: "chart-tooltip-in var(--duration-slow) ease-out" }
|
|
3159
|
-
},
|
|
3160
|
-
!nestLabel ? tooltipLabel : null,
|
|
3161
|
-
/* @__PURE__ */ React20.createElement("div", { className: "grid gap-1.5" }, payload.filter((item) => item.type !== "none").map((item, index) => {
|
|
3162
|
-
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
3163
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
3164
|
-
const indicatorColor = color || item.payload?.fill || item.color;
|
|
3165
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3166
|
-
"div",
|
|
3167
|
-
{
|
|
3168
|
-
key: item.dataKey,
|
|
3169
|
-
className: cn(
|
|
3170
|
-
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-text-muted",
|
|
3171
|
-
indicator === "dot" && "items-center"
|
|
3172
|
-
)
|
|
3173
|
-
},
|
|
3174
|
-
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(
|
|
3175
|
-
"div",
|
|
3176
|
-
{
|
|
3177
|
-
className: cn(
|
|
3178
|
-
"shrink-0 rounded-sm",
|
|
3179
|
-
{
|
|
3180
|
-
"h-2.5 w-2.5": indicator === "dot",
|
|
3181
|
-
"w-1": indicator === "line",
|
|
3182
|
-
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
3183
|
-
"my-0.5": nestLabel && indicator === "dashed"
|
|
3184
|
-
}
|
|
3185
|
-
),
|
|
3186
|
-
style: {
|
|
3187
|
-
backgroundColor: indicator === "dashed" ? "transparent" : indicatorColor,
|
|
3188
|
-
borderColor: indicatorColor
|
|
3189
|
-
}
|
|
3190
|
-
}
|
|
3191
|
-
), /* @__PURE__ */ React20.createElement(
|
|
3192
|
-
"div",
|
|
3193
|
-
{
|
|
3194
|
-
className: cn(
|
|
3195
|
-
"flex flex-1 justify-between leading-none",
|
|
3196
|
-
nestLabel ? "items-end" : "items-center"
|
|
3197
|
-
)
|
|
3198
|
-
},
|
|
3199
|
-
/* @__PURE__ */ React20.createElement("div", { className: "grid gap-1.5" }, nestLabel ? tooltipLabel : null, /* @__PURE__ */ React20.createElement("span", { className: "text-text-muted" }, itemConfig?.label || item.name)),
|
|
3200
|
-
item.value && /* @__PURE__ */ React20.createElement("span", { className: "font-mono font-semibold text-foreground tabular-nums" }, item.value.toLocaleString())
|
|
3201
|
-
))
|
|
3202
|
-
);
|
|
3203
|
-
}))
|
|
3204
|
-
);
|
|
3205
|
-
}
|
|
3206
|
-
var ChartLegend = RechartsPrimitive.Legend;
|
|
3207
|
-
function ChartLegendContent({
|
|
3208
|
-
className,
|
|
3209
|
-
hideIcon = false,
|
|
3210
|
-
payload,
|
|
3211
|
-
verticalAlign = "bottom",
|
|
3212
|
-
align = "center",
|
|
3213
|
-
layout = "horizontal",
|
|
3214
|
-
nameKey
|
|
3215
|
-
}) {
|
|
3216
|
-
const { config } = useChart();
|
|
3217
|
-
if (!payload?.length) {
|
|
3218
|
-
return null;
|
|
3219
|
-
}
|
|
3220
|
-
const isVertical = layout === "vertical";
|
|
3221
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3222
|
-
"div",
|
|
3223
|
-
{
|
|
3224
|
-
className: cn(
|
|
3225
|
-
"flex gap-4",
|
|
3226
|
-
isVertical ? "flex-col items-start gap-1.5" : [
|
|
3227
|
-
"items-center",
|
|
3228
|
-
align === "left" ? "justify-start" : align === "right" ? "justify-end" : "justify-center",
|
|
3229
|
-
verticalAlign === "top" ? "pb-3" : "pt-3"
|
|
3230
|
-
],
|
|
3231
|
-
className
|
|
3232
|
-
)
|
|
3233
|
-
},
|
|
3234
|
-
payload.filter((item) => item.type !== "none").map((item) => {
|
|
3235
|
-
const key = `${nameKey || item.dataKey || "value"}`;
|
|
3236
|
-
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
3237
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3238
|
-
"div",
|
|
3239
|
-
{
|
|
3240
|
-
key: item.value,
|
|
3241
|
-
className: "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-text-muted"
|
|
3242
|
-
},
|
|
3243
|
-
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ React20.createElement(itemConfig.icon, null) : /* @__PURE__ */ React20.createElement(
|
|
3244
|
-
"div",
|
|
3245
|
-
{
|
|
3246
|
-
className: "h-2 w-2 shrink-0 rounded-sm",
|
|
3247
|
-
style: {
|
|
3248
|
-
backgroundColor: item.color
|
|
3249
|
-
}
|
|
3250
|
-
}
|
|
3251
|
-
),
|
|
3252
|
-
/* @__PURE__ */ React20.createElement("span", { className: "text-foreground" }, itemConfig?.label)
|
|
3253
|
-
);
|
|
3254
|
-
})
|
|
3255
|
-
);
|
|
3256
|
-
}
|
|
3257
|
-
function getPayloadConfigFromPayload(config, payload, key) {
|
|
3258
|
-
if (typeof payload !== "object" || payload === null) {
|
|
3259
|
-
return void 0;
|
|
3260
|
-
}
|
|
3261
|
-
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
3262
|
-
let configLabelKey = key;
|
|
3263
|
-
if (key in payload && typeof payload[key] === "string") {
|
|
3264
|
-
configLabelKey = payload[key];
|
|
3265
|
-
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
3266
|
-
configLabelKey = payloadPayload[key];
|
|
3267
|
-
}
|
|
3268
|
-
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
3269
|
-
}
|
|
3270
|
-
var CHART_AXIS_TICK_STYLE = { style: { fontSize: "var(--chart-axis-fs)", fill: "var(--color-text-subtle)" } };
|
|
3271
|
-
var CHART_XAXIS_PADDING = { left: 16, right: 16 };
|
|
3272
|
-
function ChartXAxis({ tick, padding, ...props }) {
|
|
3273
|
-
return /* @__PURE__ */ React20.createElement(RechartsPrimitive.XAxis, { tick: tick ?? CHART_AXIS_TICK_STYLE, padding: padding ?? CHART_XAXIS_PADDING, ...props });
|
|
3274
|
-
}
|
|
3275
|
-
function ChartYAxis({ tick, width = "auto", ...props }) {
|
|
3276
|
-
return /* @__PURE__ */ React20.createElement(RechartsPrimitive.YAxis, { tick: tick ?? CHART_AXIS_TICK_STYLE, width, ...props });
|
|
3277
|
-
}
|
|
3278
|
-
var CHART_LINE_DASH = "5 5";
|
|
3279
|
-
var CHART_DOT_PROPS = { r: 3, strokeWidth: 2 };
|
|
3280
|
-
var CHART_ACTIVE_DOT_PROPS = { r: 5, strokeWidth: 2 };
|
|
3281
|
-
function ChartLine({
|
|
3282
|
-
type = "monotone",
|
|
3283
|
-
variant = "solid",
|
|
3284
|
-
dot: showDot = true,
|
|
3285
|
-
activeDot: showActiveDot = true,
|
|
3286
|
-
stroke,
|
|
3287
|
-
dataKey,
|
|
3288
|
-
...props
|
|
3289
|
-
}) {
|
|
3290
|
-
const { hoverFade, activeDataKey, setActiveDataKey } = useChart();
|
|
3291
|
-
const isFaded = hoverFade && activeDataKey !== null && activeDataKey !== dataKey;
|
|
3292
|
-
const opacity = isFaded ? CHART_HOVER_FADE_OPACITY : 1;
|
|
3293
|
-
const dotProps = showDot ? variant === "dashed" ? { ...CHART_DOT_PROPS, strokeDasharray: "0" } : CHART_DOT_PROPS : false;
|
|
3294
|
-
const activeDotProps = showActiveDot ? variant === "dashed" ? { ...CHART_ACTIVE_DOT_PROPS, strokeDasharray: "0" } : CHART_ACTIVE_DOT_PROPS : false;
|
|
3295
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3296
|
-
RechartsPrimitive.Line,
|
|
3297
|
-
{
|
|
3298
|
-
type,
|
|
3299
|
-
dataKey,
|
|
3300
|
-
stroke,
|
|
3301
|
-
strokeWidth: 2,
|
|
3302
|
-
strokeDasharray: variant === "dashed" ? CHART_LINE_DASH : void 0,
|
|
3303
|
-
dot: dotProps,
|
|
3304
|
-
activeDot: activeDotProps,
|
|
3305
|
-
strokeOpacity: opacity,
|
|
3306
|
-
...hoverFade && { isAnimationActive: false },
|
|
3307
|
-
...hoverFade && { onMouseEnter: () => setActiveDataKey(dataKey) },
|
|
3308
|
-
style: hoverFade ? { transition: "stroke-opacity var(--duration-fast) ease-out" } : void 0,
|
|
3309
|
-
...props
|
|
3310
|
-
}
|
|
3311
|
-
);
|
|
3312
|
-
}
|
|
3313
|
-
var CHART_AREA_DEFAULT_OPACITY = 0.4;
|
|
3314
|
-
function ChartArea({
|
|
3315
|
-
type = "monotone",
|
|
3316
|
-
variant = "solid",
|
|
3317
|
-
dot: showDot = true,
|
|
3318
|
-
activeDot: showActiveDot = true,
|
|
3319
|
-
fillOpacity = CHART_AREA_DEFAULT_OPACITY,
|
|
3320
|
-
stroke,
|
|
3321
|
-
fill,
|
|
3322
|
-
dataKey,
|
|
3323
|
-
...props
|
|
3324
|
-
}) {
|
|
3325
|
-
const { hoverFade, activeDataKey, setActiveDataKey } = useChart();
|
|
3326
|
-
const isFaded = hoverFade && activeDataKey !== null && activeDataKey !== dataKey;
|
|
3327
|
-
const opacity = isFaded ? CHART_HOVER_FADE_OPACITY : 1;
|
|
3328
|
-
const dotProps = showDot ? CHART_DOT_PROPS : false;
|
|
3329
|
-
const activeDotProps = showActiveDot ? CHART_ACTIVE_DOT_PROPS : false;
|
|
3330
|
-
const gradientId = `area-gradient-${String(dataKey)}`;
|
|
3331
|
-
const effectiveFill = variant === "gradient" ? `url(#${gradientId})` : fill || stroke;
|
|
3332
|
-
const effectiveFillOpacity = variant === "gradient" ? 1 : fillOpacity;
|
|
3333
|
-
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(
|
|
3334
|
-
RechartsPrimitive.Area,
|
|
3335
|
-
{
|
|
3336
|
-
type,
|
|
3337
|
-
dataKey,
|
|
3338
|
-
stroke,
|
|
3339
|
-
fill: effectiveFill,
|
|
3340
|
-
fillOpacity: effectiveFillOpacity * opacity,
|
|
3341
|
-
strokeWidth: 2,
|
|
3342
|
-
dot: dotProps,
|
|
3343
|
-
activeDot: activeDotProps,
|
|
3344
|
-
strokeOpacity: opacity,
|
|
3345
|
-
...hoverFade && { isAnimationActive: false },
|
|
3346
|
-
...hoverFade && { onMouseEnter: () => setActiveDataKey(dataKey) },
|
|
3347
|
-
style: hoverFade ? { transition: "fill-opacity var(--duration-fast) ease-out, stroke-opacity var(--duration-fast) ease-out" } : void 0,
|
|
3348
|
-
...props
|
|
3349
|
-
}
|
|
3350
|
-
));
|
|
3351
|
-
}
|
|
3352
|
-
var CHART_PIE_ACTIVE_OFFSET = 8;
|
|
3353
|
-
var CHART_PIE_DONUT_INNER_RADIUS = 60;
|
|
3354
|
-
var CHART_PIE_LABEL_RADIAL = 16;
|
|
3355
|
-
var CHART_PIE_LABEL_HORIZ = 20;
|
|
3356
|
-
var CHART_PIE_SKIP_ANGLE = 15;
|
|
3357
|
-
function ChartPie({
|
|
3358
|
-
variant = "pie",
|
|
3359
|
-
label: labelMode = "none",
|
|
3360
|
-
labelContent = "value",
|
|
3361
|
-
activeShape: showActiveShape = true,
|
|
3362
|
-
innerRadius,
|
|
3363
|
-
paddingAngle = 0,
|
|
3364
|
-
cornerRadius = 0,
|
|
3365
|
-
startAngle = 90,
|
|
3366
|
-
endAngle = -270,
|
|
3367
|
-
...props
|
|
3368
|
-
}) {
|
|
3369
|
-
const resolvedInnerRadius = innerRadius ?? (variant === "donut" ? CHART_PIE_DONUT_INNER_RADIUS : 0);
|
|
3370
|
-
const activeShapeConfig = showActiveShape ? (props2) => /* @__PURE__ */ React20.createElement(
|
|
3371
|
-
RechartsPrimitive.Sector,
|
|
3372
|
-
{
|
|
3373
|
-
...props2,
|
|
3374
|
-
outerRadius: props2.outerRadius + CHART_PIE_ACTIVE_OFFSET
|
|
3375
|
-
}
|
|
3376
|
-
) : void 0;
|
|
3377
|
-
const getDisplayText = (entry) => labelContent === "percent" ? `${(entry.percent * 100).toFixed(0)}%` : entry.value;
|
|
3378
|
-
const labelConfig = labelMode === "outside" ? (entry) => {
|
|
3379
|
-
const RADIAN = Math.PI / 180;
|
|
3380
|
-
const { cx, cy, midAngle, outerRadius, fill } = entry;
|
|
3381
|
-
const sx = cx + outerRadius * Math.cos(-midAngle * RADIAN);
|
|
3382
|
-
const sy = cy + outerRadius * Math.sin(-midAngle * RADIAN);
|
|
3383
|
-
const mx = cx + (outerRadius + CHART_PIE_LABEL_RADIAL) * Math.cos(-midAngle * RADIAN);
|
|
3384
|
-
const my = cy + (outerRadius + CHART_PIE_LABEL_RADIAL) * Math.sin(-midAngle * RADIAN);
|
|
3385
|
-
const isRight = mx > cx;
|
|
3386
|
-
const ex = mx + (isRight ? CHART_PIE_LABEL_HORIZ : -CHART_PIE_LABEL_HORIZ);
|
|
3387
|
-
return /* @__PURE__ */ React20.createElement("g", null, /* @__PURE__ */ React20.createElement(
|
|
3388
|
-
"polyline",
|
|
3389
|
-
{
|
|
3390
|
-
points: `${sx},${sy} ${mx},${my} ${ex},${my}`,
|
|
3391
|
-
fill: "none",
|
|
3392
|
-
stroke: fill,
|
|
3393
|
-
strokeWidth: 1,
|
|
3394
|
-
strokeOpacity: 0.5
|
|
3395
|
-
}
|
|
3396
|
-
), /* @__PURE__ */ React20.createElement(
|
|
3397
|
-
"text",
|
|
3398
|
-
{
|
|
3399
|
-
x: ex + (isRight ? 4 : -4),
|
|
3400
|
-
y: my,
|
|
3401
|
-
textAnchor: isRight ? "start" : "end",
|
|
3402
|
-
dominantBaseline: "central",
|
|
3403
|
-
style: { fontSize: "var(--font-size-xs)", fill: "var(--color-text-muted)" }
|
|
3404
|
-
},
|
|
3405
|
-
getDisplayText(entry)
|
|
3406
|
-
));
|
|
3407
|
-
} : labelMode === "inside" ? (entry) => {
|
|
3408
|
-
const angle = Math.abs(entry.endAngle - entry.startAngle);
|
|
3409
|
-
if (angle < CHART_PIE_SKIP_ANGLE) return null;
|
|
3410
|
-
const RADIAN = Math.PI / 180;
|
|
3411
|
-
const { cx, cy, innerRadius: ir, outerRadius: or, midAngle } = entry;
|
|
3412
|
-
const ratio = ir > 0 ? 0.5 : 0.65;
|
|
3413
|
-
const radius = ir + (or - ir) * ratio;
|
|
3414
|
-
const x = cx + radius * Math.cos(-midAngle * RADIAN);
|
|
3415
|
-
const y = cy + radius * Math.sin(-midAngle * RADIAN);
|
|
3416
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3417
|
-
"text",
|
|
3418
|
-
{
|
|
3419
|
-
x,
|
|
3420
|
-
y,
|
|
3421
|
-
textAnchor: "middle",
|
|
3422
|
-
dominantBaseline: "central",
|
|
3423
|
-
style: { fontSize: "var(--font-size-xs)", fill: "white", fontWeight: 600 }
|
|
3424
|
-
},
|
|
3425
|
-
getDisplayText(entry)
|
|
3426
|
-
);
|
|
3427
|
-
} : false;
|
|
3428
|
-
return /* @__PURE__ */ React20.createElement(
|
|
3429
|
-
RechartsPrimitive.Pie,
|
|
3430
|
-
{
|
|
3431
|
-
innerRadius: resolvedInnerRadius,
|
|
3432
|
-
paddingAngle,
|
|
3433
|
-
cornerRadius,
|
|
3434
|
-
startAngle,
|
|
3435
|
-
endAngle,
|
|
3436
|
-
label: labelConfig,
|
|
3437
|
-
labelLine: false,
|
|
3438
|
-
activeShape: activeShapeConfig,
|
|
3439
|
-
...props
|
|
3440
|
-
}
|
|
3441
|
-
);
|
|
3442
|
-
}
|
|
3443
|
-
var Chart = Object.assign(ChartContainer, {
|
|
3444
|
-
Bar: ChartBar,
|
|
3445
|
-
Line: ChartLine,
|
|
3446
|
-
Area: ChartArea,
|
|
3447
|
-
Pie: ChartPie,
|
|
3448
|
-
Tooltip: ChartTooltip,
|
|
3449
|
-
TooltipContent: ChartTooltipContent,
|
|
3450
|
-
Legend: ChartLegend,
|
|
3451
|
-
LegendContent: ChartLegendContent,
|
|
3452
|
-
XAxis: ChartXAxis,
|
|
3453
|
-
YAxis: ChartYAxis,
|
|
3454
|
-
Style: ChartStyle
|
|
3455
|
-
});
|
|
3456
|
-
|
|
3457
2948
|
// src/components/ui/metric-card.tsx
|
|
3458
|
-
import * as
|
|
2949
|
+
import * as React20 from "react";
|
|
3459
2950
|
import { cva as cva16 } from "class-variance-authority";
|
|
3460
2951
|
var metricCardVariants = cva16(
|
|
3461
2952
|
"transition-colors",
|
|
@@ -3515,11 +3006,11 @@ var trendConfig = {
|
|
|
3515
3006
|
down: { color: "text-text-error", srLabel: "Decreased" },
|
|
3516
3007
|
neutral: { color: "text-text-muted", srLabel: "No change" }
|
|
3517
3008
|
};
|
|
3518
|
-
var MetricCardContext =
|
|
3519
|
-
var MetricCardRoot =
|
|
3009
|
+
var MetricCardContext = React20.createContext({ size: "default", animated: false });
|
|
3010
|
+
var MetricCardRoot = React20.forwardRef(
|
|
3520
3011
|
({ className, variant, size, radius, animated = false, children, ...props }, ref) => {
|
|
3521
3012
|
const resolvedSize = size || "default";
|
|
3522
|
-
return /* @__PURE__ */
|
|
3013
|
+
return /* @__PURE__ */ React20.createElement(MetricCardContext.Provider, { value: { size: resolvedSize, animated } }, /* @__PURE__ */ React20.createElement(
|
|
3523
3014
|
"div",
|
|
3524
3015
|
{
|
|
3525
3016
|
ref,
|
|
@@ -3531,8 +3022,8 @@ var MetricCardRoot = React21.forwardRef(
|
|
|
3531
3022
|
}
|
|
3532
3023
|
);
|
|
3533
3024
|
MetricCardRoot.displayName = "MetricCard";
|
|
3534
|
-
var MetricCardHeader =
|
|
3535
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3025
|
+
var MetricCardHeader = React20.forwardRef(
|
|
3026
|
+
({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
|
|
3536
3027
|
"div",
|
|
3537
3028
|
{
|
|
3538
3029
|
ref,
|
|
@@ -3542,10 +3033,10 @@ var MetricCardHeader = React21.forwardRef(
|
|
|
3542
3033
|
)
|
|
3543
3034
|
);
|
|
3544
3035
|
MetricCardHeader.displayName = "MetricCardHeader";
|
|
3545
|
-
var MetricCardTitle =
|
|
3036
|
+
var MetricCardTitle = React20.forwardRef(
|
|
3546
3037
|
({ className, ...props }, ref) => {
|
|
3547
|
-
const { size } =
|
|
3548
|
-
return /* @__PURE__ */
|
|
3038
|
+
const { size } = React20.useContext(MetricCardContext);
|
|
3039
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3549
3040
|
"p",
|
|
3550
3041
|
{
|
|
3551
3042
|
ref,
|
|
@@ -3556,11 +3047,11 @@ var MetricCardTitle = React21.forwardRef(
|
|
|
3556
3047
|
}
|
|
3557
3048
|
);
|
|
3558
3049
|
MetricCardTitle.displayName = "MetricCardTitle";
|
|
3559
|
-
var MetricCardValue =
|
|
3050
|
+
var MetricCardValue = React20.forwardRef(
|
|
3560
3051
|
({ className, children, ...props }, ref) => {
|
|
3561
|
-
const { size, animated } =
|
|
3562
|
-
const [display, setDisplay] =
|
|
3563
|
-
|
|
3052
|
+
const { size, animated } = React20.useContext(MetricCardContext);
|
|
3053
|
+
const [display, setDisplay] = React20.useState(children);
|
|
3054
|
+
React20.useEffect(() => {
|
|
3564
3055
|
if (!animated || typeof children !== "string") {
|
|
3565
3056
|
setDisplay(children);
|
|
3566
3057
|
return;
|
|
@@ -3595,7 +3086,7 @@ var MetricCardValue = React21.forwardRef(
|
|
|
3595
3086
|
}, duration / steps);
|
|
3596
3087
|
return () => clearInterval(timer);
|
|
3597
3088
|
}, [children, animated]);
|
|
3598
|
-
return /* @__PURE__ */
|
|
3089
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3599
3090
|
"p",
|
|
3600
3091
|
{
|
|
3601
3092
|
ref,
|
|
@@ -3607,27 +3098,27 @@ var MetricCardValue = React21.forwardRef(
|
|
|
3607
3098
|
}
|
|
3608
3099
|
);
|
|
3609
3100
|
MetricCardValue.displayName = "MetricCardValue";
|
|
3610
|
-
var MetricCardTrend =
|
|
3101
|
+
var MetricCardTrend = React20.forwardRef(
|
|
3611
3102
|
({ className, direction, children, ...props }, ref) => {
|
|
3612
3103
|
const config = trendConfig[direction];
|
|
3613
|
-
return /* @__PURE__ */
|
|
3104
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3614
3105
|
"p",
|
|
3615
3106
|
{
|
|
3616
3107
|
ref,
|
|
3617
3108
|
className: cn("flex items-center gap-1 text-sm mt-2", config.color, className),
|
|
3618
3109
|
...props
|
|
3619
3110
|
},
|
|
3620
|
-
direction === "up" && /* @__PURE__ */
|
|
3621
|
-
direction === "down" && /* @__PURE__ */
|
|
3622
|
-
direction === "neutral" && /* @__PURE__ */
|
|
3623
|
-
/* @__PURE__ */
|
|
3111
|
+
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" })),
|
|
3112
|
+
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" })),
|
|
3113
|
+
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" })),
|
|
3114
|
+
/* @__PURE__ */ React20.createElement("span", { className: "sr-only" }, config.srLabel),
|
|
3624
3115
|
children
|
|
3625
3116
|
);
|
|
3626
3117
|
}
|
|
3627
3118
|
);
|
|
3628
3119
|
MetricCardTrend.displayName = "MetricCardTrend";
|
|
3629
|
-
var MetricCardDescription =
|
|
3630
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
3120
|
+
var MetricCardDescription = React20.forwardRef(
|
|
3121
|
+
({ className, ...props }, ref) => /* @__PURE__ */ React20.createElement(
|
|
3631
3122
|
"p",
|
|
3632
3123
|
{
|
|
3633
3124
|
ref,
|
|
@@ -3637,10 +3128,10 @@ var MetricCardDescription = React21.forwardRef(
|
|
|
3637
3128
|
)
|
|
3638
3129
|
);
|
|
3639
3130
|
MetricCardDescription.displayName = "MetricCardDescription";
|
|
3640
|
-
var MetricCardSymbol =
|
|
3131
|
+
var MetricCardSymbol = React20.forwardRef(
|
|
3641
3132
|
({ className, ...props }, ref) => {
|
|
3642
|
-
const { size } =
|
|
3643
|
-
return /* @__PURE__ */
|
|
3133
|
+
const { size } = React20.useContext(MetricCardContext);
|
|
3134
|
+
return /* @__PURE__ */ React20.createElement(
|
|
3644
3135
|
"div",
|
|
3645
3136
|
{
|
|
3646
3137
|
ref,
|
|
@@ -3661,7 +3152,7 @@ var MetricCard = Object.assign(MetricCardRoot, {
|
|
|
3661
3152
|
});
|
|
3662
3153
|
|
|
3663
3154
|
// src/components/ui/badge.tsx
|
|
3664
|
-
import * as
|
|
3155
|
+
import * as React21 from "react";
|
|
3665
3156
|
import { Slot as Slot4 } from "@radix-ui/react-slot";
|
|
3666
3157
|
import { cva as cva17 } from "class-variance-authority";
|
|
3667
3158
|
var colorMap = {
|
|
@@ -3748,7 +3239,7 @@ var dotColorMap = {
|
|
|
3748
3239
|
error: "bg-error",
|
|
3749
3240
|
info: "bg-info"
|
|
3750
3241
|
};
|
|
3751
|
-
var Badge =
|
|
3242
|
+
var Badge = React21.forwardRef(
|
|
3752
3243
|
({
|
|
3753
3244
|
className,
|
|
3754
3245
|
variant = "subtle",
|
|
@@ -3768,7 +3259,7 @@ var Badge = React22.forwardRef(
|
|
|
3768
3259
|
const colorClasses = colorMap[color][variant];
|
|
3769
3260
|
const outlineClasses = variant === "outline" ? "border bg-transparent" : "";
|
|
3770
3261
|
const dotColor = variant === "solid" ? "bg-current" : dotColorMap[color];
|
|
3771
|
-
return /* @__PURE__ */
|
|
3262
|
+
return /* @__PURE__ */ React21.createElement(
|
|
3772
3263
|
Comp,
|
|
3773
3264
|
{
|
|
3774
3265
|
ref,
|
|
@@ -3780,14 +3271,14 @@ var Badge = React22.forwardRef(
|
|
|
3780
3271
|
),
|
|
3781
3272
|
...props
|
|
3782
3273
|
},
|
|
3783
|
-
dot && /* @__PURE__ */
|
|
3274
|
+
dot && /* @__PURE__ */ React21.createElement(
|
|
3784
3275
|
"span",
|
|
3785
3276
|
{
|
|
3786
3277
|
className: cn("shrink-0 rounded-full", badgeDotSizes[resolvedSize], dotColor),
|
|
3787
3278
|
"aria-hidden": "true"
|
|
3788
3279
|
}
|
|
3789
3280
|
),
|
|
3790
|
-
icon && /* @__PURE__ */
|
|
3281
|
+
icon && /* @__PURE__ */ React21.createElement(
|
|
3791
3282
|
"span",
|
|
3792
3283
|
{
|
|
3793
3284
|
className: cn("shrink-0 [&>svg]:w-full [&>svg]:h-full", badgeIconSizes[resolvedSize]),
|
|
@@ -3796,7 +3287,7 @@ var Badge = React22.forwardRef(
|
|
|
3796
3287
|
icon
|
|
3797
3288
|
),
|
|
3798
3289
|
children,
|
|
3799
|
-
removable && /* @__PURE__ */
|
|
3290
|
+
removable && /* @__PURE__ */ React21.createElement(
|
|
3800
3291
|
"button",
|
|
3801
3292
|
{
|
|
3802
3293
|
type: "button",
|
|
@@ -3807,7 +3298,7 @@ var Badge = React22.forwardRef(
|
|
|
3807
3298
|
},
|
|
3808
3299
|
"aria-label": "Remove"
|
|
3809
3300
|
},
|
|
3810
|
-
/* @__PURE__ */
|
|
3301
|
+
/* @__PURE__ */ React21.createElement(
|
|
3811
3302
|
"svg",
|
|
3812
3303
|
{
|
|
3813
3304
|
className: "w-3 h-3",
|
|
@@ -3817,7 +3308,7 @@ var Badge = React22.forwardRef(
|
|
|
3817
3308
|
strokeWidth: 2,
|
|
3818
3309
|
"aria-hidden": "true"
|
|
3819
3310
|
},
|
|
3820
|
-
/* @__PURE__ */
|
|
3311
|
+
/* @__PURE__ */ React21.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
3821
3312
|
)
|
|
3822
3313
|
)
|
|
3823
3314
|
);
|
|
@@ -3826,15 +3317,15 @@ var Badge = React22.forwardRef(
|
|
|
3826
3317
|
Badge.displayName = "Badge";
|
|
3827
3318
|
|
|
3828
3319
|
// src/components/ui/card.tsx
|
|
3829
|
-
import * as
|
|
3320
|
+
import * as React22 from "react";
|
|
3830
3321
|
import { Slot as Slot5 } from "@radix-ui/react-slot";
|
|
3831
3322
|
import { cva as cva18 } from "class-variance-authority";
|
|
3832
|
-
var CardContext =
|
|
3323
|
+
var CardContext = React22.createContext({
|
|
3833
3324
|
size: "default",
|
|
3834
3325
|
direction: "vertical"
|
|
3835
3326
|
});
|
|
3836
3327
|
function useCard() {
|
|
3837
|
-
return
|
|
3328
|
+
return React22.useContext(CardContext);
|
|
3838
3329
|
}
|
|
3839
3330
|
var cardVariants = cva18(
|
|
3840
3331
|
"flex overflow-hidden transition-all duration-normal",
|
|
@@ -3877,7 +3368,7 @@ var cardVariants = cva18(
|
|
|
3877
3368
|
}
|
|
3878
3369
|
}
|
|
3879
3370
|
);
|
|
3880
|
-
var CardRoot =
|
|
3371
|
+
var CardRoot = React22.forwardRef(
|
|
3881
3372
|
({
|
|
3882
3373
|
className,
|
|
3883
3374
|
variant = "default",
|
|
@@ -3892,19 +3383,19 @@ var CardRoot = React23.forwardRef(
|
|
|
3892
3383
|
const Comp = asChild ? Slot5 : "div";
|
|
3893
3384
|
let content = children;
|
|
3894
3385
|
if (direction === "horizontal") {
|
|
3895
|
-
const childArray =
|
|
3386
|
+
const childArray = React22.Children.toArray(children);
|
|
3896
3387
|
const imageChildren = [];
|
|
3897
3388
|
const otherChildren = [];
|
|
3898
3389
|
childArray.forEach((child) => {
|
|
3899
|
-
if (
|
|
3390
|
+
if (React22.isValidElement(child) && child.type === CardImage) {
|
|
3900
3391
|
imageChildren.push(child);
|
|
3901
3392
|
} else {
|
|
3902
3393
|
otherChildren.push(child);
|
|
3903
3394
|
}
|
|
3904
3395
|
});
|
|
3905
|
-
content = /* @__PURE__ */
|
|
3396
|
+
content = /* @__PURE__ */ React22.createElement(React22.Fragment, null, imageChildren, /* @__PURE__ */ React22.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, otherChildren));
|
|
3906
3397
|
}
|
|
3907
|
-
return /* @__PURE__ */
|
|
3398
|
+
return /* @__PURE__ */ React22.createElement(CardContext.Provider, { value: { size, direction } }, /* @__PURE__ */ React22.createElement(
|
|
3908
3399
|
Comp,
|
|
3909
3400
|
{
|
|
3910
3401
|
ref,
|
|
@@ -3971,13 +3462,13 @@ var overlayOpacityMap = {
|
|
|
3971
3462
|
80: "from-black/80",
|
|
3972
3463
|
90: "from-black/90"
|
|
3973
3464
|
};
|
|
3974
|
-
var CardImage =
|
|
3465
|
+
var CardImage = React22.forwardRef(
|
|
3975
3466
|
({ className, overlay = false, overlayOpacity = 60, overlayClassName, alt = "", ...props }, ref) => {
|
|
3976
3467
|
const { direction } = useCard();
|
|
3977
3468
|
const isHorizontal = direction === "horizontal";
|
|
3978
3469
|
if (isHorizontal) {
|
|
3979
3470
|
const opacityClass = overlay ? overlayOpacityMap[overlayOpacity] || "from-black/60" : null;
|
|
3980
|
-
return /* @__PURE__ */
|
|
3471
|
+
return /* @__PURE__ */ React22.createElement("div", { className: cn("relative shrink-0 w-48 overflow-hidden", className) }, /* @__PURE__ */ React22.createElement(
|
|
3981
3472
|
"img",
|
|
3982
3473
|
{
|
|
3983
3474
|
ref,
|
|
@@ -3985,11 +3476,11 @@ var CardImage = React23.forwardRef(
|
|
|
3985
3476
|
className: "absolute inset-0 w-full h-full object-cover",
|
|
3986
3477
|
...props
|
|
3987
3478
|
}
|
|
3988
|
-
), overlay && /* @__PURE__ */
|
|
3479
|
+
), overlay && /* @__PURE__ */ React22.createElement("div", { className: cn("absolute inset-0 bg-gradient-to-t to-transparent", overlayClassName || opacityClass) }));
|
|
3989
3480
|
}
|
|
3990
3481
|
if (overlay) {
|
|
3991
3482
|
const opacityClass = overlayOpacityMap[overlayOpacity] || "from-black/60";
|
|
3992
|
-
return /* @__PURE__ */
|
|
3483
|
+
return /* @__PURE__ */ React22.createElement("div", { className: "relative w-full shrink-0 overflow-hidden" }, /* @__PURE__ */ React22.createElement(
|
|
3993
3484
|
"img",
|
|
3994
3485
|
{
|
|
3995
3486
|
ref,
|
|
@@ -3997,9 +3488,9 @@ var CardImage = React23.forwardRef(
|
|
|
3997
3488
|
className: cn("w-full object-cover", className),
|
|
3998
3489
|
...props
|
|
3999
3490
|
}
|
|
4000
|
-
), /* @__PURE__ */
|
|
3491
|
+
), /* @__PURE__ */ React22.createElement("div", { className: cn("absolute inset-0 bg-gradient-to-t to-transparent", overlayClassName || opacityClass) }));
|
|
4001
3492
|
}
|
|
4002
|
-
return /* @__PURE__ */
|
|
3493
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4003
3494
|
"img",
|
|
4004
3495
|
{
|
|
4005
3496
|
ref,
|
|
@@ -4011,20 +3502,20 @@ var CardImage = React23.forwardRef(
|
|
|
4011
3502
|
}
|
|
4012
3503
|
);
|
|
4013
3504
|
CardImage.displayName = "CardImage";
|
|
4014
|
-
var CardHeader =
|
|
3505
|
+
var CardHeader = React22.forwardRef(
|
|
4015
3506
|
({ className, children, ...props }, ref) => {
|
|
4016
3507
|
const { size } = useCard();
|
|
4017
|
-
const childArray =
|
|
3508
|
+
const childArray = React22.Children.toArray(children);
|
|
4018
3509
|
const actionChildren = [];
|
|
4019
3510
|
const otherChildren = [];
|
|
4020
3511
|
childArray.forEach((child) => {
|
|
4021
|
-
if (
|
|
3512
|
+
if (React22.isValidElement(child) && child.type === CardAction) {
|
|
4022
3513
|
actionChildren.push(child);
|
|
4023
3514
|
} else {
|
|
4024
3515
|
otherChildren.push(child);
|
|
4025
3516
|
}
|
|
4026
3517
|
});
|
|
4027
|
-
return /* @__PURE__ */
|
|
3518
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4028
3519
|
"div",
|
|
4029
3520
|
{
|
|
4030
3521
|
ref,
|
|
@@ -4038,15 +3529,15 @@ var CardHeader = React23.forwardRef(
|
|
|
4038
3529
|
),
|
|
4039
3530
|
...props
|
|
4040
3531
|
},
|
|
4041
|
-
/* @__PURE__ */
|
|
3532
|
+
/* @__PURE__ */ React22.createElement("div", { className: "flex-1 min-w-0 space-y-3" }, otherChildren),
|
|
4042
3533
|
actionChildren
|
|
4043
3534
|
);
|
|
4044
3535
|
}
|
|
4045
3536
|
);
|
|
4046
3537
|
CardHeader.displayName = "CardHeader";
|
|
4047
|
-
var CardTitle =
|
|
3538
|
+
var CardTitle = React22.forwardRef(
|
|
4048
3539
|
({ className, icon, children, ...props }, ref) => {
|
|
4049
|
-
return /* @__PURE__ */
|
|
3540
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4050
3541
|
"h3",
|
|
4051
3542
|
{
|
|
4052
3543
|
ref,
|
|
@@ -4057,15 +3548,15 @@ var CardTitle = React23.forwardRef(
|
|
|
4057
3548
|
),
|
|
4058
3549
|
...props
|
|
4059
3550
|
},
|
|
4060
|
-
icon && /* @__PURE__ */
|
|
3551
|
+
icon && /* @__PURE__ */ React22.createElement("span", { className: "shrink-0 icon-sm [&>svg]:w-full [&>svg]:h-full", "aria-hidden": "true" }, icon),
|
|
4061
3552
|
children
|
|
4062
3553
|
);
|
|
4063
3554
|
}
|
|
4064
3555
|
);
|
|
4065
3556
|
CardTitle.displayName = "CardTitle";
|
|
4066
|
-
var CardDescription =
|
|
3557
|
+
var CardDescription = React22.forwardRef(
|
|
4067
3558
|
({ className, ...props }, ref) => {
|
|
4068
|
-
return /* @__PURE__ */
|
|
3559
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4069
3560
|
"p",
|
|
4070
3561
|
{
|
|
4071
3562
|
ref,
|
|
@@ -4076,9 +3567,9 @@ var CardDescription = React23.forwardRef(
|
|
|
4076
3567
|
}
|
|
4077
3568
|
);
|
|
4078
3569
|
CardDescription.displayName = "CardDescription";
|
|
4079
|
-
var CardAction =
|
|
3570
|
+
var CardAction = React22.forwardRef(
|
|
4080
3571
|
({ className, ...props }, ref) => {
|
|
4081
|
-
return /* @__PURE__ */
|
|
3572
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4082
3573
|
"div",
|
|
4083
3574
|
{
|
|
4084
3575
|
ref,
|
|
@@ -4089,10 +3580,10 @@ var CardAction = React23.forwardRef(
|
|
|
4089
3580
|
}
|
|
4090
3581
|
);
|
|
4091
3582
|
CardAction.displayName = "CardAction";
|
|
4092
|
-
var CardContent =
|
|
3583
|
+
var CardContent = React22.forwardRef(
|
|
4093
3584
|
({ className, ...props }, ref) => {
|
|
4094
3585
|
const { size } = useCard();
|
|
4095
|
-
return /* @__PURE__ */
|
|
3586
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4096
3587
|
"div",
|
|
4097
3588
|
{
|
|
4098
3589
|
ref,
|
|
@@ -4103,10 +3594,10 @@ var CardContent = React23.forwardRef(
|
|
|
4103
3594
|
}
|
|
4104
3595
|
);
|
|
4105
3596
|
CardContent.displayName = "CardContent";
|
|
4106
|
-
var CardFooter =
|
|
3597
|
+
var CardFooter = React22.forwardRef(
|
|
4107
3598
|
({ className, ...props }, ref) => {
|
|
4108
3599
|
const { size } = useCard();
|
|
4109
|
-
return /* @__PURE__ */
|
|
3600
|
+
return /* @__PURE__ */ React22.createElement(
|
|
4110
3601
|
"div",
|
|
4111
3602
|
{
|
|
4112
3603
|
ref,
|
|
@@ -4134,9 +3625,9 @@ var Card = Object.assign(CardRoot, {
|
|
|
4134
3625
|
});
|
|
4135
3626
|
|
|
4136
3627
|
// src/components/ui/table.tsx
|
|
4137
|
-
import * as
|
|
3628
|
+
import * as React23 from "react";
|
|
4138
3629
|
import { cva as cva19 } from "class-variance-authority";
|
|
4139
|
-
var TableContext =
|
|
3630
|
+
var TableContext = React23.createContext({ size: "default", variant: "default", stickyHeader: false });
|
|
4140
3631
|
var cellPaddingMap = {
|
|
4141
3632
|
sm: "px-3 py-2 text-sm",
|
|
4142
3633
|
default: "px-4 py-3 text-sm",
|
|
@@ -4167,8 +3658,8 @@ var tableVariants = cva19(
|
|
|
4167
3658
|
}
|
|
4168
3659
|
}
|
|
4169
3660
|
);
|
|
4170
|
-
var TableRoot =
|
|
4171
|
-
({ className, size = "default", variant = "default", stickyHeader = false, wrapperClassName, ...props }, ref) => /* @__PURE__ */
|
|
3661
|
+
var TableRoot = React23.forwardRef(
|
|
3662
|
+
({ 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(
|
|
4172
3663
|
"table",
|
|
4173
3664
|
{
|
|
4174
3665
|
ref,
|
|
@@ -4178,9 +3669,9 @@ var TableRoot = React24.forwardRef(
|
|
|
4178
3669
|
)))
|
|
4179
3670
|
);
|
|
4180
3671
|
TableRoot.displayName = "Table";
|
|
4181
|
-
var TableHeader =
|
|
4182
|
-
const { stickyHeader } =
|
|
4183
|
-
return /* @__PURE__ */
|
|
3672
|
+
var TableHeader = React23.forwardRef(({ className, ...props }, ref) => {
|
|
3673
|
+
const { stickyHeader } = React23.useContext(TableContext);
|
|
3674
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4184
3675
|
"thead",
|
|
4185
3676
|
{
|
|
4186
3677
|
ref,
|
|
@@ -4194,9 +3685,9 @@ var TableHeader = React24.forwardRef(({ className, ...props }, ref) => {
|
|
|
4194
3685
|
);
|
|
4195
3686
|
});
|
|
4196
3687
|
TableHeader.displayName = "TableHeader";
|
|
4197
|
-
var TableBody =
|
|
4198
|
-
const { variant } =
|
|
4199
|
-
return /* @__PURE__ */
|
|
3688
|
+
var TableBody = React23.forwardRef(({ className, ...props }, ref) => {
|
|
3689
|
+
const { variant } = React23.useContext(TableContext);
|
|
3690
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4200
3691
|
"tbody",
|
|
4201
3692
|
{
|
|
4202
3693
|
ref,
|
|
@@ -4210,7 +3701,7 @@ var TableBody = React24.forwardRef(({ className, ...props }, ref) => {
|
|
|
4210
3701
|
);
|
|
4211
3702
|
});
|
|
4212
3703
|
TableBody.displayName = "TableBody";
|
|
4213
|
-
var TableFooter =
|
|
3704
|
+
var TableFooter = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React23.createElement(
|
|
4214
3705
|
"tfoot",
|
|
4215
3706
|
{
|
|
4216
3707
|
ref,
|
|
@@ -4222,8 +3713,8 @@ var TableFooter = React24.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
4222
3713
|
}
|
|
4223
3714
|
));
|
|
4224
3715
|
TableFooter.displayName = "TableFooter";
|
|
4225
|
-
var TableRow =
|
|
4226
|
-
({ className, interactive = false, selected = false, ...props }, ref) => /* @__PURE__ */
|
|
3716
|
+
var TableRow = React23.forwardRef(
|
|
3717
|
+
({ className, interactive = false, selected = false, ...props }, ref) => /* @__PURE__ */ React23.createElement(
|
|
4227
3718
|
"tr",
|
|
4228
3719
|
{
|
|
4229
3720
|
ref,
|
|
@@ -4239,15 +3730,15 @@ var TableRow = React24.forwardRef(
|
|
|
4239
3730
|
);
|
|
4240
3731
|
TableRow.displayName = "TableRow";
|
|
4241
3732
|
var defaultSortIcons = {
|
|
4242
|
-
asc: /* @__PURE__ */
|
|
4243
|
-
desc: /* @__PURE__ */
|
|
4244
|
-
default: /* @__PURE__ */
|
|
3733
|
+
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" })),
|
|
3734
|
+
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" })),
|
|
3735
|
+
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" }))
|
|
4245
3736
|
};
|
|
4246
|
-
var TableHead =
|
|
3737
|
+
var TableHead = React23.forwardRef(
|
|
4247
3738
|
({ className, align = "left", sortable = false, sortDirection = null, onSort, sortIcon, children, ...props }, ref) => {
|
|
4248
|
-
const { size } =
|
|
3739
|
+
const { size } = React23.useContext(TableContext);
|
|
4249
3740
|
const icons = { ...defaultSortIcons, ...sortIcon };
|
|
4250
|
-
const content = sortable ? /* @__PURE__ */
|
|
3741
|
+
const content = sortable ? /* @__PURE__ */ React23.createElement(
|
|
4251
3742
|
"button",
|
|
4252
3743
|
{
|
|
4253
3744
|
type: "button",
|
|
@@ -4255,12 +3746,12 @@ var TableHead = React24.forwardRef(
|
|
|
4255
3746
|
onClick: onSort
|
|
4256
3747
|
},
|
|
4257
3748
|
children,
|
|
4258
|
-
/* @__PURE__ */
|
|
3749
|
+
/* @__PURE__ */ React23.createElement("span", { className: cn(
|
|
4259
3750
|
"shrink-0 transition-colors duration-fast",
|
|
4260
3751
|
sortDirection ? "text-foreground" : "text-text-muted"
|
|
4261
3752
|
) }, sortDirection === "asc" ? icons.asc : sortDirection === "desc" ? icons.desc : icons.default)
|
|
4262
3753
|
) : children;
|
|
4263
|
-
return /* @__PURE__ */
|
|
3754
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4264
3755
|
"th",
|
|
4265
3756
|
{
|
|
4266
3757
|
ref,
|
|
@@ -4281,10 +3772,10 @@ var TableHead = React24.forwardRef(
|
|
|
4281
3772
|
}
|
|
4282
3773
|
);
|
|
4283
3774
|
TableHead.displayName = "TableHead";
|
|
4284
|
-
var TableCell =
|
|
3775
|
+
var TableCell = React23.forwardRef(
|
|
4285
3776
|
({ className, align = "left", ...props }, ref) => {
|
|
4286
|
-
const { size } =
|
|
4287
|
-
return /* @__PURE__ */
|
|
3777
|
+
const { size } = React23.useContext(TableContext);
|
|
3778
|
+
return /* @__PURE__ */ React23.createElement(
|
|
4288
3779
|
"td",
|
|
4289
3780
|
{
|
|
4290
3781
|
ref,
|
|
@@ -4302,7 +3793,7 @@ var TableCell = React24.forwardRef(
|
|
|
4302
3793
|
}
|
|
4303
3794
|
);
|
|
4304
3795
|
TableCell.displayName = "TableCell";
|
|
4305
|
-
var TableCaption =
|
|
3796
|
+
var TableCaption = React23.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React23.createElement(
|
|
4306
3797
|
"caption",
|
|
4307
3798
|
{
|
|
4308
3799
|
ref,
|
|
@@ -4322,11 +3813,11 @@ var Table = Object.assign(TableRoot, {
|
|
|
4322
3813
|
});
|
|
4323
3814
|
|
|
4324
3815
|
// src/components/ui/tabs.tsx
|
|
4325
|
-
import * as
|
|
3816
|
+
import * as React24 from "react";
|
|
4326
3817
|
import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
4327
3818
|
import { cva as cva20 } from "class-variance-authority";
|
|
4328
|
-
var TabsStyleContext =
|
|
4329
|
-
var useTabsStyleContext = () =>
|
|
3819
|
+
var TabsStyleContext = React24.createContext({});
|
|
3820
|
+
var useTabsStyleContext = () => React24.useContext(TabsStyleContext);
|
|
4330
3821
|
var tabsListVariants = cva20(
|
|
4331
3822
|
"inline-flex items-center text-text-subtle",
|
|
4332
3823
|
{
|
|
@@ -4347,9 +3838,9 @@ var tabsListVariants = cva20(
|
|
|
4347
3838
|
}
|
|
4348
3839
|
}
|
|
4349
3840
|
);
|
|
4350
|
-
var TabsList =
|
|
3841
|
+
var TabsList = React24.forwardRef(({ className, variant, size, fitted, color, radius, ...props }, ref) => {
|
|
4351
3842
|
const resolvedVariant = variant || "line";
|
|
4352
|
-
return /* @__PURE__ */
|
|
3843
|
+
return /* @__PURE__ */ React24.createElement(TabsStyleContext.Provider, { value: { variant: resolvedVariant, size: size || "default", fitted: fitted ?? false, color: color || "default", radius: radius || "md" } }, /* @__PURE__ */ React24.createElement(
|
|
4353
3844
|
TabsPrimitive.List,
|
|
4354
3845
|
{
|
|
4355
3846
|
ref,
|
|
@@ -4471,10 +3962,10 @@ var pillItemRadiusClasses = {
|
|
|
4471
3962
|
"3xl": "rounded-2xl",
|
|
4472
3963
|
full: "rounded-full"
|
|
4473
3964
|
};
|
|
4474
|
-
var TabsTrigger =
|
|
3965
|
+
var TabsTrigger = React24.forwardRef(({ className, children, ...props }, ref) => {
|
|
4475
3966
|
const { variant, size, fitted, color, radius } = useTabsStyleContext();
|
|
4476
3967
|
const resolvedSize = size || "default";
|
|
4477
|
-
return /* @__PURE__ */
|
|
3968
|
+
return /* @__PURE__ */ React24.createElement(
|
|
4478
3969
|
TabsPrimitive.Trigger,
|
|
4479
3970
|
{
|
|
4480
3971
|
ref,
|
|
@@ -4492,7 +3983,7 @@ var TabsTrigger = React25.forwardRef(({ className, children, ...props }, ref) =>
|
|
|
4492
3983
|
);
|
|
4493
3984
|
});
|
|
4494
3985
|
TabsTrigger.displayName = "TabsTrigger";
|
|
4495
|
-
var TabsContent =
|
|
3986
|
+
var TabsContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React24.createElement(
|
|
4496
3987
|
TabsPrimitive.Content,
|
|
4497
3988
|
{
|
|
4498
3989
|
ref,
|
|
@@ -4512,15 +4003,15 @@ var Tabs = Object.assign(TabsRoot, {
|
|
|
4512
4003
|
});
|
|
4513
4004
|
|
|
4514
4005
|
// src/components/ui/navigation-menu.tsx
|
|
4515
|
-
import * as
|
|
4006
|
+
import * as React25 from "react";
|
|
4516
4007
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
|
|
4517
4008
|
import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
|
|
4518
4009
|
import { Slot as Slot6 } from "@radix-ui/react-slot";
|
|
4519
4010
|
function ChevronDownIcon({ 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: "M19 9l-7 7-7-7" }));
|
|
4521
4012
|
}
|
|
4522
4013
|
function ChevronRightIcon2({ className }) {
|
|
4523
|
-
return /* @__PURE__ */
|
|
4014
|
+
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" }));
|
|
4524
4015
|
}
|
|
4525
4016
|
var contentRadiusMap3 = {
|
|
4526
4017
|
sm: "rounded",
|
|
@@ -4542,15 +4033,15 @@ var itemRadiusMap3 = {
|
|
|
4542
4033
|
xl: "rounded-lg"
|
|
4543
4034
|
// 8px
|
|
4544
4035
|
};
|
|
4545
|
-
var NavigationMenuContext =
|
|
4036
|
+
var NavigationMenuContext = React25.createContext({
|
|
4546
4037
|
orientation: "horizontal",
|
|
4547
4038
|
size: "default",
|
|
4548
4039
|
collapsed: false,
|
|
4549
4040
|
radius: "lg",
|
|
4550
4041
|
fontWeight: "normal"
|
|
4551
4042
|
});
|
|
4552
|
-
var useNavigationMenuContext = () =>
|
|
4553
|
-
var ContentLevelContext =
|
|
4043
|
+
var useNavigationMenuContext = () => React25.useContext(NavigationMenuContext);
|
|
4044
|
+
var ContentLevelContext = React25.createContext(false);
|
|
4554
4045
|
var navigationMenuSizeMap = {
|
|
4555
4046
|
sm: {
|
|
4556
4047
|
trigger: "h-8 text-sm px-3 gap-2",
|
|
@@ -4597,7 +4088,7 @@ var navigationMenuSizeMap = {
|
|
|
4597
4088
|
groupMargin: "mt-6 first:mt-0"
|
|
4598
4089
|
}
|
|
4599
4090
|
};
|
|
4600
|
-
var NavigationMenuRoot =
|
|
4091
|
+
var NavigationMenuRoot = React25.forwardRef(
|
|
4601
4092
|
({
|
|
4602
4093
|
className,
|
|
4603
4094
|
orientation = "horizontal",
|
|
@@ -4616,12 +4107,12 @@ var NavigationMenuRoot = React26.forwardRef(
|
|
|
4616
4107
|
style,
|
|
4617
4108
|
...props
|
|
4618
4109
|
}, ref) => {
|
|
4619
|
-
const contextValue =
|
|
4110
|
+
const contextValue = React25.useMemo(
|
|
4620
4111
|
() => ({ orientation, size, collapsed: orientation === "vertical" ? collapsed : false, radius, fontWeight }),
|
|
4621
4112
|
[orientation, size, collapsed, radius, fontWeight]
|
|
4622
4113
|
);
|
|
4623
4114
|
if (orientation === "horizontal") {
|
|
4624
|
-
return /* @__PURE__ */
|
|
4115
|
+
return /* @__PURE__ */ React25.createElement(NavigationMenuContext.Provider, { value: contextValue }, /* @__PURE__ */ React25.createElement(
|
|
4625
4116
|
NavigationMenuPrimitive.Root,
|
|
4626
4117
|
{
|
|
4627
4118
|
ref,
|
|
@@ -4637,7 +4128,7 @@ var NavigationMenuRoot = React26.forwardRef(
|
|
|
4637
4128
|
}
|
|
4638
4129
|
const resolvedWidth = collapsed ? collapsedWidth ?? navigationMenuSizeMap[size].collapsedWidth : width ?? 256;
|
|
4639
4130
|
const widthValue = typeof resolvedWidth === "number" ? `${resolvedWidth}px` : resolvedWidth;
|
|
4640
|
-
return /* @__PURE__ */
|
|
4131
|
+
return /* @__PURE__ */ React25.createElement(NavigationMenuContext.Provider, { value: contextValue }, /* @__PURE__ */ React25.createElement(
|
|
4641
4132
|
"nav",
|
|
4642
4133
|
{
|
|
4643
4134
|
ref,
|
|
@@ -4655,11 +4146,11 @@ var NavigationMenuRoot = React26.forwardRef(
|
|
|
4655
4146
|
}
|
|
4656
4147
|
);
|
|
4657
4148
|
NavigationMenuRoot.displayName = "NavigationMenu";
|
|
4658
|
-
var NavigationMenuList =
|
|
4149
|
+
var NavigationMenuList = React25.forwardRef(
|
|
4659
4150
|
({ className, children, ...props }, ref) => {
|
|
4660
4151
|
const { orientation } = useNavigationMenuContext();
|
|
4661
4152
|
if (orientation === "horizontal") {
|
|
4662
|
-
return /* @__PURE__ */
|
|
4153
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4663
4154
|
NavigationMenuPrimitive.List,
|
|
4664
4155
|
{
|
|
4665
4156
|
ref,
|
|
@@ -4669,7 +4160,7 @@ var NavigationMenuList = React26.forwardRef(
|
|
|
4669
4160
|
children
|
|
4670
4161
|
);
|
|
4671
4162
|
}
|
|
4672
|
-
return /* @__PURE__ */
|
|
4163
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4673
4164
|
"ul",
|
|
4674
4165
|
{
|
|
4675
4166
|
ref,
|
|
@@ -4681,15 +4172,15 @@ var NavigationMenuList = React26.forwardRef(
|
|
|
4681
4172
|
}
|
|
4682
4173
|
);
|
|
4683
4174
|
NavigationMenuList.displayName = "NavigationMenuList";
|
|
4684
|
-
var NavigationMenuItem =
|
|
4175
|
+
var NavigationMenuItem = React25.forwardRef(
|
|
4685
4176
|
({ className, value, defaultOpen = false, children, ...props }, ref) => {
|
|
4686
4177
|
const { orientation, collapsed } = useNavigationMenuContext();
|
|
4687
|
-
const [open, setOpen] =
|
|
4688
|
-
|
|
4178
|
+
const [open, setOpen] = React25.useState(defaultOpen);
|
|
4179
|
+
React25.useEffect(() => {
|
|
4689
4180
|
if (collapsed) setOpen(false);
|
|
4690
4181
|
}, [collapsed]);
|
|
4691
4182
|
if (orientation === "horizontal") {
|
|
4692
|
-
return /* @__PURE__ */
|
|
4183
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4693
4184
|
NavigationMenuPrimitive.Item,
|
|
4694
4185
|
{
|
|
4695
4186
|
ref,
|
|
@@ -4700,25 +4191,25 @@ var NavigationMenuItem = React26.forwardRef(
|
|
|
4700
4191
|
children
|
|
4701
4192
|
);
|
|
4702
4193
|
}
|
|
4703
|
-
return /* @__PURE__ */
|
|
4194
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4704
4195
|
CollapsiblePrimitive.Root,
|
|
4705
4196
|
{
|
|
4706
4197
|
open: collapsed ? false : open,
|
|
4707
4198
|
onOpenChange: collapsed ? void 0 : setOpen,
|
|
4708
4199
|
asChild: true
|
|
4709
4200
|
},
|
|
4710
|
-
/* @__PURE__ */
|
|
4201
|
+
/* @__PURE__ */ React25.createElement("li", { ref, className: cn("", className), ...props }, children)
|
|
4711
4202
|
);
|
|
4712
4203
|
}
|
|
4713
4204
|
);
|
|
4714
4205
|
NavigationMenuItem.displayName = "NavigationMenuItem";
|
|
4715
|
-
var NavigationMenuTrigger =
|
|
4206
|
+
var NavigationMenuTrigger = React25.forwardRef(
|
|
4716
4207
|
({ className, children, icon, chevronIcon, ...props }, ref) => {
|
|
4717
4208
|
const { orientation, size, collapsed, radius, fontWeight: fw } = useNavigationMenuContext();
|
|
4718
4209
|
const s = navigationMenuSizeMap[size];
|
|
4719
4210
|
const fwClass = fw === "semibold" ? "font-semibold" : "font-normal";
|
|
4720
4211
|
if (orientation === "horizontal") {
|
|
4721
|
-
return /* @__PURE__ */
|
|
4212
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4722
4213
|
NavigationMenuPrimitive.Trigger,
|
|
4723
4214
|
{
|
|
4724
4215
|
ref,
|
|
@@ -4737,12 +4228,12 @@ var NavigationMenuTrigger = React26.forwardRef(
|
|
|
4737
4228
|
),
|
|
4738
4229
|
...props
|
|
4739
4230
|
},
|
|
4740
|
-
icon && /* @__PURE__ */
|
|
4231
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0 mr-2", s.icon) }, icon),
|
|
4741
4232
|
children,
|
|
4742
|
-
/* @__PURE__ */
|
|
4233
|
+
/* @__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" }))
|
|
4743
4234
|
);
|
|
4744
4235
|
}
|
|
4745
|
-
return /* @__PURE__ */
|
|
4236
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4746
4237
|
CollapsiblePrimitive.Trigger,
|
|
4747
4238
|
{
|
|
4748
4239
|
ref,
|
|
@@ -4761,8 +4252,8 @@ var NavigationMenuTrigger = React26.forwardRef(
|
|
|
4761
4252
|
...collapsed && typeof children === "string" ? { title: children } : {},
|
|
4762
4253
|
...props
|
|
4763
4254
|
},
|
|
4764
|
-
icon && /* @__PURE__ */
|
|
4765
|
-
!collapsed && /* @__PURE__ */
|
|
4255
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon),
|
|
4256
|
+
!collapsed && /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement("span", { className: "flex-1 text-left truncate" }, children), /* @__PURE__ */ React25.createElement(
|
|
4766
4257
|
"span",
|
|
4767
4258
|
{
|
|
4768
4259
|
className: cn(
|
|
@@ -4771,17 +4262,17 @@ var NavigationMenuTrigger = React26.forwardRef(
|
|
|
4771
4262
|
"group-data-[state=open]:rotate-90"
|
|
4772
4263
|
)
|
|
4773
4264
|
},
|
|
4774
|
-
chevronIcon ?? /* @__PURE__ */
|
|
4265
|
+
chevronIcon ?? /* @__PURE__ */ React25.createElement(ChevronRightIcon2, { className: "size-full" })
|
|
4775
4266
|
))
|
|
4776
4267
|
);
|
|
4777
4268
|
}
|
|
4778
4269
|
);
|
|
4779
4270
|
NavigationMenuTrigger.displayName = "NavigationMenuTrigger";
|
|
4780
|
-
var NavigationMenuContent =
|
|
4271
|
+
var NavigationMenuContent = React25.forwardRef(
|
|
4781
4272
|
({ className, children, ...props }, ref) => {
|
|
4782
4273
|
const { orientation, collapsed, radius } = useNavigationMenuContext();
|
|
4783
4274
|
if (orientation === "horizontal") {
|
|
4784
|
-
return /* @__PURE__ */
|
|
4275
|
+
return /* @__PURE__ */ React25.createElement(ContentLevelContext.Provider, { value: true }, /* @__PURE__ */ React25.createElement(
|
|
4785
4276
|
NavigationMenuPrimitive.Content,
|
|
4786
4277
|
{
|
|
4787
4278
|
ref,
|
|
@@ -4792,11 +4283,11 @@ var NavigationMenuContent = React26.forwardRef(
|
|
|
4792
4283
|
),
|
|
4793
4284
|
...props
|
|
4794
4285
|
},
|
|
4795
|
-
/* @__PURE__ */
|
|
4286
|
+
/* @__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)
|
|
4796
4287
|
));
|
|
4797
4288
|
}
|
|
4798
4289
|
if (collapsed) return null;
|
|
4799
|
-
return /* @__PURE__ */
|
|
4290
|
+
return /* @__PURE__ */ React25.createElement(ContentLevelContext.Provider, { value: true }, /* @__PURE__ */ React25.createElement(
|
|
4800
4291
|
CollapsiblePrimitive.Content,
|
|
4801
4292
|
{
|
|
4802
4293
|
ref,
|
|
@@ -4806,7 +4297,7 @@ var NavigationMenuContent = React26.forwardRef(
|
|
|
4806
4297
|
),
|
|
4807
4298
|
...props
|
|
4808
4299
|
},
|
|
4809
|
-
/* @__PURE__ */
|
|
4300
|
+
/* @__PURE__ */ React25.createElement("div", { className: cn(
|
|
4810
4301
|
"flex flex-col gap-0.5 py-1",
|
|
4811
4302
|
className
|
|
4812
4303
|
) }, children)
|
|
@@ -4814,16 +4305,16 @@ var NavigationMenuContent = React26.forwardRef(
|
|
|
4814
4305
|
}
|
|
4815
4306
|
);
|
|
4816
4307
|
NavigationMenuContent.displayName = "NavigationMenuContent";
|
|
4817
|
-
var NavigationMenuLink =
|
|
4308
|
+
var NavigationMenuLink = React25.forwardRef(
|
|
4818
4309
|
({ className, active, asChild, icon, children, ...props }, ref) => {
|
|
4819
4310
|
const { orientation, size, collapsed, radius, fontWeight: fw } = useNavigationMenuContext();
|
|
4820
4311
|
const s = navigationMenuSizeMap[size];
|
|
4821
4312
|
const fwClass = fw === "semibold" ? "font-semibold" : "font-normal";
|
|
4822
|
-
const inContent =
|
|
4313
|
+
const inContent = React25.useContext(ContentLevelContext);
|
|
4823
4314
|
if (orientation === "horizontal") {
|
|
4824
4315
|
const { onSelect, ...radixSafeProps } = props;
|
|
4825
4316
|
if (inContent) {
|
|
4826
|
-
return /* @__PURE__ */
|
|
4317
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4827
4318
|
NavigationMenuPrimitive.Link,
|
|
4828
4319
|
{
|
|
4829
4320
|
ref,
|
|
@@ -4842,10 +4333,10 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4842
4333
|
onSelect,
|
|
4843
4334
|
...radixSafeProps
|
|
4844
4335
|
},
|
|
4845
|
-
asChild ? children : /* @__PURE__ */
|
|
4336
|
+
asChild ? children : /* @__PURE__ */ React25.createElement(React25.Fragment, null, icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon), children)
|
|
4846
4337
|
);
|
|
4847
4338
|
}
|
|
4848
|
-
return /* @__PURE__ */
|
|
4339
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4849
4340
|
NavigationMenuPrimitive.Link,
|
|
4850
4341
|
{
|
|
4851
4342
|
ref,
|
|
@@ -4865,12 +4356,12 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4865
4356
|
onSelect,
|
|
4866
4357
|
...radixSafeProps
|
|
4867
4358
|
},
|
|
4868
|
-
asChild ? children : /* @__PURE__ */
|
|
4359
|
+
asChild ? children : /* @__PURE__ */ React25.createElement(React25.Fragment, null, icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon), children)
|
|
4869
4360
|
);
|
|
4870
4361
|
}
|
|
4871
4362
|
const Comp = asChild ? Slot6 : "a";
|
|
4872
4363
|
if (inContent) {
|
|
4873
|
-
return /* @__PURE__ */
|
|
4364
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4874
4365
|
Comp,
|
|
4875
4366
|
{
|
|
4876
4367
|
ref,
|
|
@@ -4887,11 +4378,11 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4887
4378
|
...active ? { "aria-current": "page" } : {},
|
|
4888
4379
|
...props
|
|
4889
4380
|
},
|
|
4890
|
-
icon && /* @__PURE__ */
|
|
4381
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon),
|
|
4891
4382
|
!collapsed && children
|
|
4892
4383
|
);
|
|
4893
4384
|
}
|
|
4894
|
-
return /* @__PURE__ */
|
|
4385
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4895
4386
|
Comp,
|
|
4896
4387
|
{
|
|
4897
4388
|
ref,
|
|
@@ -4909,28 +4400,28 @@ var NavigationMenuLink = React26.forwardRef(
|
|
|
4909
4400
|
...collapsed && typeof children === "string" ? { title: children } : {},
|
|
4910
4401
|
...props
|
|
4911
4402
|
},
|
|
4912
|
-
icon && /* @__PURE__ */
|
|
4913
|
-
!collapsed && /* @__PURE__ */
|
|
4403
|
+
icon && /* @__PURE__ */ React25.createElement("span", { className: cn("shrink-0", s.icon) }, icon),
|
|
4404
|
+
!collapsed && /* @__PURE__ */ React25.createElement("span", { className: "truncate" }, children)
|
|
4914
4405
|
);
|
|
4915
4406
|
}
|
|
4916
4407
|
);
|
|
4917
4408
|
NavigationMenuLink.displayName = "NavigationMenuLink";
|
|
4918
|
-
var NavigationMenuGroup =
|
|
4409
|
+
var NavigationMenuGroup = React25.forwardRef(
|
|
4919
4410
|
({ className, label, children, ...props }, ref) => {
|
|
4920
4411
|
const { size, collapsed } = useNavigationMenuContext();
|
|
4921
4412
|
const s = navigationMenuSizeMap[size];
|
|
4922
|
-
return /* @__PURE__ */
|
|
4413
|
+
return /* @__PURE__ */ React25.createElement("div", { ref, role: "group", className: cn(label && !collapsed && s.groupMargin, className), ...props }, label && !collapsed && /* @__PURE__ */ React25.createElement("div", { className: cn(
|
|
4923
4414
|
"font-semibold text-text-subtle uppercase tracking-wider select-none",
|
|
4924
4415
|
s.groupLabel
|
|
4925
|
-
) }, label), /* @__PURE__ */
|
|
4416
|
+
) }, label), /* @__PURE__ */ React25.createElement("ul", { className: "flex flex-col gap-0.5" }, children));
|
|
4926
4417
|
}
|
|
4927
4418
|
);
|
|
4928
4419
|
NavigationMenuGroup.displayName = "NavigationMenuGroup";
|
|
4929
|
-
var NavigationMenuIndicator =
|
|
4420
|
+
var NavigationMenuIndicator = React25.forwardRef(
|
|
4930
4421
|
({ className, color = "default", ...props }, ref) => {
|
|
4931
4422
|
const { orientation } = useNavigationMenuContext();
|
|
4932
4423
|
if (orientation === "vertical") return null;
|
|
4933
|
-
return /* @__PURE__ */
|
|
4424
|
+
return /* @__PURE__ */ React25.createElement(
|
|
4934
4425
|
NavigationMenuPrimitive.Indicator,
|
|
4935
4426
|
{
|
|
4936
4427
|
ref,
|
|
@@ -4942,7 +4433,7 @@ var NavigationMenuIndicator = React26.forwardRef(
|
|
|
4942
4433
|
),
|
|
4943
4434
|
...props
|
|
4944
4435
|
},
|
|
4945
|
-
/* @__PURE__ */
|
|
4436
|
+
/* @__PURE__ */ React25.createElement("div", { className: cn(
|
|
4946
4437
|
"relative h-full w-full rounded-full",
|
|
4947
4438
|
color === "default" ? "bg-foreground" : "bg-primary"
|
|
4948
4439
|
) })
|
|
@@ -4950,11 +4441,11 @@ var NavigationMenuIndicator = React26.forwardRef(
|
|
|
4950
4441
|
}
|
|
4951
4442
|
);
|
|
4952
4443
|
NavigationMenuIndicator.displayName = "NavigationMenuIndicator";
|
|
4953
|
-
var NavigationMenuViewport =
|
|
4444
|
+
var NavigationMenuViewport = React25.forwardRef(
|
|
4954
4445
|
({ className, ...props }, ref) => {
|
|
4955
4446
|
const { orientation } = useNavigationMenuContext();
|
|
4956
4447
|
if (orientation === "vertical") return null;
|
|
4957
|
-
return /* @__PURE__ */
|
|
4448
|
+
return /* @__PURE__ */ React25.createElement("div", { className: "absolute left-0 top-full z-dropdown w-auto pt-1" }, /* @__PURE__ */ React25.createElement(
|
|
4958
4449
|
NavigationMenuPrimitive.Viewport,
|
|
4959
4450
|
{
|
|
4960
4451
|
ref,
|
|
@@ -4986,10 +4477,10 @@ var NavigationMenu = Object.assign(NavigationMenuRoot, {
|
|
|
4986
4477
|
});
|
|
4987
4478
|
|
|
4988
4479
|
// src/components/ui/pagination.tsx
|
|
4989
|
-
import * as
|
|
4480
|
+
import * as React26 from "react";
|
|
4990
4481
|
import { cva as cva21 } from "class-variance-authority";
|
|
4991
4482
|
function ChevronLeftIcon({ className }) {
|
|
4992
|
-
return /* @__PURE__ */
|
|
4483
|
+
return /* @__PURE__ */ React26.createElement(
|
|
4993
4484
|
"svg",
|
|
4994
4485
|
{
|
|
4995
4486
|
className,
|
|
@@ -4998,11 +4489,11 @@ function ChevronLeftIcon({ className }) {
|
|
|
4998
4489
|
stroke: "currentColor",
|
|
4999
4490
|
strokeWidth: 2
|
|
5000
4491
|
},
|
|
5001
|
-
/* @__PURE__ */
|
|
4492
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M15 19l-7-7 7-7" })
|
|
5002
4493
|
);
|
|
5003
4494
|
}
|
|
5004
4495
|
function ChevronRightIcon3({ className }) {
|
|
5005
|
-
return /* @__PURE__ */
|
|
4496
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5006
4497
|
"svg",
|
|
5007
4498
|
{
|
|
5008
4499
|
className,
|
|
@@ -5011,11 +4502,11 @@ function ChevronRightIcon3({ className }) {
|
|
|
5011
4502
|
stroke: "currentColor",
|
|
5012
4503
|
strokeWidth: 2
|
|
5013
4504
|
},
|
|
5014
|
-
/* @__PURE__ */
|
|
4505
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9 5l7 7-7 7" })
|
|
5015
4506
|
);
|
|
5016
4507
|
}
|
|
5017
4508
|
function ChevronsLeftIcon({ className }) {
|
|
5018
|
-
return /* @__PURE__ */
|
|
4509
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5019
4510
|
"svg",
|
|
5020
4511
|
{
|
|
5021
4512
|
className,
|
|
@@ -5024,11 +4515,11 @@ function ChevronsLeftIcon({ className }) {
|
|
|
5024
4515
|
stroke: "currentColor",
|
|
5025
4516
|
strokeWidth: 2
|
|
5026
4517
|
},
|
|
5027
|
-
/* @__PURE__ */
|
|
4518
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M11 17l-5-5 5-5M18 17l-5-5 5-5" })
|
|
5028
4519
|
);
|
|
5029
4520
|
}
|
|
5030
4521
|
function ChevronsRightIcon({ className }) {
|
|
5031
|
-
return /* @__PURE__ */
|
|
4522
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5032
4523
|
"svg",
|
|
5033
4524
|
{
|
|
5034
4525
|
className,
|
|
@@ -5037,20 +4528,20 @@ function ChevronsRightIcon({ className }) {
|
|
|
5037
4528
|
stroke: "currentColor",
|
|
5038
4529
|
strokeWidth: 2
|
|
5039
4530
|
},
|
|
5040
|
-
/* @__PURE__ */
|
|
4531
|
+
/* @__PURE__ */ React26.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M13 7l5 5-5 5M6 7l5 5-5 5" })
|
|
5041
4532
|
);
|
|
5042
4533
|
}
|
|
5043
4534
|
function EllipsisIcon2({ className }) {
|
|
5044
|
-
return /* @__PURE__ */
|
|
4535
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5045
4536
|
"svg",
|
|
5046
4537
|
{
|
|
5047
4538
|
className,
|
|
5048
4539
|
fill: "currentColor",
|
|
5049
4540
|
viewBox: "0 0 24 24"
|
|
5050
4541
|
},
|
|
5051
|
-
/* @__PURE__ */
|
|
5052
|
-
/* @__PURE__ */
|
|
5053
|
-
/* @__PURE__ */
|
|
4542
|
+
/* @__PURE__ */ React26.createElement("circle", { cx: "6", cy: "12", r: "1.5" }),
|
|
4543
|
+
/* @__PURE__ */ React26.createElement("circle", { cx: "12", cy: "12", r: "1.5" }),
|
|
4544
|
+
/* @__PURE__ */ React26.createElement("circle", { cx: "18", cy: "12", r: "1.5" })
|
|
5054
4545
|
);
|
|
5055
4546
|
}
|
|
5056
4547
|
function range(start, end) {
|
|
@@ -5091,9 +4582,9 @@ function usePagination({
|
|
|
5091
4582
|
...range(total - boundaries + 1, total)
|
|
5092
4583
|
];
|
|
5093
4584
|
}
|
|
5094
|
-
var PaginationContext =
|
|
4585
|
+
var PaginationContext = React26.createContext(null);
|
|
5095
4586
|
function usePaginationContext() {
|
|
5096
|
-
const ctx =
|
|
4587
|
+
const ctx = React26.useContext(PaginationContext);
|
|
5097
4588
|
if (!ctx) throw new Error("Pagination components must be used within <Pagination>");
|
|
5098
4589
|
return ctx;
|
|
5099
4590
|
}
|
|
@@ -5155,7 +4646,7 @@ function getItemClasses(variant, color, isActive, disabled) {
|
|
|
5155
4646
|
return "border border-transparent text-text-muted hover:bg-background-muted hover:text-foreground";
|
|
5156
4647
|
}
|
|
5157
4648
|
}
|
|
5158
|
-
var PaginationRoot =
|
|
4649
|
+
var PaginationRoot = React26.forwardRef(
|
|
5159
4650
|
({
|
|
5160
4651
|
className,
|
|
5161
4652
|
total = 1,
|
|
@@ -5177,17 +4668,17 @@ var PaginationRoot = React27.forwardRef(
|
|
|
5177
4668
|
children,
|
|
5178
4669
|
...props
|
|
5179
4670
|
}, ref) => {
|
|
5180
|
-
const [internalPage, setInternalPage] =
|
|
4671
|
+
const [internalPage, setInternalPage] = React26.useState(defaultValue);
|
|
5181
4672
|
const isControlled = value !== void 0;
|
|
5182
4673
|
const page = isControlled ? value : internalPage;
|
|
5183
|
-
const handlePageChange =
|
|
4674
|
+
const handlePageChange = React26.useCallback((newPage) => {
|
|
5184
4675
|
if (disabled) return;
|
|
5185
4676
|
const clamped = Math.max(1, Math.min(total, newPage));
|
|
5186
4677
|
if (!isControlled) setInternalPage(clamped);
|
|
5187
4678
|
onChange?.(clamped);
|
|
5188
4679
|
}, [disabled, total, isControlled, onChange]);
|
|
5189
4680
|
const paginationRange = usePagination({ total, siblings, boundaries, page });
|
|
5190
|
-
const contextValue =
|
|
4681
|
+
const contextValue = React26.useMemo(() => ({
|
|
5191
4682
|
page,
|
|
5192
4683
|
total,
|
|
5193
4684
|
siblings,
|
|
@@ -5201,7 +4692,7 @@ var PaginationRoot = React27.forwardRef(
|
|
|
5201
4692
|
onPageChange: handlePageChange,
|
|
5202
4693
|
paginationRange
|
|
5203
4694
|
}), [page, total, siblings, boundaries, size, variant, color, radius, disabled, loop, handlePageChange, paginationRange]);
|
|
5204
|
-
return /* @__PURE__ */
|
|
4695
|
+
return /* @__PURE__ */ React26.createElement(PaginationContext.Provider, { value: contextValue }, /* @__PURE__ */ React26.createElement(
|
|
5205
4696
|
"nav",
|
|
5206
4697
|
{
|
|
5207
4698
|
ref,
|
|
@@ -5215,11 +4706,11 @@ var PaginationRoot = React27.forwardRef(
|
|
|
5215
4706
|
}
|
|
5216
4707
|
);
|
|
5217
4708
|
PaginationRoot.displayName = "Pagination";
|
|
5218
|
-
var PaginationContent =
|
|
4709
|
+
var PaginationContent = React26.forwardRef(
|
|
5219
4710
|
({ className, ...props }, ref) => {
|
|
5220
4711
|
const { size } = usePaginationContext();
|
|
5221
4712
|
const sizeClass = paginationSizeMap[size];
|
|
5222
|
-
return /* @__PURE__ */
|
|
4713
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5223
4714
|
"ul",
|
|
5224
4715
|
{
|
|
5225
4716
|
ref,
|
|
@@ -5230,16 +4721,16 @@ var PaginationContent = React27.forwardRef(
|
|
|
5230
4721
|
}
|
|
5231
4722
|
);
|
|
5232
4723
|
PaginationContent.displayName = "PaginationContent";
|
|
5233
|
-
var PaginationItem =
|
|
5234
|
-
({ className, ...props }, ref) => /* @__PURE__ */
|
|
4724
|
+
var PaginationItem = React26.forwardRef(
|
|
4725
|
+
({ className, ...props }, ref) => /* @__PURE__ */ React26.createElement("li", { ref, className: cn("", className), ...props })
|
|
5235
4726
|
);
|
|
5236
4727
|
PaginationItem.displayName = "PaginationItem";
|
|
5237
|
-
var PaginationLink =
|
|
4728
|
+
var PaginationLink = React26.forwardRef(
|
|
5238
4729
|
({ className, page: targetPage, isActive: isActiveProp, ...props }, ref) => {
|
|
5239
4730
|
const ctx = usePaginationContext();
|
|
5240
4731
|
const isActive = isActiveProp ?? ctx.page === targetPage;
|
|
5241
4732
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5242
|
-
return /* @__PURE__ */
|
|
4733
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5243
4734
|
"button",
|
|
5244
4735
|
{
|
|
5245
4736
|
ref,
|
|
@@ -5261,7 +4752,7 @@ var PaginationLink = React27.forwardRef(
|
|
|
5261
4752
|
}
|
|
5262
4753
|
);
|
|
5263
4754
|
PaginationLink.displayName = "PaginationLink";
|
|
5264
|
-
var PaginationPrevious =
|
|
4755
|
+
var PaginationPrevious = React26.forwardRef(
|
|
5265
4756
|
({ className, icon, ...props }, ref) => {
|
|
5266
4757
|
const ctx = usePaginationContext();
|
|
5267
4758
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
@@ -5273,7 +4764,7 @@ var PaginationPrevious = React27.forwardRef(
|
|
|
5273
4764
|
ctx.onPageChange(ctx.page - 1);
|
|
5274
4765
|
}
|
|
5275
4766
|
};
|
|
5276
|
-
return /* @__PURE__ */
|
|
4767
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5277
4768
|
"button",
|
|
5278
4769
|
{
|
|
5279
4770
|
ref,
|
|
@@ -5289,12 +4780,12 @@ var PaginationPrevious = React27.forwardRef(
|
|
|
5289
4780
|
),
|
|
5290
4781
|
...props
|
|
5291
4782
|
},
|
|
5292
|
-
icon ?? /* @__PURE__ */
|
|
4783
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronLeftIcon, { className: sizeClass.icon })
|
|
5293
4784
|
);
|
|
5294
4785
|
}
|
|
5295
4786
|
);
|
|
5296
4787
|
PaginationPrevious.displayName = "PaginationPrevious";
|
|
5297
|
-
var PaginationNext =
|
|
4788
|
+
var PaginationNext = React26.forwardRef(
|
|
5298
4789
|
({ className, icon, ...props }, ref) => {
|
|
5299
4790
|
const ctx = usePaginationContext();
|
|
5300
4791
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
@@ -5306,7 +4797,7 @@ var PaginationNext = React27.forwardRef(
|
|
|
5306
4797
|
ctx.onPageChange(ctx.page + 1);
|
|
5307
4798
|
}
|
|
5308
4799
|
};
|
|
5309
|
-
return /* @__PURE__ */
|
|
4800
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5310
4801
|
"button",
|
|
5311
4802
|
{
|
|
5312
4803
|
ref,
|
|
@@ -5322,17 +4813,17 @@ var PaginationNext = React27.forwardRef(
|
|
|
5322
4813
|
),
|
|
5323
4814
|
...props
|
|
5324
4815
|
},
|
|
5325
|
-
icon ?? /* @__PURE__ */
|
|
4816
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronRightIcon3, { className: sizeClass.icon })
|
|
5326
4817
|
);
|
|
5327
4818
|
}
|
|
5328
4819
|
);
|
|
5329
4820
|
PaginationNext.displayName = "PaginationNext";
|
|
5330
|
-
var PaginationFirst =
|
|
4821
|
+
var PaginationFirst = React26.forwardRef(
|
|
5331
4822
|
({ className, icon, ...props }, ref) => {
|
|
5332
4823
|
const ctx = usePaginationContext();
|
|
5333
4824
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5334
4825
|
const isDisabled = ctx.disabled || ctx.page <= 1;
|
|
5335
|
-
return /* @__PURE__ */
|
|
4826
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5336
4827
|
"button",
|
|
5337
4828
|
{
|
|
5338
4829
|
ref,
|
|
@@ -5348,17 +4839,17 @@ var PaginationFirst = React27.forwardRef(
|
|
|
5348
4839
|
),
|
|
5349
4840
|
...props
|
|
5350
4841
|
},
|
|
5351
|
-
icon ?? /* @__PURE__ */
|
|
4842
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronsLeftIcon, { className: sizeClass.icon })
|
|
5352
4843
|
);
|
|
5353
4844
|
}
|
|
5354
4845
|
);
|
|
5355
4846
|
PaginationFirst.displayName = "PaginationFirst";
|
|
5356
|
-
var PaginationLast =
|
|
4847
|
+
var PaginationLast = React26.forwardRef(
|
|
5357
4848
|
({ className, icon, ...props }, ref) => {
|
|
5358
4849
|
const ctx = usePaginationContext();
|
|
5359
4850
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5360
4851
|
const isDisabled = ctx.disabled || ctx.page >= ctx.total;
|
|
5361
|
-
return /* @__PURE__ */
|
|
4852
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5362
4853
|
"button",
|
|
5363
4854
|
{
|
|
5364
4855
|
ref,
|
|
@@ -5374,16 +4865,16 @@ var PaginationLast = React27.forwardRef(
|
|
|
5374
4865
|
),
|
|
5375
4866
|
...props
|
|
5376
4867
|
},
|
|
5377
|
-
icon ?? /* @__PURE__ */
|
|
4868
|
+
icon ?? /* @__PURE__ */ React26.createElement(ChevronsRightIcon, { className: sizeClass.icon })
|
|
5378
4869
|
);
|
|
5379
4870
|
}
|
|
5380
4871
|
);
|
|
5381
4872
|
PaginationLast.displayName = "PaginationLast";
|
|
5382
|
-
var PaginationEllipsis =
|
|
4873
|
+
var PaginationEllipsis = React26.forwardRef(
|
|
5383
4874
|
({ className, ...props }, ref) => {
|
|
5384
4875
|
const ctx = usePaginationContext();
|
|
5385
4876
|
const sizeClass = paginationSizeMap[ctx.size];
|
|
5386
|
-
return /* @__PURE__ */
|
|
4877
|
+
return /* @__PURE__ */ React26.createElement(
|
|
5387
4878
|
"span",
|
|
5388
4879
|
{
|
|
5389
4880
|
ref,
|
|
@@ -5395,16 +4886,16 @@ var PaginationEllipsis = React27.forwardRef(
|
|
|
5395
4886
|
),
|
|
5396
4887
|
...props
|
|
5397
4888
|
},
|
|
5398
|
-
/* @__PURE__ */
|
|
5399
|
-
/* @__PURE__ */
|
|
4889
|
+
/* @__PURE__ */ React26.createElement(EllipsisIcon2, { className: sizeClass.icon }),
|
|
4890
|
+
/* @__PURE__ */ React26.createElement("span", { className: "sr-only" }, "More pages")
|
|
5400
4891
|
);
|
|
5401
4892
|
}
|
|
5402
4893
|
);
|
|
5403
4894
|
PaginationEllipsis.displayName = "PaginationEllipsis";
|
|
5404
|
-
var PaginationItems =
|
|
4895
|
+
var PaginationItems = React26.forwardRef(
|
|
5405
4896
|
({ className, ...props }, ref) => {
|
|
5406
4897
|
const ctx = usePaginationContext();
|
|
5407
|
-
return /* @__PURE__ */
|
|
4898
|
+
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 }))));
|
|
5408
4899
|
}
|
|
5409
4900
|
);
|
|
5410
4901
|
PaginationItems.displayName = "PaginationItems";
|
|
@@ -5421,11 +4912,11 @@ var Pagination = Object.assign(PaginationRoot, {
|
|
|
5421
4912
|
});
|
|
5422
4913
|
|
|
5423
4914
|
// src/components/ui/modal.tsx
|
|
5424
|
-
import * as
|
|
4915
|
+
import * as React27 from "react";
|
|
5425
4916
|
import * as DialogPrimitive from "@radix-ui/react-dialog";
|
|
5426
4917
|
import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
|
|
5427
4918
|
import { cva as cva22 } from "class-variance-authority";
|
|
5428
|
-
var DefaultCloseIcon = ({ className }) => /* @__PURE__ */
|
|
4919
|
+
var DefaultCloseIcon = ({ className }) => /* @__PURE__ */ React27.createElement(
|
|
5429
4920
|
"svg",
|
|
5430
4921
|
{
|
|
5431
4922
|
className,
|
|
@@ -5435,18 +4926,18 @@ var DefaultCloseIcon = ({ className }) => /* @__PURE__ */ React28.createElement(
|
|
|
5435
4926
|
strokeWidth: 2,
|
|
5436
4927
|
"aria-hidden": "true"
|
|
5437
4928
|
},
|
|
5438
|
-
/* @__PURE__ */
|
|
4929
|
+
/* @__PURE__ */ React27.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
5439
4930
|
);
|
|
5440
|
-
var ModalStyleContext =
|
|
4931
|
+
var ModalStyleContext = React27.createContext({
|
|
5441
4932
|
scrollBehavior: "outside"
|
|
5442
4933
|
});
|
|
5443
4934
|
function ModalRoot(props) {
|
|
5444
|
-
return /* @__PURE__ */
|
|
4935
|
+
return /* @__PURE__ */ React27.createElement(DialogPrimitive.Root, { ...props });
|
|
5445
4936
|
}
|
|
5446
4937
|
var ModalTrigger = DialogPrimitive.Trigger;
|
|
5447
4938
|
var ModalPortal = DialogPrimitive.Portal;
|
|
5448
4939
|
var ModalClose = DialogPrimitive.Close;
|
|
5449
|
-
var ModalOverlay =
|
|
4940
|
+
var ModalOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5450
4941
|
DialogPrimitive.Overlay,
|
|
5451
4942
|
{
|
|
5452
4943
|
ref,
|
|
@@ -5480,19 +4971,19 @@ var modalContentVariants = cva22("", {
|
|
|
5480
4971
|
size: "sm"
|
|
5481
4972
|
}
|
|
5482
4973
|
});
|
|
5483
|
-
var ModalContent =
|
|
4974
|
+
var ModalContent = React27.forwardRef(({ className, children, size = "sm", scrollBehavior = "outside", showCloseButton = true, closeIcon, ...props }, ref) => {
|
|
5484
4975
|
const isInside = scrollBehavior === "inside";
|
|
5485
4976
|
const isFull = size === "full";
|
|
5486
4977
|
const useInsideScroll = isInside || isFull;
|
|
5487
|
-
const closeButton = showCloseButton && /* @__PURE__ */
|
|
4978
|
+
const closeButton = showCloseButton && /* @__PURE__ */ React27.createElement(DialogPrimitive.Close, { className: cn(
|
|
5488
4979
|
"absolute right-4 top-4 rounded-md p-1",
|
|
5489
4980
|
"text-text-muted hover:text-foreground",
|
|
5490
4981
|
"transition-colors duration-fast",
|
|
5491
4982
|
"focus-visible:focus-ring focus-visible:outline-none",
|
|
5492
4983
|
"disabled:pointer-events-none"
|
|
5493
|
-
) }, closeIcon || /* @__PURE__ */
|
|
4984
|
+
) }, closeIcon || /* @__PURE__ */ React27.createElement(DefaultCloseIcon, { className: "icon-sm" }), /* @__PURE__ */ React27.createElement("span", { className: "sr-only" }, "Close"));
|
|
5494
4985
|
if (!useInsideScroll) {
|
|
5495
|
-
return /* @__PURE__ */
|
|
4986
|
+
return /* @__PURE__ */ React27.createElement(ModalPortal, null, /* @__PURE__ */ React27.createElement(ModalOverlay, null), /* @__PURE__ */ React27.createElement(ModalStyleContext.Provider, { value: { scrollBehavior: "outside" } }, /* @__PURE__ */ React27.createElement(
|
|
5496
4987
|
DialogPrimitive.Content,
|
|
5497
4988
|
{
|
|
5498
4989
|
ref,
|
|
@@ -5503,7 +4994,7 @@ var ModalContent = React28.forwardRef(({ className, children, size = "sm", scrol
|
|
|
5503
4994
|
),
|
|
5504
4995
|
...props
|
|
5505
4996
|
},
|
|
5506
|
-
/* @__PURE__ */
|
|
4997
|
+
/* @__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(
|
|
5507
4998
|
"div",
|
|
5508
4999
|
{
|
|
5509
5000
|
className: cn(
|
|
@@ -5518,7 +5009,7 @@ var ModalContent = React28.forwardRef(({ className, children, size = "sm", scrol
|
|
|
5518
5009
|
)))
|
|
5519
5010
|
)));
|
|
5520
5011
|
}
|
|
5521
|
-
return /* @__PURE__ */
|
|
5012
|
+
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(
|
|
5522
5013
|
DialogPrimitive.Content,
|
|
5523
5014
|
{
|
|
5524
5015
|
ref,
|
|
@@ -5538,7 +5029,7 @@ var ModalContent = React28.forwardRef(({ className, children, size = "sm", scrol
|
|
|
5538
5029
|
))));
|
|
5539
5030
|
});
|
|
5540
5031
|
ModalContent.displayName = "ModalContent";
|
|
5541
|
-
var ModalHeader =
|
|
5032
|
+
var ModalHeader = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5542
5033
|
"div",
|
|
5543
5034
|
{
|
|
5544
5035
|
ref,
|
|
@@ -5547,7 +5038,7 @@ var ModalHeader = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5547
5038
|
}
|
|
5548
5039
|
));
|
|
5549
5040
|
ModalHeader.displayName = "ModalHeader";
|
|
5550
|
-
var ModalTitle =
|
|
5041
|
+
var ModalTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5551
5042
|
DialogPrimitive.Title,
|
|
5552
5043
|
{
|
|
5553
5044
|
ref,
|
|
@@ -5556,7 +5047,7 @@ var ModalTitle = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
5556
5047
|
}
|
|
5557
5048
|
));
|
|
5558
5049
|
ModalTitle.displayName = "ModalTitle";
|
|
5559
|
-
var ModalDescription =
|
|
5050
|
+
var ModalDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5560
5051
|
DialogPrimitive.Description,
|
|
5561
5052
|
{
|
|
5562
5053
|
ref,
|
|
@@ -5565,9 +5056,9 @@ var ModalDescription = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5565
5056
|
}
|
|
5566
5057
|
));
|
|
5567
5058
|
ModalDescription.displayName = "ModalDescription";
|
|
5568
|
-
var ModalBody =
|
|
5569
|
-
const { scrollBehavior } =
|
|
5570
|
-
return /* @__PURE__ */
|
|
5059
|
+
var ModalBody = React27.forwardRef(({ className, ...props }, ref) => {
|
|
5060
|
+
const { scrollBehavior } = React27.useContext(ModalStyleContext);
|
|
5061
|
+
return /* @__PURE__ */ React27.createElement(
|
|
5571
5062
|
"div",
|
|
5572
5063
|
{
|
|
5573
5064
|
ref,
|
|
@@ -5581,7 +5072,7 @@ var ModalBody = React28.forwardRef(({ className, ...props }, ref) => {
|
|
|
5581
5072
|
);
|
|
5582
5073
|
});
|
|
5583
5074
|
ModalBody.displayName = "ModalBody";
|
|
5584
|
-
var ModalFooter =
|
|
5075
|
+
var ModalFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5585
5076
|
"div",
|
|
5586
5077
|
{
|
|
5587
5078
|
ref,
|
|
@@ -5596,7 +5087,7 @@ ModalFooter.displayName = "ModalFooter";
|
|
|
5596
5087
|
var AlertModalRoot = AlertDialogPrimitive.Root;
|
|
5597
5088
|
var AlertModalTrigger = AlertDialogPrimitive.Trigger;
|
|
5598
5089
|
var AlertModalPortal = AlertDialogPrimitive.Portal;
|
|
5599
|
-
var AlertModalOverlay =
|
|
5090
|
+
var AlertModalOverlay = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5600
5091
|
AlertDialogPrimitive.Overlay,
|
|
5601
5092
|
{
|
|
5602
5093
|
ref,
|
|
@@ -5622,7 +5113,7 @@ var alertModalContentVariants = cva22("", {
|
|
|
5622
5113
|
size: "sm"
|
|
5623
5114
|
}
|
|
5624
5115
|
});
|
|
5625
|
-
var AlertModalContent =
|
|
5116
|
+
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(
|
|
5626
5117
|
AlertDialogPrimitive.Content,
|
|
5627
5118
|
{
|
|
5628
5119
|
ref,
|
|
@@ -5638,7 +5129,7 @@ var AlertModalContent = React28.forwardRef(({ className, children, size = "sm",
|
|
|
5638
5129
|
children
|
|
5639
5130
|
))));
|
|
5640
5131
|
AlertModalContent.displayName = "AlertModalContent";
|
|
5641
|
-
var AlertModalHeader =
|
|
5132
|
+
var AlertModalHeader = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5642
5133
|
"div",
|
|
5643
5134
|
{
|
|
5644
5135
|
ref,
|
|
@@ -5647,7 +5138,7 @@ var AlertModalHeader = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5647
5138
|
}
|
|
5648
5139
|
));
|
|
5649
5140
|
AlertModalHeader.displayName = "AlertModalHeader";
|
|
5650
|
-
var AlertModalTitle =
|
|
5141
|
+
var AlertModalTitle = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5651
5142
|
AlertDialogPrimitive.Title,
|
|
5652
5143
|
{
|
|
5653
5144
|
ref,
|
|
@@ -5656,7 +5147,7 @@ var AlertModalTitle = React28.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
5656
5147
|
}
|
|
5657
5148
|
));
|
|
5658
5149
|
AlertModalTitle.displayName = "AlertModalTitle";
|
|
5659
|
-
var AlertModalDescription =
|
|
5150
|
+
var AlertModalDescription = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5660
5151
|
AlertDialogPrimitive.Description,
|
|
5661
5152
|
{
|
|
5662
5153
|
ref,
|
|
@@ -5665,7 +5156,7 @@ var AlertModalDescription = React28.forwardRef(({ className, ...props }, ref) =>
|
|
|
5665
5156
|
}
|
|
5666
5157
|
));
|
|
5667
5158
|
AlertModalDescription.displayName = "AlertModalDescription";
|
|
5668
|
-
var AlertModalBody =
|
|
5159
|
+
var AlertModalBody = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5669
5160
|
"div",
|
|
5670
5161
|
{
|
|
5671
5162
|
ref,
|
|
@@ -5674,7 +5165,7 @@ var AlertModalBody = React28.forwardRef(({ className, ...props }, ref) => /* @__
|
|
|
5674
5165
|
}
|
|
5675
5166
|
));
|
|
5676
5167
|
AlertModalBody.displayName = "AlertModalBody";
|
|
5677
|
-
var AlertModalFooter =
|
|
5168
|
+
var AlertModalFooter = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5678
5169
|
"div",
|
|
5679
5170
|
{
|
|
5680
5171
|
ref,
|
|
@@ -5686,7 +5177,7 @@ var AlertModalFooter = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5686
5177
|
}
|
|
5687
5178
|
));
|
|
5688
5179
|
AlertModalFooter.displayName = "AlertModalFooter";
|
|
5689
|
-
var AlertModalAction =
|
|
5180
|
+
var AlertModalAction = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5690
5181
|
AlertDialogPrimitive.Action,
|
|
5691
5182
|
{
|
|
5692
5183
|
ref,
|
|
@@ -5695,7 +5186,7 @@ var AlertModalAction = React28.forwardRef(({ className, ...props }, ref) => /* @
|
|
|
5695
5186
|
}
|
|
5696
5187
|
));
|
|
5697
5188
|
AlertModalAction.displayName = "AlertModalAction";
|
|
5698
|
-
var AlertModalCancel =
|
|
5189
|
+
var AlertModalCancel = React27.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React27.createElement(
|
|
5699
5190
|
AlertDialogPrimitive.Cancel,
|
|
5700
5191
|
{
|
|
5701
5192
|
ref,
|
|
@@ -5731,10 +5222,10 @@ var AlertModal = Object.assign(AlertModalRoot, {
|
|
|
5731
5222
|
});
|
|
5732
5223
|
|
|
5733
5224
|
// src/components/ui/drawer.tsx
|
|
5734
|
-
import * as
|
|
5225
|
+
import * as React28 from "react";
|
|
5735
5226
|
import * as DialogPrimitive2 from "@radix-ui/react-dialog";
|
|
5736
5227
|
import { cva as cva23 } from "class-variance-authority";
|
|
5737
|
-
var DefaultCloseIcon2 = ({ className }) => /* @__PURE__ */
|
|
5228
|
+
var DefaultCloseIcon2 = ({ className }) => /* @__PURE__ */ React28.createElement(
|
|
5738
5229
|
"svg",
|
|
5739
5230
|
{
|
|
5740
5231
|
className,
|
|
@@ -5744,7 +5235,7 @@ var DefaultCloseIcon2 = ({ className }) => /* @__PURE__ */ React29.createElement
|
|
|
5744
5235
|
strokeWidth: 2,
|
|
5745
5236
|
"aria-hidden": "true"
|
|
5746
5237
|
},
|
|
5747
|
-
/* @__PURE__ */
|
|
5238
|
+
/* @__PURE__ */ React28.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
5748
5239
|
);
|
|
5749
5240
|
var ANIMATION_CLASSES = {
|
|
5750
5241
|
right: "data-[state=open]:animate-drawer-right-enter data-[state=closed]:animate-drawer-right-exit",
|
|
@@ -5777,12 +5268,12 @@ var drawerSizeVertical = cva23("", {
|
|
|
5777
5268
|
defaultVariants: { size: "md" }
|
|
5778
5269
|
});
|
|
5779
5270
|
function DrawerRoot(props) {
|
|
5780
|
-
return /* @__PURE__ */
|
|
5271
|
+
return /* @__PURE__ */ React28.createElement(DialogPrimitive2.Root, { ...props });
|
|
5781
5272
|
}
|
|
5782
5273
|
var DrawerTrigger = DialogPrimitive2.Trigger;
|
|
5783
5274
|
var DrawerPortal = DialogPrimitive2.Portal;
|
|
5784
5275
|
var DrawerClose = DialogPrimitive2.Close;
|
|
5785
|
-
var DrawerOverlay =
|
|
5276
|
+
var DrawerOverlay = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5786
5277
|
DialogPrimitive2.Overlay,
|
|
5787
5278
|
{
|
|
5788
5279
|
ref,
|
|
@@ -5801,10 +5292,10 @@ var SIDE_POSITION = {
|
|
|
5801
5292
|
top: "inset-x-0 top-0",
|
|
5802
5293
|
bottom: "inset-x-0 bottom-0"
|
|
5803
5294
|
};
|
|
5804
|
-
var DrawerContent =
|
|
5295
|
+
var DrawerContent = React28.forwardRef(({ className, children, side = "right", size = "md", showCloseButton = true, closeIcon, ...props }, ref) => {
|
|
5805
5296
|
const isHorizontal = side === "left" || side === "right";
|
|
5806
5297
|
const sizeClass = isHorizontal ? drawerSizeHorizontal({ size }) : drawerSizeVertical({ size });
|
|
5807
|
-
return /* @__PURE__ */
|
|
5298
|
+
return /* @__PURE__ */ React28.createElement(DrawerPortal, null, /* @__PURE__ */ React28.createElement(DrawerOverlay, null), /* @__PURE__ */ React28.createElement(
|
|
5808
5299
|
DialogPrimitive2.Content,
|
|
5809
5300
|
{
|
|
5810
5301
|
ref,
|
|
@@ -5820,17 +5311,17 @@ var DrawerContent = React29.forwardRef(({ className, children, side = "right", s
|
|
|
5820
5311
|
...props
|
|
5821
5312
|
},
|
|
5822
5313
|
children,
|
|
5823
|
-
showCloseButton && /* @__PURE__ */
|
|
5314
|
+
showCloseButton && /* @__PURE__ */ React28.createElement(DialogPrimitive2.Close, { className: cn(
|
|
5824
5315
|
"absolute right-4 top-4 rounded-md p-1",
|
|
5825
5316
|
"text-text-muted hover:text-foreground",
|
|
5826
5317
|
"transition-colors duration-fast",
|
|
5827
5318
|
"focus-visible:focus-ring focus-visible:outline-none",
|
|
5828
5319
|
"disabled:pointer-events-none"
|
|
5829
|
-
) }, closeIcon || /* @__PURE__ */
|
|
5320
|
+
) }, closeIcon || /* @__PURE__ */ React28.createElement(DefaultCloseIcon2, { className: "icon-sm" }), /* @__PURE__ */ React28.createElement("span", { className: "sr-only" }, "Close"))
|
|
5830
5321
|
));
|
|
5831
5322
|
});
|
|
5832
5323
|
DrawerContent.displayName = "DrawerContent";
|
|
5833
|
-
var DrawerHeader =
|
|
5324
|
+
var DrawerHeader = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5834
5325
|
"div",
|
|
5835
5326
|
{
|
|
5836
5327
|
ref,
|
|
@@ -5839,7 +5330,7 @@ var DrawerHeader = React29.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
5839
5330
|
}
|
|
5840
5331
|
));
|
|
5841
5332
|
DrawerHeader.displayName = "DrawerHeader";
|
|
5842
|
-
var DrawerTitle =
|
|
5333
|
+
var DrawerTitle = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5843
5334
|
DialogPrimitive2.Title,
|
|
5844
5335
|
{
|
|
5845
5336
|
ref,
|
|
@@ -5848,7 +5339,7 @@ var DrawerTitle = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
5848
5339
|
}
|
|
5849
5340
|
));
|
|
5850
5341
|
DrawerTitle.displayName = "DrawerTitle";
|
|
5851
|
-
var DrawerDescription =
|
|
5342
|
+
var DrawerDescription = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5852
5343
|
DialogPrimitive2.Description,
|
|
5853
5344
|
{
|
|
5854
5345
|
ref,
|
|
@@ -5857,7 +5348,7 @@ var DrawerDescription = React29.forwardRef(({ className, ...props }, ref) => /*
|
|
|
5857
5348
|
}
|
|
5858
5349
|
));
|
|
5859
5350
|
DrawerDescription.displayName = "DrawerDescription";
|
|
5860
|
-
var DrawerBody =
|
|
5351
|
+
var DrawerBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5861
5352
|
"div",
|
|
5862
5353
|
{
|
|
5863
5354
|
ref,
|
|
@@ -5866,7 +5357,7 @@ var DrawerBody = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE
|
|
|
5866
5357
|
}
|
|
5867
5358
|
));
|
|
5868
5359
|
DrawerBody.displayName = "DrawerBody";
|
|
5869
|
-
var DrawerFooter =
|
|
5360
|
+
var DrawerFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React28.createElement(
|
|
5870
5361
|
"div",
|
|
5871
5362
|
{
|
|
5872
5363
|
ref,
|
|
@@ -5892,7 +5383,7 @@ var Drawer = Object.assign(DrawerRoot, {
|
|
|
5892
5383
|
});
|
|
5893
5384
|
|
|
5894
5385
|
// src/components/ui/tooltip.tsx
|
|
5895
|
-
import * as
|
|
5386
|
+
import * as React29 from "react";
|
|
5896
5387
|
import * as TooltipPrimitive from "@radix-ui/react-tooltip";
|
|
5897
5388
|
import { cva as cva24 } from "class-variance-authority";
|
|
5898
5389
|
var ANIMATION_CLASSES2 = {
|
|
@@ -5926,13 +5417,13 @@ var ARROW_FILL = {
|
|
|
5926
5417
|
};
|
|
5927
5418
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
5928
5419
|
function TooltipRoot({ delayDuration = 200, ...props }) {
|
|
5929
|
-
return /* @__PURE__ */
|
|
5420
|
+
return /* @__PURE__ */ React29.createElement(TooltipPrimitive.Root, { delayDuration, ...props });
|
|
5930
5421
|
}
|
|
5931
5422
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
5932
5423
|
var TooltipPortal = TooltipPrimitive.Portal;
|
|
5933
|
-
var TooltipContent =
|
|
5424
|
+
var TooltipContent = React29.forwardRef(({ className, variant = "default", size, side = "top", sideOffset = 6, showArrow = true, children, ...props }, ref) => {
|
|
5934
5425
|
const resolvedSide = side;
|
|
5935
|
-
return /* @__PURE__ */
|
|
5426
|
+
return /* @__PURE__ */ React29.createElement(TooltipPrimitive.Portal, null, /* @__PURE__ */ React29.createElement(
|
|
5936
5427
|
TooltipPrimitive.Content,
|
|
5937
5428
|
{
|
|
5938
5429
|
ref,
|
|
@@ -5946,7 +5437,7 @@ var TooltipContent = React30.forwardRef(({ className, variant = "default", size,
|
|
|
5946
5437
|
...props
|
|
5947
5438
|
},
|
|
5948
5439
|
children,
|
|
5949
|
-
showArrow && /* @__PURE__ */
|
|
5440
|
+
showArrow && /* @__PURE__ */ React29.createElement(
|
|
5950
5441
|
TooltipPrimitive.Arrow,
|
|
5951
5442
|
{
|
|
5952
5443
|
className: ARROW_FILL[variant || "default"],
|
|
@@ -5957,7 +5448,7 @@ var TooltipContent = React30.forwardRef(({ className, variant = "default", size,
|
|
|
5957
5448
|
));
|
|
5958
5449
|
});
|
|
5959
5450
|
TooltipContent.displayName = "TooltipContent";
|
|
5960
|
-
var TooltipArrow =
|
|
5451
|
+
var TooltipArrow = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React29.createElement(
|
|
5961
5452
|
TooltipPrimitive.Arrow,
|
|
5962
5453
|
{
|
|
5963
5454
|
ref,
|
|
@@ -5968,7 +5459,7 @@ var TooltipArrow = React30.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
5968
5459
|
}
|
|
5969
5460
|
));
|
|
5970
5461
|
TooltipArrow.displayName = "TooltipArrow";
|
|
5971
|
-
var
|
|
5462
|
+
var Tooltip = Object.assign(TooltipRoot, {
|
|
5972
5463
|
Trigger: TooltipTrigger,
|
|
5973
5464
|
Content: TooltipContent,
|
|
5974
5465
|
Arrow: TooltipArrow,
|
|
@@ -5977,10 +5468,10 @@ var Tooltip2 = Object.assign(TooltipRoot, {
|
|
|
5977
5468
|
});
|
|
5978
5469
|
|
|
5979
5470
|
// src/components/ui/popover.tsx
|
|
5980
|
-
import * as
|
|
5471
|
+
import * as React30 from "react";
|
|
5981
5472
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
5982
5473
|
import { cva as cva25 } from "class-variance-authority";
|
|
5983
|
-
var DefaultCloseIcon3 = ({ className }) => /* @__PURE__ */
|
|
5474
|
+
var DefaultCloseIcon3 = ({ className }) => /* @__PURE__ */ React30.createElement(
|
|
5984
5475
|
"svg",
|
|
5985
5476
|
{
|
|
5986
5477
|
className,
|
|
@@ -5990,7 +5481,7 @@ var DefaultCloseIcon3 = ({ className }) => /* @__PURE__ */ React31.createElement
|
|
|
5990
5481
|
strokeWidth: 2,
|
|
5991
5482
|
"aria-hidden": "true"
|
|
5992
5483
|
},
|
|
5993
|
-
/* @__PURE__ */
|
|
5484
|
+
/* @__PURE__ */ React30.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M6 18L18 6M6 6l12 12" })
|
|
5994
5485
|
);
|
|
5995
5486
|
var ANIMATION_CLASSES3 = {
|
|
5996
5487
|
top: "data-[state=open]:animate-popover-top-enter data-[state=closed]:animate-popover-top-exit",
|
|
@@ -6026,16 +5517,16 @@ var CSS_ARROW_CLASSES = {
|
|
|
6026
5517
|
};
|
|
6027
5518
|
var ARROW_ELEVATED = "fill-background-paper drop-shadow-sm";
|
|
6028
5519
|
function PopoverRoot(props) {
|
|
6029
|
-
return /* @__PURE__ */
|
|
5520
|
+
return /* @__PURE__ */ React30.createElement(PopoverPrimitive.Root, { ...props });
|
|
6030
5521
|
}
|
|
6031
5522
|
var PopoverTrigger = PopoverPrimitive.Trigger;
|
|
6032
5523
|
var PopoverPortal = PopoverPrimitive.Portal;
|
|
6033
5524
|
var PopoverAnchor = PopoverPrimitive.Anchor;
|
|
6034
5525
|
var PopoverClose = PopoverPrimitive.Close;
|
|
6035
|
-
var PopoverContent =
|
|
5526
|
+
var PopoverContent = React30.forwardRef(({ className, variant = "default", size, side = "bottom", sideOffset, showArrow = true, showClose = false, closeIcon, children, ...props }, ref) => {
|
|
6036
5527
|
const resolvedSide = side;
|
|
6037
5528
|
const resolvedOffset = sideOffset ?? (variant === "default" && showArrow ? 12 : 6);
|
|
6038
|
-
return /* @__PURE__ */
|
|
5529
|
+
return /* @__PURE__ */ React30.createElement(PopoverPrimitive.Portal, null, /* @__PURE__ */ React30.createElement(
|
|
6039
5530
|
PopoverPrimitive.Content,
|
|
6040
5531
|
{
|
|
6041
5532
|
ref,
|
|
@@ -6048,16 +5539,16 @@ var PopoverContent = React31.forwardRef(({ className, variant = "default", size,
|
|
|
6048
5539
|
),
|
|
6049
5540
|
...props
|
|
6050
5541
|
},
|
|
6051
|
-
showClose && /* @__PURE__ */
|
|
5542
|
+
showClose && /* @__PURE__ */ React30.createElement(
|
|
6052
5543
|
PopoverPrimitive.Close,
|
|
6053
5544
|
{
|
|
6054
5545
|
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",
|
|
6055
5546
|
"aria-label": "Close"
|
|
6056
5547
|
},
|
|
6057
|
-
closeIcon || /* @__PURE__ */
|
|
5548
|
+
closeIcon || /* @__PURE__ */ React30.createElement(DefaultCloseIcon3, { className: "icon-sm" })
|
|
6058
5549
|
),
|
|
6059
5550
|
children,
|
|
6060
|
-
showArrow && variant === "default" && /* @__PURE__ */
|
|
5551
|
+
showArrow && variant === "default" && /* @__PURE__ */ React30.createElement(
|
|
6061
5552
|
"div",
|
|
6062
5553
|
{
|
|
6063
5554
|
className: cn(
|
|
@@ -6066,7 +5557,7 @@ var PopoverContent = React31.forwardRef(({ className, variant = "default", size,
|
|
|
6066
5557
|
)
|
|
6067
5558
|
}
|
|
6068
5559
|
),
|
|
6069
|
-
showArrow && variant === "elevated" && /* @__PURE__ */
|
|
5560
|
+
showArrow && variant === "elevated" && /* @__PURE__ */ React30.createElement(
|
|
6070
5561
|
PopoverPrimitive.Arrow,
|
|
6071
5562
|
{
|
|
6072
5563
|
className: ARROW_ELEVATED,
|
|
@@ -6077,7 +5568,7 @@ var PopoverContent = React31.forwardRef(({ className, variant = "default", size,
|
|
|
6077
5568
|
));
|
|
6078
5569
|
});
|
|
6079
5570
|
PopoverContent.displayName = "PopoverContent";
|
|
6080
|
-
var PopoverArrow =
|
|
5571
|
+
var PopoverArrow = React30.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React30.createElement(
|
|
6081
5572
|
PopoverPrimitive.Arrow,
|
|
6082
5573
|
{
|
|
6083
5574
|
ref,
|
|
@@ -6098,13 +5589,13 @@ var Popover = Object.assign(PopoverRoot, {
|
|
|
6098
5589
|
});
|
|
6099
5590
|
|
|
6100
5591
|
// src/components/ui/alert.tsx
|
|
6101
|
-
import * as
|
|
5592
|
+
import * as React31 from "react";
|
|
6102
5593
|
import { cva as cva26 } from "class-variance-authority";
|
|
6103
|
-
var InfoIcon = ({ className }) => /* @__PURE__ */
|
|
6104
|
-
var SuccessIcon = ({ className }) => /* @__PURE__ */
|
|
6105
|
-
var WarningIcon = ({ className }) => /* @__PURE__ */
|
|
6106
|
-
var ErrorIcon = ({ className }) => /* @__PURE__ */
|
|
6107
|
-
var DefaultCloseIcon4 = ({ className }) => /* @__PURE__ */
|
|
5594
|
+
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" }));
|
|
5595
|
+
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" }));
|
|
5596
|
+
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" }));
|
|
5597
|
+
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" }));
|
|
5598
|
+
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" }));
|
|
6108
5599
|
var STATUS_ICONS = {
|
|
6109
5600
|
info: InfoIcon,
|
|
6110
5601
|
success: SuccessIcon,
|
|
@@ -6178,15 +5669,15 @@ var DESC_SIZE_MAP = {
|
|
|
6178
5669
|
default: "text-sm mt-1",
|
|
6179
5670
|
lg: "text-md mt-1.5"
|
|
6180
5671
|
};
|
|
6181
|
-
var AlertContext =
|
|
5672
|
+
var AlertContext = React31.createContext({
|
|
6182
5673
|
variant: "default",
|
|
6183
5674
|
color: "info",
|
|
6184
5675
|
size: "default"
|
|
6185
5676
|
});
|
|
6186
5677
|
function useAlertContext() {
|
|
6187
|
-
return
|
|
5678
|
+
return React31.useContext(AlertContext);
|
|
6188
5679
|
}
|
|
6189
|
-
var AlertRoot =
|
|
5680
|
+
var AlertRoot = React31.forwardRef(
|
|
6190
5681
|
({
|
|
6191
5682
|
className,
|
|
6192
5683
|
variant = "default",
|
|
@@ -6204,7 +5695,7 @@ var AlertRoot = React32.forwardRef(
|
|
|
6204
5695
|
const role = color === "error" ? "alert" : "status";
|
|
6205
5696
|
const colorClasses = colorMap2[color][variant];
|
|
6206
5697
|
const StatusIcon = STATUS_ICONS[color];
|
|
6207
|
-
return /* @__PURE__ */
|
|
5698
|
+
return /* @__PURE__ */ React31.createElement(AlertContext.Provider, { value: { variant, color, size } }, /* @__PURE__ */ React31.createElement(
|
|
6208
5699
|
"div",
|
|
6209
5700
|
{
|
|
6210
5701
|
ref,
|
|
@@ -6216,9 +5707,9 @@ var AlertRoot = React32.forwardRef(
|
|
|
6216
5707
|
),
|
|
6217
5708
|
...props
|
|
6218
5709
|
},
|
|
6219
|
-
!hideIcon && /* @__PURE__ */
|
|
6220
|
-
/* @__PURE__ */
|
|
6221
|
-
closable && /* @__PURE__ */
|
|
5710
|
+
!hideIcon && /* @__PURE__ */ React31.createElement("span", { className: "shrink-0" }, icon || /* @__PURE__ */ React31.createElement(StatusIcon, { className: ICON_SIZE_MAP[size] })),
|
|
5711
|
+
/* @__PURE__ */ React31.createElement("div", { className: "flex-1 min-w-0" }, children),
|
|
5712
|
+
closable && /* @__PURE__ */ React31.createElement(
|
|
6222
5713
|
"button",
|
|
6223
5714
|
{
|
|
6224
5715
|
type: "button",
|
|
@@ -6230,16 +5721,16 @@ var AlertRoot = React32.forwardRef(
|
|
|
6230
5721
|
onClick: onClose,
|
|
6231
5722
|
"aria-label": "Close"
|
|
6232
5723
|
},
|
|
6233
|
-
closeIcon || /* @__PURE__ */
|
|
5724
|
+
closeIcon || /* @__PURE__ */ React31.createElement(DefaultCloseIcon4, { className: "icon-sm" })
|
|
6234
5725
|
)
|
|
6235
5726
|
));
|
|
6236
5727
|
}
|
|
6237
5728
|
);
|
|
6238
5729
|
AlertRoot.displayName = "AlertRoot";
|
|
6239
|
-
var AlertTitle =
|
|
5730
|
+
var AlertTitle = React31.forwardRef(
|
|
6240
5731
|
({ className, ...props }, ref) => {
|
|
6241
5732
|
const { size } = useAlertContext();
|
|
6242
|
-
return /* @__PURE__ */
|
|
5733
|
+
return /* @__PURE__ */ React31.createElement(
|
|
6243
5734
|
"h5",
|
|
6244
5735
|
{
|
|
6245
5736
|
ref,
|
|
@@ -6250,10 +5741,10 @@ var AlertTitle = React32.forwardRef(
|
|
|
6250
5741
|
}
|
|
6251
5742
|
);
|
|
6252
5743
|
AlertTitle.displayName = "AlertTitle";
|
|
6253
|
-
var AlertDescription =
|
|
5744
|
+
var AlertDescription = React31.forwardRef(
|
|
6254
5745
|
({ className, ...props }, ref) => {
|
|
6255
5746
|
const { variant, size } = useAlertContext();
|
|
6256
|
-
return /* @__PURE__ */
|
|
5747
|
+
return /* @__PURE__ */ React31.createElement(
|
|
6257
5748
|
"p",
|
|
6258
5749
|
{
|
|
6259
5750
|
ref,
|
|
@@ -6275,14 +5766,14 @@ var Alert = Object.assign(AlertRoot, {
|
|
|
6275
5766
|
});
|
|
6276
5767
|
|
|
6277
5768
|
// src/components/ui/toast.tsx
|
|
6278
|
-
import * as
|
|
5769
|
+
import * as React32 from "react";
|
|
6279
5770
|
import { cva as cva27 } from "class-variance-authority";
|
|
6280
|
-
var InfoIcon2 = ({ className }) => /* @__PURE__ */
|
|
6281
|
-
var SuccessIcon2 = ({ className }) => /* @__PURE__ */
|
|
6282
|
-
var WarningIcon2 = ({ className }) => /* @__PURE__ */
|
|
6283
|
-
var ErrorIcon2 = ({ className }) => /* @__PURE__ */
|
|
6284
|
-
var DefaultCloseIcon5 = ({ className }) => /* @__PURE__ */
|
|
6285
|
-
var LoadingIcon = ({ className }) => /* @__PURE__ */
|
|
5771
|
+
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" }));
|
|
5772
|
+
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" }));
|
|
5773
|
+
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" }));
|
|
5774
|
+
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" }));
|
|
5775
|
+
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" }));
|
|
5776
|
+
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" }));
|
|
6286
5777
|
var STATUS_ICONS2 = {
|
|
6287
5778
|
default: InfoIcon2,
|
|
6288
5779
|
success: SuccessIcon2,
|
|
@@ -6361,8 +5852,8 @@ function createToastStore() {
|
|
|
6361
5852
|
}
|
|
6362
5853
|
var globalStore = createToastStore();
|
|
6363
5854
|
function useToastStore() {
|
|
6364
|
-
const [, forceUpdate] =
|
|
6365
|
-
|
|
5855
|
+
const [, forceUpdate] = React32.useState(0);
|
|
5856
|
+
React32.useEffect(() => {
|
|
6366
5857
|
return globalStore.subscribe(() => forceUpdate((n) => n + 1));
|
|
6367
5858
|
}, []);
|
|
6368
5859
|
return globalStore.toasts;
|
|
@@ -6456,7 +5947,7 @@ toast.custom = (render, opts) => {
|
|
|
6456
5947
|
});
|
|
6457
5948
|
return id;
|
|
6458
5949
|
};
|
|
6459
|
-
var ToastItem =
|
|
5950
|
+
var ToastItem = React32.memo(function ToastItem2({
|
|
6460
5951
|
data,
|
|
6461
5952
|
position,
|
|
6462
5953
|
size,
|
|
@@ -6465,13 +5956,13 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6465
5956
|
defaultDuration,
|
|
6466
5957
|
onRemove
|
|
6467
5958
|
}) {
|
|
6468
|
-
const [isExiting, setIsExiting] =
|
|
6469
|
-
const [isEntered, setIsEntered] =
|
|
6470
|
-
const [isPaused, setIsPaused] =
|
|
6471
|
-
const timerRef =
|
|
6472
|
-
const remainingRef =
|
|
6473
|
-
const startTimeRef =
|
|
6474
|
-
|
|
5959
|
+
const [isExiting, setIsExiting] = React32.useState(false);
|
|
5960
|
+
const [isEntered, setIsEntered] = React32.useState(false);
|
|
5961
|
+
const [isPaused, setIsPaused] = React32.useState(false);
|
|
5962
|
+
const timerRef = React32.useRef(null);
|
|
5963
|
+
const remainingRef = React32.useRef(0);
|
|
5964
|
+
const startTimeRef = React32.useRef(0);
|
|
5965
|
+
React32.useEffect(() => {
|
|
6475
5966
|
const timer = setTimeout(() => setIsEntered(true), TOAST_EXIT_DURATION);
|
|
6476
5967
|
return () => clearTimeout(timer);
|
|
6477
5968
|
}, []);
|
|
@@ -6484,18 +5975,18 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6484
5975
|
const StatusIcon = STATUS_ICONS2[data.type];
|
|
6485
5976
|
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";
|
|
6486
5977
|
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";
|
|
6487
|
-
const handleDismiss =
|
|
5978
|
+
const handleDismiss = React32.useCallback(() => {
|
|
6488
5979
|
if (!dismissible) return;
|
|
6489
5980
|
setIsExiting(true);
|
|
6490
5981
|
data.onDismiss?.(data);
|
|
6491
5982
|
setTimeout(() => onRemove(data.id), TOAST_EXIT_DURATION);
|
|
6492
5983
|
}, [data, dismissible, onRemove]);
|
|
6493
|
-
const handleAutoClose =
|
|
5984
|
+
const handleAutoClose = React32.useCallback(() => {
|
|
6494
5985
|
setIsExiting(true);
|
|
6495
5986
|
data.onAutoClose?.(data);
|
|
6496
5987
|
setTimeout(() => onRemove(data.id), TOAST_EXIT_DURATION);
|
|
6497
5988
|
}, [data, onRemove]);
|
|
6498
|
-
|
|
5989
|
+
React32.useEffect(() => {
|
|
6499
5990
|
if (duration <= 0) return;
|
|
6500
5991
|
remainingRef.current = duration;
|
|
6501
5992
|
startTimeRef.current = Date.now();
|
|
@@ -6504,7 +5995,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6504
5995
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
6505
5996
|
};
|
|
6506
5997
|
}, [duration, handleAutoClose]);
|
|
6507
|
-
const handleMouseEnter =
|
|
5998
|
+
const handleMouseEnter = React32.useCallback(() => {
|
|
6508
5999
|
if (duration <= 0) return;
|
|
6509
6000
|
setIsPaused(true);
|
|
6510
6001
|
if (timerRef.current) {
|
|
@@ -6512,13 +6003,13 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6512
6003
|
remainingRef.current -= Date.now() - startTimeRef.current;
|
|
6513
6004
|
}
|
|
6514
6005
|
}, [duration]);
|
|
6515
|
-
const handleMouseLeave =
|
|
6006
|
+
const handleMouseLeave = React32.useCallback(() => {
|
|
6516
6007
|
if (duration <= 0) return;
|
|
6517
6008
|
setIsPaused(false);
|
|
6518
6009
|
startTimeRef.current = Date.now();
|
|
6519
6010
|
timerRef.current = setTimeout(handleAutoClose, Math.max(remainingRef.current, TOAST_MIN_RESUME_MS));
|
|
6520
6011
|
}, [duration, handleAutoClose]);
|
|
6521
|
-
|
|
6012
|
+
React32.useEffect(() => {
|
|
6522
6013
|
if (data._promiseState === "success" || data._promiseState === "error") {
|
|
6523
6014
|
const newDuration = data.duration ?? defaultDuration;
|
|
6524
6015
|
if (newDuration > 0) {
|
|
@@ -6529,7 +6020,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6529
6020
|
}
|
|
6530
6021
|
}
|
|
6531
6022
|
}, [data._promiseState, data.duration, defaultDuration, handleAutoClose]);
|
|
6532
|
-
return /* @__PURE__ */
|
|
6023
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6533
6024
|
"div",
|
|
6534
6025
|
{
|
|
6535
6026
|
role,
|
|
@@ -6545,9 +6036,9 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6545
6036
|
onMouseEnter: handleMouseEnter,
|
|
6546
6037
|
onMouseLeave: handleMouseLeave
|
|
6547
6038
|
},
|
|
6548
|
-
data.icon !== void 0 ? data.icon && /* @__PURE__ */
|
|
6549
|
-
/* @__PURE__ */
|
|
6550
|
-
(data.action || data.cancel) && /* @__PURE__ */
|
|
6039
|
+
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" })),
|
|
6040
|
+
/* @__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)),
|
|
6041
|
+
(data.action || data.cancel) && /* @__PURE__ */ React32.createElement("div", { className: "flex items-center gap-1.5 shrink-0" }, data.cancel && /* @__PURE__ */ React32.createElement(
|
|
6551
6042
|
"button",
|
|
6552
6043
|
{
|
|
6553
6044
|
type: "button",
|
|
@@ -6558,7 +6049,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6558
6049
|
}
|
|
6559
6050
|
},
|
|
6560
6051
|
data.cancel.label
|
|
6561
|
-
), data.action && /* @__PURE__ */
|
|
6052
|
+
), data.action && /* @__PURE__ */ React32.createElement(
|
|
6562
6053
|
"button",
|
|
6563
6054
|
{
|
|
6564
6055
|
type: "button",
|
|
@@ -6570,7 +6061,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6570
6061
|
},
|
|
6571
6062
|
data.action.label
|
|
6572
6063
|
)),
|
|
6573
|
-
showClose && dismissible && /* @__PURE__ */
|
|
6064
|
+
showClose && dismissible && /* @__PURE__ */ React32.createElement(
|
|
6574
6065
|
"button",
|
|
6575
6066
|
{
|
|
6576
6067
|
type: "button",
|
|
@@ -6578,7 +6069,7 @@ var ToastItem = React33.memo(function ToastItem2({
|
|
|
6578
6069
|
onClick: handleDismiss,
|
|
6579
6070
|
"aria-label": "Close"
|
|
6580
6071
|
},
|
|
6581
|
-
/* @__PURE__ */
|
|
6072
|
+
/* @__PURE__ */ React32.createElement(DefaultCloseIcon5, { className: "icon-sm" })
|
|
6582
6073
|
)
|
|
6583
6074
|
);
|
|
6584
6075
|
});
|
|
@@ -6595,8 +6086,8 @@ function Toaster({
|
|
|
6595
6086
|
className
|
|
6596
6087
|
}) {
|
|
6597
6088
|
const toasts = useToastStore();
|
|
6598
|
-
const [expanded, setExpanded] =
|
|
6599
|
-
const handleRemove =
|
|
6089
|
+
const [expanded, setExpanded] = React32.useState(false);
|
|
6090
|
+
const handleRemove = React32.useCallback((id) => {
|
|
6600
6091
|
globalStore.removeToast(id);
|
|
6601
6092
|
}, []);
|
|
6602
6093
|
const visible = toasts.slice(0, visibleToasts);
|
|
@@ -6608,7 +6099,7 @@ function Toaster({
|
|
|
6608
6099
|
isTop ? "top-0" : "bottom-0",
|
|
6609
6100
|
isCenter ? "left-1/2 -translate-x-1/2" : isRight ? "right-0" : "left-0"
|
|
6610
6101
|
);
|
|
6611
|
-
return /* @__PURE__ */
|
|
6102
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6612
6103
|
"section",
|
|
6613
6104
|
{
|
|
6614
6105
|
"aria-label": "Notifications",
|
|
@@ -6624,7 +6115,7 @@ function Toaster({
|
|
|
6624
6115
|
},
|
|
6625
6116
|
visible.map((t, index) => {
|
|
6626
6117
|
const isStacked = !expand && !expanded && index > 0;
|
|
6627
|
-
return /* @__PURE__ */
|
|
6118
|
+
return /* @__PURE__ */ React32.createElement(
|
|
6628
6119
|
"div",
|
|
6629
6120
|
{
|
|
6630
6121
|
key: t.id,
|
|
@@ -6642,7 +6133,7 @@ function Toaster({
|
|
|
6642
6133
|
} : { zIndex: visibleToasts - index }
|
|
6643
6134
|
}
|
|
6644
6135
|
},
|
|
6645
|
-
/* @__PURE__ */
|
|
6136
|
+
/* @__PURE__ */ React32.createElement(
|
|
6646
6137
|
ToastItem,
|
|
6647
6138
|
{
|
|
6648
6139
|
data: t,
|
|
@@ -6661,7 +6152,7 @@ function Toaster({
|
|
|
6661
6152
|
Toaster.displayName = "Toaster";
|
|
6662
6153
|
|
|
6663
6154
|
// src/components/ui/progress.tsx
|
|
6664
|
-
import * as
|
|
6155
|
+
import * as React33 from "react";
|
|
6665
6156
|
import * as ProgressPrimitive from "@radix-ui/react-progress";
|
|
6666
6157
|
import { cva as cva28 } from "class-variance-authority";
|
|
6667
6158
|
var CIRCULAR_VIEWBOX = 100;
|
|
@@ -6709,7 +6200,7 @@ var valueFontSizes = {
|
|
|
6709
6200
|
default: "text-sm",
|
|
6710
6201
|
lg: "text-base"
|
|
6711
6202
|
};
|
|
6712
|
-
var Progress =
|
|
6203
|
+
var Progress = React33.forwardRef(({
|
|
6713
6204
|
className,
|
|
6714
6205
|
type = "linear",
|
|
6715
6206
|
value = 0,
|
|
@@ -6735,7 +6226,7 @@ var Progress = React34.forwardRef(({
|
|
|
6735
6226
|
const r = (CIRCULAR_VIEWBOX - strokeWidth) / 2;
|
|
6736
6227
|
const circumference = 2 * Math.PI * r;
|
|
6737
6228
|
const offset = circumference * (1 - percentage / 100);
|
|
6738
|
-
return /* @__PURE__ */
|
|
6229
|
+
return /* @__PURE__ */ React33.createElement(
|
|
6739
6230
|
"div",
|
|
6740
6231
|
{
|
|
6741
6232
|
className: cn("inline-flex items-center gap-2", className),
|
|
@@ -6745,7 +6236,7 @@ var Progress = React34.forwardRef(({
|
|
|
6745
6236
|
"aria-valuemax": max,
|
|
6746
6237
|
"aria-label": label
|
|
6747
6238
|
},
|
|
6748
|
-
/* @__PURE__ */
|
|
6239
|
+
/* @__PURE__ */ React33.createElement("div", { className: "relative", style: { width: diameter, height: diameter } }, /* @__PURE__ */ React33.createElement(
|
|
6749
6240
|
"svg",
|
|
6750
6241
|
{
|
|
6751
6242
|
viewBox: `0 0 ${CIRCULAR_VIEWBOX} ${CIRCULAR_VIEWBOX}`,
|
|
@@ -6753,7 +6244,7 @@ var Progress = React34.forwardRef(({
|
|
|
6753
6244
|
width: diameter,
|
|
6754
6245
|
height: diameter
|
|
6755
6246
|
},
|
|
6756
|
-
/* @__PURE__ */
|
|
6247
|
+
/* @__PURE__ */ React33.createElement(
|
|
6757
6248
|
"circle",
|
|
6758
6249
|
{
|
|
6759
6250
|
cx: CIRCULAR_CENTER,
|
|
@@ -6764,7 +6255,7 @@ var Progress = React34.forwardRef(({
|
|
|
6764
6255
|
strokeWidth
|
|
6765
6256
|
}
|
|
6766
6257
|
),
|
|
6767
|
-
/* @__PURE__ */
|
|
6258
|
+
/* @__PURE__ */ React33.createElement(
|
|
6768
6259
|
"circle",
|
|
6769
6260
|
{
|
|
6770
6261
|
cx: CIRCULAR_CENTER,
|
|
@@ -6778,14 +6269,14 @@ var Progress = React34.forwardRef(({
|
|
|
6778
6269
|
strokeLinecap: "round"
|
|
6779
6270
|
}
|
|
6780
6271
|
)
|
|
6781
|
-
), showValue && resolvedSize !== "sm" && /* @__PURE__ */
|
|
6272
|
+
), showValue && resolvedSize !== "sm" && /* @__PURE__ */ React33.createElement("div", { className: cn(
|
|
6782
6273
|
"absolute inset-0 flex items-center justify-center font-semibold font-mono tabular-nums text-foreground",
|
|
6783
6274
|
CIRCULAR_FONT_SIZES[resolvedSize]
|
|
6784
6275
|
) }, valueLabel))
|
|
6785
6276
|
);
|
|
6786
6277
|
}
|
|
6787
6278
|
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)]" : "";
|
|
6788
|
-
return /* @__PURE__ */
|
|
6279
|
+
return /* @__PURE__ */ React33.createElement("div", { className: cn("flex items-center gap-3", showValue && "w-full", className) }, /* @__PURE__ */ React33.createElement(
|
|
6789
6280
|
ProgressPrimitive.Root,
|
|
6790
6281
|
{
|
|
6791
6282
|
ref,
|
|
@@ -6795,7 +6286,7 @@ var Progress = React34.forwardRef(({
|
|
|
6795
6286
|
"aria-label": label,
|
|
6796
6287
|
...props
|
|
6797
6288
|
},
|
|
6798
|
-
/* @__PURE__ */
|
|
6289
|
+
/* @__PURE__ */ React33.createElement(
|
|
6799
6290
|
ProgressPrimitive.Indicator,
|
|
6800
6291
|
{
|
|
6801
6292
|
className: cn(
|
|
@@ -6807,7 +6298,7 @@ var Progress = React34.forwardRef(({
|
|
|
6807
6298
|
style: { width: `${percentage}%` }
|
|
6808
6299
|
}
|
|
6809
6300
|
)
|
|
6810
|
-
), showValue && /* @__PURE__ */
|
|
6301
|
+
), showValue && /* @__PURE__ */ React33.createElement("span", { className: cn(
|
|
6811
6302
|
"shrink-0 font-semibold font-mono tabular-nums text-foreground",
|
|
6812
6303
|
valueFontSizes[resolvedSize]
|
|
6813
6304
|
) }, valueLabel));
|
|
@@ -6815,7 +6306,7 @@ var Progress = React34.forwardRef(({
|
|
|
6815
6306
|
Progress.displayName = "Progress";
|
|
6816
6307
|
|
|
6817
6308
|
// src/components/ui/spinner.tsx
|
|
6818
|
-
import * as
|
|
6309
|
+
import * as React34 from "react";
|
|
6819
6310
|
import { cva as cva29 } from "class-variance-authority";
|
|
6820
6311
|
var RING_SIZES = {
|
|
6821
6312
|
sm: 16,
|
|
@@ -6893,7 +6384,7 @@ var spinnerVariants = cva29(
|
|
|
6893
6384
|
}
|
|
6894
6385
|
}
|
|
6895
6386
|
);
|
|
6896
|
-
var Spinner =
|
|
6387
|
+
var Spinner = React34.forwardRef(
|
|
6897
6388
|
({
|
|
6898
6389
|
className,
|
|
6899
6390
|
variant = "ring",
|
|
@@ -6912,7 +6403,7 @@ var Spinner = React35.forwardRef(
|
|
|
6912
6403
|
flip: OrbitFlipSpinner,
|
|
6913
6404
|
morph: OrbitMorphSpinner
|
|
6914
6405
|
};
|
|
6915
|
-
return /* @__PURE__ */
|
|
6406
|
+
return /* @__PURE__ */ React34.createElement(
|
|
6916
6407
|
"div",
|
|
6917
6408
|
{
|
|
6918
6409
|
ref,
|
|
@@ -6921,12 +6412,12 @@ var Spinner = React35.forwardRef(
|
|
|
6921
6412
|
className: cn(spinnerVariants({ size }), className),
|
|
6922
6413
|
...props
|
|
6923
6414
|
},
|
|
6924
|
-
variant === "ring" && /* @__PURE__ */
|
|
6925
|
-
variant === "dots" && /* @__PURE__ */
|
|
6926
|
-
variant === "bars" && /* @__PURE__ */
|
|
6415
|
+
variant === "ring" && /* @__PURE__ */ React34.createElement(RingSpinner, { size: resolvedSize, color, speed }),
|
|
6416
|
+
variant === "dots" && /* @__PURE__ */ React34.createElement(DotsSpinner, { size: resolvedSize, color, speed }),
|
|
6417
|
+
variant === "bars" && /* @__PURE__ */ React34.createElement(BarsSpinner, { size: resolvedSize, color, speed }),
|
|
6927
6418
|
variant === "orbit" && (() => {
|
|
6928
6419
|
const OrbitComponent = orbitMap[orbitStyle];
|
|
6929
|
-
return /* @__PURE__ */
|
|
6420
|
+
return /* @__PURE__ */ React34.createElement(OrbitComponent, { size: resolvedSize, color, speed });
|
|
6930
6421
|
})()
|
|
6931
6422
|
);
|
|
6932
6423
|
}
|
|
@@ -6937,7 +6428,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6937
6428
|
const stroke = RING_STROKE[size];
|
|
6938
6429
|
const r = (RING_VIEWBOX - stroke) / 2;
|
|
6939
6430
|
const circumference = 2 * Math.PI * r;
|
|
6940
|
-
return /* @__PURE__ */
|
|
6431
|
+
return /* @__PURE__ */ React34.createElement(
|
|
6941
6432
|
"svg",
|
|
6942
6433
|
{
|
|
6943
6434
|
viewBox: `0 0 ${RING_VIEWBOX} ${RING_VIEWBOX}`,
|
|
@@ -6947,7 +6438,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6947
6438
|
className: "animate-spin",
|
|
6948
6439
|
style: { animationDuration: `${SPEED_MS[speed]}ms` }
|
|
6949
6440
|
},
|
|
6950
|
-
/* @__PURE__ */
|
|
6441
|
+
/* @__PURE__ */ React34.createElement(
|
|
6951
6442
|
"circle",
|
|
6952
6443
|
{
|
|
6953
6444
|
cx: RING_CENTER,
|
|
@@ -6957,7 +6448,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6957
6448
|
strokeWidth: stroke
|
|
6958
6449
|
}
|
|
6959
6450
|
),
|
|
6960
|
-
/* @__PURE__ */
|
|
6451
|
+
/* @__PURE__ */ React34.createElement(
|
|
6961
6452
|
"circle",
|
|
6962
6453
|
{
|
|
6963
6454
|
cx: RING_CENTER,
|
|
@@ -6975,7 +6466,7 @@ function RingSpinner({ size, color, speed }) {
|
|
|
6975
6466
|
function DotsSpinner({ size, color, speed }) {
|
|
6976
6467
|
const dotSize = DOT_SIZES[size];
|
|
6977
6468
|
const gap = DOT_GAP[size];
|
|
6978
|
-
return /* @__PURE__ */
|
|
6469
|
+
return /* @__PURE__ */ React34.createElement("div", { className: "inline-flex items-center", style: { gap } }, Array.from({ length: DOT_COUNT }, (_, i) => /* @__PURE__ */ React34.createElement(
|
|
6979
6470
|
"div",
|
|
6980
6471
|
{
|
|
6981
6472
|
key: i,
|
|
@@ -6996,7 +6487,7 @@ function BarsSpinner({ size, color, speed }) {
|
|
|
6996
6487
|
const barWidth = BAR_WIDTHS[size];
|
|
6997
6488
|
const barHeight = BAR_HEIGHTS[size];
|
|
6998
6489
|
const gap = BAR_GAP[size];
|
|
6999
|
-
return /* @__PURE__ */
|
|
6490
|
+
return /* @__PURE__ */ React34.createElement("div", { className: "inline-flex items-center", style: { gap, height: barHeight } }, Array.from({ length: BAR_COUNT }, (_, i) => /* @__PURE__ */ React34.createElement(
|
|
7000
6491
|
"div",
|
|
7001
6492
|
{
|
|
7002
6493
|
key: i,
|
|
@@ -7022,7 +6513,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7022
6513
|
const diameter = ORBIT_SIZES[size];
|
|
7023
6514
|
const stroke = ORBIT_STROKE[size];
|
|
7024
6515
|
const r = (RING_VIEWBOX - stroke * 2) / 2;
|
|
7025
|
-
return /* @__PURE__ */
|
|
6516
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7026
6517
|
"div",
|
|
7027
6518
|
{
|
|
7028
6519
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7033,7 +6524,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7033
6524
|
position: "relative"
|
|
7034
6525
|
}
|
|
7035
6526
|
},
|
|
7036
|
-
/* @__PURE__ */
|
|
6527
|
+
/* @__PURE__ */ React34.createElement(
|
|
7037
6528
|
"svg",
|
|
7038
6529
|
{
|
|
7039
6530
|
viewBox: `0 0 ${RING_VIEWBOX} ${RING_VIEWBOX}`,
|
|
@@ -7043,7 +6534,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7043
6534
|
className: "absolute inset-0 animate-spinner-orbit",
|
|
7044
6535
|
style: { animationDuration: `${ORBIT_SPEED_MS[speed]}ms` }
|
|
7045
6536
|
},
|
|
7046
|
-
/* @__PURE__ */
|
|
6537
|
+
/* @__PURE__ */ React34.createElement(
|
|
7047
6538
|
"circle",
|
|
7048
6539
|
{
|
|
7049
6540
|
cx: RING_CENTER,
|
|
@@ -7054,7 +6545,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7054
6545
|
}
|
|
7055
6546
|
)
|
|
7056
6547
|
),
|
|
7057
|
-
/* @__PURE__ */
|
|
6548
|
+
/* @__PURE__ */ React34.createElement(
|
|
7058
6549
|
"svg",
|
|
7059
6550
|
{
|
|
7060
6551
|
viewBox: `0 0 ${RING_VIEWBOX} ${RING_VIEWBOX}`,
|
|
@@ -7070,7 +6561,7 @@ function OrbitSpinner({ size, color, speed }) {
|
|
|
7070
6561
|
opacity: 0.35
|
|
7071
6562
|
}
|
|
7072
6563
|
},
|
|
7073
|
-
/* @__PURE__ */
|
|
6564
|
+
/* @__PURE__ */ React34.createElement(
|
|
7074
6565
|
"circle",
|
|
7075
6566
|
{
|
|
7076
6567
|
cx: RING_CENTER,
|
|
@@ -7088,7 +6579,7 @@ function OrbitDotsSpinner({ size, color, speed }) {
|
|
|
7088
6579
|
const diameter = ORBIT_SIZES[size];
|
|
7089
6580
|
const dotSize = ORBIT_DOT_SIZE[size];
|
|
7090
6581
|
const orbitRadius = (diameter - dotSize) / 2;
|
|
7091
|
-
return /* @__PURE__ */
|
|
6582
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7092
6583
|
"div",
|
|
7093
6584
|
{
|
|
7094
6585
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7099,7 +6590,7 @@ function OrbitDotsSpinner({ size, color, speed }) {
|
|
|
7099
6590
|
position: "relative"
|
|
7100
6591
|
}
|
|
7101
6592
|
},
|
|
7102
|
-
/* @__PURE__ */
|
|
6593
|
+
/* @__PURE__ */ React34.createElement(
|
|
7103
6594
|
"div",
|
|
7104
6595
|
{
|
|
7105
6596
|
className: "animate-spinner-orbit",
|
|
@@ -7111,7 +6602,7 @@ function OrbitDotsSpinner({ size, color, speed }) {
|
|
|
7111
6602
|
transformStyle: "preserve-3d"
|
|
7112
6603
|
}
|
|
7113
6604
|
},
|
|
7114
|
-
[0, 120, 240].map((angle) => /* @__PURE__ */
|
|
6605
|
+
[0, 120, 240].map((angle) => /* @__PURE__ */ React34.createElement(
|
|
7115
6606
|
"div",
|
|
7116
6607
|
{
|
|
7117
6608
|
key: angle,
|
|
@@ -7144,7 +6635,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7144
6635
|
top: -overlap,
|
|
7145
6636
|
left: -overlap
|
|
7146
6637
|
};
|
|
7147
|
-
return /* @__PURE__ */
|
|
6638
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7148
6639
|
"div",
|
|
7149
6640
|
{
|
|
7150
6641
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7154,7 +6645,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7154
6645
|
perspective: cubeSize * 6
|
|
7155
6646
|
}
|
|
7156
6647
|
},
|
|
7157
|
-
/* @__PURE__ */
|
|
6648
|
+
/* @__PURE__ */ React34.createElement(
|
|
7158
6649
|
"div",
|
|
7159
6650
|
{
|
|
7160
6651
|
style: {
|
|
@@ -7164,7 +6655,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7164
6655
|
transformStyle: "preserve-3d"
|
|
7165
6656
|
}
|
|
7166
6657
|
},
|
|
7167
|
-
/* @__PURE__ */
|
|
6658
|
+
/* @__PURE__ */ React34.createElement(
|
|
7168
6659
|
"div",
|
|
7169
6660
|
{
|
|
7170
6661
|
className: "animate-spinner-orbit",
|
|
@@ -7176,12 +6667,12 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7176
6667
|
transformStyle: "preserve-3d"
|
|
7177
6668
|
}
|
|
7178
6669
|
},
|
|
7179
|
-
/* @__PURE__ */
|
|
7180
|
-
/* @__PURE__ */
|
|
7181
|
-
/* @__PURE__ */
|
|
7182
|
-
/* @__PURE__ */
|
|
7183
|
-
/* @__PURE__ */
|
|
7184
|
-
/* @__PURE__ */
|
|
6670
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `translateZ(${half}px)`, opacity: 0.25 } }),
|
|
6671
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `translateZ(${-half}px)`, opacity: 0.1 } }),
|
|
6672
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateY(-90deg) translateZ(${half}px)`, opacity: 0.2 } }),
|
|
6673
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateY(90deg) translateZ(${half}px)`, opacity: 0.2 } }),
|
|
6674
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateX(90deg) translateZ(${half}px)`, opacity: 0.15 } }),
|
|
6675
|
+
/* @__PURE__ */ React34.createElement("div", { style: { ...faceBase, transform: `rotateX(-90deg) translateZ(${half}px)`, opacity: 0.08 } })
|
|
7185
6676
|
)
|
|
7186
6677
|
)
|
|
7187
6678
|
);
|
|
@@ -7189,7 +6680,7 @@ function OrbitCubeSpinner({ size, color, speed }) {
|
|
|
7189
6680
|
var FLIP_SIZES = { sm: 14, default: 20, lg: 28 };
|
|
7190
6681
|
function OrbitFlipSpinner({ size, color, speed }) {
|
|
7191
6682
|
const sqSize = FLIP_SIZES[size];
|
|
7192
|
-
return /* @__PURE__ */
|
|
6683
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7193
6684
|
"div",
|
|
7194
6685
|
{
|
|
7195
6686
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7199,7 +6690,7 @@ function OrbitFlipSpinner({ size, color, speed }) {
|
|
|
7199
6690
|
perspective: sqSize * 4
|
|
7200
6691
|
}
|
|
7201
6692
|
},
|
|
7202
|
-
/* @__PURE__ */
|
|
6693
|
+
/* @__PURE__ */ React34.createElement("div", { style: { transform: "rotateX(25deg)", transformStyle: "preserve-3d", width: "100%", height: "100%" } }, /* @__PURE__ */ React34.createElement(
|
|
7203
6694
|
"div",
|
|
7204
6695
|
{
|
|
7205
6696
|
className: "animate-spinner-orbit",
|
|
@@ -7218,7 +6709,7 @@ function OrbitFlipSpinner({ size, color, speed }) {
|
|
|
7218
6709
|
var MORPH_SIZES = { sm: 16, default: 24, lg: 34 };
|
|
7219
6710
|
function OrbitMorphSpinner({ size, color, speed }) {
|
|
7220
6711
|
const morphSize = MORPH_SIZES[size];
|
|
7221
|
-
return /* @__PURE__ */
|
|
6712
|
+
return /* @__PURE__ */ React34.createElement(
|
|
7222
6713
|
"div",
|
|
7223
6714
|
{
|
|
7224
6715
|
className: cn(orbitTextColorMap[color]),
|
|
@@ -7228,7 +6719,7 @@ function OrbitMorphSpinner({ size, color, speed }) {
|
|
|
7228
6719
|
perspective: morphSize * 3
|
|
7229
6720
|
}
|
|
7230
6721
|
},
|
|
7231
|
-
/* @__PURE__ */
|
|
6722
|
+
/* @__PURE__ */ React34.createElement(
|
|
7232
6723
|
"div",
|
|
7233
6724
|
{
|
|
7234
6725
|
className: "animate-spinner-morph",
|
|
@@ -7245,7 +6736,7 @@ function OrbitMorphSpinner({ size, color, speed }) {
|
|
|
7245
6736
|
}
|
|
7246
6737
|
|
|
7247
6738
|
// src/components/ui/skeleton.tsx
|
|
7248
|
-
import * as
|
|
6739
|
+
import * as React35 from "react";
|
|
7249
6740
|
import { cva as cva30 } from "class-variance-authority";
|
|
7250
6741
|
var PULSE_DURATION_MS = 2e3;
|
|
7251
6742
|
var WAVE_DURATION_MS = 1800;
|
|
@@ -7272,7 +6763,7 @@ var skeletonVariants = cva30(
|
|
|
7272
6763
|
}
|
|
7273
6764
|
}
|
|
7274
6765
|
);
|
|
7275
|
-
var SkeletonBlock =
|
|
6766
|
+
var SkeletonBlock = React35.forwardRef(
|
|
7276
6767
|
({
|
|
7277
6768
|
className,
|
|
7278
6769
|
variant = "text",
|
|
@@ -7283,7 +6774,7 @@ var SkeletonBlock = React36.forwardRef(
|
|
|
7283
6774
|
style,
|
|
7284
6775
|
...props
|
|
7285
6776
|
}, ref) => {
|
|
7286
|
-
return /* @__PURE__ */
|
|
6777
|
+
return /* @__PURE__ */ React35.createElement(
|
|
7287
6778
|
"div",
|
|
7288
6779
|
{
|
|
7289
6780
|
ref,
|
|
@@ -7303,7 +6794,7 @@ var SkeletonBlock = React36.forwardRef(
|
|
|
7303
6794
|
},
|
|
7304
6795
|
...props
|
|
7305
6796
|
},
|
|
7306
|
-
animation === "wave" && /* @__PURE__ */
|
|
6797
|
+
animation === "wave" && /* @__PURE__ */ React35.createElement(
|
|
7307
6798
|
"div",
|
|
7308
6799
|
{
|
|
7309
6800
|
className: "absolute inset-0 animate-skeleton-wave",
|
|
@@ -7317,7 +6808,7 @@ var SkeletonBlock = React36.forwardRef(
|
|
|
7317
6808
|
}
|
|
7318
6809
|
);
|
|
7319
6810
|
SkeletonBlock.displayName = "SkeletonBlock";
|
|
7320
|
-
var Skeleton =
|
|
6811
|
+
var Skeleton = React35.forwardRef(
|
|
7321
6812
|
({
|
|
7322
6813
|
count,
|
|
7323
6814
|
loading,
|
|
@@ -7326,13 +6817,13 @@ var Skeleton = React36.forwardRef(
|
|
|
7326
6817
|
...rest
|
|
7327
6818
|
}, ref) => {
|
|
7328
6819
|
if (loading !== void 0) {
|
|
7329
|
-
if (!loading) return /* @__PURE__ */
|
|
6820
|
+
if (!loading) return /* @__PURE__ */ React35.createElement(React35.Fragment, null, children);
|
|
7330
6821
|
}
|
|
7331
6822
|
if (count != null && count > 1 && variant === "text") {
|
|
7332
|
-
return /* @__PURE__ */
|
|
6823
|
+
return /* @__PURE__ */ React35.createElement("div", { ref, className: "space-y-2.5", "aria-hidden": "true" }, Array.from({ length: count }, (_, i) => {
|
|
7333
6824
|
const widthPattern = MULTI_LINE_WIDTHS[i % MULTI_LINE_WIDTHS.length];
|
|
7334
6825
|
const isLast = i === count - 1;
|
|
7335
|
-
return /* @__PURE__ */
|
|
6826
|
+
return /* @__PURE__ */ React35.createElement(
|
|
7336
6827
|
SkeletonBlock,
|
|
7337
6828
|
{
|
|
7338
6829
|
key: i,
|
|
@@ -7343,7 +6834,7 @@ var Skeleton = React36.forwardRef(
|
|
|
7343
6834
|
);
|
|
7344
6835
|
}));
|
|
7345
6836
|
}
|
|
7346
|
-
return /* @__PURE__ */
|
|
6837
|
+
return /* @__PURE__ */ React35.createElement(SkeletonBlock, { ref, variant, ...rest });
|
|
7347
6838
|
}
|
|
7348
6839
|
);
|
|
7349
6840
|
Skeleton.displayName = "Skeleton";
|
|
@@ -7390,19 +6881,6 @@ export {
|
|
|
7390
6881
|
CardHeader,
|
|
7391
6882
|
CardImage,
|
|
7392
6883
|
CardTitle,
|
|
7393
|
-
Chart,
|
|
7394
|
-
ChartArea,
|
|
7395
|
-
ChartBar,
|
|
7396
|
-
ChartContainer,
|
|
7397
|
-
ChartLegend,
|
|
7398
|
-
ChartLegendContent,
|
|
7399
|
-
ChartLine,
|
|
7400
|
-
ChartPie,
|
|
7401
|
-
ChartStyle,
|
|
7402
|
-
ChartTooltip,
|
|
7403
|
-
ChartTooltipContent,
|
|
7404
|
-
ChartXAxis,
|
|
7405
|
-
ChartYAxis,
|
|
7406
6884
|
Checkbox,
|
|
7407
6885
|
Divider,
|
|
7408
6886
|
Drawer,
|
|
@@ -7516,7 +6994,7 @@ export {
|
|
|
7516
6994
|
Toggle,
|
|
7517
6995
|
ToggleGroup,
|
|
7518
6996
|
ToggleGroupItem,
|
|
7519
|
-
|
|
6997
|
+
Tooltip,
|
|
7520
6998
|
TooltipArrow,
|
|
7521
6999
|
TooltipContent,
|
|
7522
7000
|
TooltipPortal,
|
|
@@ -7566,7 +7044,6 @@ export {
|
|
|
7566
7044
|
toggleVariants,
|
|
7567
7045
|
tooltipContentVariants,
|
|
7568
7046
|
useButtonGroup,
|
|
7569
|
-
useChart,
|
|
7570
7047
|
useFieldContext,
|
|
7571
7048
|
usePagination
|
|
7572
7049
|
};
|