analytica-frontend-lib 1.0.20 → 1.0.22

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
@@ -156,14 +156,13 @@ var Text = ({
156
156
  children,
157
157
  size = "md",
158
158
  weight = "normal",
159
- color = "black",
159
+ color = "text-text-950",
160
160
  as,
161
161
  className = "",
162
162
  ...props
163
163
  }) => {
164
164
  let sizeClasses = "";
165
165
  let weightClasses = "";
166
- let colorClasses = "";
167
166
  const sizeClassMap = {
168
167
  "2xs": "text-2xs",
169
168
  xs: "text-xs",
@@ -189,26 +188,156 @@ var Text = ({
189
188
  black: "font-black"
190
189
  };
191
190
  weightClasses = weightClassMap[weight] ?? weightClassMap.normal;
192
- const colorClassMap = {
193
- white: "text-text",
194
- black: "text-text-950"
195
- };
196
- colorClasses = colorClassMap[color] ?? colorClassMap.black;
197
191
  const baseClasses = "font-primary";
198
192
  const Component = as ?? "p";
199
193
  return /* @__PURE__ */ jsx4(
200
194
  Component,
201
195
  {
202
- className: `${baseClasses} ${sizeClasses} ${weightClasses} ${colorClasses} ${className}`,
196
+ className: `${baseClasses} ${sizeClasses} ${weightClasses} ${color} ${className}`,
203
197
  ...props,
204
198
  children
205
199
  }
206
200
  );
207
201
  };
208
202
 
203
+ // src/components/TextArea/TextArea.tsx
204
+ import {
205
+ forwardRef as forwardRef2,
206
+ useState,
207
+ useId
208
+ } from "react";
209
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
210
+ var SIZE_CLASSES2 = {
211
+ small: {
212
+ container: "w-72",
213
+ // 288px width
214
+ textarea: "h-24 text-sm",
215
+ // 96px height, 14px font
216
+ textSize: "sm"
217
+ },
218
+ medium: {
219
+ container: "w-72",
220
+ // 288px width
221
+ textarea: "h-24 text-base",
222
+ // 96px height, 16px font
223
+ textSize: "md"
224
+ },
225
+ large: {
226
+ container: "w-72",
227
+ // 288px width
228
+ textarea: "h-24 text-lg",
229
+ // 96px height, 18px font
230
+ textSize: "lg"
231
+ },
232
+ extraLarge: {
233
+ container: "w-72",
234
+ // 288px width
235
+ textarea: "h-24 text-xl",
236
+ // 96px height, 20px font
237
+ textSize: "xl"
238
+ }
239
+ };
240
+ var BASE_TEXTAREA_CLASSES = "w-full box-border p-3 bg-background border border-solid rounded-[4px] resize-none focus:outline-none font-roboto font-normal leading-[150%] placeholder:text-text-600 transition-all duration-200";
241
+ var STATE_CLASSES = {
242
+ default: {
243
+ base: "border-border-300 bg-background text-text-600",
244
+ hover: "hover:border-border-400",
245
+ focus: "focus:border-border-500"
246
+ },
247
+ hovered: {
248
+ base: "border-border-400 bg-background text-text-600",
249
+ hover: "",
250
+ focus: "focus:border-border-500"
251
+ },
252
+ focused: {
253
+ base: "border-2 border-primary-950 bg-background text-text-900",
254
+ hover: "",
255
+ focus: ""
256
+ },
257
+ invalid: {
258
+ base: "border-2 border-red-700 bg-white text-gray-800",
259
+ hover: "hover:border-red-700",
260
+ focus: "focus:border-red-700"
261
+ },
262
+ disabled: {
263
+ base: "border-border-300 bg-background text-text-600 cursor-not-allowed opacity-40",
264
+ hover: "",
265
+ focus: ""
266
+ }
267
+ };
268
+ var TextArea = forwardRef2(
269
+ ({
270
+ label,
271
+ size = "medium",
272
+ state = "default",
273
+ errorMessage,
274
+ helperMessage,
275
+ className = "",
276
+ labelClassName = "",
277
+ disabled,
278
+ id,
279
+ onChange,
280
+ placeholder,
281
+ ...props
282
+ }, ref) => {
283
+ const generatedId = useId();
284
+ const inputId = id ?? `textarea-${generatedId}`;
285
+ const [isFocused, setIsFocused] = useState(false);
286
+ const handleChange = (event) => {
287
+ onChange?.(event);
288
+ };
289
+ const handleFocus = (event) => {
290
+ setIsFocused(true);
291
+ props.onFocus?.(event);
292
+ };
293
+ const handleBlur = (event) => {
294
+ setIsFocused(false);
295
+ props.onBlur?.(event);
296
+ };
297
+ let currentState = disabled ? "disabled" : state;
298
+ if (isFocused && currentState !== "invalid" && currentState !== "disabled") {
299
+ currentState = "focused";
300
+ }
301
+ const sizeClasses = SIZE_CLASSES2[size];
302
+ const stateClasses = STATE_CLASSES[currentState];
303
+ const textareaClasses = `${BASE_TEXTAREA_CLASSES} ${sizeClasses.textarea} ${stateClasses.base} ${stateClasses.hover} ${stateClasses.focus} ${className}`;
304
+ return /* @__PURE__ */ jsxs3("div", { className: `flex flex-col ${sizeClasses.container}`, children: [
305
+ label && /* @__PURE__ */ jsx5(
306
+ Text,
307
+ {
308
+ as: "label",
309
+ htmlFor: inputId,
310
+ size: sizeClasses.textSize,
311
+ weight: "medium",
312
+ color: "text-text-950",
313
+ className: `mb-1.5 ${labelClassName}`,
314
+ children: label
315
+ }
316
+ ),
317
+ /* @__PURE__ */ jsx5(
318
+ "textarea",
319
+ {
320
+ ref,
321
+ id: inputId,
322
+ disabled,
323
+ onChange: handleChange,
324
+ onFocus: handleFocus,
325
+ onBlur: handleBlur,
326
+ className: textareaClasses,
327
+ placeholder,
328
+ ...props
329
+ }
330
+ ),
331
+ errorMessage && /* @__PURE__ */ jsx5(Text, { size: "sm", weight: "normal", className: "mt-1.5 text-error-600", children: errorMessage }),
332
+ helperMessage && !errorMessage && /* @__PURE__ */ jsx5(Text, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
333
+ ] });
334
+ }
335
+ );
336
+ TextArea.displayName = "TextArea";
337
+
209
338
  // src/components/Badge/Badge.tsx
210
339
  import { Bell } from "phosphor-react";
211
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
340
+ import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
212
341
  var VARIANT_ACTION_CLASSES2 = {
213
342
  solid: {
214
343
  error: "bg-error text-error-700 focus-visible:outline-none",
@@ -236,7 +365,7 @@ var VARIANT_ACTION_CLASSES2 = {
236
365
  },
237
366
  notification: "text-primary"
238
367
  };
239
- var SIZE_CLASSES2 = {
368
+ var SIZE_CLASSES3 = {
240
369
  small: "text-2xs px-2 py-1",
241
370
  medium: "text-xs px-2 py-1",
242
371
  large: "text-sm px-2 py-1"
@@ -257,21 +386,21 @@ var Badge = ({
257
386
  notificationActive = false,
258
387
  ...props
259
388
  }) => {
260
- const sizeClasses = SIZE_CLASSES2[size];
389
+ const sizeClasses = SIZE_CLASSES3[size];
261
390
  const sizeClassesIcon = SIZE_CLASSES_ICON[size];
262
391
  const variantActionMap = VARIANT_ACTION_CLASSES2[variant] || {};
263
392
  const variantClasses = typeof variantActionMap === "string" ? variantActionMap : variantActionMap[action] ?? variantActionMap.muted ?? "";
264
393
  const baseClasses = "inline-flex items-center justify-center rounded-xs font-medium gap-1 relative";
265
394
  const baseClassesIcon = "flex items-center";
266
395
  if (variant === "notification") {
267
- return /* @__PURE__ */ jsxs3(
396
+ return /* @__PURE__ */ jsxs4(
268
397
  "div",
269
398
  {
270
399
  className: `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`,
271
400
  ...props,
272
401
  children: [
273
- /* @__PURE__ */ jsx5(Bell, { size: 24, className: "text-primary-950" }),
274
- notificationActive && /* @__PURE__ */ jsx5(
402
+ /* @__PURE__ */ jsx6(Bell, { size: 24, className: "text-primary-950" }),
403
+ notificationActive && /* @__PURE__ */ jsx6(
275
404
  "span",
276
405
  {
277
406
  "data-testid": "notification-dot",
@@ -282,15 +411,15 @@ var Badge = ({
282
411
  }
283
412
  );
284
413
  }
285
- return /* @__PURE__ */ jsxs3(
414
+ return /* @__PURE__ */ jsxs4(
286
415
  "div",
287
416
  {
288
417
  className: `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`,
289
418
  ...props,
290
419
  children: [
291
- iconLeft && /* @__PURE__ */ jsx5("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconLeft }),
420
+ iconLeft && /* @__PURE__ */ jsx6("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconLeft }),
292
421
  children,
293
- iconRight && /* @__PURE__ */ jsx5("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconRight })
422
+ iconRight && /* @__PURE__ */ jsx6("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconRight })
294
423
  ]
295
424
  }
296
425
  );
@@ -298,13 +427,13 @@ var Badge = ({
298
427
 
299
428
  // src/components/CheckBox/CheckBox.tsx
300
429
  import {
301
- forwardRef as forwardRef2,
302
- useState,
303
- useId
430
+ forwardRef as forwardRef3,
431
+ useState as useState2,
432
+ useId as useId2
304
433
  } from "react";
305
434
  import { Check, Minus } from "phosphor-react";
306
- import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
307
- var SIZE_CLASSES3 = {
435
+ import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
436
+ var SIZE_CLASSES4 = {
308
437
  small: {
309
438
  checkbox: "w-4 h-4",
310
439
  // 16px x 16px
@@ -341,7 +470,7 @@ var SIZE_CLASSES3 = {
341
470
  }
342
471
  };
343
472
  var BASE_CHECKBOX_CLASSES = "rounded border cursor-pointer transition-all duration-200 flex items-center justify-center focus:outline-none";
344
- var STATE_CLASSES = {
473
+ var STATE_CLASSES2 = {
345
474
  default: {
346
475
  unchecked: "border-border-400 bg-background hover:border-border-500",
347
476
  checked: "border-primary-950 bg-primary-950 text-text hover:border-primary-800 hover:bg-primary-800"
@@ -363,7 +492,7 @@ var STATE_CLASSES = {
363
492
  checked: "border-primary-600 bg-primary-600 text-text cursor-not-allowed opacity-40"
364
493
  }
365
494
  };
366
- var CheckBox = forwardRef2(
495
+ var CheckBox = forwardRef3(
367
496
  ({
368
497
  label,
369
498
  size = "medium",
@@ -379,9 +508,9 @@ var CheckBox = forwardRef2(
379
508
  onChange,
380
509
  ...props
381
510
  }, ref) => {
382
- const generatedId = useId();
511
+ const generatedId = useId2();
383
512
  const inputId = id ?? `checkbox-${generatedId}`;
384
- const [internalChecked, setInternalChecked] = useState(false);
513
+ const [internalChecked, setInternalChecked] = useState2(false);
385
514
  const isControlled = checkedProp !== void 0;
386
515
  const checked = isControlled ? checkedProp : internalChecked;
387
516
  const handleChange = (event) => {
@@ -391,14 +520,14 @@ var CheckBox = forwardRef2(
391
520
  onChange?.(event);
392
521
  };
393
522
  const currentState = disabled ? "disabled" : state;
394
- const sizeClasses = SIZE_CLASSES3[size];
523
+ const sizeClasses = SIZE_CLASSES4[size];
395
524
  const checkVariant = checked || indeterminate ? "checked" : "unchecked";
396
- const stylingClasses = STATE_CLASSES[currentState][checkVariant];
525
+ const stylingClasses = STATE_CLASSES2[currentState][checkVariant];
397
526
  const borderWidthClass = state === "focused" || state === "hovered" && size === "large" ? "border-[3px]" : sizeClasses.borderWidth;
398
527
  const checkboxClasses = `${BASE_CHECKBOX_CLASSES} ${sizeClasses.checkbox} ${borderWidthClass} ${stylingClasses} ${className}`;
399
528
  const renderIcon = () => {
400
529
  if (indeterminate) {
401
- return /* @__PURE__ */ jsx6(
530
+ return /* @__PURE__ */ jsx7(
402
531
  Minus,
403
532
  {
404
533
  size: sizeClasses.iconSize,
@@ -408,7 +537,7 @@ var CheckBox = forwardRef2(
408
537
  );
409
538
  }
410
539
  if (checked) {
411
- return /* @__PURE__ */ jsx6(
540
+ return /* @__PURE__ */ jsx7(
412
541
  Check,
413
542
  {
414
543
  size: sizeClasses.iconSize,
@@ -419,13 +548,13 @@ var CheckBox = forwardRef2(
419
548
  }
420
549
  return null;
421
550
  };
422
- return /* @__PURE__ */ jsxs4("div", { className: "flex flex-col", children: [
423
- /* @__PURE__ */ jsxs4(
551
+ return /* @__PURE__ */ jsxs5("div", { className: "flex flex-col", children: [
552
+ /* @__PURE__ */ jsxs5(
424
553
  "div",
425
554
  {
426
555
  className: `flex flex-row items-center ${sizeClasses.spacing} ${disabled ? "opacity-40" : ""}`,
427
556
  children: [
428
- /* @__PURE__ */ jsx6(
557
+ /* @__PURE__ */ jsx7(
429
558
  "input",
430
559
  {
431
560
  ref,
@@ -438,19 +567,18 @@ var CheckBox = forwardRef2(
438
567
  ...props
439
568
  }
440
569
  ),
441
- /* @__PURE__ */ jsx6("label", { htmlFor: inputId, className: checkboxClasses, children: renderIcon() }),
442
- label && /* @__PURE__ */ jsx6(
570
+ /* @__PURE__ */ jsx7("label", { htmlFor: inputId, className: checkboxClasses, children: renderIcon() }),
571
+ label && /* @__PURE__ */ jsx7(
443
572
  "div",
444
573
  {
445
574
  className: `flex flex-row items-center ${sizeClasses.labelHeight}`,
446
- children: /* @__PURE__ */ jsx6(
575
+ children: /* @__PURE__ */ jsx7(
447
576
  Text,
448
577
  {
449
578
  as: "label",
450
579
  htmlFor: inputId,
451
580
  size: sizeClasses.textSize,
452
581
  weight: "normal",
453
- color: "black",
454
582
  className: `cursor-pointer select-none leading-[150%] flex items-center font-roboto ${labelClassName}`,
455
583
  children: label
456
584
  }
@@ -460,32 +588,50 @@ var CheckBox = forwardRef2(
460
588
  ]
461
589
  }
462
590
  ),
463
- errorMessage && /* @__PURE__ */ jsx6(Text, { size: "sm", weight: "normal", className: "mt-1.5 text-error-600", children: errorMessage }),
464
- helperText && !errorMessage && /* @__PURE__ */ jsx6(Text, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperText })
591
+ errorMessage && /* @__PURE__ */ jsx7(
592
+ Text,
593
+ {
594
+ size: "sm",
595
+ weight: "normal",
596
+ className: "mt-1.5",
597
+ color: "text-error-600",
598
+ children: errorMessage
599
+ }
600
+ ),
601
+ helperText && !errorMessage && /* @__PURE__ */ jsx7(
602
+ Text,
603
+ {
604
+ size: "sm",
605
+ weight: "normal",
606
+ className: "mt-1.5",
607
+ color: "text-text-500",
608
+ children: helperText
609
+ }
610
+ )
465
611
  ] });
466
612
  }
467
613
  );
468
614
  CheckBox.displayName = "CheckBox";
469
615
 
470
616
  // src/components/Table/Table.tsx
471
- import { forwardRef as forwardRef3 } from "react";
472
- import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
473
- var Table = forwardRef3(
474
- ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx7("div", { className: "border border-border-200 rounded-xl relative w-full overflow-hidden", children: /* @__PURE__ */ jsxs5(
617
+ import { forwardRef as forwardRef4 } from "react";
618
+ import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
619
+ var Table = forwardRef4(
620
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ jsx8("div", { className: "border border-border-200 rounded-xl relative w-full overflow-hidden", children: /* @__PURE__ */ jsxs6(
475
621
  "table",
476
622
  {
477
623
  ref,
478
624
  className: `w-full caption-bottom text-sm ${className ?? ""}`,
479
625
  ...props,
480
626
  children: [
481
- /* @__PURE__ */ jsx7("caption", { className: "sr-only", children: "My Table" }),
627
+ /* @__PURE__ */ jsx8("caption", { className: "sr-only", children: "My Table" }),
482
628
  children
483
629
  ]
484
630
  }
485
631
  ) })
486
632
  );
487
633
  Table.displayName = "Table";
488
- var TableHeader = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
634
+ var TableHeader = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
489
635
  "thead",
490
636
  {
491
637
  ref,
@@ -494,7 +640,7 @@ var TableHeader = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */
494
640
  }
495
641
  ));
496
642
  TableHeader.displayName = "TableHeader";
497
- var TableBody = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
643
+ var TableBody = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
498
644
  "tbody",
499
645
  {
500
646
  ref,
@@ -503,7 +649,7 @@ var TableBody = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ js
503
649
  }
504
650
  ));
505
651
  TableBody.displayName = "TableBody";
506
- var TableFooter = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
652
+ var TableFooter = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
507
653
  "tfoot",
508
654
  {
509
655
  ref,
@@ -518,9 +664,9 @@ var VARIANT_STATES_ROW = {
518
664
  invalid: "border-b-2 border-indicator-error",
519
665
  disabled: "border-b border-border-100 bg-background-50 opacity-50 cursor-not-allowed"
520
666
  };
521
- var TableRow = forwardRef3(
667
+ var TableRow = forwardRef4(
522
668
  ({ state = "default", className, ...props }, ref) => {
523
- return /* @__PURE__ */ jsx7(
669
+ return /* @__PURE__ */ jsx8(
524
670
  "tr",
525
671
  {
526
672
  ref,
@@ -537,7 +683,7 @@ var TableRow = forwardRef3(
537
683
  }
538
684
  );
539
685
  TableRow.displayName = "TableRow";
540
- var TableHead = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
686
+ var TableHead = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
541
687
  "th",
542
688
  {
543
689
  ref,
@@ -546,7 +692,7 @@ var TableHead = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ js
546
692
  }
547
693
  ));
548
694
  TableHead.displayName = "TableHead";
549
- var TableCell = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
695
+ var TableCell = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
550
696
  "td",
551
697
  {
552
698
  ref,
@@ -555,7 +701,7 @@ var TableCell = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ js
555
701
  }
556
702
  ));
557
703
  TableCell.displayName = "TableCell";
558
- var TableCaption = forwardRef3(({ className, ...props }, ref) => /* @__PURE__ */ jsx7(
704
+ var TableCaption = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
559
705
  "caption",
560
706
  {
561
707
  ref,
@@ -568,20 +714,20 @@ TableCaption.displayName = "TableCaption";
568
714
  // src/components/DropdownMenu/DropdownMenu.tsx
569
715
  import {
570
716
  createContext,
571
- useState as useState2,
717
+ useState as useState3,
572
718
  useCallback,
573
719
  useContext,
574
- forwardRef as forwardRef4,
720
+ forwardRef as forwardRef5,
575
721
  useEffect,
576
722
  useRef,
577
723
  useMemo
578
724
  } from "react";
579
- import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
725
+ import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
580
726
  var DropdownMenuContext = createContext(
581
727
  void 0
582
728
  );
583
729
  var DropdownMenu = ({ children, open, onOpenChange }) => {
584
- const [internalOpen, setInternalOpen] = useState2(false);
730
+ const [internalOpen, setInternalOpen] = useState3(false);
585
731
  const isControlled = open !== void 0;
586
732
  const currentOpen = isControlled ? open : internalOpen;
587
733
  const setOpen = useCallback(
@@ -639,14 +785,14 @@ var DropdownMenu = ({ children, open, onOpenChange }) => {
639
785
  () => ({ open: currentOpen, setOpen }),
640
786
  [currentOpen, setOpen]
641
787
  );
642
- return /* @__PURE__ */ jsx8(DropdownMenuContext.Provider, { value, children: /* @__PURE__ */ jsx8("div", { className: "relative", ref: menuRef, children }) });
788
+ return /* @__PURE__ */ jsx9(DropdownMenuContext.Provider, { value, children: /* @__PURE__ */ jsx9("div", { className: "relative", ref: menuRef, children }) });
643
789
  };
644
- var DropdownMenuTrigger = forwardRef4(({ className, children, onClick, ...props }, ref) => {
790
+ var DropdownMenuTrigger = forwardRef5(({ className, children, onClick, ...props }, ref) => {
645
791
  const context = useContext(DropdownMenuContext);
646
792
  if (!context)
647
793
  throw new Error("DropdownMenuTrigger must be used within a DropdownMenu");
648
794
  const { open, setOpen } = context;
649
- return /* @__PURE__ */ jsx8(
795
+ return /* @__PURE__ */ jsx9(
650
796
  "button",
651
797
  {
652
798
  ref,
@@ -678,7 +824,7 @@ var ALIGN_CLASSES = {
678
824
  center: "left-1/2 -translate-x-1/2",
679
825
  end: "right-0"
680
826
  };
681
- var MenuLabel = forwardRef4(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx8(
827
+ var MenuLabel = forwardRef5(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx9(
682
828
  "fieldset",
683
829
  {
684
830
  ref,
@@ -688,7 +834,7 @@ var MenuLabel = forwardRef4(({ className, inset, ...props }, ref) => /* @__PURE_
688
834
  }
689
835
  ));
690
836
  MenuLabel.displayName = "MenuLabel";
691
- var MenuContent = forwardRef4(
837
+ var MenuContent = forwardRef5(
692
838
  ({
693
839
  className,
694
840
  align = "start",
@@ -698,7 +844,7 @@ var MenuContent = forwardRef4(
698
844
  ...props
699
845
  }, ref) => {
700
846
  const { open } = useContext(DropdownMenuContext);
701
- const [isVisible, setIsVisible] = useState2(open);
847
+ const [isVisible, setIsVisible] = useState3(open);
702
848
  useEffect(() => {
703
849
  if (open) {
704
850
  setIsVisible(true);
@@ -713,7 +859,7 @@ var MenuContent = forwardRef4(
713
859
  const horizontal = ALIGN_CLASSES[align];
714
860
  return `absolute ${vertical} ${horizontal}`;
715
861
  };
716
- return /* @__PURE__ */ jsx8(
862
+ return /* @__PURE__ */ jsx9(
717
863
  "div",
718
864
  {
719
865
  ref,
@@ -737,7 +883,7 @@ var MenuContent = forwardRef4(
737
883
  }
738
884
  );
739
885
  MenuContent.displayName = "MenuContent";
740
- var MenuItem = forwardRef4(
886
+ var MenuItem = forwardRef5(
741
887
  ({
742
888
  className,
743
889
  inset,
@@ -758,7 +904,7 @@ var MenuItem = forwardRef4(
758
904
  }
759
905
  onClick?.(e);
760
906
  };
761
- return /* @__PURE__ */ jsxs6(
907
+ return /* @__PURE__ */ jsxs7(
762
908
  "div",
763
909
  {
764
910
  ref,
@@ -788,7 +934,7 @@ var MenuItem = forwardRef4(
788
934
  }
789
935
  );
790
936
  MenuItem.displayName = "MenuItem";
791
- var MenuSeparator = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
937
+ var MenuSeparator = forwardRef5(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
792
938
  "div",
793
939
  {
794
940
  ref,
@@ -799,9 +945,9 @@ var MenuSeparator = forwardRef4(({ className, ...props }, ref) => /* @__PURE__ *
799
945
  MenuSeparator.displayName = "MenuSeparator";
800
946
 
801
947
  // src/components/NavButton/NavButton.tsx
802
- import { forwardRef as forwardRef5 } from "react";
803
- import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
804
- var NavButton = forwardRef5(
948
+ import { forwardRef as forwardRef6 } from "react";
949
+ import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
950
+ var NavButton = forwardRef6(
805
951
  ({ icon, label, selected = false, className = "", disabled, ...props }, ref) => {
806
952
  const baseClasses = [
807
953
  "flex",
@@ -828,7 +974,7 @@ var NavButton = forwardRef5(
828
974
  ];
829
975
  const stateClasses = selected ? ["bg-primary-50", "text-primary-950"] : [];
830
976
  const allClasses = [...baseClasses, ...stateClasses].join(" ");
831
- return /* @__PURE__ */ jsxs7(
977
+ return /* @__PURE__ */ jsxs8(
832
978
  "button",
833
979
  {
834
980
  ref,
@@ -838,8 +984,8 @@ var NavButton = forwardRef5(
838
984
  "aria-pressed": selected,
839
985
  ...props,
840
986
  children: [
841
- /* @__PURE__ */ jsx9("span", { className: "flex items-center justify-center w-5 h-5", children: icon }),
842
- /* @__PURE__ */ jsx9("span", { className: "whitespace-nowrap", children: label })
987
+ /* @__PURE__ */ jsx10("span", { className: "flex items-center justify-center w-5 h-5", children: icon }),
988
+ /* @__PURE__ */ jsx10("span", { className: "whitespace-nowrap", children: label })
843
989
  ]
844
990
  }
845
991
  );
@@ -848,9 +994,9 @@ var NavButton = forwardRef5(
848
994
  NavButton.displayName = "NavButton";
849
995
 
850
996
  // src/components/IconButton/IconButton.tsx
851
- import { forwardRef as forwardRef6 } from "react";
852
- import { jsx as jsx10 } from "react/jsx-runtime";
853
- var IconButton = forwardRef6(
997
+ import { forwardRef as forwardRef7 } from "react";
998
+ import { jsx as jsx11 } from "react/jsx-runtime";
999
+ var IconButton = forwardRef7(
854
1000
  ({ icon, size = "md", active = false, className = "", disabled, ...props }, ref) => {
855
1001
  const baseClasses = [
856
1002
  "inline-flex",
@@ -882,7 +1028,7 @@ var IconButton = forwardRef6(
882
1028
  ...activeClasses
883
1029
  ].join(" ");
884
1030
  const ariaLabel = props["aria-label"] ?? "Bot\xE3o de a\xE7\xE3o";
885
- return /* @__PURE__ */ jsx10(
1031
+ return /* @__PURE__ */ jsx11(
886
1032
  "button",
887
1033
  {
888
1034
  ref,
@@ -892,7 +1038,7 @@ var IconButton = forwardRef6(
892
1038
  "aria-pressed": active,
893
1039
  "aria-label": ariaLabel,
894
1040
  ...props,
895
- children: /* @__PURE__ */ jsx10("span", { className: "flex items-center justify-center", children: icon })
1041
+ children: /* @__PURE__ */ jsx11("span", { className: "flex items-center justify-center", children: icon })
896
1042
  }
897
1043
  );
898
1044
  }
@@ -901,7 +1047,7 @@ IconButton.displayName = "IconButton";
901
1047
 
902
1048
  // src/components/Toast/Toast.tsx
903
1049
  import { CheckCircle, WarningCircle, Info, X } from "phosphor-react";
904
- import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
1050
+ import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
905
1051
  var VARIANT_ACTION_CLASSES3 = {
906
1052
  solid: {
907
1053
  warning: "bg-warning text-warning-800 border-none focus-visible:outline-none",
@@ -941,7 +1087,7 @@ var Toast = ({
941
1087
  };
942
1088
  const IconAction = iconMap[action] || iconMap["success"];
943
1089
  const baseClasses = "max-w-[390px] w-full flex flex-row items-start justify-between shadow-lg rounded-lg border p-4 gap-6 group";
944
- return /* @__PURE__ */ jsxs8(
1090
+ return /* @__PURE__ */ jsxs9(
945
1091
  "div",
946
1092
  {
947
1093
  role: "alert",
@@ -950,20 +1096,20 @@ var Toast = ({
950
1096
  className: `${baseClasses} ${positionClasses[position]} ${variantClasses} ${className}`,
951
1097
  ...props,
952
1098
  children: [
953
- /* @__PURE__ */ jsxs8("div", { className: "flex flex-row items-start gap-3", children: [
954
- /* @__PURE__ */ jsx11("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ jsx11(IconAction, {}) }),
955
- /* @__PURE__ */ jsxs8("div", { className: "flex flex-col items-start justify-start", children: [
956
- /* @__PURE__ */ jsx11("p", { className: "font-semibold text-md", children: title }),
957
- description && /* @__PURE__ */ jsx11("p", { className: "text-md text-text-900", children: description })
1099
+ /* @__PURE__ */ jsxs9("div", { className: "flex flex-row items-start gap-3", children: [
1100
+ /* @__PURE__ */ jsx12("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ jsx12(IconAction, {}) }),
1101
+ /* @__PURE__ */ jsxs9("div", { className: "flex flex-col items-start justify-start", children: [
1102
+ /* @__PURE__ */ jsx12("p", { className: "font-semibold text-md", children: title }),
1103
+ description && /* @__PURE__ */ jsx12("p", { className: "text-md text-text-900", children: description })
958
1104
  ] })
959
1105
  ] }),
960
- /* @__PURE__ */ jsx11(
1106
+ /* @__PURE__ */ jsx12(
961
1107
  "button",
962
1108
  {
963
1109
  onClick: onClose,
964
1110
  "aria-label": "Dismiss notification",
965
1111
  className: "text-background-500 cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity",
966
- children: /* @__PURE__ */ jsx11(X, {})
1112
+ children: /* @__PURE__ */ jsx12(X, {})
967
1113
  }
968
1114
  )
969
1115
  ]
@@ -989,11 +1135,11 @@ var useToastStore = create((set) => ({
989
1135
  }));
990
1136
 
991
1137
  // src/components/Toast/utils/Toaster.tsx
992
- import { Fragment, jsx as jsx12 } from "react/jsx-runtime";
1138
+ import { Fragment, jsx as jsx13 } from "react/jsx-runtime";
993
1139
  var Toaster = () => {
994
1140
  const toasts = useToastStore((state) => state.toasts);
995
1141
  const removeToast = useToastStore((state) => state.removeToast);
996
- return /* @__PURE__ */ jsx12(Fragment, { children: toasts.map((toast) => /* @__PURE__ */ jsx12(
1142
+ return /* @__PURE__ */ jsx13(Fragment, { children: toasts.map((toast) => /* @__PURE__ */ jsx13(
997
1143
  Toast,
998
1144
  {
999
1145
  title: toast.title,
@@ -1034,6 +1180,7 @@ export {
1034
1180
  TableHeader,
1035
1181
  TableRow,
1036
1182
  Text,
1183
+ TextArea,
1037
1184
  Toast,
1038
1185
  Toaster,
1039
1186
  useToast,