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.css +103 -0
- package/dist/index.d.mts +68 -2
- package/dist/index.d.ts +68 -2
- package/dist/index.js +217 -84
- package/dist/index.mjs +215 -79
- package/package.json +1 -1
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
|
|
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
|
|
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 =
|
|
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,
|
|
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,
|
|
319
|
-
notificationActive && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
468
|
+
iconLeft && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: `${baseClassesIcon} ${sizeClassesIcon}`, children: iconLeft }),
|
|
337
469
|
children,
|
|
338
|
-
iconRight && /* @__PURE__ */ (0,
|
|
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
|
|
477
|
+
var import_react3 = require("react");
|
|
346
478
|
var import_phosphor_react2 = require("phosphor-react");
|
|
347
|
-
var
|
|
348
|
-
var
|
|
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
|
|
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,
|
|
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,
|
|
555
|
+
const generatedId = (0, import_react3.useId)();
|
|
424
556
|
const inputId = id ?? `checkbox-${generatedId}`;
|
|
425
|
-
const [internalChecked, setInternalChecked] = (0,
|
|
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 =
|
|
567
|
+
const sizeClasses = SIZE_CLASSES4[size];
|
|
436
568
|
const checkVariant = checked || indeterminate ? "checked" : "unchecked";
|
|
437
|
-
const stylingClasses =
|
|
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,
|
|
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,
|
|
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,
|
|
464
|
-
/* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
483
|
-
label && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
530
|
-
var
|
|
531
|
-
var Table = (0,
|
|
532
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
711
|
+
var TableRow = (0, import_react4.forwardRef)(
|
|
580
712
|
({ state = "default", className, ...props }, ref) => {
|
|
581
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
628
|
-
var
|
|
629
|
-
var DropdownMenuContext = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
819
|
+
const value = (0, import_react5.useMemo)(
|
|
688
820
|
() => ({ open: currentOpen, setOpen }),
|
|
689
821
|
[currentOpen, setOpen]
|
|
690
822
|
);
|
|
691
|
-
return /* @__PURE__ */ (0,
|
|
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,
|
|
694
|
-
const context = (0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
750
|
-
const [isVisible, setIsVisible] = (0,
|
|
751
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
852
|
-
var
|
|
853
|
-
var NavButton = (0,
|
|
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,
|
|
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,
|
|
891
|
-
/* @__PURE__ */ (0,
|
|
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
|
|
901
|
-
var
|
|
902
|
-
var IconButton = (0,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
1003
|
-
/* @__PURE__ */ (0,
|
|
1004
|
-
/* @__PURE__ */ (0,
|
|
1005
|
-
/* @__PURE__ */ (0,
|
|
1006
|
-
description && /* @__PURE__ */ (0,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|