@cryptlex/web-components 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (94) hide show
  1. package/README.md +4 -13
  2. package/dist/components/data-table/column-picker.es.js +3 -4
  3. package/dist/components/data-table/column-picker.es.js.map +1 -1
  4. package/dist/components/data-table/data-table.es.js +84 -83
  5. package/dist/components/data-table/data-table.es.js.map +1 -1
  6. package/dist/components/data-table/page-size.es.js +5 -5
  7. package/dist/components/data-table/page-size.es.js.map +1 -1
  8. package/dist/components/data-table/paginator.es.js +25 -31
  9. package/dist/components/data-table/paginator.es.js.map +1 -1
  10. package/dist/components/data-table/table-actions.es.js +26 -27
  11. package/dist/components/data-table/table-actions.es.js.map +1 -1
  12. package/dist/components/data-table/table-commons.es.js +5 -4
  13. package/dist/components/data-table/table-commons.es.js.map +1 -1
  14. package/dist/components/data-table/table-content.es.js +34 -31
  15. package/dist/components/data-table/table-content.es.js.map +1 -1
  16. package/dist/components/data-table/table-filter.es.js +42 -45
  17. package/dist/components/data-table/table-filter.es.js.map +1 -1
  18. package/dist/components/key-value-card/key-value-card.es.js +17 -14
  19. package/dist/components/key-value-card/key-value-card.es.js.map +1 -1
  20. package/dist/components/sidebar/app-layout.es.js +11 -15
  21. package/dist/components/sidebar/app-layout.es.js.map +1 -1
  22. package/dist/components/sidebar/breadcrumb.es.js +2 -3
  23. package/dist/components/sidebar/breadcrumb.es.js.map +1 -1
  24. package/dist/components/sidebar/nav-main.es.js +18 -18
  25. package/dist/components/sidebar/nav-main.es.js.map +1 -1
  26. package/dist/components/static-data-table/data-table.es.js +14 -14
  27. package/dist/components/static-data-table/data-table.es.js.map +1 -1
  28. package/dist/components/ui/accordion.es.js +9 -9
  29. package/dist/components/ui/accordion.es.js.map +1 -1
  30. package/dist/components/ui/avatar.es.js +16 -16
  31. package/dist/components/ui/avatar.es.js.map +1 -1
  32. package/dist/components/ui/badge.es.js +5 -24
  33. package/dist/components/ui/badge.es.js.map +1 -1
  34. package/dist/components/ui/breadcrumb.es.js +10 -10
  35. package/dist/components/ui/breadcrumb.es.js.map +1 -1
  36. package/dist/components/ui/button.es.js +17 -18
  37. package/dist/components/ui/button.es.js.map +1 -1
  38. package/dist/components/ui/calendar.es.js +8 -8
  39. package/dist/components/ui/calendar.es.js.map +1 -1
  40. package/dist/components/ui/card.es.js +21 -21
  41. package/dist/components/ui/card.es.js.map +1 -1
  42. package/dist/components/ui/chart.es.js +76 -102
  43. package/dist/components/ui/chart.es.js.map +1 -1
  44. package/dist/components/ui/checkbox.es.js +13 -19
  45. package/dist/components/ui/checkbox.es.js.map +1 -1
  46. package/dist/components/ui/command.es.js +4 -4
  47. package/dist/components/ui/command.es.js.map +1 -1
  48. package/dist/components/ui/copy-button.es.js +20 -34
  49. package/dist/components/ui/copy-button.es.js.map +1 -1
  50. package/dist/components/ui/dialog.es.js +32 -32
  51. package/dist/components/ui/dialog.es.js.map +1 -1
  52. package/dist/components/ui/drawer.es.js +2 -2
  53. package/dist/components/ui/drawer.es.js.map +1 -1
  54. package/dist/components/ui/dropdown-menu.es.js +74 -82
  55. package/dist/components/ui/dropdown-menu.es.js.map +1 -1
  56. package/dist/components/ui/input-otp.es.js +17 -17
  57. package/dist/components/ui/input-otp.es.js.map +1 -1
  58. package/dist/components/ui/input.es.js +7 -7
  59. package/dist/components/ui/input.es.js.map +1 -1
  60. package/dist/components/ui/link-button.es.js +6 -6
  61. package/dist/components/ui/link-button.es.js.map +1 -1
  62. package/dist/components/ui/mutli-select.es.js +52 -52
  63. package/dist/components/ui/mutli-select.es.js.map +1 -1
  64. package/dist/components/ui/navigation-menu.es.js +34 -34
  65. package/dist/components/ui/navigation-menu.es.js.map +1 -1
  66. package/dist/components/ui/pagination.es.js +38 -38
  67. package/dist/components/ui/pagination.es.js.map +1 -1
  68. package/dist/components/ui/password-input.es.js +13 -13
  69. package/dist/components/ui/password-input.es.js.map +1 -1
  70. package/dist/components/ui/radio-group.es.js +11 -11
  71. package/dist/components/ui/radio-group.es.js.map +1 -1
  72. package/dist/components/ui/search-input.es.js +11 -11
  73. package/dist/components/ui/search-input.es.js.map +1 -1
  74. package/dist/components/ui/select.es.js +31 -49
  75. package/dist/components/ui/select.es.js.map +1 -1
  76. package/dist/components/ui/sheet.es.js +17 -17
  77. package/dist/components/ui/sheet.es.js.map +1 -1
  78. package/dist/components/ui/sidebar.es.js +2 -3
  79. package/dist/components/ui/sidebar.es.js.map +1 -1
  80. package/dist/components/ui/table-page-layout.es.js +2 -2
  81. package/dist/components/ui/table-page-layout.es.js.map +1 -1
  82. package/dist/components/ui/table.es.js +37 -37
  83. package/dist/components/ui/table.es.js.map +1 -1
  84. package/dist/components/ui/tabs.es.js +2 -2
  85. package/dist/components/ui/tabs.es.js.map +1 -1
  86. package/dist/components/ui/tooltip.es.js +8 -8
  87. package/dist/components/ui/tooltip.es.js.map +1 -1
  88. package/dist/index.es.d.ts +29 -54
  89. package/dist/index.es.js +253 -256
  90. package/dist/utils/index.es.js.map +1 -1
  91. package/lib/index.css +24 -5
  92. package/lib/tailwind.preset.css +52 -40
  93. package/lib/tokens.css +0 -9
  94. package/package.json +1 -1
@@ -1,132 +1,107 @@
1
1
  "use client";
2
- import { jsx as s, jsxs as v, Fragment as P } from "react/jsx-runtime";
3
- import * as g from "react";
4
- import * as C from "recharts";
5
- import { cn as u } from "../../utils/index.es.js";
6
- const I = { light: "", dark: ".dark" }, j = g.createContext(null);
7
- function $() {
8
- const c = g.useContext(j);
9
- if (!c)
2
+ import { jsx as s, jsxs as p, Fragment as $ } from "react/jsx-runtime";
3
+ import * as h from "react";
4
+ import * as k from "recharts";
5
+ import { cn as i } from "../../utils/index.es.js";
6
+ const j = h.createContext(null);
7
+ function L() {
8
+ const o = h.useContext(j);
9
+ if (!o)
10
10
  throw new Error("useChart must be used within a <ChartContainer />");
11
- return c;
11
+ return o;
12
12
  }
13
- const S = g.forwardRef(({ id: c, className: e, children: t, config: n, ...o }, f) => {
14
- const l = g.useId(), a = `chart-${c || l.replace(/:/g, "")}`;
15
- return /* @__PURE__ */ s(j.Provider, { value: { config: n }, children: /* @__PURE__ */ v(
13
+ const I = h.forwardRef(({ id: o, className: e, children: t, config: n, ...c }, f) => {
14
+ const u = h.useId(), d = `chart-${o || u.replace(/:/g, "")}`;
15
+ return /* @__PURE__ */ s(j.Provider, { value: { config: n }, children: /* @__PURE__ */ s(
16
16
  "div",
17
17
  {
18
- "data-chart": a,
18
+ "data-chart": d,
19
19
  ref: f,
20
- className: u(
21
- "flex aspect-video justify-center text-caption [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden",
20
+ className: i(
21
+ "flex aspect-video justify-center caption [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted/20 [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden",
22
22
  e
23
23
  ),
24
- ...o,
25
- children: [
26
- /* @__PURE__ */ s(E, { id: a, config: n }),
27
- /* @__PURE__ */ s(C.ResponsiveContainer, { children: t })
28
- ]
24
+ ...c,
25
+ children: /* @__PURE__ */ s(k.ResponsiveContainer, { children: t })
29
26
  }
30
27
  ) });
31
28
  });
32
- S.displayName = "Chart";
33
- const E = ({ id: c, config: e }) => {
34
- const t = Object.entries(e).filter(([n, o]) => o.theme || o.color);
35
- return t.length ? /* @__PURE__ */ s(
36
- "style",
37
- {
38
- dangerouslySetInnerHTML: {
39
- __html: Object.entries(I).map(
40
- ([n, o]) => `
41
- ${o} [data-chart=${c}] {
42
- ${t.map(([f, l]) => {
43
- var h;
44
- const a = ((h = l.theme) == null ? void 0 : h[n]) || l.color;
45
- return a ? ` --color-${f}: ${a};` : null;
46
- }).join(`
47
- `)}
48
- }
49
- `
50
- ).join(`
51
- `)
52
- }
53
- }
54
- ) : null;
55
- }, q = C.Tooltip, K = g.forwardRef(
29
+ I.displayName = "Chart";
30
+ const M = k.Tooltip, K = h.forwardRef(
56
31
  ({
57
- active: c,
32
+ active: o,
58
33
  payload: e,
59
34
  className: t,
60
35
  indicator: n = "dot",
61
- hideLabel: o = !1,
36
+ hideLabel: c = !1,
62
37
  hideIndicator: f = !1,
63
- label: l,
64
- labelFormatter: a,
65
- labelClassName: h,
66
- formatter: i,
67
- color: L,
68
- nameKey: R,
69
- labelKey: _
38
+ label: u,
39
+ labelFormatter: d,
40
+ labelClassName: g,
41
+ formatter: l,
42
+ color: R,
43
+ nameKey: P,
44
+ labelKey: w
70
45
  }, T) => {
71
- const { config: b } = $(), N = g.useMemo(() => {
72
- var p;
73
- if (o || !(e != null && e.length))
46
+ const { config: x } = L(), C = h.useMemo(() => {
47
+ var m;
48
+ if (c || !(e != null && e.length))
74
49
  return null;
75
- const [r] = e, w = `${_ || r.dataKey || r.name || "value"}`, m = k(b, r, w), d = !_ && typeof l == "string" ? ((p = b[l]) == null ? void 0 : p.label) || l : m == null ? void 0 : m.label;
76
- return a ? /* @__PURE__ */ s("div", { className: u("font-medium", h), children: a(d, e) }) : d ? /* @__PURE__ */ s("div", { className: u("font-medium", h), children: d }) : null;
77
- }, [l, a, e, o, h, b, _]);
78
- if (!c || !(e != null && e.length))
50
+ const [r] = e, _ = `${w || r.dataKey || r.name || "value"}`, v = N(x, r, _), a = !w && typeof u == "string" ? ((m = x[u]) == null ? void 0 : m.label) || u : v == null ? void 0 : v.label;
51
+ return d ? /* @__PURE__ */ s("div", { className: i("font-medium", g), children: d(a, e) }) : a ? /* @__PURE__ */ s("div", { className: i("font-medium", g), children: a }) : null;
52
+ }, [u, d, e, c, g, x, w]);
53
+ if (!o || !(e != null && e.length))
79
54
  return null;
80
- const x = e.length === 1 && n !== "dot";
81
- return /* @__PURE__ */ v(
55
+ const b = e.length === 1 && n !== "dot";
56
+ return /* @__PURE__ */ p(
82
57
  "div",
83
58
  {
84
59
  ref: T,
85
- className: u(
60
+ className: i(
86
61
  "grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-caption shadow-xl",
87
62
  t
88
63
  ),
89
64
  children: [
90
- x ? null : N,
91
- /* @__PURE__ */ s("div", { className: "grid gap-1.5", children: e.map((r, w) => {
92
- const m = `${R || r.name || r.dataKey || "value"}`, d = k(b, r, m), p = L || r.payload.fill || r.color;
65
+ b ? null : C,
66
+ /* @__PURE__ */ s("div", { className: "grid gap-1.5", children: e.map((r, _) => {
67
+ const v = `${P || r.name || r.dataKey || "value"}`, a = N(x, r, v), m = R || r.payload.fill || r.color;
93
68
  return /* @__PURE__ */ s(
94
69
  "div",
95
70
  {
96
- className: u(
71
+ className: i(
97
72
  "flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground",
98
73
  n === "dot" && "items-center"
99
74
  ),
100
- children: i && (r == null ? void 0 : r.value) !== void 0 && r.name ? i(r.value, r.name, r, w, r.payload) : /* @__PURE__ */ v(P, { children: [
101
- d != null && d.icon ? /* @__PURE__ */ s(d.icon, {}) : !f && /* @__PURE__ */ s(
75
+ children: l && (r == null ? void 0 : r.value) !== void 0 && r.name ? l(r.value, r.name, r, _, r.payload) : /* @__PURE__ */ p($, { children: [
76
+ a != null && a.icon ? /* @__PURE__ */ s(a.icon, {}) : !f && /* @__PURE__ */ s(
102
77
  "div",
103
78
  {
104
- className: u(
105
- "shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)",
79
+ className: i(
80
+ "shrink-0 rounded-[2px] border-border bg-background",
106
81
  {
107
82
  "h-2.5 w-2.5": n === "dot",
108
83
  "w-1": n === "line",
109
84
  "w-0 border-[1.5px] border-dashed bg-transparent": n === "dashed",
110
- "my-0.5": x && n === "dashed"
85
+ "my-0.5": b && n === "dashed"
111
86
  }
112
87
  ),
113
88
  style: {
114
- "--color-bg": p,
115
- "--color-border": p
89
+ "--color-bg": m,
90
+ "--color-border": m
116
91
  }
117
92
  }
118
93
  ),
119
- /* @__PURE__ */ v(
94
+ /* @__PURE__ */ p(
120
95
  "div",
121
96
  {
122
- className: u(
97
+ className: i(
123
98
  "flex flex-1 justify-between leading-none",
124
- x ? "items-end" : "items-center"
99
+ b ? "items-end" : "items-center"
125
100
  ),
126
101
  children: [
127
- /* @__PURE__ */ v("div", { className: "grid gap-1.5", children: [
128
- x ? N : null,
129
- /* @__PURE__ */ s("span", { className: "text-muted-foreground", children: (d == null ? void 0 : d.label) || r.name })
102
+ /* @__PURE__ */ p("div", { className: "grid gap-1.5", children: [
103
+ b ? C : null,
104
+ /* @__PURE__ */ s("span", { className: "text-muted-foreground", children: (a == null ? void 0 : a.label) || r.name })
130
105
  ] }),
131
106
  r.value && /* @__PURE__ */ s("span", { className: "font-mono font-medium tabular-nums text-foreground", children: r.value.toLocaleString() })
132
107
  ]
@@ -143,58 +118,57 @@ ${t.map(([f, l]) => {
143
118
  }
144
119
  );
145
120
  K.displayName = "ChartTooltip";
146
- const y = C.Legend, M = g.forwardRef(({ className: c, hideIcon: e = !1, payload: t, verticalAlign: n = "bottom", nameKey: o }, f) => {
147
- const { config: l } = $();
121
+ const S = k.Legend, q = h.forwardRef(({ className: o, hideIcon: e = !1, payload: t, verticalAlign: n = "bottom", nameKey: c }, f) => {
122
+ const { config: u } = L();
148
123
  return t != null && t.length ? /* @__PURE__ */ s(
149
124
  "div",
150
125
  {
151
126
  ref: f,
152
- className: u(
127
+ className: i(
153
128
  "flex items-center justify-center gap-4",
154
129
  n === "top" ? "pb-3" : "pt-3",
155
- c
130
+ o
156
131
  ),
157
- children: t.map((a) => {
158
- const h = `${o || a.dataKey || "value"}`, i = k(l, a, h);
159
- return /* @__PURE__ */ v(
132
+ children: t.map((d) => {
133
+ const g = `${c || d.dataKey || "value"}`, l = N(u, d, g);
134
+ return /* @__PURE__ */ p(
160
135
  "div",
161
136
  {
162
- className: u(
137
+ className: i(
163
138
  "flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground"
164
139
  ),
165
140
  children: [
166
- i != null && i.icon && !e ? /* @__PURE__ */ s(i.icon, {}) : /* @__PURE__ */ s(
141
+ l != null && l.icon && !e ? /* @__PURE__ */ s(l.icon, {}) : /* @__PURE__ */ s(
167
142
  "div",
168
143
  {
169
- className: "h-2 w-2 shrink-0 rounded-[2px]",
144
+ className: "size-2 shrink-0 rounded-[2px]",
170
145
  style: {
171
- backgroundColor: a.color
146
+ backgroundColor: d.color
172
147
  }
173
148
  }
174
149
  ),
175
- i == null ? void 0 : i.label
150
+ l == null ? void 0 : l.label
176
151
  ]
177
152
  },
178
- a.value
153
+ d.value
179
154
  );
180
155
  })
181
156
  }
182
157
  ) : null;
183
158
  });
184
- M.displayName = "ChartLegend";
185
- function k(c, e, t) {
159
+ q.displayName = "ChartLegend";
160
+ function N(o, e, t) {
186
161
  if (typeof e != "object" || e === null)
187
162
  return;
188
163
  const n = "payload" in e && typeof e.payload == "object" && e.payload !== null ? e.payload : void 0;
189
- let o = t;
190
- return t in e && typeof e[t] == "string" ? o = e[t] : n && t in n && typeof n[t] == "string" && (o = n[t]), o in c ? c[o] : c[t];
164
+ let c = t;
165
+ return t in e && typeof e[t] == "string" ? c = e[t] : n && t in n && typeof n[t] == "string" && (c = n[t]), c in o ? o[c] : o[t];
191
166
  }
192
167
  export {
193
- S as ChartContainer,
194
- y as ChartLegend,
195
- M as ChartLegendContent,
196
- E as ChartStyle,
197
- q as ChartTooltip,
168
+ I as ChartContainer,
169
+ S as ChartLegend,
170
+ q as ChartLegendContent,
171
+ M as ChartTooltip,
198
172
  K as ChartTooltipContent
199
173
  };
200
174
  //# sourceMappingURL=chart.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chart.es.js","sources":["../../../lib/components/ui/chart.tsx"],"sourcesContent":["'use client';\nimport * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { cn } from '@/utils';\n\n// Format: { THEME_NAME: CSS_SELECTOR }\nconst THEMES = { light: '', dark: '.dark' } as const;\n\nexport type ChartConfig = {\n [k in string]: {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n } & (\n | { color?: string; theme?: never }\n | { color?: never; theme: Record<keyof typeof THEMES, string> }\n );\n};\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center text-caption [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n <ChartStyle id={chartId} config={config} />\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartStyle = ({ id, config }: { id: string; config: ChartConfig }) => {\n const colorConfig = Object.entries(config).filter(([_, config]) => config.theme || config.color);\n\n if (!colorConfig.length) {\n return null;\n }\n\n return (\n <style\n dangerouslySetInnerHTML={{\n __html: Object.entries(THEMES)\n .map(\n ([theme, prefix]) => `\n${prefix} [data-chart=${id}] {\n${colorConfig\n .map(([key, itemConfig]) => {\n const color = itemConfig.theme?.[theme as keyof typeof itemConfig.theme] || itemConfig.color;\n return color ? ` --color-${key}: ${color};` : null;\n })\n .join('\\n')}\n}\n`,\n )\n .join('\\n'),\n }}\n />\n );\n};\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: 'line' | 'dot' | 'dashed';\n nameKey?: string;\n labelKey?: string;\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item.dataKey || item.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-caption shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n },\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean;\n nameKey?: string;\n }\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className,\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n 'flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground',\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"h-2 w-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartStyle,\n ChartTooltip,\n ChartTooltipContent,\n};\n"],"names":["THEMES","ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","jsxs","cn","jsx","ChartStyle","RechartsPrimitive","colorConfig","_","theme","prefix","key","itemConfig","color","_a","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","nameKey","labelKey","tooltipLabel","item","getPayloadConfigFromPayload","value","nestLabel","index","indicatorColor","Fragment","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
1
+ {"version":3,"file":"chart.es.js","sources":["../../../lib/components/ui/chart.tsx"],"sourcesContent":["'use client';\nimport * as React from 'react';\nimport * as RechartsPrimitive from 'recharts';\n\nimport { cn } from '@/utils';\n\nexport type ChartConfig = Record<string, {\n label?: React.ReactNode;\n icon?: React.ComponentType;\n}>;\n\ntype ChartContextProps = {\n config: ChartConfig;\n};\n\nconst ChartContext = React.createContext<ChartContextProps | null>(null);\n\nfunction useChart() {\n const context = React.useContext(ChartContext);\n\n if (!context) {\n throw new Error('useChart must be used within a <ChartContainer />');\n }\n\n return context;\n}\n\n// TODO, use Tremor based charts or create abstractions for specific charts.\n// Fix tootlip inconsistencies.\n// Fix color inconsistencies.\n// Create abstraction such that the input is just a single component.\nconst ChartContainer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n config: ChartConfig;\n children: React.ComponentProps<typeof RechartsPrimitive.ResponsiveContainer>['children'];\n }\n>(({ id, className, children, config, ...props }, ref) => {\n const uniqueId = React.useId();\n const chartId = `chart-${id || uniqueId.replace(/:/g, '')}`;\n\n return (\n <ChartContext.Provider value={{ config }}>\n <div\n data-chart={chartId}\n ref={ref}\n className={cn(\n \"flex aspect-video justify-center caption [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-hidden [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted/20 [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-hidden [&_.recharts-surface]:outline-hidden\",\n className,\n )}\n {...props}\n >\n {/* <ChartStyle id={chartId} config={config} /> */}\n <RechartsPrimitive.ResponsiveContainer>{children}</RechartsPrimitive.ResponsiveContainer>\n </div>\n </ChartContext.Provider>\n );\n});\nChartContainer.displayName = 'Chart';\n\nconst ChartTooltip = RechartsPrimitive.Tooltip;\n\nconst ChartTooltipContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof RechartsPrimitive.Tooltip> &\n React.ComponentProps<'div'> & {\n hideLabel?: boolean;\n hideIndicator?: boolean;\n indicator?: 'line' | 'dot' | 'dashed';\n nameKey?: string;\n labelKey?: string;\n }\n>(\n (\n {\n active,\n payload,\n className,\n indicator = 'dot',\n hideLabel = false,\n hideIndicator = false,\n label,\n labelFormatter,\n labelClassName,\n formatter,\n color,\n nameKey,\n labelKey,\n },\n ref,\n ) => {\n const { config } = useChart();\n\n const tooltipLabel = React.useMemo(() => {\n if (hideLabel || !payload?.length) {\n return null;\n }\n\n const [item] = payload;\n const key = `${labelKey || item.dataKey || item.name || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const value =\n !labelKey && typeof label === 'string'\n ? config[label as keyof typeof config]?.label || label\n : itemConfig?.label;\n\n if (labelFormatter) {\n return (\n <div className={cn('font-medium', labelClassName)}>{labelFormatter(value, payload)}</div>\n );\n }\n\n if (!value) {\n return null;\n }\n\n return <div className={cn('font-medium', labelClassName)}>{value}</div>;\n }, [label, labelFormatter, payload, hideLabel, labelClassName, config, labelKey]);\n\n if (!active || !payload?.length) {\n return null;\n }\n\n const nestLabel = payload.length === 1 && indicator !== 'dot';\n\n return (\n <div\n ref={ref}\n className={cn(\n 'grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-caption shadow-xl',\n className,\n )}\n >\n {!nestLabel ? tooltipLabel : null}\n <div className=\"grid gap-1.5\">\n {payload.map((item, index) => {\n const key = `${nameKey || item.name || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n const indicatorColor = color || item.payload.fill || item.color;\n\n return (\n <div\n key={item.dataKey}\n className={cn(\n 'flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground',\n indicator === 'dot' && 'items-center',\n )}\n >\n {formatter && item?.value !== undefined && item.name ? (\n formatter(item.value, item.name, item, index, item.payload)\n ) : (\n <>\n {itemConfig?.icon ? (\n <itemConfig.icon />\n ) : (\n !hideIndicator && (\n <div\n className={cn(\n 'shrink-0 rounded-[2px] border-border bg-background',\n {\n 'h-2.5 w-2.5': indicator === 'dot',\n 'w-1': indicator === 'line',\n 'w-0 border-[1.5px] border-dashed bg-transparent':\n indicator === 'dashed',\n 'my-0.5': nestLabel && indicator === 'dashed',\n },\n )}\n style={\n {\n '--color-bg': indicatorColor,\n '--color-border': indicatorColor,\n } as React.CSSProperties\n }\n />\n )\n )}\n <div\n className={cn(\n 'flex flex-1 justify-between leading-none',\n nestLabel ? 'items-end' : 'items-center',\n )}\n >\n <div className=\"grid gap-1.5\">\n {nestLabel ? tooltipLabel : null}\n <span className=\"text-muted-foreground\">\n {itemConfig?.label || item.name}\n </span>\n </div>\n {item.value && (\n <span className=\"font-mono font-medium tabular-nums text-foreground\">\n {item.value.toLocaleString()}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n },\n);\nChartTooltipContent.displayName = 'ChartTooltip';\n\nconst ChartLegend = RechartsPrimitive.Legend;\n\nconst ChartLegendContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> &\n Pick<RechartsPrimitive.LegendProps, 'payload' | 'verticalAlign'> & {\n hideIcon?: boolean;\n nameKey?: string;\n }\n>(({ className, hideIcon = false, payload, verticalAlign = 'bottom', nameKey }, ref) => {\n const { config } = useChart();\n\n if (!payload?.length) {\n return null;\n }\n\n return (\n <div\n ref={ref}\n className={cn(\n 'flex items-center justify-center gap-4',\n verticalAlign === 'top' ? 'pb-3' : 'pt-3',\n className,\n )}\n >\n {payload.map((item) => {\n const key = `${nameKey || item.dataKey || 'value'}`;\n const itemConfig = getPayloadConfigFromPayload(config, item, key);\n\n return (\n <div\n key={item.value}\n className={cn(\n 'flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground',\n )}\n >\n {itemConfig?.icon && !hideIcon ? (\n <itemConfig.icon />\n ) : (\n <div\n className=\"size-2 shrink-0 rounded-[2px]\"\n style={{\n backgroundColor: item.color,\n }}\n />\n )}\n {itemConfig?.label}\n </div>\n );\n })}\n </div>\n );\n});\nChartLegendContent.displayName = 'ChartLegend';\n\n// Helper to extract item config from a payload.\nfunction getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) {\n if (typeof payload !== 'object' || payload === null) {\n return undefined;\n }\n\n const payloadPayload =\n 'payload' in payload && typeof payload.payload === 'object' && payload.payload !== null\n ? payload.payload\n : undefined;\n\n let configLabelKey: string = key;\n\n if (key in payload && typeof payload[key as keyof typeof payload] === 'string') {\n configLabelKey = payload[key as keyof typeof payload] as string;\n } else if (\n payloadPayload &&\n key in payloadPayload &&\n typeof payloadPayload[key as keyof typeof payloadPayload] === 'string'\n ) {\n configLabelKey = payloadPayload[key as keyof typeof payloadPayload] as string;\n }\n\n return configLabelKey in config ? config[configLabelKey] : config[key as keyof typeof config];\n}\n\nexport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent\n};\n\n"],"names":["ChartContext","React","useChart","context","ChartContainer","id","className","children","config","props","ref","uniqueId","chartId","jsx","cn","RechartsPrimitive","ChartTooltip","ChartTooltipContent","active","payload","indicator","hideLabel","hideIndicator","label","labelFormatter","labelClassName","formatter","color","nameKey","labelKey","tooltipLabel","item","key","itemConfig","getPayloadConfigFromPayload","value","_a","nestLabel","jsxs","index","indicatorColor","Fragment","ChartLegend","ChartLegendContent","hideIcon","verticalAlign","payloadPayload","configLabelKey"],"mappings":"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"}
@@ -1,28 +1,22 @@
1
1
  import { jsx as e } from "react/jsx-runtime";
2
- import * as s from "react";
3
- import * as r from "@radix-ui/react-checkbox";
4
- import { CheckIcon as c } from "@radix-ui/react-icons";
5
- import { cn as o } from "../../utils/index.es.js";
6
- const d = s.forwardRef(({ className: i, ...t }, a) => /* @__PURE__ */ e(
7
- r.Root,
2
+ import * as o from "@radix-ui/react-checkbox";
3
+ import { CheckIcon as s } from "@radix-ui/react-icons";
4
+ import * as c from "react";
5
+ import { cn as d } from "../../utils/index.es.js";
6
+ const t = c.forwardRef(({ className: r, ...i }, a) => /* @__PURE__ */ e(
7
+ o.Root,
8
8
  {
9
9
  ref: a,
10
- className: o(
11
- "peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow-sm focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
12
- i
10
+ className: d(
11
+ "peer size-icon rounded-sm border border-border focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",
12
+ r
13
13
  ),
14
- ...t,
15
- children: /* @__PURE__ */ e(
16
- r.Indicator,
17
- {
18
- className: o("flex items-center justify-center text-current"),
19
- children: /* @__PURE__ */ e(c, { className: "h-4 w-4" })
20
- }
21
- )
14
+ ...i,
15
+ children: /* @__PURE__ */ e(o.Indicator, { children: /* @__PURE__ */ e(s, { className: "size-icon" }) })
22
16
  }
23
17
  ));
24
- d.displayName = r.Root.displayName;
18
+ t.displayName = o.Root.displayName;
25
19
  export {
26
- d as Checkbox
20
+ t as Checkbox
27
21
  };
28
22
  //# sourceMappingURL=checkbox.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.es.js","sources":["../../../lib/components/ui/checkbox.tsx"],"sourcesContent":["import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"@radix-ui/react-icons\"\n\nimport { cn } from \"@/utils\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow-sm focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <CheckIcon className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n"],"names":["Checkbox","React","className","props","ref","jsx","CheckboxPrimitive","cn","CheckIcon"],"mappings":";;;;;AAMM,MAAAA,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,IAEJ,UAAA,gBAAAE;AAAA,MAACC,EAAkB;AAAA,MAAlB;AAAA,QACC,WAAWC,EAAG,+CAA+C;AAAA,QAE7D,UAAA,gBAAAF,EAACG,GAAU,EAAA,WAAU,UAAU,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACjC;AACF,CACD;AACDR,EAAS,cAAcM,EAAkB,KAAK;"}
1
+ {"version":3,"file":"checkbox.es.js","sources":["../../../lib/components/ui/checkbox.tsx"],"sourcesContent":["import * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"@radix-ui/react-icons\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/utils\"\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer size-icon rounded-sm border border-border focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator>\n <CheckIcon className=\"size-icon\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n"],"names":["Checkbox","React","className","props","ref","jsx","CheckboxPrimitive","cn","CheckIcon"],"mappings":";;;;;AAMM,MAAAA,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAM,GAAGC,MAC1B,gBAAAC;AAAA,EAACC,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAF;AAAA,IACA,WAAWG;AAAA,MACT;AAAA,MACAL;AAAA,IACF;AAAA,IACC,GAAGC;AAAA,IAEJ,UAAA,gBAAAE,EAACC,EAAkB,WAAlB,EACC,4BAACE,GAAU,EAAA,WAAU,YAAY,CAAA,EACnC,CAAA;AAAA,EAAA;AACF,CACD;AACDR,EAAS,cAAcM,EAAkB,KAAK;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as o, jsxs as p } from "react/jsx-runtime";
2
- import * as m from "react";
3
2
  import { MagnifyingGlassIcon as s } from "@radix-ui/react-icons";
4
3
  import { Command as d } from "cmdk";
5
- import { cn as r } from "../../utils/index.es.js";
4
+ import * as m from "react";
6
5
  import { Dialog as i, DialogContent as c } from "./dialog.es.js";
6
+ import { cn as r } from "../../utils/index.es.js";
7
7
  const n = m.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ o(
8
8
  d,
9
9
  {
@@ -17,13 +17,13 @@ const n = m.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ o(
17
17
  ));
18
18
  n.displayName = d.displayName;
19
19
  const v = ({ children: e, ...a }) => /* @__PURE__ */ o(i, { ...a, children: /* @__PURE__ */ o(c, { className: "overflow-hidden p-0", children: /* @__PURE__ */ o(n, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children: e }) }) }), l = m.forwardRef(({ className: e, ...a }, t) => /* @__PURE__ */ p("div", { className: "flex items-center border-b px-3", "cmdk-input-wrapper": "", children: [
20
- /* @__PURE__ */ o(s, { className: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
20
+ /* @__PURE__ */ o(s, { className: "mr-2 size-4 shrink-0 opacity-50" }),
21
21
  /* @__PURE__ */ o(
22
22
  d.Input,
23
23
  {
24
24
  ref: t,
25
25
  className: r(
26
- "flex h-10 w-full rounded-md bg-transparent py-3 text-body outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
26
+ "flex h-input w-full rounded-md bg-transparent py-3 text-body outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
27
27
  e
28
28
  ),
29
29
  ...a
@@ -1 +1 @@
1
- {"version":3,"file":"command.es.js","sources":["../../../lib/components/ui/command.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { MagnifyingGlassIcon } from \"@radix-ui/react-icons\"\nimport { Command as CommandPrimitive } from \"cmdk\"\n\nimport { cn } from \"@/utils\"\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <MagnifyingGlassIcon className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-body outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-body\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-caption [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-body outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-caption tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"],"names":["Command","React","className","props","ref","jsx","CommandPrimitive","cn","CommandDialog","children","Dialog","DialogContent","CommandInput","jsxs","MagnifyingGlassIcon","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"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"}
1
+ {"version":3,"file":"command.es.js","sources":["../../../lib/components/ui/command.tsx"],"sourcesContent":["import { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { MagnifyingGlassIcon } from \"@radix-ui/react-icons\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport * as React from \"react\"\n\nimport { Dialog, DialogContent } from \"@/components/ui/dialog\"\nimport { cn } from \"@/utils\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps { }\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <MagnifyingGlassIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-input w-full rounded-md bg-transparent py-3 text-body outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-body\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-caption [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-body outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-caption tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog, CommandEmpty,\n CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut\n}\n\n"],"names":["Command","React","className","props","ref","jsx","CommandPrimitive","cn","CommandDialog","children","Dialog","DialogContent","CommandInput","jsxs","MagnifyingGlassIcon","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  "use client";
2
- import { jsx as i, jsxs as n } from "react/jsx-runtime";
2
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  import "./accordion.es.js";
4
4
  import "./avatar.es.js";
5
- import "./badge.es.js";
6
5
  import "./breadcrumb.es.js";
7
- import { Button as d } from "./button.es.js";
6
+ import { Button as l } from "./button.es.js";
8
7
  import "./calendar.es.js";
9
8
  import "./card.es.js";
10
9
  import "./chart.es.js";
11
10
  import "./checkbox.es.js";
12
11
  import "@radix-ui/react-collapsible";
13
12
  import "./command.es.js";
14
- import { CheckCheck as s, Copy as h } from "lucide-react";
15
- import { useState as f } from "react";
13
+ import { CheckCheck as a, Copy as s } from "lucide-react";
14
+ import { useState as d } from "react";
16
15
  import "./dialog.es.js";
17
16
  import "./drawer.es.js";
18
17
  import "./dropdown-menu.es.js";
@@ -34,43 +33,30 @@ import "./sidebar.es.js";
34
33
  import "sonner";
35
34
  import "./table.es.js";
36
35
  import "./tabs.es.js";
37
- import { TooltipProvider as g, Tooltip as u, TooltipTrigger as T, TooltipContent as C } from "./tooltip.es.js";
38
- function ri({
36
+ import { TooltipProvider as T, Tooltip as u, TooltipTrigger as f, TooltipContent as h } from "./tooltip.es.js";
37
+ const C = 5e3;
38
+ function $({
39
39
  value: r,
40
- display: o,
41
- tooltipMessage: c = "Copy to clipboard",
42
- onCopy: t,
43
- position: p = "leading"
44
- // Default position to trailing
40
+ tooltipMessage: m = "Copy to clipboard",
41
+ onCopy: o
45
42
  }) {
46
- const [m, e] = f(!1), l = async () => {
43
+ const [i, p] = d(!1), e = async () => {
47
44
  try {
48
- await navigator.clipboard.writeText(r), e(!0), t == null || t(), setTimeout(() => {
49
- e(!1);
50
- }, 1e4);
51
- } catch (a) {
52
- console.error("Failed to copy text:", a);
45
+ await navigator.clipboard.writeText(r), p(!0), o == null || o(), setTimeout(() => {
46
+ p(!1);
47
+ }, C);
48
+ } catch (c) {
49
+ console.error("Failed to copy text:", c);
53
50
  }
54
51
  };
55
52
  if (r)
56
- return /* @__PURE__ */ i(g, { children: /* @__PURE__ */ n(u, { delayDuration: 0, children: [
57
- /* @__PURE__ */ n("div", { className: "flex gap-1 align-middle ", children: [
58
- p === "leading" && /* @__PURE__ */ i("span", { children: o ?? r }),
59
- /* @__PURE__ */ i(T, { asChild: !0, children: /* @__PURE__ */ i(
60
- d,
61
- {
62
- onClick: l,
63
- variant: "ghost",
64
- size: "icon",
65
- icon: m ? s : h
66
- }
67
- ) }),
68
- p === "trailing" && /* @__PURE__ */ i("span", { children: o ?? r })
69
- ] }),
70
- /* @__PURE__ */ i(C, { children: m ? "Copied!" : c })
53
+ return /* @__PURE__ */ t(T, { children: /* @__PURE__ */ n(u, { delayDuration: 0, children: [
54
+ /* @__PURE__ */ t(f, { asChild: !0, children: /* @__PURE__ */ t(l, { onClick: e, variant: "outline", size: "sm", icon: i ? a : s }) }),
55
+ /* @__PURE__ */ t(h, { children: i ? "Copied" : m })
71
56
  ] }) });
72
57
  }
73
58
  export {
74
- ri as CopyButton
59
+ C as COPY_BUTTON_STATE_TIMEOUT,
60
+ $ as CopyButton
75
61
  };
76
62
  //# sourceMappingURL=copy-button.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copy-button.es.js","sources":["../../../lib/components/ui/copy-button.tsx"],"sourcesContent":["'use client';\nimport { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/index';\nimport { CheckCheck, Copy } from 'lucide-react';\nimport { useState } from 'react';\n\ninterface CopyProps {\n value: string;\n display?: string;\n tooltipMessage?: string;\n className?: string;\n size?: number;\n onCopy?: () => void;\n position?: 'leading' | 'trailing'; // New prop for positioning\n}\n\nexport function CopyButton({\n value,\n display,\n tooltipMessage = 'Copy to clipboard',\n onCopy,\n position = 'leading', // Default position to trailing\n}: CopyProps) {\n const [copied, setCopied] = useState(false);\n\n const copyToClipboard = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n onCopy?.();\n\n setTimeout(() => {\n setCopied(false);\n }, 10000);\n } catch (err) {\n console.error('Failed to copy text:', err);\n }\n };\nif(!value)return;\n return (\n <TooltipProvider>\n <Tooltip delayDuration={0}>\n <div className=\"flex gap-1 align-middle \">\n {position === 'leading' && <span>{display ?? value}</span>}\n <TooltipTrigger asChild>\n <Button\n onClick={copyToClipboard}\n variant=\"ghost\"\n size=\"icon\"\n icon={copied ? CheckCheck : Copy}\n ></Button>\n </TooltipTrigger>\n {position === 'trailing' && <span>{display ?? value}</span>}\n </div>\n\n <TooltipContent>{copied ? 'Copied!' : tooltipMessage}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"names":["CopyButton","value","display","tooltipMessage","onCopy","position","copied","setCopied","useState","copyToClipboard","err","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Button","CheckCheck","Copy","TooltipContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeO,SAASA,GAAW;AAAA,EACzB,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,QAAAC;AAAA,EACA,UAAAC,IAAW;AAAA;AACb,GAAc;AACZ,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAkB,YAAY;AAC9B,QAAA;AACI,YAAA,UAAU,UAAU,UAAUR,CAAK,GACzCM,EAAU,EAAI,GACLH,KAAA,QAAAA,KAET,WAAW,MAAM;AACf,QAAAG,EAAU,EAAK;AAAA,SACd,GAAK;AAAA,aACDG,GAAK;AACJ,cAAA,MAAM,wBAAwBA,CAAG;AAAA,IAAA;AAAA,EAE7C;AACF,MAAIT;AACF,WACG,gBAAAU,EAAAC,GAAA,EACC,UAAC,gBAAAC,EAAAC,GAAA,EAAQ,eAAe,GACtB,UAAA;AAAA,MAAC,gBAAAD,EAAA,OAAA,EAAI,WAAU,4BACZ,UAAA;AAAA,QAAAR,MAAa,aAAa,gBAAAM,EAAC,QAAM,EAAA,UAAAT,KAAWD,GAAM;AAAA,QACnD,gBAAAU,EAACI,GAAe,EAAA,SAAO,IACrB,UAAA,gBAAAJ;AAAA,UAACK;AAAA,UAAA;AAAA,YACC,SAASP;AAAA,YACT,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAMH,IAASW,IAAaC;AAAA,UAAA;AAAA,QAAA,GAEhC;AAAA,QACCb,MAAa,cAAe,gBAAAM,EAAA,QAAA,EAAM,eAAWV,EAAM,CAAA;AAAA,MAAA,GACtD;AAAA,MAEC,gBAAAU,EAAAQ,GAAA,EAAgB,UAASb,IAAA,YAAYH,EAAe,CAAA;AAAA,IAAA,EAAA,CACvD,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"copy-button.es.js","sources":["../../../lib/components/ui/copy-button.tsx"],"sourcesContent":["'use client';\nimport { Button, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/index';\nimport { CheckCheck, Copy } from 'lucide-react';\nimport { useState } from 'react';\n\ninterface CopyProps {\n value: string;\n tooltipMessage?: string;\n onCopy?: () => void;\n}\n\nexport const COPY_BUTTON_STATE_TIMEOUT = 5000;\nexport function CopyButton({\n value,\n tooltipMessage = 'Copy to clipboard',\n onCopy,\n}: CopyProps) {\n const [copied, setCopied] = useState(false);\n\n const copyToClipboard = async () => {\n try {\n await navigator.clipboard.writeText(value);\n setCopied(true);\n onCopy?.();\n\n setTimeout(() => {\n setCopied(false);\n }, COPY_BUTTON_STATE_TIMEOUT);\n } catch (err) {\n console.error('Failed to copy text:', err);\n }\n };\n if (!value) return;\n return (\n <TooltipProvider>\n <Tooltip delayDuration={0}>\n <TooltipTrigger asChild>\n <Button onClick={copyToClipboard} variant=\"outline\" size=\"sm\" icon={copied ? CheckCheck : Copy} />\n </TooltipTrigger>\n <TooltipContent>{copied ? 'Copied' : tooltipMessage}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n}\n"],"names":["COPY_BUTTON_STATE_TIMEOUT","CopyButton","value","tooltipMessage","onCopy","copied","setCopied","useState","copyToClipboard","err","jsx","TooltipProvider","jsxs","Tooltip","TooltipTrigger","Button","CheckCheck","Copy","TooltipContent"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,MAAMA,IAA4B;AAClC,SAASC,EAAW;AAAA,EACzB,OAAAC;AAAA,EACA,gBAAAC,IAAiB;AAAA,EACjB,QAAAC;AACF,GAAc;AACZ,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAAS,EAAK,GAEpCC,IAAkB,YAAY;AAC9B,QAAA;AACI,YAAA,UAAU,UAAU,UAAUN,CAAK,GACzCI,EAAU,EAAI,GACLF,KAAA,QAAAA,KAET,WAAW,MAAM;AACf,QAAAE,EAAU,EAAK;AAAA,SACdN,CAAyB;AAAA,aACrBS,GAAK;AACJ,cAAA,MAAM,wBAAwBA,CAAG;AAAA,IAAA;AAAA,EAE7C;AACA,MAAKP;AACL,WACG,gBAAAQ,EAAAC,GAAA,EACC,UAAC,gBAAAC,EAAAC,GAAA,EAAQ,eAAe,GACtB,UAAA;AAAA,MAAA,gBAAAH,EAACI,GAAe,EAAA,SAAO,IACrB,UAAA,gBAAAJ,EAACK,KAAO,SAASP,GAAiB,SAAQ,WAAU,MAAK,MAAK,MAAMH,IAASW,IAAaC,EAAM,CAAA,GAClG;AAAA,MACC,gBAAAP,EAAAQ,GAAA,EAAgB,UAASb,IAAA,WAAWF,EAAe,CAAA;AAAA,IAAA,EAAA,CACtD,EACF,CAAA;AAEJ;"}