analytica-frontend-lib 1.0.46 → 1.0.48
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/Card/index.d.mts +24 -1
- package/dist/Card/index.d.ts +24 -1
- package/dist/Card/index.js +125 -5
- package/dist/Card/index.js.map +1 -1
- package/dist/Card/index.mjs +128 -6
- package/dist/Card/index.mjs.map +1 -1
- package/dist/Menu/index.js +3 -0
- package/dist/Menu/index.js.map +1 -1
- package/dist/Menu/index.mjs +3 -0
- package/dist/Menu/index.mjs.map +1 -1
- package/dist/Modal/index.d.mts +66 -0
- package/dist/Modal/index.d.ts +66 -0
- package/dist/Modal/index.js +113 -0
- package/dist/Modal/index.js.map +1 -0
- package/dist/Modal/index.mjs +92 -0
- package/dist/Modal/index.mjs.map +1 -0
- package/dist/Select/index.js +4 -4
- package/dist/Select/index.js.map +1 -1
- package/dist/Select/index.mjs +4 -4
- package/dist/Select/index.mjs.map +1 -1
- package/dist/TextArea/index.js +1 -9
- package/dist/TextArea/index.js.map +1 -1
- package/dist/TextArea/index.mjs +1 -9
- package/dist/TextArea/index.mjs.map +1 -1
- package/dist/index.css +27 -6
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +3 -66
- package/dist/index.d.ts +3 -66
- package/dist/index.js +148 -46
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +154 -47
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +27 -6
- package/dist/styles.css.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -20,74 +20,11 @@ export { default as ProgressBar } from './ProgressBar/index.mjs';
|
|
|
20
20
|
export { default as ProgressCircle } from './ProgressCircle/index.mjs';
|
|
21
21
|
export { default as Stepper } from './Stepper/index.mjs';
|
|
22
22
|
export { default as Calendar } from './Calendar/index.mjs';
|
|
23
|
-
|
|
24
|
-
import { ReactNode } from 'react';
|
|
23
|
+
export { default as Modal } from './Modal/index.mjs';
|
|
25
24
|
export { default as DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, MenuContent, MenuLabel, ProfileMenuFooter, ProfileMenuHeader, ProfileMenuSection, ProfileMenuTrigger } from './DropdownMenu/index.mjs';
|
|
26
25
|
export { default as Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './Select/index.mjs';
|
|
27
26
|
export { default as Menu, MenuItem, MenuSeparator } from './Menu/index.mjs';
|
|
28
27
|
export { CardActivesResults, CardPerformance, CardProgress, CardQuestions, CardResults, CardStatus, CardTopic } from './Card/index.mjs';
|
|
28
|
+
import 'react/jsx-runtime';
|
|
29
|
+
import 'react';
|
|
29
30
|
import 'zustand';
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Modal component props interface
|
|
33
|
-
*/
|
|
34
|
-
type ModalProps = {
|
|
35
|
-
/** Whether the modal is open */
|
|
36
|
-
isOpen: boolean;
|
|
37
|
-
/** Function to close the modal */
|
|
38
|
-
onClose: () => void;
|
|
39
|
-
/** Modal title */
|
|
40
|
-
title: string;
|
|
41
|
-
/** Modal description/content */
|
|
42
|
-
children: ReactNode;
|
|
43
|
-
/** Size of the modal */
|
|
44
|
-
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
45
|
-
/** Additional CSS classes for the modal content */
|
|
46
|
-
className?: string;
|
|
47
|
-
/** Whether clicking the backdrop should close the modal */
|
|
48
|
-
closeOnBackdropClick?: boolean;
|
|
49
|
-
/** Whether pressing Escape should close the modal */
|
|
50
|
-
closeOnEscape?: boolean;
|
|
51
|
-
/** Footer content (typically buttons) */
|
|
52
|
-
footer?: ReactNode;
|
|
53
|
-
/** Hide the close button */
|
|
54
|
-
hideCloseButton?: boolean;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Modal component for Analytica Ensino platforms
|
|
58
|
-
*
|
|
59
|
-
* A flexible modal component with multiple size variants and customizable behavior.
|
|
60
|
-
*
|
|
61
|
-
* @param isOpen - Whether the modal is currently open
|
|
62
|
-
* @param onClose - Callback function called when the modal should be closed
|
|
63
|
-
* @param title - The title displayed at the top of the modal
|
|
64
|
-
* @param children - The main content of the modal
|
|
65
|
-
* @param size - The size variant (xs, sm, md, lg, xl)
|
|
66
|
-
* @param className - Additional CSS classes for the modal content
|
|
67
|
-
* @param closeOnBackdropClick - Whether clicking the backdrop closes the modal (default: true)
|
|
68
|
-
* @param closeOnEscape - Whether pressing Escape closes the modal (default: true)
|
|
69
|
-
* @param footer - Footer content, typically action buttons
|
|
70
|
-
* @param hideCloseButton - Whether to hide the X close button (default: false)
|
|
71
|
-
* @returns A modal overlay with content
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```tsx
|
|
75
|
-
* <Modal
|
|
76
|
-
* isOpen={isModalOpen}
|
|
77
|
-
* onClose={() => setIsModalOpen(false)}
|
|
78
|
-
* title="Invite your team"
|
|
79
|
-
* size="md"
|
|
80
|
-
* footer={
|
|
81
|
-
* <div className="flex gap-3">
|
|
82
|
-
* <Button variant="outline" onClick={() => setIsModalOpen(false)}>Cancel</Button>
|
|
83
|
-
* <Button variant="solid" onClick={handleExplore}>Explore</Button>
|
|
84
|
-
* </div>
|
|
85
|
-
* }
|
|
86
|
-
* >
|
|
87
|
-
* Elevate user interactions with our versatile modals.
|
|
88
|
-
* </Modal>
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
declare const Modal: ({ isOpen, onClose, title, children, size, className, closeOnBackdropClick, closeOnEscape, footer, hideCloseButton, }: ModalProps) => react_jsx_runtime.JSX.Element | null;
|
|
92
|
-
|
|
93
|
-
export { Modal };
|
package/dist/index.d.ts
CHANGED
|
@@ -20,74 +20,11 @@ export { default as ProgressBar } from './ProgressBar/index.js';
|
|
|
20
20
|
export { default as ProgressCircle } from './ProgressCircle/index.js';
|
|
21
21
|
export { default as Stepper } from './Stepper/index.js';
|
|
22
22
|
export { default as Calendar } from './Calendar/index.js';
|
|
23
|
-
|
|
24
|
-
import { ReactNode } from 'react';
|
|
23
|
+
export { default as Modal } from './Modal/index.js';
|
|
25
24
|
export { default as DropdownMenu, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, MenuContent, MenuLabel, ProfileMenuFooter, ProfileMenuHeader, ProfileMenuSection, ProfileMenuTrigger } from './DropdownMenu/index.js';
|
|
26
25
|
export { default as Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './Select/index.js';
|
|
27
26
|
export { default as Menu, MenuItem, MenuSeparator } from './Menu/index.js';
|
|
28
27
|
export { CardActivesResults, CardPerformance, CardProgress, CardQuestions, CardResults, CardStatus, CardTopic } from './Card/index.js';
|
|
28
|
+
import 'react/jsx-runtime';
|
|
29
|
+
import 'react';
|
|
29
30
|
import 'zustand';
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Modal component props interface
|
|
33
|
-
*/
|
|
34
|
-
type ModalProps = {
|
|
35
|
-
/** Whether the modal is open */
|
|
36
|
-
isOpen: boolean;
|
|
37
|
-
/** Function to close the modal */
|
|
38
|
-
onClose: () => void;
|
|
39
|
-
/** Modal title */
|
|
40
|
-
title: string;
|
|
41
|
-
/** Modal description/content */
|
|
42
|
-
children: ReactNode;
|
|
43
|
-
/** Size of the modal */
|
|
44
|
-
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
45
|
-
/** Additional CSS classes for the modal content */
|
|
46
|
-
className?: string;
|
|
47
|
-
/** Whether clicking the backdrop should close the modal */
|
|
48
|
-
closeOnBackdropClick?: boolean;
|
|
49
|
-
/** Whether pressing Escape should close the modal */
|
|
50
|
-
closeOnEscape?: boolean;
|
|
51
|
-
/** Footer content (typically buttons) */
|
|
52
|
-
footer?: ReactNode;
|
|
53
|
-
/** Hide the close button */
|
|
54
|
-
hideCloseButton?: boolean;
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Modal component for Analytica Ensino platforms
|
|
58
|
-
*
|
|
59
|
-
* A flexible modal component with multiple size variants and customizable behavior.
|
|
60
|
-
*
|
|
61
|
-
* @param isOpen - Whether the modal is currently open
|
|
62
|
-
* @param onClose - Callback function called when the modal should be closed
|
|
63
|
-
* @param title - The title displayed at the top of the modal
|
|
64
|
-
* @param children - The main content of the modal
|
|
65
|
-
* @param size - The size variant (xs, sm, md, lg, xl)
|
|
66
|
-
* @param className - Additional CSS classes for the modal content
|
|
67
|
-
* @param closeOnBackdropClick - Whether clicking the backdrop closes the modal (default: true)
|
|
68
|
-
* @param closeOnEscape - Whether pressing Escape closes the modal (default: true)
|
|
69
|
-
* @param footer - Footer content, typically action buttons
|
|
70
|
-
* @param hideCloseButton - Whether to hide the X close button (default: false)
|
|
71
|
-
* @returns A modal overlay with content
|
|
72
|
-
*
|
|
73
|
-
* @example
|
|
74
|
-
* ```tsx
|
|
75
|
-
* <Modal
|
|
76
|
-
* isOpen={isModalOpen}
|
|
77
|
-
* onClose={() => setIsModalOpen(false)}
|
|
78
|
-
* title="Invite your team"
|
|
79
|
-
* size="md"
|
|
80
|
-
* footer={
|
|
81
|
-
* <div className="flex gap-3">
|
|
82
|
-
* <Button variant="outline" onClick={() => setIsModalOpen(false)}>Cancel</Button>
|
|
83
|
-
* <Button variant="solid" onClick={handleExplore}>Explore</Button>
|
|
84
|
-
* </div>
|
|
85
|
-
* }
|
|
86
|
-
* >
|
|
87
|
-
* Elevate user interactions with our versatile modals.
|
|
88
|
-
* </Modal>
|
|
89
|
-
* ```
|
|
90
|
-
*/
|
|
91
|
-
declare const Modal: ({ isOpen, onClose, title, children, size, className, closeOnBackdropClick, closeOnEscape, footer, hideCloseButton, }: ModalProps) => react_jsx_runtime.JSX.Element | null;
|
|
92
|
-
|
|
93
|
-
export { Modal };
|
package/dist/index.js
CHANGED
|
@@ -1035,29 +1035,21 @@ var import_react7 = require("react");
|
|
|
1035
1035
|
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1036
1036
|
var SIZE_CLASSES5 = {
|
|
1037
1037
|
small: {
|
|
1038
|
-
container: "w-72",
|
|
1039
|
-
// 288px width
|
|
1040
1038
|
textarea: "h-24 text-sm",
|
|
1041
1039
|
// 96px height, 14px font
|
|
1042
1040
|
textSize: "sm"
|
|
1043
1041
|
},
|
|
1044
1042
|
medium: {
|
|
1045
|
-
container: "w-72",
|
|
1046
|
-
// 288px width
|
|
1047
1043
|
textarea: "h-24 text-base",
|
|
1048
1044
|
// 96px height, 16px font
|
|
1049
1045
|
textSize: "md"
|
|
1050
1046
|
},
|
|
1051
1047
|
large: {
|
|
1052
|
-
container: "w-72",
|
|
1053
|
-
// 288px width
|
|
1054
1048
|
textarea: "h-24 text-lg",
|
|
1055
1049
|
// 96px height, 18px font
|
|
1056
1050
|
textSize: "lg"
|
|
1057
1051
|
},
|
|
1058
1052
|
extraLarge: {
|
|
1059
|
-
container: "w-72",
|
|
1060
|
-
// 288px width
|
|
1061
1053
|
textarea: "h-24 text-xl",
|
|
1062
1054
|
// 96px height, 20px font
|
|
1063
1055
|
textSize: "xl"
|
|
@@ -1127,7 +1119,7 @@ var TextArea = (0, import_react7.forwardRef)(
|
|
|
1127
1119
|
const sizeClasses = SIZE_CLASSES5[size];
|
|
1128
1120
|
const stateClasses = STATE_CLASSES3[currentState];
|
|
1129
1121
|
const textareaClasses = `${BASE_TEXTAREA_CLASSES} ${sizeClasses.textarea} ${stateClasses.base} ${stateClasses.hover} ${stateClasses.focus} ${className}`;
|
|
1130
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: `flex flex-col
|
|
1122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: `flex flex-col`, children: [
|
|
1131
1123
|
label && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1132
1124
|
Text_default,
|
|
1133
1125
|
{
|
|
@@ -2950,40 +2942,33 @@ var Modal = ({
|
|
|
2950
2942
|
if (!isOpen) return null;
|
|
2951
2943
|
const sizeClasses = SIZE_CLASSES10[size];
|
|
2952
2944
|
const baseClasses = "bg-background rounded-3xl shadow-hard-shadow-2 border border-border-100 w-full mx-4";
|
|
2953
|
-
const
|
|
2945
|
+
const dialogResetClasses = "p-0 m-0 border-none outline-none max-h-none static";
|
|
2946
|
+
const modalClasses = `${baseClasses} ${sizeClasses} ${dialogResetClasses} ${className}`;
|
|
2954
2947
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2955
2948
|
"div",
|
|
2956
2949
|
{
|
|
2957
2950
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs",
|
|
2958
2951
|
onClick: handleBackdropClick,
|
|
2959
2952
|
onKeyDown: handleBackdropKeyDown,
|
|
2960
|
-
role: "
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
{
|
|
2965
|
-
className:
|
|
2966
|
-
|
|
2967
|
-
|
|
2968
|
-
|
|
2969
|
-
|
|
2970
|
-
|
|
2971
|
-
|
|
2972
|
-
|
|
2973
|
-
|
|
2974
|
-
|
|
2975
|
-
|
|
2976
|
-
|
|
2977
|
-
|
|
2978
|
-
|
|
2979
|
-
}
|
|
2980
|
-
)
|
|
2981
|
-
] }),
|
|
2982
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-6 pb-6", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
|
|
2983
|
-
footer && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
|
|
2984
|
-
]
|
|
2985
|
-
}
|
|
2986
|
-
)
|
|
2953
|
+
role: "button",
|
|
2954
|
+
tabIndex: closeOnBackdropClick ? 0 : -1,
|
|
2955
|
+
"aria-label": "Fechar modal clicando no fundo",
|
|
2956
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("dialog", { className: modalClasses, "aria-labelledby": "modal-title", open: true, children: [
|
|
2957
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center justify-between px-6 py-6", children: [
|
|
2958
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
|
|
2959
|
+
!hideCloseButton && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2960
|
+
"button",
|
|
2961
|
+
{
|
|
2962
|
+
onClick: onClose,
|
|
2963
|
+
className: "p-1 text-text-500 hover:text-text-700 hover:bg-background-50 rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-indicator-info focus:ring-offset-2",
|
|
2964
|
+
"aria-label": "Fechar modal",
|
|
2965
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_phosphor_react8.X, { size: 18 })
|
|
2966
|
+
}
|
|
2967
|
+
)
|
|
2968
|
+
] }),
|
|
2969
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-6 pb-6", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
|
|
2970
|
+
footer && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
|
|
2971
|
+
] })
|
|
2987
2972
|
}
|
|
2988
2973
|
);
|
|
2989
2974
|
};
|
|
@@ -3368,9 +3353,9 @@ var import_react12 = require("react");
|
|
|
3368
3353
|
var import_phosphor_react10 = require("phosphor-react");
|
|
3369
3354
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
3370
3355
|
var VARIANT_CLASSES4 = {
|
|
3371
|
-
outlined: "border
|
|
3372
|
-
underlined: "border-b
|
|
3373
|
-
rounded: "border
|
|
3356
|
+
outlined: "border rounded-sm focus:border-primary-950",
|
|
3357
|
+
underlined: "border-b focus:border-primary-950",
|
|
3358
|
+
rounded: "border rounded-4xl focus:border-primary-950"
|
|
3374
3359
|
};
|
|
3375
3360
|
var SIZE_CLASSES11 = {
|
|
3376
3361
|
small: "text-sm",
|
|
@@ -3544,7 +3529,7 @@ var SelectTrigger = (0, import_react12.forwardRef)(
|
|
|
3544
3529
|
ref,
|
|
3545
3530
|
className: `
|
|
3546
3531
|
flex h-9 min-w-[220px] w-full items-center justify-between border-border-300 px-3 py-2
|
|
3547
|
-
${invalid && "border-indicator-error text-text-600
|
|
3532
|
+
${invalid && `${variant == "underlined" ? "border-b-2" : "border-2"} border-indicator-error text-text-600`}
|
|
3548
3533
|
${disabled ? "cursor-not-allowed text-text-400 pointer-events-none opacity-50" : "cursor-pointer hover:bg-background-50 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground"}
|
|
3549
3534
|
${!invalid && !disabled ? "text-text-700" : ""}
|
|
3550
3535
|
${variantClasses}
|
|
@@ -3732,6 +3717,9 @@ var MenuItem = (0, import_react13.forwardRef)(
|
|
|
3732
3717
|
if (["Enter", " "].includes(e.key)) handleClick(e);
|
|
3733
3718
|
},
|
|
3734
3719
|
tabIndex: disabled ? -1 : 0,
|
|
3720
|
+
onMouseDown: (e) => {
|
|
3721
|
+
e.preventDefault();
|
|
3722
|
+
},
|
|
3735
3723
|
...props
|
|
3736
3724
|
};
|
|
3737
3725
|
const variants = {
|
|
@@ -3940,7 +3928,14 @@ var CardQuestions = (0, import_react14.forwardRef)(
|
|
|
3940
3928
|
] })
|
|
3941
3929
|
] })
|
|
3942
3930
|
] }),
|
|
3943
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3931
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3932
|
+
Button_default,
|
|
3933
|
+
{
|
|
3934
|
+
size: "extra-small",
|
|
3935
|
+
onClick: () => onClickButton?.(valueButton),
|
|
3936
|
+
children: buttonLabel
|
|
3937
|
+
}
|
|
3938
|
+
) })
|
|
3944
3939
|
]
|
|
3945
3940
|
}
|
|
3946
3941
|
);
|
|
@@ -4068,7 +4063,7 @@ var CardPerformance = (0, import_react14.forwardRef)(
|
|
|
4068
4063
|
"div",
|
|
4069
4064
|
{
|
|
4070
4065
|
ref,
|
|
4071
|
-
className: `w-full h-20.5 flex flex-row justify-between p-4 gap-2 bg-background border border-border-50 ${className}`,
|
|
4066
|
+
className: `w-full min-h-20.5 flex flex-row justify-between p-4 gap-2 bg-background border border-border-50 ${className}`,
|
|
4072
4067
|
...props,
|
|
4073
4068
|
children: [
|
|
4074
4069
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
|
|
@@ -4089,7 +4084,7 @@ var CardPerformance = (0, import_react14.forwardRef)(
|
|
|
4089
4084
|
!hasProgress && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4090
4085
|
import_phosphor_react12.CaretRight,
|
|
4091
4086
|
{
|
|
4092
|
-
className: "size-4.5",
|
|
4087
|
+
className: "size-4.5 text-text-800",
|
|
4093
4088
|
"data-testid": "caret-icon",
|
|
4094
4089
|
onClick: () => onClickButton?.(valueButton)
|
|
4095
4090
|
}
|
|
@@ -4173,7 +4168,7 @@ var CardResults = (0, import_react14.forwardRef)(
|
|
|
4173
4168
|
]
|
|
4174
4169
|
}
|
|
4175
4170
|
),
|
|
4176
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6" })
|
|
4171
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
|
|
4177
4172
|
]
|
|
4178
4173
|
}
|
|
4179
4174
|
);
|
|
@@ -4215,7 +4210,114 @@ var CardStatus = (0, import_react14.forwardRef)(
|
|
|
4215
4210
|
]
|
|
4216
4211
|
}
|
|
4217
4212
|
),
|
|
4218
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6" })
|
|
4213
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
|
|
4214
|
+
]
|
|
4215
|
+
}
|
|
4216
|
+
);
|
|
4217
|
+
}
|
|
4218
|
+
);
|
|
4219
|
+
var CardSettings = (0, import_react14.forwardRef)(
|
|
4220
|
+
({ header, className, icon, ...props }, ref) => {
|
|
4221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4222
|
+
"div",
|
|
4223
|
+
{
|
|
4224
|
+
ref,
|
|
4225
|
+
className: `w-full p-2 flex flex-row items-center gap-2 text-text-700 bg-background rounded-xl ${className}`,
|
|
4226
|
+
...props,
|
|
4227
|
+
children: [
|
|
4228
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
|
|
4229
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "w-full text-md", children: header }),
|
|
4230
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { size: 24 })
|
|
4231
|
+
]
|
|
4232
|
+
}
|
|
4233
|
+
);
|
|
4234
|
+
}
|
|
4235
|
+
);
|
|
4236
|
+
var CardSupport = (0, import_react14.forwardRef)(
|
|
4237
|
+
({ header, className, direction = "col", children, ...props }, ref) => {
|
|
4238
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4239
|
+
"div",
|
|
4240
|
+
{
|
|
4241
|
+
ref,
|
|
4242
|
+
className: `w-full p-4 flex flex-row items-center gap-2 text-text-700 bg-background rounded-xl ${className}`,
|
|
4243
|
+
...props,
|
|
4244
|
+
children: [
|
|
4245
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4246
|
+
"div",
|
|
4247
|
+
{
|
|
4248
|
+
className: `
|
|
4249
|
+
w-full flex ${direction == "col" ? "flex-col" : "flex-row items-center"} gap-2
|
|
4250
|
+
`,
|
|
4251
|
+
children: [
|
|
4252
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "w-full", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs text-text-950 font-bold", children: header }) }),
|
|
4253
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "flex flex-row gap-1", children })
|
|
4254
|
+
]
|
|
4255
|
+
}
|
|
4256
|
+
),
|
|
4257
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.CaretRight, { className: "text-text-800", size: 24 })
|
|
4258
|
+
]
|
|
4259
|
+
}
|
|
4260
|
+
);
|
|
4261
|
+
}
|
|
4262
|
+
);
|
|
4263
|
+
var CardForum = (0, import_react14.forwardRef)(
|
|
4264
|
+
({
|
|
4265
|
+
title,
|
|
4266
|
+
content,
|
|
4267
|
+
comments,
|
|
4268
|
+
onClickComments,
|
|
4269
|
+
valueComments,
|
|
4270
|
+
onClickProfile,
|
|
4271
|
+
valueProfile,
|
|
4272
|
+
className = "",
|
|
4273
|
+
date,
|
|
4274
|
+
hour,
|
|
4275
|
+
...props
|
|
4276
|
+
}, ref) => {
|
|
4277
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4278
|
+
"div",
|
|
4279
|
+
{
|
|
4280
|
+
ref,
|
|
4281
|
+
className: `w-auto h-auto p-4 rounded-lg flex flex-row gap-3 border border-border-100 bg-background ${className}`,
|
|
4282
|
+
...props,
|
|
4283
|
+
children: [
|
|
4284
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
4285
|
+
"button",
|
|
4286
|
+
{
|
|
4287
|
+
type: "button",
|
|
4288
|
+
"aria-label": "Ver perfil",
|
|
4289
|
+
onClick: () => onClickProfile?.(valueProfile),
|
|
4290
|
+
className: "min-w-8 h-8 rounded-full bg-background-950"
|
|
4291
|
+
}
|
|
4292
|
+
),
|
|
4293
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col gap-2 flex-1", children: [
|
|
4294
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
|
|
4295
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
|
|
4296
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("p", { className: "text-xs text-text-600", children: [
|
|
4297
|
+
"\u2022 ",
|
|
4298
|
+
date,
|
|
4299
|
+
" \u2022 ",
|
|
4300
|
+
hour
|
|
4301
|
+
] })
|
|
4302
|
+
] }),
|
|
4303
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-950 text-sm line-clamp-2", children: content }),
|
|
4304
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
4305
|
+
"button",
|
|
4306
|
+
{
|
|
4307
|
+
type: "button",
|
|
4308
|
+
"aria-label": "Ver coment\xE1rios",
|
|
4309
|
+
onClick: () => onClickComments?.(valueComments),
|
|
4310
|
+
className: "text-text-600 flex flex-row gap-2 items-center",
|
|
4311
|
+
children: [
|
|
4312
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.ChatCircleText, { "aria-hidden": "true", size: 16 }),
|
|
4313
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("p", { className: "text-xs", children: [
|
|
4314
|
+
comments,
|
|
4315
|
+
" respostas"
|
|
4316
|
+
] })
|
|
4317
|
+
]
|
|
4318
|
+
}
|
|
4319
|
+
)
|
|
4320
|
+
] })
|
|
4219
4321
|
]
|
|
4220
4322
|
}
|
|
4221
4323
|
);
|