@sigep/react 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,8 +1,51 @@
1
- // src/components/Button/index.tsx
1
+ // src/components/Avatar/index.tsx
2
2
  import { forwardRef } from "react";
3
3
  import { tv } from "tailwind-variants";
4
4
  import { jsx } from "react/jsx-runtime";
5
- var button = tv({
5
+ var avatar = tv({
6
+ base: "inline-flex items-center justify-center rounded-full font-medium select-none overflow-hidden",
7
+ variants: {
8
+ size: {
9
+ sm: "h-8 w-8 text-xs",
10
+ md: "h-10 w-10 text-sm",
11
+ lg: "h-12 w-12 text-base",
12
+ xl: "h-16 w-16 text-lg"
13
+ },
14
+ variant: {
15
+ primary: "bg-blue-600 text-white",
16
+ secondary: "bg-gray-200 text-gray-700",
17
+ outline: "bg-white text-blue-600 ring-2 ring-blue-600 ring-offset-2"
18
+ }
19
+ },
20
+ defaultVariants: {
21
+ size: "md",
22
+ variant: "primary"
23
+ }
24
+ });
25
+ function getInitials(name) {
26
+ const parts = name.trim().split(/\s+/);
27
+ if (parts.length === 1) return parts[0].charAt(0).toUpperCase();
28
+ return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase();
29
+ }
30
+ var Avatar = forwardRef(
31
+ ({ name, src, alt, size, variant, className, ...props }, ref) => {
32
+ return /* @__PURE__ */ jsx("div", { ref, className: avatar({ size, variant, className }), ...props, children: src ? /* @__PURE__ */ jsx(
33
+ "img",
34
+ {
35
+ src,
36
+ alt: alt || name || "avatar",
37
+ className: "h-full w-full object-cover"
38
+ }
39
+ ) : /* @__PURE__ */ jsx("span", { children: name ? getInitials(name) : "?" }) });
40
+ }
41
+ );
42
+ Avatar.displayName = "Avatar";
43
+
44
+ // src/components/Button/index.tsx
45
+ import { forwardRef as forwardRef2 } from "react";
46
+ import { tv as tv2 } from "tailwind-variants";
47
+ import { jsx as jsx2 } from "react/jsx-runtime";
48
+ var button = tv2({
6
49
  base: "inline-flex items-center justify-center gap-2 rounded-md font-medium transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
7
50
  variants: {
8
51
  variant: {
@@ -22,9 +65,9 @@ var button = tv({
22
65
  size: "md"
23
66
  }
24
67
  });
25
- var Button = forwardRef(
68
+ var Button = forwardRef2(
26
69
  ({ variant, size, className, ...props }, ref) => {
27
- return /* @__PURE__ */ jsx(
70
+ return /* @__PURE__ */ jsx2(
28
71
  "button",
29
72
  {
30
73
  ref,
@@ -36,20 +79,326 @@ var Button = forwardRef(
36
79
  );
37
80
  Button.displayName = "Button";
38
81
 
82
+ // src/components/Card/index.tsx
83
+ import { forwardRef as forwardRef3 } from "react";
84
+ import { tv as tv3 } from "tailwind-variants";
85
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
86
+ var card = tv3({
87
+ base: "rounded-lg bg-white text-gray-900 overflow-hidden",
88
+ variants: {
89
+ variant: {
90
+ elevated: "shadow-md",
91
+ outlined: "border border-gray-200",
92
+ filled: "bg-gray-50"
93
+ },
94
+ padding: {
95
+ none: "",
96
+ sm: "p-3",
97
+ md: "p-5",
98
+ lg: "p-8"
99
+ }
100
+ },
101
+ defaultVariants: {
102
+ variant: "elevated",
103
+ padding: "md"
104
+ }
105
+ });
106
+ var Card = forwardRef3(
107
+ ({ variant, padding, header, footer, className, children, ...props }, ref) => {
108
+ return /* @__PURE__ */ jsxs("div", { ref, className: card({ variant, padding: header || footer ? "none" : padding, className }), ...props, children: [
109
+ header && /* @__PURE__ */ jsx3("div", { className: "border-b border-gray-200 px-5 py-3 font-semibold text-sm", children: header }),
110
+ header || footer ? /* @__PURE__ */ jsx3("div", { className: card({ padding, className: "rounded-none shadow-none border-none bg-transparent" }), children }) : children,
111
+ footer && /* @__PURE__ */ jsx3("div", { className: "border-t border-gray-200 px-5 py-3 text-sm", children: footer })
112
+ ] });
113
+ }
114
+ );
115
+ Card.displayName = "Card";
116
+
117
+ // src/components/Modal/index.tsx
118
+ import { forwardRef as forwardRef4, useEffect, useCallback } from "react";
119
+ import { tv as tv4 } from "tailwind-variants";
120
+ import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
121
+ var overlay = tv4({
122
+ base: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 transition-opacity"
123
+ });
124
+ var modal = tv4({
125
+ base: "relative flex flex-col rounded-lg bg-white text-gray-900 shadow-xl overflow-hidden",
126
+ variants: {
127
+ size: {
128
+ sm: "w-[30vw] max-h-[40vh]",
129
+ md: "w-[50vw] max-h-[60vh]",
130
+ lg: "w-[70vw] max-h-[80vh]",
131
+ full: "w-[95vw] max-h-[90vh]"
132
+ }
133
+ },
134
+ defaultVariants: {
135
+ size: "md"
136
+ }
137
+ });
138
+ var Modal = forwardRef4(
139
+ ({ isOpen, onClose, title, footer, size, className, children, ...props }, ref) => {
140
+ const handleKeyDown = useCallback(
141
+ (e) => {
142
+ if (e.key === "Escape") onClose();
143
+ },
144
+ [onClose]
145
+ );
146
+ useEffect(() => {
147
+ if (!isOpen) return;
148
+ document.addEventListener("keydown", handleKeyDown);
149
+ document.body.style.overflow = "hidden";
150
+ return () => {
151
+ document.removeEventListener("keydown", handleKeyDown);
152
+ document.body.style.overflow = "";
153
+ };
154
+ }, [isOpen, handleKeyDown]);
155
+ if (!isOpen) return null;
156
+ return /* @__PURE__ */ jsx4("div", { className: overlay(), onClick: onClose, children: /* @__PURE__ */ jsxs2(
157
+ "div",
158
+ {
159
+ ref,
160
+ className: modal({ size, className }),
161
+ onClick: (e) => e.stopPropagation(),
162
+ role: "dialog",
163
+ "aria-modal": "true",
164
+ ...props,
165
+ children: [
166
+ title && /* @__PURE__ */ jsxs2("div", { className: "flex items-center justify-between border-b border-gray-200 bg-gray-50 px-5 py-3", children: [
167
+ /* @__PURE__ */ jsx4("span", { className: "text-sm font-semibold text-gray-900", children: title }),
168
+ /* @__PURE__ */ jsx4(
169
+ "button",
170
+ {
171
+ type: "button",
172
+ className: "inline-flex h-7 w-7 items-center justify-center rounded-md text-gray-500 hover:bg-gray-200 hover:text-gray-700 transition-colors",
173
+ onClick: onClose,
174
+ "aria-label": "Fechar",
175
+ children: "\u2715"
176
+ }
177
+ )
178
+ ] }),
179
+ /* @__PURE__ */ jsx4("div", { className: "flex-1 overflow-y-auto p-5", children }),
180
+ footer && /* @__PURE__ */ jsx4("div", { className: "flex items-center justify-end gap-2 border-t border-gray-200 px-5 py-3", children: footer })
181
+ ]
182
+ }
183
+ ) });
184
+ }
185
+ );
186
+ Modal.displayName = "Modal";
187
+
188
+ // src/components/Tooltip/index.tsx
189
+ import {
190
+ forwardRef as forwardRef5,
191
+ useCallback as useCallback2,
192
+ useEffect as useEffect2,
193
+ useLayoutEffect,
194
+ useRef,
195
+ useState
196
+ } from "react";
197
+ import { createPortal } from "react-dom";
198
+ import { tv as tv5 } from "tailwind-variants";
199
+ import { Fragment, jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
200
+ var tooltip = tv5({
201
+ base: "fixed z-[999999] pointer-events-none",
202
+ variants: {
203
+ variant: {
204
+ dark: "",
205
+ light: ""
206
+ }
207
+ },
208
+ defaultVariants: {
209
+ variant: "dark"
210
+ }
211
+ });
212
+ var tooltipContent = tv5({
213
+ base: "inline-flex items-center justify-center rounded px-2.5 py-1 text-xs font-medium whitespace-nowrap",
214
+ variants: {
215
+ variant: {
216
+ dark: "bg-gray-900 text-white",
217
+ light: "bg-white text-gray-900 shadow-md border border-gray-200"
218
+ }
219
+ },
220
+ defaultVariants: {
221
+ variant: "dark"
222
+ }
223
+ });
224
+ var tooltipArrow = tv5({
225
+ base: "absolute h-1.5 w-1.5 rotate-45",
226
+ variants: {
227
+ variant: {
228
+ dark: "bg-gray-900",
229
+ light: "bg-white border border-gray-200"
230
+ }
231
+ },
232
+ defaultVariants: {
233
+ variant: "dark"
234
+ }
235
+ });
236
+ var arrowPlacementStyles = {
237
+ top: "bottom-[-3px] left-1/2 -translate-x-1/2",
238
+ bottom: "top-[-3px] left-1/2 -translate-x-1/2",
239
+ left: "right-[-3px] top-1/2 -translate-y-1/2",
240
+ right: "left-[-3px] top-1/2 -translate-y-1/2"
241
+ };
242
+ var Tooltip = forwardRef5(
243
+ ({
244
+ content,
245
+ placement = "top",
246
+ offset: offsetPx = 8,
247
+ variant,
248
+ disabled,
249
+ delayShow = 100,
250
+ delayHide = 100,
251
+ children,
252
+ className,
253
+ ...props
254
+ }, ref) => {
255
+ const wrapperRef = useRef(null);
256
+ const tipRef = useRef(null);
257
+ const [visible, setVisible] = useState(false);
258
+ const [coords, setCoords] = useState(null);
259
+ const [activePlacement, setActivePlacement] = useState(placement);
260
+ const showTimer = useRef(null);
261
+ const hideTimer = useRef(null);
262
+ function clearTimers() {
263
+ if (showTimer.current !== null) window.clearTimeout(showTimer.current);
264
+ if (hideTimer.current !== null) window.clearTimeout(hideTimer.current);
265
+ showTimer.current = null;
266
+ hideTimer.current = null;
267
+ }
268
+ function scheduleShow() {
269
+ if (disabled) return;
270
+ clearTimers();
271
+ showTimer.current = window.setTimeout(() => setVisible(true), delayShow);
272
+ }
273
+ function scheduleHide() {
274
+ clearTimers();
275
+ hideTimer.current = window.setTimeout(() => setVisible(false), delayHide);
276
+ }
277
+ const computePosition = useCallback2(() => {
278
+ const anchor = wrapperRef.current;
279
+ const tip = tipRef.current;
280
+ if (!anchor || !tip) return;
281
+ const rect = anchor.getBoundingClientRect();
282
+ const tipW = tip.offsetWidth;
283
+ const tipH = tip.offsetHeight;
284
+ const vw = window.innerWidth;
285
+ const vh = window.innerHeight;
286
+ const calc = (p2) => {
287
+ switch (p2) {
288
+ case "top":
289
+ return { top: rect.top - tipH - offsetPx, left: rect.left + rect.width / 2 - tipW / 2 };
290
+ case "bottom":
291
+ return { top: rect.bottom + offsetPx, left: rect.left + rect.width / 2 - tipW / 2 };
292
+ case "left":
293
+ return { top: rect.top + rect.height / 2 - tipH / 2, left: rect.left - tipW - offsetPx };
294
+ case "right":
295
+ return { top: rect.top + rect.height / 2 - tipH / 2, left: rect.right + offsetPx };
296
+ }
297
+ };
298
+ let pos = calc(placement);
299
+ let p = placement;
300
+ const fits = (c) => c.top >= 0 && c.left >= 0 && c.top + tipH <= vh && c.left + tipW <= vw;
301
+ if (!fits(pos)) {
302
+ const fallbacks = {
303
+ top: ["bottom", "right", "left"],
304
+ bottom: ["top", "right", "left"],
305
+ left: ["right", "top", "bottom"],
306
+ right: ["left", "top", "bottom"]
307
+ };
308
+ for (const candidate of fallbacks[placement]) {
309
+ const c = calc(candidate);
310
+ if (fits(c)) {
311
+ pos = c;
312
+ p = candidate;
313
+ break;
314
+ }
315
+ }
316
+ }
317
+ pos.top = Math.max(4, Math.min(vh - tipH - 4, pos.top));
318
+ pos.left = Math.max(4, Math.min(vw - tipW - 4, pos.left));
319
+ setActivePlacement(p);
320
+ setCoords(pos);
321
+ }, [placement, offsetPx]);
322
+ useLayoutEffect(() => {
323
+ if (!visible) return;
324
+ let raf1 = 0;
325
+ let raf2 = 0;
326
+ raf1 = requestAnimationFrame(() => {
327
+ raf2 = requestAnimationFrame(computePosition);
328
+ });
329
+ return () => {
330
+ cancelAnimationFrame(raf1);
331
+ cancelAnimationFrame(raf2);
332
+ };
333
+ }, [visible, computePosition]);
334
+ useEffect2(() => {
335
+ if (!visible) return;
336
+ const handler = () => computePosition();
337
+ window.addEventListener("scroll", handler, true);
338
+ window.addEventListener("resize", handler);
339
+ return () => {
340
+ window.removeEventListener("scroll", handler, true);
341
+ window.removeEventListener("resize", handler);
342
+ };
343
+ }, [visible, computePosition]);
344
+ return /* @__PURE__ */ jsxs3(Fragment, { children: [
345
+ /* @__PURE__ */ jsx5(
346
+ "span",
347
+ {
348
+ ref: (el) => {
349
+ wrapperRef.current = el;
350
+ if (typeof ref === "function") ref(el);
351
+ else if (ref) ref.current = el;
352
+ },
353
+ onMouseEnter: scheduleShow,
354
+ onMouseLeave: scheduleHide,
355
+ onFocus: scheduleShow,
356
+ onBlur: scheduleHide,
357
+ style: { display: "contents" },
358
+ className,
359
+ ...props,
360
+ children
361
+ }
362
+ ),
363
+ visible && createPortal(
364
+ /* @__PURE__ */ jsxs3(
365
+ "div",
366
+ {
367
+ ref: tipRef,
368
+ role: "tooltip",
369
+ className: tooltip({ variant }),
370
+ style: {
371
+ top: coords?.top ?? -99999,
372
+ left: coords?.left ?? -99999,
373
+ visibility: coords ? "visible" : "hidden"
374
+ },
375
+ children: [
376
+ /* @__PURE__ */ jsx5("div", { className: tooltipContent({ variant }), children: content }),
377
+ /* @__PURE__ */ jsx5("div", { className: `${tooltipArrow({ variant })} ${arrowPlacementStyles[activePlacement]}` })
378
+ ]
379
+ }
380
+ ),
381
+ document.body
382
+ )
383
+ ] });
384
+ }
385
+ );
386
+ Tooltip.displayName = "Tooltip";
387
+
39
388
  // src/components/Input/InputString.tsx
40
- import { forwardRef as forwardRef3, useState } from "react";
389
+ import { forwardRef as forwardRef7, useState as useState2 } from "react";
41
390
 
42
391
  // src/components/Input/InputWrapper.tsx
43
- import { forwardRef as forwardRef2 } from "react";
44
- import { tv as tv2 } from "tailwind-variants";
45
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
46
- var wrapper = tv2({
392
+ import { forwardRef as forwardRef6 } from "react";
393
+ import { tv as tv6 } from "tailwind-variants";
394
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
395
+ var wrapper = tv6({
47
396
  base: "flex w-full flex-col gap-1"
48
397
  });
49
- var labelStyle = tv2({
398
+ var labelStyle = tv6({
50
399
  base: "text-xs text-gray-700 flex items-start gap-0.5"
51
400
  });
52
- var containerStyle = tv2({
401
+ var containerStyle = tv6({
53
402
  base: "flex items-center w-full rounded-md border bg-white transition-colors",
54
403
  variants: {
55
404
  size: {
@@ -70,26 +419,26 @@ var containerStyle = tv2({
70
419
  error: false
71
420
  }
72
421
  });
73
- var errorStyle = tv2({
422
+ var errorStyle = tv6({
74
423
  base: "text-xs text-red-500 mt-0.5"
75
424
  });
76
- var InputWrapper = forwardRef2(
425
+ var InputWrapper = forwardRef6(
77
426
  ({ label, error, errorMessage, required, disabled, size, children, className, classContainer, htmlFor }, ref) => {
78
- return /* @__PURE__ */ jsxs("div", { ref, className: wrapper({ className }), children: [
79
- label && /* @__PURE__ */ jsxs("label", { htmlFor, className: labelStyle(), children: [
80
- /* @__PURE__ */ jsx2("span", { children: label }),
81
- required && /* @__PURE__ */ jsx2("span", { className: "text-red-500 text-[10px] leading-none mt-0.5", children: "*" })
427
+ return /* @__PURE__ */ jsxs4("div", { ref, className: wrapper({ className }), children: [
428
+ label && /* @__PURE__ */ jsxs4("label", { htmlFor, className: labelStyle(), children: [
429
+ /* @__PURE__ */ jsx6("span", { children: label }),
430
+ required && /* @__PURE__ */ jsx6("span", { className: "text-red-500 text-[10px] leading-none mt-0.5", children: "*" })
82
431
  ] }),
83
- /* @__PURE__ */ jsx2("div", { className: containerStyle({ size, error: !!error, disabled: !!disabled, className: classContainer }), children }),
84
- error && errorMessage && /* @__PURE__ */ jsx2("span", { className: errorStyle(), children: errorMessage })
432
+ /* @__PURE__ */ jsx6("div", { className: containerStyle({ size, error: !!error, disabled: !!disabled, className: classContainer }), children }),
433
+ error && errorMessage && /* @__PURE__ */ jsx6("span", { className: errorStyle(), children: errorMessage })
85
434
  ] });
86
435
  }
87
436
  );
88
437
  InputWrapper.displayName = "InputWrapper";
89
438
 
90
439
  // src/components/Input/InputString.tsx
91
- import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
92
- var InputString = forwardRef3(
440
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
441
+ var InputString = forwardRef7(
93
442
  ({
94
443
  label,
95
444
  error,
@@ -107,14 +456,14 @@ var InputString = forwardRef3(
107
456
  name,
108
457
  ...props
109
458
  }, ref) => {
110
- const [hovered, setHovered] = useState(false);
111
- return /* @__PURE__ */ jsx3(
459
+ const [hovered, setHovered] = useState2(false);
460
+ return /* @__PURE__ */ jsx7(
112
461
  "div",
113
462
  {
114
463
  onMouseEnter: () => setHovered(true),
115
464
  onMouseLeave: () => setHovered(false),
116
465
  className: "w-full",
117
- children: /* @__PURE__ */ jsxs2(
466
+ children: /* @__PURE__ */ jsxs5(
118
467
  InputWrapper,
119
468
  {
120
469
  label,
@@ -126,8 +475,8 @@ var InputString = forwardRef3(
126
475
  classContainer,
127
476
  htmlFor: name,
128
477
  children: [
129
- leftIcon && /* @__PURE__ */ jsx3("span", { className: "pl-2.5 text-gray-400", children: leftIcon }),
130
- /* @__PURE__ */ jsx3(
478
+ leftIcon && /* @__PURE__ */ jsx7("span", { className: "pl-2.5 text-gray-400", children: leftIcon }),
479
+ /* @__PURE__ */ jsx7(
131
480
  "input",
132
481
  {
133
482
  ref,
@@ -142,7 +491,7 @@ var InputString = forwardRef3(
142
491
  ...props
143
492
  }
144
493
  ),
145
- showClearButton && hovered && value && !disabled && !required && /* @__PURE__ */ jsx3(
494
+ showClearButton && hovered && value && !disabled && !required && /* @__PURE__ */ jsx7(
146
495
  "button",
147
496
  {
148
497
  type: "button",
@@ -151,7 +500,7 @@ var InputString = forwardRef3(
151
500
  className: "px-2 text-gray-400 hover:text-gray-600",
152
501
  onMouseDown: (e) => e.preventDefault(),
153
502
  onClick: () => onChange?.(""),
154
- children: /* @__PURE__ */ jsxs2(
503
+ children: /* @__PURE__ */ jsxs5(
155
504
  "svg",
156
505
  {
157
506
  width: "14",
@@ -163,14 +512,14 @@ var InputString = forwardRef3(
163
512
  strokeLinecap: "round",
164
513
  strokeLinejoin: "round",
165
514
  children: [
166
- /* @__PURE__ */ jsx3("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
167
- /* @__PURE__ */ jsx3("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
515
+ /* @__PURE__ */ jsx7("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
516
+ /* @__PURE__ */ jsx7("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
168
517
  ]
169
518
  }
170
519
  )
171
520
  }
172
521
  ),
173
- rightIcon && /* @__PURE__ */ jsx3("span", { className: "pr-2.5 text-gray-400", children: rightIcon })
522
+ rightIcon && /* @__PURE__ */ jsx7("span", { className: "pr-2.5 text-gray-400", children: rightIcon })
174
523
  ]
175
524
  }
176
525
  )
@@ -181,11 +530,11 @@ var InputString = forwardRef3(
181
530
  InputString.displayName = "InputString";
182
531
 
183
532
  // src/components/Input/InputEmail.tsx
184
- import { forwardRef as forwardRef4 } from "react";
185
- import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
186
- var InputEmail = forwardRef4(
533
+ import { forwardRef as forwardRef8 } from "react";
534
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
535
+ var InputEmail = forwardRef8(
187
536
  ({ label, error, errorMessage, required, size, leftIcon, rightIcon, classContainer, classInput, value, onChange, disabled, name, ...props }, ref) => {
188
- return /* @__PURE__ */ jsxs3(
537
+ return /* @__PURE__ */ jsxs6(
189
538
  InputWrapper,
190
539
  {
191
540
  label,
@@ -197,8 +546,8 @@ var InputEmail = forwardRef4(
197
546
  classContainer,
198
547
  htmlFor: name,
199
548
  children: [
200
- leftIcon && /* @__PURE__ */ jsx4("span", { className: "pl-2.5 text-gray-400", children: leftIcon }),
201
- /* @__PURE__ */ jsx4(
549
+ leftIcon && /* @__PURE__ */ jsx8("span", { className: "pl-2.5 text-gray-400", children: leftIcon }),
550
+ /* @__PURE__ */ jsx8(
202
551
  "input",
203
552
  {
204
553
  ref,
@@ -214,7 +563,7 @@ var InputEmail = forwardRef4(
214
563
  ...props
215
564
  }
216
565
  ),
217
- rightIcon && /* @__PURE__ */ jsx4("span", { className: "pr-2.5 text-gray-400", children: rightIcon })
566
+ rightIcon && /* @__PURE__ */ jsx8("span", { className: "pr-2.5 text-gray-400", children: rightIcon })
218
567
  ]
219
568
  }
220
569
  );
@@ -223,20 +572,20 @@ var InputEmail = forwardRef4(
223
572
  InputEmail.displayName = "InputEmail";
224
573
 
225
574
  // src/components/Input/InputPassword.tsx
226
- import { forwardRef as forwardRef5, useState as useState2 } from "react";
227
- import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
228
- var EyeIcon = () => /* @__PURE__ */ jsxs4("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
229
- /* @__PURE__ */ jsx5("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
230
- /* @__PURE__ */ jsx5("circle", { cx: "12", cy: "12", r: "3" })
575
+ import { forwardRef as forwardRef9, useState as useState3 } from "react";
576
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
577
+ var EyeIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
578
+ /* @__PURE__ */ jsx9("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
579
+ /* @__PURE__ */ jsx9("circle", { cx: "12", cy: "12", r: "3" })
231
580
  ] });
232
- var EyeOffIcon = () => /* @__PURE__ */ jsxs4("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
233
- /* @__PURE__ */ jsx5("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
234
- /* @__PURE__ */ jsx5("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
581
+ var EyeOffIcon = () => /* @__PURE__ */ jsxs7("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
582
+ /* @__PURE__ */ jsx9("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
583
+ /* @__PURE__ */ jsx9("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
235
584
  ] });
236
- var InputPassword = forwardRef5(
585
+ var InputPassword = forwardRef9(
237
586
  ({ label, error, errorMessage, required, size, classContainer, classInput, value, onChange, disabled, name, ...props }, ref) => {
238
- const [visible, setVisible] = useState2(false);
239
- return /* @__PURE__ */ jsxs4(
587
+ const [visible, setVisible] = useState3(false);
588
+ return /* @__PURE__ */ jsxs7(
240
589
  InputWrapper,
241
590
  {
242
591
  label,
@@ -248,7 +597,7 @@ var InputPassword = forwardRef5(
248
597
  classContainer,
249
598
  htmlFor: name,
250
599
  children: [
251
- /* @__PURE__ */ jsx5(
600
+ /* @__PURE__ */ jsx9(
252
601
  "input",
253
602
  {
254
603
  ref,
@@ -264,7 +613,7 @@ var InputPassword = forwardRef5(
264
613
  ...props
265
614
  }
266
615
  ),
267
- /* @__PURE__ */ jsx5(
616
+ /* @__PURE__ */ jsx9(
268
617
  "button",
269
618
  {
270
619
  type: "button",
@@ -272,7 +621,7 @@ var InputPassword = forwardRef5(
272
621
  "aria-label": visible ? "Ocultar senha" : "Mostrar senha",
273
622
  className: "px-2.5 text-gray-400 hover:text-gray-600",
274
623
  onClick: () => setVisible(!visible),
275
- children: visible ? /* @__PURE__ */ jsx5(EyeOffIcon, {}) : /* @__PURE__ */ jsx5(EyeIcon, {})
624
+ children: visible ? /* @__PURE__ */ jsx9(EyeOffIcon, {}) : /* @__PURE__ */ jsx9(EyeIcon, {})
276
625
  }
277
626
  )
278
627
  ]
@@ -283,10 +632,10 @@ var InputPassword = forwardRef5(
283
632
  InputPassword.displayName = "InputPassword";
284
633
 
285
634
  // src/components/Input/InputNumber.tsx
286
- import { forwardRef as forwardRef6 } from "react";
287
- import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
635
+ import { forwardRef as forwardRef10 } from "react";
636
+ import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
288
637
  var allowedKeys = ["Backspace", "Delete", "Tab", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"];
289
- var InputNumber = forwardRef6(
638
+ var InputNumber = forwardRef10(
290
639
  ({ label, error, errorMessage, required, size, leftIcon, rightIcon, classContainer, classInput, value, onChange, disabled, name, min = 0, max, ...props }, ref) => {
291
640
  function handleKeyDown(e) {
292
641
  if (e.ctrlKey || e.metaKey) return;
@@ -306,7 +655,7 @@ var InputNumber = forwardRef6(
306
655
  if (max !== void 0 && num > max) return;
307
656
  onChange?.(num);
308
657
  }
309
- return /* @__PURE__ */ jsxs5(
658
+ return /* @__PURE__ */ jsxs8(
310
659
  InputWrapper,
311
660
  {
312
661
  label,
@@ -318,8 +667,8 @@ var InputNumber = forwardRef6(
318
667
  classContainer,
319
668
  htmlFor: name,
320
669
  children: [
321
- leftIcon && /* @__PURE__ */ jsx6("span", { className: "pl-2.5 text-gray-400", children: leftIcon }),
322
- /* @__PURE__ */ jsx6(
670
+ leftIcon && /* @__PURE__ */ jsx10("span", { className: "pl-2.5 text-gray-400", children: leftIcon }),
671
+ /* @__PURE__ */ jsx10(
323
672
  "input",
324
673
  {
325
674
  ref,
@@ -336,7 +685,7 @@ var InputNumber = forwardRef6(
336
685
  ...props
337
686
  }
338
687
  ),
339
- rightIcon && /* @__PURE__ */ jsx6("span", { className: "pr-2.5 text-gray-400", children: rightIcon })
688
+ rightIcon && /* @__PURE__ */ jsx10("span", { className: "pr-2.5 text-gray-400", children: rightIcon })
340
689
  ]
341
690
  }
342
691
  );
@@ -345,7 +694,7 @@ var InputNumber = forwardRef6(
345
694
  InputNumber.displayName = "InputNumber";
346
695
 
347
696
  // src/components/Input/InputCPF.tsx
348
- import { forwardRef as forwardRef7 } from "react";
697
+ import { forwardRef as forwardRef11 } from "react";
349
698
 
350
699
  // src/components/Input/masks.ts
351
700
  function maskCPF(value) {
@@ -379,14 +728,14 @@ function unmaskCurrency(value) {
379
728
  }
380
729
 
381
730
  // src/components/Input/InputCPF.tsx
382
- import { jsx as jsx7 } from "react/jsx-runtime";
383
- var InputCPF = forwardRef7(
731
+ import { jsx as jsx11 } from "react/jsx-runtime";
732
+ var InputCPF = forwardRef11(
384
733
  ({ label, error, errorMessage, required, size, classContainer, classInput, value, onChange, disabled, name, ...props }, ref) => {
385
734
  function handleChange(raw) {
386
735
  const digits = unmask(raw);
387
736
  onChange?.(digits);
388
737
  }
389
- return /* @__PURE__ */ jsx7(
738
+ return /* @__PURE__ */ jsx11(
390
739
  InputWrapper,
391
740
  {
392
741
  label,
@@ -397,7 +746,7 @@ var InputCPF = forwardRef7(
397
746
  size,
398
747
  classContainer,
399
748
  htmlFor: name,
400
- children: /* @__PURE__ */ jsx7(
749
+ children: /* @__PURE__ */ jsx11(
401
750
  "input",
402
751
  {
403
752
  ref,
@@ -422,15 +771,15 @@ var InputCPF = forwardRef7(
422
771
  InputCPF.displayName = "InputCPF";
423
772
 
424
773
  // src/components/Input/InputCNPJ.tsx
425
- import { forwardRef as forwardRef8 } from "react";
426
- import { jsx as jsx8 } from "react/jsx-runtime";
427
- var InputCNPJ = forwardRef8(
774
+ import { forwardRef as forwardRef12 } from "react";
775
+ import { jsx as jsx12 } from "react/jsx-runtime";
776
+ var InputCNPJ = forwardRef12(
428
777
  ({ label, error, errorMessage, required, size, classContainer, classInput, value, onChange, disabled, name, ...props }, ref) => {
429
778
  function handleChange(raw) {
430
779
  const digits = unmask(raw);
431
780
  onChange?.(digits);
432
781
  }
433
- return /* @__PURE__ */ jsx8(
782
+ return /* @__PURE__ */ jsx12(
434
783
  InputWrapper,
435
784
  {
436
785
  label,
@@ -441,7 +790,7 @@ var InputCNPJ = forwardRef8(
441
790
  size,
442
791
  classContainer,
443
792
  htmlFor: name,
444
- children: /* @__PURE__ */ jsx8(
793
+ children: /* @__PURE__ */ jsx12(
445
794
  "input",
446
795
  {
447
796
  ref,
@@ -466,15 +815,15 @@ var InputCNPJ = forwardRef8(
466
815
  InputCNPJ.displayName = "InputCNPJ";
467
816
 
468
817
  // src/components/Input/InputPhone.tsx
469
- import { forwardRef as forwardRef9 } from "react";
470
- import { jsx as jsx9 } from "react/jsx-runtime";
471
- var InputPhone = forwardRef9(
818
+ import { forwardRef as forwardRef13 } from "react";
819
+ import { jsx as jsx13 } from "react/jsx-runtime";
820
+ var InputPhone = forwardRef13(
472
821
  ({ label, error, errorMessage, required, size, classContainer, classInput, value, onChange, disabled, name, ...props }, ref) => {
473
822
  function handleChange(raw) {
474
823
  const digits = unmask(raw);
475
824
  onChange?.(digits);
476
825
  }
477
- return /* @__PURE__ */ jsx9(
826
+ return /* @__PURE__ */ jsx13(
478
827
  InputWrapper,
479
828
  {
480
829
  label,
@@ -485,7 +834,7 @@ var InputPhone = forwardRef9(
485
834
  size,
486
835
  classContainer,
487
836
  htmlFor: name,
488
- children: /* @__PURE__ */ jsx9(
837
+ children: /* @__PURE__ */ jsx13(
489
838
  "input",
490
839
  {
491
840
  ref,
@@ -510,8 +859,8 @@ var InputPhone = forwardRef9(
510
859
  InputPhone.displayName = "InputPhone";
511
860
 
512
861
  // src/components/Input/InputCurrency.tsx
513
- import { forwardRef as forwardRef10 } from "react";
514
- import { jsx as jsx10 } from "react/jsx-runtime";
862
+ import { forwardRef as forwardRef14 } from "react";
863
+ import { jsx as jsx14 } from "react/jsx-runtime";
515
864
  function formatCurrency(value, prefix, decimalScale) {
516
865
  const fixed = Math.abs(value).toFixed(decimalScale);
517
866
  const [intPart, decPart] = fixed.split(".");
@@ -519,7 +868,7 @@ function formatCurrency(value, prefix, decimalScale) {
519
868
  const sign = value < 0 ? "-" : "";
520
869
  return `${sign}${prefix}${formatted},${decPart}`;
521
870
  }
522
- var InputCurrency = forwardRef10(
871
+ var InputCurrency = forwardRef14(
523
872
  ({ label, error, errorMessage, required, size, classContainer, classInput, value, onChange, disabled, name, prefix = "R$ ", decimalScale = 2, allowNegative = false, ...props }, ref) => {
524
873
  function handleChange(e) {
525
874
  const raw = e.target.value;
@@ -528,7 +877,7 @@ var InputCurrency = forwardRef10(
528
877
  onChange?.(isNaN(num) ? void 0 : num);
529
878
  }
530
879
  const displayValue = value !== void 0 && value !== null ? formatCurrency(value, prefix, decimalScale) : "";
531
- return /* @__PURE__ */ jsx10(
880
+ return /* @__PURE__ */ jsx14(
532
881
  InputWrapper,
533
882
  {
534
883
  label,
@@ -539,7 +888,7 @@ var InputCurrency = forwardRef10(
539
888
  size,
540
889
  classContainer,
541
890
  htmlFor: name,
542
- children: /* @__PURE__ */ jsx10(
891
+ children: /* @__PURE__ */ jsx14(
543
892
  "input",
544
893
  {
545
894
  ref,
@@ -563,15 +912,15 @@ var InputCurrency = forwardRef10(
563
912
  InputCurrency.displayName = "InputCurrency";
564
913
 
565
914
  // src/components/Input/InputCep.tsx
566
- import { forwardRef as forwardRef11 } from "react";
567
- import { jsx as jsx11 } from "react/jsx-runtime";
568
- var InputCep = forwardRef11(
915
+ import { forwardRef as forwardRef15 } from "react";
916
+ import { jsx as jsx15 } from "react/jsx-runtime";
917
+ var InputCep = forwardRef15(
569
918
  ({ label, error, errorMessage, required, size, classContainer, classInput, value, onChange, disabled, name, ...props }, ref) => {
570
919
  function handleChange(raw) {
571
920
  const digits = unmask(raw);
572
921
  onChange?.(digits);
573
922
  }
574
- return /* @__PURE__ */ jsx11(
923
+ return /* @__PURE__ */ jsx15(
575
924
  InputWrapper,
576
925
  {
577
926
  label,
@@ -582,7 +931,7 @@ var InputCep = forwardRef11(
582
931
  size,
583
932
  classContainer,
584
933
  htmlFor: name,
585
- children: /* @__PURE__ */ jsx11(
934
+ children: /* @__PURE__ */ jsx15(
586
935
  "input",
587
936
  {
588
937
  ref,
@@ -608,10 +957,10 @@ var InputCep = forwardRef11(
608
957
  InputCep.displayName = "InputCep";
609
958
 
610
959
  // src/components/Input/InputCheckbox.tsx
611
- import { forwardRef as forwardRef12 } from "react";
612
- import { tv as tv3 } from "tailwind-variants";
613
- import { jsx as jsx12, jsxs as jsxs6 } from "react/jsx-runtime";
614
- var checkboxContainer = tv3({
960
+ import { forwardRef as forwardRef16 } from "react";
961
+ import { tv as tv7 } from "tailwind-variants";
962
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
963
+ var checkboxContainer = tv7({
615
964
  base: "inline-flex items-center justify-center w-[18px] h-[18px] rounded border cursor-pointer transition-colors",
616
965
  variants: {
617
966
  checked: {
@@ -629,15 +978,15 @@ var checkboxContainer = tv3({
629
978
  checked: false
630
979
  }
631
980
  });
632
- var CheckIcon = () => /* @__PURE__ */ jsx12("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "white", strokeWidth: "4", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx12("polyline", { points: "20 6 9 17 4 12" }) });
633
- var IndeterminateIcon = () => /* @__PURE__ */ jsx12("div", { className: "w-2 h-2 rounded-sm bg-gray-300" });
634
- var InputCheckbox = forwardRef12(
981
+ var CheckIcon = () => /* @__PURE__ */ jsx16("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "white", strokeWidth: "4", strokeLinecap: "round", strokeLinejoin: "round", children: /* @__PURE__ */ jsx16("polyline", { points: "20 6 9 17 4 12" }) });
982
+ var IndeterminateIcon = () => /* @__PURE__ */ jsx16("div", { className: "w-2 h-2 rounded-sm bg-gray-300" });
983
+ var InputCheckbox = forwardRef16(
635
984
  ({ label, checked = false, indeterminate = false, onChange, disabled, error, labelPosition = "right", className, name, required }, ref) => {
636
985
  function handleClick() {
637
986
  if (disabled) return;
638
987
  onChange?.(!checked);
639
988
  }
640
- const box = /* @__PURE__ */ jsxs6(
989
+ const box = /* @__PURE__ */ jsxs9(
641
990
  "button",
642
991
  {
643
992
  ref,
@@ -650,27 +999,27 @@ var InputCheckbox = forwardRef12(
650
999
  onClick: handleClick,
651
1000
  disabled,
652
1001
  children: [
653
- checked && !indeterminate && /* @__PURE__ */ jsx12(CheckIcon, {}),
654
- indeterminate && /* @__PURE__ */ jsx12(IndeterminateIcon, {})
1002
+ checked && !indeterminate && /* @__PURE__ */ jsx16(CheckIcon, {}),
1003
+ indeterminate && /* @__PURE__ */ jsx16(IndeterminateIcon, {})
655
1004
  ]
656
1005
  }
657
1006
  );
658
- if (!label) return /* @__PURE__ */ jsx12("div", { className, children: box });
659
- return /* @__PURE__ */ jsxs6("div", { className: `flex items-center gap-2 ${className ?? ""}`, children: [
660
- labelPosition === "left" && /* @__PURE__ */ jsx12("label", { htmlFor: name, className: "text-sm text-gray-700 cursor-pointer select-none", children: label }),
1007
+ if (!label) return /* @__PURE__ */ jsx16("div", { className, children: box });
1008
+ return /* @__PURE__ */ jsxs9("div", { className: `flex items-center gap-2 ${className ?? ""}`, children: [
1009
+ labelPosition === "left" && /* @__PURE__ */ jsx16("label", { htmlFor: name, className: "text-sm text-gray-700 cursor-pointer select-none", children: label }),
661
1010
  box,
662
- labelPosition === "right" && /* @__PURE__ */ jsx12("label", { htmlFor: name, className: "text-sm text-gray-700 cursor-pointer select-none", children: label }),
663
- required && /* @__PURE__ */ jsx12("span", { className: "text-red-500 text-[10px]", children: "*" })
1011
+ labelPosition === "right" && /* @__PURE__ */ jsx16("label", { htmlFor: name, className: "text-sm text-gray-700 cursor-pointer select-none", children: label }),
1012
+ required && /* @__PURE__ */ jsx16("span", { className: "text-red-500 text-[10px]", children: "*" })
664
1013
  ] });
665
1014
  }
666
1015
  );
667
1016
  InputCheckbox.displayName = "InputCheckbox";
668
1017
 
669
1018
  // src/components/Input/InputRadio.tsx
670
- import { forwardRef as forwardRef13 } from "react";
671
- import { tv as tv4 } from "tailwind-variants";
672
- import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
673
- var radioButton = tv4({
1019
+ import { forwardRef as forwardRef17 } from "react";
1020
+ import { tv as tv8 } from "tailwind-variants";
1021
+ import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
1022
+ var radioButton = tv8({
674
1023
  base: "inline-flex items-center justify-center w-[18px] h-[18px] rounded-full border cursor-pointer transition-colors",
675
1024
  variants: {
676
1025
  selected: {
@@ -688,14 +1037,14 @@ var radioButton = tv4({
688
1037
  selected: false
689
1038
  }
690
1039
  });
691
- var InputRadio = forwardRef13(
1040
+ var InputRadio = forwardRef17(
692
1041
  ({ label, options, value, onChange, disabled, error, required, name, className, direction = "horizontal" }, ref) => {
693
- return /* @__PURE__ */ jsxs7("div", { ref, className: `flex w-full flex-col gap-1 ${className ?? ""}`, children: [
694
- label && /* @__PURE__ */ jsxs7("span", { className: "text-xs text-gray-700 flex items-start gap-0.5", children: [
695
- /* @__PURE__ */ jsx13("span", { children: label }),
696
- required && /* @__PURE__ */ jsx13("span", { className: "text-red-500 text-[10px] leading-none mt-0.5", children: "*" })
1042
+ return /* @__PURE__ */ jsxs10("div", { ref, className: `flex w-full flex-col gap-1 ${className ?? ""}`, children: [
1043
+ label && /* @__PURE__ */ jsxs10("span", { className: "text-xs text-gray-700 flex items-start gap-0.5", children: [
1044
+ /* @__PURE__ */ jsx17("span", { children: label }),
1045
+ required && /* @__PURE__ */ jsx17("span", { className: "text-red-500 text-[10px] leading-none mt-0.5", children: "*" })
697
1046
  ] }),
698
- /* @__PURE__ */ jsx13(
1047
+ /* @__PURE__ */ jsx17(
699
1048
  "div",
700
1049
  {
701
1050
  role: "radiogroup",
@@ -704,12 +1053,12 @@ var InputRadio = forwardRef13(
704
1053
  children: options.map((option) => {
705
1054
  const isSelected = value === option.value;
706
1055
  const isDisabled = disabled || option.disabled;
707
- return /* @__PURE__ */ jsxs7(
1056
+ return /* @__PURE__ */ jsxs10(
708
1057
  "label",
709
1058
  {
710
1059
  className: `flex items-center gap-2 cursor-pointer select-none ${isDisabled ? "opacity-50 cursor-not-allowed" : ""}`,
711
1060
  children: [
712
- /* @__PURE__ */ jsx13(
1061
+ /* @__PURE__ */ jsx17(
713
1062
  "button",
714
1063
  {
715
1064
  type: "button",
@@ -718,10 +1067,10 @@ var InputRadio = forwardRef13(
718
1067
  className: radioButton({ selected: isSelected, disabled: !!isDisabled, error: !!error }),
719
1068
  onClick: () => !isDisabled && onChange?.(option.value),
720
1069
  disabled: isDisabled,
721
- children: isSelected && /* @__PURE__ */ jsx13("div", { className: "w-[10px] h-[10px] rounded-full bg-blue-600" })
1070
+ children: isSelected && /* @__PURE__ */ jsx17("div", { className: "w-[10px] h-[10px] rounded-full bg-blue-600" })
722
1071
  }
723
1072
  ),
724
- /* @__PURE__ */ jsx13("span", { className: "text-sm text-gray-700", children: option.label })
1073
+ /* @__PURE__ */ jsx17("span", { className: "text-sm text-gray-700", children: option.label })
725
1074
  ]
726
1075
  },
727
1076
  String(option.value)
@@ -729,17 +1078,17 @@ var InputRadio = forwardRef13(
729
1078
  })
730
1079
  }
731
1080
  ),
732
- error && /* @__PURE__ */ jsx13("span", { className: "text-xs text-red-500 mt-0.5", children: "Selecione uma op\xE7\xE3o" })
1081
+ error && /* @__PURE__ */ jsx17("span", { className: "text-xs text-red-500 mt-0.5", children: "Selecione uma op\xE7\xE3o" })
733
1082
  ] });
734
1083
  }
735
1084
  );
736
1085
  InputRadio.displayName = "InputRadio";
737
1086
 
738
1087
  // src/components/Input/Textarea.tsx
739
- import { forwardRef as forwardRef14 } from "react";
740
- import { tv as tv5 } from "tailwind-variants";
741
- import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
742
- var textareaStyle = tv5({
1088
+ import { forwardRef as forwardRef18 } from "react";
1089
+ import { tv as tv9 } from "tailwind-variants";
1090
+ import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
1091
+ var textareaStyle = tv9({
743
1092
  base: "w-full rounded-md border bg-white px-2.5 py-2 text-sm text-gray-900 outline-none placeholder:text-gray-400 resize-vertical transition-colors",
744
1093
  variants: {
745
1094
  error: {
@@ -754,14 +1103,14 @@ var textareaStyle = tv5({
754
1103
  error: false
755
1104
  }
756
1105
  });
757
- var Textarea = forwardRef14(
1106
+ var Textarea = forwardRef18(
758
1107
  ({ label, error, errorMessage, required, size, classInput, value, onChange, disabled, name, rows = 4, ...props }, ref) => {
759
- return /* @__PURE__ */ jsxs8("div", { className: "flex w-full flex-col gap-1", children: [
760
- label && /* @__PURE__ */ jsxs8("label", { htmlFor: name, className: "text-xs text-gray-700 flex items-start gap-0.5", children: [
761
- /* @__PURE__ */ jsx14("span", { children: label }),
762
- required && /* @__PURE__ */ jsx14("span", { className: "text-red-500 text-[10px] leading-none mt-0.5", children: "*" })
1108
+ return /* @__PURE__ */ jsxs11("div", { className: "flex w-full flex-col gap-1", children: [
1109
+ label && /* @__PURE__ */ jsxs11("label", { htmlFor: name, className: "text-xs text-gray-700 flex items-start gap-0.5", children: [
1110
+ /* @__PURE__ */ jsx18("span", { children: label }),
1111
+ required && /* @__PURE__ */ jsx18("span", { className: "text-red-500 text-[10px] leading-none mt-0.5", children: "*" })
763
1112
  ] }),
764
- /* @__PURE__ */ jsx14(
1113
+ /* @__PURE__ */ jsx18(
765
1114
  "textarea",
766
1115
  {
767
1116
  ref,
@@ -776,13 +1125,15 @@ var Textarea = forwardRef14(
776
1125
  ...props
777
1126
  }
778
1127
  ),
779
- error && errorMessage && /* @__PURE__ */ jsx14("span", { className: "text-xs text-red-500 mt-0.5", children: errorMessage })
1128
+ error && errorMessage && /* @__PURE__ */ jsx18("span", { className: "text-xs text-red-500 mt-0.5", children: errorMessage })
780
1129
  ] });
781
1130
  }
782
1131
  );
783
1132
  Textarea.displayName = "Textarea";
784
1133
  export {
1134
+ Avatar,
785
1135
  Button,
1136
+ Card,
786
1137
  InputCNPJ,
787
1138
  InputCPF,
788
1139
  InputCep,
@@ -795,13 +1146,19 @@ export {
795
1146
  InputRadio,
796
1147
  InputString,
797
1148
  InputWrapper,
1149
+ Modal,
798
1150
  Textarea,
1151
+ Tooltip,
1152
+ avatar,
799
1153
  button,
1154
+ card,
800
1155
  maskCEP,
801
1156
  maskCNPJ,
802
1157
  maskCPF,
803
1158
  maskCurrency,
804
1159
  maskPhone,
1160
+ modal,
1161
+ tooltip,
805
1162
  unmask,
806
1163
  unmaskCurrency
807
1164
  };