analytica-frontend-lib 1.0.21 → 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.js CHANGED
@@ -42,6 +42,7 @@ __export(index_exports, {
42
42
  TableHeader: () => TableHeader,
43
43
  TableRow: () => TableRow,
44
44
  Text: () => Text,
45
+ TextArea: () => TextArea,
45
46
  Toast: () => Toast,
46
47
  Toaster: () => Toaster,
47
48
  useToast: () => useToast,
@@ -251,9 +252,140 @@ var Text = ({
251
252
  );
252
253
  };
253
254
 
255
+ // src/components/TextArea/TextArea.tsx
256
+ var import_react2 = require("react");
257
+ var import_jsx_runtime5 = require("react/jsx-runtime");
258
+ var SIZE_CLASSES2 = {
259
+ small: {
260
+ container: "w-72",
261
+ // 288px width
262
+ textarea: "h-24 text-sm",
263
+ // 96px height, 14px font
264
+ textSize: "sm"
265
+ },
266
+ medium: {
267
+ container: "w-72",
268
+ // 288px width
269
+ textarea: "h-24 text-base",
270
+ // 96px height, 16px font
271
+ textSize: "md"
272
+ },
273
+ large: {
274
+ container: "w-72",
275
+ // 288px width
276
+ textarea: "h-24 text-lg",
277
+ // 96px height, 18px font
278
+ textSize: "lg"
279
+ },
280
+ extraLarge: {
281
+ container: "w-72",
282
+ // 288px width
283
+ textarea: "h-24 text-xl",
284
+ // 96px height, 20px font
285
+ textSize: "xl"
286
+ }
287
+ };
288
+ 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";
289
+ var STATE_CLASSES = {
290
+ default: {
291
+ base: "border-border-300 bg-background text-text-600",
292
+ hover: "hover:border-border-400",
293
+ focus: "focus:border-border-500"
294
+ },
295
+ hovered: {
296
+ base: "border-border-400 bg-background text-text-600",
297
+ hover: "",
298
+ focus: "focus:border-border-500"
299
+ },
300
+ focused: {
301
+ base: "border-2 border-primary-950 bg-background text-text-900",
302
+ hover: "",
303
+ focus: ""
304
+ },
305
+ invalid: {
306
+ base: "border-2 border-red-700 bg-white text-gray-800",
307
+ hover: "hover:border-red-700",
308
+ focus: "focus:border-red-700"
309
+ },
310
+ disabled: {
311
+ base: "border-border-300 bg-background text-text-600 cursor-not-allowed opacity-40",
312
+ hover: "",
313
+ focus: ""
314
+ }
315
+ };
316
+ var TextArea = (0, import_react2.forwardRef)(
317
+ ({
318
+ label,
319
+ size = "medium",
320
+ state = "default",
321
+ errorMessage,
322
+ helperMessage,
323
+ className = "",
324
+ labelClassName = "",
325
+ disabled,
326
+ id,
327
+ onChange,
328
+ placeholder,
329
+ ...props
330
+ }, ref) => {
331
+ const generatedId = (0, import_react2.useId)();
332
+ const inputId = id ?? `textarea-${generatedId}`;
333
+ const [isFocused, setIsFocused] = (0, import_react2.useState)(false);
334
+ const handleChange = (event) => {
335
+ onChange?.(event);
336
+ };
337
+ const handleFocus = (event) => {
338
+ setIsFocused(true);
339
+ props.onFocus?.(event);
340
+ };
341
+ const handleBlur = (event) => {
342
+ setIsFocused(false);
343
+ props.onBlur?.(event);
344
+ };
345
+ let currentState = disabled ? "disabled" : state;
346
+ if (isFocused && currentState !== "invalid" && currentState !== "disabled") {
347
+ currentState = "focused";
348
+ }
349
+ const sizeClasses = SIZE_CLASSES2[size];
350
+ const stateClasses = STATE_CLASSES[currentState];
351
+ const textareaClasses = `${BASE_TEXTAREA_CLASSES} ${sizeClasses.textarea} ${stateClasses.base} ${stateClasses.hover} ${stateClasses.focus} ${className}`;
352
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: `flex flex-col ${sizeClasses.container}`, children: [
353
+ label && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
354
+ Text,
355
+ {
356
+ as: "label",
357
+ htmlFor: inputId,
358
+ size: sizeClasses.textSize,
359
+ weight: "medium",
360
+ color: "text-text-950",
361
+ className: `mb-1.5 ${labelClassName}`,
362
+ children: label
363
+ }
364
+ ),
365
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
366
+ "textarea",
367
+ {
368
+ ref,
369
+ id: inputId,
370
+ disabled,
371
+ onChange: handleChange,
372
+ onFocus: handleFocus,
373
+ onBlur: handleBlur,
374
+ className: textareaClasses,
375
+ placeholder,
376
+ ...props
377
+ }
378
+ ),
379
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Text, { size: "sm", weight: "normal", className: "mt-1.5 text-error-600", children: errorMessage }),
380
+ helperMessage && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Text, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
381
+ ] });
382
+ }
383
+ );
384
+ TextArea.displayName = "TextArea";
385
+
254
386
  // src/components/Badge/Badge.tsx
255
387
  var import_phosphor_react = require("phosphor-react");
256
- var import_jsx_runtime5 = require("react/jsx-runtime");
388
+ var import_jsx_runtime6 = require("react/jsx-runtime");
257
389
  var VARIANT_ACTION_CLASSES2 = {
258
390
  solid: {
259
391
  error: "bg-error text-error-700 focus-visible:outline-none",
@@ -281,7 +413,7 @@ var VARIANT_ACTION_CLASSES2 = {
281
413
  },
282
414
  notification: "text-primary"
283
415
  };
284
- var SIZE_CLASSES2 = {
416
+ var SIZE_CLASSES3 = {
285
417
  small: "text-2xs px-2 py-1",
286
418
  medium: "text-xs px-2 py-1",
287
419
  large: "text-sm px-2 py-1"
@@ -302,21 +434,21 @@ var Badge = ({
302
434
  notificationActive = false,
303
435
  ...props
304
436
  }) => {
305
- const sizeClasses = SIZE_CLASSES2[size];
437
+ const sizeClasses = SIZE_CLASSES3[size];
306
438
  const sizeClassesIcon = SIZE_CLASSES_ICON[size];
307
439
  const variantActionMap = VARIANT_ACTION_CLASSES2[variant] || {};
308
440
  const variantClasses = typeof variantActionMap === "string" ? variantActionMap : variantActionMap[action] ?? variantActionMap.muted ?? "";
309
441
  const baseClasses = "inline-flex items-center justify-center rounded-xs font-medium gap-1 relative";
310
442
  const baseClassesIcon = "flex items-center";
311
443
  if (variant === "notification") {
312
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
444
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
313
445
  "div",
314
446
  {
315
447
  className: `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`,
316
448
  ...props,
317
449
  children: [
318
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_phosphor_react.Bell, { size: 24, className: "text-primary-950" }),
319
- notificationActive && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
450
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_phosphor_react.Bell, { size: 24, className: "text-primary-950" }),
451
+ notificationActive && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
320
452
  "span",
321
453
  {
322
454
  "data-testid": "notification-dot",
@@ -327,25 +459,25 @@ var Badge = ({
327
459
  }
328
460
  );
329
461
  }
330
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
462
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
331
463
  "div",
332
464
  {
333
465
  className: `${baseClasses} ${variantClasses} ${sizeClasses} ${className}`,
334
466
  ...props,
335
467
  children: [
336
- iconLeft && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconLeft }),
468
+ iconLeft && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconLeft }),
337
469
  children,
338
- iconRight && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconRight })
470
+ iconRight && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconRight })
339
471
  ]
340
472
  }
341
473
  );
342
474
  };
343
475
 
344
476
  // src/components/CheckBox/CheckBox.tsx
345
- var import_react2 = require("react");
477
+ var import_react3 = require("react");
346
478
  var import_phosphor_react2 = require("phosphor-react");
347
- var import_jsx_runtime6 = require("react/jsx-runtime");
348
- var SIZE_CLASSES3 = {
479
+ var import_jsx_runtime7 = require("react/jsx-runtime");
480
+ var SIZE_CLASSES4 = {
349
481
  small: {
350
482
  checkbox: "w-4 h-4",
351
483
  // 16px x 16px
@@ -382,7 +514,7 @@ var SIZE_CLASSES3 = {
382
514
  }
383
515
  };
384
516
  var BASE_CHECKBOX_CLASSES = "rounded border cursor-pointer transition-all duration-200 flex items-center justify-center focus:outline-none";
385
- var STATE_CLASSES = {
517
+ var STATE_CLASSES2 = {
386
518
  default: {
387
519
  unchecked: "border-border-400 bg-background hover:border-border-500",
388
520
  checked: "border-primary-950 bg-primary-950 text-text hover:border-primary-800 hover:bg-primary-800"
@@ -404,7 +536,7 @@ var STATE_CLASSES = {
404
536
  checked: "border-primary-600 bg-primary-600 text-text cursor-not-allowed opacity-40"
405
537
  }
406
538
  };
407
- var CheckBox = (0, import_react2.forwardRef)(
539
+ var CheckBox = (0, import_react3.forwardRef)(
408
540
  ({
409
541
  label,
410
542
  size = "medium",
@@ -420,9 +552,9 @@ var CheckBox = (0, import_react2.forwardRef)(
420
552
  onChange,
421
553
  ...props
422
554
  }, ref) => {
423
- const generatedId = (0, import_react2.useId)();
555
+ const generatedId = (0, import_react3.useId)();
424
556
  const inputId = id ?? `checkbox-${generatedId}`;
425
- const [internalChecked, setInternalChecked] = (0, import_react2.useState)(false);
557
+ const [internalChecked, setInternalChecked] = (0, import_react3.useState)(false);
426
558
  const isControlled = checkedProp !== void 0;
427
559
  const checked = isControlled ? checkedProp : internalChecked;
428
560
  const handleChange = (event) => {
@@ -432,14 +564,14 @@ var CheckBox = (0, import_react2.forwardRef)(
432
564
  onChange?.(event);
433
565
  };
434
566
  const currentState = disabled ? "disabled" : state;
435
- const sizeClasses = SIZE_CLASSES3[size];
567
+ const sizeClasses = SIZE_CLASSES4[size];
436
568
  const checkVariant = checked || indeterminate ? "checked" : "unchecked";
437
- const stylingClasses = STATE_CLASSES[currentState][checkVariant];
569
+ const stylingClasses = STATE_CLASSES2[currentState][checkVariant];
438
570
  const borderWidthClass = state === "focused" || state === "hovered" && size === "large" ? "border-[3px]" : sizeClasses.borderWidth;
439
571
  const checkboxClasses = `${BASE_CHECKBOX_CLASSES} ${sizeClasses.checkbox} ${borderWidthClass} ${stylingClasses} ${className}`;
440
572
  const renderIcon = () => {
441
573
  if (indeterminate) {
442
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
574
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
443
575
  import_phosphor_react2.Minus,
444
576
  {
445
577
  size: sizeClasses.iconSize,
@@ -449,7 +581,7 @@ var CheckBox = (0, import_react2.forwardRef)(
449
581
  );
450
582
  }
451
583
  if (checked) {
452
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
584
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
453
585
  import_phosphor_react2.Check,
454
586
  {
455
587
  size: sizeClasses.iconSize,
@@ -460,13 +592,13 @@ var CheckBox = (0, import_react2.forwardRef)(
460
592
  }
461
593
  return null;
462
594
  };
463
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: "flex flex-col", children: [
464
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
595
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "flex flex-col", children: [
596
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
465
597
  "div",
466
598
  {
467
599
  className: `flex flex-row items-center ${sizeClasses.spacing} ${disabled ? "opacity-40" : ""}`,
468
600
  children: [
469
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
601
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
470
602
  "input",
471
603
  {
472
604
  ref,
@@ -479,12 +611,12 @@ var CheckBox = (0, import_react2.forwardRef)(
479
611
  ...props
480
612
  }
481
613
  ),
482
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("label", { htmlFor: inputId, className: checkboxClasses, children: renderIcon() }),
483
- label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
614
+ /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("label", { htmlFor: inputId, className: checkboxClasses, children: renderIcon() }),
615
+ label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
484
616
  "div",
485
617
  {
486
618
  className: `flex flex-row items-center ${sizeClasses.labelHeight}`,
487
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
619
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
488
620
  Text,
489
621
  {
490
622
  as: "label",
@@ -500,7 +632,7 @@ var CheckBox = (0, import_react2.forwardRef)(
500
632
  ]
501
633
  }
502
634
  ),
503
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
635
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
504
636
  Text,
505
637
  {
506
638
  size: "sm",
@@ -510,7 +642,7 @@ var CheckBox = (0, import_react2.forwardRef)(
510
642
  children: errorMessage
511
643
  }
512
644
  ),
513
- helperText && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
645
+ helperText && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
514
646
  Text,
515
647
  {
516
648
  size: "sm",
@@ -526,24 +658,24 @@ var CheckBox = (0, import_react2.forwardRef)(
526
658
  CheckBox.displayName = "CheckBox";
527
659
 
528
660
  // src/components/Table/Table.tsx
529
- var import_react3 = require("react");
530
- var import_jsx_runtime7 = require("react/jsx-runtime");
531
- var Table = (0, import_react3.forwardRef)(
532
- ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "border border-border-200 rounded-xl relative w-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
661
+ var import_react4 = require("react");
662
+ var import_jsx_runtime8 = require("react/jsx-runtime");
663
+ var Table = (0, import_react4.forwardRef)(
664
+ ({ className, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "border border-border-200 rounded-xl relative w-full overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
533
665
  "table",
534
666
  {
535
667
  ref,
536
668
  className: `w-full caption-bottom text-sm ${className ?? ""}`,
537
669
  ...props,
538
670
  children: [
539
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("caption", { className: "sr-only", children: "My Table" }),
671
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("caption", { className: "sr-only", children: "My Table" }),
540
672
  children
541
673
  ]
542
674
  }
543
675
  ) })
544
676
  );
545
677
  Table.displayName = "Table";
546
- var TableHeader = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
678
+ var TableHeader = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
547
679
  "thead",
548
680
  {
549
681
  ref,
@@ -552,7 +684,7 @@ var TableHeader = (0, import_react3.forwardRef)(({ className, ...props }, ref) =
552
684
  }
553
685
  ));
554
686
  TableHeader.displayName = "TableHeader";
555
- var TableBody = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
687
+ var TableBody = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
556
688
  "tbody",
557
689
  {
558
690
  ref,
@@ -561,7 +693,7 @@ var TableBody = (0, import_react3.forwardRef)(({ className, ...props }, ref) =>
561
693
  }
562
694
  ));
563
695
  TableBody.displayName = "TableBody";
564
- var TableFooter = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
696
+ var TableFooter = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
565
697
  "tfoot",
566
698
  {
567
699
  ref,
@@ -576,9 +708,9 @@ var VARIANT_STATES_ROW = {
576
708
  invalid: "border-b-2 border-indicator-error",
577
709
  disabled: "border-b border-border-100 bg-background-50 opacity-50 cursor-not-allowed"
578
710
  };
579
- var TableRow = (0, import_react3.forwardRef)(
711
+ var TableRow = (0, import_react4.forwardRef)(
580
712
  ({ state = "default", className, ...props }, ref) => {
581
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
713
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
582
714
  "tr",
583
715
  {
584
716
  ref,
@@ -595,7 +727,7 @@ var TableRow = (0, import_react3.forwardRef)(
595
727
  }
596
728
  );
597
729
  TableRow.displayName = "TableRow";
598
- var TableHead = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
730
+ var TableHead = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
599
731
  "th",
600
732
  {
601
733
  ref,
@@ -604,7 +736,7 @@ var TableHead = (0, import_react3.forwardRef)(({ className, ...props }, ref) =>
604
736
  }
605
737
  ));
606
738
  TableHead.displayName = "TableHead";
607
- var TableCell = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
739
+ var TableCell = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
608
740
  "td",
609
741
  {
610
742
  ref,
@@ -613,7 +745,7 @@ var TableCell = (0, import_react3.forwardRef)(({ className, ...props }, ref) =>
613
745
  }
614
746
  ));
615
747
  TableCell.displayName = "TableCell";
616
- var TableCaption = (0, import_react3.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
748
+ var TableCaption = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
617
749
  "caption",
618
750
  {
619
751
  ref,
@@ -624,23 +756,23 @@ var TableCaption = (0, import_react3.forwardRef)(({ className, ...props }, ref)
624
756
  TableCaption.displayName = "TableCaption";
625
757
 
626
758
  // src/components/DropdownMenu/DropdownMenu.tsx
627
- var import_react4 = require("react");
628
- var import_jsx_runtime8 = require("react/jsx-runtime");
629
- var DropdownMenuContext = (0, import_react4.createContext)(
759
+ var import_react5 = require("react");
760
+ var import_jsx_runtime9 = require("react/jsx-runtime");
761
+ var DropdownMenuContext = (0, import_react5.createContext)(
630
762
  void 0
631
763
  );
632
764
  var DropdownMenu = ({ children, open, onOpenChange }) => {
633
- const [internalOpen, setInternalOpen] = (0, import_react4.useState)(false);
765
+ const [internalOpen, setInternalOpen] = (0, import_react5.useState)(false);
634
766
  const isControlled = open !== void 0;
635
767
  const currentOpen = isControlled ? open : internalOpen;
636
- const setOpen = (0, import_react4.useCallback)(
768
+ const setOpen = (0, import_react5.useCallback)(
637
769
  (newOpen) => {
638
770
  if (onOpenChange) onOpenChange(newOpen);
639
771
  if (!isControlled) setInternalOpen(newOpen);
640
772
  },
641
773
  [isControlled, onOpenChange]
642
774
  );
643
- const menuRef = (0, import_react4.useRef)(null);
775
+ const menuRef = (0, import_react5.useRef)(null);
644
776
  const handleArrowDownOrArrowUp = (event) => {
645
777
  const menuContent = menuRef.current?.querySelector('[role="menu"]');
646
778
  if (menuContent) {
@@ -674,7 +806,7 @@ var DropdownMenu = ({ children, open, onOpenChange }) => {
674
806
  setOpen(false);
675
807
  }
676
808
  };
677
- (0, import_react4.useEffect)(() => {
809
+ (0, import_react5.useEffect)(() => {
678
810
  if (currentOpen) {
679
811
  document.addEventListener("mousedown", handleClickOutside);
680
812
  document.addEventListener("keydown", handleDownkey);
@@ -684,18 +816,18 @@ var DropdownMenu = ({ children, open, onOpenChange }) => {
684
816
  document.removeEventListener("keydown", handleDownkey);
685
817
  };
686
818
  }, [currentOpen]);
687
- const value = (0, import_react4.useMemo)(
819
+ const value = (0, import_react5.useMemo)(
688
820
  () => ({ open: currentOpen, setOpen }),
689
821
  [currentOpen, setOpen]
690
822
  );
691
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(DropdownMenuContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "relative", ref: menuRef, children }) });
823
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(DropdownMenuContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: "relative", ref: menuRef, children }) });
692
824
  };
693
- var DropdownMenuTrigger = (0, import_react4.forwardRef)(({ className, children, onClick, ...props }, ref) => {
694
- const context = (0, import_react4.useContext)(DropdownMenuContext);
825
+ var DropdownMenuTrigger = (0, import_react5.forwardRef)(({ className, children, onClick, ...props }, ref) => {
826
+ const context = (0, import_react5.useContext)(DropdownMenuContext);
695
827
  if (!context)
696
828
  throw new Error("DropdownMenuTrigger must be used within a DropdownMenu");
697
829
  const { open, setOpen } = context;
698
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
830
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
699
831
  "button",
700
832
  {
701
833
  ref,
@@ -727,7 +859,7 @@ var ALIGN_CLASSES = {
727
859
  center: "left-1/2 -translate-x-1/2",
728
860
  end: "right-0"
729
861
  };
730
- var MenuLabel = (0, import_react4.forwardRef)(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
862
+ var MenuLabel = (0, import_react5.forwardRef)(({ className, inset, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
731
863
  "fieldset",
732
864
  {
733
865
  ref,
@@ -737,7 +869,7 @@ var MenuLabel = (0, import_react4.forwardRef)(({ className, inset, ...props }, r
737
869
  }
738
870
  ));
739
871
  MenuLabel.displayName = "MenuLabel";
740
- var MenuContent = (0, import_react4.forwardRef)(
872
+ var MenuContent = (0, import_react5.forwardRef)(
741
873
  ({
742
874
  className,
743
875
  align = "start",
@@ -746,9 +878,9 @@ var MenuContent = (0, import_react4.forwardRef)(
746
878
  children,
747
879
  ...props
748
880
  }, ref) => {
749
- const { open } = (0, import_react4.useContext)(DropdownMenuContext);
750
- const [isVisible, setIsVisible] = (0, import_react4.useState)(open);
751
- (0, import_react4.useEffect)(() => {
881
+ const { open } = (0, import_react5.useContext)(DropdownMenuContext);
882
+ const [isVisible, setIsVisible] = (0, import_react5.useState)(open);
883
+ (0, import_react5.useEffect)(() => {
752
884
  if (open) {
753
885
  setIsVisible(true);
754
886
  } else {
@@ -762,7 +894,7 @@ var MenuContent = (0, import_react4.forwardRef)(
762
894
  const horizontal = ALIGN_CLASSES[align];
763
895
  return `absolute ${vertical} ${horizontal}`;
764
896
  };
765
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
897
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
766
898
  "div",
767
899
  {
768
900
  ref,
@@ -786,7 +918,7 @@ var MenuContent = (0, import_react4.forwardRef)(
786
918
  }
787
919
  );
788
920
  MenuContent.displayName = "MenuContent";
789
- var MenuItem = (0, import_react4.forwardRef)(
921
+ var MenuItem = (0, import_react5.forwardRef)(
790
922
  ({
791
923
  className,
792
924
  inset,
@@ -807,7 +939,7 @@ var MenuItem = (0, import_react4.forwardRef)(
807
939
  }
808
940
  onClick?.(e);
809
941
  };
810
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
942
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
811
943
  "div",
812
944
  {
813
945
  ref,
@@ -837,7 +969,7 @@ var MenuItem = (0, import_react4.forwardRef)(
837
969
  }
838
970
  );
839
971
  MenuItem.displayName = "MenuItem";
840
- var MenuSeparator = (0, import_react4.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
972
+ var MenuSeparator = (0, import_react5.forwardRef)(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
841
973
  "div",
842
974
  {
843
975
  ref,
@@ -848,9 +980,9 @@ var MenuSeparator = (0, import_react4.forwardRef)(({ className, ...props }, ref)
848
980
  MenuSeparator.displayName = "MenuSeparator";
849
981
 
850
982
  // src/components/NavButton/NavButton.tsx
851
- var import_react5 = require("react");
852
- var import_jsx_runtime9 = require("react/jsx-runtime");
853
- var NavButton = (0, import_react5.forwardRef)(
983
+ var import_react6 = require("react");
984
+ var import_jsx_runtime10 = require("react/jsx-runtime");
985
+ var NavButton = (0, import_react6.forwardRef)(
854
986
  ({ icon, label, selected = false, className = "", disabled, ...props }, ref) => {
855
987
  const baseClasses = [
856
988
  "flex",
@@ -877,7 +1009,7 @@ var NavButton = (0, import_react5.forwardRef)(
877
1009
  ];
878
1010
  const stateClasses = selected ? ["bg-primary-50", "text-primary-950"] : [];
879
1011
  const allClasses = [...baseClasses, ...stateClasses].join(" ");
880
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1012
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
881
1013
  "button",
882
1014
  {
883
1015
  ref,
@@ -887,8 +1019,8 @@ var NavButton = (0, import_react5.forwardRef)(
887
1019
  "aria-pressed": selected,
888
1020
  ...props,
889
1021
  children: [
890
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "flex items-center justify-center w-5 h-5", children: icon }),
891
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "whitespace-nowrap", children: label })
1022
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex items-center justify-center w-5 h-5", children: icon }),
1023
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "whitespace-nowrap", children: label })
892
1024
  ]
893
1025
  }
894
1026
  );
@@ -897,9 +1029,9 @@ var NavButton = (0, import_react5.forwardRef)(
897
1029
  NavButton.displayName = "NavButton";
898
1030
 
899
1031
  // src/components/IconButton/IconButton.tsx
900
- var import_react6 = require("react");
901
- var import_jsx_runtime10 = require("react/jsx-runtime");
902
- var IconButton = (0, import_react6.forwardRef)(
1032
+ var import_react7 = require("react");
1033
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1034
+ var IconButton = (0, import_react7.forwardRef)(
903
1035
  ({ icon, size = "md", active = false, className = "", disabled, ...props }, ref) => {
904
1036
  const baseClasses = [
905
1037
  "inline-flex",
@@ -931,7 +1063,7 @@ var IconButton = (0, import_react6.forwardRef)(
931
1063
  ...activeClasses
932
1064
  ].join(" ");
933
1065
  const ariaLabel = props["aria-label"] ?? "Bot\xE3o de a\xE7\xE3o";
934
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1066
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
935
1067
  "button",
936
1068
  {
937
1069
  ref,
@@ -941,7 +1073,7 @@ var IconButton = (0, import_react6.forwardRef)(
941
1073
  "aria-pressed": active,
942
1074
  "aria-label": ariaLabel,
943
1075
  ...props,
944
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex items-center justify-center", children: icon })
1076
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "flex items-center justify-center", children: icon })
945
1077
  }
946
1078
  );
947
1079
  }
@@ -950,7 +1082,7 @@ IconButton.displayName = "IconButton";
950
1082
 
951
1083
  // src/components/Toast/Toast.tsx
952
1084
  var import_phosphor_react3 = require("phosphor-react");
953
- var import_jsx_runtime11 = require("react/jsx-runtime");
1085
+ var import_jsx_runtime12 = require("react/jsx-runtime");
954
1086
  var VARIANT_ACTION_CLASSES3 = {
955
1087
  solid: {
956
1088
  warning: "bg-warning text-warning-800 border-none focus-visible:outline-none",
@@ -990,7 +1122,7 @@ var Toast = ({
990
1122
  };
991
1123
  const IconAction = iconMap[action] || iconMap["success"];
992
1124
  const baseClasses = "max-w-[390px] w-full flex flex-row items-start justify-between shadow-lg rounded-lg border p-4 gap-6 group";
993
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1125
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
994
1126
  "div",
995
1127
  {
996
1128
  role: "alert",
@@ -999,20 +1131,20 @@ var Toast = ({
999
1131
  className: `${baseClasses} ${positionClasses[position]} ${variantClasses} ${className}`,
1000
1132
  ...props,
1001
1133
  children: [
1002
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-row items-start gap-3", children: [
1003
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconAction, {}) }),
1004
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex flex-col items-start justify-start", children: [
1005
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "font-semibold text-md", children: title }),
1006
- description && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "text-md text-text-900", children: description })
1134
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-row items-start gap-3", children: [
1135
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconAction, {}) }),
1136
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col items-start justify-start", children: [
1137
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "font-semibold text-md", children: title }),
1138
+ description && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-md text-text-900", children: description })
1007
1139
  ] })
1008
1140
  ] }),
1009
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1141
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1010
1142
  "button",
1011
1143
  {
1012
1144
  onClick: onClose,
1013
1145
  "aria-label": "Dismiss notification",
1014
1146
  className: "text-background-500 cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity",
1015
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_phosphor_react3.X, {})
1147
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_phosphor_react3.X, {})
1016
1148
  }
1017
1149
  )
1018
1150
  ]
@@ -1038,11 +1170,11 @@ var useToastStore = (0, import_zustand.create)((set) => ({
1038
1170
  }));
1039
1171
 
1040
1172
  // src/components/Toast/utils/Toaster.tsx
1041
- var import_jsx_runtime12 = require("react/jsx-runtime");
1173
+ var import_jsx_runtime13 = require("react/jsx-runtime");
1042
1174
  var Toaster = () => {
1043
1175
  const toasts = useToastStore((state) => state.toasts);
1044
1176
  const removeToast = useToastStore((state) => state.removeToast);
1045
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_jsx_runtime12.Fragment, { children: toasts.map((toast) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1177
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: toasts.map((toast) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1046
1178
  Toast,
1047
1179
  {
1048
1180
  title: toast.title,
@@ -1084,6 +1216,7 @@ var useToast = () => {
1084
1216
  TableHeader,
1085
1217
  TableRow,
1086
1218
  Text,
1219
+ TextArea,
1087
1220
  Toast,
1088
1221
  Toaster,
1089
1222
  useToast,