@customafk/lunas-ui 0.2.62 → 0.2.63
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/features/charts/index.cjs +2 -0
- package/dist/features/charts/index.cjs.map +1 -0
- package/dist/features/charts/index.d.cts +349 -0
- package/dist/features/charts/index.d.mts +349 -0
- package/dist/features/charts/index.mjs +2 -0
- package/dist/features/charts/index.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -2
- package/dist/index.d.mts +4 -2
- package/dist/index.mjs +1 -1
- package/dist/{resizable-CNIYTd7k.d.cts → resizable-BLfxHCf4.d.cts} +2 -2
- package/dist/{resizable-CNIYTd7k.d.mts → resizable-BLfxHCf4.d.mts} +2 -2
- package/dist/ui/chart.cjs +4 -0
- package/dist/ui/chart.cjs.map +1 -0
- package/dist/ui/chart.d.cts +80 -0
- package/dist/ui/chart.d.mts +80 -0
- package/dist/ui/chart.mjs +4 -0
- package/dist/ui/chart.mjs.map +1 -0
- package/dist/ui/resizable.d.cts +1 -1
- package/dist/ui/resizable.d.mts +1 -1
- package/package.json +11 -1
- package/styles/theme.css +8 -5
|
@@ -0,0 +1,349 @@
|
|
|
1
|
+
//#region packages/components/features/charts/types.d.ts
|
|
2
|
+
/** Trend direction shared with the `Statistic` display component. */
|
|
3
|
+
type ChartTrend = 'up' | 'down' | 'neutral';
|
|
4
|
+
type TimeSeriesPoint = {
|
|
5
|
+
date: string | Date;
|
|
6
|
+
value: number; /** Same-bucket value from the comparison period (enables the comparison series). */
|
|
7
|
+
previousValue?: number;
|
|
8
|
+
};
|
|
9
|
+
type ChartSeries = {
|
|
10
|
+
key: string;
|
|
11
|
+
label: string;
|
|
12
|
+
color?: string;
|
|
13
|
+
};
|
|
14
|
+
type NamedValue = {
|
|
15
|
+
name: string;
|
|
16
|
+
value: number;
|
|
17
|
+
};
|
|
18
|
+
/** Props shared by every prebuilt chart. */
|
|
19
|
+
type BaseChartProps = {
|
|
20
|
+
className?: string; /** Enable the recharts enter animation. Disable for deterministic tests. Defaults to `true`. */
|
|
21
|
+
animate?: boolean; /** Fixed height in px; otherwise the container's aspect-video ratio applies. */
|
|
22
|
+
height?: number;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region packages/components/features/charts/components/conversion-funnel-chart.d.ts
|
|
26
|
+
type FunnelStage = NamedValue & {
|
|
27
|
+
/** Config key; derived from `name` when omitted. */key?: string;
|
|
28
|
+
color?: string;
|
|
29
|
+
};
|
|
30
|
+
type ConversionFunnelChartProps = BaseChartProps & {
|
|
31
|
+
/** Funnel stages ordered top (widest) to bottom. */data: FunnelStage[]; /** Appends each stage's percentage of the first stage. Defaults to `true`. */
|
|
32
|
+
showConversionRates?: boolean;
|
|
33
|
+
valueFormatter?: (value: number) => string;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* A conversion funnel for the ecommerce purchase journey — sessions, product views, carts,
|
|
37
|
+
* checkouts, purchases — with per-stage conversion rates against the first stage.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```tsx
|
|
41
|
+
* import { ConversionFunnelChart } from '@customafk/lunas-ui/features/charts';
|
|
42
|
+
*
|
|
43
|
+
* <ConversionFunnelChart
|
|
44
|
+
* data={[
|
|
45
|
+
* { name: 'Sessions', value: 50000 },
|
|
46
|
+
* { name: 'Product views', value: 32000 },
|
|
47
|
+
* { name: 'Added to cart', value: 8400 },
|
|
48
|
+
* { name: 'Purchased', value: 2900 },
|
|
49
|
+
* ]}
|
|
50
|
+
* />
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
declare const ConversionFunnelChart: ({
|
|
54
|
+
data,
|
|
55
|
+
showConversionRates,
|
|
56
|
+
valueFormatter,
|
|
57
|
+
className,
|
|
58
|
+
animate,
|
|
59
|
+
height
|
|
60
|
+
}: ConversionFunnelChartProps) => import("react").JSX.Element;
|
|
61
|
+
//#endregion
|
|
62
|
+
//#region packages/components/features/charts/components/donut-chart.d.ts
|
|
63
|
+
type DonutChartSegment = NamedValue & {
|
|
64
|
+
/** Config key; derived from `name` when omitted. */key?: string;
|
|
65
|
+
color?: string;
|
|
66
|
+
};
|
|
67
|
+
type DonutChartProps = BaseChartProps & {
|
|
68
|
+
data: DonutChartSegment[]; /** Text under the center total, e.g. `'Total sales'`. */
|
|
69
|
+
centerLabel?: string; /** Formats the center total. Defaults to compact notation. */
|
|
70
|
+
centerValueFormatter?: (total: number) => string; /** Overrides the computed segment sum shown in the center. */
|
|
71
|
+
totalValue?: number;
|
|
72
|
+
showLegend?: boolean;
|
|
73
|
+
showCenterTotal?: boolean;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* A donut breakdown chart with a center total — category sales, traffic sources, payment methods.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```tsx
|
|
80
|
+
* import { DonutChart } from '@customafk/lunas-ui/features/charts';
|
|
81
|
+
*
|
|
82
|
+
* <DonutChart
|
|
83
|
+
* data={[
|
|
84
|
+
* { name: 'Fashion', value: 12400 },
|
|
85
|
+
* { name: 'Electronics', value: 8200 },
|
|
86
|
+
* ]}
|
|
87
|
+
* centerLabel="Total sales"
|
|
88
|
+
* />
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
declare const DonutChart: ({
|
|
92
|
+
data,
|
|
93
|
+
centerLabel,
|
|
94
|
+
centerValueFormatter,
|
|
95
|
+
totalValue,
|
|
96
|
+
showLegend,
|
|
97
|
+
showCenterTotal,
|
|
98
|
+
className,
|
|
99
|
+
animate,
|
|
100
|
+
height
|
|
101
|
+
}: DonutChartProps) => import("react").JSX.Element;
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region packages/components/features/charts/components/orders-bar-chart.d.ts
|
|
104
|
+
type OrdersBarChartProps = BaseChartProps & {
|
|
105
|
+
data: Array<{
|
|
106
|
+
date: string | Date;
|
|
107
|
+
} & Record<string, unknown>>; /** Simple mode: the key holding each period's count. Defaults to `'orders'`. */
|
|
108
|
+
dataKey?: string; /** Series label in simple mode. Defaults to `'Orders'`. */
|
|
109
|
+
label?: string; /** Stacked mode: one series per order status; each `key` indexes into the data rows. */
|
|
110
|
+
statuses?: ChartSeries[];
|
|
111
|
+
color?: string;
|
|
112
|
+
valueFormatter?: (value: number) => string;
|
|
113
|
+
dateFormatter?: (date: string | Date) => string; /** Defaults to `true` when `statuses` is provided. */
|
|
114
|
+
showLegend?: boolean;
|
|
115
|
+
showGrid?: boolean;
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* A bar chart for order volume per period — a single series by default, or stacked by order
|
|
119
|
+
* status when `statuses` is provided.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```tsx
|
|
123
|
+
* import { OrdersBarChart } from '@customafk/lunas-ui/features/charts';
|
|
124
|
+
*
|
|
125
|
+
* <OrdersBarChart
|
|
126
|
+
* data={[{ date: '2026-06-01', completed: 32, pending: 6, cancelled: 2 }]}
|
|
127
|
+
* statuses={[
|
|
128
|
+
* { key: 'completed', label: 'Completed' },
|
|
129
|
+
* { key: 'pending', label: 'Pending' },
|
|
130
|
+
* { key: 'cancelled', label: 'Cancelled' },
|
|
131
|
+
* ]}
|
|
132
|
+
* />
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
declare const OrdersBarChart: ({
|
|
136
|
+
data,
|
|
137
|
+
dataKey,
|
|
138
|
+
label,
|
|
139
|
+
statuses,
|
|
140
|
+
color,
|
|
141
|
+
valueFormatter,
|
|
142
|
+
dateFormatter,
|
|
143
|
+
showLegend,
|
|
144
|
+
showGrid,
|
|
145
|
+
className,
|
|
146
|
+
animate,
|
|
147
|
+
height
|
|
148
|
+
}: OrdersBarChartProps) => import("react").JSX.Element;
|
|
149
|
+
//#endregion
|
|
150
|
+
//#region packages/components/features/charts/components/revenue-area-chart.d.ts
|
|
151
|
+
type RevenueAreaChartProps = BaseChartProps & {
|
|
152
|
+
data: TimeSeriesPoint[]; /** Series label. Defaults to `'Revenue'`. */
|
|
153
|
+
label?: string; /** Comparison series label. Defaults to `'Previous period'`. */
|
|
154
|
+
comparisonLabel?: string; /** Renders `previousValue` as a second, muted area series. */
|
|
155
|
+
showComparison?: boolean;
|
|
156
|
+
color?: string;
|
|
157
|
+
comparisonColor?: string; /** Formats tooltip and Y-axis values. Defaults to compact currency. */
|
|
158
|
+
valueFormatter?: (value: number) => string;
|
|
159
|
+
dateFormatter?: (date: string | Date) => string; /** Defaults to `showComparison`. */
|
|
160
|
+
showLegend?: boolean;
|
|
161
|
+
showGrid?: boolean;
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* A gradient area chart for revenue (or any currency metric) over time, with an optional
|
|
165
|
+
* previous-period comparison series.
|
|
166
|
+
*
|
|
167
|
+
* @example
|
|
168
|
+
* ```tsx
|
|
169
|
+
* import { RevenueAreaChart } from '@customafk/lunas-ui/features/charts';
|
|
170
|
+
*
|
|
171
|
+
* <RevenueAreaChart
|
|
172
|
+
* data={[
|
|
173
|
+
* { date: '2026-06-01', value: 4200, previousValue: 3800 },
|
|
174
|
+
* { date: '2026-06-02', value: 5100, previousValue: 4300 },
|
|
175
|
+
* ]}
|
|
176
|
+
* showComparison
|
|
177
|
+
* />
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
declare const RevenueAreaChart: ({
|
|
181
|
+
data,
|
|
182
|
+
label,
|
|
183
|
+
comparisonLabel,
|
|
184
|
+
showComparison,
|
|
185
|
+
color,
|
|
186
|
+
comparisonColor,
|
|
187
|
+
valueFormatter,
|
|
188
|
+
dateFormatter,
|
|
189
|
+
showLegend,
|
|
190
|
+
showGrid,
|
|
191
|
+
className,
|
|
192
|
+
animate,
|
|
193
|
+
height
|
|
194
|
+
}: RevenueAreaChartProps) => import("react").JSX.Element;
|
|
195
|
+
//#endregion
|
|
196
|
+
//#region packages/components/features/charts/components/revenue-orders-composed-chart.d.ts
|
|
197
|
+
type RevenueOrdersPoint = {
|
|
198
|
+
date: string | Date;
|
|
199
|
+
revenue: number;
|
|
200
|
+
orders: number;
|
|
201
|
+
};
|
|
202
|
+
type RevenueOrdersComposedChartProps = BaseChartProps & {
|
|
203
|
+
data: RevenueOrdersPoint[];
|
|
204
|
+
revenueLabel?: string;
|
|
205
|
+
ordersLabel?: string;
|
|
206
|
+
revenueColor?: string;
|
|
207
|
+
ordersColor?: string; /** Formats the left (revenue) axis and tooltip values. Defaults to compact currency. */
|
|
208
|
+
revenueFormatter?: (value: number) => string; /** Formats the right (orders) axis and tooltip values. */
|
|
209
|
+
ordersFormatter?: (value: number) => string;
|
|
210
|
+
dateFormatter?: (date: string | Date) => string;
|
|
211
|
+
showLegend?: boolean;
|
|
212
|
+
showGrid?: boolean;
|
|
213
|
+
};
|
|
214
|
+
/**
|
|
215
|
+
* A dual-axis chart combining revenue bars (left axis, currency) with an orders line
|
|
216
|
+
* (right axis, count) to correlate the two metrics per period.
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```tsx
|
|
220
|
+
* import { RevenueOrdersComposedChart } from '@customafk/lunas-ui/features/charts';
|
|
221
|
+
*
|
|
222
|
+
* <RevenueOrdersComposedChart
|
|
223
|
+
* data={[{ date: '2026-06-01', revenue: 12400, orders: 87 }]}
|
|
224
|
+
* />
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
declare const RevenueOrdersComposedChart: ({
|
|
228
|
+
data,
|
|
229
|
+
revenueLabel,
|
|
230
|
+
ordersLabel,
|
|
231
|
+
revenueColor,
|
|
232
|
+
ordersColor,
|
|
233
|
+
revenueFormatter,
|
|
234
|
+
ordersFormatter,
|
|
235
|
+
dateFormatter,
|
|
236
|
+
showLegend,
|
|
237
|
+
showGrid,
|
|
238
|
+
className,
|
|
239
|
+
animate,
|
|
240
|
+
height
|
|
241
|
+
}: RevenueOrdersComposedChartProps) => import("react").JSX.Element;
|
|
242
|
+
//#endregion
|
|
243
|
+
//#region packages/components/features/charts/components/sales-target-radial-chart.d.ts
|
|
244
|
+
type SalesTargetRadialChartProps = BaseChartProps & {
|
|
245
|
+
/** Current progress value, e.g. revenue to date. */value: number; /** The goal the value is measured against. */
|
|
246
|
+
target: number; /** Text under the center figure. Defaults to `'Target'`. */
|
|
247
|
+
label?: string; /** Formats the center figure. Defaults to percent-of-target. */
|
|
248
|
+
valueFormatter?: (value: number, target: number) => string;
|
|
249
|
+
color?: string;
|
|
250
|
+
};
|
|
251
|
+
/**
|
|
252
|
+
* A radial gauge showing progress toward a sales target with the completion figure in the center.
|
|
253
|
+
*
|
|
254
|
+
* @example
|
|
255
|
+
* ```tsx
|
|
256
|
+
* import { SalesTargetRadialChart } from '@customafk/lunas-ui/features/charts';
|
|
257
|
+
*
|
|
258
|
+
* <SalesTargetRadialChart value={65_000} target={100_000} label="Monthly target" />
|
|
259
|
+
* ```
|
|
260
|
+
*/
|
|
261
|
+
declare const SalesTargetRadialChart: ({
|
|
262
|
+
value,
|
|
263
|
+
target,
|
|
264
|
+
label,
|
|
265
|
+
valueFormatter,
|
|
266
|
+
color,
|
|
267
|
+
className,
|
|
268
|
+
animate,
|
|
269
|
+
height
|
|
270
|
+
}: SalesTargetRadialChartProps) => import("react").JSX.Element;
|
|
271
|
+
//#endregion
|
|
272
|
+
//#region packages/components/features/charts/components/sparkline-chart.d.ts
|
|
273
|
+
type SparklineChartProps = {
|
|
274
|
+
data: number[] | Array<{
|
|
275
|
+
value: number;
|
|
276
|
+
}>; /** Render style. Defaults to `'area'`. */
|
|
277
|
+
type?: 'line' | 'area'; /** Colors the series like the `Statistic` trend prop. Defaults to `'neutral'`. */
|
|
278
|
+
trend?: ChartTrend; /** Explicit series color; overrides `trend`. */
|
|
279
|
+
color?: string; /** Fixed height in px. Defaults to `40`. */
|
|
280
|
+
height?: number;
|
|
281
|
+
animate?: boolean;
|
|
282
|
+
className?: string;
|
|
283
|
+
};
|
|
284
|
+
/**
|
|
285
|
+
* A tiny, axis-less trend chart for KPI cards; pairs with the `Statistic` display component.
|
|
286
|
+
*
|
|
287
|
+
* @example
|
|
288
|
+
* ```tsx
|
|
289
|
+
* import { SparklineChart } from '@customafk/lunas-ui/features/charts';
|
|
290
|
+
*
|
|
291
|
+
* <SparklineChart data={[12, 18, 14, 26, 22, 31]} trend="up" />
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
294
|
+
declare const SparklineChart: ({
|
|
295
|
+
data,
|
|
296
|
+
type,
|
|
297
|
+
trend,
|
|
298
|
+
color,
|
|
299
|
+
height,
|
|
300
|
+
animate,
|
|
301
|
+
className
|
|
302
|
+
}: SparklineChartProps) => import("react").JSX.Element;
|
|
303
|
+
//#endregion
|
|
304
|
+
//#region packages/components/features/charts/components/top-products-bar-chart.d.ts
|
|
305
|
+
type TopProductsBarChartProps = BaseChartProps & {
|
|
306
|
+
data: NamedValue[]; /** Series label. Defaults to `'Sales'`. */
|
|
307
|
+
label?: string; /** Number of items shown after sorting descending. Defaults to `8`. */
|
|
308
|
+
maxItems?: number;
|
|
309
|
+
color?: string;
|
|
310
|
+
valueFormatter?: (value: number) => string; /** Value labels at the end of each bar. Defaults to `true`. */
|
|
311
|
+
showValueLabels?: boolean;
|
|
312
|
+
};
|
|
313
|
+
/**
|
|
314
|
+
* A horizontal bar ranking chart — top products, best categories, top customers.
|
|
315
|
+
*
|
|
316
|
+
* @example
|
|
317
|
+
* ```tsx
|
|
318
|
+
* import { TopProductsBarChart } from '@customafk/lunas-ui/features/charts';
|
|
319
|
+
*
|
|
320
|
+
* <TopProductsBarChart
|
|
321
|
+
* data={[
|
|
322
|
+
* { name: 'Wireless Earbuds', value: 1245 },
|
|
323
|
+
* { name: 'Smart Watch', value: 986 },
|
|
324
|
+
* ]}
|
|
325
|
+
* />
|
|
326
|
+
* ```
|
|
327
|
+
*/
|
|
328
|
+
declare const TopProductsBarChart: ({
|
|
329
|
+
data,
|
|
330
|
+
label,
|
|
331
|
+
maxItems,
|
|
332
|
+
color,
|
|
333
|
+
valueFormatter,
|
|
334
|
+
showValueLabels,
|
|
335
|
+
className,
|
|
336
|
+
animate,
|
|
337
|
+
height
|
|
338
|
+
}: TopProductsBarChartProps) => import("react").JSX.Element;
|
|
339
|
+
//#endregion
|
|
340
|
+
//#region packages/components/features/charts/utils.d.ts
|
|
341
|
+
/** Cycles through the eight `--chart-N` theme palette variables. */
|
|
342
|
+
declare const getChartColor: (index: number) => string;
|
|
343
|
+
declare const formatCompactNumber: (value: number, locale?: string) => string;
|
|
344
|
+
declare const formatCurrency: (value: number, currency?: string, locale?: string) => string;
|
|
345
|
+
declare const formatPercent: (value: number, locale?: string) => string;
|
|
346
|
+
declare const toDateLabel: (date: string | Date, locale?: string) => string;
|
|
347
|
+
//#endregion
|
|
348
|
+
export { BaseChartProps, ChartSeries, ChartTrend, ConversionFunnelChart, ConversionFunnelChartProps, DonutChart, DonutChartProps, DonutChartSegment, FunnelStage, NamedValue, OrdersBarChart, OrdersBarChartProps, RevenueAreaChart, RevenueAreaChartProps, RevenueOrdersComposedChart, RevenueOrdersComposedChartProps, RevenueOrdersPoint, SalesTargetRadialChart, SalesTargetRadialChartProps, SparklineChart, SparklineChartProps, TimeSeriesPoint, TopProductsBarChart, TopProductsBarChartProps, formatCompactNumber, formatCurrency, formatPercent, getChartColor, toDateLabel };
|
|
349
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ChartContainer as e,ChartLegend as t,ChartLegendContent as n,ChartTooltip as r,ChartTooltipContent as i}from"../../ui/chart.mjs";import{useId as a,useMemo as o}from"react";import{cn as s}from"@customafk/react-toolkit/utils";import{Fragment as c,jsx as l,jsxs as u}from"react/jsx-runtime";import{Area as d,AreaChart as f,Bar as p,BarChart as m,CartesianGrid as h,ComposedChart as g,Funnel as _,FunnelChart as v,Label as y,LabelList as b,Line as x,LineChart as S,Pie as C,PieChart as w,PolarAngleAxis as T,PolarRadiusAxis as E,RadialBar as D,RadialBarChart as O,ResponsiveContainer as k,XAxis as A,YAxis as j}from"recharts";const M=e=>`var(--chart-${(e%8+8)%8+1})`,N=(e,t=`en-US`)=>new Intl.NumberFormat(t,{notation:`compact`,maximumFractionDigits:1}).format(e),P=(e,t=`USD`,n=`en-US`)=>new Intl.NumberFormat(n,{style:`currency`,currency:t,notation:Math.abs(e)>=1e4?`compact`:`standard`,maximumFractionDigits:+(Math.abs(e)>=1e4)}).format(e),F=(e,t=`en-US`)=>new Intl.NumberFormat(t,{style:`percent`,maximumFractionDigits:1}).format(e),I=(e,t=`en-US`)=>{let n=e instanceof Date?e:new Date(e);return Number.isNaN(n.getTime())?String(e):n.toLocaleDateString(t,{month:`short`,day:`numeric`})},L=({data:t,showConversionRates:n=!0,valueFormatter:a=N,className:c,animate:d=!0,height:f})=>{let{chartData:p,config:m}=o(()=>{let e=t[0]?.value??0,r=t.map((t,r)=>{let i=e===0?0:t.value/e,o=n?`${a(t.value)} (${F(i)})`:a(t.value);return{...t,key:t.key||t.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`),fill:t.color||M(r),valueLabel:o}});return{chartData:r,config:Object.fromEntries(r.map(e=>[e.key,{label:e.name,color:e.fill}]))}},[t,n,a]);return l(e,{"data-slot":`conversion-funnel-chart`,config:m,className:s(`w-full`,c),style:f===void 0?void 0:{height:f,aspectRatio:`auto`},children:u(v,{margin:{top:8,right:120,bottom:8,left:120},children:[l(r,{content:l(i,{nameKey:`key`,hideLabel:!0})}),u(_,{dataKey:`value`,data:p,isAnimationActive:d,children:[l(b,{dataKey:`name`,position:`left`,offset:12,className:`fill-muted-strong`,fontSize:12}),l(b,{dataKey:`valueLabel`,position:`right`,offset:12,className:`fill-text-positive-strong font-number`,fontSize:12})]})]})})},R=e=>e.key||e.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`),z=({data:a,centerLabel:c,centerValueFormatter:d=N,totalValue:f,showLegend:p=!0,showCenterTotal:m=!0,className:h,animate:g=!0,height:_})=>{let{chartData:v,config:b,total:x}=o(()=>{let e=a.map((e,t)=>({...e,key:R(e),fill:e.color||M(t)}));return{chartData:e,config:Object.fromEntries(e.map(e=>[e.key,{label:e.name,color:e.fill}])),total:f??a.reduce((e,t)=>e+t.value,0)}},[a,f]);return l(e,{"data-slot":`donut-chart`,config:b,className:s(`mx-auto`,_===void 0&&`aspect-square`,h),style:_===void 0?void 0:{height:_,aspectRatio:`auto`},children:u(w,{children:[l(r,{cursor:!1,content:l(i,{nameKey:`key`,hideLabel:!0})}),l(C,{data:v,dataKey:`value`,nameKey:`key`,innerRadius:`60%`,strokeWidth:5,isAnimationActive:g,children:m&&l(y,{content:({viewBox:e})=>!e||!(`cx`in e)||!(`cy`in e)?null:u(`text`,{x:e.cx,y:e.cy,textAnchor:`middle`,dominantBaseline:`middle`,children:[l(`tspan`,{x:e.cx,y:e.cy,className:`fill-text-positive-strong font-number text-2xl font-bold`,children:d(x)}),c&&l(`tspan`,{x:e.cx,y:(e.cy||0)+22,className:`fill-muted text-xs`,children:c})]})})}),p&&l(t,{content:l(n,{nameKey:`key`})})]})})},B=({data:a,dataKey:c=`orders`,label:d=`Orders`,statuses:f,color:g=`var(--chart-1)`,valueFormatter:_=e=>e.toLocaleString(`en-US`),dateFormatter:v=I,showLegend:y=!!f,showGrid:b=!0,className:x,animate:S=!0,height:C})=>l(e,{"data-slot":`orders-bar-chart`,config:o(()=>f?Object.fromEntries(f.map((e,t)=>[e.key,{label:e.label,color:e.color||M(t)}])):{[c]:{label:d,color:g}},[f,c,d,g]),className:s(`w-full`,x),style:C===void 0?void 0:{height:C,aspectRatio:`auto`},children:u(m,{data:a,margin:{top:8,right:12,bottom:0,left:12},children:[b&&l(h,{vertical:!1}),l(A,{dataKey:`date`,tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:v}),l(j,{tickLine:!1,axisLine:!1,tickMargin:8,width:48,allowDecimals:!1,tickFormatter:_}),l(r,{content:l(i,{labelFormatter:(e,t)=>{let n=t?.[0]?.payload?.date;return n?v(n):null}})}),f?f.map((e,t)=>l(p,{dataKey:e.key,stackId:`orders`,fill:e.color||M(t),radius:t===f.length-1?[4,4,0,0]:[0,0,0,0],isAnimationActive:S},e.key)):l(p,{dataKey:c,fill:g,radius:[4,4,0,0],isAnimationActive:S}),y&&l(t,{content:l(n,{})})]})}),V=({data:p,label:m=`Revenue`,comparisonLabel:g=`Previous period`,showComparison:_=!1,color:v=`var(--chart-1)`,comparisonColor:y=`var(--chart-8)`,valueFormatter:b=e=>P(e),dateFormatter:x=I,showLegend:S=_,showGrid:C=!0,className:w,animate:T=!0,height:E})=>{let D=a(),O=o(()=>({value:{label:m,color:v},..._?{previousValue:{label:g,color:y}}:{}}),[m,v,_,g,y]);return l(e,{"data-slot":`revenue-area-chart`,config:O,className:s(`w-full`,w),style:E===void 0?void 0:{height:E,aspectRatio:`auto`},children:u(f,{data:p,margin:{top:8,right:12,bottom:0,left:12},children:[u(`defs`,{children:[u(`linearGradient`,{id:`${D}-value`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[l(`stop`,{offset:`5%`,stopColor:v,stopOpacity:.6}),l(`stop`,{offset:`95%`,stopColor:v,stopOpacity:.05})]}),u(`linearGradient`,{id:`${D}-previous`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[l(`stop`,{offset:`5%`,stopColor:y,stopOpacity:.3}),l(`stop`,{offset:`95%`,stopColor:y,stopOpacity:.02})]})]}),C&&l(h,{vertical:!1}),l(A,{dataKey:`date`,tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:x}),l(j,{tickLine:!1,axisLine:!1,tickMargin:8,width:64,tickFormatter:b}),l(r,{cursor:!1,content:l(i,{labelFormatter:(e,t)=>{let n=t?.[0]?.payload?.date;return n?x(n):null},formatter:(e,t,n)=>u(c,{children:[l(`div`,{className:`size-2.5 shrink-0 rounded-[2px]`,style:{backgroundColor:n.color}}),l(`span`,{className:`text-muted`,children:O[String(t)]?.label||t}),l(`span`,{className:`text-text-positive-strong font-number ml-auto font-medium tabular-nums`,children:b(Number(e))})]})})}),_&&l(d,{type:`natural`,dataKey:`previousValue`,stroke:y,strokeWidth:2,strokeDasharray:`4 4`,fill:`url(#${D}-previous)`,isAnimationActive:T}),l(d,{type:`natural`,dataKey:`value`,stroke:v,strokeWidth:2,fill:`url(#${D}-value)`,isAnimationActive:T}),S&&l(t,{content:l(n,{})})]})})},H=({data:a,revenueLabel:d=`Revenue`,ordersLabel:f=`Orders`,revenueColor:m=`var(--chart-1)`,ordersColor:_=`var(--chart-4)`,revenueFormatter:v=e=>P(e),ordersFormatter:y=e=>e.toLocaleString(`en-US`),dateFormatter:b=I,showLegend:S=!0,showGrid:C=!0,className:w,animate:T=!0,height:E})=>{let D=o(()=>({revenue:{label:d,color:m},orders:{label:f,color:_}}),[d,m,f,_]);return l(e,{"data-slot":`revenue-orders-composed-chart`,config:D,className:s(`w-full`,w),style:E===void 0?void 0:{height:E,aspectRatio:`auto`},children:u(g,{data:a,margin:{top:8,right:12,bottom:0,left:12},children:[C&&l(h,{vertical:!1}),l(A,{dataKey:`date`,tickLine:!1,axisLine:!1,tickMargin:8,tickFormatter:b}),l(j,{yAxisId:`revenue`,tickLine:!1,axisLine:!1,tickMargin:8,width:64,tickFormatter:v}),l(j,{yAxisId:`orders`,orientation:`right`,tickLine:!1,axisLine:!1,tickMargin:8,width:48,allowDecimals:!1,tickFormatter:y}),l(r,{content:l(i,{labelFormatter:(e,t)=>{let n=t?.[0]?.payload?.date;return n?b(n):null},formatter:(e,t,n)=>u(c,{children:[l(`div`,{className:`size-2.5 shrink-0 rounded-[2px]`,style:{backgroundColor:n.color}}),l(`span`,{className:`text-muted`,children:D[String(t)]?.label||t}),l(`span`,{className:`text-text-positive-strong font-number ml-auto font-medium tabular-nums`,children:t===`revenue`?v(Number(e)):y(Number(e))})]})})}),l(p,{dataKey:`revenue`,yAxisId:`revenue`,fill:m,radius:[4,4,0,0],isAnimationActive:T}),l(x,{type:`natural`,dataKey:`orders`,yAxisId:`orders`,stroke:_,strokeWidth:2,dot:!1,isAnimationActive:T}),S&&l(t,{content:l(n,{})})]})})},U=({value:t,target:n,label:r=`Target`,valueFormatter:i=(e,t)=>F(t===0?0:e/t),color:a=`var(--chart-1)`,className:c,animate:d=!0,height:f})=>{let p=o(()=>[{name:`progress`,value:Math.min(Math.max(t,0),n),fill:a}],[t,n,a]);return l(e,{"data-slot":`sales-target-radial-chart`,config:o(()=>({progress:{label:r,color:a}}),[r,a]),className:s(`mx-auto`,f===void 0&&`aspect-square`,c),style:f===void 0?void 0:{height:f,aspectRatio:`auto`},children:u(O,{data:p,startAngle:90,endAngle:-270,innerRadius:`75%`,outerRadius:`100%`,children:[l(T,{type:`number`,domain:[0,n],angleAxisId:0,tick:!1}),l(D,{dataKey:`value`,angleAxisId:0,background:!0,cornerRadius:10,isAnimationActive:d}),l(E,{tick:!1,tickLine:!1,axisLine:!1,children:l(y,{content:({viewBox:e})=>!e||!(`cx`in e)||!(`cy`in e)?null:u(`text`,{x:e.cx,y:e.cy,textAnchor:`middle`,dominantBaseline:`middle`,children:[l(`tspan`,{x:e.cx,y:e.cy,className:`fill-text-positive-strong font-number text-3xl font-bold`,children:i(t,n)}),l(`tspan`,{x:e.cx,y:(e.cy||0)+24,className:`fill-muted text-xs`,children:r})]})})})]})})},W={up:`var(--success)`,down:`var(--danger)`,neutral:`var(--chart-1)`},G=({data:e,type:t=`area`,trend:n=`neutral`,color:r,height:i=40,animate:c=!0,className:p})=>{let m=a(),h=r||W[n],g=o(()=>e.map(e=>typeof e==`number`?{value:e}:e),[e]),_={top:2,right:0,bottom:2,left:0};return l(`div`,{"data-slot":`sparkline-chart`,className:s(`w-full`,p),style:{height:i},children:l(k,{children:t===`line`?l(S,{data:g,margin:_,children:l(x,{type:`natural`,dataKey:`value`,stroke:h,strokeWidth:2,dot:!1,isAnimationActive:c})}):u(f,{data:g,margin:_,children:[l(`defs`,{children:u(`linearGradient`,{id:m,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[l(`stop`,{offset:`5%`,stopColor:h,stopOpacity:.4}),l(`stop`,{offset:`95%`,stopColor:h,stopOpacity:.05})]})}),l(d,{type:`natural`,dataKey:`value`,stroke:h,strokeWidth:2,fill:`url(#${m})`,isAnimationActive:c})]})})})},K=({data:t,label:n=`Sales`,maxItems:a=8,color:c=`var(--chart-1)`,valueFormatter:d=N,showValueLabels:f=!0,className:h,animate:g=!0,height:_})=>{let v=o(()=>[...t].sort((e,t)=>t.value-e.value).slice(0,a),[t,a]);return l(e,{"data-slot":`top-products-bar-chart`,config:o(()=>({value:{label:n,color:c}}),[n,c]),className:s(`w-full`,h),style:_===void 0?void 0:{height:_,aspectRatio:`auto`},children:u(m,{data:v,layout:`vertical`,margin:{top:0,right:f?48:12,bottom:0,left:12},children:[l(A,{type:`number`,dataKey:`value`,hide:!0}),l(j,{type:`category`,dataKey:`name`,tickLine:!1,axisLine:!1,tickMargin:8,width:120}),l(r,{cursor:!1,content:l(i,{hideLabel:!0})}),l(p,{dataKey:`value`,fill:c,radius:4,isAnimationActive:g,children:f&&l(b,{dataKey:`value`,position:`right`,offset:8,className:`fill-muted-strong`,fontSize:12,formatter:e=>d(Number(e))})})]})})};export{L as ConversionFunnelChart,z as DonutChart,B as OrdersBarChart,V as RevenueAreaChart,H as RevenueOrdersComposedChart,U as SalesTargetRadialChart,G as SparklineChart,K as TopProductsBarChart,N as formatCompactNumber,P as formatCurrency,F as formatPercent,M as getChartColor,I as toDateLabel};
|
|
2
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../packages/components/features/charts/utils.ts","../../../packages/components/features/charts/components/conversion-funnel-chart.tsx","../../../packages/components/features/charts/components/donut-chart.tsx","../../../packages/components/features/charts/components/orders-bar-chart.tsx","../../../packages/components/features/charts/components/revenue-area-chart.tsx","../../../packages/components/features/charts/components/revenue-orders-composed-chart.tsx","../../../packages/components/features/charts/components/sales-target-radial-chart.tsx","../../../packages/components/features/charts/components/sparkline-chart.tsx","../../../packages/components/features/charts/components/top-products-bar-chart.tsx"],"sourcesContent":["const CHART_COLOR_COUNT = 8;\n\n/** Cycles through the eight `--chart-N` theme palette variables. */\nexport const getChartColor = (index: number): string => `var(--chart-${(((index % CHART_COLOR_COUNT) + CHART_COLOR_COUNT) % CHART_COLOR_COUNT) + 1})`;\n\nexport const formatCompactNumber = (value: number, locale = 'en-US'): string =>\n new Intl.NumberFormat(locale, { notation: 'compact', maximumFractionDigits: 1 }).format(value);\n\nexport const formatCurrency = (value: number, currency = 'USD', locale = 'en-US'): string =>\n new Intl.NumberFormat(locale, {\n style: 'currency',\n currency,\n notation: Math.abs(value) >= 10_000 ? 'compact' : 'standard',\n maximumFractionDigits: Math.abs(value) >= 10_000 ? 1 : 0,\n }).format(value);\n\nexport const formatPercent = (value: number, locale = 'en-US'): string =>\n new Intl.NumberFormat(locale, { style: 'percent', maximumFractionDigits: 1 }).format(value);\n\nexport const toDateLabel = (date: string | Date, locale = 'en-US'): string => {\n const parsed = date instanceof Date ? date : new Date(date);\n if (Number.isNaN(parsed.getTime())) return String(date);\n return parsed.toLocaleDateString(locale, { month: 'short', day: 'numeric' });\n};\n","'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Funnel, FunnelChart, LabelList } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatCompactNumber, formatPercent, getChartColor } from '../utils';\n\nexport type FunnelStage = NamedValue & {\n /** Config key; derived from `name` when omitted. */\n key?: string;\n color?: string;\n};\n\nexport type ConversionFunnelChartProps = BaseChartProps & {\n /** Funnel stages ordered top (widest) to bottom. */\n data: FunnelStage[];\n /** Appends each stage's percentage of the first stage. Defaults to `true`. */\n showConversionRates?: boolean;\n valueFormatter?: (value: number) => string;\n};\n\n/**\n * A conversion funnel for the ecommerce purchase journey — sessions, product views, carts,\n * checkouts, purchases — with per-stage conversion rates against the first stage.\n *\n * @example\n * ```tsx\n * import { ConversionFunnelChart } from '@customafk/lunas-ui/features/charts';\n *\n * <ConversionFunnelChart\n * data={[\n * { name: 'Sessions', value: 50000 },\n * { name: 'Product views', value: 32000 },\n * { name: 'Added to cart', value: 8400 },\n * { name: 'Purchased', value: 2900 },\n * ]}\n * />\n * ```\n */\nexport const ConversionFunnelChart = ({\n data,\n showConversionRates = true,\n valueFormatter = formatCompactNumber,\n className,\n animate = true,\n height,\n}: ConversionFunnelChartProps) => {\n const { chartData, config } = useMemo(() => {\n const first = data[0]?.value ?? 0;\n const entries = data.map((stage, index) => {\n const rate = first === 0 ? 0 : stage.value / first;\n const valueLabel = showConversionRates ? `${valueFormatter(stage.value)} (${formatPercent(rate)})` : valueFormatter(stage.value);\n return {\n ...stage,\n key: stage.key || stage.name.toLowerCase().replace(/[^a-z0-9]+/g, '-'),\n fill: stage.color || getChartColor(index),\n valueLabel,\n };\n });\n const chartConfig: ChartConfig = Object.fromEntries(entries.map(entry => [entry.key, { label: entry.name, color: entry.fill }]));\n return { chartData: entries, config: chartConfig };\n }, [data, showConversionRates, valueFormatter]);\n\n return (\n <ChartContainer\n data-slot=\"conversion-funnel-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <FunnelChart margin={{ top: 8, right: 120, bottom: 8, left: 120 }}>\n <ChartTooltip content={<ChartTooltipContent nameKey=\"key\" hideLabel />} />\n <Funnel dataKey=\"value\" data={chartData} isAnimationActive={animate}>\n <LabelList dataKey=\"name\" position=\"left\" offset={12} className=\"fill-muted-strong\" fontSize={12} />\n <LabelList dataKey=\"valueLabel\" position=\"right\" offset={12} className=\"fill-text-positive-strong font-number\" fontSize={12} />\n </Funnel>\n </FunnelChart>\n </ChartContainer>\n );\n};\n","'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Label, Pie, PieChart } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatCompactNumber, getChartColor } from '../utils';\n\nexport type DonutChartSegment = NamedValue & {\n /** Config key; derived from `name` when omitted. */\n key?: string;\n color?: string;\n};\n\nexport type DonutChartProps = BaseChartProps & {\n data: DonutChartSegment[];\n /** Text under the center total, e.g. `'Total sales'`. */\n centerLabel?: string;\n /** Formats the center total. Defaults to compact notation. */\n centerValueFormatter?: (total: number) => string;\n /** Overrides the computed segment sum shown in the center. */\n totalValue?: number;\n showLegend?: boolean;\n showCenterTotal?: boolean;\n};\n\nconst toKey = (segment: DonutChartSegment): string => segment.key || segment.name.toLowerCase().replace(/[^a-z0-9]+/g, '-');\n\n/**\n * A donut breakdown chart with a center total — category sales, traffic sources, payment methods.\n *\n * @example\n * ```tsx\n * import { DonutChart } from '@customafk/lunas-ui/features/charts';\n *\n * <DonutChart\n * data={[\n * { name: 'Fashion', value: 12400 },\n * { name: 'Electronics', value: 8200 },\n * ]}\n * centerLabel=\"Total sales\"\n * />\n * ```\n */\nexport const DonutChart = ({\n data,\n centerLabel,\n centerValueFormatter = formatCompactNumber,\n totalValue,\n showLegend = true,\n showCenterTotal = true,\n className,\n animate = true,\n height,\n}: DonutChartProps) => {\n const { chartData, config, total } = useMemo(() => {\n const entries = data.map((segment, index) => ({\n ...segment,\n key: toKey(segment),\n fill: segment.color || getChartColor(index),\n }));\n const chartConfig: ChartConfig = Object.fromEntries(entries.map(entry => [entry.key, { label: entry.name, color: entry.fill }]));\n return {\n chartData: entries,\n config: chartConfig,\n total: totalValue ?? data.reduce((sum, segment) => sum + segment.value, 0),\n };\n }, [data, totalValue]);\n\n return (\n <ChartContainer\n data-slot=\"donut-chart\"\n config={config}\n className={cn('mx-auto', height === undefined && 'aspect-square', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <PieChart>\n <ChartTooltip cursor={false} content={<ChartTooltipContent nameKey=\"key\" hideLabel />} />\n <Pie data={chartData} dataKey=\"value\" nameKey=\"key\" innerRadius=\"60%\" strokeWidth={5} isAnimationActive={animate}>\n {showCenterTotal && (\n <Label\n content={({ viewBox }) => {\n if (!viewBox || !('cx' in viewBox) || !('cy' in viewBox)) return null;\n return (\n <text x={viewBox.cx} y={viewBox.cy} textAnchor=\"middle\" dominantBaseline=\"middle\">\n <tspan x={viewBox.cx} y={viewBox.cy} className=\"fill-text-positive-strong font-number text-2xl font-bold\">\n {centerValueFormatter(total)}\n </tspan>\n {centerLabel && (\n <tspan x={viewBox.cx} y={(viewBox.cy || 0) + 22} className=\"fill-muted text-xs\">\n {centerLabel}\n </tspan>\n )}\n </text>\n );\n }}\n />\n )}\n </Pie>\n {showLegend && <ChartLegend content={<ChartLegendContent nameKey=\"key\" />} />}\n </PieChart>\n </ChartContainer>\n );\n};\n","'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, CartesianGrid, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, ChartSeries } from '../types';\nimport { getChartColor, toDateLabel } from '../utils';\n\nexport type OrdersBarChartProps = BaseChartProps & {\n data: Array<{ date: string | Date } & Record<string, unknown>>;\n /** Simple mode: the key holding each period's count. Defaults to `'orders'`. */\n dataKey?: string;\n /** Series label in simple mode. Defaults to `'Orders'`. */\n label?: string;\n /** Stacked mode: one series per order status; each `key` indexes into the data rows. */\n statuses?: ChartSeries[];\n color?: string;\n valueFormatter?: (value: number) => string;\n dateFormatter?: (date: string | Date) => string;\n /** Defaults to `true` when `statuses` is provided. */\n showLegend?: boolean;\n showGrid?: boolean;\n};\n\n/**\n * A bar chart for order volume per period — a single series by default, or stacked by order\n * status when `statuses` is provided.\n *\n * @example\n * ```tsx\n * import { OrdersBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <OrdersBarChart\n * data={[{ date: '2026-06-01', completed: 32, pending: 6, cancelled: 2 }]}\n * statuses={[\n * { key: 'completed', label: 'Completed' },\n * { key: 'pending', label: 'Pending' },\n * { key: 'cancelled', label: 'Cancelled' },\n * ]}\n * />\n * ```\n */\nexport const OrdersBarChart = ({\n data,\n dataKey = 'orders',\n label = 'Orders',\n statuses,\n color = 'var(--chart-1)',\n valueFormatter = value => value.toLocaleString('en-US'),\n dateFormatter = toDateLabel,\n showLegend = !!statuses,\n showGrid = true,\n className,\n animate = true,\n height,\n}: OrdersBarChartProps) => {\n const config = useMemo<ChartConfig>(() => {\n if (!statuses) return { [dataKey]: { label, color } };\n return Object.fromEntries(statuses.map((status, index) => [status.key, { label: status.label, color: status.color || getChartColor(index) }]));\n }, [statuses, dataKey, label, color]);\n\n return (\n <ChartContainer\n data-slot=\"orders-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"date\" tickLine={false} axisLine={false} tickMargin={8} tickFormatter={dateFormatter} />\n <YAxis tickLine={false} axisLine={false} tickMargin={8} width={48} allowDecimals={false} tickFormatter={valueFormatter} />\n <ChartTooltip\n content={\n <ChartTooltipContent\n labelFormatter={(_, payload) => {\n const date = payload?.[0]?.payload?.date;\n return date ? dateFormatter(date) : null;\n }}\n />\n }\n />\n {statuses ? (\n statuses.map((status, index) => (\n <Bar\n key={status.key}\n dataKey={status.key}\n stackId=\"orders\"\n fill={status.color || getChartColor(index)}\n radius={index === statuses.length - 1 ? [4, 4, 0, 0] : [0, 0, 0, 0]}\n isAnimationActive={animate}\n />\n ))\n ) : (\n <Bar dataKey={dataKey} fill={color} radius={[4, 4, 0, 0]} isAnimationActive={animate} />\n )}\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n </BarChart>\n </ChartContainer>\n );\n};\n","'use client';\n\nimport { useId, useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Area, AreaChart, CartesianGrid, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, TimeSeriesPoint } from '../types';\nimport { formatCurrency, toDateLabel } from '../utils';\n\nexport type RevenueAreaChartProps = BaseChartProps & {\n data: TimeSeriesPoint[];\n /** Series label. Defaults to `'Revenue'`. */\n label?: string;\n /** Comparison series label. Defaults to `'Previous period'`. */\n comparisonLabel?: string;\n /** Renders `previousValue` as a second, muted area series. */\n showComparison?: boolean;\n color?: string;\n comparisonColor?: string;\n /** Formats tooltip and Y-axis values. Defaults to compact currency. */\n valueFormatter?: (value: number) => string;\n dateFormatter?: (date: string | Date) => string;\n /** Defaults to `showComparison`. */\n showLegend?: boolean;\n showGrid?: boolean;\n};\n\n/**\n * A gradient area chart for revenue (or any currency metric) over time, with an optional\n * previous-period comparison series.\n *\n * @example\n * ```tsx\n * import { RevenueAreaChart } from '@customafk/lunas-ui/features/charts';\n *\n * <RevenueAreaChart\n * data={[\n * { date: '2026-06-01', value: 4200, previousValue: 3800 },\n * { date: '2026-06-02', value: 5100, previousValue: 4300 },\n * ]}\n * showComparison\n * />\n * ```\n */\nexport const RevenueAreaChart = ({\n data,\n label = 'Revenue',\n comparisonLabel = 'Previous period',\n showComparison = false,\n color = 'var(--chart-1)',\n comparisonColor = 'var(--chart-8)',\n valueFormatter = value => formatCurrency(value),\n dateFormatter = toDateLabel,\n showLegend = showComparison,\n showGrid = true,\n className,\n animate = true,\n height,\n}: RevenueAreaChartProps) => {\n const gradientId = useId();\n\n const config = useMemo<ChartConfig>(\n () => ({\n value: { label, color },\n ...(showComparison ? { previousValue: { label: comparisonLabel, color: comparisonColor } } : {}),\n }),\n [label, color, showComparison, comparisonLabel, comparisonColor]\n );\n\n return (\n <ChartContainer\n data-slot=\"revenue-area-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <AreaChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n <defs>\n <linearGradient id={`${gradientId}-value`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"5%\" stopColor={color} stopOpacity={0.6} />\n <stop offset=\"95%\" stopColor={color} stopOpacity={0.05} />\n </linearGradient>\n <linearGradient id={`${gradientId}-previous`} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"5%\" stopColor={comparisonColor} stopOpacity={0.3} />\n <stop offset=\"95%\" stopColor={comparisonColor} stopOpacity={0.02} />\n </linearGradient>\n </defs>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"date\" tickLine={false} axisLine={false} tickMargin={8} tickFormatter={dateFormatter} />\n <YAxis tickLine={false} axisLine={false} tickMargin={8} width={64} tickFormatter={valueFormatter} />\n <ChartTooltip\n cursor={false}\n content={\n <ChartTooltipContent\n labelFormatter={(_, payload) => {\n const date = payload?.[0]?.payload?.date;\n return date ? dateFormatter(date) : null;\n }}\n formatter={(value, name, item) => (\n <>\n <div className=\"size-2.5 shrink-0 rounded-[2px]\" style={{ backgroundColor: item.color }} />\n <span className=\"text-muted\">{config[String(name)]?.label || name}</span>\n <span className=\"text-text-positive-strong font-number ml-auto font-medium tabular-nums\">{valueFormatter(Number(value))}</span>\n </>\n )}\n />\n }\n />\n {showComparison && (\n <Area\n type=\"natural\"\n dataKey=\"previousValue\"\n stroke={comparisonColor}\n strokeWidth={2}\n strokeDasharray=\"4 4\"\n fill={`url(#${gradientId}-previous)`}\n isAnimationActive={animate}\n />\n )}\n <Area type=\"natural\" dataKey=\"value\" stroke={color} strokeWidth={2} fill={`url(#${gradientId}-value)`} isAnimationActive={animate} />\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n </AreaChart>\n </ChartContainer>\n );\n};\n","'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, CartesianGrid, ComposedChart, Line, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps } from '../types';\nimport { formatCurrency, toDateLabel } from '../utils';\n\nexport type RevenueOrdersPoint = {\n date: string | Date;\n revenue: number;\n orders: number;\n};\n\nexport type RevenueOrdersComposedChartProps = BaseChartProps & {\n data: RevenueOrdersPoint[];\n revenueLabel?: string;\n ordersLabel?: string;\n revenueColor?: string;\n ordersColor?: string;\n /** Formats the left (revenue) axis and tooltip values. Defaults to compact currency. */\n revenueFormatter?: (value: number) => string;\n /** Formats the right (orders) axis and tooltip values. */\n ordersFormatter?: (value: number) => string;\n dateFormatter?: (date: string | Date) => string;\n showLegend?: boolean;\n showGrid?: boolean;\n};\n\n/**\n * A dual-axis chart combining revenue bars (left axis, currency) with an orders line\n * (right axis, count) to correlate the two metrics per period.\n *\n * @example\n * ```tsx\n * import { RevenueOrdersComposedChart } from '@customafk/lunas-ui/features/charts';\n *\n * <RevenueOrdersComposedChart\n * data={[{ date: '2026-06-01', revenue: 12400, orders: 87 }]}\n * />\n * ```\n */\nexport const RevenueOrdersComposedChart = ({\n data,\n revenueLabel = 'Revenue',\n ordersLabel = 'Orders',\n revenueColor = 'var(--chart-1)',\n ordersColor = 'var(--chart-4)',\n revenueFormatter = value => formatCurrency(value),\n ordersFormatter = value => value.toLocaleString('en-US'),\n dateFormatter = toDateLabel,\n showLegend = true,\n showGrid = true,\n className,\n animate = true,\n height,\n}: RevenueOrdersComposedChartProps) => {\n const config = useMemo<ChartConfig>(\n () => ({\n revenue: { label: revenueLabel, color: revenueColor },\n orders: { label: ordersLabel, color: ordersColor },\n }),\n [revenueLabel, revenueColor, ordersLabel, ordersColor]\n );\n\n return (\n <ChartContainer\n data-slot=\"revenue-orders-composed-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <ComposedChart data={data} margin={{ top: 8, right: 12, bottom: 0, left: 12 }}>\n {showGrid && <CartesianGrid vertical={false} />}\n <XAxis dataKey=\"date\" tickLine={false} axisLine={false} tickMargin={8} tickFormatter={dateFormatter} />\n <YAxis yAxisId=\"revenue\" tickLine={false} axisLine={false} tickMargin={8} width={64} tickFormatter={revenueFormatter} />\n <YAxis\n yAxisId=\"orders\"\n orientation=\"right\"\n tickLine={false}\n axisLine={false}\n tickMargin={8}\n width={48}\n allowDecimals={false}\n tickFormatter={ordersFormatter}\n />\n <ChartTooltip\n content={\n <ChartTooltipContent\n labelFormatter={(_, payload) => {\n const date = payload?.[0]?.payload?.date;\n return date ? dateFormatter(date) : null;\n }}\n formatter={(value, name, item) => (\n <>\n <div className=\"size-2.5 shrink-0 rounded-[2px]\" style={{ backgroundColor: item.color }} />\n <span className=\"text-muted\">{config[String(name)]?.label || name}</span>\n <span className=\"text-text-positive-strong font-number ml-auto font-medium tabular-nums\">\n {name === 'revenue' ? revenueFormatter(Number(value)) : ordersFormatter(Number(value))}\n </span>\n </>\n )}\n />\n }\n />\n <Bar dataKey=\"revenue\" yAxisId=\"revenue\" fill={revenueColor} radius={[4, 4, 0, 0]} isAnimationActive={animate} />\n <Line type=\"natural\" dataKey=\"orders\" yAxisId=\"orders\" stroke={ordersColor} strokeWidth={2} dot={false} isAnimationActive={animate} />\n {showLegend && <ChartLegend content={<ChartLegendContent />} />}\n </ComposedChart>\n </ChartContainer>\n );\n};\n","'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer } from '@/components/ui/chart';\n\nimport { Label, PolarAngleAxis, PolarRadiusAxis, RadialBar, RadialBarChart } from 'recharts';\nimport type { BaseChartProps } from '../types';\nimport { formatPercent } from '../utils';\n\nexport type SalesTargetRadialChartProps = BaseChartProps & {\n /** Current progress value, e.g. revenue to date. */\n value: number;\n /** The goal the value is measured against. */\n target: number;\n /** Text under the center figure. Defaults to `'Target'`. */\n label?: string;\n /** Formats the center figure. Defaults to percent-of-target. */\n valueFormatter?: (value: number, target: number) => string;\n color?: string;\n};\n\n/**\n * A radial gauge showing progress toward a sales target with the completion figure in the center.\n *\n * @example\n * ```tsx\n * import { SalesTargetRadialChart } from '@customafk/lunas-ui/features/charts';\n *\n * <SalesTargetRadialChart value={65_000} target={100_000} label=\"Monthly target\" />\n * ```\n */\nexport const SalesTargetRadialChart = ({\n value,\n target,\n label = 'Target',\n valueFormatter = (current, goal) => formatPercent(goal === 0 ? 0 : current / goal),\n color = 'var(--chart-1)',\n className,\n animate = true,\n height,\n}: SalesTargetRadialChartProps) => {\n const chartData = useMemo(() => [{ name: 'progress', value: Math.min(Math.max(value, 0), target), fill: color }], [value, target, color]);\n\n const config = useMemo<ChartConfig>(() => ({ progress: { label, color } }), [label, color]);\n\n return (\n <ChartContainer\n data-slot=\"sales-target-radial-chart\"\n config={config}\n className={cn('mx-auto', height === undefined && 'aspect-square', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <RadialBarChart data={chartData} startAngle={90} endAngle={-270} innerRadius=\"75%\" outerRadius=\"100%\">\n <PolarAngleAxis type=\"number\" domain={[0, target]} angleAxisId={0} tick={false} />\n <RadialBar dataKey=\"value\" angleAxisId={0} background cornerRadius={10} isAnimationActive={animate} />\n <PolarRadiusAxis tick={false} tickLine={false} axisLine={false}>\n <Label\n content={({ viewBox }) => {\n if (!viewBox || !('cx' in viewBox) || !('cy' in viewBox)) return null;\n return (\n <text x={viewBox.cx} y={viewBox.cy} textAnchor=\"middle\" dominantBaseline=\"middle\">\n <tspan x={viewBox.cx} y={viewBox.cy} className=\"fill-text-positive-strong font-number text-3xl font-bold\">\n {valueFormatter(value, target)}\n </tspan>\n <tspan x={viewBox.cx} y={(viewBox.cy || 0) + 24} className=\"fill-muted text-xs\">\n {label}\n </tspan>\n </text>\n );\n }}\n />\n </PolarRadiusAxis>\n </RadialBarChart>\n </ChartContainer>\n );\n};\n","'use client';\n\nimport { useId, useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Area, AreaChart, Line, LineChart, ResponsiveContainer } from 'recharts';\nimport type { ChartTrend } from '../types';\n\nconst TREND_COLORS: Record<ChartTrend, string> = {\n up: 'var(--success)',\n down: 'var(--danger)',\n neutral: 'var(--chart-1)',\n};\n\nexport type SparklineChartProps = {\n data: number[] | Array<{ value: number }>;\n /** Render style. Defaults to `'area'`. */\n type?: 'line' | 'area';\n /** Colors the series like the `Statistic` trend prop. Defaults to `'neutral'`. */\n trend?: ChartTrend;\n /** Explicit series color; overrides `trend`. */\n color?: string;\n /** Fixed height in px. Defaults to `40`. */\n height?: number;\n animate?: boolean;\n className?: string;\n};\n\n/**\n * A tiny, axis-less trend chart for KPI cards; pairs with the `Statistic` display component.\n *\n * @example\n * ```tsx\n * import { SparklineChart } from '@customafk/lunas-ui/features/charts';\n *\n * <SparklineChart data={[12, 18, 14, 26, 22, 31]} trend=\"up\" />\n * ```\n */\nexport const SparklineChart = ({ data, type = 'area', trend = 'neutral', color, height = 40, animate = true, className }: SparklineChartProps) => {\n const gradientId = useId();\n const seriesColor = color || TREND_COLORS[trend];\n\n const chartData = useMemo(() => data.map(point => (typeof point === 'number' ? { value: point } : point)), [data]);\n\n const margin = { top: 2, right: 0, bottom: 2, left: 0 };\n\n return (\n <div data-slot=\"sparkline-chart\" className={cn('w-full', className)} style={{ height }}>\n <ResponsiveContainer>\n {type === 'line' ? (\n <LineChart data={chartData} margin={margin}>\n <Line type=\"natural\" dataKey=\"value\" stroke={seriesColor} strokeWidth={2} dot={false} isAnimationActive={animate} />\n </LineChart>\n ) : (\n <AreaChart data={chartData} margin={margin}>\n <defs>\n <linearGradient id={gradientId} x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"5%\" stopColor={seriesColor} stopOpacity={0.4} />\n <stop offset=\"95%\" stopColor={seriesColor} stopOpacity={0.05} />\n </linearGradient>\n </defs>\n <Area type=\"natural\" dataKey=\"value\" stroke={seriesColor} strokeWidth={2} fill={`url(#${gradientId})`} isAnimationActive={animate} />\n </AreaChart>\n )}\n </ResponsiveContainer>\n </div>\n );\n};\n","'use client';\n\nimport { useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { type ChartConfig, ChartContainer, ChartTooltip, ChartTooltipContent } from '@/components/ui/chart';\n\nimport { Bar, BarChart, LabelList, XAxis, YAxis } from 'recharts';\nimport type { BaseChartProps, NamedValue } from '../types';\nimport { formatCompactNumber } from '../utils';\n\nexport type TopProductsBarChartProps = BaseChartProps & {\n data: NamedValue[];\n /** Series label. Defaults to `'Sales'`. */\n label?: string;\n /** Number of items shown after sorting descending. Defaults to `8`. */\n maxItems?: number;\n color?: string;\n valueFormatter?: (value: number) => string;\n /** Value labels at the end of each bar. Defaults to `true`. */\n showValueLabels?: boolean;\n};\n\n/**\n * A horizontal bar ranking chart — top products, best categories, top customers.\n *\n * @example\n * ```tsx\n * import { TopProductsBarChart } from '@customafk/lunas-ui/features/charts';\n *\n * <TopProductsBarChart\n * data={[\n * { name: 'Wireless Earbuds', value: 1245 },\n * { name: 'Smart Watch', value: 986 },\n * ]}\n * />\n * ```\n */\nexport const TopProductsBarChart = ({\n data,\n label = 'Sales',\n maxItems = 8,\n color = 'var(--chart-1)',\n valueFormatter = formatCompactNumber,\n showValueLabels = true,\n className,\n animate = true,\n height,\n}: TopProductsBarChartProps) => {\n const chartData = useMemo(() => [...data].sort((a, b) => b.value - a.value).slice(0, maxItems), [data, maxItems]);\n\n const config = useMemo<ChartConfig>(() => ({ value: { label, color } }), [label, color]);\n\n return (\n <ChartContainer\n data-slot=\"top-products-bar-chart\"\n config={config}\n className={cn('w-full', className)}\n style={height !== undefined ? { height, aspectRatio: 'auto' } : undefined}\n >\n <BarChart data={chartData} layout=\"vertical\" margin={{ top: 0, right: showValueLabels ? 48 : 12, bottom: 0, left: 12 }}>\n <XAxis type=\"number\" dataKey=\"value\" hide />\n <YAxis type=\"category\" dataKey=\"name\" tickLine={false} axisLine={false} tickMargin={8} width={120} />\n <ChartTooltip cursor={false} content={<ChartTooltipContent hideLabel />} />\n <Bar dataKey=\"value\" fill={color} radius={4} isAnimationActive={animate}>\n {showValueLabels && (\n <LabelList\n dataKey=\"value\"\n position=\"right\"\n offset={8}\n className=\"fill-muted-strong\"\n fontSize={12}\n formatter={(value: React.ReactNode) => valueFormatter(Number(value))}\n />\n )}\n </Bar>\n </BarChart>\n </ChartContainer>\n );\n};\n"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./ui/card.cjs"),r=require("./ui/skeleton.cjs"),ee=require("./ui/image.cjs"),te=require("./cards/grid-product-card.cjs"),ne=require("./cards/product-card.cjs"),re=require("./cards/simple-card.cjs"),ie=require("./layouts/flex.cjs"),ae=require("./data-display/country.cjs"),i=require("./data-display/data-list.cjs"),oe=require("./date-B3cozmfV.cjs"),a=require("./ui/badge.cjs"),o=require("./ui/tooltip.cjs"),s=require("./data-display/date-tooltip.cjs"),c=require("./data-display/empty.cjs"),l=require("./data-display/name.cjs"),se=require("./data-display/phone-number.cjs"),ce=require("./data-display/role-badge.cjs"),le=require("./data-display/statistic.cjs"),u=require("./ui/avatar.cjs"),ue=require("./data-display/user.cjs"),d=require("./ui/alert-dialog.cjs"),de=require("./dialogs/confirm-dialog.cjs"),fe=require("./typography/title.cjs"),pe=require("./ui/separator.cjs"),f=require("./ui/sheet.cjs"),me=require("./dialogs/detail-dialog/index.cjs"),p=require("./dialogs/error-dialog.cjs"),m=require("./ui/dialog.cjs"),he=require("./dialogs/loading-dialog.cjs"),h=require("./features/descriptions/index.cjs"),g=require("./ui/command.cjs"),ge=require("./search-modal-CMhsIxae.cjs"),_=require("./tables-B0Jl8Osc.cjs"),v=require("./ui/dropdown-menu.cjs"),y=require("./ui/progress.cjs"),b=require("./ui/switch.cjs"),_e=require("./ui/checkbox.cjs"),ve=require("./ui/spinner.cjs"),x=require("./ui/resizable.cjs"),ye=require("./ui/input.cjs"),be=require("./ui/label.cjs"),S=require("./ui/popover.cjs"),C=require("./ui/select.cjs"),w=require("./tanstack-form-BMVn8ai_.cjs"),T=require("./ui/drawer.cjs"),E=require("./ui/calendar.cjs"),D=require("./ui/radio-group.cjs"),O=require("./ui/textarea.cjs"),k=require("./text-editor-DJYQXXtP.cjs"),A=require("./cms-layout-SubgSF72.cjs"),j=require("./payment-layout-BLrXT-oc.cjs"),M=require("./layouts/grid.cjs"),N=require("./pages/FeatureDeveloping.cjs"),xe=require("./pages/FeatureFixing.cjs"),Se=require("./pages/NotAuthorized.cjs"),Ce=require("./pages/NotFound.cjs"),P=require("./alert-D31c6DLq.cjs"),we=require("./pages/LoginPage.cjs"),Te=require("./pages/RegisterPage.cjs"),F=require("./ui/input-otp.cjs"),Ee=require("./pages/VerifyEmailPage.cjs"),De=require("./systems/google.cjs"),Oe=require("./ui/buttons/add-new.cjs"),ke=require("./ui/buttons/edit.cjs"),Ae=require("./ui/buttons/refresh.cjs"),je=require("./ui/buttons/trash.cjs"),Me=require("./ui/buttons/upload-image.cjs"),Ne=require("./ui/inputs/search-input.cjs"),Pe=require("./ui/aspect-ratio.cjs"),I=require("./ui/breadcrumb.cjs"),L=require("./ui/button-group.cjs"),R=require("./ui/carousel.cjs"),z=require("./ui/collapsible.cjs"),B=require("./ui/context-menu.cjs"),V=require("./ui/empty.cjs"),Fe=require("./ui/file-uploader.cjs"),H=require("./ui/form.cjs"),U=require("./ui/hover-card.cjs"),W=require("./ui/item.cjs"),G=require("./ui/menubar.cjs"),K=require("./ui/multi-select.cjs"),q=require("./ui/navigation-menu.cjs"),J=require("./ui/pagination.cjs"),Y=require("./ui/scroll-area.cjs"),Ie=require("./ui/slider.cjs"),Le=require("./ui/sonner.cjs"),X=require("./ui/table.cjs"),Z=require("./ui/tabs.cjs"),Q=require("./ui/toggle.cjs"),$=require("./ui/toggle-group.cjs");let Re=require("sonner");exports.AddNewBtn=Oe.AddNewBtn,exports.Alert=P.t,exports.AlertDescription=P.n,exports.AlertDialog=d.AlertDialog,exports.AlertDialogAction=d.AlertDialogAction,exports.AlertDialogCancel=d.AlertDialogCancel,exports.AlertDialogContent=d.AlertDialogContent,exports.AlertDialogDescription=d.AlertDialogDescription,exports.AlertDialogFooter=d.AlertDialogFooter,exports.AlertDialogHeader=d.AlertDialogHeader,exports.AlertDialogOverlay=d.AlertDialogOverlay,exports.AlertDialogPortal=d.AlertDialogPortal,exports.AlertDialogTitle=d.AlertDialogTitle,exports.AlertDialogTrigger=d.AlertDialogTrigger,exports.AlertTitle=P.r,exports.ArrayCol=w.W,exports.ArrayHeaderRow=w.G,exports.AspectRatio=Pe.AspectRatio,exports.Avatar=u.Avatar,exports.AvatarFallback=u.AvatarFallback,exports.AvatarImage=u.AvatarImage,exports.Badge=a.Badge,exports.Breadcrumb=I.Breadcrumb,exports.BreadcrumbEllipsis=I.BreadcrumbEllipsis,exports.BreadcrumbItem=I.BreadcrumbItem,exports.BreadcrumbLink=I.BreadcrumbLink,exports.BreadcrumbList=I.BreadcrumbList,exports.BreadcrumbPage=I.BreadcrumbPage,exports.BreadcrumbSeparator=I.BreadcrumbSeparator,exports.Button=e.Button,exports.ButtonGroup=L.ButtonGroup,exports.ButtonGroupSeparator=L.ButtonGroupSeparator,exports.ButtonGroupText=L.ButtonGroupText,exports.CMSLayout=A.t,exports.Calendar=E.Calendar,exports.CalendarDayButton=E.CalendarDayButton,exports.Card=n.Card,exports.CardAction=n.CardAction,exports.CardContent=n.CardContent,exports.CardDescription=n.CardDescription,exports.CardFooter=n.CardFooter,exports.CardHeader=n.CardHeader,exports.CardTitle=n.CardTitle,exports.Carousel=R.Carousel,exports.CarouselContent=R.CarouselContent,exports.CarouselItem=R.CarouselItem,exports.CarouselNext=R.CarouselNext,exports.CarouselPrevious=R.CarouselPrevious,exports.Checkbox=_e.Checkbox,exports.CheckboxField=w.E,exports.Collapsible=z.Collapsible,exports.CollapsibleContent=z.CollapsibleContent,exports.CollapsibleTrigger=z.CollapsibleTrigger,exports.ComboboxField=w.T,exports.Command=g.Command,exports.CommandDialog=g.CommandDialog,exports.CommandEmpty=g.CommandEmpty,exports.CommandGroup=g.CommandGroup,exports.CommandInput=g.CommandInput,exports.CommandItem=g.CommandItem,exports.CommandList=g.CommandList,exports.CommandSeparator=g.CommandSeparator,exports.CommandShortcut=g.CommandShortcut,exports.ConfirmDialog=de.ConfirmDialog,exports.ContextMenu=B.ContextMenu,exports.ContextMenuCheckboxItem=B.ContextMenuCheckboxItem,exports.ContextMenuContent=B.ContextMenuContent,exports.ContextMenuGroup=B.ContextMenuGroup,exports.ContextMenuItem=B.ContextMenuItem,exports.ContextMenuLabel=B.ContextMenuLabel,exports.ContextMenuPortal=B.ContextMenuPortal,exports.ContextMenuRadioGroup=B.ContextMenuRadioGroup,exports.ContextMenuRadioItem=B.ContextMenuRadioItem,exports.ContextMenuSeparator=B.ContextMenuSeparator,exports.ContextMenuShortcut=B.ContextMenuShortcut,exports.ContextMenuSub=B.ContextMenuSub,exports.ContextMenuSubContent=B.ContextMenuSubContent,exports.ContextMenuSubTrigger=B.ContextMenuSubTrigger,exports.ContextMenuTrigger=B.ContextMenuTrigger,exports.CountryDisplay=ae.CountryDisplay,exports.DataList=i.DataList,exports.DataListItem=i.DataListItem,exports.DateDisplay=oe.t,exports.DateField=w.w,exports.DateTooltip=s.DateTooltip,exports.Description=h.Description,exports.DescriptionBadge=h.DescriptionBadge,exports.DescriptionBoolean=h.DescriptionBoolean,exports.DescriptionCopy=h.DescriptionCopy,exports.DescriptionDate=h.DescriptionDate,exports.DescriptionEmpty=h.DescriptionEmpty,exports.DescriptionHeader=h.DescriptionHeader,exports.DescriptionImages=h.DescriptionImages,exports.DescriptionItem=h.DescriptionItem,exports.DescriptionLink=h.DescriptionLink,exports.DescriptionLongText=h.DescriptionLongText,exports.DescriptionName=h.DescriptionName,exports.DescriptionNumberPhone=h.DescriptionNumberPhone,exports.DescriptionSection=h.DescriptionSection,exports.DescriptionStatistic=h.DescriptionStatistic,exports.DescriptionStatus=h.DescriptionStatus,exports.DescriptionTagList=h.DescriptionTagList,exports.DescriptionUser=h.DescriptionUser,exports.DetailDialog=me.DetailDialog,exports.Dialog=m.Dialog,exports.DialogClose=m.DialogClose,exports.DialogContent=m.DialogContent,exports.DialogDescription=m.DialogDescription,exports.DialogFooter=m.DialogFooter,exports.DialogHeader=m.DialogHeader,exports.DialogOverlay=m.DialogOverlay,exports.DialogPortal=m.DialogPortal,exports.DialogTitle=m.DialogTitle,exports.DialogTrigger=m.DialogTrigger,exports.Drawer=T.Drawer,exports.DrawerClose=T.DrawerClose,exports.DrawerContent=T.DrawerContent,exports.DrawerDescription=T.DrawerDescription,exports.DrawerFooter=T.DrawerFooter,exports.DrawerHeader=T.DrawerHeader,exports.DrawerOverlay=T.DrawerOverlay,exports.DrawerPortal=T.DrawerPortal,exports.DrawerTitle=T.DrawerTitle,exports.DrawerTrigger=T.DrawerTrigger,exports.DropdownMenu=v.DropdownMenu,exports.DropdownMenuCheckboxItem=v.DropdownMenuCheckboxItem,exports.DropdownMenuContent=v.DropdownMenuContent,exports.DropdownMenuGroup=v.DropdownMenuGroup,exports.DropdownMenuItem=v.DropdownMenuItem,exports.DropdownMenuLabel=v.DropdownMenuLabel,exports.DropdownMenuPortal=v.DropdownMenuPortal,exports.DropdownMenuRadioGroup=v.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=v.DropdownMenuRadioItem,exports.DropdownMenuSeparator=v.DropdownMenuSeparator,exports.DropdownMenuShortcut=v.DropdownMenuShortcut,exports.DropdownMenuSub=v.DropdownMenuSub,exports.DropdownMenuSubContent=v.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=v.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=v.DropdownMenuTrigger,exports.EditBtn=ke.EditBtn,exports.EmailField=w.C,exports.Empty=V.Empty,exports.EmptyContent=V.EmptyContent,exports.EmptyDescription=V.EmptyDescription,exports.EmptyDisplay=c.EmptyDisplay,exports.EmptyHeader=V.EmptyHeader,exports.EmptyMedia=V.EmptyMedia,exports.EmptyTitle=V.EmptyTitle,exports.ErrorDialog=p.ErrorDialog,exports.FeatureDeveloping=N.FeatureDeveloping,exports.FeatureFixing=xe.FeatureFixing,exports.Field=w.L,exports.FieldContent=w.R,exports.FieldContentMain=w.z,exports.FieldError=w.B,exports.FieldGroup=w.V,exports.FieldLabel=w.H,exports.FieldSeparator=w.U,exports.FileUploader=Fe.FileUploader,exports.Flex=ie.Flex,exports.Form=H.Form,exports.FormControl=H.FormControl,exports.FormDescription=H.FormDescription,exports.FormField=H.FormField,exports.FormItem=H.FormItem,exports.FormLabel=H.FormLabel,exports.FormMessage=H.FormMessage,exports.Google=De.Google,exports.Grid=M.Grid,exports.GridProductCard=te.GridProductCard,exports.HoverCard=U.HoverCard,exports.HoverCardContent=U.HoverCardContent,exports.HoverCardTrigger=U.HoverCardTrigger,exports.Image=ee.Image,exports.Input=ye.Input,exports.InputOTP=F.InputOTP,exports.InputOTPGroup=F.InputOTPGroup,exports.InputOTPSeparator=F.InputOTPSeparator,exports.InputOTPSlot=F.InputOTPSlot,exports.Item=W.Item,exports.ItemActions=W.ItemActions,exports.ItemContent=W.ItemContent,exports.ItemDescription=W.ItemDescription,exports.ItemFooter=W.ItemFooter,exports.ItemGroup=W.ItemGroup,exports.ItemHeader=W.ItemHeader,exports.ItemMedia=W.ItemMedia,exports.ItemSeparator=W.ItemSeparator,exports.ItemTitle=W.ItemTitle,exports.Label=be.Label,exports.LoadingDialog=he.LoadingDialog,exports.LoginPage=we.LoginPage,exports.Menubar=G.Menubar,exports.MenubarCheckboxItem=G.MenubarCheckboxItem,exports.MenubarContent=G.MenubarContent,exports.MenubarGroup=G.MenubarGroup,exports.MenubarItem=G.MenubarItem,exports.MenubarLabel=G.MenubarLabel,exports.MenubarMenu=G.MenubarMenu,exports.MenubarPortal=G.MenubarPortal,exports.MenubarRadioGroup=G.MenubarRadioGroup,exports.MenubarRadioItem=G.MenubarRadioItem,exports.MenubarSeparator=G.MenubarSeparator,exports.MenubarShortcut=G.MenubarShortcut,exports.MenubarSub=G.MenubarSub,exports.MenubarSubContent=G.MenubarSubContent,exports.MenubarSubTrigger=G.MenubarSubTrigger,exports.MenubarTrigger=G.MenubarTrigger,exports.MultipleSelector=K.MultipleSelector,exports.NameDisplay=l.NameDisplay,exports.NavigationMenu=q.NavigationMenu,exports.NavigationMenuContent=q.NavigationMenuContent,exports.NavigationMenuIndicator=q.NavigationMenuIndicator,exports.NavigationMenuItem=q.NavigationMenuItem,exports.NavigationMenuLink=q.NavigationMenuLink,exports.NavigationMenuList=q.NavigationMenuList,exports.NavigationMenuTrigger=q.NavigationMenuTrigger,exports.NavigationMenuViewport=q.NavigationMenuViewport,exports.NotAuthorized=Se.NotAuthorized,exports.NotFound=Ce.NotFound,exports.NumberField=w.S,exports.Pagination=J.Pagination,exports.PaginationContent=J.PaginationContent,exports.PaginationEllipsis=J.PaginationEllipsis,exports.PaginationItem=J.PaginationItem,exports.PaginationLink=J.PaginationLink,exports.PaginationNext=J.PaginationNext,exports.PaginationPrevious=J.PaginationPrevious,exports.Paragraph=t.Paragraph,exports.PasswordField=w.x,exports.PaymentLayout=j.t,exports.PhoneNumberDisplay=se.PhoneNumberDisplay,exports.Popover=S.Popover,exports.PopoverAnchor=S.PopoverAnchor,exports.PopoverClose=S.PopoverClose,exports.PopoverContent=S.PopoverContent,exports.PopoverTrigger=S.PopoverTrigger,exports.ProductCard=ne.ProductCard,exports.Progress=y.Progress,exports.RadioGroup=D.RadioGroup,exports.RadioGroupField=w.b,exports.RadioGroupItem=D.RadioGroupItem,exports.RefreshBtn=Ae.RefreshBtn,exports.RegisterPage=Te.RegisterPage,exports.ResizableHandle=x.ResizableHandle,exports.ResizablePanel=x.ResizablePanel,exports.ResizablePanelGroup=x.ResizablePanelGroup,exports.RoleBadge=ce.RoleBadge,exports.ScrollArea=Y.ScrollArea,exports.ScrollBar=Y.ScrollBar,exports.SearchInput=Ne.SearchInput,exports.SearchModal=ge.t,exports.Select=C.Select,exports.SelectContent=C.SelectContent,exports.SelectField=w.y,exports.SelectGroup=C.SelectGroup,exports.SelectItem=C.SelectItem,exports.SelectLabel=C.SelectLabel,exports.SelectSeparator=C.SelectSeparator,exports.SelectTrigger=C.SelectTrigger,exports.SelectValue=C.SelectValue,exports.Separator=pe.Separator,exports.Sheet=f.Sheet,exports.SheetClose=f.SheetClose,exports.SheetContent=f.SheetContent,exports.SheetDescription=f.SheetDescription,exports.SheetFooter=f.SheetFooter,exports.SheetHeader=f.SheetHeader,exports.SheetTitle=f.SheetTitle,exports.SheetTrigger=f.SheetTrigger,exports.SimpleArrayField=w.K,exports.SimpleBooleanField=w.I,exports.SimpleCard=re.SimpleCard,exports.SimpleComboboxField=w.F,exports.SimpleDateField=w.P,exports.SimpleEmailField=w.M,exports.SimpleNumberField=w.j,exports.SimplePasswordField=w.A,exports.SimpleRadioGroupField=w.N,exports.SimpleSelectField=w.k,exports.SimpleTextField=w.D,exports.SimpleTextareaField=w.O,exports.Skeleton=r.Skeleton,exports.Slider=Ie.Slider,exports.Spinner=ve.Spinner,exports.Statistic=le.Statistic,exports.Switch=b.Switch,exports.SwitchField=w.v,exports.Table=X.Table,exports.TableBody=X.TableBody,exports.TableCaption=X.TableCaption,exports.TableCell=X.TableCell,exports.TableFooter=X.TableFooter,exports.TableHead=X.TableHead,exports.TableHeader=X.TableHeader,exports.TableRow=X.TableRow,exports.Tabs=Z.Tabs,exports.TabsContent=Z.TabsContent,exports.TabsList=Z.TabsList,exports.TabsTrigger=Z.TabsTrigger,exports.TanStackActionSubmit=w.m,exports.TanStackActionsForm=w.p,exports.TanStackCardForm=w.f,exports.TanStackContainerForm=w.d,exports.TanStackDialogForm=w.u,exports.TanStackFieldGroup=w.l,exports.TanStackPopoverForm=w.c,exports.TanStackSectionForm=w.s,exports.TanStackTitleField=w.o,exports.TextEditor=k.t,exports.TextEditorField=w.h,exports.TextEditorToolbar=k.n,exports.TextField=w._,exports.Textarea=O.Textarea,exports.TextareaField=w.g,exports.Title=fe.Title,exports.Toaster=Le.Toaster,exports.Toggle=Q.Toggle,exports.ToggleGroup=$.ToggleGroup,exports.ToggleGroupItem=$.ToggleGroupItem,exports.Tooltip=o.Tooltip,exports.TooltipContent=o.TooltipContent,exports.TooltipProvider=o.TooltipProvider,exports.TooltipTrigger=o.TooltipTrigger,exports.TrashBtn=je.TrashBtn,exports.UITableAnalysisPanel=_.s,exports.UITableAvatarNameDisplay=_.W,exports.UITableBadgeDisplay=_.U,exports.UITableBody=_.T,exports.UITableBooleanDisplay=_.H,exports.UITableCell=_.w,exports.UITableCellActions=_.C,exports.UITableCellSelect=_.S,exports.UITableContainer=_.c,exports.UITableCurrencyDisplay=_.V,exports.UITableDateDisplay=_.B,exports.UITableDescriptionDisplay=_.z,exports.UITableEditButton=_.R,exports.UITableEmailDisplay=_.L,exports.UITableEmptyDisplay=_.x,exports.UITableFilter=_.o,exports.UITableFooter=_.b,exports.UITableFooterRow=_.y,exports.UITableHead=_.v,exports.UITableHeadCell=_.g,exports.UITableHeadCellOption=_._,exports.UITableHeadCellSelect=_.h,exports.UITableHeadRow=_.m,exports.UITableInnerTable=_.p,exports.UITableInnerWrapper=_.f,exports.UITableListDisplay=_.I,exports.UITableLoadMore=_.d,exports.UITableMoreButton=_.F,exports.UITableNameDisplay=_.P,exports.UITablePermalink=_.N,exports.UITablePhoneNumberDisplay=_.M,exports.UITableProgressDisplay=_.j,exports.UITableProvider=_.a,exports.UITableRemoveButton=_.A,exports.UITableRow=_.u,exports.UITableStatisticDisplay=_.k,exports.UITableStatusDisplay=_.O,exports.UITableSummaryBar=_.i,exports.UITableToggleButton=_.D,exports.UITableTooltip=_.t,exports.UITableTooltipActions=_.n,exports.UITableTooltipFilter=_.r,exports.UITableUserDataDisplay=_.E,exports.UITableWrapper=_.l,exports.UploadImageBtn=Me.UploadImageBtn,exports.UserDataDisplay=ue.UserDataDisplay,exports.VerifyEmailPage=Ee.VerifyEmailPage,exports.badgeVariants=a.badgeVariants,exports.buttonGroupVariants=L.buttonGroupVariants,exports.navigationMenuTriggerStyle=q.navigationMenuTriggerStyle,exports.paragraphVariants=t.paragraphVariants,exports.toast=Re.toast,exports.toggleVariants=Q.toggleVariants,exports.useDebounce=K.useDebounce,exports.useFormField=H.useFormField,exports.useTanStackFieldContext=w.t,exports.useTanStackForm=w.n,exports.useTanStackFormContext=w.r,exports.withTanStackFieldGroup=w.i,exports.withTanStackForm=w.a;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./ui/card.cjs"),ee=require("./ui/skeleton.cjs"),te=require("./ui/image.cjs"),ne=require("./cards/grid-product-card.cjs"),r=require("./cards/product-card.cjs"),i=require("./cards/simple-card.cjs"),re=require("./layouts/flex.cjs"),ie=require("./data-display/country.cjs"),a=require("./data-display/data-list.cjs"),ae=require("./date-B3cozmfV.cjs"),o=require("./ui/badge.cjs"),s=require("./ui/tooltip.cjs"),oe=require("./data-display/date-tooltip.cjs"),se=require("./data-display/empty.cjs"),ce=require("./data-display/name.cjs"),c=require("./data-display/phone-number.cjs"),l=require("./data-display/role-badge.cjs"),u=require("./data-display/statistic.cjs"),d=require("./ui/avatar.cjs"),f=require("./data-display/user.cjs"),p=require("./ui/alert-dialog.cjs"),m=require("./dialogs/confirm-dialog.cjs"),le=require("./typography/title.cjs"),ue=require("./ui/separator.cjs"),h=require("./ui/sheet.cjs"),de=require("./dialogs/detail-dialog/index.cjs"),fe=require("./dialogs/error-dialog.cjs"),g=require("./ui/dialog.cjs"),pe=require("./dialogs/loading-dialog.cjs"),_=require("./ui/chart.cjs"),v=require("./features/charts/index.cjs"),y=require("./features/descriptions/index.cjs"),b=require("./ui/command.cjs"),me=require("./search-modal-CMhsIxae.cjs"),x=require("./tables-B0Jl8Osc.cjs"),S=require("./ui/dropdown-menu.cjs"),he=require("./ui/progress.cjs"),ge=require("./ui/switch.cjs"),_e=require("./ui/checkbox.cjs"),ve=require("./ui/spinner.cjs"),C=require("./ui/resizable.cjs"),ye=require("./ui/input.cjs"),be=require("./ui/label.cjs"),w=require("./ui/popover.cjs"),T=require("./ui/select.cjs"),E=require("./tanstack-form-BMVn8ai_.cjs"),D=require("./ui/drawer.cjs"),O=require("./ui/calendar.cjs"),k=require("./ui/radio-group.cjs"),A=require("./ui/textarea.cjs"),j=require("./text-editor-DJYQXXtP.cjs"),M=require("./cms-layout-SubgSF72.cjs"),N=require("./payment-layout-BLrXT-oc.cjs"),xe=require("./layouts/grid.cjs"),Se=require("./pages/FeatureDeveloping.cjs"),Ce=require("./pages/FeatureFixing.cjs"),we=require("./pages/NotAuthorized.cjs"),Te=require("./pages/NotFound.cjs"),P=require("./alert-D31c6DLq.cjs"),Ee=require("./pages/LoginPage.cjs"),De=require("./pages/RegisterPage.cjs"),F=require("./ui/input-otp.cjs"),Oe=require("./pages/VerifyEmailPage.cjs"),ke=require("./systems/google.cjs"),Ae=require("./ui/buttons/add-new.cjs"),je=require("./ui/buttons/edit.cjs"),Me=require("./ui/buttons/refresh.cjs"),Ne=require("./ui/buttons/trash.cjs"),Pe=require("./ui/buttons/upload-image.cjs"),Fe=require("./ui/inputs/search-input.cjs"),Ie=require("./ui/aspect-ratio.cjs"),I=require("./ui/breadcrumb.cjs"),L=require("./ui/button-group.cjs"),R=require("./ui/carousel.cjs"),z=require("./ui/collapsible.cjs"),B=require("./ui/context-menu.cjs"),V=require("./ui/empty.cjs"),Le=require("./ui/file-uploader.cjs"),H=require("./ui/form.cjs"),U=require("./ui/hover-card.cjs"),W=require("./ui/item.cjs"),G=require("./ui/menubar.cjs"),K=require("./ui/multi-select.cjs"),q=require("./ui/navigation-menu.cjs"),J=require("./ui/pagination.cjs"),Y=require("./ui/scroll-area.cjs"),Re=require("./ui/slider.cjs"),ze=require("./ui/sonner.cjs"),X=require("./ui/table.cjs"),Z=require("./ui/tabs.cjs"),Q=require("./ui/toggle.cjs"),$=require("./ui/toggle-group.cjs");let Be=require("sonner");exports.AddNewBtn=Ae.AddNewBtn,exports.Alert=P.t,exports.AlertDescription=P.n,exports.AlertDialog=p.AlertDialog,exports.AlertDialogAction=p.AlertDialogAction,exports.AlertDialogCancel=p.AlertDialogCancel,exports.AlertDialogContent=p.AlertDialogContent,exports.AlertDialogDescription=p.AlertDialogDescription,exports.AlertDialogFooter=p.AlertDialogFooter,exports.AlertDialogHeader=p.AlertDialogHeader,exports.AlertDialogOverlay=p.AlertDialogOverlay,exports.AlertDialogPortal=p.AlertDialogPortal,exports.AlertDialogTitle=p.AlertDialogTitle,exports.AlertDialogTrigger=p.AlertDialogTrigger,exports.AlertTitle=P.r,exports.ArrayCol=E.W,exports.ArrayHeaderRow=E.G,exports.AspectRatio=Ie.AspectRatio,exports.Avatar=d.Avatar,exports.AvatarFallback=d.AvatarFallback,exports.AvatarImage=d.AvatarImage,exports.Badge=o.Badge,exports.Breadcrumb=I.Breadcrumb,exports.BreadcrumbEllipsis=I.BreadcrumbEllipsis,exports.BreadcrumbItem=I.BreadcrumbItem,exports.BreadcrumbLink=I.BreadcrumbLink,exports.BreadcrumbList=I.BreadcrumbList,exports.BreadcrumbPage=I.BreadcrumbPage,exports.BreadcrumbSeparator=I.BreadcrumbSeparator,exports.Button=e.Button,exports.ButtonGroup=L.ButtonGroup,exports.ButtonGroupSeparator=L.ButtonGroupSeparator,exports.ButtonGroupText=L.ButtonGroupText,exports.CMSLayout=M.t,exports.Calendar=O.Calendar,exports.CalendarDayButton=O.CalendarDayButton,exports.Card=n.Card,exports.CardAction=n.CardAction,exports.CardContent=n.CardContent,exports.CardDescription=n.CardDescription,exports.CardFooter=n.CardFooter,exports.CardHeader=n.CardHeader,exports.CardTitle=n.CardTitle,exports.Carousel=R.Carousel,exports.CarouselContent=R.CarouselContent,exports.CarouselItem=R.CarouselItem,exports.CarouselNext=R.CarouselNext,exports.CarouselPrevious=R.CarouselPrevious,exports.ChartContainer=_.ChartContainer,exports.ChartLegend=_.ChartLegend,exports.ChartLegendContent=_.ChartLegendContent,exports.ChartStyle=_.ChartStyle,exports.ChartTooltip=_.ChartTooltip,exports.ChartTooltipContent=_.ChartTooltipContent,exports.Checkbox=_e.Checkbox,exports.CheckboxField=E.E,exports.Collapsible=z.Collapsible,exports.CollapsibleContent=z.CollapsibleContent,exports.CollapsibleTrigger=z.CollapsibleTrigger,exports.ComboboxField=E.T,exports.Command=b.Command,exports.CommandDialog=b.CommandDialog,exports.CommandEmpty=b.CommandEmpty,exports.CommandGroup=b.CommandGroup,exports.CommandInput=b.CommandInput,exports.CommandItem=b.CommandItem,exports.CommandList=b.CommandList,exports.CommandSeparator=b.CommandSeparator,exports.CommandShortcut=b.CommandShortcut,exports.ConfirmDialog=m.ConfirmDialog,exports.ContextMenu=B.ContextMenu,exports.ContextMenuCheckboxItem=B.ContextMenuCheckboxItem,exports.ContextMenuContent=B.ContextMenuContent,exports.ContextMenuGroup=B.ContextMenuGroup,exports.ContextMenuItem=B.ContextMenuItem,exports.ContextMenuLabel=B.ContextMenuLabel,exports.ContextMenuPortal=B.ContextMenuPortal,exports.ContextMenuRadioGroup=B.ContextMenuRadioGroup,exports.ContextMenuRadioItem=B.ContextMenuRadioItem,exports.ContextMenuSeparator=B.ContextMenuSeparator,exports.ContextMenuShortcut=B.ContextMenuShortcut,exports.ContextMenuSub=B.ContextMenuSub,exports.ContextMenuSubContent=B.ContextMenuSubContent,exports.ContextMenuSubTrigger=B.ContextMenuSubTrigger,exports.ContextMenuTrigger=B.ContextMenuTrigger,exports.ConversionFunnelChart=v.ConversionFunnelChart,exports.CountryDisplay=ie.CountryDisplay,exports.DataList=a.DataList,exports.DataListItem=a.DataListItem,exports.DateDisplay=ae.t,exports.DateField=E.w,exports.DateTooltip=oe.DateTooltip,exports.Description=y.Description,exports.DescriptionBadge=y.DescriptionBadge,exports.DescriptionBoolean=y.DescriptionBoolean,exports.DescriptionCopy=y.DescriptionCopy,exports.DescriptionDate=y.DescriptionDate,exports.DescriptionEmpty=y.DescriptionEmpty,exports.DescriptionHeader=y.DescriptionHeader,exports.DescriptionImages=y.DescriptionImages,exports.DescriptionItem=y.DescriptionItem,exports.DescriptionLink=y.DescriptionLink,exports.DescriptionLongText=y.DescriptionLongText,exports.DescriptionName=y.DescriptionName,exports.DescriptionNumberPhone=y.DescriptionNumberPhone,exports.DescriptionSection=y.DescriptionSection,exports.DescriptionStatistic=y.DescriptionStatistic,exports.DescriptionStatus=y.DescriptionStatus,exports.DescriptionTagList=y.DescriptionTagList,exports.DescriptionUser=y.DescriptionUser,exports.DetailDialog=de.DetailDialog,exports.Dialog=g.Dialog,exports.DialogClose=g.DialogClose,exports.DialogContent=g.DialogContent,exports.DialogDescription=g.DialogDescription,exports.DialogFooter=g.DialogFooter,exports.DialogHeader=g.DialogHeader,exports.DialogOverlay=g.DialogOverlay,exports.DialogPortal=g.DialogPortal,exports.DialogTitle=g.DialogTitle,exports.DialogTrigger=g.DialogTrigger,exports.DonutChart=v.DonutChart,exports.Drawer=D.Drawer,exports.DrawerClose=D.DrawerClose,exports.DrawerContent=D.DrawerContent,exports.DrawerDescription=D.DrawerDescription,exports.DrawerFooter=D.DrawerFooter,exports.DrawerHeader=D.DrawerHeader,exports.DrawerOverlay=D.DrawerOverlay,exports.DrawerPortal=D.DrawerPortal,exports.DrawerTitle=D.DrawerTitle,exports.DrawerTrigger=D.DrawerTrigger,exports.DropdownMenu=S.DropdownMenu,exports.DropdownMenuCheckboxItem=S.DropdownMenuCheckboxItem,exports.DropdownMenuContent=S.DropdownMenuContent,exports.DropdownMenuGroup=S.DropdownMenuGroup,exports.DropdownMenuItem=S.DropdownMenuItem,exports.DropdownMenuLabel=S.DropdownMenuLabel,exports.DropdownMenuPortal=S.DropdownMenuPortal,exports.DropdownMenuRadioGroup=S.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=S.DropdownMenuRadioItem,exports.DropdownMenuSeparator=S.DropdownMenuSeparator,exports.DropdownMenuShortcut=S.DropdownMenuShortcut,exports.DropdownMenuSub=S.DropdownMenuSub,exports.DropdownMenuSubContent=S.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=S.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=S.DropdownMenuTrigger,exports.EditBtn=je.EditBtn,exports.EmailField=E.C,exports.Empty=V.Empty,exports.EmptyContent=V.EmptyContent,exports.EmptyDescription=V.EmptyDescription,exports.EmptyDisplay=se.EmptyDisplay,exports.EmptyHeader=V.EmptyHeader,exports.EmptyMedia=V.EmptyMedia,exports.EmptyTitle=V.EmptyTitle,exports.ErrorDialog=fe.ErrorDialog,exports.FeatureDeveloping=Se.FeatureDeveloping,exports.FeatureFixing=Ce.FeatureFixing,exports.Field=E.L,exports.FieldContent=E.R,exports.FieldContentMain=E.z,exports.FieldError=E.B,exports.FieldGroup=E.V,exports.FieldLabel=E.H,exports.FieldSeparator=E.U,exports.FileUploader=Le.FileUploader,exports.Flex=re.Flex,exports.Form=H.Form,exports.FormControl=H.FormControl,exports.FormDescription=H.FormDescription,exports.FormField=H.FormField,exports.FormItem=H.FormItem,exports.FormLabel=H.FormLabel,exports.FormMessage=H.FormMessage,exports.Google=ke.Google,exports.Grid=xe.Grid,exports.GridProductCard=ne.GridProductCard,exports.HoverCard=U.HoverCard,exports.HoverCardContent=U.HoverCardContent,exports.HoverCardTrigger=U.HoverCardTrigger,exports.Image=te.Image,exports.Input=ye.Input,exports.InputOTP=F.InputOTP,exports.InputOTPGroup=F.InputOTPGroup,exports.InputOTPSeparator=F.InputOTPSeparator,exports.InputOTPSlot=F.InputOTPSlot,exports.Item=W.Item,exports.ItemActions=W.ItemActions,exports.ItemContent=W.ItemContent,exports.ItemDescription=W.ItemDescription,exports.ItemFooter=W.ItemFooter,exports.ItemGroup=W.ItemGroup,exports.ItemHeader=W.ItemHeader,exports.ItemMedia=W.ItemMedia,exports.ItemSeparator=W.ItemSeparator,exports.ItemTitle=W.ItemTitle,exports.Label=be.Label,exports.LoadingDialog=pe.LoadingDialog,exports.LoginPage=Ee.LoginPage,exports.Menubar=G.Menubar,exports.MenubarCheckboxItem=G.MenubarCheckboxItem,exports.MenubarContent=G.MenubarContent,exports.MenubarGroup=G.MenubarGroup,exports.MenubarItem=G.MenubarItem,exports.MenubarLabel=G.MenubarLabel,exports.MenubarMenu=G.MenubarMenu,exports.MenubarPortal=G.MenubarPortal,exports.MenubarRadioGroup=G.MenubarRadioGroup,exports.MenubarRadioItem=G.MenubarRadioItem,exports.MenubarSeparator=G.MenubarSeparator,exports.MenubarShortcut=G.MenubarShortcut,exports.MenubarSub=G.MenubarSub,exports.MenubarSubContent=G.MenubarSubContent,exports.MenubarSubTrigger=G.MenubarSubTrigger,exports.MenubarTrigger=G.MenubarTrigger,exports.MultipleSelector=K.MultipleSelector,exports.NameDisplay=ce.NameDisplay,exports.NavigationMenu=q.NavigationMenu,exports.NavigationMenuContent=q.NavigationMenuContent,exports.NavigationMenuIndicator=q.NavigationMenuIndicator,exports.NavigationMenuItem=q.NavigationMenuItem,exports.NavigationMenuLink=q.NavigationMenuLink,exports.NavigationMenuList=q.NavigationMenuList,exports.NavigationMenuTrigger=q.NavigationMenuTrigger,exports.NavigationMenuViewport=q.NavigationMenuViewport,exports.NotAuthorized=we.NotAuthorized,exports.NotFound=Te.NotFound,exports.NumberField=E.S,exports.OrdersBarChart=v.OrdersBarChart,exports.Pagination=J.Pagination,exports.PaginationContent=J.PaginationContent,exports.PaginationEllipsis=J.PaginationEllipsis,exports.PaginationItem=J.PaginationItem,exports.PaginationLink=J.PaginationLink,exports.PaginationNext=J.PaginationNext,exports.PaginationPrevious=J.PaginationPrevious,exports.Paragraph=t.Paragraph,exports.PasswordField=E.x,exports.PaymentLayout=N.t,exports.PhoneNumberDisplay=c.PhoneNumberDisplay,exports.Popover=w.Popover,exports.PopoverAnchor=w.PopoverAnchor,exports.PopoverClose=w.PopoverClose,exports.PopoverContent=w.PopoverContent,exports.PopoverTrigger=w.PopoverTrigger,exports.ProductCard=r.ProductCard,exports.Progress=he.Progress,exports.RadioGroup=k.RadioGroup,exports.RadioGroupField=E.b,exports.RadioGroupItem=k.RadioGroupItem,exports.RefreshBtn=Me.RefreshBtn,exports.RegisterPage=De.RegisterPage,exports.ResizableHandle=C.ResizableHandle,exports.ResizablePanel=C.ResizablePanel,exports.ResizablePanelGroup=C.ResizablePanelGroup,exports.RevenueAreaChart=v.RevenueAreaChart,exports.RevenueOrdersComposedChart=v.RevenueOrdersComposedChart,exports.RoleBadge=l.RoleBadge,exports.SalesTargetRadialChart=v.SalesTargetRadialChart,exports.ScrollArea=Y.ScrollArea,exports.ScrollBar=Y.ScrollBar,exports.SearchInput=Fe.SearchInput,exports.SearchModal=me.t,exports.Select=T.Select,exports.SelectContent=T.SelectContent,exports.SelectField=E.y,exports.SelectGroup=T.SelectGroup,exports.SelectItem=T.SelectItem,exports.SelectLabel=T.SelectLabel,exports.SelectSeparator=T.SelectSeparator,exports.SelectTrigger=T.SelectTrigger,exports.SelectValue=T.SelectValue,exports.Separator=ue.Separator,exports.Sheet=h.Sheet,exports.SheetClose=h.SheetClose,exports.SheetContent=h.SheetContent,exports.SheetDescription=h.SheetDescription,exports.SheetFooter=h.SheetFooter,exports.SheetHeader=h.SheetHeader,exports.SheetTitle=h.SheetTitle,exports.SheetTrigger=h.SheetTrigger,exports.SimpleArrayField=E.K,exports.SimpleBooleanField=E.I,exports.SimpleCard=i.SimpleCard,exports.SimpleComboboxField=E.F,exports.SimpleDateField=E.P,exports.SimpleEmailField=E.M,exports.SimpleNumberField=E.j,exports.SimplePasswordField=E.A,exports.SimpleRadioGroupField=E.N,exports.SimpleSelectField=E.k,exports.SimpleTextField=E.D,exports.SimpleTextareaField=E.O,exports.Skeleton=ee.Skeleton,exports.Slider=Re.Slider,exports.SparklineChart=v.SparklineChart,exports.Spinner=ve.Spinner,exports.Statistic=u.Statistic,exports.Switch=ge.Switch,exports.SwitchField=E.v,exports.Table=X.Table,exports.TableBody=X.TableBody,exports.TableCaption=X.TableCaption,exports.TableCell=X.TableCell,exports.TableFooter=X.TableFooter,exports.TableHead=X.TableHead,exports.TableHeader=X.TableHeader,exports.TableRow=X.TableRow,exports.Tabs=Z.Tabs,exports.TabsContent=Z.TabsContent,exports.TabsList=Z.TabsList,exports.TabsTrigger=Z.TabsTrigger,exports.TanStackActionSubmit=E.m,exports.TanStackActionsForm=E.p,exports.TanStackCardForm=E.f,exports.TanStackContainerForm=E.d,exports.TanStackDialogForm=E.u,exports.TanStackFieldGroup=E.l,exports.TanStackPopoverForm=E.c,exports.TanStackSectionForm=E.s,exports.TanStackTitleField=E.o,exports.TextEditor=j.t,exports.TextEditorField=E.h,exports.TextEditorToolbar=j.n,exports.TextField=E._,exports.Textarea=A.Textarea,exports.TextareaField=E.g,exports.Title=le.Title,exports.Toaster=ze.Toaster,exports.Toggle=Q.Toggle,exports.ToggleGroup=$.ToggleGroup,exports.ToggleGroupItem=$.ToggleGroupItem,exports.Tooltip=s.Tooltip,exports.TooltipContent=s.TooltipContent,exports.TooltipProvider=s.TooltipProvider,exports.TooltipTrigger=s.TooltipTrigger,exports.TopProductsBarChart=v.TopProductsBarChart,exports.TrashBtn=Ne.TrashBtn,exports.UITableAnalysisPanel=x.s,exports.UITableAvatarNameDisplay=x.W,exports.UITableBadgeDisplay=x.U,exports.UITableBody=x.T,exports.UITableBooleanDisplay=x.H,exports.UITableCell=x.w,exports.UITableCellActions=x.C,exports.UITableCellSelect=x.S,exports.UITableContainer=x.c,exports.UITableCurrencyDisplay=x.V,exports.UITableDateDisplay=x.B,exports.UITableDescriptionDisplay=x.z,exports.UITableEditButton=x.R,exports.UITableEmailDisplay=x.L,exports.UITableEmptyDisplay=x.x,exports.UITableFilter=x.o,exports.UITableFooter=x.b,exports.UITableFooterRow=x.y,exports.UITableHead=x.v,exports.UITableHeadCell=x.g,exports.UITableHeadCellOption=x._,exports.UITableHeadCellSelect=x.h,exports.UITableHeadRow=x.m,exports.UITableInnerTable=x.p,exports.UITableInnerWrapper=x.f,exports.UITableListDisplay=x.I,exports.UITableLoadMore=x.d,exports.UITableMoreButton=x.F,exports.UITableNameDisplay=x.P,exports.UITablePermalink=x.N,exports.UITablePhoneNumberDisplay=x.M,exports.UITableProgressDisplay=x.j,exports.UITableProvider=x.a,exports.UITableRemoveButton=x.A,exports.UITableRow=x.u,exports.UITableStatisticDisplay=x.k,exports.UITableStatusDisplay=x.O,exports.UITableSummaryBar=x.i,exports.UITableToggleButton=x.D,exports.UITableTooltip=x.t,exports.UITableTooltipActions=x.n,exports.UITableTooltipFilter=x.r,exports.UITableUserDataDisplay=x.E,exports.UITableWrapper=x.l,exports.UploadImageBtn=Pe.UploadImageBtn,exports.UserDataDisplay=f.UserDataDisplay,exports.VerifyEmailPage=Oe.VerifyEmailPage,exports.badgeVariants=o.badgeVariants,exports.buttonGroupVariants=L.buttonGroupVariants,exports.formatCompactNumber=v.formatCompactNumber,exports.formatCurrency=v.formatCurrency,exports.formatPercent=v.formatPercent,exports.getChartColor=v.getChartColor,exports.navigationMenuTriggerStyle=q.navigationMenuTriggerStyle,exports.paragraphVariants=t.paragraphVariants,exports.toDateLabel=v.toDateLabel,exports.toast=Be.toast,exports.toggleVariants=Q.toggleVariants,exports.useChart=_.useChart,exports.useDebounce=K.useDebounce,exports.useFormField=H.useFormField,exports.useTanStackFieldContext=E.t,exports.useTanStackForm=E.n,exports.useTanStackFormContext=E.r,exports.withTanStackFieldGroup=E.i,exports.withTanStackForm=E.a;
|