saha-ui 1.22.6 → 1.22.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DebugOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/DragDrop/DebugOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAS3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyXpD,CAAC"}
1
+ {"version":3,"file":"DebugOverlay.d.ts","sourceRoot":"","sources":["../../../src/components/DragDrop/DebugOverlay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAU3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,CAAC;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAMD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAyZpD,CAAC"}
@@ -1,57 +1,63 @@
1
- import { jsxs as t, Fragment as C, jsx as e } from "react/jsx-runtime";
2
- import { useState as l, useRef as I, useEffect as h } from "react";
3
- import { useDragDropContext as G } from "./DragDropContext.js";
4
- import { cn as j } from "../../lib/utils.js";
5
- import { ChevronUp as T, ChevronDown as L } from "lucide-react";
6
- const Y = ({
1
+ import { jsxs as t, Fragment as v, jsx as e } from "react/jsx-runtime";
2
+ import { useState as l, useRef as w, useEffect as c } from "react";
3
+ import { createPortal as T } from "react-dom";
4
+ import { useDragDropContext as L } from "./DragDropContext.js";
5
+ import { cn as D } from "../../lib/utils.js";
6
+ import { ChevronUp as Y, ChevronDown as M } from "lucide-react";
7
+ const U = ({
7
8
  enabled: x = !0,
8
- position: D = "top-right",
9
- showCollisionRects: M = !0,
10
- showDragPath: c = !0,
11
- showPerformanceMetrics: g = !0
9
+ position: O = "top-right",
10
+ showCollisionRects: q = !0,
11
+ showDragPath: g = !0,
12
+ showPerformanceMetrics: y = !0
12
13
  }) => {
13
- const O = G(), [m, S] = l(!0), [p, y] = l([]), [N, k] = l(0), [R, P] = l(0), a = I({ frames: 0, lastTime: performance.now() }), b = I(0), {
14
+ const R = L(), [m, S] = l(!0), [p, N] = l([]), [b, k] = l(0), [P, A] = l(0), o = w({ frames: 0, lastTime: performance.now() }), C = w(0), {
14
15
  activeId: F,
15
- activeItem: v,
16
- activeIndex: A,
16
+ activeItem: I,
17
+ activeIndex: E,
17
18
  sourceContainerId: z,
18
- dragPosition: o,
19
- isDragging: i,
19
+ dragPosition: i,
20
+ isDragging: u,
20
21
  selectionState: f,
21
- historyState: u
22
- } = O, [d, w] = l(null);
23
- return h(() => {
24
- if (!i || !c) {
25
- y([]);
22
+ historyState: h
23
+ } = R, [d, j] = l(null), r = w(null);
24
+ return c(() => {
25
+ const n = document.createElement("div");
26
+ return n.setAttribute("data-saha-debug-overlay-portal", ""), document.body.appendChild(n), r.current = n, () => {
27
+ r.current && r.current.parentNode && r.current.parentNode.removeChild(r.current), r.current = null;
28
+ };
29
+ }, []), c(() => {
30
+ if (!u || !g) {
31
+ N([]);
26
32
  return;
27
33
  }
28
- const s = (r) => {
29
- const n = { x: r.clientX, y: r.clientY, timestamp: Date.now() };
30
- w(n), y((E) => [...E.slice(-50), n]);
34
+ const n = (a) => {
35
+ const s = { x: a.clientX, y: a.clientY, timestamp: Date.now() };
36
+ j(s), N((G) => [...G.slice(-50), s]);
31
37
  };
32
- return window.addEventListener("pointermove", s), () => {
33
- window.removeEventListener("pointermove", s), w(null), y([]);
38
+ return window.addEventListener("pointermove", n), () => {
39
+ window.removeEventListener("pointermove", n), j(null), N([]);
34
40
  };
35
- }, [i, c]), h(() => {
36
- if (!x || !g) return;
37
- const s = () => {
38
- const n = performance.now();
39
- a.current.frames++, n >= a.current.lastTime + 1e3 && (k(
41
+ }, [u, g]), c(() => {
42
+ if (!x || !y) return;
43
+ const n = () => {
44
+ const s = performance.now();
45
+ o.current.frames++, s >= o.current.lastTime + 1e3 && (k(
40
46
  Math.round(
41
- a.current.frames * 1e3 / (n - a.current.lastTime)
47
+ o.current.frames * 1e3 / (s - o.current.lastTime)
42
48
  )
43
- ), a.current.frames = 0, a.current.lastTime = n), requestAnimationFrame(s);
44
- }, r = requestAnimationFrame(s);
45
- return () => cancelAnimationFrame(r);
46
- }, [x, g]), h(() => {
47
- b.current = performance.now();
48
- }), h(() => {
49
- P(performance.now() - b.current);
50
- }), x ? /* @__PURE__ */ t(C, { children: [
49
+ ), o.current.frames = 0, o.current.lastTime = s), requestAnimationFrame(n);
50
+ }, a = requestAnimationFrame(n);
51
+ return () => cancelAnimationFrame(a);
52
+ }, [x, y]), c(() => {
53
+ C.current = performance.now();
54
+ }), c(() => {
55
+ A(performance.now() - C.current);
56
+ }), x ? /* @__PURE__ */ t(v, { children: [
51
57
  /* @__PURE__ */ t(
52
58
  "div",
53
59
  {
54
- className: j(
60
+ className: D(
55
61
  "fixed z-[9999] bg-background border rounded-lg shadow-lg",
56
62
  "max-w-md transition-all duration-200",
57
63
  {
@@ -59,7 +65,7 @@ const Y = ({
59
65
  "top-right": "top-4 right-4",
60
66
  "bottom-left": "bottom-4 left-4",
61
67
  "bottom-right": "bottom-4 right-4"
62
- }[D],
68
+ }[O],
63
69
  !m && "w-auto"
64
70
  ),
65
71
  children: [
@@ -73,12 +79,12 @@ const Y = ({
73
79
  {
74
80
  onClick: () => S(!m),
75
81
  className: "p-1 hover:bg-background rounded transition-colors",
76
- children: m ? /* @__PURE__ */ e(T, { className: "w-4 h-4" }) : /* @__PURE__ */ e(L, { className: "w-4 h-4" })
82
+ children: m ? /* @__PURE__ */ e(Y, { className: "w-4 h-4" }) : /* @__PURE__ */ e(M, { className: "w-4 h-4" })
77
83
  }
78
84
  ) })
79
85
  ] }),
80
86
  m && /* @__PURE__ */ t("div", { className: "p-3 space-y-3 text-xs max-h-[500px] overflow-auto", children: [
81
- g && /* @__PURE__ */ t("div", { className: "space-y-1", children: [
87
+ y && /* @__PURE__ */ t("div", { className: "space-y-1", children: [
82
88
  /* @__PURE__ */ e("h4", { className: "font-semibold text-foreground mb-2", children: "Performance" }),
83
89
  /* @__PURE__ */ t("div", { className: "grid grid-cols-2 gap-2", children: [
84
90
  /* @__PURE__ */ t("div", { className: "bg-muted/50 rounded px-2 py-1", children: [
@@ -86,18 +92,18 @@ const Y = ({
86
92
  /* @__PURE__ */ e(
87
93
  "span",
88
94
  {
89
- className: j(
95
+ className: D(
90
96
  "ml-2 font-mono font-medium",
91
- N >= 50 ? "text-green-500" : N >= 30 ? "text-yellow-500" : "text-red-500"
97
+ b >= 50 ? "text-green-500" : b >= 30 ? "text-yellow-500" : "text-red-500"
92
98
  ),
93
- children: N
99
+ children: b
94
100
  }
95
101
  )
96
102
  ] }),
97
103
  /* @__PURE__ */ t("div", { className: "bg-muted/50 rounded px-2 py-1", children: [
98
104
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Render:" }),
99
105
  /* @__PURE__ */ t("span", { className: "ml-2 font-mono font-medium", children: [
100
- R.toFixed(2),
106
+ P.toFixed(2),
101
107
  "ms"
102
108
  ] })
103
109
  ] })
@@ -108,7 +114,7 @@ const Y = ({
108
114
  /* @__PURE__ */ t("div", { className: "bg-muted/50 rounded px-2 py-1 space-y-1", children: [
109
115
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
110
116
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Is Dragging:" }),
111
- /* @__PURE__ */ e("span", { className: "font-medium", children: i ? "Yes" : "No" })
117
+ /* @__PURE__ */ e("span", { className: "font-medium", children: u ? "Yes" : "No" })
112
118
  ] }),
113
119
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
114
120
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Active ID:" }),
@@ -116,20 +122,20 @@ const Y = ({
116
122
  ] }),
117
123
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
118
124
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Active Index:" }),
119
- /* @__PURE__ */ e("span", { className: "font-medium", children: A ?? "—" })
125
+ /* @__PURE__ */ e("span", { className: "font-medium", children: E ?? "—" })
120
126
  ] }),
121
127
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
122
128
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Container:" }),
123
129
  /* @__PURE__ */ e("span", { className: "font-mono font-medium truncate max-w-[120px]", children: z || "—" })
124
130
  ] }),
125
- o && /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
131
+ i && /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
126
132
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Position:" }),
127
133
  /* @__PURE__ */ t("span", { className: "font-mono font-medium", children: [
128
134
  "x: ",
129
- Math.round(o.x),
135
+ Math.round(i.x),
130
136
  ", y:",
131
137
  " ",
132
- Math.round(o.y)
138
+ Math.round(i.y)
133
139
  ] })
134
140
  ] })
135
141
  ] })
@@ -146,147 +152,162 @@ const Y = ({
146
152
  ] }),
147
153
  f.selectedIds.size > 0 && /* @__PURE__ */ t("div", { className: "mt-1 pt-1 border-t border-border", children: [
148
154
  /* @__PURE__ */ e("div", { className: "text-muted-foreground mb-1", children: "IDs:" }),
149
- /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1", children: Array.from(f.selectedIds).map((s) => /* @__PURE__ */ e(
155
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1", children: Array.from(f.selectedIds).map((n) => /* @__PURE__ */ e(
150
156
  "span",
151
157
  {
152
158
  className: "px-1.5 py-0.5 bg-primary/20 text-primary rounded text-[10px] font-mono",
153
- children: s
159
+ children: n
154
160
  },
155
- s
161
+ n
156
162
  )) })
157
163
  ] })
158
164
  ] })
159
165
  ] }),
160
- u && /* @__PURE__ */ t("div", { className: "space-y-1", children: [
166
+ h && /* @__PURE__ */ t("div", { className: "space-y-1", children: [
161
167
  /* @__PURE__ */ e("h4", { className: "font-semibold text-foreground mb-2", children: "Undo/Redo" }),
162
168
  /* @__PURE__ */ t("div", { className: "bg-muted/50 rounded px-2 py-1 space-y-1", children: [
163
169
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
164
170
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Can Undo:" }),
165
- /* @__PURE__ */ e("span", { className: "font-medium", children: u.past.length > 0 ? "Yes" : "No" })
171
+ /* @__PURE__ */ e("span", { className: "font-medium", children: h.past.length > 0 ? "Yes" : "No" })
166
172
  ] }),
167
173
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
168
174
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "Can Redo:" }),
169
- /* @__PURE__ */ e("span", { className: "font-medium", children: u.future.length > 0 ? "Yes" : "No" })
175
+ /* @__PURE__ */ e("span", { className: "font-medium", children: h.future.length > 0 ? "Yes" : "No" })
170
176
  ] }),
171
177
  /* @__PURE__ */ t("div", { className: "flex justify-between", children: [
172
178
  /* @__PURE__ */ e("span", { className: "text-muted-foreground", children: "History Size:" }),
173
- /* @__PURE__ */ e("span", { className: "font-medium", children: u.past.length })
179
+ /* @__PURE__ */ e("span", { className: "font-medium", children: h.past.length })
174
180
  ] })
175
181
  ] })
176
182
  ] }),
177
- v && /* @__PURE__ */ t("div", { className: "space-y-1", children: [
183
+ I && /* @__PURE__ */ t("div", { className: "space-y-1", children: [
178
184
  /* @__PURE__ */ e("h4", { className: "font-semibold text-foreground mb-2", children: "Active Item" }),
179
- /* @__PURE__ */ e("pre", { className: "bg-muted/50 rounded px-2 py-1 overflow-auto max-h-32 text-[10px] font-mono", children: JSON.stringify(v, null, 2) })
185
+ /* @__PURE__ */ e("pre", { className: "bg-muted/50 rounded px-2 py-1 overflow-auto max-h-32 text-[10px] font-mono", children: JSON.stringify(I, null, 2) })
180
186
  ] })
181
187
  ] })
182
188
  ]
183
189
  }
184
190
  ),
185
- c && i && p.length > 1 && /* @__PURE__ */ t(
186
- "svg",
187
- {
188
- className: "fixed inset-0 pointer-events-none z-[9998]",
189
- style: { width: "100vw", height: "100vh" },
190
- children: [
191
- /* @__PURE__ */ t("defs", { children: [
192
- /* @__PURE__ */ t("linearGradient", { id: "dragPathGrad", x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [
193
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: "#6366f1", stopOpacity: "0.6" }),
194
- /* @__PURE__ */ e("stop", { offset: "50%", stopColor: "#8b5cf6", stopOpacity: "0.9" }),
195
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: "#6366f1", stopOpacity: "1" })
196
- ] }),
197
- /* @__PURE__ */ t("radialGradient", { id: "dotGrad", cx: "30%", cy: "30%", r: "70%", children: [
198
- /* @__PURE__ */ e("stop", { offset: "0%", stopColor: "#ffffff", stopOpacity: "1" }),
199
- /* @__PURE__ */ e("stop", { offset: "30%", stopColor: "#6366f1", stopOpacity: "1" }),
200
- /* @__PURE__ */ e("stop", { offset: "100%", stopColor: "#8b5cf6", stopOpacity: "0.6" })
201
- ] })
202
- ] }),
203
- /* @__PURE__ */ e(
204
- "polyline",
191
+ r.current && u && g && T(
192
+ /* @__PURE__ */ t(v, { children: [
193
+ p.length > 1 && /* @__PURE__ */ t(
194
+ "svg",
195
+ {
196
+ className: "fixed inset-0 pointer-events-none z-[9998]",
197
+ style: { width: "100vw", height: "100vh" },
198
+ children: [
199
+ /* @__PURE__ */ t("defs", { children: [
200
+ /* @__PURE__ */ t(
201
+ "linearGradient",
202
+ {
203
+ id: "dragPathGrad",
204
+ x1: "0%",
205
+ y1: "0%",
206
+ x2: "100%",
207
+ y2: "0%",
208
+ children: [
209
+ /* @__PURE__ */ e("stop", { offset: "0%", stopColor: "#6366f1", stopOpacity: "0.6" }),
210
+ /* @__PURE__ */ e("stop", { offset: "50%", stopColor: "#8b5cf6", stopOpacity: "0.9" }),
211
+ /* @__PURE__ */ e("stop", { offset: "100%", stopColor: "#6366f1", stopOpacity: "1" })
212
+ ]
213
+ }
214
+ ),
215
+ /* @__PURE__ */ t("radialGradient", { id: "dotGrad", cx: "30%", cy: "30%", r: "70%", children: [
216
+ /* @__PURE__ */ e("stop", { offset: "0%", stopColor: "#ffffff", stopOpacity: "1" }),
217
+ /* @__PURE__ */ e("stop", { offset: "30%", stopColor: "#6366f1", stopOpacity: "1" }),
218
+ /* @__PURE__ */ e("stop", { offset: "100%", stopColor: "#8b5cf6", stopOpacity: "0.6" })
219
+ ] })
220
+ ] }),
221
+ /* @__PURE__ */ e(
222
+ "polyline",
223
+ {
224
+ points: p.map((n) => `${n.x},${n.y}`).join(" "),
225
+ fill: "none",
226
+ stroke: "url(#dragPathGrad)",
227
+ strokeWidth: 2,
228
+ strokeOpacity: 0.95,
229
+ strokeLinecap: "round",
230
+ strokeLinejoin: "round"
231
+ }
232
+ ),
233
+ p.map((n, a) => {
234
+ const s = 0.18 + a / p.length * 0.82;
235
+ return /* @__PURE__ */ e(
236
+ "circle",
237
+ {
238
+ cx: n.x,
239
+ cy: n.y,
240
+ r: 2.25,
241
+ fill: "url(#dotGrad)",
242
+ fillOpacity: s
243
+ },
244
+ a
245
+ );
246
+ })
247
+ ]
248
+ }
249
+ ),
250
+ (d || i) && /* @__PURE__ */ t(v, { children: [
251
+ /* @__PURE__ */ e("style", { children: "@keyframes sahaPulse { 0% { transform: scale(1); opacity: 0.95 } 50% { transform: scale(1.12); opacity: 0.75 } 100% { transform: scale(1); opacity: 0.95 } }" }),
252
+ /* @__PURE__ */ t(
253
+ "div",
205
254
  {
206
- points: p.map((s) => `${s.x},${s.y}`).join(" "),
207
- fill: "none",
208
- stroke: "url(#dragPathGrad)",
209
- strokeWidth: 2,
210
- strokeOpacity: 0.95,
211
- strokeLinecap: "round",
212
- strokeLinejoin: "round"
213
- }
214
- ),
215
- p.map((s, r) => {
216
- const n = 0.18 + r / p.length * 0.82;
217
- return /* @__PURE__ */ e(
218
- "circle",
219
- {
220
- cx: s.x,
221
- cy: s.y,
222
- r: 2.25,
223
- fill: "url(#dotGrad)",
224
- fillOpacity: n
255
+ "aria-hidden": !0,
256
+ style: {
257
+ position: "fixed",
258
+ left: d ? d.x : i.x,
259
+ top: d ? d.y : i.y,
260
+ transform: "translate(-50%, -50%)",
261
+ pointerEvents: "none",
262
+ zIndex: 1e4,
263
+ width: 40,
264
+ height: 40,
265
+ display: "flex",
266
+ alignItems: "center",
267
+ justifyContent: "center"
225
268
  },
226
- r
227
- );
228
- })
229
- ]
230
- }
231
- ),
232
- c && i && (d || o) && /* @__PURE__ */ t(C, { children: [
233
- /* @__PURE__ */ e("style", { children: "@keyframes sahaPulse { 0% { transform: scale(1); opacity: 0.95 } 50% { transform: scale(1.12); opacity: 0.75 } 100% { transform: scale(1); opacity: 0.95 } }" }),
234
- /* @__PURE__ */ t(
235
- "div",
236
- {
237
- "aria-hidden": !0,
238
- style: {
239
- position: "fixed",
240
- left: d ? d.x : o.x,
241
- top: d ? d.y : o.y,
242
- transform: "translate(-50%, -50%)",
243
- pointerEvents: "none",
244
- zIndex: 1e4,
245
- width: 40,
246
- height: 40,
247
- display: "flex",
248
- alignItems: "center",
249
- justifyContent: "center"
250
- },
251
- children: [
252
- /* @__PURE__ */ e(
253
- "div",
254
- {
255
- style: {
256
- width: 40,
257
- height: 40,
258
- borderRadius: 9999,
259
- background: "radial-gradient(circle at 35% 30%, rgba(139,92,246,0.20), rgba(99,102,241,0.06))",
260
- border: "1px solid rgba(99,102,241,0.18)",
261
- boxShadow: "0 8px 22px rgba(15,23,42,0.14)",
262
- animation: "sahaPulse 1.6s ease-in-out infinite",
263
- transformOrigin: "center"
264
- }
265
- }
266
- ),
267
- /* @__PURE__ */ e(
268
- "div",
269
- {
270
- style: {
271
- position: "absolute",
272
- left: "50%",
273
- top: "50%",
274
- transform: "translate(-50%, -50%)",
275
- width: 10,
276
- height: 10,
277
- borderRadius: 9999,
278
- background: "linear-gradient(135deg,#8b5cf6,#6366f1)",
279
- boxShadow: "0 6px 18px rgba(139,92,246,0.24)"
280
- }
281
- }
282
- )
283
- ]
284
- }
285
- )
286
- ] })
269
+ children: [
270
+ /* @__PURE__ */ e(
271
+ "div",
272
+ {
273
+ style: {
274
+ width: 40,
275
+ height: 40,
276
+ borderRadius: 9999,
277
+ background: "radial-gradient(circle at 35% 30%, rgba(139,92,246,0.20), rgba(99,102,241,0.06))",
278
+ border: "1px solid rgba(99,102,241,0.18)",
279
+ boxShadow: "0 8px 22px rgba(15,23,42,0.14)",
280
+ animation: "sahaPulse 1.6s ease-in-out infinite",
281
+ transformOrigin: "center"
282
+ }
283
+ }
284
+ ),
285
+ /* @__PURE__ */ e(
286
+ "div",
287
+ {
288
+ style: {
289
+ position: "absolute",
290
+ left: "50%",
291
+ top: "50%",
292
+ transform: "translate(-50%, -50%)",
293
+ width: 10,
294
+ height: 10,
295
+ borderRadius: 9999,
296
+ background: "linear-gradient(135deg,#8b5cf6,#6366f1)",
297
+ boxShadow: "0 6px 18px rgba(139,92,246,0.24)"
298
+ }
299
+ }
300
+ )
301
+ ]
302
+ }
303
+ )
304
+ ] })
305
+ ] }),
306
+ r.current
307
+ )
287
308
  ] }) : null;
288
309
  };
289
- Y.displayName = "DebugOverlay";
310
+ U.displayName = "DebugOverlay";
290
311
  export {
291
- Y as DebugOverlay
312
+ U as DebugOverlay
292
313
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "saha-ui",
3
- "version": "1.22.6",
3
+ "version": "1.22.7",
4
4
  "description": "Ultra-modern React component library built with TypeScript, Tailwind CSS v4, and OKLCH colors",
5
5
  "type": "module",
6
6
  "license": "MIT",