@betfin/ui 0.1.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/dist/chunk-3CAXHUAL.js +23 -0
- package/dist/chunk-3CAXHUAL.js.map +1 -0
- package/dist/chunk-3YCD2QLS.js +113 -0
- package/dist/chunk-3YCD2QLS.js.map +1 -0
- package/dist/chunk-5CXIFF6J.js +46 -0
- package/dist/chunk-5CXIFF6J.js.map +1 -0
- package/dist/chunk-EP6DYU4N.js +26 -0
- package/dist/chunk-EP6DYU4N.js.map +1 -0
- package/dist/chunk-FHYW2QBY.js +21 -0
- package/dist/chunk-FHYW2QBY.js.map +1 -0
- package/dist/chunk-HRFMTZ55.js +49 -0
- package/dist/chunk-HRFMTZ55.js.map +1 -0
- package/dist/chunk-ILNHKDYA.js +107 -0
- package/dist/chunk-ILNHKDYA.js.map +1 -0
- package/dist/chunk-JTVU6ANA.js +37 -0
- package/dist/chunk-JTVU6ANA.js.map +1 -0
- package/dist/chunk-K7JWN6NH.js +21 -0
- package/dist/chunk-K7JWN6NH.js.map +1 -0
- package/dist/chunk-QZIKXMHP.js +131 -0
- package/dist/chunk-QZIKXMHP.js.map +1 -0
- package/dist/chunk-SSC2M625.js +24 -0
- package/dist/chunk-SSC2M625.js.map +1 -0
- package/dist/chunk-TLULUIYC.js +14 -0
- package/dist/chunk-TLULUIYC.js.map +1 -0
- package/dist/chunk-VJ6P5FFS.js +90 -0
- package/dist/chunk-VJ6P5FFS.js.map +1 -0
- package/dist/chunk-Y2TKUANL.js +11 -0
- package/dist/chunk-Y2TKUANL.js.map +1 -0
- package/dist/components/accordion.d.ts +6 -0
- package/dist/components/accordion.js +59 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +18 -0
- package/dist/components/alert-dialog.js +144 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/app-header.d.ts +19 -0
- package/dist/components/app-header.js +17 -0
- package/dist/components/app-header.js.map +1 -0
- package/dist/components/badge.d.ts +7 -0
- package/dist/components/badge.js +47 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/bet-value.d.ts +49 -0
- package/dist/components/bet-value.js +12 -0
- package/dist/components/bet-value.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +10 -0
- package/dist/components/breadcrumb.js +65 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button.d.ts +8 -0
- package/dist/components/button.js +10 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.d.ts +10 -0
- package/dist/components/calendar.js +145 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/carousel.d.ts +28 -0
- package/dist/components/carousel.js +153 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.d.ts +39 -0
- package/dist/components/chart.js +219 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.d.ts +3 -0
- package/dist/components/checkbox.js +26 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.d.ts +5 -0
- package/dist/components/collapsible.js +20 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/command.d.ts +19 -0
- package/dist/components/command.js +130 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.d.ts +29 -0
- package/dist/components/context-menu.js +186 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.d.ts +17 -0
- package/dist/components/dialog.js +28 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.d.ts +16 -0
- package/dist/components/drawer.js +164 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +29 -0
- package/dist/components/dropdown-menu.js +207 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/input-group.d.ts +18 -0
- package/dist/components/input-group.js +22 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input.d.ts +3 -0
- package/dist/components/input.js +8 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/loading.d.ts +9 -0
- package/dist/components/loading.js +26 -0
- package/dist/components/loading.js.map +1 -0
- package/dist/components/member-profile.d.ts +79 -0
- package/dist/components/member-profile.js +342 -0
- package/dist/components/member-profile.js.map +1 -0
- package/dist/components/popover.d.ts +9 -0
- package/dist/components/popover.js +52 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.d.ts +7 -0
- package/dist/components/progress.js +40 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.d.ts +5 -0
- package/dist/components/radio-group.js +31 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/scroll-area.d.ts +4 -0
- package/dist/components/scroll-area.js +42 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.d.ts +15 -0
- package/dist/components/select.js +136 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.d.ts +3 -0
- package/dist/components/separator.js +8 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.d.ts +14 -0
- package/dist/components/sheet.js +23 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.d.ts +63 -0
- package/dist/components/sidebar.js +536 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.d.ts +2 -0
- package/dist/components/skeleton.js +8 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.d.ts +3 -0
- package/dist/components/slider.js +45 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/sonner.d.ts +3 -0
- package/dist/components/sonner.js +39 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/switch.d.ts +5 -0
- package/dist/components/switch.js +36 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.d.ts +12 -0
- package/dist/components/table.js +56 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.d.ts +10 -0
- package/dist/components/tabs.js +63 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.d.ts +3 -0
- package/dist/components/textarea.js +8 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toggle-group.d.ts +11 -0
- package/dist/components/toggle-group.js +80 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.d.ts +8 -0
- package/dist/components/toggle.js +11 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/tooltip.d.ts +6 -0
- package/dist/components/tooltip.js +14 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-mobile.js +7 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/lib/date.d.ts +14 -0
- package/dist/lib/date.js +24 -0
- package/dist/lib/date.js.map +1 -0
- package/dist/lib/format.d.ts +16 -0
- package/dist/lib/format.js +9 -0
- package/dist/lib/format.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.js +7 -0
- package/dist/lib/utils.js.map +1 -0
- package/package.json +71 -0
- package/src/styles/globals.css +151 -0
- package/src/styles/theme.css +144 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as RechartsPrimitive from 'recharts';
|
|
3
|
+
declare const THEMES: {
|
|
4
|
+
readonly dark: '.dark';
|
|
5
|
+
};
|
|
6
|
+
export type ChartConfig = {
|
|
7
|
+
[k in string]: {
|
|
8
|
+
label?: React.ReactNode;
|
|
9
|
+
icon?: React.ComponentType;
|
|
10
|
+
} & ({
|
|
11
|
+
color?: string;
|
|
12
|
+
theme?: never;
|
|
13
|
+
} | {
|
|
14
|
+
color?: never;
|
|
15
|
+
theme: Record<keyof typeof THEMES, string>;
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
declare function ChartContainer({ id, className, children, config, ...props }: React.ComponentProps<'div'> & {
|
|
19
|
+
config: ChartConfig;
|
|
20
|
+
children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];
|
|
21
|
+
}): React.JSX.Element;
|
|
22
|
+
declare function ChartStyle({ id, config }: {
|
|
23
|
+
id: string;
|
|
24
|
+
config: ChartConfig;
|
|
25
|
+
}): React.JSX.Element | null;
|
|
26
|
+
declare const ChartTooltip: typeof RechartsPrimitive.Tooltip;
|
|
27
|
+
declare function ChartTooltipContent({ active, payload, className, indicator, hideLabel, hideIndicator, label, labelFormatter, labelClassName, formatter, color, nameKey, labelKey, }: React.ComponentProps<typeof RechartsPrimitive.Tooltip> & React.ComponentProps<'div'> & {
|
|
28
|
+
hideLabel?: boolean;
|
|
29
|
+
hideIndicator?: boolean;
|
|
30
|
+
indicator?: 'line' | 'dot' | 'dashed';
|
|
31
|
+
nameKey?: string;
|
|
32
|
+
labelKey?: string;
|
|
33
|
+
}): React.JSX.Element | null;
|
|
34
|
+
declare const ChartLegend: typeof RechartsPrimitive.Legend;
|
|
35
|
+
declare function ChartLegendContent({ className, hideIcon, payload, verticalAlign, nameKey, }: React.ComponentProps<'div'> & Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {
|
|
36
|
+
hideIcon?: boolean;
|
|
37
|
+
nameKey?: string;
|
|
38
|
+
}): React.JSX.Element | null;
|
|
39
|
+
export { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "../chunk-Y2TKUANL.js";
|
|
5
|
+
|
|
6
|
+
// src/components/chart.tsx
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
import * as RechartsPrimitive from "recharts";
|
|
9
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
10
|
+
var THEMES = { dark: ".dark" };
|
|
11
|
+
var ChartContext = React.createContext(null);
|
|
12
|
+
function useChart() {
|
|
13
|
+
const context = React.use(ChartContext);
|
|
14
|
+
if (!context) {
|
|
15
|
+
throw new Error("useChart must be used within a <ChartContainer />");
|
|
16
|
+
}
|
|
17
|
+
return context;
|
|
18
|
+
}
|
|
19
|
+
function ChartContainer({
|
|
20
|
+
id,
|
|
21
|
+
className,
|
|
22
|
+
children,
|
|
23
|
+
config,
|
|
24
|
+
...props
|
|
25
|
+
}) {
|
|
26
|
+
const uniqueId = React.useId();
|
|
27
|
+
const chartId = `chart-${id || uniqueId.replace(/:/g, "")}`;
|
|
28
|
+
const contextValue = React.useMemo(() => ({ config }), [config]);
|
|
29
|
+
return /* @__PURE__ */ jsx(ChartContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxs(
|
|
30
|
+
"div",
|
|
31
|
+
{
|
|
32
|
+
"data-slot": "chart",
|
|
33
|
+
"data-chart": chartId,
|
|
34
|
+
className: cn(
|
|
35
|
+
"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden",
|
|
36
|
+
className
|
|
37
|
+
),
|
|
38
|
+
...props,
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ jsx(ChartStyle, { id: chartId, config }),
|
|
41
|
+
/* @__PURE__ */ jsx(RechartsPrimitive.ResponsiveContainer, { children })
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
) });
|
|
45
|
+
}
|
|
46
|
+
function ChartStyle({ id, config }) {
|
|
47
|
+
const colorConfig = Object.entries(config).filter(([, cfg]) => cfg.theme || cfg.color);
|
|
48
|
+
if (!colorConfig.length) {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
"style",
|
|
53
|
+
{
|
|
54
|
+
dangerouslySetInnerHTML: {
|
|
55
|
+
__html: Object.entries(THEMES).map(
|
|
56
|
+
([theme, prefix]) => `
|
|
57
|
+
${prefix} [data-chart=${id}] {
|
|
58
|
+
${colorConfig.map(([key, itemConfig]) => {
|
|
59
|
+
const color = itemConfig.theme?.[theme] || itemConfig.color;
|
|
60
|
+
return color ? ` --color-${key}: ${color};` : null;
|
|
61
|
+
}).join("\n")}
|
|
62
|
+
}
|
|
63
|
+
`
|
|
64
|
+
).join("\n")
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
var ChartTooltip = RechartsPrimitive.Tooltip;
|
|
70
|
+
var ChartTooltipLabel = React.memo(function ChartTooltipLabel2({
|
|
71
|
+
hideLabel,
|
|
72
|
+
payload,
|
|
73
|
+
label,
|
|
74
|
+
labelFormatter,
|
|
75
|
+
labelClassName,
|
|
76
|
+
labelKey,
|
|
77
|
+
config
|
|
78
|
+
}) {
|
|
79
|
+
if (hideLabel || !payload?.length) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
const [item] = payload;
|
|
83
|
+
const key = `${labelKey || item?.dataKey || item?.name || "value"}`;
|
|
84
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
85
|
+
const value = !labelKey && typeof label === "string" ? config[label]?.label || label : itemConfig?.label;
|
|
86
|
+
if (labelFormatter) {
|
|
87
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: labelFormatter(value, payload) });
|
|
88
|
+
}
|
|
89
|
+
if (!value) {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
return /* @__PURE__ */ jsx("div", { className: cn("font-medium", labelClassName), children: value });
|
|
93
|
+
});
|
|
94
|
+
function ChartTooltipContent({
|
|
95
|
+
active,
|
|
96
|
+
payload,
|
|
97
|
+
className,
|
|
98
|
+
indicator = "dot",
|
|
99
|
+
hideLabel = false,
|
|
100
|
+
hideIndicator = false,
|
|
101
|
+
label,
|
|
102
|
+
labelFormatter,
|
|
103
|
+
labelClassName,
|
|
104
|
+
formatter,
|
|
105
|
+
color,
|
|
106
|
+
nameKey,
|
|
107
|
+
labelKey
|
|
108
|
+
}) {
|
|
109
|
+
const { config } = useChart();
|
|
110
|
+
if (!active || !payload?.length) {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
const nestLabel = payload.length === 1 && indicator !== "dot";
|
|
114
|
+
const tooltipLabel = /* @__PURE__ */ jsx(
|
|
115
|
+
ChartTooltipLabel,
|
|
116
|
+
{
|
|
117
|
+
hideLabel,
|
|
118
|
+
payload,
|
|
119
|
+
label,
|
|
120
|
+
labelFormatter,
|
|
121
|
+
labelClassName,
|
|
122
|
+
labelKey,
|
|
123
|
+
config
|
|
124
|
+
}
|
|
125
|
+
);
|
|
126
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl", className), children: [
|
|
127
|
+
!nestLabel ? tooltipLabel : null,
|
|
128
|
+
/* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: payload.map((item, index) => {
|
|
129
|
+
const key = `${nameKey || item.name || item.dataKey || "value"}`;
|
|
130
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
131
|
+
const indicatorColor = color || item.payload?.fill || item.color;
|
|
132
|
+
return /* @__PURE__ */ jsx(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
"flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
|
|
137
|
+
indicator === "dot" && "items-center"
|
|
138
|
+
),
|
|
139
|
+
children: formatter && item?.value !== void 0 && item.name ? formatter(item.value, item.name, item, index, item.payload) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
140
|
+
itemConfig?.icon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : !hideIndicator && /* @__PURE__ */ jsx(
|
|
141
|
+
"div",
|
|
142
|
+
{
|
|
143
|
+
className: cn("shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)", {
|
|
144
|
+
"h-2.5 w-2.5": indicator === "dot",
|
|
145
|
+
"w-1": indicator === "line",
|
|
146
|
+
"w-0 border-[1.5px] border-dashed bg-transparent": indicator === "dashed",
|
|
147
|
+
"my-0.5": nestLabel && indicator === "dashed"
|
|
148
|
+
}),
|
|
149
|
+
style: {
|
|
150
|
+
"--color-bg": indicatorColor,
|
|
151
|
+
"--color-border": indicatorColor
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
),
|
|
155
|
+
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-1 justify-between leading-none", nestLabel ? "items-end" : "items-center"), children: [
|
|
156
|
+
/* @__PURE__ */ jsxs("div", { className: "grid gap-1.5", children: [
|
|
157
|
+
nestLabel ? tooltipLabel : null,
|
|
158
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: itemConfig?.label || item.name })
|
|
159
|
+
] }),
|
|
160
|
+
item.value !== void 0 && /* @__PURE__ */ jsx("span", { className: "font-medium font-mono text-foreground tabular-nums", children: item.value.toLocaleString() })
|
|
161
|
+
] })
|
|
162
|
+
] })
|
|
163
|
+
},
|
|
164
|
+
item.dataKey ?? index
|
|
165
|
+
);
|
|
166
|
+
}) })
|
|
167
|
+
] });
|
|
168
|
+
}
|
|
169
|
+
var ChartLegend = RechartsPrimitive.Legend;
|
|
170
|
+
function ChartLegendContent({
|
|
171
|
+
className,
|
|
172
|
+
hideIcon = false,
|
|
173
|
+
payload,
|
|
174
|
+
verticalAlign = "bottom",
|
|
175
|
+
nameKey
|
|
176
|
+
}) {
|
|
177
|
+
const { config } = useChart();
|
|
178
|
+
if (!payload?.length) {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center gap-4", verticalAlign === "top" ? "pb-3" : "pt-3", className), children: payload.map((item) => {
|
|
182
|
+
const key = `${nameKey || item.dataKey || "value"}`;
|
|
183
|
+
const itemConfig = getPayloadConfigFromPayload(config, item, key);
|
|
184
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground", children: [
|
|
185
|
+
itemConfig?.icon && !hideIcon ? /* @__PURE__ */ jsx(itemConfig.icon, {}) : /* @__PURE__ */ jsx(
|
|
186
|
+
"div",
|
|
187
|
+
{
|
|
188
|
+
className: "h-2 w-2 shrink-0 rounded-[2px]",
|
|
189
|
+
style: {
|
|
190
|
+
backgroundColor: item.color
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
),
|
|
194
|
+
itemConfig?.label
|
|
195
|
+
] }, item.value);
|
|
196
|
+
}) });
|
|
197
|
+
}
|
|
198
|
+
function getPayloadConfigFromPayload(config, payload, key) {
|
|
199
|
+
if (typeof payload !== "object" || payload === null) {
|
|
200
|
+
return void 0;
|
|
201
|
+
}
|
|
202
|
+
const payloadPayload = "payload" in payload && typeof payload.payload === "object" && payload.payload !== null ? payload.payload : void 0;
|
|
203
|
+
let configLabelKey = key;
|
|
204
|
+
if (key in payload && typeof payload[key] === "string") {
|
|
205
|
+
configLabelKey = payload[key];
|
|
206
|
+
} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key] === "string") {
|
|
207
|
+
configLabelKey = payloadPayload[key];
|
|
208
|
+
}
|
|
209
|
+
return configLabelKey in config ? config[configLabelKey] : config[key];
|
|
210
|
+
}
|
|
211
|
+
export {
|
|
212
|
+
ChartContainer,
|
|
213
|
+
ChartLegend,
|
|
214
|
+
ChartLegendContent,
|
|
215
|
+
ChartStyle,
|
|
216
|
+
ChartTooltip,
|
|
217
|
+
ChartTooltipContent
|
|
218
|
+
};
|
|
219
|
+
//# sourceMappingURL=chart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/chart.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@betfin/ui/lib/utils';\nimport * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\n// Format: { THEME_NAME: CSS_SELECTOR }. Dark-only app — single theme.\nconst THEMES = { dark: '.dark' } as const;\n\nexport type ChartConfig = {\n\t[k in string]: {\n\t\tlabel?: React.ReactNode;\n\t\ticon?: React.ComponentType;\n\t} & ({ color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> });\n};\n\ntype ChartContextProps = {\n\tconfig: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n\tconst context = React.use(ChartContext);\n\n\tif (!context) {\n\t\tthrow new Error('useChart must be used within a <ChartContainer />');\n\t}\n\n\treturn context;\n}\n\nfunction ChartContainer({\n\tid,\n\tclassName,\n\tchildren,\n\tconfig,\n\t...props\n}: React.ComponentProps<'div'> & {\n\tconfig: ChartConfig;\n\tchildren: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n}) {\n\tconst uniqueId = React.useId();\n\tconst chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\tconst contextValue = React.useMemo(() => ({ config }), [config]);\n\n\treturn (\n\t\t<ChartContext.Provider value={contextValue}>\n\t\t\t<div\n\t\t\t\tdata-slot=\"chart\"\n\t\t\t\tdata-chart={chartId}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector]:outline-hidden [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-surface]:outline-hidden\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<ChartStyle id={chartId} config={config} />\n\t\t\t\t<RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n\t\t\t</div>\n\t\t</ChartContext.Provider>\n\t);\n}\n\nfunction ChartStyle({ id, config }: { id: string; config: ChartConfig }) {\n\tconst colorConfig = Object.entries(config).filter(([, cfg]) => cfg.theme || cfg.color);\n\n\tif (!colorConfig.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<style\n\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t__html: Object.entries(THEMES)\n\t\t\t\t\t.map(\n\t\t\t\t\t\t([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n\t.map(([key, itemConfig]) => {\n\t\tconst color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n\t\treturn color ? ` --color-${key}: ${color};` : null;\n\t})\n\t.join('\\n')}\n}\n`,\n\t\t\t\t\t)\n\t\t\t\t\t.join('\\n'),\n\t\t\t}}\n\t\t/>\n\t);\n}\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\ntype ChartTooltipProps = React.ComponentProps<typeof RechartsPrimitive.Tooltip>;\n\n// Rendered after ChartTooltipContent's early return so the label work is skipped\n// on inactive/empty renders; memoized to keep the previous useMemo's benefit.\nconst ChartTooltipLabel = React.memo(function ChartTooltipLabel({\n\thideLabel,\n\tpayload,\n\tlabel,\n\tlabelFormatter,\n\tlabelClassName,\n\tlabelKey,\n\tconfig,\n}: Pick<ChartTooltipProps, 'payload' | 'label' | 'labelFormatter' | 'labelClassName'> & {\n\thideLabel: boolean;\n\tlabelKey?: string;\n\tconfig: ChartConfig;\n}) {\n\tif (hideLabel || !payload?.length) {\n\t\treturn null;\n\t}\n\n\tconst [item] = payload;\n\tconst key = `${labelKey || item?.dataKey || item?.name || 'value'}`;\n\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\tconst value = !labelKey && typeof label === 'string' ? config[label as keyof typeof config]?.label || label : itemConfig?.label;\n\n\tif (labelFormatter) {\n\t\treturn <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>;\n\t}\n\n\tif (!value) {\n\t\treturn null;\n\t}\n\n\treturn <div className={cn('font-medium', labelClassName)}>{value}</div>;\n});\n\nfunction ChartTooltipContent({\n\tactive,\n\tpayload,\n\tclassName,\n\tindicator = 'dot',\n\thideLabel = false,\n\thideIndicator = false,\n\tlabel,\n\tlabelFormatter,\n\tlabelClassName,\n\tformatter,\n\tcolor,\n\tnameKey,\n\tlabelKey,\n}: React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n\tReact.ComponentProps<'div'> & {\n\t\thideLabel?: boolean;\n\t\thideIndicator?: boolean;\n\t\tindicator?: 'line' | 'dot' | 'dashed';\n\t\tnameKey?: string;\n\t\tlabelKey?: string;\n\t}) {\n\tconst { config } = useChart();\n\n\tif (!active || !payload?.length) {\n\t\treturn null;\n\t}\n\n\tconst nestLabel = payload.length === 1 && indicator !== 'dot';\n\n\tconst tooltipLabel = (\n\t\t<ChartTooltipLabel\n\t\t\thideLabel={hideLabel}\n\t\t\tpayload={payload}\n\t\t\tlabel={label}\n\t\t\tlabelFormatter={labelFormatter}\n\t\t\tlabelClassName={labelClassName}\n\t\t\tlabelKey={labelKey}\n\t\t\tconfig={config}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div className={cn('grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl', className)}>\n\t\t\t{!nestLabel ? tooltipLabel : null}\n\t\t\t<div className=\"grid gap-1.5\">\n\t\t\t\t{payload.map((item, index) => {\n\t\t\t\t\tconst key = `${nameKey || item.name || item.dataKey || 'value'}`;\n\t\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\t\t\t\t\tconst indicatorColor = color || item.payload?.fill || item.color;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={item.dataKey ?? index}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n\t\t\t\t\t\t\t\tindicator === 'dot' && 'items-center',\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{formatter && item?.value !== undefined && item.name ? (\n\t\t\t\t\t\t\t\tformatter(item.value, item.name, item, index, item.payload)\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t{itemConfig?.icon ? (\n\t\t\t\t\t\t\t\t\t\t<itemConfig.icon />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t!hideIndicator && (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn('shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)', {\n\t\t\t\t\t\t\t\t\t\t\t\t\t'h-2.5 w-2.5': indicator === 'dot',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'w-1': indicator === 'line',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'w-0 border-[1.5px] border-dashed bg-transparent': indicator === 'dashed',\n\t\t\t\t\t\t\t\t\t\t\t\t\t'my-0.5': nestLabel && indicator === 'dashed',\n\t\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={\n\t\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-bg': indicatorColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'--color-border': indicatorColor,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} as React.CSSProperties\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<div className={cn('flex flex-1 justify-between leading-none', nestLabel ? 'items-end' : 'items-center')}>\n\t\t\t\t\t\t\t\t\t\t<div className=\"grid gap-1.5\">\n\t\t\t\t\t\t\t\t\t\t\t{nestLabel ? tooltipLabel : null}\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"text-muted-foreground\">{itemConfig?.label || item.name}</span>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{item.value !== undefined && <span className=\"font-medium font-mono text-foreground tabular-nums\">{item.value.toLocaleString()}</span>}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nfunction ChartLegendContent({\n\tclassName,\n\thideIcon = false,\n\tpayload,\n\tverticalAlign = 'bottom',\n\tnameKey,\n}: React.ComponentProps<'div'> &\n\tPick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n\t\thideIcon?: boolean;\n\t\tnameKey?: string;\n\t}) {\n\tconst { config } = useChart();\n\n\tif (!payload?.length) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className={cn('flex items-center justify-center gap-4', verticalAlign === 'top' ? 'pb-3' : 'pt-3', className)}>\n\t\t\t{payload.map((item) => {\n\t\t\t\tconst key = `${nameKey || item.dataKey || 'value'}`;\n\t\t\t\tconst itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n\t\t\t\treturn (\n\t\t\t\t\t<div key={item.value} className=\"flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground\">\n\t\t\t\t\t\t{itemConfig?.icon && !hideIcon ? (\n\t\t\t\t\t\t\t<itemConfig.icon />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName=\"h-2 w-2 shrink-0 rounded-[2px]\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tbackgroundColor: item.color,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{itemConfig?.label}\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n}\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n\tif (typeof payload !== 'object' || payload === null) {\n\t\treturn undefined;\n\t}\n\n\tconst payloadPayload = 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null ? payload.payload : undefined;\n\n\tlet configLabelKey: string = key;\n\n\tif (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n\t\tconfigLabelKey = payload[key as keyof typeof payload] as string;\n\t} else if (payloadPayload && key in payloadPayload && typeof payloadPayload[key as keyof typeof payloadPayload] === 'string') {\n\t\tconfigLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n\t}\n\n\treturn configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport { ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent };\n"],"mappings":"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","names":["ChartTooltipLabel"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import {
|
|
2
|
+
cn
|
|
3
|
+
} from "../chunk-Y2TKUANL.js";
|
|
4
|
+
|
|
5
|
+
// src/components/checkbox.tsx
|
|
6
|
+
import { Checkbox as CheckboxPrimitive } from "@base-ui/react/checkbox";
|
|
7
|
+
import { CheckIcon } from "lucide-react";
|
|
8
|
+
import { jsx } from "react/jsx-runtime";
|
|
9
|
+
function Checkbox({ className, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(
|
|
11
|
+
CheckboxPrimitive.Root,
|
|
12
|
+
{
|
|
13
|
+
"data-slot": "checkbox",
|
|
14
|
+
className: cn(
|
|
15
|
+
"peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input outline-none transition-colors after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 group-has-disabled/field:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
|
|
16
|
+
className
|
|
17
|
+
),
|
|
18
|
+
...props,
|
|
19
|
+
children: /* @__PURE__ */ jsx(CheckboxPrimitive.Indicator, { "data-slot": "checkbox-indicator", className: "grid place-content-center text-current transition-none [&>svg]:size-3.5", children: /* @__PURE__ */ jsx(CheckIcon, {}) })
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
Checkbox
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/checkbox.tsx"],"sourcesContent":["import { Checkbox as CheckboxPrimitive } from '@base-ui/react/checkbox';\n\nimport { cn } from '@betfin/ui/lib/utils';\nimport { CheckIcon } from 'lucide-react';\n\nfunction Checkbox({ className, ...props }: CheckboxPrimitive.Root.Props) {\n\treturn (\n\t\t<CheckboxPrimitive.Root\n\t\t\tdata-slot=\"checkbox\"\n\t\t\tclassName={cn(\n\t\t\t\t'peer relative flex size-4 shrink-0 items-center justify-center rounded-[4px] border border-input outline-none transition-colors after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 group-has-disabled/field:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 aria-invalid:aria-checked:border-primary data-checked:border-primary data-checked:bg-primary data-checked:text-primary-foreground dark:bg-input/30 dark:data-checked:bg-primary dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<CheckboxPrimitive.Indicator data-slot=\"checkbox-indicator\" className=\"grid place-content-center text-current transition-none [&>svg]:size-3.5\">\n\t\t\t\t<CheckIcon />\n\t\t\t</CheckboxPrimitive.Indicator>\n\t\t</CheckboxPrimitive.Root>\n\t);\n}\n\nexport { Checkbox };\n"],"mappings":";;;;;AAAA,SAAS,YAAY,yBAAyB;AAG9C,SAAS,iBAAiB;AAatB;AAXJ,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAiC;AACxE,SACC;AAAA,IAAC,kBAAkB;AAAA,IAAlB;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA,MAEJ,8BAAC,kBAAkB,WAAlB,EAA4B,aAAU,sBAAqB,WAAU,2EACrE,8BAAC,aAAU,GACZ;AAAA;AAAA,EACD;AAEF;","names":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';
|
|
2
|
+
declare function Collapsible({ ...props }: CollapsiblePrimitive.Root.Props): import("react").JSX.Element;
|
|
3
|
+
declare function CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props): import("react").JSX.Element;
|
|
4
|
+
declare function CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props): import("react").JSX.Element;
|
|
5
|
+
export { Collapsible, CollapsibleContent, CollapsibleTrigger };
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/collapsible.tsx
|
|
4
|
+
import { Collapsible as CollapsiblePrimitive } from "@base-ui/react/collapsible";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
function Collapsible({ ...props }) {
|
|
7
|
+
return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, { "data-slot": "collapsible", ...props });
|
|
8
|
+
}
|
|
9
|
+
function CollapsibleTrigger({ ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(CollapsiblePrimitive.Trigger, { "data-slot": "collapsible-trigger", ...props });
|
|
11
|
+
}
|
|
12
|
+
function CollapsibleContent({ ...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(CollapsiblePrimitive.Panel, { "data-slot": "collapsible-content", ...props });
|
|
14
|
+
}
|
|
15
|
+
export {
|
|
16
|
+
Collapsible,
|
|
17
|
+
CollapsibleContent,
|
|
18
|
+
CollapsibleTrigger
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=collapsible.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/collapsible.tsx"],"sourcesContent":["'use client';\n\nimport { Collapsible as CollapsiblePrimitive } from '@base-ui/react/collapsible';\n\nfunction Collapsible({ ...props }: CollapsiblePrimitive.Root.Props) {\n\treturn <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({ ...props }: CollapsiblePrimitive.Trigger.Props) {\n\treturn <CollapsiblePrimitive.Trigger data-slot=\"collapsible-trigger\" {...props} />;\n}\n\nfunction CollapsibleContent({ ...props }: CollapsiblePrimitive.Panel.Props) {\n\treturn <CollapsiblePrimitive.Panel data-slot=\"collapsible-content\" {...props} />;\n}\n\nexport { Collapsible, CollapsibleContent, CollapsibleTrigger };\n"],"mappings":";;;AAEA,SAAS,eAAe,4BAA4B;AAG5C;AADR,SAAS,YAAY,EAAE,GAAG,MAAM,GAAoC;AACnE,SAAO,oBAAC,qBAAqB,MAArB,EAA0B,aAAU,eAAe,GAAG,OAAO;AACtE;AAEA,SAAS,mBAAmB,EAAE,GAAG,MAAM,GAAuC;AAC7E,SAAO,oBAAC,qBAAqB,SAArB,EAA6B,aAAU,uBAAuB,GAAG,OAAO;AACjF;AAEA,SAAS,mBAAmB,EAAE,GAAG,MAAM,GAAqC;AAC3E,SAAO,oBAAC,qBAAqB,OAArB,EAA2B,aAAU,uBAAuB,GAAG,OAAO;AAC/E;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Dialog } from '@betfin/ui/components/dialog';
|
|
2
|
+
import { Command as CommandPrimitive } from 'cmdk';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
declare function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>): React.JSX.Element;
|
|
5
|
+
declare function CommandDialog({ title, description, children, className, showCloseButton, ...props }: Omit<React.ComponentProps<typeof Dialog>, 'children'> & {
|
|
6
|
+
title?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
className?: string;
|
|
9
|
+
showCloseButton?: boolean;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}): React.JSX.Element;
|
|
12
|
+
declare function CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>): React.JSX.Element;
|
|
13
|
+
declare function CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>): React.JSX.Element;
|
|
14
|
+
declare function CommandEmpty({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>): React.JSX.Element;
|
|
15
|
+
declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>): React.JSX.Element;
|
|
16
|
+
declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>): React.JSX.Element;
|
|
17
|
+
declare function CommandItem({ className, children, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>): React.JSX.Element;
|
|
18
|
+
declare function CommandShortcut({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
19
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
InputGroup,
|
|
4
|
+
InputGroupAddon
|
|
5
|
+
} from "../chunk-QZIKXMHP.js";
|
|
6
|
+
import "../chunk-SSC2M625.js";
|
|
7
|
+
import "../chunk-EP6DYU4N.js";
|
|
8
|
+
import {
|
|
9
|
+
Dialog,
|
|
10
|
+
DialogContent,
|
|
11
|
+
DialogDescription,
|
|
12
|
+
DialogHeader,
|
|
13
|
+
DialogTitle
|
|
14
|
+
} from "../chunk-3YCD2QLS.js";
|
|
15
|
+
import "../chunk-5CXIFF6J.js";
|
|
16
|
+
import {
|
|
17
|
+
cn
|
|
18
|
+
} from "../chunk-Y2TKUANL.js";
|
|
19
|
+
|
|
20
|
+
// src/components/command.tsx
|
|
21
|
+
import { Command as CommandPrimitive } from "cmdk";
|
|
22
|
+
import { CheckIcon, SearchIcon } from "lucide-react";
|
|
23
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
24
|
+
function Command({ className, ...props }) {
|
|
25
|
+
return /* @__PURE__ */ jsx(
|
|
26
|
+
CommandPrimitive,
|
|
27
|
+
{
|
|
28
|
+
"data-slot": "command",
|
|
29
|
+
className: cn("flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground", className),
|
|
30
|
+
...props
|
|
31
|
+
}
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
function CommandDialog({
|
|
35
|
+
title = "Command Palette",
|
|
36
|
+
description = "Search for a command to run...",
|
|
37
|
+
children,
|
|
38
|
+
className,
|
|
39
|
+
showCloseButton = false,
|
|
40
|
+
...props
|
|
41
|
+
}) {
|
|
42
|
+
return /* @__PURE__ */ jsxs(Dialog, { ...props, children: [
|
|
43
|
+
/* @__PURE__ */ jsxs(DialogHeader, { className: "sr-only", children: [
|
|
44
|
+
/* @__PURE__ */ jsx(DialogTitle, { children: title }),
|
|
45
|
+
/* @__PURE__ */ jsx(DialogDescription, { children: description })
|
|
46
|
+
] }),
|
|
47
|
+
/* @__PURE__ */ jsx(DialogContent, { className: cn("top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0", className), showCloseButton, children })
|
|
48
|
+
] });
|
|
49
|
+
}
|
|
50
|
+
function CommandInput({ className, ...props }) {
|
|
51
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "command-input-wrapper", className: "p-1 pb-0", children: /* @__PURE__ */ jsxs(InputGroup, { className: "h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!", children: [
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
CommandPrimitive.Input,
|
|
54
|
+
{
|
|
55
|
+
"data-slot": "command-input",
|
|
56
|
+
className: cn("w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
57
|
+
...props
|
|
58
|
+
}
|
|
59
|
+
),
|
|
60
|
+
/* @__PURE__ */ jsx(InputGroupAddon, { children: /* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }) })
|
|
61
|
+
] }) });
|
|
62
|
+
}
|
|
63
|
+
function CommandList({ className, ...props }) {
|
|
64
|
+
return /* @__PURE__ */ jsx(
|
|
65
|
+
CommandPrimitive.List,
|
|
66
|
+
{
|
|
67
|
+
"data-slot": "command-list",
|
|
68
|
+
className: cn("no-scrollbar max-h-72 scroll-py-1 overflow-y-auto overflow-x-hidden outline-none", className),
|
|
69
|
+
...props
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
function CommandEmpty({ className, ...props }) {
|
|
74
|
+
return /* @__PURE__ */ jsx(CommandPrimitive.Empty, { "data-slot": "command-empty", className: cn("py-6 text-center text-sm", className), ...props });
|
|
75
|
+
}
|
|
76
|
+
function CommandGroup({ className, ...props }) {
|
|
77
|
+
return /* @__PURE__ */ jsx(
|
|
78
|
+
CommandPrimitive.Group,
|
|
79
|
+
{
|
|
80
|
+
"data-slot": "command-group",
|
|
81
|
+
className: cn(
|
|
82
|
+
"overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:text-xs",
|
|
83
|
+
className
|
|
84
|
+
),
|
|
85
|
+
...props
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
function CommandSeparator({ className, ...props }) {
|
|
90
|
+
return /* @__PURE__ */ jsx(CommandPrimitive.Separator, { "data-slot": "command-separator", className: cn("-mx-1 h-px bg-border", className), ...props });
|
|
91
|
+
}
|
|
92
|
+
function CommandItem({ className, children, ...props }) {
|
|
93
|
+
return /* @__PURE__ */ jsxs(
|
|
94
|
+
CommandPrimitive.Item,
|
|
95
|
+
{
|
|
96
|
+
"data-slot": "command-item",
|
|
97
|
+
className: cn(
|
|
98
|
+
"group/command-item relative flex cursor-default select-none items-center gap-2 in-data-[slot=dialog-content]:rounded-lg! rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-selected:bg-muted data-selected:text-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-selected:*:[svg]:text-foreground",
|
|
99
|
+
className
|
|
100
|
+
),
|
|
101
|
+
...props,
|
|
102
|
+
children: [
|
|
103
|
+
children,
|
|
104
|
+
/* @__PURE__ */ jsx(CheckIcon, { className: "ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100" })
|
|
105
|
+
]
|
|
106
|
+
}
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
function CommandShortcut({ className, ...props }) {
|
|
110
|
+
return /* @__PURE__ */ jsx(
|
|
111
|
+
"span",
|
|
112
|
+
{
|
|
113
|
+
"data-slot": "command-shortcut",
|
|
114
|
+
className: cn("ml-auto text-muted-foreground text-xs tracking-widest group-data-selected/command-item:text-foreground", className),
|
|
115
|
+
...props
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
export {
|
|
120
|
+
Command,
|
|
121
|
+
CommandDialog,
|
|
122
|
+
CommandEmpty,
|
|
123
|
+
CommandGroup,
|
|
124
|
+
CommandInput,
|
|
125
|
+
CommandItem,
|
|
126
|
+
CommandList,
|
|
127
|
+
CommandSeparator,
|
|
128
|
+
CommandShortcut
|
|
129
|
+
};
|
|
130
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/components/command.tsx"],"sourcesContent":["'use client';\n\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@betfin/ui/components/dialog';\nimport { InputGroup, InputGroupAddon } from '@betfin/ui/components/input-group';\n\nimport { cn } from '@betfin/ui/lib/utils';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { CheckIcon, SearchIcon } from 'lucide-react';\nimport type * as React from 'react';\n\nfunction Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>) {\n\treturn (\n\t\t<CommandPrimitive\n\t\t\tdata-slot=\"command\"\n\t\t\tclassName={cn('flex size-full flex-col overflow-hidden rounded-xl! bg-popover p-1 text-popover-foreground', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandDialog({\n\ttitle = 'Command Palette',\n\tdescription = 'Search for a command to run...',\n\tchildren,\n\tclassName,\n\tshowCloseButton = false,\n\t...props\n}: Omit<React.ComponentProps<typeof Dialog>, 'children'> & {\n\ttitle?: string;\n\tdescription?: string;\n\tclassName?: string;\n\tshowCloseButton?: boolean;\n\tchildren: React.ReactNode;\n}) {\n\treturn (\n\t\t<Dialog {...props}>\n\t\t\t<DialogHeader className=\"sr-only\">\n\t\t\t\t<DialogTitle>{title}</DialogTitle>\n\t\t\t\t<DialogDescription>{description}</DialogDescription>\n\t\t\t</DialogHeader>\n\t\t\t<DialogContent className={cn('top-1/3 translate-y-0 overflow-hidden rounded-xl! p-0', className)} showCloseButton={showCloseButton}>\n\t\t\t\t{children}\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n\nfunction CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>) {\n\treturn (\n\t\t<div data-slot=\"command-input-wrapper\" className=\"p-1 pb-0\">\n\t\t\t<InputGroup className=\"h-8! rounded-lg! border-input/30 bg-input/30 shadow-none! *:data-[slot=input-group-addon]:pl-2!\">\n\t\t\t\t<CommandPrimitive.Input\n\t\t\t\t\tdata-slot=\"command-input\"\n\t\t\t\t\tclassName={cn('w-full text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50', className)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t\t<InputGroupAddon>\n\t\t\t\t\t<SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n\t\t\t\t</InputGroupAddon>\n\t\t\t</InputGroup>\n\t\t</div>\n\t);\n}\n\nfunction CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>) {\n\treturn (\n\t\t<CommandPrimitive.List\n\t\t\tdata-slot=\"command-list\"\n\t\t\tclassName={cn('no-scrollbar max-h-72 scroll-py-1 overflow-y-auto overflow-x-hidden outline-none', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandEmpty({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n\treturn <CommandPrimitive.Empty data-slot=\"command-empty\" className={cn('py-6 text-center text-sm', className)} {...props} />;\n}\n\nfunction CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>) {\n\treturn (\n\t\t<CommandPrimitive.Group\n\t\t\tdata-slot=\"command-group\"\n\t\t\tclassName={cn(\n\t\t\t\t'overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground **:[[cmdk-group-heading]]:text-xs',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n\treturn <CommandPrimitive.Separator data-slot=\"command-separator\" className={cn('-mx-1 h-px bg-border', className)} {...props} />;\n}\n\nfunction CommandItem({ className, children, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>) {\n\treturn (\n\t\t<CommandPrimitive.Item\n\t\t\tdata-slot=\"command-item\"\n\t\t\tclassName={cn(\n\t\t\t\t\"group/command-item relative flex cursor-default select-none items-center gap-2 in-data-[slot=dialog-content]:rounded-lg! rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-selected:bg-muted data-selected:text-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-selected:*:[svg]:text-foreground\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<CheckIcon className=\"ml-auto opacity-0 group-has-data-[slot=command-shortcut]/command-item:hidden group-data-[checked=true]/command-item:opacity-100\" />\n\t\t</CommandPrimitive.Item>\n\t);\n}\n\nfunction CommandShortcut({ className, ...props }: React.ComponentProps<'span'>) {\n\treturn (\n\t\t<span\n\t\t\tdata-slot=\"command-shortcut\"\n\t\t\tclassName={cn('ml-auto text-muted-foreground text-xs tracking-widest group-data-selected/command-item:text-foreground', className)}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nexport { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMA,SAAS,WAAW,wBAAwB;AAC5C,SAAS,WAAW,kBAAkB;AAKpC,cAwBC,YAxBD;AAFF,SAAS,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAkD;AACxF,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,8FAA8F,SAAS;AAAA,MACpH,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,cAAc;AAAA,EACtB,QAAQ;AAAA,EACR,cAAc;AAAA,EACd;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,GAAG;AACJ,GAMG;AACF,SACC,qBAAC,UAAQ,GAAG,OACX;AAAA,yBAAC,gBAAa,WAAU,WACvB;AAAA,0BAAC,eAAa,iBAAM;AAAA,MACpB,oBAAC,qBAAmB,uBAAY;AAAA,OACjC;AAAA,IACA,oBAAC,iBAAc,WAAW,GAAG,yDAAyD,SAAS,GAAG,iBAChG,UACF;AAAA,KACD;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAwD;AACnG,SACC,oBAAC,SAAI,aAAU,yBAAwB,WAAU,YAChD,+BAAC,cAAW,WAAU,mGACrB;AAAA;AAAA,MAAC,iBAAiB;AAAA,MAAjB;AAAA,QACA,aAAU;AAAA,QACV,WAAW,GAAG,iFAAiF,SAAS;AAAA,QACvG,GAAG;AAAA;AAAA,IACL;AAAA,IACA,oBAAC,mBACA,8BAAC,cAAW,WAAU,8BAA6B,GACpD;AAAA,KACD,GACD;AAEF;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAuD;AACjG,SACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,oFAAoF,SAAS;AAAA,MAC1G,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAwD;AACnG,SAAO,oBAAC,iBAAiB,OAAjB,EAAuB,aAAU,iBAAgB,WAAW,GAAG,4BAA4B,SAAS,GAAI,GAAG,OAAO;AAC3H;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,MAAM,GAAwD;AACnG,SACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA;AAAA,EACL;AAEF;AAEA,SAAS,iBAAiB,EAAE,WAAW,GAAG,MAAM,GAA4D;AAC3G,SAAO,oBAAC,iBAAiB,WAAjB,EAA2B,aAAU,qBAAoB,WAAW,GAAG,wBAAwB,SAAS,GAAI,GAAG,OAAO;AAC/H;AAEA,SAAS,YAAY,EAAE,WAAW,UAAU,GAAG,MAAM,GAAuD;AAC3G,SACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACV;AAAA,QACA;AAAA,MACD;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,oBAAC,aAAU,WAAU,mIAAkI;AAAA;AAAA;AAAA,EACxJ;AAEF;AAEA,SAAS,gBAAgB,EAAE,WAAW,GAAG,MAAM,GAAiC;AAC/E,SACC;AAAA,IAAC;AAAA;AAAA,MACA,aAAU;AAAA,MACV,WAAW,GAAG,0GAA0G,SAAS;AAAA,MAChI,GAAG;AAAA;AAAA,EACL;AAEF;","names":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ContextMenu as ContextMenuPrimitive } from '@base-ui/react/context-menu';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
declare function ContextMenu({ ...props }: ContextMenuPrimitive.Root.Props): React.JSX.Element;
|
|
4
|
+
declare function ContextMenuPortal({ ...props }: ContextMenuPrimitive.Portal.Props): React.JSX.Element;
|
|
5
|
+
declare function ContextMenuTrigger({ className, ...props }: ContextMenuPrimitive.Trigger.Props): React.JSX.Element;
|
|
6
|
+
declare function ContextMenuContent({ className, align, alignOffset, side, sideOffset, ...props }: ContextMenuPrimitive.Popup.Props & Pick<ContextMenuPrimitive.Positioner.Props, 'align' | 'alignOffset' | 'side' | 'sideOffset'>): React.JSX.Element;
|
|
7
|
+
declare function ContextMenuGroup({ ...props }: ContextMenuPrimitive.Group.Props): React.JSX.Element;
|
|
8
|
+
declare function ContextMenuLabel({ className, inset, ...props }: ContextMenuPrimitive.GroupLabel.Props & {
|
|
9
|
+
inset?: boolean;
|
|
10
|
+
}): React.JSX.Element;
|
|
11
|
+
declare function ContextMenuItem({ className, inset, variant, ...props }: ContextMenuPrimitive.Item.Props & {
|
|
12
|
+
inset?: boolean;
|
|
13
|
+
variant?: 'default' | 'destructive';
|
|
14
|
+
}): React.JSX.Element;
|
|
15
|
+
declare function ContextMenuSub({ ...props }: ContextMenuPrimitive.SubmenuRoot.Props): React.JSX.Element;
|
|
16
|
+
declare function ContextMenuSubTrigger({ className, inset, children, ...props }: ContextMenuPrimitive.SubmenuTrigger.Props & {
|
|
17
|
+
inset?: boolean;
|
|
18
|
+
}): React.JSX.Element;
|
|
19
|
+
declare function ContextMenuSubContent({ ...props }: React.ComponentProps<typeof ContextMenuContent>): React.JSX.Element;
|
|
20
|
+
declare function ContextMenuCheckboxItem({ className, children, checked, inset, ...props }: ContextMenuPrimitive.CheckboxItem.Props & {
|
|
21
|
+
inset?: boolean;
|
|
22
|
+
}): React.JSX.Element;
|
|
23
|
+
declare function ContextMenuRadioGroup({ ...props }: ContextMenuPrimitive.RadioGroup.Props): React.JSX.Element;
|
|
24
|
+
declare function ContextMenuRadioItem({ className, children, inset, ...props }: ContextMenuPrimitive.RadioItem.Props & {
|
|
25
|
+
inset?: boolean;
|
|
26
|
+
}): React.JSX.Element;
|
|
27
|
+
declare function ContextMenuSeparator({ className, ...props }: ContextMenuPrimitive.Separator.Props): React.JSX.Element;
|
|
28
|
+
declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<'span'>): React.JSX.Element;
|
|
29
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, };
|