@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.
@@ -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;