analytica-frontend-lib 1.0.86 → 1.0.87
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/Accordation/index.js +0 -1
- package/dist/Accordation/index.mjs +0 -1
- package/dist/Alert/index.js +0 -1
- package/dist/Alert/index.mjs +0 -1
- package/dist/AlertDialog/index.js +0 -1
- package/dist/AlertDialog/index.mjs +0 -1
- package/dist/Alternative/index.js +0 -1
- package/dist/Alternative/index.mjs +0 -1
- package/dist/Auth/AuthProvider/index.js +0 -1
- package/dist/Auth/AuthProvider/index.mjs +0 -1
- package/dist/Auth/ProtectedRoute/index.js +0 -1
- package/dist/Auth/ProtectedRoute/index.mjs +0 -1
- package/dist/Auth/PublicRoute/index.js +0 -1
- package/dist/Auth/PublicRoute/index.mjs +0 -1
- package/dist/Auth/getRootDomain/index.js +0 -1
- package/dist/Auth/getRootDomain/index.mjs +0 -1
- package/dist/Auth/index.js +0 -1
- package/dist/Auth/index.mjs +0 -1
- package/dist/Auth/useApiConfig/index.js +0 -1
- package/dist/Auth/useApiConfig/index.mjs +0 -1
- package/dist/Auth/useAuth/index.js +0 -1
- package/dist/Auth/useAuth/index.mjs +0 -1
- package/dist/Auth/useAuthGuard/index.js +0 -1
- package/dist/Auth/useAuthGuard/index.mjs +0 -1
- package/dist/Auth/useRouteAuth/index.js +0 -1
- package/dist/Auth/useRouteAuth/index.mjs +0 -1
- package/dist/Auth/useUrlAuthentication/index.js +0 -1
- package/dist/Auth/useUrlAuthentication/index.mjs +0 -1
- package/dist/Auth/withAuth/index.js +0 -1
- package/dist/Auth/withAuth/index.mjs +0 -1
- package/dist/Auth/zustandAuthAdapter/index.js +0 -1
- package/dist/Auth/zustandAuthAdapter/index.mjs +0 -1
- package/dist/Badge/index.js +0 -1
- package/dist/Badge/index.mjs +0 -1
- package/dist/Button/index.js +0 -1
- package/dist/Button/index.mjs +0 -1
- package/dist/Calendar/index.js +0 -1
- package/dist/Calendar/index.mjs +0 -1
- package/dist/Card/index.js +0 -1
- package/dist/Card/index.mjs +0 -1
- package/dist/CheckBox/index.js +0 -1
- package/dist/CheckBox/index.mjs +0 -1
- package/dist/Chips/index.js +0 -1
- package/dist/Chips/index.mjs +0 -1
- package/dist/Divider/index.js +0 -1
- package/dist/Divider/index.mjs +0 -1
- package/dist/DropdownMenu/index.js +0 -1
- package/dist/DropdownMenu/index.mjs +0 -1
- package/dist/IconButton/index.js +0 -1
- package/dist/IconButton/index.mjs +0 -1
- package/dist/IconRoundedButton/index.js +0 -1
- package/dist/IconRoundedButton/index.mjs +0 -1
- package/dist/Input/index.js +0 -1
- package/dist/Input/index.mjs +0 -1
- package/dist/Menu/index.js +0 -1
- package/dist/Menu/index.mjs +0 -1
- package/dist/Modal/index.js +0 -1
- package/dist/Modal/index.mjs +0 -1
- package/dist/MultipleChoice/index.js +660 -0
- package/dist/MultipleChoice/index.mjs +647 -0
- package/dist/NavButton/index.js +0 -1
- package/dist/NavButton/index.mjs +0 -1
- package/dist/NotFound/index.js +0 -1
- package/dist/NotFound/index.mjs +0 -1
- package/dist/ProgressBar/index.js +0 -1
- package/dist/ProgressBar/index.mjs +0 -1
- package/dist/ProgressCircle/index.js +0 -1
- package/dist/ProgressCircle/index.mjs +0 -1
- package/dist/Quiz/index.js +955 -296
- package/dist/Quiz/index.mjs +972 -295
- package/dist/Quiz/useQuizStore/index.js +79 -35
- package/dist/Quiz/useQuizStore/index.mjs +79 -35
- package/dist/Radio/index.js +0 -1
- package/dist/Radio/index.mjs +0 -1
- package/dist/Select/index.js +0 -1
- package/dist/Select/index.mjs +0 -1
- package/dist/SelectionButton/index.js +0 -1
- package/dist/SelectionButton/index.mjs +0 -1
- package/dist/Skeleton/index.js +0 -1
- package/dist/Skeleton/index.mjs +0 -1
- package/dist/Stepper/index.js +0 -1
- package/dist/Stepper/index.mjs +0 -1
- package/dist/Table/index.js +0 -1
- package/dist/Table/index.mjs +0 -1
- package/dist/Text/index.js +0 -1
- package/dist/Text/index.mjs +0 -1
- package/dist/TextArea/index.js +0 -1
- package/dist/TextArea/index.mjs +0 -1
- package/dist/Toast/ToastStore/index.js +0 -1
- package/dist/Toast/ToastStore/index.mjs +0 -1
- package/dist/Toast/Toaster/index.js +0 -1
- package/dist/Toast/Toaster/index.mjs +0 -1
- package/dist/Toast/index.js +0 -1
- package/dist/Toast/index.mjs +0 -1
- package/dist/index.css +42 -1
- package/dist/index.js +1397 -935
- package/dist/index.mjs +1338 -866
- package/dist/styles.css +42 -1
- package/package.json +4 -2
- package/dist/Accordation/index.d.mts +0 -12
- package/dist/Accordation/index.d.ts +0 -12
- package/dist/Accordation/index.js.map +0 -1
- package/dist/Accordation/index.mjs.map +0 -1
- package/dist/Alert/index.d.mts +0 -13
- package/dist/Alert/index.d.ts +0 -13
- package/dist/Alert/index.js.map +0 -1
- package/dist/Alert/index.mjs.map +0 -1
- package/dist/AlertDialog/index.d.mts +0 -36
- package/dist/AlertDialog/index.d.ts +0 -36
- package/dist/AlertDialog/index.js.map +0 -1
- package/dist/AlertDialog/index.mjs.map +0 -1
- package/dist/Alternative/index.d.mts +0 -81
- package/dist/Alternative/index.d.ts +0 -81
- package/dist/Alternative/index.js.map +0 -1
- package/dist/Alternative/index.mjs.map +0 -1
- package/dist/Auth/AuthProvider/index.d.mts +0 -3
- package/dist/Auth/AuthProvider/index.d.ts +0 -3
- package/dist/Auth/AuthProvider/index.js.map +0 -1
- package/dist/Auth/AuthProvider/index.mjs.map +0 -1
- package/dist/Auth/ProtectedRoute/index.d.mts +0 -3
- package/dist/Auth/ProtectedRoute/index.d.ts +0 -3
- package/dist/Auth/ProtectedRoute/index.js.map +0 -1
- package/dist/Auth/ProtectedRoute/index.mjs.map +0 -1
- package/dist/Auth/PublicRoute/index.d.mts +0 -3
- package/dist/Auth/PublicRoute/index.d.ts +0 -3
- package/dist/Auth/PublicRoute/index.js.map +0 -1
- package/dist/Auth/PublicRoute/index.mjs.map +0 -1
- package/dist/Auth/getRootDomain/index.d.mts +0 -3
- package/dist/Auth/getRootDomain/index.d.ts +0 -3
- package/dist/Auth/getRootDomain/index.js.map +0 -1
- package/dist/Auth/getRootDomain/index.mjs.map +0 -1
- package/dist/Auth/index.d.mts +0 -312
- package/dist/Auth/index.d.ts +0 -312
- package/dist/Auth/index.js.map +0 -1
- package/dist/Auth/index.mjs.map +0 -1
- package/dist/Auth/useApiConfig/index.d.mts +0 -43
- package/dist/Auth/useApiConfig/index.d.ts +0 -43
- package/dist/Auth/useApiConfig/index.js.map +0 -1
- package/dist/Auth/useApiConfig/index.mjs.map +0 -1
- package/dist/Auth/useAuth/index.d.mts +0 -3
- package/dist/Auth/useAuth/index.d.ts +0 -3
- package/dist/Auth/useAuth/index.js.map +0 -1
- package/dist/Auth/useAuth/index.mjs.map +0 -1
- package/dist/Auth/useAuthGuard/index.d.mts +0 -3
- package/dist/Auth/useAuthGuard/index.d.ts +0 -3
- package/dist/Auth/useAuthGuard/index.js.map +0 -1
- package/dist/Auth/useAuthGuard/index.mjs.map +0 -1
- package/dist/Auth/useRouteAuth/index.d.mts +0 -3
- package/dist/Auth/useRouteAuth/index.d.ts +0 -3
- package/dist/Auth/useRouteAuth/index.js.map +0 -1
- package/dist/Auth/useRouteAuth/index.mjs.map +0 -1
- package/dist/Auth/useUrlAuthentication/index.d.mts +0 -58
- package/dist/Auth/useUrlAuthentication/index.d.ts +0 -58
- package/dist/Auth/useUrlAuthentication/index.js.map +0 -1
- package/dist/Auth/useUrlAuthentication/index.mjs.map +0 -1
- package/dist/Auth/withAuth/index.d.mts +0 -3
- package/dist/Auth/withAuth/index.d.ts +0 -3
- package/dist/Auth/withAuth/index.js.map +0 -1
- package/dist/Auth/withAuth/index.mjs.map +0 -1
- package/dist/Auth/zustandAuthAdapter/index.d.mts +0 -75
- package/dist/Auth/zustandAuthAdapter/index.d.ts +0 -75
- package/dist/Auth/zustandAuthAdapter/index.js.map +0 -1
- package/dist/Auth/zustandAuthAdapter/index.mjs.map +0 -1
- package/dist/Badge/index.d.mts +0 -46
- package/dist/Badge/index.d.ts +0 -46
- package/dist/Badge/index.js.map +0 -1
- package/dist/Badge/index.mjs.map +0 -1
- package/dist/Button/index.d.mts +0 -45
- package/dist/Button/index.d.ts +0 -45
- package/dist/Button/index.js.map +0 -1
- package/dist/Button/index.mjs.map +0 -1
- package/dist/Calendar/index.d.mts +0 -60
- package/dist/Calendar/index.d.ts +0 -60
- package/dist/Calendar/index.js.map +0 -1
- package/dist/Calendar/index.mjs.map +0 -1
- package/dist/Card/index.d.mts +0 -150
- package/dist/Card/index.d.ts +0 -150
- package/dist/Card/index.js.map +0 -1
- package/dist/Card/index.mjs.map +0 -1
- package/dist/CheckBox/index.d.mts +0 -74
- package/dist/CheckBox/index.d.ts +0 -74
- package/dist/CheckBox/index.js.map +0 -1
- package/dist/CheckBox/index.mjs.map +0 -1
- package/dist/Chips/index.d.mts +0 -41
- package/dist/Chips/index.d.ts +0 -41
- package/dist/Chips/index.js.map +0 -1
- package/dist/Chips/index.mjs.map +0 -1
- package/dist/Divider/index.d.mts +0 -32
- package/dist/Divider/index.d.ts +0 -32
- package/dist/Divider/index.js.map +0 -1
- package/dist/Divider/index.mjs.map +0 -1
- package/dist/DropdownMenu/index.d.mts +0 -68
- package/dist/DropdownMenu/index.d.ts +0 -68
- package/dist/DropdownMenu/index.js.map +0 -1
- package/dist/DropdownMenu/index.mjs.map +0 -1
- package/dist/IconButton/index.d.mts +0 -76
- package/dist/IconButton/index.d.ts +0 -76
- package/dist/IconButton/index.js.map +0 -1
- package/dist/IconButton/index.mjs.map +0 -1
- package/dist/IconRoundedButton/index.d.mts +0 -34
- package/dist/IconRoundedButton/index.d.ts +0 -34
- package/dist/IconRoundedButton/index.js.map +0 -1
- package/dist/IconRoundedButton/index.mjs.map +0 -1
- package/dist/Input/index.d.mts +0 -27
- package/dist/Input/index.d.ts +0 -27
- package/dist/Input/index.js.map +0 -1
- package/dist/Input/index.mjs.map +0 -1
- package/dist/Menu/index.d.mts +0 -48
- package/dist/Menu/index.d.ts +0 -48
- package/dist/Menu/index.js.map +0 -1
- package/dist/Menu/index.mjs.map +0 -1
- package/dist/Modal/index.d.mts +0 -66
- package/dist/Modal/index.d.ts +0 -66
- package/dist/Modal/index.js.map +0 -1
- package/dist/Modal/index.mjs.map +0 -1
- package/dist/NavButton/index.d.mts +0 -57
- package/dist/NavButton/index.d.ts +0 -57
- package/dist/NavButton/index.js.map +0 -1
- package/dist/NavButton/index.mjs.map +0 -1
- package/dist/NotFound/index.d.mts +0 -58
- package/dist/NotFound/index.d.ts +0 -58
- package/dist/NotFound/index.js.map +0 -1
- package/dist/NotFound/index.mjs.map +0 -1
- package/dist/ProgressBar/index.d.mts +0 -95
- package/dist/ProgressBar/index.d.ts +0 -95
- package/dist/ProgressBar/index.js.map +0 -1
- package/dist/ProgressBar/index.mjs.map +0 -1
- package/dist/ProgressCircle/index.d.mts +0 -60
- package/dist/ProgressCircle/index.d.ts +0 -60
- package/dist/ProgressCircle/index.js.map +0 -1
- package/dist/ProgressCircle/index.mjs.map +0 -1
- package/dist/Quiz/index.d.mts +0 -52
- package/dist/Quiz/index.d.ts +0 -52
- package/dist/Quiz/index.js.map +0 -1
- package/dist/Quiz/index.mjs.map +0 -1
- package/dist/Quiz/useQuizStore/index.d.mts +0 -140
- package/dist/Quiz/useQuizStore/index.d.ts +0 -140
- package/dist/Quiz/useQuizStore/index.js.map +0 -1
- package/dist/Quiz/useQuizStore/index.mjs.map +0 -1
- package/dist/Radio/index.d.mts +0 -203
- package/dist/Radio/index.d.ts +0 -203
- package/dist/Radio/index.js.map +0 -1
- package/dist/Radio/index.mjs.map +0 -1
- package/dist/Select/index.d.mts +0 -58
- package/dist/Select/index.d.ts +0 -58
- package/dist/Select/index.js.map +0 -1
- package/dist/Select/index.mjs.map +0 -1
- package/dist/SelectionButton/index.d.mts +0 -57
- package/dist/SelectionButton/index.d.ts +0 -57
- package/dist/SelectionButton/index.js.map +0 -1
- package/dist/SelectionButton/index.mjs.map +0 -1
- package/dist/Skeleton/index.d.mts +0 -40
- package/dist/Skeleton/index.d.ts +0 -40
- package/dist/Skeleton/index.js.map +0 -1
- package/dist/Skeleton/index.mjs.map +0 -1
- package/dist/Stepper/index.d.mts +0 -169
- package/dist/Stepper/index.d.ts +0 -169
- package/dist/Stepper/index.js.map +0 -1
- package/dist/Stepper/index.mjs.map +0 -1
- package/dist/Table/index.d.mts +0 -17
- package/dist/Table/index.d.ts +0 -17
- package/dist/Table/index.js.map +0 -1
- package/dist/Table/index.mjs.map +0 -1
- package/dist/Text/index.d.mts +0 -58
- package/dist/Text/index.d.ts +0 -58
- package/dist/Text/index.js.map +0 -1
- package/dist/Text/index.mjs.map +0 -1
- package/dist/TextArea/index.d.mts +0 -70
- package/dist/TextArea/index.d.ts +0 -70
- package/dist/TextArea/index.js.map +0 -1
- package/dist/TextArea/index.mjs.map +0 -1
- package/dist/Toast/ToastStore/index.d.mts +0 -19
- package/dist/Toast/ToastStore/index.d.ts +0 -19
- package/dist/Toast/ToastStore/index.js.map +0 -1
- package/dist/Toast/ToastStore/index.mjs.map +0 -1
- package/dist/Toast/Toaster/index.d.mts +0 -16
- package/dist/Toast/Toaster/index.d.ts +0 -16
- package/dist/Toast/Toaster/index.js.map +0 -1
- package/dist/Toast/Toaster/index.mjs.map +0 -1
- package/dist/Toast/index.d.mts +0 -17
- package/dist/Toast/index.d.ts +0 -17
- package/dist/Toast/index.js.map +0 -1
- package/dist/Toast/index.mjs.map +0 -1
- package/dist/index.css.map +0 -1
- package/dist/index.d.mts +0 -41
- package/dist/index.d.ts +0 -41
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/dist/styles.css.map +0 -1
- package/dist/styles.d.mts +0 -2
- package/dist/styles.d.ts +0 -2
package/dist/index.mjs
CHANGED
|
@@ -803,10 +803,9 @@ var CheckBox = forwardRef5(
|
|
|
803
803
|
CheckBox.displayName = "CheckBox";
|
|
804
804
|
var CheckBox_default = CheckBox;
|
|
805
805
|
|
|
806
|
-
// src/components/
|
|
806
|
+
// src/components/CheckBox/CheckboxList.tsx
|
|
807
807
|
import {
|
|
808
808
|
forwardRef as forwardRef6,
|
|
809
|
-
useState as useState2,
|
|
810
809
|
useId as useId2,
|
|
811
810
|
useEffect,
|
|
812
811
|
useRef,
|
|
@@ -815,7 +814,152 @@ import {
|
|
|
815
814
|
isValidElement
|
|
816
815
|
} from "react";
|
|
817
816
|
import { create, useStore } from "zustand";
|
|
818
|
-
import { jsx as jsx11
|
|
817
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
818
|
+
var createCheckboxListStore = (name, defaultValues, disabled, onValuesChange) => create((set, get) => ({
|
|
819
|
+
values: defaultValues,
|
|
820
|
+
setValues: (values) => {
|
|
821
|
+
if (!get().disabled) {
|
|
822
|
+
set({ values });
|
|
823
|
+
get().onValuesChange?.(values);
|
|
824
|
+
}
|
|
825
|
+
},
|
|
826
|
+
toggleValue: (value) => {
|
|
827
|
+
if (!get().disabled) {
|
|
828
|
+
const currentValues = get().values;
|
|
829
|
+
const newValues = currentValues.includes(value) ? currentValues.filter((v) => v !== value) : [...currentValues, value];
|
|
830
|
+
set({ values: newValues });
|
|
831
|
+
get().onValuesChange?.(newValues);
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
onValuesChange,
|
|
835
|
+
disabled,
|
|
836
|
+
name
|
|
837
|
+
}));
|
|
838
|
+
var useCheckboxListStore = (externalStore) => {
|
|
839
|
+
if (!externalStore) {
|
|
840
|
+
throw new Error("CheckboxListItem must be used within a CheckboxList");
|
|
841
|
+
}
|
|
842
|
+
return externalStore;
|
|
843
|
+
};
|
|
844
|
+
var injectStore = (children, store) => Children.map(children, (child) => {
|
|
845
|
+
if (!isValidElement(child)) return child;
|
|
846
|
+
const typedChild = child;
|
|
847
|
+
const shouldInject = typedChild.type === CheckboxListItem;
|
|
848
|
+
return cloneElement(typedChild, {
|
|
849
|
+
...shouldInject ? { store } : {},
|
|
850
|
+
...typedChild.props.children ? { children: injectStore(typedChild.props.children, store) } : {}
|
|
851
|
+
});
|
|
852
|
+
});
|
|
853
|
+
var CheckboxList = forwardRef6(
|
|
854
|
+
({
|
|
855
|
+
values: propValues,
|
|
856
|
+
defaultValues = [],
|
|
857
|
+
onValuesChange,
|
|
858
|
+
name: propName,
|
|
859
|
+
disabled = false,
|
|
860
|
+
className = "",
|
|
861
|
+
children,
|
|
862
|
+
...props
|
|
863
|
+
}, ref) => {
|
|
864
|
+
const generatedId = useId2();
|
|
865
|
+
const name = propName || `checkbox-list-${generatedId}`;
|
|
866
|
+
const storeRef = useRef(null);
|
|
867
|
+
storeRef.current ??= createCheckboxListStore(
|
|
868
|
+
name,
|
|
869
|
+
defaultValues,
|
|
870
|
+
disabled,
|
|
871
|
+
onValuesChange
|
|
872
|
+
);
|
|
873
|
+
const store = storeRef.current;
|
|
874
|
+
const { setValues } = useStore(store, (s) => s);
|
|
875
|
+
useEffect(() => {
|
|
876
|
+
const currentValues = store.getState().values;
|
|
877
|
+
if (currentValues.length > 0 && onValuesChange) {
|
|
878
|
+
onValuesChange(currentValues);
|
|
879
|
+
}
|
|
880
|
+
}, []);
|
|
881
|
+
useEffect(() => {
|
|
882
|
+
if (propValues !== void 0) {
|
|
883
|
+
setValues(propValues);
|
|
884
|
+
}
|
|
885
|
+
}, [propValues, setValues]);
|
|
886
|
+
useEffect(() => {
|
|
887
|
+
store.setState({ disabled });
|
|
888
|
+
}, [disabled, store]);
|
|
889
|
+
return /* @__PURE__ */ jsx11(
|
|
890
|
+
"div",
|
|
891
|
+
{
|
|
892
|
+
ref,
|
|
893
|
+
className: cn("flex flex-col gap-2 w-full", className),
|
|
894
|
+
"aria-label": name,
|
|
895
|
+
...props,
|
|
896
|
+
children: injectStore(children, store)
|
|
897
|
+
}
|
|
898
|
+
);
|
|
899
|
+
}
|
|
900
|
+
);
|
|
901
|
+
CheckboxList.displayName = "CheckboxList";
|
|
902
|
+
var CheckboxListItem = forwardRef6(
|
|
903
|
+
({
|
|
904
|
+
value,
|
|
905
|
+
store: externalStore,
|
|
906
|
+
disabled: itemDisabled,
|
|
907
|
+
size = "medium",
|
|
908
|
+
state = "default",
|
|
909
|
+
className = "",
|
|
910
|
+
id,
|
|
911
|
+
...props
|
|
912
|
+
}, ref) => {
|
|
913
|
+
const store = useCheckboxListStore(externalStore);
|
|
914
|
+
const {
|
|
915
|
+
values: groupValues,
|
|
916
|
+
toggleValue,
|
|
917
|
+
disabled: groupDisabled,
|
|
918
|
+
name
|
|
919
|
+
} = useStore(store);
|
|
920
|
+
const generatedId = useId2();
|
|
921
|
+
const inputId = id ?? `checkbox-item-${generatedId}`;
|
|
922
|
+
const isChecked = groupValues.includes(value);
|
|
923
|
+
const isDisabled = groupDisabled || itemDisabled;
|
|
924
|
+
const currentState = isDisabled ? "disabled" : state;
|
|
925
|
+
return /* @__PURE__ */ jsx11(
|
|
926
|
+
CheckBox_default,
|
|
927
|
+
{
|
|
928
|
+
ref,
|
|
929
|
+
id: inputId,
|
|
930
|
+
name,
|
|
931
|
+
value,
|
|
932
|
+
checked: isChecked,
|
|
933
|
+
disabled: isDisabled,
|
|
934
|
+
size,
|
|
935
|
+
state: currentState,
|
|
936
|
+
className,
|
|
937
|
+
onChange: () => {
|
|
938
|
+
if (!isDisabled) {
|
|
939
|
+
toggleValue(value);
|
|
940
|
+
}
|
|
941
|
+
},
|
|
942
|
+
...props
|
|
943
|
+
}
|
|
944
|
+
);
|
|
945
|
+
}
|
|
946
|
+
);
|
|
947
|
+
CheckboxListItem.displayName = "CheckboxListItem";
|
|
948
|
+
var CheckboxList_default = CheckboxList;
|
|
949
|
+
|
|
950
|
+
// src/components/Radio/Radio.tsx
|
|
951
|
+
import {
|
|
952
|
+
forwardRef as forwardRef7,
|
|
953
|
+
useState as useState2,
|
|
954
|
+
useId as useId3,
|
|
955
|
+
useEffect as useEffect2,
|
|
956
|
+
useRef as useRef2,
|
|
957
|
+
Children as Children2,
|
|
958
|
+
cloneElement as cloneElement2,
|
|
959
|
+
isValidElement as isValidElement2
|
|
960
|
+
} from "react";
|
|
961
|
+
import { create as create2, useStore as useStore2 } from "zustand";
|
|
962
|
+
import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
819
963
|
var SIZE_CLASSES4 = {
|
|
820
964
|
small: {
|
|
821
965
|
radio: "w-5 h-5",
|
|
@@ -880,7 +1024,7 @@ var DOT_CLASSES = {
|
|
|
880
1024
|
invalid: "bg-primary-950",
|
|
881
1025
|
disabled: "bg-primary-950"
|
|
882
1026
|
};
|
|
883
|
-
var Radio =
|
|
1027
|
+
var Radio = forwardRef7(
|
|
884
1028
|
({
|
|
885
1029
|
label,
|
|
886
1030
|
size = "medium",
|
|
@@ -898,9 +1042,9 @@ var Radio = forwardRef6(
|
|
|
898
1042
|
onChange,
|
|
899
1043
|
...props
|
|
900
1044
|
}, ref) => {
|
|
901
|
-
const generatedId =
|
|
1045
|
+
const generatedId = useId3();
|
|
902
1046
|
const inputId = id ?? `radio-${generatedId}`;
|
|
903
|
-
const inputRef =
|
|
1047
|
+
const inputRef = useRef2(null);
|
|
904
1048
|
const [internalChecked, setInternalChecked] = useState2(defaultChecked);
|
|
905
1049
|
const isControlled = checkedProp !== void 0;
|
|
906
1050
|
const checked = isControlled ? checkedProp : internalChecked;
|
|
@@ -964,7 +1108,7 @@ var Radio = forwardRef6(
|
|
|
964
1108
|
disabled ? "opacity-40" : ""
|
|
965
1109
|
),
|
|
966
1110
|
children: [
|
|
967
|
-
/* @__PURE__ */
|
|
1111
|
+
/* @__PURE__ */ jsx12(
|
|
968
1112
|
"input",
|
|
969
1113
|
{
|
|
970
1114
|
ref: (node) => {
|
|
@@ -988,7 +1132,7 @@ var Radio = forwardRef6(
|
|
|
988
1132
|
...props
|
|
989
1133
|
}
|
|
990
1134
|
),
|
|
991
|
-
/* @__PURE__ */
|
|
1135
|
+
/* @__PURE__ */ jsx12(
|
|
992
1136
|
"button",
|
|
993
1137
|
{
|
|
994
1138
|
type: "button",
|
|
@@ -1013,10 +1157,10 @@ var Radio = forwardRef6(
|
|
|
1013
1157
|
}
|
|
1014
1158
|
}
|
|
1015
1159
|
},
|
|
1016
|
-
children: checked && /* @__PURE__ */
|
|
1160
|
+
children: checked && /* @__PURE__ */ jsx12("div", { className: dotClasses })
|
|
1017
1161
|
}
|
|
1018
1162
|
),
|
|
1019
|
-
label && /* @__PURE__ */
|
|
1163
|
+
label && /* @__PURE__ */ jsx12(
|
|
1020
1164
|
"div",
|
|
1021
1165
|
{
|
|
1022
1166
|
className: cn(
|
|
@@ -1024,7 +1168,7 @@ var Radio = forwardRef6(
|
|
|
1024
1168
|
sizeClasses.labelHeight,
|
|
1025
1169
|
"flex-1 min-w-0"
|
|
1026
1170
|
),
|
|
1027
|
-
children: /* @__PURE__ */
|
|
1171
|
+
children: /* @__PURE__ */ jsx12(
|
|
1028
1172
|
Text_default,
|
|
1029
1173
|
{
|
|
1030
1174
|
as: "label",
|
|
@@ -1045,7 +1189,7 @@ var Radio = forwardRef6(
|
|
|
1045
1189
|
]
|
|
1046
1190
|
}
|
|
1047
1191
|
),
|
|
1048
|
-
errorMessage && /* @__PURE__ */
|
|
1192
|
+
errorMessage && /* @__PURE__ */ jsx12(
|
|
1049
1193
|
Text_default,
|
|
1050
1194
|
{
|
|
1051
1195
|
size: "sm",
|
|
@@ -1055,7 +1199,7 @@ var Radio = forwardRef6(
|
|
|
1055
1199
|
children: errorMessage
|
|
1056
1200
|
}
|
|
1057
1201
|
),
|
|
1058
|
-
helperText && !errorMessage && /* @__PURE__ */
|
|
1202
|
+
helperText && !errorMessage && /* @__PURE__ */ jsx12(
|
|
1059
1203
|
Text_default,
|
|
1060
1204
|
{
|
|
1061
1205
|
size: "sm",
|
|
@@ -1069,7 +1213,7 @@ var Radio = forwardRef6(
|
|
|
1069
1213
|
}
|
|
1070
1214
|
);
|
|
1071
1215
|
Radio.displayName = "Radio";
|
|
1072
|
-
var createRadioGroupStore = (name, defaultValue, disabled, onValueChange) =>
|
|
1216
|
+
var createRadioGroupStore = (name, defaultValue, disabled, onValueChange) => create2((set, get) => ({
|
|
1073
1217
|
value: defaultValue,
|
|
1074
1218
|
setValue: (value) => {
|
|
1075
1219
|
if (!get().disabled) {
|
|
@@ -1087,16 +1231,16 @@ var useRadioGroupStore = (externalStore) => {
|
|
|
1087
1231
|
}
|
|
1088
1232
|
return externalStore;
|
|
1089
1233
|
};
|
|
1090
|
-
var
|
|
1091
|
-
if (!
|
|
1234
|
+
var injectStore2 = (children, store) => Children2.map(children, (child) => {
|
|
1235
|
+
if (!isValidElement2(child)) return child;
|
|
1092
1236
|
const typedChild = child;
|
|
1093
1237
|
const shouldInject = typedChild.type === RadioGroupItem;
|
|
1094
|
-
return
|
|
1238
|
+
return cloneElement2(typedChild, {
|
|
1095
1239
|
...shouldInject ? { store } : {},
|
|
1096
|
-
...typedChild.props.children ? { children:
|
|
1240
|
+
...typedChild.props.children ? { children: injectStore2(typedChild.props.children, store) } : {}
|
|
1097
1241
|
});
|
|
1098
1242
|
});
|
|
1099
|
-
var RadioGroup =
|
|
1243
|
+
var RadioGroup = forwardRef7(
|
|
1100
1244
|
({
|
|
1101
1245
|
value: propValue,
|
|
1102
1246
|
defaultValue = "",
|
|
@@ -1107,9 +1251,9 @@ var RadioGroup = forwardRef6(
|
|
|
1107
1251
|
children,
|
|
1108
1252
|
...props
|
|
1109
1253
|
}, ref) => {
|
|
1110
|
-
const generatedId =
|
|
1254
|
+
const generatedId = useId3();
|
|
1111
1255
|
const name = propName || `radio-group-${generatedId}`;
|
|
1112
|
-
const storeRef =
|
|
1256
|
+
const storeRef = useRef2(null);
|
|
1113
1257
|
storeRef.current ??= createRadioGroupStore(
|
|
1114
1258
|
name,
|
|
1115
1259
|
defaultValue,
|
|
@@ -1117,22 +1261,22 @@ var RadioGroup = forwardRef6(
|
|
|
1117
1261
|
onValueChange
|
|
1118
1262
|
);
|
|
1119
1263
|
const store = storeRef.current;
|
|
1120
|
-
const { setValue } =
|
|
1121
|
-
|
|
1264
|
+
const { setValue } = useStore2(store, (s) => s);
|
|
1265
|
+
useEffect2(() => {
|
|
1122
1266
|
const currentValue = store.getState().value;
|
|
1123
1267
|
if (currentValue && onValueChange) {
|
|
1124
1268
|
onValueChange(currentValue);
|
|
1125
1269
|
}
|
|
1126
1270
|
}, []);
|
|
1127
|
-
|
|
1271
|
+
useEffect2(() => {
|
|
1128
1272
|
if (propValue !== void 0) {
|
|
1129
1273
|
setValue(propValue);
|
|
1130
1274
|
}
|
|
1131
1275
|
}, [propValue, setValue]);
|
|
1132
|
-
|
|
1276
|
+
useEffect2(() => {
|
|
1133
1277
|
store.setState({ disabled });
|
|
1134
1278
|
}, [disabled, store]);
|
|
1135
|
-
return /* @__PURE__ */
|
|
1279
|
+
return /* @__PURE__ */ jsx12(
|
|
1136
1280
|
"div",
|
|
1137
1281
|
{
|
|
1138
1282
|
ref,
|
|
@@ -1140,13 +1284,13 @@ var RadioGroup = forwardRef6(
|
|
|
1140
1284
|
role: "radiogroup",
|
|
1141
1285
|
"aria-label": name,
|
|
1142
1286
|
...props,
|
|
1143
|
-
children:
|
|
1287
|
+
children: injectStore2(children, store)
|
|
1144
1288
|
}
|
|
1145
1289
|
);
|
|
1146
1290
|
}
|
|
1147
1291
|
);
|
|
1148
1292
|
RadioGroup.displayName = "RadioGroup";
|
|
1149
|
-
var RadioGroupItem =
|
|
1293
|
+
var RadioGroupItem = forwardRef7(
|
|
1150
1294
|
({
|
|
1151
1295
|
value,
|
|
1152
1296
|
store: externalStore,
|
|
@@ -1163,13 +1307,13 @@ var RadioGroupItem = forwardRef6(
|
|
|
1163
1307
|
setValue,
|
|
1164
1308
|
disabled: groupDisabled,
|
|
1165
1309
|
name
|
|
1166
|
-
} =
|
|
1167
|
-
const generatedId =
|
|
1310
|
+
} = useStore2(store);
|
|
1311
|
+
const generatedId = useId3();
|
|
1168
1312
|
const inputId = id ?? `radio-item-${generatedId}`;
|
|
1169
1313
|
const isChecked = groupValue === value;
|
|
1170
1314
|
const isDisabled = groupDisabled || itemDisabled;
|
|
1171
1315
|
const currentState = isDisabled ? "disabled" : state;
|
|
1172
|
-
return /* @__PURE__ */
|
|
1316
|
+
return /* @__PURE__ */ jsx12(
|
|
1173
1317
|
Radio,
|
|
1174
1318
|
{
|
|
1175
1319
|
ref,
|
|
@@ -1196,12 +1340,12 @@ var Radio_default = Radio;
|
|
|
1196
1340
|
|
|
1197
1341
|
// src/components/TextArea/TextArea.tsx
|
|
1198
1342
|
import {
|
|
1199
|
-
forwardRef as
|
|
1343
|
+
forwardRef as forwardRef8,
|
|
1200
1344
|
useState as useState3,
|
|
1201
|
-
useId as
|
|
1345
|
+
useId as useId4
|
|
1202
1346
|
} from "react";
|
|
1203
1347
|
import { WarningCircle as WarningCircle2 } from "phosphor-react";
|
|
1204
|
-
import { jsx as
|
|
1348
|
+
import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1205
1349
|
var SIZE_CLASSES5 = {
|
|
1206
1350
|
small: {
|
|
1207
1351
|
textarea: "h-24 text-sm",
|
|
@@ -1252,7 +1396,7 @@ var STATE_CLASSES3 = {
|
|
|
1252
1396
|
focus: ""
|
|
1253
1397
|
}
|
|
1254
1398
|
};
|
|
1255
|
-
var TextArea =
|
|
1399
|
+
var TextArea = forwardRef8(
|
|
1256
1400
|
({
|
|
1257
1401
|
label,
|
|
1258
1402
|
size = "medium",
|
|
@@ -1267,7 +1411,7 @@ var TextArea = forwardRef7(
|
|
|
1267
1411
|
placeholder,
|
|
1268
1412
|
...props
|
|
1269
1413
|
}, ref) => {
|
|
1270
|
-
const generatedId =
|
|
1414
|
+
const generatedId = useId4();
|
|
1271
1415
|
const inputId = id ?? `textarea-${generatedId}`;
|
|
1272
1416
|
const [isFocused, setIsFocused] = useState3(false);
|
|
1273
1417
|
const handleChange = (event) => {
|
|
@@ -1296,7 +1440,7 @@ var TextArea = forwardRef7(
|
|
|
1296
1440
|
className
|
|
1297
1441
|
);
|
|
1298
1442
|
return /* @__PURE__ */ jsxs9("div", { className: `flex flex-col`, children: [
|
|
1299
|
-
label && /* @__PURE__ */
|
|
1443
|
+
label && /* @__PURE__ */ jsx13(
|
|
1300
1444
|
Text_default,
|
|
1301
1445
|
{
|
|
1302
1446
|
as: "label",
|
|
@@ -1308,7 +1452,7 @@ var TextArea = forwardRef7(
|
|
|
1308
1452
|
children: label
|
|
1309
1453
|
}
|
|
1310
1454
|
),
|
|
1311
|
-
/* @__PURE__ */
|
|
1455
|
+
/* @__PURE__ */ jsx13(
|
|
1312
1456
|
"textarea",
|
|
1313
1457
|
{
|
|
1314
1458
|
ref,
|
|
@@ -1323,11 +1467,11 @@ var TextArea = forwardRef7(
|
|
|
1323
1467
|
}
|
|
1324
1468
|
),
|
|
1325
1469
|
errorMessage && /* @__PURE__ */ jsxs9("p", { className: "flex gap-1 items-center text-sm text-indicator-error mt-1.5", children: [
|
|
1326
|
-
/* @__PURE__ */
|
|
1470
|
+
/* @__PURE__ */ jsx13(WarningCircle2, { size: 16 }),
|
|
1327
1471
|
" ",
|
|
1328
1472
|
errorMessage
|
|
1329
1473
|
] }),
|
|
1330
|
-
helperMessage && !errorMessage && /* @__PURE__ */
|
|
1474
|
+
helperMessage && !errorMessage && /* @__PURE__ */ jsx13(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
|
|
1331
1475
|
] });
|
|
1332
1476
|
}
|
|
1333
1477
|
);
|
|
@@ -1336,7 +1480,7 @@ var TextArea_default = TextArea;
|
|
|
1336
1480
|
|
|
1337
1481
|
// src/components/Toast/Toast.tsx
|
|
1338
1482
|
import { CheckCircle as CheckCircle2, WarningCircle as WarningCircle3, Info as Info2, X } from "phosphor-react";
|
|
1339
|
-
import { jsx as
|
|
1483
|
+
import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1340
1484
|
var VARIANT_ACTION_CLASSES4 = {
|
|
1341
1485
|
solid: {
|
|
1342
1486
|
warning: "bg-warning text-warning-600 border-none focus-visible:outline-none",
|
|
@@ -1391,19 +1535,19 @@ var Toast = ({
|
|
|
1391
1535
|
...props,
|
|
1392
1536
|
children: [
|
|
1393
1537
|
/* @__PURE__ */ jsxs10("div", { className: "flex flex-row items-start gap-3", children: [
|
|
1394
|
-
/* @__PURE__ */
|
|
1538
|
+
/* @__PURE__ */ jsx14("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ jsx14(IconAction, {}) }),
|
|
1395
1539
|
/* @__PURE__ */ jsxs10("div", { className: "flex flex-col items-start justify-start", children: [
|
|
1396
|
-
/* @__PURE__ */
|
|
1397
|
-
description && /* @__PURE__ */
|
|
1540
|
+
/* @__PURE__ */ jsx14("p", { className: "font-semibold text-md", children: title }),
|
|
1541
|
+
description && /* @__PURE__ */ jsx14("p", { className: "text-md text-text-900", children: description })
|
|
1398
1542
|
] })
|
|
1399
1543
|
] }),
|
|
1400
|
-
/* @__PURE__ */
|
|
1544
|
+
/* @__PURE__ */ jsx14(
|
|
1401
1545
|
"button",
|
|
1402
1546
|
{
|
|
1403
1547
|
onClick: onClose,
|
|
1404
1548
|
"aria-label": "Dismiss notification",
|
|
1405
1549
|
className: "text-background-500 cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity",
|
|
1406
|
-
children: /* @__PURE__ */
|
|
1550
|
+
children: /* @__PURE__ */ jsx14(X, {})
|
|
1407
1551
|
}
|
|
1408
1552
|
)
|
|
1409
1553
|
]
|
|
@@ -1413,8 +1557,8 @@ var Toast = ({
|
|
|
1413
1557
|
var Toast_default = Toast;
|
|
1414
1558
|
|
|
1415
1559
|
// src/components/Toast/utils/ToastStore.ts
|
|
1416
|
-
import { create as
|
|
1417
|
-
var useToastStore =
|
|
1560
|
+
import { create as create3 } from "zustand";
|
|
1561
|
+
var useToastStore = create3((set) => ({
|
|
1418
1562
|
toasts: [],
|
|
1419
1563
|
addToast: (toast) => {
|
|
1420
1564
|
const id = crypto.randomUUID();
|
|
@@ -1431,11 +1575,11 @@ var useToastStore = create2((set) => ({
|
|
|
1431
1575
|
var ToastStore_default = useToastStore;
|
|
1432
1576
|
|
|
1433
1577
|
// src/components/Toast/utils/Toaster.tsx
|
|
1434
|
-
import { Fragment, jsx as
|
|
1578
|
+
import { Fragment, jsx as jsx15 } from "react/jsx-runtime";
|
|
1435
1579
|
var Toaster = () => {
|
|
1436
1580
|
const toasts = ToastStore_default((state) => state.toasts);
|
|
1437
1581
|
const removeToast = ToastStore_default((state) => state.removeToast);
|
|
1438
|
-
return /* @__PURE__ */
|
|
1582
|
+
return /* @__PURE__ */ jsx15(Fragment, { children: toasts.map((toast) => /* @__PURE__ */ jsx15(
|
|
1439
1583
|
Toast_default,
|
|
1440
1584
|
{
|
|
1441
1585
|
title: toast.title,
|
|
@@ -1451,7 +1595,7 @@ var Toaster = () => {
|
|
|
1451
1595
|
var Toaster_default = Toaster;
|
|
1452
1596
|
|
|
1453
1597
|
// src/components/Divider/Divider.tsx
|
|
1454
|
-
import { jsx as
|
|
1598
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1455
1599
|
var Divider = ({
|
|
1456
1600
|
orientation = "horizontal",
|
|
1457
1601
|
className = "",
|
|
@@ -1462,7 +1606,7 @@ var Divider = ({
|
|
|
1462
1606
|
horizontal: "w-full h-px",
|
|
1463
1607
|
vertical: "h-full w-px"
|
|
1464
1608
|
};
|
|
1465
|
-
return /* @__PURE__ */
|
|
1609
|
+
return /* @__PURE__ */ jsx16(
|
|
1466
1610
|
"hr",
|
|
1467
1611
|
{
|
|
1468
1612
|
className: cn(baseClasses, orientationClasses[orientation], className),
|
|
@@ -1476,12 +1620,12 @@ var Divider_default = Divider;
|
|
|
1476
1620
|
// src/components/Input/Input.tsx
|
|
1477
1621
|
import { WarningCircle as WarningCircle4, Eye, EyeSlash } from "phosphor-react";
|
|
1478
1622
|
import {
|
|
1479
|
-
forwardRef as
|
|
1623
|
+
forwardRef as forwardRef9,
|
|
1480
1624
|
useState as useState4,
|
|
1481
|
-
useId as
|
|
1625
|
+
useId as useId5,
|
|
1482
1626
|
useMemo
|
|
1483
1627
|
} from "react";
|
|
1484
|
-
import { jsx as
|
|
1628
|
+
import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1485
1629
|
var SIZE_CLASSES6 = {
|
|
1486
1630
|
small: "text-sm",
|
|
1487
1631
|
medium: "text-md",
|
|
@@ -1520,7 +1664,7 @@ var getPasswordToggleConfig = (type, disabled, readOnly, showPassword, iconRight
|
|
|
1520
1664
|
let actualIconRight = iconRight;
|
|
1521
1665
|
let ariaLabel;
|
|
1522
1666
|
if (shouldShowPasswordToggle) {
|
|
1523
|
-
actualIconRight = showPassword ? /* @__PURE__ */
|
|
1667
|
+
actualIconRight = showPassword ? /* @__PURE__ */ jsx17(EyeSlash, {}) : /* @__PURE__ */ jsx17(Eye, {});
|
|
1524
1668
|
ariaLabel = showPassword ? "Ocultar senha" : "Mostrar senha";
|
|
1525
1669
|
}
|
|
1526
1670
|
return { shouldShowPasswordToggle, actualIconRight, ariaLabel };
|
|
@@ -1536,7 +1680,7 @@ var getCombinedClasses = (actualState, variant) => {
|
|
|
1536
1680
|
}
|
|
1537
1681
|
return `${stateClasses} ${variantClasses}`;
|
|
1538
1682
|
};
|
|
1539
|
-
var Input =
|
|
1683
|
+
var Input = forwardRef9(
|
|
1540
1684
|
({
|
|
1541
1685
|
label,
|
|
1542
1686
|
helperText,
|
|
@@ -1565,7 +1709,7 @@ var Input = forwardRef8(
|
|
|
1565
1709
|
);
|
|
1566
1710
|
const iconSize = getIconSize(size);
|
|
1567
1711
|
const baseClasses = `bg-background w-full py-2 ${actualState === "read-only" ? "px-0" : "px-3"} font-normal text-text-900 focus:outline-primary-950`;
|
|
1568
|
-
const generatedId =
|
|
1712
|
+
const generatedId = useId5();
|
|
1569
1713
|
const inputId = id ?? `input-${generatedId}`;
|
|
1570
1714
|
const togglePasswordVisibility = () => setShowPassword(!showPassword);
|
|
1571
1715
|
const { shouldShowPasswordToggle, actualIconRight, ariaLabel } = getPasswordToggleConfig(
|
|
@@ -1576,7 +1720,7 @@ var Input = forwardRef8(
|
|
|
1576
1720
|
iconRight
|
|
1577
1721
|
);
|
|
1578
1722
|
return /* @__PURE__ */ jsxs11("div", { className: `${containerClassName}`, children: [
|
|
1579
|
-
label && /* @__PURE__ */
|
|
1723
|
+
label && /* @__PURE__ */ jsx17(
|
|
1580
1724
|
"label",
|
|
1581
1725
|
{
|
|
1582
1726
|
htmlFor: inputId,
|
|
@@ -1585,14 +1729,14 @@ var Input = forwardRef8(
|
|
|
1585
1729
|
}
|
|
1586
1730
|
),
|
|
1587
1731
|
/* @__PURE__ */ jsxs11("div", { className: "relative", children: [
|
|
1588
|
-
iconLeft && /* @__PURE__ */
|
|
1732
|
+
iconLeft && /* @__PURE__ */ jsx17("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx17(
|
|
1589
1733
|
"span",
|
|
1590
1734
|
{
|
|
1591
1735
|
className: `${iconSize} text-text-400 flex items-center justify-center`,
|
|
1592
1736
|
children: iconLeft
|
|
1593
1737
|
}
|
|
1594
1738
|
) }),
|
|
1595
|
-
/* @__PURE__ */
|
|
1739
|
+
/* @__PURE__ */ jsx17(
|
|
1596
1740
|
"input",
|
|
1597
1741
|
{
|
|
1598
1742
|
ref,
|
|
@@ -1605,14 +1749,14 @@ var Input = forwardRef8(
|
|
|
1605
1749
|
...props
|
|
1606
1750
|
}
|
|
1607
1751
|
),
|
|
1608
|
-
actualIconRight && (shouldShowPasswordToggle ? /* @__PURE__ */
|
|
1752
|
+
actualIconRight && (shouldShowPasswordToggle ? /* @__PURE__ */ jsx17(
|
|
1609
1753
|
"button",
|
|
1610
1754
|
{
|
|
1611
1755
|
type: "button",
|
|
1612
1756
|
className: "absolute right-3 top-1/2 transform -translate-y-1/2 cursor-pointer border-0 bg-transparent p-0",
|
|
1613
1757
|
onClick: togglePasswordVisibility,
|
|
1614
1758
|
"aria-label": ariaLabel,
|
|
1615
|
-
children: /* @__PURE__ */
|
|
1759
|
+
children: /* @__PURE__ */ jsx17(
|
|
1616
1760
|
"span",
|
|
1617
1761
|
{
|
|
1618
1762
|
className: `${iconSize} text-text-400 flex items-center justify-center hover:text-text-600 transition-colors`,
|
|
@@ -1620,7 +1764,7 @@ var Input = forwardRef8(
|
|
|
1620
1764
|
}
|
|
1621
1765
|
)
|
|
1622
1766
|
}
|
|
1623
|
-
) : /* @__PURE__ */
|
|
1767
|
+
) : /* @__PURE__ */ jsx17("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx17(
|
|
1624
1768
|
"span",
|
|
1625
1769
|
{
|
|
1626
1770
|
className: `${iconSize} text-text-400 flex items-center justify-center`,
|
|
@@ -1629,9 +1773,9 @@ var Input = forwardRef8(
|
|
|
1629
1773
|
) }))
|
|
1630
1774
|
] }),
|
|
1631
1775
|
/* @__PURE__ */ jsxs11("div", { className: "mt-1.5 gap-1.5", children: [
|
|
1632
|
-
helperText && /* @__PURE__ */
|
|
1776
|
+
helperText && /* @__PURE__ */ jsx17("p", { className: "text-sm text-text-500", children: helperText }),
|
|
1633
1777
|
errorMessage && /* @__PURE__ */ jsxs11("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
|
|
1634
|
-
/* @__PURE__ */
|
|
1778
|
+
/* @__PURE__ */ jsx17(WarningCircle4, { size: 16 }),
|
|
1635
1779
|
" ",
|
|
1636
1780
|
errorMessage
|
|
1637
1781
|
] })
|
|
@@ -1643,7 +1787,7 @@ var Input_default = Input;
|
|
|
1643
1787
|
|
|
1644
1788
|
// src/components/Chips/Chips.tsx
|
|
1645
1789
|
import { Check as Check2 } from "phosphor-react";
|
|
1646
|
-
import { jsx as
|
|
1790
|
+
import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1647
1791
|
var STATE_CLASSES5 = {
|
|
1648
1792
|
default: "bg-background text-text-950 border border-border-100 hover:bg-secondary-50 hover:border-border-300",
|
|
1649
1793
|
selected: "bg-info-background text-primary-950 border-2 border-primary-950 hover:bg-secondary-50 focus-visible:border-0"
|
|
@@ -1666,8 +1810,8 @@ var Chips = ({
|
|
|
1666
1810
|
type,
|
|
1667
1811
|
...props,
|
|
1668
1812
|
children: [
|
|
1669
|
-
selected && /* @__PURE__ */
|
|
1670
|
-
/* @__PURE__ */
|
|
1813
|
+
selected && /* @__PURE__ */ jsx18("span", { className: `flex items-center`, children: /* @__PURE__ */ jsx18(Check2, { weight: "bold", size: 16 }) }),
|
|
1814
|
+
/* @__PURE__ */ jsx18("span", { className: "flex-1", children })
|
|
1671
1815
|
]
|
|
1672
1816
|
}
|
|
1673
1817
|
);
|
|
@@ -1675,7 +1819,7 @@ var Chips = ({
|
|
|
1675
1819
|
var Chips_default = Chips;
|
|
1676
1820
|
|
|
1677
1821
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
1678
|
-
import { Fragment as Fragment2, jsx as
|
|
1822
|
+
import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1679
1823
|
var SIZE_CLASSES7 = {
|
|
1680
1824
|
small: {
|
|
1681
1825
|
container: "h-1",
|
|
@@ -1787,7 +1931,7 @@ var renderStackedHitCountDisplay = (showHitCount, showPercentage, clampedValue,
|
|
|
1787
1931
|
max,
|
|
1788
1932
|
percentage
|
|
1789
1933
|
);
|
|
1790
|
-
return /* @__PURE__ */
|
|
1934
|
+
return /* @__PURE__ */ jsx19(
|
|
1791
1935
|
"div",
|
|
1792
1936
|
{
|
|
1793
1937
|
className: cn(
|
|
@@ -1795,7 +1939,7 @@ var renderStackedHitCountDisplay = (showHitCount, showPercentage, clampedValue,
|
|
|
1795
1939
|
percentageClassName
|
|
1796
1940
|
),
|
|
1797
1941
|
children: displayPriority.type === "hitCount" ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
1798
|
-
/* @__PURE__ */
|
|
1942
|
+
/* @__PURE__ */ jsx19("span", { className: "text-success-200", children: Math.round(clampedValue) }),
|
|
1799
1943
|
/* @__PURE__ */ jsxs13("span", { className: "text-text-600", children: [
|
|
1800
1944
|
" de ",
|
|
1801
1945
|
max
|
|
@@ -1824,7 +1968,7 @@ var ProgressBarBase = ({
|
|
|
1824
1968
|
"overflow-hidden relative"
|
|
1825
1969
|
),
|
|
1826
1970
|
children: [
|
|
1827
|
-
/* @__PURE__ */
|
|
1971
|
+
/* @__PURE__ */ jsx19(
|
|
1828
1972
|
"progress",
|
|
1829
1973
|
{
|
|
1830
1974
|
value: clampedValue,
|
|
@@ -1833,7 +1977,7 @@ var ProgressBarBase = ({
|
|
|
1833
1977
|
className: "absolute inset-0 w-full h-full opacity-0"
|
|
1834
1978
|
}
|
|
1835
1979
|
),
|
|
1836
|
-
/* @__PURE__ */
|
|
1980
|
+
/* @__PURE__ */ jsx19(
|
|
1837
1981
|
"div",
|
|
1838
1982
|
{
|
|
1839
1983
|
className: cn(
|
|
@@ -1870,7 +2014,7 @@ var StackedLayout = ({
|
|
|
1870
2014
|
),
|
|
1871
2015
|
children: [
|
|
1872
2016
|
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsxs13("div", { className: "flex flex-row justify-between items-center w-full h-[19px]", children: [
|
|
1873
|
-
label && /* @__PURE__ */
|
|
2017
|
+
label && /* @__PURE__ */ jsx19(
|
|
1874
2018
|
Text_default,
|
|
1875
2019
|
{
|
|
1876
2020
|
as: "div",
|
|
@@ -1889,7 +2033,7 @@ var StackedLayout = ({
|
|
|
1889
2033
|
percentageClassName
|
|
1890
2034
|
)
|
|
1891
2035
|
] }),
|
|
1892
|
-
/* @__PURE__ */
|
|
2036
|
+
/* @__PURE__ */ jsx19(
|
|
1893
2037
|
ProgressBarBase,
|
|
1894
2038
|
{
|
|
1895
2039
|
clampedValue,
|
|
@@ -1941,7 +2085,7 @@ var CompactLayout = ({
|
|
|
1941
2085
|
className
|
|
1942
2086
|
),
|
|
1943
2087
|
children: [
|
|
1944
|
-
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */
|
|
2088
|
+
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsx19(
|
|
1945
2089
|
Text_default,
|
|
1946
2090
|
{
|
|
1947
2091
|
as: "div",
|
|
@@ -1952,7 +2096,7 @@ var CompactLayout = ({
|
|
|
1952
2096
|
children: content
|
|
1953
2097
|
}
|
|
1954
2098
|
),
|
|
1955
|
-
/* @__PURE__ */
|
|
2099
|
+
/* @__PURE__ */ jsx19(
|
|
1956
2100
|
ProgressBarBase,
|
|
1957
2101
|
{
|
|
1958
2102
|
clampedValue,
|
|
@@ -1990,7 +2134,7 @@ var DefaultLayout = ({
|
|
|
1990
2134
|
);
|
|
1991
2135
|
return /* @__PURE__ */ jsxs13("div", { className: cn("flex", sizeClasses.layout, gapClass, className), children: [
|
|
1992
2136
|
displayConfig.showHeader && /* @__PURE__ */ jsxs13("div", { className: "flex flex-row items-center justify-between w-full", children: [
|
|
1993
|
-
label && /* @__PURE__ */
|
|
2137
|
+
label && /* @__PURE__ */ jsx19(
|
|
1994
2138
|
Text_default,
|
|
1995
2139
|
{
|
|
1996
2140
|
as: "div",
|
|
@@ -2019,7 +2163,7 @@ var DefaultLayout = ({
|
|
|
2019
2163
|
}
|
|
2020
2164
|
)
|
|
2021
2165
|
] }),
|
|
2022
|
-
/* @__PURE__ */
|
|
2166
|
+
/* @__PURE__ */ jsx19(
|
|
2023
2167
|
ProgressBarBase,
|
|
2024
2168
|
{
|
|
2025
2169
|
clampedValue,
|
|
@@ -2054,7 +2198,7 @@ var DefaultLayout = ({
|
|
|
2054
2198
|
]
|
|
2055
2199
|
}
|
|
2056
2200
|
),
|
|
2057
|
-
displayConfig.showLabel && /* @__PURE__ */
|
|
2201
|
+
displayConfig.showLabel && /* @__PURE__ */ jsx19(
|
|
2058
2202
|
Text_default,
|
|
2059
2203
|
{
|
|
2060
2204
|
as: "div",
|
|
@@ -2090,7 +2234,7 @@ var ProgressBar = ({
|
|
|
2090
2234
|
const sizeClasses = SIZE_CLASSES7[size];
|
|
2091
2235
|
const variantClasses = VARIANT_CLASSES2[variant];
|
|
2092
2236
|
if (layout === "stacked") {
|
|
2093
|
-
return /* @__PURE__ */
|
|
2237
|
+
return /* @__PURE__ */ jsx19(
|
|
2094
2238
|
StackedLayout,
|
|
2095
2239
|
{
|
|
2096
2240
|
className,
|
|
@@ -2111,7 +2255,7 @@ var ProgressBar = ({
|
|
|
2111
2255
|
);
|
|
2112
2256
|
}
|
|
2113
2257
|
if (layout === "compact") {
|
|
2114
|
-
return /* @__PURE__ */
|
|
2258
|
+
return /* @__PURE__ */ jsx19(
|
|
2115
2259
|
CompactLayout,
|
|
2116
2260
|
{
|
|
2117
2261
|
className,
|
|
@@ -2131,7 +2275,7 @@ var ProgressBar = ({
|
|
|
2131
2275
|
}
|
|
2132
2276
|
);
|
|
2133
2277
|
}
|
|
2134
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ jsx19(
|
|
2135
2279
|
DefaultLayout,
|
|
2136
2280
|
{
|
|
2137
2281
|
className,
|
|
@@ -2151,7 +2295,7 @@ var ProgressBar = ({
|
|
|
2151
2295
|
var ProgressBar_default = ProgressBar;
|
|
2152
2296
|
|
|
2153
2297
|
// src/components/ProgressCircle/ProgressCircle.tsx
|
|
2154
|
-
import { jsx as
|
|
2298
|
+
import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
2155
2299
|
var SIZE_CLASSES8 = {
|
|
2156
2300
|
small: {
|
|
2157
2301
|
container: "w-[90px] h-[90px]",
|
|
@@ -2252,7 +2396,7 @@ var ProgressCircle = ({
|
|
|
2252
2396
|
viewBox: `0 0 ${svgSize} ${svgSize}`,
|
|
2253
2397
|
"aria-hidden": "true",
|
|
2254
2398
|
children: [
|
|
2255
|
-
/* @__PURE__ */
|
|
2399
|
+
/* @__PURE__ */ jsx20(
|
|
2256
2400
|
"circle",
|
|
2257
2401
|
{
|
|
2258
2402
|
cx: center,
|
|
@@ -2263,7 +2407,7 @@ var ProgressCircle = ({
|
|
|
2263
2407
|
className: cn(variantClasses.background, "rounded-lg")
|
|
2264
2408
|
}
|
|
2265
2409
|
),
|
|
2266
|
-
/* @__PURE__ */
|
|
2410
|
+
/* @__PURE__ */ jsx20(
|
|
2267
2411
|
"circle",
|
|
2268
2412
|
{
|
|
2269
2413
|
cx: center,
|
|
@@ -2283,7 +2427,7 @@ var ProgressCircle = ({
|
|
|
2283
2427
|
]
|
|
2284
2428
|
}
|
|
2285
2429
|
),
|
|
2286
|
-
/* @__PURE__ */
|
|
2430
|
+
/* @__PURE__ */ jsx20(
|
|
2287
2431
|
"progress",
|
|
2288
2432
|
{
|
|
2289
2433
|
value: clampedValue,
|
|
@@ -2317,7 +2461,7 @@ var ProgressCircle = ({
|
|
|
2317
2461
|
]
|
|
2318
2462
|
}
|
|
2319
2463
|
),
|
|
2320
|
-
label && /* @__PURE__ */
|
|
2464
|
+
label && /* @__PURE__ */ jsx20(
|
|
2321
2465
|
Text_default,
|
|
2322
2466
|
{
|
|
2323
2467
|
as: "span",
|
|
@@ -2342,7 +2486,7 @@ var ProgressCircle_default = ProgressCircle;
|
|
|
2342
2486
|
|
|
2343
2487
|
// src/components/Stepper/Stepper.tsx
|
|
2344
2488
|
import { Check as Check3 } from "phosphor-react";
|
|
2345
|
-
import { jsx as
|
|
2489
|
+
import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2346
2490
|
var SIZE_CLASSES9 = {
|
|
2347
2491
|
small: {
|
|
2348
2492
|
container: "gap-2",
|
|
@@ -2482,7 +2626,7 @@ var Step = ({
|
|
|
2482
2626
|
overflow-visible
|
|
2483
2627
|
`,
|
|
2484
2628
|
children: [
|
|
2485
|
-
/* @__PURE__ */
|
|
2629
|
+
/* @__PURE__ */ jsx21(
|
|
2486
2630
|
"div",
|
|
2487
2631
|
{
|
|
2488
2632
|
className: `
|
|
@@ -2501,7 +2645,7 @@ var Step = ({
|
|
|
2501
2645
|
overflow-visible
|
|
2502
2646
|
`,
|
|
2503
2647
|
children: [
|
|
2504
|
-
/* @__PURE__ */
|
|
2648
|
+
/* @__PURE__ */ jsx21(
|
|
2505
2649
|
"div",
|
|
2506
2650
|
{
|
|
2507
2651
|
className: `
|
|
@@ -2511,7 +2655,7 @@ var Step = ({
|
|
|
2511
2655
|
w-4 h-4 sm:w-5 sm:h-5 md:w-5 md:h-5 lg:w-6 lg:h-6
|
|
2512
2656
|
`,
|
|
2513
2657
|
"aria-label": getAriaLabel(),
|
|
2514
|
-
children: isCompleted ? /* @__PURE__ */
|
|
2658
|
+
children: isCompleted ? /* @__PURE__ */ jsx21(
|
|
2515
2659
|
Check3,
|
|
2516
2660
|
{
|
|
2517
2661
|
weight: "bold",
|
|
@@ -2520,7 +2664,7 @@ var Step = ({
|
|
|
2520
2664
|
w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3 md:h-3 lg:w-3.5 lg:h-3.5
|
|
2521
2665
|
`
|
|
2522
2666
|
}
|
|
2523
|
-
) : /* @__PURE__ */
|
|
2667
|
+
) : /* @__PURE__ */ jsx21(
|
|
2524
2668
|
Text_default,
|
|
2525
2669
|
{
|
|
2526
2670
|
size: sizeClasses.indicatorTextSize,
|
|
@@ -2535,7 +2679,7 @@ var Step = ({
|
|
|
2535
2679
|
)
|
|
2536
2680
|
}
|
|
2537
2681
|
),
|
|
2538
|
-
/* @__PURE__ */
|
|
2682
|
+
/* @__PURE__ */ jsx21(
|
|
2539
2683
|
Text_default,
|
|
2540
2684
|
{
|
|
2541
2685
|
size: sizeClasses.labelTextSize,
|
|
@@ -2596,8 +2740,8 @@ var Stepper = ({
|
|
|
2596
2740
|
"border-0 p-0 m-0"
|
|
2597
2741
|
),
|
|
2598
2742
|
children: [
|
|
2599
|
-
/* @__PURE__ */
|
|
2600
|
-
showProgress && currentStep !== void 0 && /* @__PURE__ */
|
|
2743
|
+
/* @__PURE__ */ jsx21("legend", { className: "absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children: "Stepper de formul\xE1rio" }),
|
|
2744
|
+
showProgress && currentStep !== void 0 && /* @__PURE__ */ jsx21(
|
|
2601
2745
|
Text_default,
|
|
2602
2746
|
{
|
|
2603
2747
|
size: "sm",
|
|
@@ -2606,7 +2750,7 @@ var Stepper = ({
|
|
|
2606
2750
|
children: getProgressText(currentStep, steps.length, progressText)
|
|
2607
2751
|
}
|
|
2608
2752
|
),
|
|
2609
|
-
/* @__PURE__ */
|
|
2753
|
+
/* @__PURE__ */ jsx21(
|
|
2610
2754
|
"div",
|
|
2611
2755
|
{
|
|
2612
2756
|
className: cn(
|
|
@@ -2619,7 +2763,7 @@ var Stepper = ({
|
|
|
2619
2763
|
"aria-label": "Progress steps",
|
|
2620
2764
|
children: steps.map((step, index) => {
|
|
2621
2765
|
const stateClasses = STATE_CLASSES6[step.state];
|
|
2622
|
-
return /* @__PURE__ */
|
|
2766
|
+
return /* @__PURE__ */ jsx21(
|
|
2623
2767
|
Step,
|
|
2624
2768
|
{
|
|
2625
2769
|
step,
|
|
@@ -2645,10 +2789,10 @@ var Stepper_default = Stepper;
|
|
|
2645
2789
|
import {
|
|
2646
2790
|
useState as useState5,
|
|
2647
2791
|
useMemo as useMemo2,
|
|
2648
|
-
useEffect as
|
|
2649
|
-
useRef as
|
|
2792
|
+
useEffect as useEffect3,
|
|
2793
|
+
useRef as useRef3
|
|
2650
2794
|
} from "react";
|
|
2651
|
-
import { jsx as
|
|
2795
|
+
import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2652
2796
|
var WEEK_DAYS = ["SEG", "TER", "QUA", "QUI", "SEX", "S\xC1B", "DOM"];
|
|
2653
2797
|
var WEEK_DAYS_SHORT = ["S", "T", "Q", "Q", "S", "S", "D"];
|
|
2654
2798
|
var MONTH_NAMES = [
|
|
@@ -2678,8 +2822,8 @@ var MonthYearPicker = ({
|
|
|
2678
2822
|
className: "absolute top-full left-0 z-50 mt-1 bg-white rounded-lg shadow-lg border border-border-200 p-4 min-w-[280px]",
|
|
2679
2823
|
children: [
|
|
2680
2824
|
/* @__PURE__ */ jsxs16("div", { className: "mb-4", children: [
|
|
2681
|
-
/* @__PURE__ */
|
|
2682
|
-
/* @__PURE__ */
|
|
2825
|
+
/* @__PURE__ */ jsx22("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar Ano" }),
|
|
2826
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-4 gap-1 max-h-32 overflow-y-auto", children: availableYears.map((year) => /* @__PURE__ */ jsx22(
|
|
2683
2827
|
"button",
|
|
2684
2828
|
{
|
|
2685
2829
|
onClick: () => onYearChange(year),
|
|
@@ -2693,8 +2837,8 @@ var MonthYearPicker = ({
|
|
|
2693
2837
|
)) })
|
|
2694
2838
|
] }),
|
|
2695
2839
|
/* @__PURE__ */ jsxs16("div", { children: [
|
|
2696
|
-
/* @__PURE__ */
|
|
2697
|
-
/* @__PURE__ */
|
|
2840
|
+
/* @__PURE__ */ jsx22("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar M\xEAs" }),
|
|
2841
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-3 gap-1", children: MONTH_NAMES.map((month, index) => /* @__PURE__ */ jsx22(
|
|
2698
2842
|
"button",
|
|
2699
2843
|
{
|
|
2700
2844
|
onClick: () => onMonthChange(index, currentDate.getFullYear()),
|
|
@@ -2749,9 +2893,9 @@ var Calendar = ({
|
|
|
2749
2893
|
}) => {
|
|
2750
2894
|
const [currentDate, setCurrentDate] = useState5(selectedDate || /* @__PURE__ */ new Date());
|
|
2751
2895
|
const [isMonthPickerOpen, setIsMonthPickerOpen] = useState5(false);
|
|
2752
|
-
const monthPickerRef =
|
|
2753
|
-
const monthPickerContainerRef =
|
|
2754
|
-
|
|
2896
|
+
const monthPickerRef = useRef3(null);
|
|
2897
|
+
const monthPickerContainerRef = useRef3(null);
|
|
2898
|
+
useEffect3(() => {
|
|
2755
2899
|
const handleClickOutside = (event) => {
|
|
2756
2900
|
if (monthPickerContainerRef.current && !monthPickerContainerRef.current.contains(event.target)) {
|
|
2757
2901
|
setIsMonthPickerOpen(false);
|
|
@@ -2840,14 +2984,14 @@ var Calendar = ({
|
|
|
2840
2984
|
" ",
|
|
2841
2985
|
currentDate.getFullYear()
|
|
2842
2986
|
] }),
|
|
2843
|
-
/* @__PURE__ */
|
|
2987
|
+
/* @__PURE__ */ jsx22(
|
|
2844
2988
|
"svg",
|
|
2845
2989
|
{
|
|
2846
2990
|
className: `w-4 h-4 text-primary-950 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
|
|
2847
2991
|
fill: "none",
|
|
2848
2992
|
stroke: "currentColor",
|
|
2849
2993
|
viewBox: "0 0 24 24",
|
|
2850
|
-
children: /* @__PURE__ */
|
|
2994
|
+
children: /* @__PURE__ */ jsx22(
|
|
2851
2995
|
"path",
|
|
2852
2996
|
{
|
|
2853
2997
|
strokeLinecap: "round",
|
|
@@ -2861,7 +3005,7 @@ var Calendar = ({
|
|
|
2861
3005
|
]
|
|
2862
3006
|
}
|
|
2863
3007
|
),
|
|
2864
|
-
isMonthPickerOpen && /* @__PURE__ */
|
|
3008
|
+
isMonthPickerOpen && /* @__PURE__ */ jsx22(
|
|
2865
3009
|
MonthYearPicker,
|
|
2866
3010
|
{
|
|
2867
3011
|
monthPickerRef,
|
|
@@ -2873,20 +3017,20 @@ var Calendar = ({
|
|
|
2873
3017
|
)
|
|
2874
3018
|
] }),
|
|
2875
3019
|
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-10", children: [
|
|
2876
|
-
/* @__PURE__ */
|
|
3020
|
+
/* @__PURE__ */ jsx22(
|
|
2877
3021
|
"button",
|
|
2878
3022
|
{
|
|
2879
3023
|
onClick: goToPreviousMonth,
|
|
2880
3024
|
className: "p-1 rounded hover:bg-background-100 transition-colors",
|
|
2881
3025
|
"aria-label": "M\xEAs anterior",
|
|
2882
|
-
children: /* @__PURE__ */
|
|
3026
|
+
children: /* @__PURE__ */ jsx22(
|
|
2883
3027
|
"svg",
|
|
2884
3028
|
{
|
|
2885
3029
|
className: "w-6 h-6 text-primary-950",
|
|
2886
3030
|
fill: "none",
|
|
2887
3031
|
stroke: "currentColor",
|
|
2888
3032
|
viewBox: "0 0 24 24",
|
|
2889
|
-
children: /* @__PURE__ */
|
|
3033
|
+
children: /* @__PURE__ */ jsx22(
|
|
2890
3034
|
"path",
|
|
2891
3035
|
{
|
|
2892
3036
|
strokeLinecap: "round",
|
|
@@ -2899,20 +3043,20 @@ var Calendar = ({
|
|
|
2899
3043
|
)
|
|
2900
3044
|
}
|
|
2901
3045
|
),
|
|
2902
|
-
/* @__PURE__ */
|
|
3046
|
+
/* @__PURE__ */ jsx22(
|
|
2903
3047
|
"button",
|
|
2904
3048
|
{
|
|
2905
3049
|
onClick: goToNextMonth,
|
|
2906
3050
|
className: "p-1 rounded hover:bg-background-100 transition-colors",
|
|
2907
3051
|
"aria-label": "Pr\xF3ximo m\xEAs",
|
|
2908
|
-
children: /* @__PURE__ */
|
|
3052
|
+
children: /* @__PURE__ */ jsx22(
|
|
2909
3053
|
"svg",
|
|
2910
3054
|
{
|
|
2911
3055
|
className: "w-6 h-6 text-primary-950",
|
|
2912
3056
|
fill: "none",
|
|
2913
3057
|
stroke: "currentColor",
|
|
2914
3058
|
viewBox: "0 0 24 24",
|
|
2915
|
-
children: /* @__PURE__ */
|
|
3059
|
+
children: /* @__PURE__ */ jsx22(
|
|
2916
3060
|
"path",
|
|
2917
3061
|
{
|
|
2918
3062
|
strokeLinecap: "round",
|
|
@@ -2927,7 +3071,7 @@ var Calendar = ({
|
|
|
2927
3071
|
)
|
|
2928
3072
|
] })
|
|
2929
3073
|
] }),
|
|
2930
|
-
/* @__PURE__ */
|
|
3074
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7 gap-1 mb-2 px-3", children: WEEK_DAYS_SHORT.map((day, index) => /* @__PURE__ */ jsx22(
|
|
2931
3075
|
"div",
|
|
2932
3076
|
{
|
|
2933
3077
|
className: "h-9 flex items-center justify-center text-xs font-normal text-text-600",
|
|
@@ -2935,13 +3079,13 @@ var Calendar = ({
|
|
|
2935
3079
|
},
|
|
2936
3080
|
`${day}-${index}`
|
|
2937
3081
|
)) }),
|
|
2938
|
-
/* @__PURE__ */
|
|
3082
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7 gap-1 px-3", children: calendarData.map((day) => {
|
|
2939
3083
|
if (!day.isCurrentMonth) {
|
|
2940
|
-
return /* @__PURE__ */
|
|
3084
|
+
return /* @__PURE__ */ jsx22(
|
|
2941
3085
|
"div",
|
|
2942
3086
|
{
|
|
2943
3087
|
className: "flex items-center justify-center",
|
|
2944
|
-
children: /* @__PURE__ */
|
|
3088
|
+
children: /* @__PURE__ */ jsx22("div", { className: "w-9 h-9" })
|
|
2945
3089
|
},
|
|
2946
3090
|
day.date.getTime()
|
|
2947
3091
|
);
|
|
@@ -2957,11 +3101,11 @@ var Calendar = ({
|
|
|
2957
3101
|
} else if (day.isSelected) {
|
|
2958
3102
|
spanClass = "h-6 w-6 rounded-full bg-primary-950 text-text";
|
|
2959
3103
|
}
|
|
2960
|
-
return /* @__PURE__ */
|
|
3104
|
+
return /* @__PURE__ */ jsx22(
|
|
2961
3105
|
"div",
|
|
2962
3106
|
{
|
|
2963
3107
|
className: "flex items-center justify-center",
|
|
2964
|
-
children: /* @__PURE__ */
|
|
3108
|
+
children: /* @__PURE__ */ jsx22(
|
|
2965
3109
|
"button",
|
|
2966
3110
|
{
|
|
2967
3111
|
className: `
|
|
@@ -2977,7 +3121,7 @@ var Calendar = ({
|
|
|
2977
3121
|
"aria-label": `${day.date.getDate()} de ${MONTH_NAMES[day.date.getMonth()]}`,
|
|
2978
3122
|
"aria-current": day.isToday ? "date" : void 0,
|
|
2979
3123
|
tabIndex: 0,
|
|
2980
|
-
children: /* @__PURE__ */
|
|
3124
|
+
children: /* @__PURE__ */ jsx22("span", { className: spanClass, children: day.date.getDate() })
|
|
2981
3125
|
}
|
|
2982
3126
|
)
|
|
2983
3127
|
},
|
|
@@ -3000,14 +3144,14 @@ var Calendar = ({
|
|
|
3000
3144
|
" ",
|
|
3001
3145
|
currentDate.getFullYear()
|
|
3002
3146
|
] }),
|
|
3003
|
-
/* @__PURE__ */
|
|
3147
|
+
/* @__PURE__ */ jsx22(
|
|
3004
3148
|
"svg",
|
|
3005
3149
|
{
|
|
3006
3150
|
className: `w-4 h-4 text-text-400 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
|
|
3007
3151
|
fill: "none",
|
|
3008
3152
|
stroke: "currentColor",
|
|
3009
3153
|
viewBox: "0 0 24 24",
|
|
3010
|
-
children: /* @__PURE__ */
|
|
3154
|
+
children: /* @__PURE__ */ jsx22(
|
|
3011
3155
|
"path",
|
|
3012
3156
|
{
|
|
3013
3157
|
strokeLinecap: "round",
|
|
@@ -3021,7 +3165,7 @@ var Calendar = ({
|
|
|
3021
3165
|
]
|
|
3022
3166
|
}
|
|
3023
3167
|
),
|
|
3024
|
-
isMonthPickerOpen && /* @__PURE__ */
|
|
3168
|
+
isMonthPickerOpen && /* @__PURE__ */ jsx22(
|
|
3025
3169
|
MonthYearPicker,
|
|
3026
3170
|
{
|
|
3027
3171
|
monthPickerRef,
|
|
@@ -3033,20 +3177,20 @@ var Calendar = ({
|
|
|
3033
3177
|
)
|
|
3034
3178
|
] }),
|
|
3035
3179
|
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-1", children: [
|
|
3036
|
-
/* @__PURE__ */
|
|
3180
|
+
/* @__PURE__ */ jsx22(
|
|
3037
3181
|
"button",
|
|
3038
3182
|
{
|
|
3039
3183
|
onClick: goToPreviousMonth,
|
|
3040
3184
|
className: "p-1 rounded-md hover:bg-background-100 transition-colors",
|
|
3041
3185
|
"aria-label": "M\xEAs anterior",
|
|
3042
|
-
children: /* @__PURE__ */
|
|
3186
|
+
children: /* @__PURE__ */ jsx22(
|
|
3043
3187
|
"svg",
|
|
3044
3188
|
{
|
|
3045
3189
|
className: "w-6 h-6 text-primary-950",
|
|
3046
3190
|
fill: "none",
|
|
3047
3191
|
stroke: "currentColor",
|
|
3048
3192
|
viewBox: "0 0 24 24",
|
|
3049
|
-
children: /* @__PURE__ */
|
|
3193
|
+
children: /* @__PURE__ */ jsx22(
|
|
3050
3194
|
"path",
|
|
3051
3195
|
{
|
|
3052
3196
|
strokeLinecap: "round",
|
|
@@ -3059,20 +3203,20 @@ var Calendar = ({
|
|
|
3059
3203
|
)
|
|
3060
3204
|
}
|
|
3061
3205
|
),
|
|
3062
|
-
/* @__PURE__ */
|
|
3206
|
+
/* @__PURE__ */ jsx22(
|
|
3063
3207
|
"button",
|
|
3064
3208
|
{
|
|
3065
3209
|
onClick: goToNextMonth,
|
|
3066
3210
|
className: "p-1 rounded-md hover:bg-background-100 transition-colors",
|
|
3067
3211
|
"aria-label": "Pr\xF3ximo m\xEAs",
|
|
3068
|
-
children: /* @__PURE__ */
|
|
3212
|
+
children: /* @__PURE__ */ jsx22(
|
|
3069
3213
|
"svg",
|
|
3070
3214
|
{
|
|
3071
3215
|
className: "w-6 h-6 text-primary-950",
|
|
3072
3216
|
fill: "none",
|
|
3073
3217
|
stroke: "currentColor",
|
|
3074
3218
|
viewBox: "0 0 24 24",
|
|
3075
|
-
children: /* @__PURE__ */
|
|
3219
|
+
children: /* @__PURE__ */ jsx22(
|
|
3076
3220
|
"path",
|
|
3077
3221
|
{
|
|
3078
3222
|
strokeLinecap: "round",
|
|
@@ -3087,7 +3231,7 @@ var Calendar = ({
|
|
|
3087
3231
|
)
|
|
3088
3232
|
] })
|
|
3089
3233
|
] }),
|
|
3090
|
-
/* @__PURE__ */
|
|
3234
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ jsx22(
|
|
3091
3235
|
"div",
|
|
3092
3236
|
{
|
|
3093
3237
|
className: "h-4 flex items-center justify-center text-xs font-semibold text-text-500",
|
|
@@ -3095,13 +3239,13 @@ var Calendar = ({
|
|
|
3095
3239
|
},
|
|
3096
3240
|
day
|
|
3097
3241
|
)) }),
|
|
3098
|
-
/* @__PURE__ */
|
|
3242
|
+
/* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7", children: calendarData.map((day) => {
|
|
3099
3243
|
if (!day.isCurrentMonth) {
|
|
3100
|
-
return /* @__PURE__ */
|
|
3244
|
+
return /* @__PURE__ */ jsx22(
|
|
3101
3245
|
"div",
|
|
3102
3246
|
{
|
|
3103
3247
|
className: "flex items-center justify-center",
|
|
3104
|
-
children: /* @__PURE__ */
|
|
3248
|
+
children: /* @__PURE__ */ jsx22("div", { className: "w-10 h-10" })
|
|
3105
3249
|
},
|
|
3106
3250
|
day.date.getTime()
|
|
3107
3251
|
);
|
|
@@ -3111,11 +3255,11 @@ var Calendar = ({
|
|
|
3111
3255
|
variant,
|
|
3112
3256
|
showActivities
|
|
3113
3257
|
);
|
|
3114
|
-
return /* @__PURE__ */
|
|
3258
|
+
return /* @__PURE__ */ jsx22(
|
|
3115
3259
|
"div",
|
|
3116
3260
|
{
|
|
3117
3261
|
className: "flex items-center justify-center",
|
|
3118
|
-
children: /* @__PURE__ */
|
|
3262
|
+
children: /* @__PURE__ */ jsx22(
|
|
3119
3263
|
"button",
|
|
3120
3264
|
{
|
|
3121
3265
|
className: `
|
|
@@ -3144,9 +3288,9 @@ var Calendar = ({
|
|
|
3144
3288
|
var Calendar_default = Calendar;
|
|
3145
3289
|
|
|
3146
3290
|
// src/components/Modal/Modal.tsx
|
|
3147
|
-
import { useEffect as
|
|
3291
|
+
import { useEffect as useEffect4 } from "react";
|
|
3148
3292
|
import { X as X2 } from "phosphor-react";
|
|
3149
|
-
import { jsx as
|
|
3293
|
+
import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
3150
3294
|
var SIZE_CLASSES10 = {
|
|
3151
3295
|
xs: "max-w-[360px]",
|
|
3152
3296
|
sm: "max-w-[420px]",
|
|
@@ -3166,7 +3310,7 @@ var Modal = ({
|
|
|
3166
3310
|
footer,
|
|
3167
3311
|
hideCloseButton = false
|
|
3168
3312
|
}) => {
|
|
3169
|
-
|
|
3313
|
+
useEffect4(() => {
|
|
3170
3314
|
if (!isOpen || !closeOnEscape) return;
|
|
3171
3315
|
const handleEscape = (event) => {
|
|
3172
3316
|
if (event.key === "Escape") {
|
|
@@ -3176,7 +3320,7 @@ var Modal = ({
|
|
|
3176
3320
|
document.addEventListener("keydown", handleEscape);
|
|
3177
3321
|
return () => document.removeEventListener("keydown", handleEscape);
|
|
3178
3322
|
}, [isOpen, closeOnEscape, onClose]);
|
|
3179
|
-
|
|
3323
|
+
useEffect4(() => {
|
|
3180
3324
|
const originalOverflow = document.body.style.overflow;
|
|
3181
3325
|
if (isOpen) {
|
|
3182
3326
|
document.body.style.overflow = "hidden";
|
|
@@ -3207,7 +3351,7 @@ var Modal = ({
|
|
|
3207
3351
|
dialogResetClasses,
|
|
3208
3352
|
className
|
|
3209
3353
|
);
|
|
3210
|
-
return /* @__PURE__ */
|
|
3354
|
+
return /* @__PURE__ */ jsx23(
|
|
3211
3355
|
"div",
|
|
3212
3356
|
{
|
|
3213
3357
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs",
|
|
@@ -3218,19 +3362,19 @@ var Modal = ({
|
|
|
3218
3362
|
"aria-label": "Fechar modal clicando no fundo",
|
|
3219
3363
|
children: /* @__PURE__ */ jsxs17("dialog", { className: modalClasses, "aria-labelledby": "modal-title", open: true, children: [
|
|
3220
3364
|
/* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between px-6 py-6", children: [
|
|
3221
|
-
/* @__PURE__ */
|
|
3222
|
-
!hideCloseButton && /* @__PURE__ */
|
|
3365
|
+
/* @__PURE__ */ jsx23("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
|
|
3366
|
+
!hideCloseButton && /* @__PURE__ */ jsx23(
|
|
3223
3367
|
"button",
|
|
3224
3368
|
{
|
|
3225
3369
|
onClick: onClose,
|
|
3226
3370
|
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",
|
|
3227
3371
|
"aria-label": "Fechar modal",
|
|
3228
|
-
children: /* @__PURE__ */
|
|
3372
|
+
children: /* @__PURE__ */ jsx23(X2, { size: 18 })
|
|
3229
3373
|
}
|
|
3230
3374
|
)
|
|
3231
3375
|
] }),
|
|
3232
|
-
/* @__PURE__ */
|
|
3233
|
-
footer && /* @__PURE__ */
|
|
3376
|
+
/* @__PURE__ */ jsx23("div", { className: "px-6 pb-6", children: /* @__PURE__ */ jsx23("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
|
|
3377
|
+
footer && /* @__PURE__ */ jsx23("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
|
|
3234
3378
|
] })
|
|
3235
3379
|
}
|
|
3236
3380
|
);
|
|
@@ -3239,17 +3383,17 @@ var Modal_default = Modal;
|
|
|
3239
3383
|
|
|
3240
3384
|
// src/components/Accordation/Accordation.tsx
|
|
3241
3385
|
import {
|
|
3242
|
-
forwardRef as
|
|
3243
|
-
useId as
|
|
3386
|
+
forwardRef as forwardRef11,
|
|
3387
|
+
useId as useId6,
|
|
3244
3388
|
useState as useState7
|
|
3245
3389
|
} from "react";
|
|
3246
3390
|
|
|
3247
3391
|
// src/components/Card/Card.tsx
|
|
3248
3392
|
import {
|
|
3249
|
-
forwardRef as
|
|
3393
|
+
forwardRef as forwardRef10,
|
|
3250
3394
|
Fragment as Fragment3,
|
|
3251
3395
|
useState as useState6,
|
|
3252
|
-
useRef as
|
|
3396
|
+
useRef as useRef4
|
|
3253
3397
|
} from "react";
|
|
3254
3398
|
import {
|
|
3255
3399
|
CaretRight,
|
|
@@ -3263,7 +3407,7 @@ import {
|
|
|
3263
3407
|
SpeakerSimpleX,
|
|
3264
3408
|
XCircle as XCircle2
|
|
3265
3409
|
} from "phosphor-react";
|
|
3266
|
-
import { Fragment as Fragment4, jsx as
|
|
3410
|
+
import { Fragment as Fragment4, jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3267
3411
|
var CARD_BASE_CLASSES = {
|
|
3268
3412
|
default: "w-full bg-background border border-border-50 rounded-xl",
|
|
3269
3413
|
compact: "w-full bg-background border border-border-50 rounded-lg",
|
|
@@ -3289,7 +3433,7 @@ var CARD_CURSOR_CLASSES = {
|
|
|
3289
3433
|
default: "",
|
|
3290
3434
|
pointer: "cursor-pointer"
|
|
3291
3435
|
};
|
|
3292
|
-
var CardBase =
|
|
3436
|
+
var CardBase = forwardRef10(
|
|
3293
3437
|
({
|
|
3294
3438
|
children,
|
|
3295
3439
|
variant = "default",
|
|
@@ -3313,7 +3457,7 @@ var CardBase = forwardRef9(
|
|
|
3313
3457
|
cursorClasses,
|
|
3314
3458
|
className
|
|
3315
3459
|
].filter(Boolean).join(" ");
|
|
3316
|
-
return /* @__PURE__ */
|
|
3460
|
+
return /* @__PURE__ */ jsx24("div", { ref, className: combinedClasses, ...props, children });
|
|
3317
3461
|
}
|
|
3318
3462
|
);
|
|
3319
3463
|
var ACTION_CARD_CLASSES = {
|
|
@@ -3340,7 +3484,7 @@ var ACTION_HEADER_CLASSES = {
|
|
|
3340
3484
|
error: "text-error-300",
|
|
3341
3485
|
info: "text-info-300"
|
|
3342
3486
|
};
|
|
3343
|
-
var CardActivitiesResults =
|
|
3487
|
+
var CardActivitiesResults = forwardRef10(
|
|
3344
3488
|
({
|
|
3345
3489
|
icon,
|
|
3346
3490
|
title,
|
|
@@ -3375,7 +3519,7 @@ var CardActivitiesResults = forwardRef9(
|
|
|
3375
3519
|
extended ? "rounded-t-xl" : "rounded-xl"
|
|
3376
3520
|
),
|
|
3377
3521
|
children: [
|
|
3378
|
-
/* @__PURE__ */
|
|
3522
|
+
/* @__PURE__ */ jsx24(
|
|
3379
3523
|
"span",
|
|
3380
3524
|
{
|
|
3381
3525
|
className: cn(
|
|
@@ -3385,7 +3529,7 @@ var CardActivitiesResults = forwardRef9(
|
|
|
3385
3529
|
children: icon
|
|
3386
3530
|
}
|
|
3387
3531
|
),
|
|
3388
|
-
/* @__PURE__ */
|
|
3532
|
+
/* @__PURE__ */ jsx24(
|
|
3389
3533
|
Text_default,
|
|
3390
3534
|
{
|
|
3391
3535
|
size: "2xs",
|
|
@@ -3394,7 +3538,7 @@ var CardActivitiesResults = forwardRef9(
|
|
|
3394
3538
|
children: title
|
|
3395
3539
|
}
|
|
3396
3540
|
),
|
|
3397
|
-
/* @__PURE__ */
|
|
3541
|
+
/* @__PURE__ */ jsx24(
|
|
3398
3542
|
"p",
|
|
3399
3543
|
{
|
|
3400
3544
|
className: cn("text-lg font-bold truncate", actionSubTitleClasses),
|
|
@@ -3405,7 +3549,7 @@ var CardActivitiesResults = forwardRef9(
|
|
|
3405
3549
|
}
|
|
3406
3550
|
),
|
|
3407
3551
|
extended && /* @__PURE__ */ jsxs18("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
|
|
3408
|
-
/* @__PURE__ */
|
|
3552
|
+
/* @__PURE__ */ jsx24(
|
|
3409
3553
|
"p",
|
|
3410
3554
|
{
|
|
3411
3555
|
className: cn(
|
|
@@ -3415,14 +3559,14 @@ var CardActivitiesResults = forwardRef9(
|
|
|
3415
3559
|
children: header
|
|
3416
3560
|
}
|
|
3417
3561
|
),
|
|
3418
|
-
/* @__PURE__ */
|
|
3562
|
+
/* @__PURE__ */ jsx24(Badge_default, { size: "large", action: "info", children: description })
|
|
3419
3563
|
] })
|
|
3420
3564
|
]
|
|
3421
3565
|
}
|
|
3422
3566
|
);
|
|
3423
3567
|
}
|
|
3424
3568
|
);
|
|
3425
|
-
var CardQuestions =
|
|
3569
|
+
var CardQuestions = forwardRef10(
|
|
3426
3570
|
({
|
|
3427
3571
|
header,
|
|
3428
3572
|
state = "undone",
|
|
@@ -3445,9 +3589,9 @@ var CardQuestions = forwardRef9(
|
|
|
3445
3589
|
...props,
|
|
3446
3590
|
children: [
|
|
3447
3591
|
/* @__PURE__ */ jsxs18("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
3448
|
-
/* @__PURE__ */
|
|
3592
|
+
/* @__PURE__ */ jsx24("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
|
|
3449
3593
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-row gap-6 items-center", children: [
|
|
3450
|
-
/* @__PURE__ */
|
|
3594
|
+
/* @__PURE__ */ jsx24(
|
|
3451
3595
|
Badge_default,
|
|
3452
3596
|
{
|
|
3453
3597
|
size: "medium",
|
|
@@ -3458,11 +3602,11 @@ var CardQuestions = forwardRef9(
|
|
|
3458
3602
|
),
|
|
3459
3603
|
/* @__PURE__ */ jsxs18("span", { className: "flex flex-row items-center gap-1 text-text-700 text-xs", children: [
|
|
3460
3604
|
isDone ? "Nota" : "Sem nota",
|
|
3461
|
-
isDone && /* @__PURE__ */
|
|
3605
|
+
isDone && /* @__PURE__ */ jsx24(Badge_default, { size: "medium", action: "success", children: "00" })
|
|
3462
3606
|
] })
|
|
3463
3607
|
] })
|
|
3464
3608
|
] }),
|
|
3465
|
-
/* @__PURE__ */
|
|
3609
|
+
/* @__PURE__ */ jsx24("span", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx24(
|
|
3466
3610
|
Button_default,
|
|
3467
3611
|
{
|
|
3468
3612
|
size: "extra-small",
|
|
@@ -3476,7 +3620,7 @@ var CardQuestions = forwardRef9(
|
|
|
3476
3620
|
);
|
|
3477
3621
|
}
|
|
3478
3622
|
);
|
|
3479
|
-
var CardProgress =
|
|
3623
|
+
var CardProgress = forwardRef10(
|
|
3480
3624
|
({
|
|
3481
3625
|
header,
|
|
3482
3626
|
subhead,
|
|
@@ -3496,16 +3640,16 @@ var CardProgress = forwardRef9(
|
|
|
3496
3640
|
horizontal: /* @__PURE__ */ jsxs18(Fragment4, { children: [
|
|
3497
3641
|
showDates && /* @__PURE__ */ jsxs18("div", { className: "flex flex-row gap-6 items-center", children: [
|
|
3498
3642
|
initialDate && /* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
|
|
3499
|
-
/* @__PURE__ */
|
|
3500
|
-
/* @__PURE__ */
|
|
3643
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
|
|
3644
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-600", children: initialDate })
|
|
3501
3645
|
] }),
|
|
3502
3646
|
endDate && /* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
|
|
3503
|
-
/* @__PURE__ */
|
|
3504
|
-
/* @__PURE__ */
|
|
3647
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-800 font-semibold", children: "Fim" }),
|
|
3648
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-600", children: endDate })
|
|
3505
3649
|
] })
|
|
3506
3650
|
] }),
|
|
3507
3651
|
/* @__PURE__ */ jsxs18("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
|
|
3508
|
-
/* @__PURE__ */
|
|
3652
|
+
/* @__PURE__ */ jsx24(
|
|
3509
3653
|
ProgressBar_default,
|
|
3510
3654
|
{
|
|
3511
3655
|
size: "small",
|
|
@@ -3530,7 +3674,7 @@ var CardProgress = forwardRef9(
|
|
|
3530
3674
|
)
|
|
3531
3675
|
] })
|
|
3532
3676
|
] }),
|
|
3533
|
-
vertical: /* @__PURE__ */
|
|
3677
|
+
vertical: /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-800", children: subhead })
|
|
3534
3678
|
};
|
|
3535
3679
|
return /* @__PURE__ */ jsxs18(
|
|
3536
3680
|
CardBase,
|
|
@@ -3543,7 +3687,7 @@ var CardProgress = forwardRef9(
|
|
|
3543
3687
|
className: cn(isHorizontal ? "h-20" : "", className),
|
|
3544
3688
|
...props,
|
|
3545
3689
|
children: [
|
|
3546
|
-
/* @__PURE__ */
|
|
3690
|
+
/* @__PURE__ */ jsx24(
|
|
3547
3691
|
"div",
|
|
3548
3692
|
{
|
|
3549
3693
|
className: cn(
|
|
@@ -3564,7 +3708,7 @@ var CardProgress = forwardRef9(
|
|
|
3564
3708
|
!isHorizontal && "gap-4"
|
|
3565
3709
|
),
|
|
3566
3710
|
children: [
|
|
3567
|
-
/* @__PURE__ */
|
|
3711
|
+
/* @__PURE__ */ jsx24(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
|
|
3568
3712
|
contentComponent[direction]
|
|
3569
3713
|
]
|
|
3570
3714
|
}
|
|
@@ -3574,7 +3718,7 @@ var CardProgress = forwardRef9(
|
|
|
3574
3718
|
);
|
|
3575
3719
|
}
|
|
3576
3720
|
);
|
|
3577
|
-
var CardTopic =
|
|
3721
|
+
var CardTopic = forwardRef10(
|
|
3578
3722
|
({
|
|
3579
3723
|
header,
|
|
3580
3724
|
subHead,
|
|
@@ -3595,13 +3739,13 @@ var CardTopic = forwardRef9(
|
|
|
3595
3739
|
className: cn("justify-center gap-2 py-2 px-4", className),
|
|
3596
3740
|
...props,
|
|
3597
3741
|
children: [
|
|
3598
|
-
subHead && /* @__PURE__ */
|
|
3599
|
-
/* @__PURE__ */
|
|
3600
|
-
index < subHead.length - 1 && /* @__PURE__ */
|
|
3742
|
+
subHead && /* @__PURE__ */ jsx24("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ jsxs18(Fragment3, { children: [
|
|
3743
|
+
/* @__PURE__ */ jsx24("p", { children: text }),
|
|
3744
|
+
index < subHead.length - 1 && /* @__PURE__ */ jsx24("p", { children: "\u2022" })
|
|
3601
3745
|
] }, `${text} - ${index}`)) }),
|
|
3602
|
-
/* @__PURE__ */
|
|
3746
|
+
/* @__PURE__ */ jsx24("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
|
|
3603
3747
|
/* @__PURE__ */ jsxs18("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
|
|
3604
|
-
/* @__PURE__ */
|
|
3748
|
+
/* @__PURE__ */ jsx24(
|
|
3605
3749
|
ProgressBar_default,
|
|
3606
3750
|
{
|
|
3607
3751
|
size: "small",
|
|
@@ -3630,7 +3774,7 @@ var CardTopic = forwardRef9(
|
|
|
3630
3774
|
);
|
|
3631
3775
|
}
|
|
3632
3776
|
);
|
|
3633
|
-
var CardPerformance =
|
|
3777
|
+
var CardPerformance = forwardRef10(
|
|
3634
3778
|
({
|
|
3635
3779
|
header,
|
|
3636
3780
|
progress,
|
|
@@ -3660,8 +3804,8 @@ var CardPerformance = forwardRef9(
|
|
|
3660
3804
|
children: [
|
|
3661
3805
|
/* @__PURE__ */ jsxs18("div", { className: "w-full flex flex-col justify-between gap-2", children: [
|
|
3662
3806
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-row justify-between items-center gap-2", children: [
|
|
3663
|
-
/* @__PURE__ */
|
|
3664
|
-
actionVariant === "button" && /* @__PURE__ */
|
|
3807
|
+
/* @__PURE__ */ jsx24("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
|
|
3808
|
+
actionVariant === "button" && /* @__PURE__ */ jsx24(
|
|
3665
3809
|
Button_default,
|
|
3666
3810
|
{
|
|
3667
3811
|
variant: "outline",
|
|
@@ -3672,16 +3816,16 @@ var CardPerformance = forwardRef9(
|
|
|
3672
3816
|
}
|
|
3673
3817
|
)
|
|
3674
3818
|
] }),
|
|
3675
|
-
/* @__PURE__ */
|
|
3819
|
+
/* @__PURE__ */ jsx24("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ jsx24(
|
|
3676
3820
|
ProgressBar_default,
|
|
3677
3821
|
{
|
|
3678
3822
|
value: progress,
|
|
3679
3823
|
label: `${progress}% ${labelProgress}`,
|
|
3680
3824
|
variant: progressVariant
|
|
3681
3825
|
}
|
|
3682
|
-
) : /* @__PURE__ */
|
|
3826
|
+
) : /* @__PURE__ */ jsx24("p", { className: "text-xs text-text-600 truncate", children: description }) })
|
|
3683
3827
|
] }),
|
|
3684
|
-
actionVariant == "caret" && /* @__PURE__ */
|
|
3828
|
+
actionVariant == "caret" && /* @__PURE__ */ jsx24(
|
|
3685
3829
|
CaretRight,
|
|
3686
3830
|
{
|
|
3687
3831
|
className: "size-4.5 text-text-800 cursor-pointer",
|
|
@@ -3693,7 +3837,7 @@ var CardPerformance = forwardRef9(
|
|
|
3693
3837
|
);
|
|
3694
3838
|
}
|
|
3695
3839
|
);
|
|
3696
|
-
var CardResults =
|
|
3840
|
+
var CardResults = forwardRef10(
|
|
3697
3841
|
({
|
|
3698
3842
|
header,
|
|
3699
3843
|
correct_answers,
|
|
@@ -3715,7 +3859,7 @@ var CardResults = forwardRef9(
|
|
|
3715
3859
|
className: cn("items-center cursor-pointer pr-4", className),
|
|
3716
3860
|
...props,
|
|
3717
3861
|
children: [
|
|
3718
|
-
/* @__PURE__ */
|
|
3862
|
+
/* @__PURE__ */ jsx24(
|
|
3719
3863
|
"div",
|
|
3720
3864
|
{
|
|
3721
3865
|
className: cn(
|
|
@@ -3735,7 +3879,7 @@ var CardResults = forwardRef9(
|
|
|
3735
3879
|
isRow ? "flex-row items-center gap-2" : "flex-col"
|
|
3736
3880
|
),
|
|
3737
3881
|
children: [
|
|
3738
|
-
/* @__PURE__ */
|
|
3882
|
+
/* @__PURE__ */ jsx24("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
|
|
3739
3883
|
/* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center", children: [
|
|
3740
3884
|
/* @__PURE__ */ jsxs18(
|
|
3741
3885
|
Badge_default,
|
|
@@ -3743,7 +3887,7 @@ var CardResults = forwardRef9(
|
|
|
3743
3887
|
action: "success",
|
|
3744
3888
|
variant: "solid",
|
|
3745
3889
|
size: "large",
|
|
3746
|
-
iconLeft: /* @__PURE__ */
|
|
3890
|
+
iconLeft: /* @__PURE__ */ jsx24(CheckCircle3, {}),
|
|
3747
3891
|
children: [
|
|
3748
3892
|
correct_answers,
|
|
3749
3893
|
" Corretas"
|
|
@@ -3756,7 +3900,7 @@ var CardResults = forwardRef9(
|
|
|
3756
3900
|
action: "error",
|
|
3757
3901
|
variant: "solid",
|
|
3758
3902
|
size: "large",
|
|
3759
|
-
iconLeft: /* @__PURE__ */
|
|
3903
|
+
iconLeft: /* @__PURE__ */ jsx24(XCircle2, {}),
|
|
3760
3904
|
children: [
|
|
3761
3905
|
incorrect_answers,
|
|
3762
3906
|
" Incorretas"
|
|
@@ -3767,15 +3911,15 @@ var CardResults = forwardRef9(
|
|
|
3767
3911
|
]
|
|
3768
3912
|
}
|
|
3769
3913
|
),
|
|
3770
|
-
/* @__PURE__ */
|
|
3914
|
+
/* @__PURE__ */ jsx24(CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
|
|
3771
3915
|
]
|
|
3772
3916
|
}
|
|
3773
3917
|
);
|
|
3774
3918
|
}
|
|
3775
3919
|
);
|
|
3776
|
-
var CardStatus =
|
|
3920
|
+
var CardStatus = forwardRef10(
|
|
3777
3921
|
({ header, className, status, label, ...props }, ref) => {
|
|
3778
|
-
return /* @__PURE__ */
|
|
3922
|
+
return /* @__PURE__ */ jsx24(
|
|
3779
3923
|
CardBase,
|
|
3780
3924
|
{
|
|
3781
3925
|
ref,
|
|
@@ -3785,27 +3929,27 @@ var CardStatus = forwardRef9(
|
|
|
3785
3929
|
className: cn("items-center cursor-pointer", className),
|
|
3786
3930
|
...props,
|
|
3787
3931
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
|
|
3788
|
-
/* @__PURE__ */
|
|
3932
|
+
/* @__PURE__ */ jsx24("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
|
|
3789
3933
|
/* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
|
|
3790
|
-
status && /* @__PURE__ */
|
|
3934
|
+
status && /* @__PURE__ */ jsx24(
|
|
3791
3935
|
Badge_default,
|
|
3792
3936
|
{
|
|
3793
3937
|
action: status == "correct" ? "success" : "error",
|
|
3794
3938
|
variant: "solid",
|
|
3795
3939
|
size: "medium",
|
|
3796
|
-
iconLeft: /* @__PURE__ */
|
|
3940
|
+
iconLeft: /* @__PURE__ */ jsx24(CheckCircle3, {}),
|
|
3797
3941
|
children: status == "correct" ? "Correta" : "Incorreta"
|
|
3798
3942
|
}
|
|
3799
3943
|
),
|
|
3800
|
-
label && /* @__PURE__ */
|
|
3944
|
+
label && /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-800", children: label })
|
|
3801
3945
|
] }),
|
|
3802
|
-
/* @__PURE__ */
|
|
3946
|
+
/* @__PURE__ */ jsx24(CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
|
|
3803
3947
|
] })
|
|
3804
3948
|
}
|
|
3805
3949
|
);
|
|
3806
3950
|
}
|
|
3807
3951
|
);
|
|
3808
|
-
var CardSettings =
|
|
3952
|
+
var CardSettings = forwardRef10(
|
|
3809
3953
|
({ header, className, icon, ...props }, ref) => {
|
|
3810
3954
|
return /* @__PURE__ */ jsxs18(
|
|
3811
3955
|
CardBase,
|
|
@@ -3820,15 +3964,15 @@ var CardSettings = forwardRef9(
|
|
|
3820
3964
|
),
|
|
3821
3965
|
...props,
|
|
3822
3966
|
children: [
|
|
3823
|
-
/* @__PURE__ */
|
|
3824
|
-
/* @__PURE__ */
|
|
3825
|
-
/* @__PURE__ */
|
|
3967
|
+
/* @__PURE__ */ jsx24("span", { className: "[&>svg]:size-6", children: icon }),
|
|
3968
|
+
/* @__PURE__ */ jsx24("p", { className: "w-full text-sm truncate", children: header }),
|
|
3969
|
+
/* @__PURE__ */ jsx24(CaretRight, { size: 24, className: "cursor-pointer" })
|
|
3826
3970
|
]
|
|
3827
3971
|
}
|
|
3828
3972
|
);
|
|
3829
3973
|
}
|
|
3830
3974
|
);
|
|
3831
|
-
var CardSupport =
|
|
3975
|
+
var CardSupport = forwardRef10(
|
|
3832
3976
|
({ header, className, direction = "col", children, ...props }, ref) => {
|
|
3833
3977
|
return /* @__PURE__ */ jsxs18(
|
|
3834
3978
|
CardBase,
|
|
@@ -3851,18 +3995,18 @@ var CardSupport = forwardRef9(
|
|
|
3851
3995
|
direction == "col" ? "flex-col" : "flex-row items-center"
|
|
3852
3996
|
),
|
|
3853
3997
|
children: [
|
|
3854
|
-
/* @__PURE__ */
|
|
3855
|
-
/* @__PURE__ */
|
|
3998
|
+
/* @__PURE__ */ jsx24("span", { className: "w-full min-w-0", children: /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
|
|
3999
|
+
/* @__PURE__ */ jsx24("span", { className: "flex flex-row gap-1", children })
|
|
3856
4000
|
]
|
|
3857
4001
|
}
|
|
3858
4002
|
),
|
|
3859
|
-
/* @__PURE__ */
|
|
4003
|
+
/* @__PURE__ */ jsx24(CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
|
|
3860
4004
|
]
|
|
3861
4005
|
}
|
|
3862
4006
|
);
|
|
3863
4007
|
}
|
|
3864
4008
|
);
|
|
3865
|
-
var CardForum =
|
|
4009
|
+
var CardForum = forwardRef10(
|
|
3866
4010
|
({
|
|
3867
4011
|
title,
|
|
3868
4012
|
content,
|
|
@@ -3887,7 +4031,7 @@ var CardForum = forwardRef9(
|
|
|
3887
4031
|
className: cn("w-auto h-auto gap-3", className),
|
|
3888
4032
|
...props,
|
|
3889
4033
|
children: [
|
|
3890
|
-
/* @__PURE__ */
|
|
4034
|
+
/* @__PURE__ */ jsx24(
|
|
3891
4035
|
"button",
|
|
3892
4036
|
{
|
|
3893
4037
|
type: "button",
|
|
@@ -3898,7 +4042,7 @@ var CardForum = forwardRef9(
|
|
|
3898
4042
|
),
|
|
3899
4043
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
3900
4044
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
|
|
3901
|
-
/* @__PURE__ */
|
|
4045
|
+
/* @__PURE__ */ jsx24("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
|
|
3902
4046
|
/* @__PURE__ */ jsxs18("p", { className: "text-xs text-text-600", children: [
|
|
3903
4047
|
"\u2022 ",
|
|
3904
4048
|
date,
|
|
@@ -3906,7 +4050,7 @@ var CardForum = forwardRef9(
|
|
|
3906
4050
|
hour
|
|
3907
4051
|
] })
|
|
3908
4052
|
] }),
|
|
3909
|
-
/* @__PURE__ */
|
|
4053
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
|
|
3910
4054
|
/* @__PURE__ */ jsxs18(
|
|
3911
4055
|
"button",
|
|
3912
4056
|
{
|
|
@@ -3915,7 +4059,7 @@ var CardForum = forwardRef9(
|
|
|
3915
4059
|
onClick: () => onClickComments?.(valueComments),
|
|
3916
4060
|
className: "text-text-600 flex flex-row gap-2 items-center",
|
|
3917
4061
|
children: [
|
|
3918
|
-
/* @__PURE__ */
|
|
4062
|
+
/* @__PURE__ */ jsx24(ChatCircleText, { "aria-hidden": "true", size: 16 }),
|
|
3919
4063
|
/* @__PURE__ */ jsxs18("p", { className: "text-xs", children: [
|
|
3920
4064
|
comments,
|
|
3921
4065
|
" respostas"
|
|
@@ -3929,7 +4073,7 @@ var CardForum = forwardRef9(
|
|
|
3929
4073
|
);
|
|
3930
4074
|
}
|
|
3931
4075
|
);
|
|
3932
|
-
var CardAudio =
|
|
4076
|
+
var CardAudio = forwardRef10(
|
|
3933
4077
|
({
|
|
3934
4078
|
src,
|
|
3935
4079
|
title,
|
|
@@ -3948,7 +4092,7 @@ var CardAudio = forwardRef9(
|
|
|
3948
4092
|
const [duration, setDuration] = useState6(0);
|
|
3949
4093
|
const [volume, setVolume] = useState6(1);
|
|
3950
4094
|
const [showVolumeControl, setShowVolumeControl] = useState6(false);
|
|
3951
|
-
const audioRef =
|
|
4095
|
+
const audioRef = useRef4(null);
|
|
3952
4096
|
const formatTime = (time) => {
|
|
3953
4097
|
const minutes = Math.floor(time / 60);
|
|
3954
4098
|
const seconds = Math.floor(time % 60);
|
|
@@ -4003,12 +4147,12 @@ var CardAudio = forwardRef9(
|
|
|
4003
4147
|
};
|
|
4004
4148
|
const getVolumeIcon = () => {
|
|
4005
4149
|
if (volume === 0) {
|
|
4006
|
-
return /* @__PURE__ */
|
|
4150
|
+
return /* @__PURE__ */ jsx24(SpeakerSimpleX, {});
|
|
4007
4151
|
}
|
|
4008
4152
|
if (volume < 0.5) {
|
|
4009
|
-
return /* @__PURE__ */
|
|
4153
|
+
return /* @__PURE__ */ jsx24(SpeakerLow, {});
|
|
4010
4154
|
}
|
|
4011
|
-
return /* @__PURE__ */
|
|
4155
|
+
return /* @__PURE__ */ jsx24(SpeakerHigh, {});
|
|
4012
4156
|
};
|
|
4013
4157
|
return /* @__PURE__ */ jsxs18(
|
|
4014
4158
|
CardBase,
|
|
@@ -4020,7 +4164,7 @@ var CardAudio = forwardRef9(
|
|
|
4020
4164
|
className: cn("w-auto h-14 items-center gap-2", className),
|
|
4021
4165
|
...props,
|
|
4022
4166
|
children: [
|
|
4023
|
-
/* @__PURE__ */
|
|
4167
|
+
/* @__PURE__ */ jsx24(
|
|
4024
4168
|
"audio",
|
|
4025
4169
|
{
|
|
4026
4170
|
ref: audioRef,
|
|
@@ -4032,7 +4176,7 @@ var CardAudio = forwardRef9(
|
|
|
4032
4176
|
onEnded: handleEnded,
|
|
4033
4177
|
"data-testid": "audio-element",
|
|
4034
4178
|
"aria-label": title,
|
|
4035
|
-
children: tracks ? tracks.map((track) => /* @__PURE__ */
|
|
4179
|
+
children: tracks ? tracks.map((track) => /* @__PURE__ */ jsx24(
|
|
4036
4180
|
"track",
|
|
4037
4181
|
{
|
|
4038
4182
|
kind: track.kind,
|
|
@@ -4042,7 +4186,7 @@ var CardAudio = forwardRef9(
|
|
|
4042
4186
|
default: track.default
|
|
4043
4187
|
},
|
|
4044
4188
|
track.src
|
|
4045
|
-
)) : /* @__PURE__ */
|
|
4189
|
+
)) : /* @__PURE__ */ jsx24(
|
|
4046
4190
|
"track",
|
|
4047
4191
|
{
|
|
4048
4192
|
kind: "captions",
|
|
@@ -4053,7 +4197,7 @@ var CardAudio = forwardRef9(
|
|
|
4053
4197
|
)
|
|
4054
4198
|
}
|
|
4055
4199
|
),
|
|
4056
|
-
/* @__PURE__ */
|
|
4200
|
+
/* @__PURE__ */ jsx24(
|
|
4057
4201
|
"button",
|
|
4058
4202
|
{
|
|
4059
4203
|
type: "button",
|
|
@@ -4061,14 +4205,14 @@ var CardAudio = forwardRef9(
|
|
|
4061
4205
|
disabled: !src,
|
|
4062
4206
|
className: "cursor-pointer text-text-950 hover:text-primary-600 disabled:text-text-400 disabled:cursor-not-allowed",
|
|
4063
4207
|
"aria-label": isPlaying ? "Pausar" : "Reproduzir",
|
|
4064
|
-
children: isPlaying ? /* @__PURE__ */
|
|
4065
|
-
/* @__PURE__ */
|
|
4066
|
-
/* @__PURE__ */
|
|
4067
|
-
] }) }) : /* @__PURE__ */
|
|
4208
|
+
children: isPlaying ? /* @__PURE__ */ jsx24("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ jsxs18("div", { className: "flex gap-0.5", children: [
|
|
4209
|
+
/* @__PURE__ */ jsx24("div", { className: "w-1 h-4 bg-current rounded-sm" }),
|
|
4210
|
+
/* @__PURE__ */ jsx24("div", { className: "w-1 h-4 bg-current rounded-sm" })
|
|
4211
|
+
] }) }) : /* @__PURE__ */ jsx24(Play, { size: 24 })
|
|
4068
4212
|
}
|
|
4069
4213
|
),
|
|
4070
|
-
/* @__PURE__ */
|
|
4071
|
-
/* @__PURE__ */
|
|
4214
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(currentTime) }),
|
|
4215
|
+
/* @__PURE__ */ jsx24("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ jsx24(
|
|
4072
4216
|
"button",
|
|
4073
4217
|
{
|
|
4074
4218
|
type: "button",
|
|
@@ -4083,7 +4227,7 @@ var CardAudio = forwardRef9(
|
|
|
4083
4227
|
}
|
|
4084
4228
|
},
|
|
4085
4229
|
"aria-label": "Barra de progresso do \xE1udio",
|
|
4086
|
-
children: /* @__PURE__ */
|
|
4230
|
+
children: /* @__PURE__ */ jsx24(
|
|
4087
4231
|
"div",
|
|
4088
4232
|
{
|
|
4089
4233
|
className: "h-full bg-primary-600 rounded-full transition-all duration-100",
|
|
@@ -4094,19 +4238,19 @@ var CardAudio = forwardRef9(
|
|
|
4094
4238
|
)
|
|
4095
4239
|
}
|
|
4096
4240
|
) }),
|
|
4097
|
-
/* @__PURE__ */
|
|
4241
|
+
/* @__PURE__ */ jsx24("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(duration) }),
|
|
4098
4242
|
/* @__PURE__ */ jsxs18("div", { className: "relative", children: [
|
|
4099
|
-
/* @__PURE__ */
|
|
4243
|
+
/* @__PURE__ */ jsx24(
|
|
4100
4244
|
"button",
|
|
4101
4245
|
{
|
|
4102
4246
|
type: "button",
|
|
4103
4247
|
onClick: toggleVolumeControl,
|
|
4104
4248
|
className: "cursor-pointer text-text-950 hover:text-primary-600",
|
|
4105
4249
|
"aria-label": "Controle de volume",
|
|
4106
|
-
children: /* @__PURE__ */
|
|
4250
|
+
children: /* @__PURE__ */ jsx24("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
|
|
4107
4251
|
}
|
|
4108
4252
|
),
|
|
4109
|
-
showVolumeControl && /* @__PURE__ */
|
|
4253
|
+
showVolumeControl && /* @__PURE__ */ jsx24(
|
|
4110
4254
|
"button",
|
|
4111
4255
|
{
|
|
4112
4256
|
type: "button",
|
|
@@ -4116,7 +4260,7 @@ var CardAudio = forwardRef9(
|
|
|
4116
4260
|
setShowVolumeControl(false);
|
|
4117
4261
|
}
|
|
4118
4262
|
},
|
|
4119
|
-
children: /* @__PURE__ */
|
|
4263
|
+
children: /* @__PURE__ */ jsx24(
|
|
4120
4264
|
"input",
|
|
4121
4265
|
{
|
|
4122
4266
|
type: "range",
|
|
@@ -4157,7 +4301,7 @@ var CardAudio = forwardRef9(
|
|
|
4157
4301
|
}
|
|
4158
4302
|
)
|
|
4159
4303
|
] }),
|
|
4160
|
-
/* @__PURE__ */
|
|
4304
|
+
/* @__PURE__ */ jsx24(
|
|
4161
4305
|
DotsThreeVertical,
|
|
4162
4306
|
{
|
|
4163
4307
|
size: 24,
|
|
@@ -4175,10 +4319,10 @@ var SIMULADO_BACKGROUND_CLASSES = {
|
|
|
4175
4319
|
simuladao: "bg-exam-3",
|
|
4176
4320
|
vestibular: "bg-exam-4"
|
|
4177
4321
|
};
|
|
4178
|
-
var CardSimulado =
|
|
4322
|
+
var CardSimulado = forwardRef10(
|
|
4179
4323
|
({ title, duration, info, backgroundColor, className, ...props }, ref) => {
|
|
4180
4324
|
const backgroundClass = SIMULADO_BACKGROUND_CLASSES[backgroundColor];
|
|
4181
|
-
return /* @__PURE__ */
|
|
4325
|
+
return /* @__PURE__ */ jsx24(
|
|
4182
4326
|
CardBase,
|
|
4183
4327
|
{
|
|
4184
4328
|
ref,
|
|
@@ -4193,16 +4337,16 @@ var CardSimulado = forwardRef9(
|
|
|
4193
4337
|
...props,
|
|
4194
4338
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center w-full gap-4", children: [
|
|
4195
4339
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
4196
|
-
/* @__PURE__ */
|
|
4340
|
+
/* @__PURE__ */ jsx24(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
|
|
4197
4341
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-4 text-text-700", children: [
|
|
4198
4342
|
duration && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1", children: [
|
|
4199
|
-
/* @__PURE__ */
|
|
4200
|
-
/* @__PURE__ */
|
|
4343
|
+
/* @__PURE__ */ jsx24(Clock, { size: 16, className: "flex-shrink-0" }),
|
|
4344
|
+
/* @__PURE__ */ jsx24(Text_default, { size: "sm", children: duration })
|
|
4201
4345
|
] }),
|
|
4202
|
-
/* @__PURE__ */
|
|
4346
|
+
/* @__PURE__ */ jsx24(Text_default, { size: "sm", className: "truncate", children: info })
|
|
4203
4347
|
] })
|
|
4204
4348
|
] }),
|
|
4205
|
-
/* @__PURE__ */
|
|
4349
|
+
/* @__PURE__ */ jsx24(
|
|
4206
4350
|
CaretRight,
|
|
4207
4351
|
{
|
|
4208
4352
|
size: 24,
|
|
@@ -4215,7 +4359,7 @@ var CardSimulado = forwardRef9(
|
|
|
4215
4359
|
);
|
|
4216
4360
|
}
|
|
4217
4361
|
);
|
|
4218
|
-
var CardTest =
|
|
4362
|
+
var CardTest = forwardRef10(
|
|
4219
4363
|
({
|
|
4220
4364
|
title,
|
|
4221
4365
|
duration,
|
|
@@ -4247,7 +4391,7 @@ var CardTest = forwardRef9(
|
|
|
4247
4391
|
const interactiveClasses = isSelectable ? "cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-950 focus:ring-offset-2" : "";
|
|
4248
4392
|
const selectedClasses = selected ? "ring-2 ring-primary-950 ring-offset-2" : "";
|
|
4249
4393
|
if (isSelectable) {
|
|
4250
|
-
return /* @__PURE__ */
|
|
4394
|
+
return /* @__PURE__ */ jsx24(
|
|
4251
4395
|
"button",
|
|
4252
4396
|
{
|
|
4253
4397
|
ref,
|
|
@@ -4260,7 +4404,7 @@ var CardTest = forwardRef9(
|
|
|
4260
4404
|
"aria-pressed": selected,
|
|
4261
4405
|
...props,
|
|
4262
4406
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
|
|
4263
|
-
/* @__PURE__ */
|
|
4407
|
+
/* @__PURE__ */ jsx24(
|
|
4264
4408
|
Text_default,
|
|
4265
4409
|
{
|
|
4266
4410
|
size: "md",
|
|
@@ -4271,8 +4415,8 @@ var CardTest = forwardRef9(
|
|
|
4271
4415
|
),
|
|
4272
4416
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
|
|
4273
4417
|
duration && /* @__PURE__ */ jsxs18("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
|
|
4274
|
-
/* @__PURE__ */
|
|
4275
|
-
/* @__PURE__ */
|
|
4418
|
+
/* @__PURE__ */ jsx24(Clock, { size: 16, className: "text-text-700" }),
|
|
4419
|
+
/* @__PURE__ */ jsx24(
|
|
4276
4420
|
Text_default,
|
|
4277
4421
|
{
|
|
4278
4422
|
size: "sm",
|
|
@@ -4281,7 +4425,7 @@ var CardTest = forwardRef9(
|
|
|
4281
4425
|
}
|
|
4282
4426
|
)
|
|
4283
4427
|
] }),
|
|
4284
|
-
/* @__PURE__ */
|
|
4428
|
+
/* @__PURE__ */ jsx24(
|
|
4285
4429
|
Text_default,
|
|
4286
4430
|
{
|
|
4287
4431
|
size: "sm",
|
|
@@ -4294,14 +4438,14 @@ var CardTest = forwardRef9(
|
|
|
4294
4438
|
}
|
|
4295
4439
|
);
|
|
4296
4440
|
}
|
|
4297
|
-
return /* @__PURE__ */
|
|
4441
|
+
return /* @__PURE__ */ jsx24(
|
|
4298
4442
|
"div",
|
|
4299
4443
|
{
|
|
4300
4444
|
ref,
|
|
4301
4445
|
className: cn(`${baseClasses} ${className}`.trim()),
|
|
4302
4446
|
...props,
|
|
4303
4447
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
|
|
4304
|
-
/* @__PURE__ */
|
|
4448
|
+
/* @__PURE__ */ jsx24(
|
|
4305
4449
|
Text_default,
|
|
4306
4450
|
{
|
|
4307
4451
|
size: "md",
|
|
@@ -4312,8 +4456,8 @@ var CardTest = forwardRef9(
|
|
|
4312
4456
|
),
|
|
4313
4457
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
|
|
4314
4458
|
duration && /* @__PURE__ */ jsxs18("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
|
|
4315
|
-
/* @__PURE__ */
|
|
4316
|
-
/* @__PURE__ */
|
|
4459
|
+
/* @__PURE__ */ jsx24(Clock, { size: 16, className: "text-text-700" }),
|
|
4460
|
+
/* @__PURE__ */ jsx24(
|
|
4317
4461
|
Text_default,
|
|
4318
4462
|
{
|
|
4319
4463
|
size: "sm",
|
|
@@ -4322,7 +4466,7 @@ var CardTest = forwardRef9(
|
|
|
4322
4466
|
}
|
|
4323
4467
|
)
|
|
4324
4468
|
] }),
|
|
4325
|
-
/* @__PURE__ */
|
|
4469
|
+
/* @__PURE__ */ jsx24(
|
|
4326
4470
|
Text_default,
|
|
4327
4471
|
{
|
|
4328
4472
|
size: "sm",
|
|
@@ -4358,15 +4502,15 @@ var SIMULATION_TYPE_STYLES = {
|
|
|
4358
4502
|
text: "Vestibular"
|
|
4359
4503
|
}
|
|
4360
4504
|
};
|
|
4361
|
-
var CardSimulationHistory =
|
|
4362
|
-
return /* @__PURE__ */
|
|
4505
|
+
var CardSimulationHistory = forwardRef10(({ data, onSimulationClick, className, ...props }, ref) => {
|
|
4506
|
+
return /* @__PURE__ */ jsx24(
|
|
4363
4507
|
"div",
|
|
4364
4508
|
{
|
|
4365
4509
|
ref,
|
|
4366
4510
|
className: cn("w-full max-w-[992px] h-auto", className),
|
|
4367
4511
|
...props,
|
|
4368
4512
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-0", children: [
|
|
4369
|
-
data.map((section, sectionIndex) => /* @__PURE__ */
|
|
4513
|
+
data.map((section, sectionIndex) => /* @__PURE__ */ jsx24("div", { className: "flex flex-col", children: /* @__PURE__ */ jsxs18(
|
|
4370
4514
|
"div",
|
|
4371
4515
|
{
|
|
4372
4516
|
className: cn(
|
|
@@ -4374,7 +4518,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4374
4518
|
sectionIndex === 0 ? "rounded-t-3xl" : ""
|
|
4375
4519
|
),
|
|
4376
4520
|
children: [
|
|
4377
|
-
/* @__PURE__ */
|
|
4521
|
+
/* @__PURE__ */ jsx24(
|
|
4378
4522
|
Text_default,
|
|
4379
4523
|
{
|
|
4380
4524
|
size: "xs",
|
|
@@ -4383,9 +4527,9 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4383
4527
|
children: section.date
|
|
4384
4528
|
}
|
|
4385
4529
|
),
|
|
4386
|
-
/* @__PURE__ */
|
|
4530
|
+
/* @__PURE__ */ jsx24("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
|
|
4387
4531
|
const typeStyles = SIMULATION_TYPE_STYLES[simulation.type];
|
|
4388
|
-
return /* @__PURE__ */
|
|
4532
|
+
return /* @__PURE__ */ jsx24(
|
|
4389
4533
|
CardBase,
|
|
4390
4534
|
{
|
|
4391
4535
|
layout: "horizontal",
|
|
@@ -4399,7 +4543,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4399
4543
|
onClick: () => onSimulationClick?.(simulation),
|
|
4400
4544
|
children: /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center w-full gap-2", children: [
|
|
4401
4545
|
/* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
4402
|
-
/* @__PURE__ */
|
|
4546
|
+
/* @__PURE__ */ jsx24(
|
|
4403
4547
|
Text_default,
|
|
4404
4548
|
{
|
|
4405
4549
|
size: "lg",
|
|
@@ -4409,7 +4553,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4409
4553
|
}
|
|
4410
4554
|
),
|
|
4411
4555
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
|
|
4412
|
-
/* @__PURE__ */
|
|
4556
|
+
/* @__PURE__ */ jsx24(
|
|
4413
4557
|
Badge_default,
|
|
4414
4558
|
{
|
|
4415
4559
|
variant: "examsOutlined",
|
|
@@ -4418,10 +4562,10 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4418
4562
|
children: typeStyles.text
|
|
4419
4563
|
}
|
|
4420
4564
|
),
|
|
4421
|
-
/* @__PURE__ */
|
|
4565
|
+
/* @__PURE__ */ jsx24(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
|
|
4422
4566
|
] })
|
|
4423
4567
|
] }),
|
|
4424
|
-
/* @__PURE__ */
|
|
4568
|
+
/* @__PURE__ */ jsx24(
|
|
4425
4569
|
CaretRight,
|
|
4426
4570
|
{
|
|
4427
4571
|
size: 24,
|
|
@@ -4437,7 +4581,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4437
4581
|
]
|
|
4438
4582
|
}
|
|
4439
4583
|
) }, section.date)),
|
|
4440
|
-
data.length > 0 && /* @__PURE__ */
|
|
4584
|
+
data.length > 0 && /* @__PURE__ */ jsx24("div", { className: "w-full h-6 bg-white rounded-b-3xl" })
|
|
4441
4585
|
] })
|
|
4442
4586
|
}
|
|
4443
4587
|
);
|
|
@@ -4445,8 +4589,8 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
|
|
|
4445
4589
|
|
|
4446
4590
|
// src/components/Accordation/Accordation.tsx
|
|
4447
4591
|
import { CaretRight as CaretRight2 } from "phosphor-react";
|
|
4448
|
-
import { jsx as
|
|
4449
|
-
var CardAccordation =
|
|
4592
|
+
import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4593
|
+
var CardAccordation = forwardRef11(
|
|
4450
4594
|
({
|
|
4451
4595
|
trigger,
|
|
4452
4596
|
children,
|
|
@@ -4456,7 +4600,7 @@ var CardAccordation = forwardRef10(
|
|
|
4456
4600
|
...props
|
|
4457
4601
|
}, ref) => {
|
|
4458
4602
|
const [isExpanded, setIsExpanded] = useState7(defaultExpanded);
|
|
4459
|
-
const contentId =
|
|
4603
|
+
const contentId = useId6();
|
|
4460
4604
|
const handleToggle = () => {
|
|
4461
4605
|
const newExpanded = !isExpanded;
|
|
4462
4606
|
setIsExpanded(newExpanded);
|
|
@@ -4488,7 +4632,7 @@ var CardAccordation = forwardRef10(
|
|
|
4488
4632
|
"aria-controls": "accordion-content",
|
|
4489
4633
|
children: [
|
|
4490
4634
|
trigger,
|
|
4491
|
-
/* @__PURE__ */
|
|
4635
|
+
/* @__PURE__ */ jsx25(
|
|
4492
4636
|
CaretRight2,
|
|
4493
4637
|
{
|
|
4494
4638
|
size: 20,
|
|
@@ -4502,7 +4646,7 @@ var CardAccordation = forwardRef10(
|
|
|
4502
4646
|
]
|
|
4503
4647
|
}
|
|
4504
4648
|
),
|
|
4505
|
-
/* @__PURE__ */
|
|
4649
|
+
/* @__PURE__ */ jsx25(
|
|
4506
4650
|
"div",
|
|
4507
4651
|
{
|
|
4508
4652
|
id: contentId,
|
|
@@ -4511,7 +4655,7 @@ var CardAccordation = forwardRef10(
|
|
|
4511
4655
|
isExpanded ? "max-h-screen opacity-100" : "max-h-0 opacity-0"
|
|
4512
4656
|
),
|
|
4513
4657
|
"data-testid": "accordion-content",
|
|
4514
|
-
children: /* @__PURE__ */
|
|
4658
|
+
children: /* @__PURE__ */ jsx25("div", { className: "p-4 pt-0 border-border-50", children })
|
|
4515
4659
|
}
|
|
4516
4660
|
)
|
|
4517
4661
|
]
|
|
@@ -4522,8 +4666,8 @@ var CardAccordation = forwardRef10(
|
|
|
4522
4666
|
|
|
4523
4667
|
// src/components/Alternative/Alternative.tsx
|
|
4524
4668
|
import { CheckCircle as CheckCircle4, XCircle as XCircle3 } from "phosphor-react";
|
|
4525
|
-
import { forwardRef as
|
|
4526
|
-
import { jsx as
|
|
4669
|
+
import { forwardRef as forwardRef12, useId as useId7, useState as useState8 } from "react";
|
|
4670
|
+
import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
4527
4671
|
var AlternativesList = ({
|
|
4528
4672
|
alternatives,
|
|
4529
4673
|
name,
|
|
@@ -4536,7 +4680,7 @@ var AlternativesList = ({
|
|
|
4536
4680
|
mode = "interactive",
|
|
4537
4681
|
selectedValue
|
|
4538
4682
|
}) => {
|
|
4539
|
-
const uniqueId =
|
|
4683
|
+
const uniqueId = useId7();
|
|
4540
4684
|
const groupName = name || `alternatives-${uniqueId}`;
|
|
4541
4685
|
const [actualValue, setActualValue] = useState8(value);
|
|
4542
4686
|
const isReadonly = mode === "readonly";
|
|
@@ -4554,9 +4698,9 @@ var AlternativesList = ({
|
|
|
4554
4698
|
const getStatusBadge = (status) => {
|
|
4555
4699
|
switch (status) {
|
|
4556
4700
|
case "correct":
|
|
4557
|
-
return /* @__PURE__ */
|
|
4701
|
+
return /* @__PURE__ */ jsx26(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx26(CheckCircle4, {}), children: "Resposta correta" });
|
|
4558
4702
|
case "incorrect":
|
|
4559
|
-
return /* @__PURE__ */
|
|
4703
|
+
return /* @__PURE__ */ jsx26(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx26(XCircle3, {}), children: "Resposta incorreta" });
|
|
4560
4704
|
default:
|
|
4561
4705
|
return null;
|
|
4562
4706
|
}
|
|
@@ -4586,10 +4730,10 @@ var AlternativesList = ({
|
|
|
4586
4730
|
const renderRadio = () => {
|
|
4587
4731
|
const radioClasses = `w-6 h-6 rounded-full border-2 cursor-default transition-all duration-200 flex items-center justify-center ${isUserSelected ? "border-primary-950 bg-background" : "border-border-400 bg-background"}`;
|
|
4588
4732
|
const dotClasses = "w-3 h-3 rounded-full bg-primary-950 transition-all duration-200";
|
|
4589
|
-
return /* @__PURE__ */
|
|
4733
|
+
return /* @__PURE__ */ jsx26("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ jsx26("div", { className: dotClasses }) });
|
|
4590
4734
|
};
|
|
4591
4735
|
if (layout === "detailed") {
|
|
4592
|
-
return /* @__PURE__ */
|
|
4736
|
+
return /* @__PURE__ */ jsx26(
|
|
4593
4737
|
"div",
|
|
4594
4738
|
{
|
|
4595
4739
|
className: cn(
|
|
@@ -4599,9 +4743,9 @@ var AlternativesList = ({
|
|
|
4599
4743
|
),
|
|
4600
4744
|
children: /* @__PURE__ */ jsxs20("div", { className: "flex items-start justify-between gap-3", children: [
|
|
4601
4745
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-start gap-3 flex-1", children: [
|
|
4602
|
-
/* @__PURE__ */
|
|
4746
|
+
/* @__PURE__ */ jsx26("div", { className: "mt-1", children: renderRadio() }),
|
|
4603
4747
|
/* @__PURE__ */ jsxs20("div", { className: "flex-1", children: [
|
|
4604
|
-
/* @__PURE__ */
|
|
4748
|
+
/* @__PURE__ */ jsx26(
|
|
4605
4749
|
"p",
|
|
4606
4750
|
{
|
|
4607
4751
|
className: cn(
|
|
@@ -4611,10 +4755,10 @@ var AlternativesList = ({
|
|
|
4611
4755
|
children: alternative.label
|
|
4612
4756
|
}
|
|
4613
4757
|
),
|
|
4614
|
-
alternative.description && /* @__PURE__ */
|
|
4758
|
+
alternative.description && /* @__PURE__ */ jsx26("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
|
|
4615
4759
|
] })
|
|
4616
4760
|
] }),
|
|
4617
|
-
statusBadge && /* @__PURE__ */
|
|
4761
|
+
statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
|
|
4618
4762
|
] })
|
|
4619
4763
|
},
|
|
4620
4764
|
alternativeId
|
|
@@ -4631,7 +4775,7 @@ var AlternativesList = ({
|
|
|
4631
4775
|
children: [
|
|
4632
4776
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
4633
4777
|
renderRadio(),
|
|
4634
|
-
/* @__PURE__ */
|
|
4778
|
+
/* @__PURE__ */ jsx26(
|
|
4635
4779
|
"span",
|
|
4636
4780
|
{
|
|
4637
4781
|
className: cn(
|
|
@@ -4642,14 +4786,14 @@ var AlternativesList = ({
|
|
|
4642
4786
|
}
|
|
4643
4787
|
)
|
|
4644
4788
|
] }),
|
|
4645
|
-
statusBadge && /* @__PURE__ */
|
|
4789
|
+
statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
|
|
4646
4790
|
]
|
|
4647
4791
|
},
|
|
4648
4792
|
alternativeId
|
|
4649
4793
|
);
|
|
4650
4794
|
};
|
|
4651
4795
|
if (isReadonly) {
|
|
4652
|
-
return /* @__PURE__ */
|
|
4796
|
+
return /* @__PURE__ */ jsx26(
|
|
4653
4797
|
"div",
|
|
4654
4798
|
{
|
|
4655
4799
|
className: cn("flex flex-col", getLayoutClasses(), "w-full", className),
|
|
@@ -4659,7 +4803,7 @@ var AlternativesList = ({
|
|
|
4659
4803
|
}
|
|
4660
4804
|
);
|
|
4661
4805
|
}
|
|
4662
|
-
return /* @__PURE__ */
|
|
4806
|
+
return /* @__PURE__ */ jsx26(
|
|
4663
4807
|
RadioGroup,
|
|
4664
4808
|
{
|
|
4665
4809
|
name: groupName,
|
|
@@ -4676,7 +4820,7 @@ var AlternativesList = ({
|
|
|
4676
4820
|
const statusStyles = getStatusStyles(alternative.status, false);
|
|
4677
4821
|
const statusBadge = getStatusBadge(alternative.status);
|
|
4678
4822
|
if (layout === "detailed") {
|
|
4679
|
-
return /* @__PURE__ */
|
|
4823
|
+
return /* @__PURE__ */ jsx26(
|
|
4680
4824
|
"div",
|
|
4681
4825
|
{
|
|
4682
4826
|
className: cn(
|
|
@@ -4686,7 +4830,7 @@ var AlternativesList = ({
|
|
|
4686
4830
|
),
|
|
4687
4831
|
children: /* @__PURE__ */ jsxs20("div", { className: "flex items-start justify-between gap-3", children: [
|
|
4688
4832
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-start gap-3 flex-1", children: [
|
|
4689
|
-
/* @__PURE__ */
|
|
4833
|
+
/* @__PURE__ */ jsx26(
|
|
4690
4834
|
RadioGroupItem,
|
|
4691
4835
|
{
|
|
4692
4836
|
value: alternative.value,
|
|
@@ -4696,7 +4840,7 @@ var AlternativesList = ({
|
|
|
4696
4840
|
}
|
|
4697
4841
|
),
|
|
4698
4842
|
/* @__PURE__ */ jsxs20("div", { className: "flex-1", children: [
|
|
4699
|
-
/* @__PURE__ */
|
|
4843
|
+
/* @__PURE__ */ jsx26(
|
|
4700
4844
|
"label",
|
|
4701
4845
|
{
|
|
4702
4846
|
htmlFor: alternativeId,
|
|
@@ -4708,10 +4852,10 @@ var AlternativesList = ({
|
|
|
4708
4852
|
children: alternative.label
|
|
4709
4853
|
}
|
|
4710
4854
|
),
|
|
4711
|
-
alternative.description && /* @__PURE__ */
|
|
4855
|
+
alternative.description && /* @__PURE__ */ jsx26("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
|
|
4712
4856
|
] })
|
|
4713
4857
|
] }),
|
|
4714
|
-
statusBadge && /* @__PURE__ */
|
|
4858
|
+
statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
|
|
4715
4859
|
] })
|
|
4716
4860
|
},
|
|
4717
4861
|
alternativeId
|
|
@@ -4727,7 +4871,7 @@ var AlternativesList = ({
|
|
|
4727
4871
|
),
|
|
4728
4872
|
children: [
|
|
4729
4873
|
/* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
4730
|
-
/* @__PURE__ */
|
|
4874
|
+
/* @__PURE__ */ jsx26(
|
|
4731
4875
|
RadioGroupItem,
|
|
4732
4876
|
{
|
|
4733
4877
|
value: alternative.value,
|
|
@@ -4735,7 +4879,7 @@ var AlternativesList = ({
|
|
|
4735
4879
|
disabled: alternative.disabled
|
|
4736
4880
|
}
|
|
4737
4881
|
),
|
|
4738
|
-
/* @__PURE__ */
|
|
4882
|
+
/* @__PURE__ */ jsx26(
|
|
4739
4883
|
"label",
|
|
4740
4884
|
{
|
|
4741
4885
|
htmlFor: alternativeId,
|
|
@@ -4748,7 +4892,7 @@ var AlternativesList = ({
|
|
|
4748
4892
|
}
|
|
4749
4893
|
)
|
|
4750
4894
|
] }),
|
|
4751
|
-
statusBadge && /* @__PURE__ */
|
|
4895
|
+
statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
|
|
4752
4896
|
]
|
|
4753
4897
|
},
|
|
4754
4898
|
alternativeId
|
|
@@ -4757,7 +4901,7 @@ var AlternativesList = ({
|
|
|
4757
4901
|
}
|
|
4758
4902
|
);
|
|
4759
4903
|
};
|
|
4760
|
-
var HeaderAlternative =
|
|
4904
|
+
var HeaderAlternative = forwardRef12(
|
|
4761
4905
|
({ className, title, subTitle, content, ...props }, ref) => {
|
|
4762
4906
|
return /* @__PURE__ */ jsxs20(
|
|
4763
4907
|
"div",
|
|
@@ -4770,10 +4914,10 @@ var HeaderAlternative = forwardRef11(
|
|
|
4770
4914
|
...props,
|
|
4771
4915
|
children: [
|
|
4772
4916
|
/* @__PURE__ */ jsxs20("span", { className: "flex flex-col", children: [
|
|
4773
|
-
/* @__PURE__ */
|
|
4774
|
-
/* @__PURE__ */
|
|
4917
|
+
/* @__PURE__ */ jsx26("p", { className: "text-text-950 font-bold text-lg", children: title }),
|
|
4918
|
+
/* @__PURE__ */ jsx26("p", { className: "text-text-700 text-sm ", children: subTitle })
|
|
4775
4919
|
] }),
|
|
4776
|
-
/* @__PURE__ */
|
|
4920
|
+
/* @__PURE__ */ jsx26("p", { className: "text-text-950 text-md", children: content })
|
|
4777
4921
|
]
|
|
4778
4922
|
}
|
|
4779
4923
|
);
|
|
@@ -4782,10 +4926,10 @@ var HeaderAlternative = forwardRef11(
|
|
|
4782
4926
|
|
|
4783
4927
|
// src/components/AlertDialog/AlertDialog.tsx
|
|
4784
4928
|
import {
|
|
4785
|
-
forwardRef as
|
|
4786
|
-
useEffect as
|
|
4929
|
+
forwardRef as forwardRef13,
|
|
4930
|
+
useEffect as useEffect5
|
|
4787
4931
|
} from "react";
|
|
4788
|
-
import { Fragment as Fragment5, jsx as
|
|
4932
|
+
import { Fragment as Fragment5, jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
4789
4933
|
var SIZE_CLASSES11 = {
|
|
4790
4934
|
"extra-small": "w-screen max-w-[324px]",
|
|
4791
4935
|
small: "w-screen max-w-[378px]",
|
|
@@ -4793,7 +4937,7 @@ var SIZE_CLASSES11 = {
|
|
|
4793
4937
|
large: "w-screen max-w-[578px]",
|
|
4794
4938
|
"extra-large": "w-screen max-w-[912px]"
|
|
4795
4939
|
};
|
|
4796
|
-
var AlertDialog =
|
|
4940
|
+
var AlertDialog = forwardRef13(
|
|
4797
4941
|
({
|
|
4798
4942
|
description,
|
|
4799
4943
|
cancelButtonLabel = "Cancelar",
|
|
@@ -4811,7 +4955,7 @@ var AlertDialog = forwardRef12(
|
|
|
4811
4955
|
size = "medium",
|
|
4812
4956
|
...props
|
|
4813
4957
|
}, ref) => {
|
|
4814
|
-
|
|
4958
|
+
useEffect5(() => {
|
|
4815
4959
|
if (!isOpen || !closeOnEscape) return;
|
|
4816
4960
|
const handleEscape = (event) => {
|
|
4817
4961
|
if (event.key === "Escape") {
|
|
@@ -4821,7 +4965,7 @@ var AlertDialog = forwardRef12(
|
|
|
4821
4965
|
document.addEventListener("keydown", handleEscape);
|
|
4822
4966
|
return () => document.removeEventListener("keydown", handleEscape);
|
|
4823
4967
|
}, [isOpen, closeOnEscape]);
|
|
4824
|
-
|
|
4968
|
+
useEffect5(() => {
|
|
4825
4969
|
if (isOpen) {
|
|
4826
4970
|
document.body.style.overflow = "hidden";
|
|
4827
4971
|
} else {
|
|
@@ -4850,7 +4994,7 @@ var AlertDialog = forwardRef12(
|
|
|
4850
4994
|
onCancel?.(cancelValue);
|
|
4851
4995
|
};
|
|
4852
4996
|
const sizeClasses = SIZE_CLASSES11[size];
|
|
4853
|
-
return /* @__PURE__ */
|
|
4997
|
+
return /* @__PURE__ */ jsx27(Fragment5, { children: isOpen && /* @__PURE__ */ jsx27(
|
|
4854
4998
|
"div",
|
|
4855
4999
|
{
|
|
4856
5000
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",
|
|
@@ -4868,7 +5012,7 @@ var AlertDialog = forwardRef12(
|
|
|
4868
5012
|
),
|
|
4869
5013
|
...props,
|
|
4870
5014
|
children: [
|
|
4871
|
-
/* @__PURE__ */
|
|
5015
|
+
/* @__PURE__ */ jsx27(
|
|
4872
5016
|
"h2",
|
|
4873
5017
|
{
|
|
4874
5018
|
id: "alert-dialog-title",
|
|
@@ -4876,7 +5020,7 @@ var AlertDialog = forwardRef12(
|
|
|
4876
5020
|
children: title
|
|
4877
5021
|
}
|
|
4878
5022
|
),
|
|
4879
|
-
/* @__PURE__ */
|
|
5023
|
+
/* @__PURE__ */ jsx27(
|
|
4880
5024
|
"p",
|
|
4881
5025
|
{
|
|
4882
5026
|
id: "alert-dialog-description",
|
|
@@ -4885,8 +5029,8 @@ var AlertDialog = forwardRef12(
|
|
|
4885
5029
|
}
|
|
4886
5030
|
),
|
|
4887
5031
|
/* @__PURE__ */ jsxs21("div", { className: "flex flex-row items-center justify-end pt-4 gap-3", children: [
|
|
4888
|
-
/* @__PURE__ */
|
|
4889
|
-
/* @__PURE__ */
|
|
5032
|
+
/* @__PURE__ */ jsx27(Button_default, { variant: "outline", size: "small", onClick: handleCancel, children: cancelButtonLabel }),
|
|
5033
|
+
/* @__PURE__ */ jsx27(
|
|
4890
5034
|
Button_default,
|
|
4891
5035
|
{
|
|
4892
5036
|
variant: "solid",
|
|
@@ -4906,85 +5050,218 @@ var AlertDialog = forwardRef12(
|
|
|
4906
5050
|
);
|
|
4907
5051
|
AlertDialog.displayName = "AlertDialog";
|
|
4908
5052
|
|
|
4909
|
-
// src/components/
|
|
4910
|
-
import {
|
|
4911
|
-
import {
|
|
4912
|
-
|
|
4913
|
-
|
|
4914
|
-
|
|
4915
|
-
|
|
4916
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
4922
|
-
function createDropdownStore() {
|
|
4923
|
-
return create3((set) => ({
|
|
4924
|
-
open: false,
|
|
4925
|
-
setOpen: (open) => set({ open })
|
|
4926
|
-
}));
|
|
4927
|
-
}
|
|
4928
|
-
var useDropdownStore = (externalStore) => {
|
|
4929
|
-
if (!externalStore) {
|
|
4930
|
-
throw new Error(
|
|
4931
|
-
"Component must be used within a DropdownMenu (store is missing)"
|
|
4932
|
-
);
|
|
4933
|
-
}
|
|
4934
|
-
return externalStore;
|
|
4935
|
-
};
|
|
4936
|
-
var injectStore2 = (children, store) => {
|
|
4937
|
-
return Children2.map(children, (child) => {
|
|
4938
|
-
if (isValidElement2(child)) {
|
|
4939
|
-
const typedChild = child;
|
|
4940
|
-
const newProps = {
|
|
4941
|
-
store
|
|
4942
|
-
};
|
|
4943
|
-
if (typedChild.props.children) {
|
|
4944
|
-
newProps.children = injectStore2(typedChild.props.children, store);
|
|
4945
|
-
}
|
|
4946
|
-
return cloneElement2(typedChild, newProps);
|
|
4947
|
-
}
|
|
4948
|
-
return child;
|
|
4949
|
-
});
|
|
4950
|
-
};
|
|
4951
|
-
var DropdownMenu = ({
|
|
4952
|
-
children,
|
|
4953
|
-
open: propOpen,
|
|
4954
|
-
onOpenChange
|
|
5053
|
+
// src/components/MultipleChoice/MultipleChoice.tsx
|
|
5054
|
+
import { useEffect as useEffect6, useState as useState9 } from "react";
|
|
5055
|
+
import { CheckCircle as CheckCircle5, XCircle as XCircle4, Check as Check4 } from "phosphor-react";
|
|
5056
|
+
import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
5057
|
+
var MultipleChoiceList = ({
|
|
5058
|
+
disabled = false,
|
|
5059
|
+
className = "",
|
|
5060
|
+
choices,
|
|
5061
|
+
name,
|
|
5062
|
+
selectedValues,
|
|
5063
|
+
onHandleSelectedValues,
|
|
5064
|
+
mode = "interactive"
|
|
4955
5065
|
}) => {
|
|
4956
|
-
const
|
|
4957
|
-
|
|
4958
|
-
|
|
4959
|
-
|
|
4960
|
-
const
|
|
4961
|
-
|
|
5066
|
+
const [actualValue, setActualValue] = useState9(selectedValues);
|
|
5067
|
+
useEffect6(() => {
|
|
5068
|
+
setActualValue(selectedValues);
|
|
5069
|
+
}, [selectedValues]);
|
|
5070
|
+
const getStatusBadge = (status) => {
|
|
5071
|
+
switch (status) {
|
|
5072
|
+
case "correct":
|
|
5073
|
+
return /* @__PURE__ */ jsx28(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx28(CheckCircle5, {}), children: "Resposta correta" });
|
|
5074
|
+
case "incorrect":
|
|
5075
|
+
return /* @__PURE__ */ jsx28(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx28(XCircle4, {}), children: "Resposta incorreta" });
|
|
5076
|
+
default:
|
|
5077
|
+
return null;
|
|
5078
|
+
}
|
|
4962
5079
|
};
|
|
4963
|
-
const
|
|
4964
|
-
|
|
4965
|
-
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
4970
|
-
|
|
4971
|
-
)
|
|
4972
|
-
).filter((el) => el instanceof HTMLElement);
|
|
4973
|
-
if (items.length === 0) return;
|
|
4974
|
-
const focusedItem = document.activeElement;
|
|
4975
|
-
const currentIndex = items.findIndex((item) => item === focusedItem);
|
|
4976
|
-
let nextIndex;
|
|
4977
|
-
if (event.key === "ArrowDown") {
|
|
4978
|
-
nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
|
|
4979
|
-
} else {
|
|
4980
|
-
nextIndex = currentIndex === -1 ? items.length - 1 : (currentIndex - 1 + items.length) % items.length;
|
|
4981
|
-
}
|
|
4982
|
-
items[nextIndex]?.focus();
|
|
5080
|
+
const getStatusStyles = (status) => {
|
|
5081
|
+
switch (status) {
|
|
5082
|
+
case "correct":
|
|
5083
|
+
return "bg-success-background border-success-300";
|
|
5084
|
+
case "incorrect":
|
|
5085
|
+
return "bg-error-background border-error-300";
|
|
5086
|
+
default:
|
|
5087
|
+
return `bg-background border-border-100`;
|
|
4983
5088
|
}
|
|
4984
5089
|
};
|
|
4985
|
-
const
|
|
4986
|
-
|
|
4987
|
-
|
|
5090
|
+
const renderVisualCheckbox = (isSelected, isDisabled) => {
|
|
5091
|
+
const checkboxClasses = cn(
|
|
5092
|
+
"w-5 h-5 rounded border-2 cursor-default transition-all duration-200 flex items-center justify-center",
|
|
5093
|
+
isSelected ? "border-primary-950 bg-primary-950 text-text" : "border-border-400 bg-background",
|
|
5094
|
+
isDisabled && "opacity-40 cursor-not-allowed"
|
|
5095
|
+
);
|
|
5096
|
+
return /* @__PURE__ */ jsx28("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ jsx28(Check4, { size: 16, weight: "bold" }) });
|
|
5097
|
+
};
|
|
5098
|
+
if (mode === "readonly") {
|
|
5099
|
+
return /* @__PURE__ */ jsx28("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
|
|
5100
|
+
const isSelected = actualValue?.includes(choice.value) || false;
|
|
5101
|
+
const statusStyles = getStatusStyles(choice.status);
|
|
5102
|
+
const statusBadge = getStatusBadge(choice.status);
|
|
5103
|
+
return /* @__PURE__ */ jsxs22(
|
|
5104
|
+
"div",
|
|
5105
|
+
{
|
|
5106
|
+
className: cn(
|
|
5107
|
+
"flex flex-row justify-between gap-2 items-start p-2 rounded-lg transition-all",
|
|
5108
|
+
statusStyles,
|
|
5109
|
+
choice.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
5110
|
+
),
|
|
5111
|
+
children: [
|
|
5112
|
+
/* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
5113
|
+
renderVisualCheckbox(isSelected, choice.disabled || disabled),
|
|
5114
|
+
/* @__PURE__ */ jsx28(
|
|
5115
|
+
"span",
|
|
5116
|
+
{
|
|
5117
|
+
className: cn(
|
|
5118
|
+
"flex-1",
|
|
5119
|
+
isSelected || choice.status && choice.status != "neutral" ? "text-text-950" : "text-text-600",
|
|
5120
|
+
choice.disabled || disabled ? "cursor-not-allowed" : "cursor-default"
|
|
5121
|
+
),
|
|
5122
|
+
children: choice.label
|
|
5123
|
+
}
|
|
5124
|
+
)
|
|
5125
|
+
] }),
|
|
5126
|
+
statusBadge && /* @__PURE__ */ jsx28("div", { className: "flex-shrink-0", children: statusBadge })
|
|
5127
|
+
]
|
|
5128
|
+
},
|
|
5129
|
+
`readonly-${choice.value}-${i}`
|
|
5130
|
+
);
|
|
5131
|
+
}) });
|
|
5132
|
+
}
|
|
5133
|
+
return /* @__PURE__ */ jsx28(
|
|
5134
|
+
"div",
|
|
5135
|
+
{
|
|
5136
|
+
className: cn(
|
|
5137
|
+
"flex flex-row justify-between gap-2 items-start p-2 rounded-lg transition-all",
|
|
5138
|
+
disabled ? "opacity-50 cursor-not-allowed" : "",
|
|
5139
|
+
className
|
|
5140
|
+
),
|
|
5141
|
+
children: /* @__PURE__ */ jsx28(
|
|
5142
|
+
CheckboxList_default,
|
|
5143
|
+
{
|
|
5144
|
+
name,
|
|
5145
|
+
values: actualValue,
|
|
5146
|
+
onValuesChange: (v) => {
|
|
5147
|
+
setActualValue(v);
|
|
5148
|
+
onHandleSelectedValues?.(v);
|
|
5149
|
+
},
|
|
5150
|
+
disabled,
|
|
5151
|
+
children: choices.map((choice, i) => /* @__PURE__ */ jsxs22(
|
|
5152
|
+
"div",
|
|
5153
|
+
{
|
|
5154
|
+
className: "flex flex-row gap-2 items-center",
|
|
5155
|
+
children: [
|
|
5156
|
+
/* @__PURE__ */ jsx28(
|
|
5157
|
+
CheckboxListItem,
|
|
5158
|
+
{
|
|
5159
|
+
value: choice.value,
|
|
5160
|
+
id: `interactive-${choice.value}-${i}`,
|
|
5161
|
+
disabled: choice.disabled || disabled
|
|
5162
|
+
}
|
|
5163
|
+
),
|
|
5164
|
+
/* @__PURE__ */ jsx28(
|
|
5165
|
+
"label",
|
|
5166
|
+
{
|
|
5167
|
+
htmlFor: `interactive-${choice.value}-${i}`,
|
|
5168
|
+
className: cn(
|
|
5169
|
+
"flex-1",
|
|
5170
|
+
actualValue?.includes(choice.value) ? "text-text-950" : "text-text-600",
|
|
5171
|
+
choice.disabled || disabled ? "cursor-not-allowed" : "cursor-pointer"
|
|
5172
|
+
),
|
|
5173
|
+
children: choice.label
|
|
5174
|
+
}
|
|
5175
|
+
)
|
|
5176
|
+
]
|
|
5177
|
+
},
|
|
5178
|
+
`interactive-${choice.value}-${i}`
|
|
5179
|
+
))
|
|
5180
|
+
}
|
|
5181
|
+
)
|
|
5182
|
+
}
|
|
5183
|
+
);
|
|
5184
|
+
};
|
|
5185
|
+
|
|
5186
|
+
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
5187
|
+
import { SignOut, User } from "phosphor-react";
|
|
5188
|
+
import {
|
|
5189
|
+
forwardRef as forwardRef14,
|
|
5190
|
+
useEffect as useEffect7,
|
|
5191
|
+
useRef as useRef5,
|
|
5192
|
+
isValidElement as isValidElement3,
|
|
5193
|
+
Children as Children3,
|
|
5194
|
+
cloneElement as cloneElement3,
|
|
5195
|
+
useState as useState10
|
|
5196
|
+
} from "react";
|
|
5197
|
+
import { create as create4, useStore as useStore3 } from "zustand";
|
|
5198
|
+
import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
5199
|
+
function createDropdownStore() {
|
|
5200
|
+
return create4((set) => ({
|
|
5201
|
+
open: false,
|
|
5202
|
+
setOpen: (open) => set({ open })
|
|
5203
|
+
}));
|
|
5204
|
+
}
|
|
5205
|
+
var useDropdownStore = (externalStore) => {
|
|
5206
|
+
if (!externalStore) {
|
|
5207
|
+
throw new Error(
|
|
5208
|
+
"Component must be used within a DropdownMenu (store is missing)"
|
|
5209
|
+
);
|
|
5210
|
+
}
|
|
5211
|
+
return externalStore;
|
|
5212
|
+
};
|
|
5213
|
+
var injectStore3 = (children, store) => {
|
|
5214
|
+
return Children3.map(children, (child) => {
|
|
5215
|
+
if (isValidElement3(child)) {
|
|
5216
|
+
const typedChild = child;
|
|
5217
|
+
const newProps = {
|
|
5218
|
+
store
|
|
5219
|
+
};
|
|
5220
|
+
if (typedChild.props.children) {
|
|
5221
|
+
newProps.children = injectStore3(typedChild.props.children, store);
|
|
5222
|
+
}
|
|
5223
|
+
return cloneElement3(typedChild, newProps);
|
|
5224
|
+
}
|
|
5225
|
+
return child;
|
|
5226
|
+
});
|
|
5227
|
+
};
|
|
5228
|
+
var DropdownMenu = ({
|
|
5229
|
+
children,
|
|
5230
|
+
open: propOpen,
|
|
5231
|
+
onOpenChange
|
|
5232
|
+
}) => {
|
|
5233
|
+
const storeRef = useRef5(null);
|
|
5234
|
+
storeRef.current ??= createDropdownStore();
|
|
5235
|
+
const store = storeRef.current;
|
|
5236
|
+
const { open, setOpen: storeSetOpen } = useStore3(store, (s) => s);
|
|
5237
|
+
const setOpen = (newOpen) => {
|
|
5238
|
+
storeSetOpen(newOpen);
|
|
5239
|
+
};
|
|
5240
|
+
const menuRef = useRef5(null);
|
|
5241
|
+
const handleArrowDownOrArrowUp = (event) => {
|
|
5242
|
+
const menuContent = menuRef.current?.querySelector('[role="menu"]');
|
|
5243
|
+
if (menuContent) {
|
|
5244
|
+
event.preventDefault();
|
|
5245
|
+
const items = Array.from(
|
|
5246
|
+
menuContent.querySelectorAll(
|
|
5247
|
+
'[role="menuitem"]:not([aria-disabled="true"])'
|
|
5248
|
+
)
|
|
5249
|
+
).filter((el) => el instanceof HTMLElement);
|
|
5250
|
+
if (items.length === 0) return;
|
|
5251
|
+
const focusedItem = document.activeElement;
|
|
5252
|
+
const currentIndex = items.findIndex((item) => item === focusedItem);
|
|
5253
|
+
let nextIndex;
|
|
5254
|
+
if (event.key === "ArrowDown") {
|
|
5255
|
+
nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
|
|
5256
|
+
} else {
|
|
5257
|
+
nextIndex = currentIndex === -1 ? items.length - 1 : (currentIndex - 1 + items.length) % items.length;
|
|
5258
|
+
}
|
|
5259
|
+
items[nextIndex]?.focus();
|
|
5260
|
+
}
|
|
5261
|
+
};
|
|
5262
|
+
const handleDownkey = (event) => {
|
|
5263
|
+
if (event.key === "Escape") {
|
|
5264
|
+
setOpen(false);
|
|
4988
5265
|
} else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
|
|
4989
5266
|
handleArrowDownOrArrowUp(event);
|
|
4990
5267
|
}
|
|
@@ -4994,7 +5271,7 @@ var DropdownMenu = ({
|
|
|
4994
5271
|
setOpen(false);
|
|
4995
5272
|
}
|
|
4996
5273
|
};
|
|
4997
|
-
|
|
5274
|
+
useEffect7(() => {
|
|
4998
5275
|
if (open) {
|
|
4999
5276
|
document.addEventListener("mousedown", handleClickOutside);
|
|
5000
5277
|
document.addEventListener("keydown", handleDownkey);
|
|
@@ -5004,16 +5281,16 @@ var DropdownMenu = ({
|
|
|
5004
5281
|
document.removeEventListener("keydown", handleDownkey);
|
|
5005
5282
|
};
|
|
5006
5283
|
}, [open]);
|
|
5007
|
-
|
|
5284
|
+
useEffect7(() => {
|
|
5008
5285
|
setOpen(open);
|
|
5009
5286
|
onOpenChange?.(open);
|
|
5010
5287
|
}, [open, onOpenChange]);
|
|
5011
|
-
|
|
5288
|
+
useEffect7(() => {
|
|
5012
5289
|
if (propOpen) {
|
|
5013
5290
|
setOpen(propOpen);
|
|
5014
5291
|
}
|
|
5015
5292
|
}, [propOpen]);
|
|
5016
|
-
return /* @__PURE__ */
|
|
5293
|
+
return /* @__PURE__ */ jsx29("div", { className: "relative", ref: menuRef, children: injectStore3(children, store) });
|
|
5017
5294
|
};
|
|
5018
5295
|
var DropdownMenuTrigger = ({
|
|
5019
5296
|
className,
|
|
@@ -5023,9 +5300,9 @@ var DropdownMenuTrigger = ({
|
|
|
5023
5300
|
...props
|
|
5024
5301
|
}) => {
|
|
5025
5302
|
const store = useDropdownStore(externalStore);
|
|
5026
|
-
const open =
|
|
5303
|
+
const open = useStore3(store, (s) => s.open);
|
|
5027
5304
|
const toggleOpen = () => store.setState({ open: !open });
|
|
5028
|
-
return /* @__PURE__ */
|
|
5305
|
+
return /* @__PURE__ */ jsx29(
|
|
5029
5306
|
"button",
|
|
5030
5307
|
{
|
|
5031
5308
|
onClick: (e) => {
|
|
@@ -5060,8 +5337,8 @@ var MENUCONTENT_VARIANT_CLASSES = {
|
|
|
5060
5337
|
menu: "p-1",
|
|
5061
5338
|
profile: "p-6"
|
|
5062
5339
|
};
|
|
5063
|
-
var MenuLabel =
|
|
5064
|
-
return /* @__PURE__ */
|
|
5340
|
+
var MenuLabel = forwardRef14(({ className, inset, store: _store, ...props }, ref) => {
|
|
5341
|
+
return /* @__PURE__ */ jsx29(
|
|
5065
5342
|
"div",
|
|
5066
5343
|
{
|
|
5067
5344
|
ref,
|
|
@@ -5071,7 +5348,7 @@ var MenuLabel = forwardRef13(({ className, inset, store: _store, ...props }, ref
|
|
|
5071
5348
|
);
|
|
5072
5349
|
});
|
|
5073
5350
|
MenuLabel.displayName = "MenuLabel";
|
|
5074
|
-
var DropdownMenuContent =
|
|
5351
|
+
var DropdownMenuContent = forwardRef14(
|
|
5075
5352
|
({
|
|
5076
5353
|
className,
|
|
5077
5354
|
align = "start",
|
|
@@ -5083,9 +5360,9 @@ var DropdownMenuContent = forwardRef13(
|
|
|
5083
5360
|
...props
|
|
5084
5361
|
}, ref) => {
|
|
5085
5362
|
const store = useDropdownStore(externalStore);
|
|
5086
|
-
const open =
|
|
5087
|
-
const [isVisible, setIsVisible] =
|
|
5088
|
-
|
|
5363
|
+
const open = useStore3(store, (s) => s.open);
|
|
5364
|
+
const [isVisible, setIsVisible] = useState10(open);
|
|
5365
|
+
useEffect7(() => {
|
|
5089
5366
|
if (open) {
|
|
5090
5367
|
setIsVisible(true);
|
|
5091
5368
|
} else {
|
|
@@ -5100,7 +5377,7 @@ var DropdownMenuContent = forwardRef13(
|
|
|
5100
5377
|
return `absolute ${vertical} ${horizontal}`;
|
|
5101
5378
|
};
|
|
5102
5379
|
const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
|
|
5103
|
-
return /* @__PURE__ */
|
|
5380
|
+
return /* @__PURE__ */ jsx29(
|
|
5104
5381
|
"div",
|
|
5105
5382
|
{
|
|
5106
5383
|
ref,
|
|
@@ -5125,7 +5402,7 @@ var DropdownMenuContent = forwardRef13(
|
|
|
5125
5402
|
}
|
|
5126
5403
|
);
|
|
5127
5404
|
DropdownMenuContent.displayName = "DropdownMenuContent";
|
|
5128
|
-
var DropdownMenuItem =
|
|
5405
|
+
var DropdownMenuItem = forwardRef14(
|
|
5129
5406
|
({
|
|
5130
5407
|
className,
|
|
5131
5408
|
size = "small",
|
|
@@ -5139,7 +5416,7 @@ var DropdownMenuItem = forwardRef13(
|
|
|
5139
5416
|
...props
|
|
5140
5417
|
}, ref) => {
|
|
5141
5418
|
const store = useDropdownStore(externalStore);
|
|
5142
|
-
const setOpen =
|
|
5419
|
+
const setOpen = useStore3(store, (s) => s.setOpen);
|
|
5143
5420
|
const sizeClasses = ITEM_SIZE_CLASSES[size];
|
|
5144
5421
|
const handleClick = (e) => {
|
|
5145
5422
|
if (disabled) {
|
|
@@ -5159,7 +5436,7 @@ var DropdownMenuItem = forwardRef13(
|
|
|
5159
5436
|
const getVariantProps = () => {
|
|
5160
5437
|
return variant === "profile" ? { "data-variant": "profile" } : {};
|
|
5161
5438
|
};
|
|
5162
|
-
return /* @__PURE__ */
|
|
5439
|
+
return /* @__PURE__ */ jsxs23(
|
|
5163
5440
|
"div",
|
|
5164
5441
|
{
|
|
5165
5442
|
ref,
|
|
@@ -5181,7 +5458,7 @@ var DropdownMenuItem = forwardRef13(
|
|
|
5181
5458
|
...props,
|
|
5182
5459
|
children: [
|
|
5183
5460
|
iconLeft,
|
|
5184
|
-
/* @__PURE__ */
|
|
5461
|
+
/* @__PURE__ */ jsx29("span", { className: "w-full text-md", children }),
|
|
5185
5462
|
iconRight
|
|
5186
5463
|
]
|
|
5187
5464
|
}
|
|
@@ -5189,7 +5466,7 @@ var DropdownMenuItem = forwardRef13(
|
|
|
5189
5466
|
}
|
|
5190
5467
|
);
|
|
5191
5468
|
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
5192
|
-
var DropdownMenuSeparator =
|
|
5469
|
+
var DropdownMenuSeparator = forwardRef14(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ jsx29(
|
|
5193
5470
|
"div",
|
|
5194
5471
|
{
|
|
5195
5472
|
ref,
|
|
@@ -5198,11 +5475,11 @@ var DropdownMenuSeparator = forwardRef13(({ className, store: _store, ...props }
|
|
|
5198
5475
|
}
|
|
5199
5476
|
));
|
|
5200
5477
|
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
5201
|
-
var ProfileMenuTrigger =
|
|
5478
|
+
var ProfileMenuTrigger = forwardRef14(({ className, onClick, store: externalStore, ...props }, ref) => {
|
|
5202
5479
|
const store = useDropdownStore(externalStore);
|
|
5203
|
-
const open =
|
|
5480
|
+
const open = useStore3(store, (s) => s.open);
|
|
5204
5481
|
const toggleOpen = () => store.setState({ open: !open });
|
|
5205
|
-
return /* @__PURE__ */
|
|
5482
|
+
return /* @__PURE__ */ jsx29(
|
|
5206
5483
|
"button",
|
|
5207
5484
|
{
|
|
5208
5485
|
ref,
|
|
@@ -5217,13 +5494,13 @@ var ProfileMenuTrigger = forwardRef13(({ className, onClick, store: externalStor
|
|
|
5217
5494
|
},
|
|
5218
5495
|
"aria-expanded": open,
|
|
5219
5496
|
...props,
|
|
5220
|
-
children: /* @__PURE__ */
|
|
5497
|
+
children: /* @__PURE__ */ jsx29("span", { className: "size-6 rounded-full bg-primary-100 flex items-center justify-center", children: /* @__PURE__ */ jsx29(User, { className: "text-primary-950", size: 18 }) })
|
|
5221
5498
|
}
|
|
5222
5499
|
);
|
|
5223
5500
|
});
|
|
5224
5501
|
ProfileMenuTrigger.displayName = "ProfileMenuTrigger";
|
|
5225
|
-
var ProfileMenuHeader =
|
|
5226
|
-
return /* @__PURE__ */
|
|
5502
|
+
var ProfileMenuHeader = forwardRef14(({ className, name, email, store: _store, ...props }, ref) => {
|
|
5503
|
+
return /* @__PURE__ */ jsxs23(
|
|
5227
5504
|
"div",
|
|
5228
5505
|
{
|
|
5229
5506
|
ref,
|
|
@@ -5231,18 +5508,18 @@ var ProfileMenuHeader = forwardRef13(({ className, name, email, store: _store, .
|
|
|
5231
5508
|
className: cn("flex flex-row gap-4 items-center", className),
|
|
5232
5509
|
...props,
|
|
5233
5510
|
children: [
|
|
5234
|
-
/* @__PURE__ */
|
|
5235
|
-
/* @__PURE__ */
|
|
5236
|
-
/* @__PURE__ */
|
|
5237
|
-
/* @__PURE__ */
|
|
5511
|
+
/* @__PURE__ */ jsx29("span", { className: "size-16 bg-primary-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx29(User, { size: 34, className: "text-primary-950" }) }),
|
|
5512
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex flex-col ", children: [
|
|
5513
|
+
/* @__PURE__ */ jsx29("p", { className: "text-xl font-bold text-text-950", children: name }),
|
|
5514
|
+
/* @__PURE__ */ jsx29("p", { className: "text-md text-text-600", children: email })
|
|
5238
5515
|
] })
|
|
5239
5516
|
]
|
|
5240
5517
|
}
|
|
5241
5518
|
);
|
|
5242
5519
|
});
|
|
5243
5520
|
ProfileMenuHeader.displayName = "ProfileMenuHeader";
|
|
5244
|
-
var ProfileMenuSection =
|
|
5245
|
-
return /* @__PURE__ */
|
|
5521
|
+
var ProfileMenuSection = forwardRef14(({ className, children, store: _store, ...props }, ref) => {
|
|
5522
|
+
return /* @__PURE__ */ jsx29("div", { ref, className: cn("flex flex-col p-2", className), ...props, children });
|
|
5246
5523
|
});
|
|
5247
5524
|
ProfileMenuSection.displayName = "ProfileMenuSection";
|
|
5248
5525
|
var ProfileMenuFooter = ({
|
|
@@ -5253,8 +5530,8 @@ var ProfileMenuFooter = ({
|
|
|
5253
5530
|
...props
|
|
5254
5531
|
}) => {
|
|
5255
5532
|
const store = useDropdownStore(externalStore);
|
|
5256
|
-
const setOpen =
|
|
5257
|
-
return /* @__PURE__ */
|
|
5533
|
+
const setOpen = useStore3(store, (s) => s.setOpen);
|
|
5534
|
+
return /* @__PURE__ */ jsxs23(
|
|
5258
5535
|
Button_default,
|
|
5259
5536
|
{
|
|
5260
5537
|
variant: "outline",
|
|
@@ -5266,8 +5543,8 @@ var ProfileMenuFooter = ({
|
|
|
5266
5543
|
},
|
|
5267
5544
|
...props,
|
|
5268
5545
|
children: [
|
|
5269
|
-
/* @__PURE__ */
|
|
5270
|
-
/* @__PURE__ */
|
|
5546
|
+
/* @__PURE__ */ jsx29("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ jsx29(SignOut, {}) }),
|
|
5547
|
+
/* @__PURE__ */ jsx29("span", { children: "Sair" })
|
|
5271
5548
|
]
|
|
5272
5549
|
}
|
|
5273
5550
|
);
|
|
@@ -5276,18 +5553,18 @@ ProfileMenuFooter.displayName = "ProfileMenuFooter";
|
|
|
5276
5553
|
var DropdownMenu_default = DropdownMenu;
|
|
5277
5554
|
|
|
5278
5555
|
// src/components/Select/Select.tsx
|
|
5279
|
-
import { create as
|
|
5556
|
+
import { create as create5, useStore as useStore4 } from "zustand";
|
|
5280
5557
|
import {
|
|
5281
|
-
useEffect as
|
|
5282
|
-
useRef as
|
|
5283
|
-
forwardRef as
|
|
5284
|
-
isValidElement as
|
|
5285
|
-
Children as
|
|
5286
|
-
cloneElement as
|
|
5287
|
-
useId as
|
|
5558
|
+
useEffect as useEffect8,
|
|
5559
|
+
useRef as useRef6,
|
|
5560
|
+
forwardRef as forwardRef15,
|
|
5561
|
+
isValidElement as isValidElement4,
|
|
5562
|
+
Children as Children4,
|
|
5563
|
+
cloneElement as cloneElement4,
|
|
5564
|
+
useId as useId8
|
|
5288
5565
|
} from "react";
|
|
5289
|
-
import { CaretDown, Check as
|
|
5290
|
-
import { Fragment as Fragment6, jsx as
|
|
5566
|
+
import { CaretDown, Check as Check5, WarningCircle as WarningCircle5 } from "phosphor-react";
|
|
5567
|
+
import { Fragment as Fragment6, jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
5291
5568
|
var VARIANT_CLASSES4 = {
|
|
5292
5569
|
outlined: "border rounded-lg focus:border-primary-950",
|
|
5293
5570
|
underlined: "border-b focus:border-primary-950",
|
|
@@ -5323,7 +5600,7 @@ var ALIGN_CLASSES2 = {
|
|
|
5323
5600
|
end: "right-0"
|
|
5324
5601
|
};
|
|
5325
5602
|
function createSelectStore(onValueChange) {
|
|
5326
|
-
return
|
|
5603
|
+
return create5((set) => ({
|
|
5327
5604
|
open: false,
|
|
5328
5605
|
setOpen: (open) => set({ open }),
|
|
5329
5606
|
value: "",
|
|
@@ -5345,13 +5622,13 @@ function getLabelAsNode(children) {
|
|
|
5345
5622
|
if (typeof children === "string" || typeof children === "number") {
|
|
5346
5623
|
return children;
|
|
5347
5624
|
}
|
|
5348
|
-
const flattened =
|
|
5625
|
+
const flattened = Children4.toArray(children);
|
|
5349
5626
|
if (flattened.length === 1) return flattened[0];
|
|
5350
|
-
return /* @__PURE__ */
|
|
5627
|
+
return /* @__PURE__ */ jsx30(Fragment6, { children: flattened });
|
|
5351
5628
|
}
|
|
5352
|
-
var
|
|
5353
|
-
return
|
|
5354
|
-
if (
|
|
5629
|
+
var injectStore4 = (children, store, size, selectId) => {
|
|
5630
|
+
return Children4.map(children, (child) => {
|
|
5631
|
+
if (isValidElement4(child)) {
|
|
5355
5632
|
const typedChild = child;
|
|
5356
5633
|
const newProps = {
|
|
5357
5634
|
store
|
|
@@ -5361,14 +5638,14 @@ var injectStore3 = (children, store, size, selectId) => {
|
|
|
5361
5638
|
newProps.selectId = selectId;
|
|
5362
5639
|
}
|
|
5363
5640
|
if (typedChild.props.children) {
|
|
5364
|
-
newProps.children =
|
|
5641
|
+
newProps.children = injectStore4(
|
|
5365
5642
|
typedChild.props.children,
|
|
5366
5643
|
store,
|
|
5367
5644
|
size,
|
|
5368
5645
|
selectId
|
|
5369
5646
|
);
|
|
5370
5647
|
}
|
|
5371
|
-
return
|
|
5648
|
+
return cloneElement4(typedChild, newProps);
|
|
5372
5649
|
}
|
|
5373
5650
|
return child;
|
|
5374
5651
|
});
|
|
@@ -5384,18 +5661,18 @@ var Select = ({
|
|
|
5384
5661
|
errorMessage,
|
|
5385
5662
|
id
|
|
5386
5663
|
}) => {
|
|
5387
|
-
const storeRef =
|
|
5664
|
+
const storeRef = useRef6(null);
|
|
5388
5665
|
storeRef.current ??= createSelectStore(onValueChange);
|
|
5389
5666
|
const store = storeRef.current;
|
|
5390
|
-
const selectRef =
|
|
5391
|
-
const { open, setOpen, setValue, selectedLabel } =
|
|
5392
|
-
const generatedId =
|
|
5667
|
+
const selectRef = useRef6(null);
|
|
5668
|
+
const { open, setOpen, setValue, selectedLabel } = useStore4(store, (s) => s);
|
|
5669
|
+
const generatedId = useId8();
|
|
5393
5670
|
const selectId = id ?? `select-${generatedId}`;
|
|
5394
5671
|
const findLabelForValue = (children2, targetValue) => {
|
|
5395
5672
|
let found = null;
|
|
5396
5673
|
const search = (nodes) => {
|
|
5397
|
-
|
|
5398
|
-
if (!
|
|
5674
|
+
Children4.forEach(nodes, (child) => {
|
|
5675
|
+
if (!isValidElement4(child)) return;
|
|
5399
5676
|
const typedChild = child;
|
|
5400
5677
|
if (typedChild.type === SelectItem && typedChild.props.value === targetValue) {
|
|
5401
5678
|
if (typeof typedChild.props.children === "string")
|
|
@@ -5408,13 +5685,13 @@ var Select = ({
|
|
|
5408
5685
|
search(children2);
|
|
5409
5686
|
return found;
|
|
5410
5687
|
};
|
|
5411
|
-
|
|
5688
|
+
useEffect8(() => {
|
|
5412
5689
|
if (!selectedLabel && defaultValue) {
|
|
5413
5690
|
const label2 = findLabelForValue(children, defaultValue);
|
|
5414
5691
|
if (label2) store.setState({ selectedLabel: label2 });
|
|
5415
5692
|
}
|
|
5416
5693
|
}, [children, defaultValue, selectedLabel]);
|
|
5417
|
-
|
|
5694
|
+
useEffect8(() => {
|
|
5418
5695
|
const handleClickOutside = (event) => {
|
|
5419
5696
|
if (selectRef.current && !selectRef.current.contains(event.target)) {
|
|
5420
5697
|
setOpen(false);
|
|
@@ -5449,7 +5726,7 @@ var Select = ({
|
|
|
5449
5726
|
document.removeEventListener("keydown", handleArrowKeys);
|
|
5450
5727
|
};
|
|
5451
5728
|
}, [open]);
|
|
5452
|
-
|
|
5729
|
+
useEffect8(() => {
|
|
5453
5730
|
if (propValue) {
|
|
5454
5731
|
setValue(propValue);
|
|
5455
5732
|
const label2 = findLabelForValue(children, propValue);
|
|
@@ -5457,8 +5734,8 @@ var Select = ({
|
|
|
5457
5734
|
}
|
|
5458
5735
|
}, [propValue]);
|
|
5459
5736
|
const sizeClasses = SIZE_CLASSES12[size];
|
|
5460
|
-
return /* @__PURE__ */
|
|
5461
|
-
label && /* @__PURE__ */
|
|
5737
|
+
return /* @__PURE__ */ jsxs24("div", { className: "w-full", children: [
|
|
5738
|
+
label && /* @__PURE__ */ jsx30(
|
|
5462
5739
|
"label",
|
|
5463
5740
|
{
|
|
5464
5741
|
htmlFor: selectId,
|
|
@@ -5466,11 +5743,11 @@ var Select = ({
|
|
|
5466
5743
|
children: label
|
|
5467
5744
|
}
|
|
5468
5745
|
),
|
|
5469
|
-
/* @__PURE__ */
|
|
5470
|
-
/* @__PURE__ */
|
|
5471
|
-
helperText && /* @__PURE__ */
|
|
5472
|
-
errorMessage && /* @__PURE__ */
|
|
5473
|
-
/* @__PURE__ */
|
|
5746
|
+
/* @__PURE__ */ jsx30("div", { className: cn("relative", sizeClasses), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
|
|
5747
|
+
/* @__PURE__ */ jsxs24("div", { className: "mt-1.5 gap-1.5", children: [
|
|
5748
|
+
helperText && /* @__PURE__ */ jsx30("p", { className: "text-sm text-text-500", children: helperText }),
|
|
5749
|
+
errorMessage && /* @__PURE__ */ jsxs24("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
|
|
5750
|
+
/* @__PURE__ */ jsx30(WarningCircle5, { size: 16 }),
|
|
5474
5751
|
" ",
|
|
5475
5752
|
errorMessage
|
|
5476
5753
|
] })
|
|
@@ -5482,11 +5759,11 @@ var SelectValue = ({
|
|
|
5482
5759
|
store: externalStore
|
|
5483
5760
|
}) => {
|
|
5484
5761
|
const store = useSelectStore(externalStore);
|
|
5485
|
-
const selectedLabel =
|
|
5486
|
-
const value =
|
|
5487
|
-
return /* @__PURE__ */
|
|
5762
|
+
const selectedLabel = useStore4(store, (s) => s.selectedLabel);
|
|
5763
|
+
const value = useStore4(store, (s) => s.value);
|
|
5764
|
+
return /* @__PURE__ */ jsx30("span", { className: "text-inherit", children: selectedLabel || placeholder || value });
|
|
5488
5765
|
};
|
|
5489
|
-
var SelectTrigger =
|
|
5766
|
+
var SelectTrigger = forwardRef15(
|
|
5490
5767
|
({
|
|
5491
5768
|
className,
|
|
5492
5769
|
invalid = false,
|
|
@@ -5498,12 +5775,12 @@ var SelectTrigger = forwardRef14(
|
|
|
5498
5775
|
...props
|
|
5499
5776
|
}, ref) => {
|
|
5500
5777
|
const store = useSelectStore(externalStore);
|
|
5501
|
-
const open =
|
|
5778
|
+
const open = useStore4(store, (s) => s.open);
|
|
5502
5779
|
const toggleOpen = () => store.setState({ open: !open });
|
|
5503
5780
|
const variantClasses = VARIANT_CLASSES4[variant];
|
|
5504
5781
|
const heightClasses = HEIGHT_CLASSES[size];
|
|
5505
5782
|
const paddingClasses = PADDING_CLASSES[size];
|
|
5506
|
-
return /* @__PURE__ */
|
|
5783
|
+
return /* @__PURE__ */ jsxs24(
|
|
5507
5784
|
"button",
|
|
5508
5785
|
{
|
|
5509
5786
|
ref,
|
|
@@ -5524,7 +5801,7 @@ var SelectTrigger = forwardRef14(
|
|
|
5524
5801
|
...props,
|
|
5525
5802
|
children: [
|
|
5526
5803
|
props.children,
|
|
5527
|
-
/* @__PURE__ */
|
|
5804
|
+
/* @__PURE__ */ jsx30(
|
|
5528
5805
|
CaretDown,
|
|
5529
5806
|
{
|
|
5530
5807
|
className: cn(
|
|
@@ -5539,7 +5816,7 @@ var SelectTrigger = forwardRef14(
|
|
|
5539
5816
|
}
|
|
5540
5817
|
);
|
|
5541
5818
|
SelectTrigger.displayName = "SelectTrigger";
|
|
5542
|
-
var SelectContent =
|
|
5819
|
+
var SelectContent = forwardRef15(
|
|
5543
5820
|
({
|
|
5544
5821
|
children,
|
|
5545
5822
|
className,
|
|
@@ -5549,10 +5826,10 @@ var SelectContent = forwardRef14(
|
|
|
5549
5826
|
...props
|
|
5550
5827
|
}, ref) => {
|
|
5551
5828
|
const store = useSelectStore(externalStore);
|
|
5552
|
-
const open =
|
|
5829
|
+
const open = useStore4(store, (s) => s.open);
|
|
5553
5830
|
if (!open) return null;
|
|
5554
5831
|
const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
|
|
5555
|
-
return /* @__PURE__ */
|
|
5832
|
+
return /* @__PURE__ */ jsx30(
|
|
5556
5833
|
"div",
|
|
5557
5834
|
{
|
|
5558
5835
|
role: "menu",
|
|
@@ -5569,7 +5846,7 @@ var SelectContent = forwardRef14(
|
|
|
5569
5846
|
}
|
|
5570
5847
|
);
|
|
5571
5848
|
SelectContent.displayName = "SelectContent";
|
|
5572
|
-
var SelectItem =
|
|
5849
|
+
var SelectItem = forwardRef15(
|
|
5573
5850
|
({
|
|
5574
5851
|
className,
|
|
5575
5852
|
children,
|
|
@@ -5585,7 +5862,7 @@ var SelectItem = forwardRef14(
|
|
|
5585
5862
|
setOpen,
|
|
5586
5863
|
setSelectedLabel,
|
|
5587
5864
|
onValueChange
|
|
5588
|
-
} =
|
|
5865
|
+
} = useStore4(store, (s) => s);
|
|
5589
5866
|
const handleClick = (e) => {
|
|
5590
5867
|
const labelNode = getLabelAsNode(children);
|
|
5591
5868
|
if (!disabled) {
|
|
@@ -5596,7 +5873,7 @@ var SelectItem = forwardRef14(
|
|
|
5596
5873
|
}
|
|
5597
5874
|
props.onClick?.(e);
|
|
5598
5875
|
};
|
|
5599
|
-
return /* @__PURE__ */
|
|
5876
|
+
return /* @__PURE__ */ jsxs24(
|
|
5600
5877
|
"div",
|
|
5601
5878
|
{
|
|
5602
5879
|
role: "menuitem",
|
|
@@ -5616,7 +5893,7 @@ var SelectItem = forwardRef14(
|
|
|
5616
5893
|
tabIndex: disabled ? -1 : 0,
|
|
5617
5894
|
...props,
|
|
5618
5895
|
children: [
|
|
5619
|
-
/* @__PURE__ */
|
|
5896
|
+
/* @__PURE__ */ jsx30("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx30(Check5, { className: "" }) }),
|
|
5620
5897
|
children
|
|
5621
5898
|
]
|
|
5622
5899
|
}
|
|
@@ -5627,19 +5904,19 @@ SelectItem.displayName = "SelectItem";
|
|
|
5627
5904
|
var Select_default = Select;
|
|
5628
5905
|
|
|
5629
5906
|
// src/components/Menu/Menu.tsx
|
|
5630
|
-
import { create as
|
|
5907
|
+
import { create as create6, useStore as useStore5 } from "zustand";
|
|
5631
5908
|
import {
|
|
5632
|
-
useEffect as
|
|
5633
|
-
useRef as
|
|
5634
|
-
forwardRef as
|
|
5635
|
-
isValidElement as
|
|
5636
|
-
Children as
|
|
5637
|
-
cloneElement as
|
|
5638
|
-
useState as
|
|
5909
|
+
useEffect as useEffect9,
|
|
5910
|
+
useRef as useRef7,
|
|
5911
|
+
forwardRef as forwardRef16,
|
|
5912
|
+
isValidElement as isValidElement5,
|
|
5913
|
+
Children as Children5,
|
|
5914
|
+
cloneElement as cloneElement5,
|
|
5915
|
+
useState as useState11
|
|
5639
5916
|
} from "react";
|
|
5640
5917
|
import { CaretLeft, CaretRight as CaretRight3 } from "phosphor-react";
|
|
5641
|
-
import { jsx as
|
|
5642
|
-
var createMenuStore = (onValueChange) =>
|
|
5918
|
+
import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
5919
|
+
var createMenuStore = (onValueChange) => create6((set) => ({
|
|
5643
5920
|
value: "",
|
|
5644
5921
|
setValue: (value) => {
|
|
5645
5922
|
set({ value });
|
|
@@ -5656,7 +5933,7 @@ var VARIANT_CLASSES5 = {
|
|
|
5656
5933
|
menu2: "",
|
|
5657
5934
|
breadcrumb: ""
|
|
5658
5935
|
};
|
|
5659
|
-
var Menu =
|
|
5936
|
+
var Menu = forwardRef16(
|
|
5660
5937
|
({
|
|
5661
5938
|
className,
|
|
5662
5939
|
children,
|
|
@@ -5666,16 +5943,16 @@ var Menu = forwardRef15(
|
|
|
5666
5943
|
onValueChange,
|
|
5667
5944
|
...props
|
|
5668
5945
|
}, ref) => {
|
|
5669
|
-
const storeRef =
|
|
5946
|
+
const storeRef = useRef7(null);
|
|
5670
5947
|
storeRef.current ??= createMenuStore(onValueChange);
|
|
5671
5948
|
const store = storeRef.current;
|
|
5672
|
-
const { setValue } =
|
|
5673
|
-
|
|
5949
|
+
const { setValue } = useStore5(store, (s) => s);
|
|
5950
|
+
useEffect9(() => {
|
|
5674
5951
|
setValue(propValue ?? defaultValue);
|
|
5675
5952
|
}, [defaultValue, propValue, setValue]);
|
|
5676
5953
|
const baseClasses = "w-full py-2 flex flex-row items-center justify-center";
|
|
5677
5954
|
const variantClasses = VARIANT_CLASSES5[variant];
|
|
5678
|
-
return /* @__PURE__ */
|
|
5955
|
+
return /* @__PURE__ */ jsx31(
|
|
5679
5956
|
"div",
|
|
5680
5957
|
{
|
|
5681
5958
|
ref,
|
|
@@ -5685,17 +5962,17 @@ var Menu = forwardRef15(
|
|
|
5685
5962
|
${className ?? ""}
|
|
5686
5963
|
`,
|
|
5687
5964
|
...props,
|
|
5688
|
-
children:
|
|
5965
|
+
children: injectStore5(children, store)
|
|
5689
5966
|
}
|
|
5690
5967
|
);
|
|
5691
5968
|
}
|
|
5692
5969
|
);
|
|
5693
5970
|
Menu.displayName = "Menu";
|
|
5694
|
-
var MenuContent =
|
|
5971
|
+
var MenuContent = forwardRef16(
|
|
5695
5972
|
({ className, children, variant = "menu", ...props }, ref) => {
|
|
5696
5973
|
const baseClasses = "w-full flex flex-row items-center gap-2";
|
|
5697
5974
|
const variantClasses = variant === "menu2" ? "overflow-x-auto scroll-smooth" : "";
|
|
5698
|
-
return /* @__PURE__ */
|
|
5975
|
+
return /* @__PURE__ */ jsx31(
|
|
5699
5976
|
"ul",
|
|
5700
5977
|
{
|
|
5701
5978
|
ref,
|
|
@@ -5713,7 +5990,7 @@ var MenuContent = forwardRef15(
|
|
|
5713
5990
|
}
|
|
5714
5991
|
);
|
|
5715
5992
|
MenuContent.displayName = "MenuContent";
|
|
5716
|
-
var MenuItem =
|
|
5993
|
+
var MenuItem = forwardRef16(
|
|
5717
5994
|
({
|
|
5718
5995
|
className,
|
|
5719
5996
|
children,
|
|
@@ -5725,7 +6002,7 @@ var MenuItem = forwardRef15(
|
|
|
5725
6002
|
...props
|
|
5726
6003
|
}, ref) => {
|
|
5727
6004
|
const store = useMenuStore(externalStore);
|
|
5728
|
-
const { value: selectedValue, setValue } =
|
|
6005
|
+
const { value: selectedValue, setValue } = useStore5(store, (s) => s);
|
|
5729
6006
|
const handleClick = (e) => {
|
|
5730
6007
|
if (!disabled) {
|
|
5731
6008
|
setValue(value);
|
|
@@ -5747,7 +6024,7 @@ var MenuItem = forwardRef15(
|
|
|
5747
6024
|
...props
|
|
5748
6025
|
};
|
|
5749
6026
|
const variants = {
|
|
5750
|
-
menu: /* @__PURE__ */
|
|
6027
|
+
menu: /* @__PURE__ */ jsx31(
|
|
5751
6028
|
"li",
|
|
5752
6029
|
{
|
|
5753
6030
|
"data-variant": "menu",
|
|
@@ -5762,7 +6039,7 @@ var MenuItem = forwardRef15(
|
|
|
5762
6039
|
children
|
|
5763
6040
|
}
|
|
5764
6041
|
),
|
|
5765
|
-
menu2: /* @__PURE__ */
|
|
6042
|
+
menu2: /* @__PURE__ */ jsxs25(
|
|
5766
6043
|
"li",
|
|
5767
6044
|
{
|
|
5768
6045
|
"data-variant": "menu2",
|
|
@@ -5773,7 +6050,7 @@ var MenuItem = forwardRef15(
|
|
|
5773
6050
|
`,
|
|
5774
6051
|
...commonProps,
|
|
5775
6052
|
children: [
|
|
5776
|
-
/* @__PURE__ */
|
|
6053
|
+
/* @__PURE__ */ jsx31(
|
|
5777
6054
|
"span",
|
|
5778
6055
|
{
|
|
5779
6056
|
className: cn(
|
|
@@ -5783,11 +6060,11 @@ var MenuItem = forwardRef15(
|
|
|
5783
6060
|
children
|
|
5784
6061
|
}
|
|
5785
6062
|
),
|
|
5786
|
-
selectedValue === value && /* @__PURE__ */
|
|
6063
|
+
selectedValue === value && /* @__PURE__ */ jsx31("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
|
|
5787
6064
|
]
|
|
5788
6065
|
}
|
|
5789
6066
|
),
|
|
5790
|
-
breadcrumb: /* @__PURE__ */
|
|
6067
|
+
breadcrumb: /* @__PURE__ */ jsxs25(
|
|
5791
6068
|
"li",
|
|
5792
6069
|
{
|
|
5793
6070
|
"data-variant": "breadcrumb",
|
|
@@ -5799,7 +6076,7 @@ var MenuItem = forwardRef15(
|
|
|
5799
6076
|
`,
|
|
5800
6077
|
...commonProps,
|
|
5801
6078
|
children: [
|
|
5802
|
-
/* @__PURE__ */
|
|
6079
|
+
/* @__PURE__ */ jsx31(
|
|
5803
6080
|
"span",
|
|
5804
6081
|
{
|
|
5805
6082
|
className: cn(
|
|
@@ -5809,7 +6086,7 @@ var MenuItem = forwardRef15(
|
|
|
5809
6086
|
children
|
|
5810
6087
|
}
|
|
5811
6088
|
),
|
|
5812
|
-
separator && /* @__PURE__ */
|
|
6089
|
+
separator && /* @__PURE__ */ jsx31(
|
|
5813
6090
|
CaretRight3,
|
|
5814
6091
|
{
|
|
5815
6092
|
size: 16,
|
|
@@ -5846,10 +6123,10 @@ var MenuOverflow = ({
|
|
|
5846
6123
|
onValueChange,
|
|
5847
6124
|
...props
|
|
5848
6125
|
}) => {
|
|
5849
|
-
const containerRef =
|
|
5850
|
-
const [showLeftArrow, setShowLeftArrow] =
|
|
5851
|
-
const [showRightArrow, setShowRightArrow] =
|
|
5852
|
-
|
|
6126
|
+
const containerRef = useRef7(null);
|
|
6127
|
+
const [showLeftArrow, setShowLeftArrow] = useState11(false);
|
|
6128
|
+
const [showRightArrow, setShowRightArrow] = useState11(false);
|
|
6129
|
+
useEffect9(() => {
|
|
5853
6130
|
const checkScroll = () => internalCheckScroll(
|
|
5854
6131
|
containerRef.current,
|
|
5855
6132
|
setShowLeftArrow,
|
|
@@ -5864,25 +6141,25 @@ var MenuOverflow = ({
|
|
|
5864
6141
|
window.removeEventListener("resize", checkScroll);
|
|
5865
6142
|
};
|
|
5866
6143
|
}, []);
|
|
5867
|
-
return /* @__PURE__ */
|
|
6144
|
+
return /* @__PURE__ */ jsxs25(
|
|
5868
6145
|
"div",
|
|
5869
6146
|
{
|
|
5870
6147
|
"data-testid": "menu-overflow-wrapper",
|
|
5871
6148
|
className: cn("relative w-full overflow-hidden", className),
|
|
5872
6149
|
children: [
|
|
5873
|
-
showLeftArrow && /* @__PURE__ */
|
|
6150
|
+
showLeftArrow && /* @__PURE__ */ jsxs25(
|
|
5874
6151
|
"button",
|
|
5875
6152
|
{
|
|
5876
6153
|
onClick: () => internalScroll(containerRef.current, "left"),
|
|
5877
6154
|
className: "absolute left-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
|
|
5878
6155
|
"data-testid": "scroll-left-button",
|
|
5879
6156
|
children: [
|
|
5880
|
-
/* @__PURE__ */
|
|
5881
|
-
/* @__PURE__ */
|
|
6157
|
+
/* @__PURE__ */ jsx31(CaretLeft, { size: 16 }),
|
|
6158
|
+
/* @__PURE__ */ jsx31("span", { className: "sr-only", children: "Scroll left" })
|
|
5882
6159
|
]
|
|
5883
6160
|
}
|
|
5884
6161
|
),
|
|
5885
|
-
/* @__PURE__ */
|
|
6162
|
+
/* @__PURE__ */ jsx31(
|
|
5886
6163
|
Menu,
|
|
5887
6164
|
{
|
|
5888
6165
|
defaultValue,
|
|
@@ -5890,18 +6167,18 @@ var MenuOverflow = ({
|
|
|
5890
6167
|
value,
|
|
5891
6168
|
variant: "menu2",
|
|
5892
6169
|
...props,
|
|
5893
|
-
children: /* @__PURE__ */
|
|
6170
|
+
children: /* @__PURE__ */ jsx31(MenuContent, { ref: containerRef, variant: "menu2", children })
|
|
5894
6171
|
}
|
|
5895
6172
|
),
|
|
5896
|
-
showRightArrow && /* @__PURE__ */
|
|
6173
|
+
showRightArrow && /* @__PURE__ */ jsxs25(
|
|
5897
6174
|
"button",
|
|
5898
6175
|
{
|
|
5899
6176
|
onClick: () => internalScroll(containerRef.current, "right"),
|
|
5900
6177
|
className: "absolute right-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
|
|
5901
6178
|
"data-testid": "scroll-right-button",
|
|
5902
6179
|
children: [
|
|
5903
|
-
/* @__PURE__ */
|
|
5904
|
-
/* @__PURE__ */
|
|
6180
|
+
/* @__PURE__ */ jsx31(CaretRight3, { size: 16 }),
|
|
6181
|
+
/* @__PURE__ */ jsx31("span", { className: "sr-only", children: "Scroll right" })
|
|
5905
6182
|
]
|
|
5906
6183
|
}
|
|
5907
6184
|
)
|
|
@@ -5909,20 +6186,20 @@ var MenuOverflow = ({
|
|
|
5909
6186
|
}
|
|
5910
6187
|
);
|
|
5911
6188
|
};
|
|
5912
|
-
var
|
|
5913
|
-
if (!
|
|
6189
|
+
var injectStore5 = (children, store) => Children5.map(children, (child) => {
|
|
6190
|
+
if (!isValidElement5(child)) return child;
|
|
5914
6191
|
const typedChild = child;
|
|
5915
6192
|
const shouldInject = typedChild.type === MenuItem;
|
|
5916
|
-
return
|
|
6193
|
+
return cloneElement5(typedChild, {
|
|
5917
6194
|
...shouldInject ? { store } : {},
|
|
5918
|
-
...typedChild.props.children ? { children:
|
|
6195
|
+
...typedChild.props.children ? { children: injectStore5(typedChild.props.children, store) } : {}
|
|
5919
6196
|
});
|
|
5920
6197
|
});
|
|
5921
6198
|
var Menu_default = Menu;
|
|
5922
6199
|
|
|
5923
6200
|
// src/components/Skeleton/Skeleton.tsx
|
|
5924
|
-
import { forwardRef as
|
|
5925
|
-
import { jsx as
|
|
6201
|
+
import { forwardRef as forwardRef17 } from "react";
|
|
6202
|
+
import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
5926
6203
|
var SKELETON_ANIMATION_CLASSES = {
|
|
5927
6204
|
pulse: "animate-pulse",
|
|
5928
6205
|
none: ""
|
|
@@ -5939,7 +6216,7 @@ var SPACING_CLASSES = {
|
|
|
5939
6216
|
medium: "space-y-2",
|
|
5940
6217
|
large: "space-y-3"
|
|
5941
6218
|
};
|
|
5942
|
-
var Skeleton =
|
|
6219
|
+
var Skeleton = forwardRef17(
|
|
5943
6220
|
({
|
|
5944
6221
|
variant = "text",
|
|
5945
6222
|
width,
|
|
@@ -5959,13 +6236,13 @@ var Skeleton = forwardRef16(
|
|
|
5959
6236
|
height: typeof height === "number" ? `${height}px` : height
|
|
5960
6237
|
};
|
|
5961
6238
|
if (variant === "text" && lines > 1) {
|
|
5962
|
-
return /* @__PURE__ */
|
|
6239
|
+
return /* @__PURE__ */ jsx32(
|
|
5963
6240
|
"div",
|
|
5964
6241
|
{
|
|
5965
6242
|
ref,
|
|
5966
6243
|
className: cn("flex flex-col", spacingClass, className),
|
|
5967
6244
|
...props,
|
|
5968
|
-
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */
|
|
6245
|
+
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx32(
|
|
5969
6246
|
"div",
|
|
5970
6247
|
{
|
|
5971
6248
|
className: cn(variantClass, animationClass),
|
|
@@ -5976,7 +6253,7 @@ var Skeleton = forwardRef16(
|
|
|
5976
6253
|
}
|
|
5977
6254
|
);
|
|
5978
6255
|
}
|
|
5979
|
-
return /* @__PURE__ */
|
|
6256
|
+
return /* @__PURE__ */ jsx32(
|
|
5980
6257
|
"div",
|
|
5981
6258
|
{
|
|
5982
6259
|
ref,
|
|
@@ -5988,13 +6265,13 @@ var Skeleton = forwardRef16(
|
|
|
5988
6265
|
);
|
|
5989
6266
|
}
|
|
5990
6267
|
);
|
|
5991
|
-
var SkeletonText =
|
|
5992
|
-
(props, ref) => /* @__PURE__ */
|
|
6268
|
+
var SkeletonText = forwardRef17(
|
|
6269
|
+
(props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "text", ...props })
|
|
5993
6270
|
);
|
|
5994
|
-
var SkeletonCircle =
|
|
5995
|
-
var SkeletonRectangle =
|
|
5996
|
-
var SkeletonRounded =
|
|
5997
|
-
var SkeletonCard =
|
|
6271
|
+
var SkeletonCircle = forwardRef17((props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "circular", ...props }));
|
|
6272
|
+
var SkeletonRectangle = forwardRef17((props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "rectangular", ...props }));
|
|
6273
|
+
var SkeletonRounded = forwardRef17((props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "rounded", ...props }));
|
|
6274
|
+
var SkeletonCard = forwardRef17(
|
|
5998
6275
|
({
|
|
5999
6276
|
showAvatar = true,
|
|
6000
6277
|
showTitle = true,
|
|
@@ -6004,7 +6281,7 @@ var SkeletonCard = forwardRef16(
|
|
|
6004
6281
|
className = "",
|
|
6005
6282
|
...props
|
|
6006
6283
|
}, ref) => {
|
|
6007
|
-
return /* @__PURE__ */
|
|
6284
|
+
return /* @__PURE__ */ jsxs26(
|
|
6008
6285
|
"div",
|
|
6009
6286
|
{
|
|
6010
6287
|
ref,
|
|
@@ -6014,23 +6291,23 @@ var SkeletonCard = forwardRef16(
|
|
|
6014
6291
|
),
|
|
6015
6292
|
...props,
|
|
6016
6293
|
children: [
|
|
6017
|
-
/* @__PURE__ */
|
|
6018
|
-
showAvatar && /* @__PURE__ */
|
|
6019
|
-
/* @__PURE__ */
|
|
6020
|
-
showTitle && /* @__PURE__ */
|
|
6021
|
-
showDescription && /* @__PURE__ */
|
|
6294
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex items-start space-x-3", children: [
|
|
6295
|
+
showAvatar && /* @__PURE__ */ jsx32(SkeletonCircle, { width: 40, height: 40 }),
|
|
6296
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
|
|
6297
|
+
showTitle && /* @__PURE__ */ jsx32(SkeletonText, { width: "60%", height: 20 }),
|
|
6298
|
+
showDescription && /* @__PURE__ */ jsx32(SkeletonText, { lines, spacing: "small" })
|
|
6022
6299
|
] })
|
|
6023
6300
|
] }),
|
|
6024
|
-
showActions && /* @__PURE__ */
|
|
6025
|
-
/* @__PURE__ */
|
|
6026
|
-
/* @__PURE__ */
|
|
6301
|
+
showActions && /* @__PURE__ */ jsxs26("div", { className: "flex justify-end space-x-2 mt-4", children: [
|
|
6302
|
+
/* @__PURE__ */ jsx32(SkeletonRectangle, { width: 80, height: 32 }),
|
|
6303
|
+
/* @__PURE__ */ jsx32(SkeletonRectangle, { width: 80, height: 32 })
|
|
6027
6304
|
] })
|
|
6028
6305
|
]
|
|
6029
6306
|
}
|
|
6030
6307
|
);
|
|
6031
6308
|
}
|
|
6032
6309
|
);
|
|
6033
|
-
var SkeletonList =
|
|
6310
|
+
var SkeletonList = forwardRef17(
|
|
6034
6311
|
({
|
|
6035
6312
|
items = 3,
|
|
6036
6313
|
showAvatar = true,
|
|
@@ -6040,19 +6317,19 @@ var SkeletonList = forwardRef16(
|
|
|
6040
6317
|
className = "",
|
|
6041
6318
|
...props
|
|
6042
6319
|
}, ref) => {
|
|
6043
|
-
return /* @__PURE__ */
|
|
6044
|
-
showAvatar && /* @__PURE__ */
|
|
6045
|
-
/* @__PURE__ */
|
|
6046
|
-
showTitle && /* @__PURE__ */
|
|
6047
|
-
showDescription && /* @__PURE__ */
|
|
6320
|
+
return /* @__PURE__ */ jsx32("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs26("div", { className: "flex items-start space-x-3 p-3", children: [
|
|
6321
|
+
showAvatar && /* @__PURE__ */ jsx32(SkeletonCircle, { width: 32, height: 32 }),
|
|
6322
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
|
|
6323
|
+
showTitle && /* @__PURE__ */ jsx32(SkeletonText, { width: "40%", height: 16 }),
|
|
6324
|
+
showDescription && /* @__PURE__ */ jsx32(SkeletonText, { lines, spacing: "small" })
|
|
6048
6325
|
] })
|
|
6049
6326
|
] }, index)) });
|
|
6050
6327
|
}
|
|
6051
6328
|
);
|
|
6052
|
-
var SkeletonTable =
|
|
6329
|
+
var SkeletonTable = forwardRef17(
|
|
6053
6330
|
({ rows = 5, columns = 4, showHeader = true, className = "", ...props }, ref) => {
|
|
6054
|
-
return /* @__PURE__ */
|
|
6055
|
-
showHeader && /* @__PURE__ */
|
|
6331
|
+
return /* @__PURE__ */ jsxs26("div", { ref, className: cn("w-full", className), ...props, children: [
|
|
6332
|
+
showHeader && /* @__PURE__ */ jsx32("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx32(
|
|
6056
6333
|
SkeletonText,
|
|
6057
6334
|
{
|
|
6058
6335
|
width: `${100 / columns}%`,
|
|
@@ -6060,7 +6337,7 @@ var SkeletonTable = forwardRef16(
|
|
|
6060
6337
|
},
|
|
6061
6338
|
index
|
|
6062
6339
|
)) }),
|
|
6063
|
-
/* @__PURE__ */
|
|
6340
|
+
/* @__PURE__ */ jsx32("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx32("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx32(
|
|
6064
6341
|
SkeletonText,
|
|
6065
6342
|
{
|
|
6066
6343
|
width: `${100 / columns}%`,
|
|
@@ -6073,7 +6350,7 @@ var SkeletonTable = forwardRef16(
|
|
|
6073
6350
|
);
|
|
6074
6351
|
|
|
6075
6352
|
// src/components/NotFound/NotFound.tsx
|
|
6076
|
-
import { jsx as
|
|
6353
|
+
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6077
6354
|
var NotFound = ({
|
|
6078
6355
|
title,
|
|
6079
6356
|
description,
|
|
@@ -6116,22 +6393,22 @@ var NotFound = ({
|
|
|
6116
6393
|
const errorTitle = title || getDefaultTitle();
|
|
6117
6394
|
const errorDescription = description || getDefaultDescription();
|
|
6118
6395
|
const errorCode = getErrorCode();
|
|
6119
|
-
return /* @__PURE__ */
|
|
6396
|
+
return /* @__PURE__ */ jsx33(
|
|
6120
6397
|
"div",
|
|
6121
6398
|
{
|
|
6122
6399
|
className: cn(
|
|
6123
6400
|
"flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
|
|
6124
6401
|
className
|
|
6125
6402
|
),
|
|
6126
|
-
children: /* @__PURE__ */
|
|
6403
|
+
children: /* @__PURE__ */ jsx33(
|
|
6127
6404
|
"main",
|
|
6128
6405
|
{
|
|
6129
6406
|
role: "main",
|
|
6130
6407
|
"aria-labelledby": "error-title",
|
|
6131
6408
|
"aria-describedby": "error-description",
|
|
6132
6409
|
className: "flex flex-col items-center text-center max-w-md space-y-6",
|
|
6133
|
-
children: /* @__PURE__ */
|
|
6134
|
-
/* @__PURE__ */
|
|
6410
|
+
children: /* @__PURE__ */ jsxs27("section", { "aria-label": `Erro ${errorCode}`, children: [
|
|
6411
|
+
/* @__PURE__ */ jsx33(
|
|
6135
6412
|
"div",
|
|
6136
6413
|
{
|
|
6137
6414
|
className: "text-8xl font-bold text-primary-300 select-none",
|
|
@@ -6139,8 +6416,8 @@ var NotFound = ({
|
|
|
6139
6416
|
children: errorCode
|
|
6140
6417
|
}
|
|
6141
6418
|
),
|
|
6142
|
-
/* @__PURE__ */
|
|
6143
|
-
/* @__PURE__ */
|
|
6419
|
+
/* @__PURE__ */ jsxs27("header", { className: "space-y-2", children: [
|
|
6420
|
+
/* @__PURE__ */ jsx33(
|
|
6144
6421
|
Text_default,
|
|
6145
6422
|
{
|
|
6146
6423
|
size: "xl",
|
|
@@ -6151,9 +6428,9 @@ var NotFound = ({
|
|
|
6151
6428
|
children: errorTitle
|
|
6152
6429
|
}
|
|
6153
6430
|
),
|
|
6154
|
-
/* @__PURE__ */
|
|
6431
|
+
/* @__PURE__ */ jsx33(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
|
|
6155
6432
|
] }),
|
|
6156
|
-
onButtonClick && /* @__PURE__ */
|
|
6433
|
+
onButtonClick && /* @__PURE__ */ jsx33("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx33(
|
|
6157
6434
|
Button_default,
|
|
6158
6435
|
{
|
|
6159
6436
|
onClick: handleButtonClick,
|
|
@@ -6177,13 +6454,13 @@ var NotFound_default = NotFound;
|
|
|
6177
6454
|
import {
|
|
6178
6455
|
createContext,
|
|
6179
6456
|
useContext,
|
|
6180
|
-
useEffect as
|
|
6181
|
-
useState as
|
|
6457
|
+
useEffect as useEffect10,
|
|
6458
|
+
useState as useState12,
|
|
6182
6459
|
useCallback,
|
|
6183
6460
|
useMemo as useMemo3
|
|
6184
6461
|
} from "react";
|
|
6185
6462
|
import { useLocation, Navigate } from "react-router-dom";
|
|
6186
|
-
import { Fragment as Fragment7, jsx as
|
|
6463
|
+
import { Fragment as Fragment7, jsx as jsx34 } from "react/jsx-runtime";
|
|
6187
6464
|
var AuthContext = createContext(void 0);
|
|
6188
6465
|
var AuthProvider = ({
|
|
6189
6466
|
children,
|
|
@@ -6194,7 +6471,7 @@ var AuthProvider = ({
|
|
|
6194
6471
|
getSessionFn,
|
|
6195
6472
|
getTokensFn
|
|
6196
6473
|
}) => {
|
|
6197
|
-
const [authState, setAuthState] =
|
|
6474
|
+
const [authState, setAuthState] = useState12({
|
|
6198
6475
|
isAuthenticated: false,
|
|
6199
6476
|
isLoading: true,
|
|
6200
6477
|
...initialAuthState
|
|
@@ -6242,7 +6519,7 @@ var AuthProvider = ({
|
|
|
6242
6519
|
tokens: void 0
|
|
6243
6520
|
}));
|
|
6244
6521
|
}, [signOutFn]);
|
|
6245
|
-
|
|
6522
|
+
useEffect10(() => {
|
|
6246
6523
|
checkAuth();
|
|
6247
6524
|
}, [checkAuth]);
|
|
6248
6525
|
const contextValue = useMemo3(
|
|
@@ -6253,7 +6530,7 @@ var AuthProvider = ({
|
|
|
6253
6530
|
}),
|
|
6254
6531
|
[authState, checkAuth, signOut]
|
|
6255
6532
|
);
|
|
6256
|
-
return /* @__PURE__ */
|
|
6533
|
+
return /* @__PURE__ */ jsx34(AuthContext.Provider, { value: contextValue, children });
|
|
6257
6534
|
};
|
|
6258
6535
|
var useAuth = () => {
|
|
6259
6536
|
const context = useContext(AuthContext);
|
|
@@ -6269,9 +6546,9 @@ var ProtectedRoute = ({
|
|
|
6269
6546
|
additionalCheck
|
|
6270
6547
|
}) => {
|
|
6271
6548
|
const { isAuthenticated, isLoading, ...authState } = useAuth();
|
|
6272
|
-
const defaultLoadingComponent = /* @__PURE__ */
|
|
6549
|
+
const defaultLoadingComponent = /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx34("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
6273
6550
|
if (isLoading) {
|
|
6274
|
-
return /* @__PURE__ */
|
|
6551
|
+
return /* @__PURE__ */ jsx34(Fragment7, { children: loadingComponent || defaultLoadingComponent });
|
|
6275
6552
|
}
|
|
6276
6553
|
if (!isAuthenticated) {
|
|
6277
6554
|
if (typeof window !== "undefined") {
|
|
@@ -6282,12 +6559,12 @@ var ProtectedRoute = ({
|
|
|
6282
6559
|
return null;
|
|
6283
6560
|
}
|
|
6284
6561
|
}
|
|
6285
|
-
return /* @__PURE__ */
|
|
6562
|
+
return /* @__PURE__ */ jsx34(Navigate, { to: redirectTo, replace: true });
|
|
6286
6563
|
}
|
|
6287
6564
|
if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
|
|
6288
|
-
return /* @__PURE__ */
|
|
6565
|
+
return /* @__PURE__ */ jsx34(Navigate, { to: redirectTo, replace: true });
|
|
6289
6566
|
}
|
|
6290
|
-
return /* @__PURE__ */
|
|
6567
|
+
return /* @__PURE__ */ jsx34(Fragment7, { children });
|
|
6291
6568
|
};
|
|
6292
6569
|
var PublicRoute = ({
|
|
6293
6570
|
children,
|
|
@@ -6297,15 +6574,15 @@ var PublicRoute = ({
|
|
|
6297
6574
|
}) => {
|
|
6298
6575
|
const { isAuthenticated, isLoading } = useAuth();
|
|
6299
6576
|
if (checkAuthBeforeRender && isLoading) {
|
|
6300
|
-
return /* @__PURE__ */
|
|
6577
|
+
return /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx34("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
6301
6578
|
}
|
|
6302
6579
|
if (isAuthenticated && redirectIfAuthenticated) {
|
|
6303
|
-
return /* @__PURE__ */
|
|
6580
|
+
return /* @__PURE__ */ jsx34(Navigate, { to: redirectTo, replace: true });
|
|
6304
6581
|
}
|
|
6305
|
-
return /* @__PURE__ */
|
|
6582
|
+
return /* @__PURE__ */ jsx34(Fragment7, { children });
|
|
6306
6583
|
};
|
|
6307
6584
|
var withAuth = (Component, options = {}) => {
|
|
6308
|
-
return (props) => /* @__PURE__ */
|
|
6585
|
+
return (props) => /* @__PURE__ */ jsx34(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx34(Component, { ...props }) });
|
|
6309
6586
|
};
|
|
6310
6587
|
var useAuthGuard = (options = {}) => {
|
|
6311
6588
|
const authState = useAuth();
|
|
@@ -6320,7 +6597,7 @@ var useAuthGuard = (options = {}) => {
|
|
|
6320
6597
|
var useRouteAuth = (fallbackPath = "/") => {
|
|
6321
6598
|
const { isAuthenticated, isLoading } = useAuth();
|
|
6322
6599
|
const location = useLocation();
|
|
6323
|
-
const redirectToLogin = () => /* @__PURE__ */
|
|
6600
|
+
const redirectToLogin = () => /* @__PURE__ */ jsx34(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
|
|
6324
6601
|
return {
|
|
6325
6602
|
isAuthenticated,
|
|
6326
6603
|
isLoading,
|
|
@@ -6384,7 +6661,7 @@ function createZustandAuthAdapter(useAuthStore) {
|
|
|
6384
6661
|
}
|
|
6385
6662
|
|
|
6386
6663
|
// src/components/Auth/useUrlAuthentication.ts
|
|
6387
|
-
import { useEffect as
|
|
6664
|
+
import { useEffect as useEffect11 } from "react";
|
|
6388
6665
|
import { useLocation as useLocation2 } from "react-router-dom";
|
|
6389
6666
|
var getAuthParams = (location, extractParams) => {
|
|
6390
6667
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -6413,7 +6690,7 @@ var handleProfileSelection = (responseData, setSelectedProfile) => {
|
|
|
6413
6690
|
};
|
|
6414
6691
|
function useUrlAuthentication(options) {
|
|
6415
6692
|
const location = useLocation2();
|
|
6416
|
-
|
|
6693
|
+
useEffect11(() => {
|
|
6417
6694
|
const handleAuthentication = async () => {
|
|
6418
6695
|
const authParams = getAuthParams(location, options.extractParams);
|
|
6419
6696
|
if (!hasValidAuthParams(authParams)) {
|
|
@@ -6469,12 +6746,19 @@ import {
|
|
|
6469
6746
|
BookOpen,
|
|
6470
6747
|
Book
|
|
6471
6748
|
} from "phosphor-react";
|
|
6472
|
-
import {
|
|
6749
|
+
import {
|
|
6750
|
+
forwardRef as forwardRef18,
|
|
6751
|
+
useEffect as useEffect12,
|
|
6752
|
+
useMemo as useMemo5,
|
|
6753
|
+
useState as useState13,
|
|
6754
|
+
useCallback as useCallback2,
|
|
6755
|
+
useRef as useRef8
|
|
6756
|
+
} from "react";
|
|
6473
6757
|
|
|
6474
6758
|
// src/components/Quiz/useQuizStore.ts
|
|
6475
|
-
import { create as
|
|
6759
|
+
import { create as create7 } from "zustand";
|
|
6476
6760
|
import { devtools } from "zustand/middleware";
|
|
6477
|
-
var useQuizStore =
|
|
6761
|
+
var useQuizStore = create7()(
|
|
6478
6762
|
devtools(
|
|
6479
6763
|
(set, get) => {
|
|
6480
6764
|
let timerInterval = null;
|
|
@@ -6510,6 +6794,7 @@ var useQuizStore = create6()(
|
|
|
6510
6794
|
setByActivity: (atividade) => set({ byActivity: atividade }),
|
|
6511
6795
|
setByQuestionary: (aula) => set({ byQuestionary: aula }),
|
|
6512
6796
|
setUserId: (userId) => set({ userId }),
|
|
6797
|
+
setUserAnswers: (userAnswers) => set({ userAnswers }),
|
|
6513
6798
|
getUserId: () => get().userId,
|
|
6514
6799
|
// Navigation
|
|
6515
6800
|
goToNextQuestion: () => {
|
|
@@ -6546,16 +6831,9 @@ var useQuizStore = create6()(
|
|
|
6546
6831
|
const { getActiveQuiz, userAnswers } = get();
|
|
6547
6832
|
const activeQuiz = getActiveQuiz();
|
|
6548
6833
|
if (!activeQuiz) return;
|
|
6549
|
-
const updatedQuestions = activeQuiz.quiz.questions.map(
|
|
6550
|
-
(question) => question.id === questionId ? { ...question, answerKey: answerId } : question
|
|
6551
|
-
);
|
|
6552
|
-
const updatedQuiz = {
|
|
6553
|
-
...activeQuiz.quiz,
|
|
6554
|
-
questions: updatedQuestions
|
|
6555
|
-
};
|
|
6556
6834
|
const activityId = activeQuiz.quiz.id;
|
|
6557
6835
|
const userId = get().getUserId();
|
|
6558
|
-
if (!userId) {
|
|
6836
|
+
if (!userId || userId === "") {
|
|
6559
6837
|
console.warn("selectAnswer called before userId is set");
|
|
6560
6838
|
return;
|
|
6561
6839
|
}
|
|
@@ -6566,7 +6844,7 @@ var useQuizStore = create6()(
|
|
|
6566
6844
|
questionId,
|
|
6567
6845
|
activityId,
|
|
6568
6846
|
userId,
|
|
6569
|
-
answer:
|
|
6847
|
+
answer: null,
|
|
6570
6848
|
optionId: answerId
|
|
6571
6849
|
};
|
|
6572
6850
|
let updatedUserAnswers;
|
|
@@ -6577,7 +6855,36 @@ var useQuizStore = create6()(
|
|
|
6577
6855
|
updatedUserAnswers = [...userAnswers, newUserAnswer];
|
|
6578
6856
|
}
|
|
6579
6857
|
set({
|
|
6580
|
-
|
|
6858
|
+
userAnswers: updatedUserAnswers
|
|
6859
|
+
});
|
|
6860
|
+
},
|
|
6861
|
+
selectMultipleAnswer: (questionId, answerIds) => {
|
|
6862
|
+
const { getActiveQuiz, userAnswers } = get();
|
|
6863
|
+
const activeQuiz = getActiveQuiz();
|
|
6864
|
+
if (!activeQuiz) return;
|
|
6865
|
+
const activityId = activeQuiz.quiz.id;
|
|
6866
|
+
const userId = get().getUserId();
|
|
6867
|
+
if (!userId || userId === "") {
|
|
6868
|
+
console.warn("selectMultipleAnswer called before userId is set");
|
|
6869
|
+
return;
|
|
6870
|
+
}
|
|
6871
|
+
const filteredUserAnswers = userAnswers.filter(
|
|
6872
|
+
(answer) => answer.questionId !== questionId
|
|
6873
|
+
);
|
|
6874
|
+
const newUserAnswers = answerIds.map(
|
|
6875
|
+
(answerId) => ({
|
|
6876
|
+
questionId,
|
|
6877
|
+
activityId,
|
|
6878
|
+
userId,
|
|
6879
|
+
answer: null,
|
|
6880
|
+
optionId: answerId
|
|
6881
|
+
})
|
|
6882
|
+
);
|
|
6883
|
+
const updatedUserAnswers = [
|
|
6884
|
+
...filteredUserAnswers,
|
|
6885
|
+
...newUserAnswers
|
|
6886
|
+
];
|
|
6887
|
+
set({
|
|
6581
6888
|
userAnswers: updatedUserAnswers
|
|
6582
6889
|
});
|
|
6583
6890
|
},
|
|
@@ -6589,6 +6896,10 @@ var useQuizStore = create6()(
|
|
|
6589
6896
|
if (currentQuestion) {
|
|
6590
6897
|
const activityId = activeQuiz.quiz.id;
|
|
6591
6898
|
const userId = get().getUserId();
|
|
6899
|
+
if (!userId || userId === "") {
|
|
6900
|
+
console.warn("skipQuestion called before userId is set");
|
|
6901
|
+
return;
|
|
6902
|
+
}
|
|
6592
6903
|
const existingAnswerIndex = userAnswers.findIndex(
|
|
6593
6904
|
(answer) => answer.questionId === currentQuestion.id
|
|
6594
6905
|
);
|
|
@@ -6617,6 +6928,10 @@ var useQuizStore = create6()(
|
|
|
6617
6928
|
if (!activeQuiz) return;
|
|
6618
6929
|
const activityId = activeQuiz.quiz.id;
|
|
6619
6930
|
const userId = get().getUserId();
|
|
6931
|
+
if (!userId || userId === "") {
|
|
6932
|
+
console.warn("addUserAnswer called before userId is set");
|
|
6933
|
+
return;
|
|
6934
|
+
}
|
|
6620
6935
|
const existingAnswerIndex = userAnswers.findIndex(
|
|
6621
6936
|
(answer) => answer.questionId === questionId
|
|
6622
6937
|
);
|
|
@@ -6624,7 +6939,7 @@ var useQuizStore = create6()(
|
|
|
6624
6939
|
questionId,
|
|
6625
6940
|
activityId,
|
|
6626
6941
|
userId,
|
|
6627
|
-
answer:
|
|
6942
|
+
answer: null,
|
|
6628
6943
|
optionId: answerId || null
|
|
6629
6944
|
};
|
|
6630
6945
|
if (existingAnswerIndex !== -1) {
|
|
@@ -6675,7 +6990,7 @@ var useQuizStore = create6()(
|
|
|
6675
6990
|
},
|
|
6676
6991
|
getAnsweredQuestions: () => {
|
|
6677
6992
|
const { userAnswers } = get();
|
|
6678
|
-
return userAnswers.filter((answer) => answer.
|
|
6993
|
+
return userAnswers.filter((answer) => answer.optionId !== null).length;
|
|
6679
6994
|
},
|
|
6680
6995
|
getUnansweredQuestions: () => {
|
|
6681
6996
|
const { getActiveQuiz, userAnswers } = get();
|
|
@@ -6686,8 +7001,8 @@ var useQuizStore = create6()(
|
|
|
6686
7001
|
const userAnswer = userAnswers.find(
|
|
6687
7002
|
(answer) => answer.questionId === question.id
|
|
6688
7003
|
);
|
|
6689
|
-
const isAnswered = userAnswer && userAnswer.
|
|
6690
|
-
const isSkipped = userAnswer && userAnswer.
|
|
7004
|
+
const isAnswered = userAnswer && userAnswer.optionId !== null;
|
|
7005
|
+
const isSkipped = userAnswer && userAnswer.optionId === null;
|
|
6691
7006
|
if (!isAnswered && !isSkipped) {
|
|
6692
7007
|
unansweredQuestions.push(index + 1);
|
|
6693
7008
|
}
|
|
@@ -6696,7 +7011,7 @@ var useQuizStore = create6()(
|
|
|
6696
7011
|
},
|
|
6697
7012
|
getSkippedQuestions: () => {
|
|
6698
7013
|
const { userAnswers } = get();
|
|
6699
|
-
return userAnswers.filter((answer) => answer.
|
|
7014
|
+
return userAnswers.filter((answer) => answer.optionId === null).length;
|
|
6700
7015
|
},
|
|
6701
7016
|
getProgress: () => {
|
|
6702
7017
|
const { getTotalQuestions, getAnsweredQuestions } = get();
|
|
@@ -6709,14 +7024,14 @@ var useQuizStore = create6()(
|
|
|
6709
7024
|
const userAnswer = userAnswers.find(
|
|
6710
7025
|
(answer) => answer.questionId === questionId
|
|
6711
7026
|
);
|
|
6712
|
-
return userAnswer ? userAnswer.
|
|
7027
|
+
return userAnswer ? userAnswer.optionId !== null : false;
|
|
6713
7028
|
},
|
|
6714
7029
|
isQuestionSkipped: (questionId) => {
|
|
6715
7030
|
const { userAnswers } = get();
|
|
6716
7031
|
const userAnswer = userAnswers.find(
|
|
6717
7032
|
(answer) => answer.questionId === questionId
|
|
6718
7033
|
);
|
|
6719
|
-
return userAnswer ? userAnswer.
|
|
7034
|
+
return userAnswer ? userAnswer.optionId === null : false;
|
|
6720
7035
|
},
|
|
6721
7036
|
getCurrentAnswer: () => {
|
|
6722
7037
|
const { getCurrentQuestion, userAnswers } = get();
|
|
@@ -6725,7 +7040,16 @@ var useQuizStore = create6()(
|
|
|
6725
7040
|
const userAnswer = userAnswers.find(
|
|
6726
7041
|
(answer) => answer.questionId === currentQuestion.id
|
|
6727
7042
|
);
|
|
6728
|
-
return userAnswer?.
|
|
7043
|
+
return userAnswer?.optionId;
|
|
7044
|
+
},
|
|
7045
|
+
getAllCurrentAnswer: () => {
|
|
7046
|
+
const { getCurrentQuestion, userAnswers } = get();
|
|
7047
|
+
const currentQuestion = getCurrentQuestion();
|
|
7048
|
+
if (!currentQuestion) return void 0;
|
|
7049
|
+
const userAnswer = userAnswers.filter(
|
|
7050
|
+
(answer) => answer.questionId === currentQuestion.id
|
|
7051
|
+
);
|
|
7052
|
+
return userAnswer;
|
|
6729
7053
|
},
|
|
6730
7054
|
getQuizTitle: () => {
|
|
6731
7055
|
const { getActiveQuiz } = get();
|
|
@@ -6738,18 +7062,8 @@ var useQuizStore = create6()(
|
|
|
6738
7062
|
return `${minutes.toString().padStart(2, "0")}:${remainingSeconds.toString().padStart(2, "0")}`;
|
|
6739
7063
|
},
|
|
6740
7064
|
getUserAnswers: () => {
|
|
6741
|
-
const {
|
|
6742
|
-
|
|
6743
|
-
if (!activeQuiz) return [];
|
|
6744
|
-
return activeQuiz.quiz.questions.map((question) => {
|
|
6745
|
-
const userAnswer = userAnswers.find(
|
|
6746
|
-
(answer) => answer.questionId === question.id
|
|
6747
|
-
);
|
|
6748
|
-
return {
|
|
6749
|
-
...question,
|
|
6750
|
-
isSkipped: userAnswer ? userAnswer.answer === null : false
|
|
6751
|
-
};
|
|
6752
|
-
});
|
|
7065
|
+
const { userAnswers } = get();
|
|
7066
|
+
return userAnswers;
|
|
6753
7067
|
},
|
|
6754
7068
|
getUnansweredQuestionsFromUserAnswers: () => {
|
|
6755
7069
|
const { getActiveQuiz, userAnswers } = get();
|
|
@@ -6760,8 +7074,8 @@ var useQuizStore = create6()(
|
|
|
6760
7074
|
const userAnswer = userAnswers.find(
|
|
6761
7075
|
(answer) => answer.questionId === question.id
|
|
6762
7076
|
);
|
|
6763
|
-
const hasAnswer = userAnswer && userAnswer.
|
|
6764
|
-
const isSkipped = userAnswer && userAnswer.
|
|
7077
|
+
const hasAnswer = userAnswer && userAnswer.optionId !== null;
|
|
7078
|
+
const isSkipped = userAnswer && userAnswer.optionId === null;
|
|
6765
7079
|
if (!hasAnswer || isSkipped) {
|
|
6766
7080
|
unansweredQuestions.push(index + 1);
|
|
6767
7081
|
}
|
|
@@ -6792,7 +7106,7 @@ var useQuizStore = create6()(
|
|
|
6792
7106
|
const answer = userAnswers.find(
|
|
6793
7107
|
(answer2) => answer2.questionId === questionId
|
|
6794
7108
|
);
|
|
6795
|
-
return answer ? answer.
|
|
7109
|
+
return answer ? answer.optionId !== null : false;
|
|
6796
7110
|
},
|
|
6797
7111
|
getQuestionStatusFromUserAnswers: (questionId) => {
|
|
6798
7112
|
const { userAnswers } = get();
|
|
@@ -6800,12 +7114,27 @@ var useQuizStore = create6()(
|
|
|
6800
7114
|
(answer2) => answer2.questionId === questionId
|
|
6801
7115
|
);
|
|
6802
7116
|
if (!answer) return "unanswered";
|
|
6803
|
-
if (answer.
|
|
7117
|
+
if (answer.optionId === null) return "skipped";
|
|
6804
7118
|
return "answered";
|
|
6805
7119
|
},
|
|
6806
7120
|
getUserAnswersForActivity: () => {
|
|
6807
7121
|
const { userAnswers } = get();
|
|
6808
7122
|
return userAnswers;
|
|
7123
|
+
},
|
|
7124
|
+
setCurrentQuestion: (question) => {
|
|
7125
|
+
const { getActiveQuiz } = get();
|
|
7126
|
+
const activeQuiz = getActiveQuiz();
|
|
7127
|
+
if (!activeQuiz) return;
|
|
7128
|
+
const questionIndex = activeQuiz.quiz.questions.findIndex(
|
|
7129
|
+
(q) => q.id === question.id
|
|
7130
|
+
);
|
|
7131
|
+
if (questionIndex === -1) {
|
|
7132
|
+
console.warn(
|
|
7133
|
+
`Question with id "${question.id}" not found in active quiz`
|
|
7134
|
+
);
|
|
7135
|
+
return;
|
|
7136
|
+
}
|
|
7137
|
+
set({ currentQuestionIndex: questionIndex });
|
|
6809
7138
|
}
|
|
6810
7139
|
};
|
|
6811
7140
|
},
|
|
@@ -6819,9 +7148,9 @@ var useQuizStore = create6()(
|
|
|
6819
7148
|
var simulated_result_default = "./simulated-result-QN5HCUY5.png";
|
|
6820
7149
|
|
|
6821
7150
|
// src/components/Quiz/Quiz.tsx
|
|
6822
|
-
import { Fragment as Fragment8, jsx as
|
|
6823
|
-
var Quiz =
|
|
6824
|
-
return /* @__PURE__ */
|
|
7151
|
+
import { Fragment as Fragment8, jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
7152
|
+
var Quiz = forwardRef18(({ children, className, ...props }, ref) => {
|
|
7153
|
+
return /* @__PURE__ */ jsx35(
|
|
6825
7154
|
"div",
|
|
6826
7155
|
{
|
|
6827
7156
|
ref,
|
|
@@ -6834,31 +7163,56 @@ var Quiz = forwardRef17(({ children, className, ...props }, ref) => {
|
|
|
6834
7163
|
}
|
|
6835
7164
|
);
|
|
6836
7165
|
});
|
|
6837
|
-
var QuizHeaderResult =
|
|
7166
|
+
var QuizHeaderResult = forwardRef18(
|
|
6838
7167
|
({ className, ...props }, ref) => {
|
|
6839
|
-
const { getCurrentQuestion, getCurrentAnswer } = useQuizStore();
|
|
7168
|
+
const { getCurrentQuestion, getCurrentAnswer, getAllCurrentAnswer } = useQuizStore();
|
|
6840
7169
|
const currentQuestion = getCurrentQuestion();
|
|
6841
7170
|
const userAnswer = getCurrentAnswer();
|
|
6842
|
-
const isCorrect =
|
|
6843
|
-
|
|
7171
|
+
const [isCorrect, setIsCorrect] = useState13(false);
|
|
7172
|
+
useEffect12(() => {
|
|
7173
|
+
if (currentQuestion?.type === "MULTIPLA_CHOICE" /* MULTIPLA_CHOICE */) {
|
|
7174
|
+
const allCurrentAnswers = getAllCurrentAnswer();
|
|
7175
|
+
const isCorrectOption = currentQuestion.options.filter(
|
|
7176
|
+
(op) => op.isCorrect
|
|
7177
|
+
);
|
|
7178
|
+
if (allCurrentAnswers?.length !== isCorrectOption.length) {
|
|
7179
|
+
setIsCorrect(false);
|
|
7180
|
+
return;
|
|
7181
|
+
}
|
|
7182
|
+
setIsCorrect(true);
|
|
7183
|
+
allCurrentAnswers.forEach((answer) => {
|
|
7184
|
+
const findInCorrectOptions = isCorrectOption.find(
|
|
7185
|
+
(op) => op.id === answer.optionId
|
|
7186
|
+
);
|
|
7187
|
+
if (!findInCorrectOptions) {
|
|
7188
|
+
setIsCorrect(false);
|
|
7189
|
+
}
|
|
7190
|
+
});
|
|
7191
|
+
} else {
|
|
7192
|
+
setIsCorrect(
|
|
7193
|
+
currentQuestion?.options.find((op) => op.id === userAnswer)?.isCorrect || false
|
|
7194
|
+
);
|
|
7195
|
+
}
|
|
7196
|
+
}, [currentQuestion, getAllCurrentAnswer]);
|
|
7197
|
+
return /* @__PURE__ */ jsxs28(
|
|
6844
7198
|
"div",
|
|
6845
7199
|
{
|
|
6846
7200
|
ref,
|
|
6847
7201
|
className: cn(
|
|
6848
|
-
"flex flex-row items-center gap-10 p-3.5 rounded-xl",
|
|
7202
|
+
"flex flex-row items-center gap-10 p-3.5 rounded-xl mb-4",
|
|
6849
7203
|
isCorrect ? "bg-success-background" : "bg-error-background",
|
|
6850
7204
|
className
|
|
6851
7205
|
),
|
|
6852
7206
|
...props,
|
|
6853
7207
|
children: [
|
|
6854
|
-
/* @__PURE__ */
|
|
6855
|
-
/* @__PURE__ */
|
|
7208
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
|
|
7209
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
|
|
6856
7210
|
]
|
|
6857
7211
|
}
|
|
6858
7212
|
);
|
|
6859
7213
|
}
|
|
6860
7214
|
);
|
|
6861
|
-
var QuizTitle =
|
|
7215
|
+
var QuizTitle = forwardRef18(
|
|
6862
7216
|
({ className, ...props }, ref) => {
|
|
6863
7217
|
const {
|
|
6864
7218
|
currentQuestionIndex,
|
|
@@ -6870,7 +7224,7 @@ var QuizTitle = forwardRef17(
|
|
|
6870
7224
|
} = useQuizStore();
|
|
6871
7225
|
const totalQuestions = getTotalQuestions();
|
|
6872
7226
|
const quizTitle = getQuizTitle();
|
|
6873
|
-
return /* @__PURE__ */
|
|
7227
|
+
return /* @__PURE__ */ jsxs28(
|
|
6874
7228
|
"div",
|
|
6875
7229
|
{
|
|
6876
7230
|
ref,
|
|
@@ -6880,11 +7234,11 @@ var QuizTitle = forwardRef17(
|
|
|
6880
7234
|
),
|
|
6881
7235
|
...props,
|
|
6882
7236
|
children: [
|
|
6883
|
-
/* @__PURE__ */
|
|
6884
|
-
/* @__PURE__ */
|
|
6885
|
-
/* @__PURE__ */
|
|
7237
|
+
/* @__PURE__ */ jsxs28("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
7238
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
7239
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
6886
7240
|
] }),
|
|
6887
|
-
/* @__PURE__ */
|
|
7241
|
+
/* @__PURE__ */ jsx35("span", { className: "absolute right-2", children: /* @__PURE__ */ jsx35(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx35(Clock2, {}), children: isStarted ? formatTime(timeElapsed) : "00:00" }) })
|
|
6888
7242
|
]
|
|
6889
7243
|
}
|
|
6890
7244
|
);
|
|
@@ -6893,7 +7247,7 @@ var QuizTitle = forwardRef17(
|
|
|
6893
7247
|
var QuizHeader = () => {
|
|
6894
7248
|
const { getCurrentQuestion } = useQuizStore();
|
|
6895
7249
|
const currentQuestion = getCurrentQuestion();
|
|
6896
|
-
return /* @__PURE__ */
|
|
7250
|
+
return /* @__PURE__ */ jsx35(
|
|
6897
7251
|
HeaderAlternative,
|
|
6898
7252
|
{
|
|
6899
7253
|
title: currentQuestion ? `Quest\xE3o ${currentQuestion.id}` : "Quest\xE3o",
|
|
@@ -6902,10 +7256,12 @@ var QuizHeader = () => {
|
|
|
6902
7256
|
}
|
|
6903
7257
|
);
|
|
6904
7258
|
};
|
|
6905
|
-
var QuizContent =
|
|
6906
|
-
|
|
6907
|
-
|
|
6908
|
-
|
|
7259
|
+
var QuizContent = forwardRef18(({ type = "Alternativas", className, variant, ...props }, ref) => {
|
|
7260
|
+
const { getCurrentQuestion } = useQuizStore();
|
|
7261
|
+
const currentQuestion = getCurrentQuestion();
|
|
7262
|
+
return /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
7263
|
+
/* @__PURE__ */ jsx35("div", { className: "px-4 pb-2 pt-6", children: /* @__PURE__ */ jsx35("p", { className: "font-bold text-lg text-text-950", children: type }) }),
|
|
7264
|
+
/* @__PURE__ */ jsx35(
|
|
6909
7265
|
"div",
|
|
6910
7266
|
{
|
|
6911
7267
|
ref,
|
|
@@ -6914,7 +7270,11 @@ var QuizContent = forwardRef17(({ type = "Alternativas", children, className, ..
|
|
|
6914
7270
|
className
|
|
6915
7271
|
),
|
|
6916
7272
|
...props,
|
|
6917
|
-
children
|
|
7273
|
+
children: currentQuestion && /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
7274
|
+
currentQuestion.type === "ALTERNATIVA" /* ALTERNATIVA */ && /* @__PURE__ */ jsx35(QuizAlternative, { variant }),
|
|
7275
|
+
currentQuestion.type === "MULTIPLA_CHOICE" /* MULTIPLA_CHOICE */ && /* @__PURE__ */ jsx35(QuizMultipleChoice, { variant }),
|
|
7276
|
+
currentQuestion.type === "DISSERTATIVA" /* DISSERTATIVA */ && /* @__PURE__ */ jsx35("div", { children: "Componente de dissertativa" })
|
|
7277
|
+
] })
|
|
6918
7278
|
}
|
|
6919
7279
|
)
|
|
6920
7280
|
] });
|
|
@@ -6926,9 +7286,12 @@ var QuizAlternative = ({ variant = "default" }) => {
|
|
|
6926
7286
|
const alternatives = currentQuestion?.options?.map((option) => {
|
|
6927
7287
|
let status = "neutral" /* NEUTRAL */;
|
|
6928
7288
|
if (variant === "result") {
|
|
6929
|
-
|
|
7289
|
+
const isCorrectOption = currentQuestion.options.find(
|
|
7290
|
+
(op) => op.isCorrect
|
|
7291
|
+
);
|
|
7292
|
+
if (isCorrectOption?.id === option.id) {
|
|
6930
7293
|
status = "correct" /* CORRECT */;
|
|
6931
|
-
} else if (currentAnswer === option.id && option.id !==
|
|
7294
|
+
} else if (currentAnswer === option.id && option.id !== isCorrectOption?.id) {
|
|
6932
7295
|
status = "incorrect" /* INCORRECT */;
|
|
6933
7296
|
}
|
|
6934
7297
|
}
|
|
@@ -6939,8 +7302,8 @@ var QuizAlternative = ({ variant = "default" }) => {
|
|
|
6939
7302
|
};
|
|
6940
7303
|
});
|
|
6941
7304
|
if (!alternatives)
|
|
6942
|
-
return /* @__PURE__ */
|
|
6943
|
-
return /* @__PURE__ */
|
|
7305
|
+
return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35("p", { children: "N\xE3o h\xE1 Alternativas" }) });
|
|
7306
|
+
return /* @__PURE__ */ jsx35("div", { className: "space-y-4", children: /* @__PURE__ */ jsx35(
|
|
6944
7307
|
AlternativesList,
|
|
6945
7308
|
{
|
|
6946
7309
|
mode: variant === "default" ? "interactive" : "readonly",
|
|
@@ -6958,6 +7321,77 @@ var QuizAlternative = ({ variant = "default" }) => {
|
|
|
6958
7321
|
`question-${currentQuestion?.id || "1"}`
|
|
6959
7322
|
) });
|
|
6960
7323
|
};
|
|
7324
|
+
var QuizMultipleChoice = ({
|
|
7325
|
+
variant = "default"
|
|
7326
|
+
}) => {
|
|
7327
|
+
const { getCurrentQuestion, selectMultipleAnswer, getAllCurrentAnswer } = useQuizStore();
|
|
7328
|
+
const currentQuestion = getCurrentQuestion();
|
|
7329
|
+
const allCurrentAnswers = getAllCurrentAnswer();
|
|
7330
|
+
const prevSelectedValuesRef = useRef8([]);
|
|
7331
|
+
const prevQuestionIdRef = useRef8("");
|
|
7332
|
+
const allCurrentAnswerIds = useMemo5(() => {
|
|
7333
|
+
return allCurrentAnswers?.map((answer) => answer.optionId) || [];
|
|
7334
|
+
}, [allCurrentAnswers]);
|
|
7335
|
+
const selectedValues = useMemo5(() => {
|
|
7336
|
+
return allCurrentAnswerIds?.filter((id) => id !== null) || [];
|
|
7337
|
+
}, [allCurrentAnswerIds]);
|
|
7338
|
+
const stableSelectedValues = useMemo5(() => {
|
|
7339
|
+
const currentQuestionId = currentQuestion?.id || "";
|
|
7340
|
+
const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
|
|
7341
|
+
if (hasQuestionChanged) {
|
|
7342
|
+
prevQuestionIdRef.current = currentQuestionId;
|
|
7343
|
+
prevSelectedValuesRef.current = selectedValues;
|
|
7344
|
+
return selectedValues;
|
|
7345
|
+
}
|
|
7346
|
+
const hasValuesChanged = JSON.stringify(prevSelectedValuesRef.current) !== JSON.stringify(selectedValues);
|
|
7347
|
+
if (hasValuesChanged) {
|
|
7348
|
+
prevSelectedValuesRef.current = selectedValues;
|
|
7349
|
+
return selectedValues;
|
|
7350
|
+
}
|
|
7351
|
+
return prevSelectedValuesRef.current;
|
|
7352
|
+
}, [selectedValues, currentQuestion?.id]);
|
|
7353
|
+
const handleSelectedValues = useCallback2(
|
|
7354
|
+
(values) => {
|
|
7355
|
+
if (currentQuestion) {
|
|
7356
|
+
selectMultipleAnswer(currentQuestion.id, values);
|
|
7357
|
+
}
|
|
7358
|
+
},
|
|
7359
|
+
[currentQuestion, selectMultipleAnswer]
|
|
7360
|
+
);
|
|
7361
|
+
const questionKey = useMemo5(
|
|
7362
|
+
() => `question-${currentQuestion?.id || "1"}`,
|
|
7363
|
+
[currentQuestion?.id]
|
|
7364
|
+
);
|
|
7365
|
+
const choices = currentQuestion?.options?.map((option) => {
|
|
7366
|
+
let status = "neutral" /* NEUTRAL */;
|
|
7367
|
+
if (variant === "result") {
|
|
7368
|
+
const isAllCorrectOptionId = currentQuestion.options.filter((op) => op.isCorrect).map((op) => op.id);
|
|
7369
|
+
if (isAllCorrectOptionId.includes(option.id)) {
|
|
7370
|
+
status = "correct" /* CORRECT */;
|
|
7371
|
+
} else if (allCurrentAnswerIds?.includes(option.id) && !isAllCorrectOptionId.includes(option.id)) {
|
|
7372
|
+
status = "incorrect" /* INCORRECT */;
|
|
7373
|
+
}
|
|
7374
|
+
}
|
|
7375
|
+
return {
|
|
7376
|
+
label: option.option,
|
|
7377
|
+
value: option.id,
|
|
7378
|
+
status
|
|
7379
|
+
};
|
|
7380
|
+
});
|
|
7381
|
+
if (!choices)
|
|
7382
|
+
return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
|
|
7383
|
+
return /* @__PURE__ */ jsx35("div", { className: "space-y-4", children: /* @__PURE__ */ jsx35(
|
|
7384
|
+
MultipleChoiceList,
|
|
7385
|
+
{
|
|
7386
|
+
choices,
|
|
7387
|
+
name: questionKey,
|
|
7388
|
+
selectedValues: stableSelectedValues,
|
|
7389
|
+
onHandleSelectedValues: handleSelectedValues,
|
|
7390
|
+
mode: variant === "default" ? "interactive" : "readonly"
|
|
7391
|
+
},
|
|
7392
|
+
questionKey
|
|
7393
|
+
) });
|
|
7394
|
+
};
|
|
6961
7395
|
var QuizQuestionList = ({
|
|
6962
7396
|
filterType = "all",
|
|
6963
7397
|
onQuestionClick
|
|
@@ -7009,16 +7443,16 @@ var QuizQuestionList = ({
|
|
|
7009
7443
|
return "Em branco";
|
|
7010
7444
|
}
|
|
7011
7445
|
};
|
|
7012
|
-
return /* @__PURE__ */
|
|
7013
|
-
([subjectId, questions]) => /* @__PURE__ */
|
|
7014
|
-
/* @__PURE__ */
|
|
7015
|
-
/* @__PURE__ */
|
|
7016
|
-
/* @__PURE__ */
|
|
7446
|
+
return /* @__PURE__ */ jsx35("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
|
|
7447
|
+
([subjectId, questions]) => /* @__PURE__ */ jsxs28("section", { className: "flex flex-col gap-2", children: [
|
|
7448
|
+
/* @__PURE__ */ jsxs28("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
|
|
7449
|
+
/* @__PURE__ */ jsx35("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx35(BookOpen, { size: 17, className: "text-white" }) }),
|
|
7450
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
|
|
7017
7451
|
] }),
|
|
7018
|
-
/* @__PURE__ */
|
|
7452
|
+
/* @__PURE__ */ jsx35("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
|
|
7019
7453
|
const status = getQuestionStatus(question.id);
|
|
7020
7454
|
const questionNumber = getQuestionIndex(question.id);
|
|
7021
|
-
return /* @__PURE__ */
|
|
7455
|
+
return /* @__PURE__ */ jsx35(
|
|
7022
7456
|
CardStatus,
|
|
7023
7457
|
{
|
|
7024
7458
|
header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
|
|
@@ -7034,236 +7468,255 @@ var QuizQuestionList = ({
|
|
|
7034
7468
|
] }, subjectId)
|
|
7035
7469
|
) });
|
|
7036
7470
|
};
|
|
7037
|
-
var QuizFooter =
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
7043
|
-
|
|
7044
|
-
|
|
7045
|
-
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7050
|
-
|
|
7051
|
-
|
|
7052
|
-
|
|
7053
|
-
|
|
7054
|
-
|
|
7055
|
-
|
|
7056
|
-
|
|
7057
|
-
|
|
7058
|
-
|
|
7059
|
-
|
|
7060
|
-
|
|
7061
|
-
|
|
7062
|
-
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
|
|
7067
|
-
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
|
|
7072
|
-
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7076
|
-
|
|
7077
|
-
|
|
7078
|
-
|
|
7079
|
-
|
|
7080
|
-
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
|
|
7471
|
+
var QuizFooter = forwardRef18(
|
|
7472
|
+
({
|
|
7473
|
+
className,
|
|
7474
|
+
onGoToSimulated,
|
|
7475
|
+
onDetailResult,
|
|
7476
|
+
variant = "default",
|
|
7477
|
+
...props
|
|
7478
|
+
}, ref) => {
|
|
7479
|
+
const {
|
|
7480
|
+
currentQuestionIndex,
|
|
7481
|
+
getUserAnswers,
|
|
7482
|
+
getTotalQuestions,
|
|
7483
|
+
goToNextQuestion,
|
|
7484
|
+
goToPreviousQuestion,
|
|
7485
|
+
getUnansweredQuestionsFromUserAnswers,
|
|
7486
|
+
getCurrentAnswer,
|
|
7487
|
+
skipQuestion,
|
|
7488
|
+
getCurrentQuestion,
|
|
7489
|
+
getQuestionStatusFromUserAnswers,
|
|
7490
|
+
getActiveQuiz
|
|
7491
|
+
} = useQuizStore();
|
|
7492
|
+
const totalQuestions = getTotalQuestions();
|
|
7493
|
+
const isFirstQuestion = currentQuestionIndex === 0;
|
|
7494
|
+
const isLastQuestion = currentQuestionIndex === totalQuestions - 1;
|
|
7495
|
+
const currentAnswer = getCurrentAnswer();
|
|
7496
|
+
const currentQuestion = getCurrentQuestion();
|
|
7497
|
+
const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
|
|
7498
|
+
const [alertDialogOpen, setAlertDialogOpen] = useState13(false);
|
|
7499
|
+
const [modalResultOpen, setModalResultOpen] = useState13(false);
|
|
7500
|
+
const [modalNavigateOpen, setModalNavigateOpen] = useState13(false);
|
|
7501
|
+
const [filterType, setFilterType] = useState13("all");
|
|
7502
|
+
const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
|
|
7503
|
+
const userAnswers = getUserAnswers();
|
|
7504
|
+
const allQuestions = getTotalQuestions();
|
|
7505
|
+
return /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
7506
|
+
/* @__PURE__ */ jsx35(
|
|
7507
|
+
"footer",
|
|
7508
|
+
{
|
|
7509
|
+
ref,
|
|
7510
|
+
className: cn(
|
|
7511
|
+
"w-full px-2 bg-background lg:max-w-[1000px] not-lg:max-w-[calc(100vw-32px)] border-t border-border-50 fixed bottom-0 min-h-[80px] flex flex-row justify-between items-center",
|
|
7512
|
+
className
|
|
7513
|
+
),
|
|
7514
|
+
...props,
|
|
7515
|
+
children: variant === "default" ? /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
7516
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex flex-row items-center gap-1", children: [
|
|
7517
|
+
/* @__PURE__ */ jsx35(
|
|
7518
|
+
IconButton_default,
|
|
7519
|
+
{
|
|
7520
|
+
icon: /* @__PURE__ */ jsx35(SquaresFour, { size: 24, className: "text-text-950" }),
|
|
7521
|
+
size: "md",
|
|
7522
|
+
onClick: () => setModalNavigateOpen(true)
|
|
7523
|
+
}
|
|
7524
|
+
),
|
|
7525
|
+
isFirstQuestion ? /* @__PURE__ */ jsx35(
|
|
7526
|
+
Button_default,
|
|
7527
|
+
{
|
|
7528
|
+
variant: "outline",
|
|
7529
|
+
size: "small",
|
|
7530
|
+
onClick: () => {
|
|
7531
|
+
skipQuestion();
|
|
7532
|
+
goToNextQuestion();
|
|
7533
|
+
},
|
|
7534
|
+
children: "Pular"
|
|
7535
|
+
}
|
|
7536
|
+
) : /* @__PURE__ */ jsx35(
|
|
7537
|
+
Button_default,
|
|
7538
|
+
{
|
|
7539
|
+
size: "medium",
|
|
7540
|
+
variant: "link",
|
|
7541
|
+
action: "primary",
|
|
7542
|
+
iconLeft: /* @__PURE__ */ jsx35(CaretLeft2, { size: 18 }),
|
|
7543
|
+
onClick: () => {
|
|
7544
|
+
goToPreviousQuestion();
|
|
7545
|
+
},
|
|
7546
|
+
children: "Voltar"
|
|
7547
|
+
}
|
|
7548
|
+
)
|
|
7549
|
+
] }),
|
|
7550
|
+
!isFirstQuestion && /* @__PURE__ */ jsx35(
|
|
7084
7551
|
Button_default,
|
|
7085
7552
|
{
|
|
7086
|
-
variant: "outline",
|
|
7087
7553
|
size: "small",
|
|
7554
|
+
variant: "outline",
|
|
7555
|
+
action: "primary",
|
|
7088
7556
|
onClick: () => {
|
|
7089
7557
|
skipQuestion();
|
|
7090
7558
|
goToNextQuestion();
|
|
7091
7559
|
},
|
|
7092
7560
|
children: "Pular"
|
|
7093
7561
|
}
|
|
7094
|
-
)
|
|
7562
|
+
),
|
|
7563
|
+
isLastQuestion ? /* @__PURE__ */ jsx35(
|
|
7564
|
+
Button_default,
|
|
7565
|
+
{
|
|
7566
|
+
size: "medium",
|
|
7567
|
+
variant: "solid",
|
|
7568
|
+
action: "primary",
|
|
7569
|
+
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
7570
|
+
onClick: () => {
|
|
7571
|
+
if (unansweredQuestions.length > 0) {
|
|
7572
|
+
setAlertDialogOpen(true);
|
|
7573
|
+
} else {
|
|
7574
|
+
setModalResultOpen(true);
|
|
7575
|
+
}
|
|
7576
|
+
},
|
|
7577
|
+
children: "Finalizar"
|
|
7578
|
+
}
|
|
7579
|
+
) : /* @__PURE__ */ jsx35(
|
|
7095
7580
|
Button_default,
|
|
7096
7581
|
{
|
|
7097
7582
|
size: "medium",
|
|
7098
7583
|
variant: "link",
|
|
7099
7584
|
action: "primary",
|
|
7100
|
-
|
|
7585
|
+
iconRight: /* @__PURE__ */ jsx35(CaretRight4, { size: 18 }),
|
|
7586
|
+
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
7101
7587
|
onClick: () => {
|
|
7102
|
-
|
|
7588
|
+
goToNextQuestion();
|
|
7103
7589
|
},
|
|
7104
|
-
children: "
|
|
7590
|
+
children: "Avan\xE7ar"
|
|
7105
7591
|
}
|
|
7106
7592
|
)
|
|
7107
|
-
] }),
|
|
7108
|
-
!isFirstQuestion && /* @__PURE__ */ jsx33(
|
|
7109
|
-
Button_default,
|
|
7110
|
-
{
|
|
7111
|
-
size: "small",
|
|
7112
|
-
variant: "outline",
|
|
7113
|
-
action: "primary",
|
|
7114
|
-
onClick: () => {
|
|
7115
|
-
skipQuestion();
|
|
7116
|
-
goToNextQuestion();
|
|
7117
|
-
},
|
|
7118
|
-
children: "Pular"
|
|
7119
|
-
}
|
|
7120
|
-
),
|
|
7121
|
-
isLastQuestion ? /* @__PURE__ */ jsx33(
|
|
7122
|
-
Button_default,
|
|
7123
|
-
{
|
|
7124
|
-
size: "medium",
|
|
7125
|
-
variant: "solid",
|
|
7126
|
-
action: "primary",
|
|
7127
|
-
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
7128
|
-
onClick: () => {
|
|
7129
|
-
if (unansweredQuestions.length > 0) {
|
|
7130
|
-
setAlertDialogOpen(true);
|
|
7131
|
-
} else {
|
|
7132
|
-
setModalResultOpen(true);
|
|
7133
|
-
}
|
|
7134
|
-
},
|
|
7135
|
-
children: "Finalizar"
|
|
7136
|
-
}
|
|
7137
|
-
) : /* @__PURE__ */ jsx33(
|
|
7138
|
-
Button_default,
|
|
7139
|
-
{
|
|
7140
|
-
size: "medium",
|
|
7141
|
-
variant: "link",
|
|
7142
|
-
action: "primary",
|
|
7143
|
-
iconRight: /* @__PURE__ */ jsx33(CaretRight4, { size: 18 }),
|
|
7144
|
-
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
7145
|
-
onClick: () => {
|
|
7146
|
-
goToNextQuestion();
|
|
7147
|
-
},
|
|
7148
|
-
children: "Avan\xE7ar"
|
|
7149
|
-
}
|
|
7150
|
-
)
|
|
7151
|
-
]
|
|
7152
|
-
}
|
|
7153
|
-
),
|
|
7154
|
-
/* @__PURE__ */ jsx33(
|
|
7155
|
-
AlertDialog,
|
|
7156
|
-
{
|
|
7157
|
-
isOpen: alertDialogOpen,
|
|
7158
|
-
onChangeOpen: setAlertDialogOpen,
|
|
7159
|
-
title: "Finalizar simulado?",
|
|
7160
|
-
description: unansweredQuestions.length > 0 ? `Voc\xEA deixou as quest\xF5es ${unansweredQuestions.join(", ")} sem resposta. Finalizar agora pode impactar seu desempenho.` : "Tem certeza que deseja finalizar o simulado?",
|
|
7161
|
-
cancelButtonLabel: "Voltar e revisar",
|
|
7162
|
-
submitButtonLabel: "Finalizar Mesmo Assim",
|
|
7163
|
-
onSubmit: () => {
|
|
7164
|
-
setModalResultOpen(true);
|
|
7593
|
+
] }) : /* @__PURE__ */ jsx35("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ jsx35(Button_default, { variant: "solid", action: "primary", size: "medium", children: "Ver Resolu\xE7\xE3o" }) })
|
|
7165
7594
|
}
|
|
7166
|
-
|
|
7167
|
-
|
|
7168
|
-
|
|
7169
|
-
|
|
7170
|
-
|
|
7171
|
-
|
|
7172
|
-
|
|
7173
|
-
|
|
7174
|
-
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7180
|
-
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
|
|
7184
|
-
|
|
7185
|
-
|
|
7186
|
-
|
|
7187
|
-
|
|
7188
|
-
|
|
7189
|
-
|
|
7190
|
-
|
|
7191
|
-
|
|
7192
|
-
|
|
7193
|
-
|
|
7194
|
-
).length,
|
|
7195
|
-
" ",
|
|
7196
|
-
"de ",
|
|
7197
|
-
allQuestions,
|
|
7198
|
-
" quest\xF5es."
|
|
7199
|
-
] })
|
|
7200
|
-
] }),
|
|
7201
|
-
/* @__PURE__ */ jsxs27("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
|
|
7202
|
-
/* @__PURE__ */ jsx33(
|
|
7203
|
-
Button_default,
|
|
7595
|
+
),
|
|
7596
|
+
/* @__PURE__ */ jsx35(
|
|
7597
|
+
AlertDialog,
|
|
7598
|
+
{
|
|
7599
|
+
isOpen: alertDialogOpen,
|
|
7600
|
+
onChangeOpen: setAlertDialogOpen,
|
|
7601
|
+
title: "Finalizar simulado?",
|
|
7602
|
+
description: unansweredQuestions.length > 0 ? `Voc\xEA deixou as quest\xF5es ${unansweredQuestions.join(", ")} sem resposta. Finalizar agora pode impactar seu desempenho.` : "Tem certeza que deseja finalizar o simulado?",
|
|
7603
|
+
cancelButtonLabel: "Voltar e revisar",
|
|
7604
|
+
submitButtonLabel: "Finalizar Mesmo Assim",
|
|
7605
|
+
onSubmit: () => {
|
|
7606
|
+
setModalResultOpen(true);
|
|
7607
|
+
}
|
|
7608
|
+
}
|
|
7609
|
+
),
|
|
7610
|
+
/* @__PURE__ */ jsx35(
|
|
7611
|
+
Modal_default,
|
|
7612
|
+
{
|
|
7613
|
+
isOpen: modalResultOpen,
|
|
7614
|
+
onClose: () => setModalResultOpen(false),
|
|
7615
|
+
title: "",
|
|
7616
|
+
closeOnBackdropClick: false,
|
|
7617
|
+
closeOnEscape: false,
|
|
7618
|
+
hideCloseButton: true,
|
|
7619
|
+
size: "md",
|
|
7620
|
+
children: /* @__PURE__ */ jsxs28("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
7621
|
+
/* @__PURE__ */ jsx35(
|
|
7622
|
+
"img",
|
|
7204
7623
|
{
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
onClick: onGoToSimulated,
|
|
7209
|
-
children: "Ir para simulados"
|
|
7624
|
+
src: simulated_result_default,
|
|
7625
|
+
alt: "Simulated Result",
|
|
7626
|
+
className: "w-[282px] h-auto object-cover"
|
|
7210
7627
|
}
|
|
7211
7628
|
),
|
|
7212
|
-
/* @__PURE__ */
|
|
7213
|
-
|
|
7214
|
-
|
|
7215
|
-
|
|
7216
|
-
|
|
7217
|
-
|
|
7218
|
-
|
|
7219
|
-
|
|
7220
|
-
|
|
7221
|
-
|
|
7222
|
-
|
|
7223
|
-
|
|
7224
|
-
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7228
|
-
|
|
7229
|
-
|
|
7230
|
-
|
|
7231
|
-
|
|
7232
|
-
|
|
7629
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
7630
|
+
/* @__PURE__ */ jsx35("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
|
|
7631
|
+
/* @__PURE__ */ jsxs28("p", { className: "text-text-500 font-sm", children: [
|
|
7632
|
+
"Voc\xEA acertou",
|
|
7633
|
+
" ",
|
|
7634
|
+
(() => {
|
|
7635
|
+
const activeQuiz = getActiveQuiz();
|
|
7636
|
+
if (!activeQuiz) return 0;
|
|
7637
|
+
return userAnswers.filter((answer) => {
|
|
7638
|
+
const question = activeQuiz.quiz.questions.find(
|
|
7639
|
+
(q) => q.id === answer.questionId
|
|
7640
|
+
);
|
|
7641
|
+
const isCorrectOption = question?.options.find(
|
|
7642
|
+
(op) => op.isCorrect
|
|
7643
|
+
);
|
|
7644
|
+
return question && answer.optionId === isCorrectOption?.id;
|
|
7645
|
+
}).length;
|
|
7646
|
+
})(),
|
|
7647
|
+
" ",
|
|
7648
|
+
"de ",
|
|
7649
|
+
allQuestions,
|
|
7650
|
+
" quest\xF5es."
|
|
7233
7651
|
] })
|
|
7234
|
-
] })
|
|
7235
|
-
|
|
7236
|
-
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
|
|
7245
|
-
|
|
7246
|
-
|
|
7247
|
-
})
|
|
7248
|
-
|
|
7652
|
+
] }),
|
|
7653
|
+
/* @__PURE__ */ jsxs28("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
|
|
7654
|
+
/* @__PURE__ */ jsx35(
|
|
7655
|
+
Button_default,
|
|
7656
|
+
{
|
|
7657
|
+
variant: "outline",
|
|
7658
|
+
className: "w-full",
|
|
7659
|
+
size: "small",
|
|
7660
|
+
onClick: onGoToSimulated,
|
|
7661
|
+
children: "Ir para simulados"
|
|
7662
|
+
}
|
|
7663
|
+
),
|
|
7664
|
+
/* @__PURE__ */ jsx35(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
|
|
7665
|
+
] })
|
|
7666
|
+
] })
|
|
7667
|
+
}
|
|
7668
|
+
),
|
|
7669
|
+
/* @__PURE__ */ jsx35(
|
|
7670
|
+
Modal_default,
|
|
7671
|
+
{
|
|
7672
|
+
isOpen: modalNavigateOpen,
|
|
7673
|
+
onClose: () => setModalNavigateOpen(false),
|
|
7674
|
+
title: "Quest\xF5es",
|
|
7675
|
+
size: "lg",
|
|
7676
|
+
children: /* @__PURE__ */ jsxs28("div", { className: "flex flex-col w-full h-full", children: [
|
|
7677
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
|
|
7678
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
|
|
7679
|
+
/* @__PURE__ */ jsx35("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs28(Select_default, { value: filterType, onValueChange: setFilterType, children: [
|
|
7680
|
+
/* @__PURE__ */ jsx35(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ jsx35(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
|
|
7681
|
+
/* @__PURE__ */ jsxs28(SelectContent, { children: [
|
|
7682
|
+
/* @__PURE__ */ jsx35(SelectItem, { value: "all", children: "Todas" }),
|
|
7683
|
+
/* @__PURE__ */ jsx35(SelectItem, { value: "unanswered", children: "Em branco" }),
|
|
7684
|
+
/* @__PURE__ */ jsx35(SelectItem, { value: "answered", children: "Respondidas" })
|
|
7685
|
+
] })
|
|
7686
|
+
] }) })
|
|
7687
|
+
] }),
|
|
7688
|
+
/* @__PURE__ */ jsx35("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ jsx35(
|
|
7689
|
+
QuizQuestionList,
|
|
7690
|
+
{
|
|
7691
|
+
filterType,
|
|
7692
|
+
onQuestionClick: () => setModalNavigateOpen(false)
|
|
7693
|
+
}
|
|
7694
|
+
) })
|
|
7695
|
+
] })
|
|
7696
|
+
}
|
|
7697
|
+
)
|
|
7698
|
+
] });
|
|
7699
|
+
}
|
|
7700
|
+
);
|
|
7701
|
+
var QuizResultHeaderTitle = forwardRef18(({ className, ...props }, ref) => {
|
|
7249
7702
|
const { bySimulated } = useQuizStore();
|
|
7250
|
-
return /* @__PURE__ */
|
|
7703
|
+
return /* @__PURE__ */ jsxs28(
|
|
7251
7704
|
"div",
|
|
7252
7705
|
{
|
|
7253
7706
|
ref,
|
|
7254
7707
|
className: cn("flex flex-row pt-4 justify-between", className),
|
|
7255
7708
|
...props,
|
|
7256
7709
|
children: [
|
|
7257
|
-
/* @__PURE__ */
|
|
7258
|
-
bySimulated && /* @__PURE__ */
|
|
7710
|
+
/* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
|
|
7711
|
+
bySimulated && /* @__PURE__ */ jsx35(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
|
|
7259
7712
|
]
|
|
7260
7713
|
}
|
|
7261
7714
|
);
|
|
7262
7715
|
});
|
|
7263
|
-
var QuizResultTitle =
|
|
7716
|
+
var QuizResultTitle = forwardRef18(({ className, ...props }, ref) => {
|
|
7264
7717
|
const { getQuizTitle } = useQuizStore();
|
|
7265
7718
|
const quizTitle = getQuizTitle();
|
|
7266
|
-
return /* @__PURE__ */
|
|
7719
|
+
return /* @__PURE__ */ jsx35(
|
|
7267
7720
|
"p",
|
|
7268
7721
|
{
|
|
7269
7722
|
className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
|
|
@@ -7273,7 +7726,7 @@ var QuizResultTitle = forwardRef17(({ className, ...props }, ref) => {
|
|
|
7273
7726
|
}
|
|
7274
7727
|
);
|
|
7275
7728
|
});
|
|
7276
|
-
var QuizResultPerformance =
|
|
7729
|
+
var QuizResultPerformance = forwardRef18(
|
|
7277
7730
|
({ ...props }, ref) => {
|
|
7278
7731
|
const {
|
|
7279
7732
|
getTotalQuestions,
|
|
@@ -7281,7 +7734,8 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7281
7734
|
formatTime,
|
|
7282
7735
|
bySimulated,
|
|
7283
7736
|
byActivity,
|
|
7284
|
-
byQuestionary
|
|
7737
|
+
byQuestionary,
|
|
7738
|
+
getUserAnswerByQuestionId
|
|
7285
7739
|
} = useQuizStore();
|
|
7286
7740
|
const totalQuestions = getTotalQuestions();
|
|
7287
7741
|
const quiz = bySimulated || byActivity || byQuestionary;
|
|
@@ -7294,8 +7748,10 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7294
7748
|
let totalDifficultQuestions = 0;
|
|
7295
7749
|
if (quiz) {
|
|
7296
7750
|
quiz.questions.forEach((question) => {
|
|
7297
|
-
const
|
|
7298
|
-
const
|
|
7751
|
+
const userAnswerItem = getUserAnswerByQuestionId(question.id);
|
|
7752
|
+
const userAnswer = userAnswerItem?.optionId;
|
|
7753
|
+
const isCorrectOption = question?.options.find((op) => op.isCorrect);
|
|
7754
|
+
const isCorrect = userAnswer && userAnswer === isCorrectOption?.id;
|
|
7299
7755
|
if (isCorrect) {
|
|
7300
7756
|
correctAnswers++;
|
|
7301
7757
|
}
|
|
@@ -7318,15 +7774,15 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7318
7774
|
});
|
|
7319
7775
|
}
|
|
7320
7776
|
const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
|
|
7321
|
-
return /* @__PURE__ */
|
|
7777
|
+
return /* @__PURE__ */ jsxs28(
|
|
7322
7778
|
"div",
|
|
7323
7779
|
{
|
|
7324
7780
|
className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
|
|
7325
7781
|
ref,
|
|
7326
7782
|
...props,
|
|
7327
7783
|
children: [
|
|
7328
|
-
/* @__PURE__ */
|
|
7329
|
-
/* @__PURE__ */
|
|
7784
|
+
/* @__PURE__ */ jsxs28("div", { className: "relative", children: [
|
|
7785
|
+
/* @__PURE__ */ jsx35(
|
|
7330
7786
|
ProgressCircle_default,
|
|
7331
7787
|
{
|
|
7332
7788
|
size: "medium",
|
|
@@ -7336,21 +7792,21 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7336
7792
|
label: ""
|
|
7337
7793
|
}
|
|
7338
7794
|
),
|
|
7339
|
-
/* @__PURE__ */
|
|
7340
|
-
/* @__PURE__ */
|
|
7341
|
-
/* @__PURE__ */
|
|
7342
|
-
/* @__PURE__ */
|
|
7795
|
+
/* @__PURE__ */ jsxs28("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
7796
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
7797
|
+
/* @__PURE__ */ jsx35(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
|
|
7798
|
+
/* @__PURE__ */ jsx35("span", { className: "text-2xs font-medium text-text-800", children: formatTime(timeElapsed) })
|
|
7343
7799
|
] }),
|
|
7344
|
-
/* @__PURE__ */
|
|
7800
|
+
/* @__PURE__ */ jsxs28("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
|
|
7345
7801
|
correctAnswers,
|
|
7346
7802
|
" de ",
|
|
7347
7803
|
totalQuestions
|
|
7348
7804
|
] }),
|
|
7349
|
-
/* @__PURE__ */
|
|
7805
|
+
/* @__PURE__ */ jsx35("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
|
|
7350
7806
|
] })
|
|
7351
7807
|
] }),
|
|
7352
|
-
/* @__PURE__ */
|
|
7353
|
-
/* @__PURE__ */
|
|
7808
|
+
/* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-4 w-full", children: [
|
|
7809
|
+
/* @__PURE__ */ jsx35(
|
|
7354
7810
|
ProgressBar_default,
|
|
7355
7811
|
{
|
|
7356
7812
|
className: "w-full",
|
|
@@ -7364,7 +7820,7 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7364
7820
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
7365
7821
|
}
|
|
7366
7822
|
),
|
|
7367
|
-
/* @__PURE__ */
|
|
7823
|
+
/* @__PURE__ */ jsx35(
|
|
7368
7824
|
ProgressBar_default,
|
|
7369
7825
|
{
|
|
7370
7826
|
className: "w-full",
|
|
@@ -7378,7 +7834,7 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7378
7834
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
7379
7835
|
}
|
|
7380
7836
|
),
|
|
7381
|
-
/* @__PURE__ */
|
|
7837
|
+
/* @__PURE__ */ jsx35(
|
|
7382
7838
|
ProgressBar_default,
|
|
7383
7839
|
{
|
|
7384
7840
|
className: "w-full",
|
|
@@ -7398,8 +7854,12 @@ var QuizResultPerformance = forwardRef17(
|
|
|
7398
7854
|
);
|
|
7399
7855
|
}
|
|
7400
7856
|
);
|
|
7401
|
-
var QuizListResult =
|
|
7402
|
-
const {
|
|
7857
|
+
var QuizListResult = forwardRef18(({ className, onSubjectClick, ...props }, ref) => {
|
|
7858
|
+
const {
|
|
7859
|
+
getQuestionsGroupedBySubject,
|
|
7860
|
+
isQuestionAnswered,
|
|
7861
|
+
getUserAnswerByQuestionId
|
|
7862
|
+
} = useQuizStore();
|
|
7403
7863
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
7404
7864
|
const subjectsStats = Object.entries(groupedQuestions).map(
|
|
7405
7865
|
([subjectId, questions]) => {
|
|
@@ -7407,8 +7867,10 @@ var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref)
|
|
|
7407
7867
|
let incorrect = 0;
|
|
7408
7868
|
questions.forEach((question) => {
|
|
7409
7869
|
if (isQuestionAnswered(question.id)) {
|
|
7410
|
-
const
|
|
7411
|
-
|
|
7870
|
+
const userAnswerItem = getUserAnswerByQuestionId(question.id);
|
|
7871
|
+
const userAnswer = userAnswerItem?.optionId;
|
|
7872
|
+
const isCorrectOption = question?.options.find((op) => op.isCorrect);
|
|
7873
|
+
if (userAnswer === isCorrectOption?.id) {
|
|
7412
7874
|
correct++;
|
|
7413
7875
|
} else {
|
|
7414
7876
|
incorrect++;
|
|
@@ -7423,9 +7885,9 @@ var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref)
|
|
|
7423
7885
|
};
|
|
7424
7886
|
}
|
|
7425
7887
|
);
|
|
7426
|
-
return /* @__PURE__ */
|
|
7427
|
-
/* @__PURE__ */
|
|
7428
|
-
/* @__PURE__ */
|
|
7888
|
+
return /* @__PURE__ */ jsxs28("section", { ref, className, ...props, children: [
|
|
7889
|
+
/* @__PURE__ */ jsx35("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
|
|
7890
|
+
/* @__PURE__ */ jsx35("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx35("li", { children: /* @__PURE__ */ jsx35(
|
|
7429
7891
|
CardResults,
|
|
7430
7892
|
{
|
|
7431
7893
|
onClick: () => onSubjectClick?.(subject.subject),
|
|
@@ -7433,7 +7895,7 @@ var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref)
|
|
|
7433
7895
|
header: subject.subject,
|
|
7434
7896
|
correct_answers: subject.correct,
|
|
7435
7897
|
incorrect_answers: subject.incorrect,
|
|
7436
|
-
icon: /* @__PURE__ */
|
|
7898
|
+
icon: /* @__PURE__ */ jsx35(Book, { size: 20 }),
|
|
7437
7899
|
direction: "row"
|
|
7438
7900
|
}
|
|
7439
7901
|
) }, subject.subject)) })
|
|
@@ -7443,19 +7905,25 @@ var QuizListResultByMateria = ({
|
|
|
7443
7905
|
subject,
|
|
7444
7906
|
onQuestionClick
|
|
7445
7907
|
}) => {
|
|
7446
|
-
const { getQuestionsGroupedBySubject } = useQuizStore();
|
|
7908
|
+
const { getQuestionsGroupedBySubject, getUserAnswerByQuestionId } = useQuizStore();
|
|
7447
7909
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
7448
7910
|
const answeredQuestions = groupedQuestions[subject] || [];
|
|
7449
|
-
return /* @__PURE__ */
|
|
7450
|
-
/* @__PURE__ */
|
|
7451
|
-
/* @__PURE__ */
|
|
7452
|
-
/* @__PURE__ */
|
|
7453
|
-
/* @__PURE__ */
|
|
7911
|
+
return /* @__PURE__ */ jsxs28("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
|
|
7912
|
+
/* @__PURE__ */ jsx35("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
|
|
7913
|
+
/* @__PURE__ */ jsxs28("section", { className: "flex flex-col ", children: [
|
|
7914
|
+
/* @__PURE__ */ jsx35("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
|
|
7915
|
+
/* @__PURE__ */ jsx35("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => /* @__PURE__ */ jsx35("li", { children: /* @__PURE__ */ jsx35(
|
|
7454
7916
|
CardStatus,
|
|
7455
7917
|
{
|
|
7456
7918
|
className: "max-w-full",
|
|
7457
7919
|
header: `Quest\xE3o ${question.id}`,
|
|
7458
|
-
status:
|
|
7920
|
+
status: (() => {
|
|
7921
|
+
const userAnswer = getUserAnswerByQuestionId(question.id);
|
|
7922
|
+
const isCorrectOption = question?.options.find(
|
|
7923
|
+
(op) => op.isCorrect
|
|
7924
|
+
);
|
|
7925
|
+
return userAnswer && userAnswer.optionId === isCorrectOption?.id ? "correct" : "incorrect";
|
|
7926
|
+
})(),
|
|
7459
7927
|
onClick: () => onQuestionClick?.(question)
|
|
7460
7928
|
}
|
|
7461
7929
|
) }, question.id)) })
|
|
@@ -7482,6 +7950,8 @@ export {
|
|
|
7482
7950
|
CardTest,
|
|
7483
7951
|
CardTopic,
|
|
7484
7952
|
CheckBox_default as CheckBox,
|
|
7953
|
+
CheckboxList_default as CheckboxList,
|
|
7954
|
+
CheckboxListItem,
|
|
7485
7955
|
Chips_default as Chips,
|
|
7486
7956
|
Divider_default as Divider,
|
|
7487
7957
|
DropdownMenu_default as DropdownMenu,
|
|
@@ -7498,6 +7968,7 @@ export {
|
|
|
7498
7968
|
MenuLabel,
|
|
7499
7969
|
MenuOverflow,
|
|
7500
7970
|
Modal_default as Modal,
|
|
7971
|
+
MultipleChoiceList,
|
|
7501
7972
|
NavButton_default as NavButton,
|
|
7502
7973
|
NotFound_default as NotFound,
|
|
7503
7974
|
ProfileMenuFooter,
|
|
@@ -7513,6 +7984,8 @@ export {
|
|
|
7513
7984
|
QuizContent,
|
|
7514
7985
|
QuizFooter,
|
|
7515
7986
|
QuizHeader,
|
|
7987
|
+
QuizHeaderResult,
|
|
7988
|
+
QuizListResult,
|
|
7516
7989
|
QuizListResultByMateria,
|
|
7517
7990
|
QuizQuestionList,
|
|
7518
7991
|
QuizResultHeaderTitle,
|
|
@@ -7553,4 +8026,3 @@ export {
|
|
|
7553
8026
|
useUrlAuthentication,
|
|
7554
8027
|
withAuth
|
|
7555
8028
|
};
|
|
7556
|
-
//# sourceMappingURL=index.mjs.map
|