@mantis-core/ui 0.2.0 → 0.4.0
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/components/Forms/ColorPickerInput.d.ts +10 -0
- package/dist/components/Forms/ColorPickerInput.d.ts.map +1 -0
- package/dist/components/Forms/ColorPickerInput.js +13 -0
- package/dist/components/Forms/ColorPickerInput.js.map +1 -0
- package/dist/components/Forms/Combobox.d.ts +10 -0
- package/dist/components/Forms/Combobox.d.ts.map +1 -0
- package/dist/components/Forms/Combobox.js +11 -0
- package/dist/components/Forms/Combobox.js.map +1 -0
- package/dist/components/Forms/CurrencyInput.d.ts +12 -0
- package/dist/components/Forms/CurrencyInput.d.ts.map +1 -0
- package/dist/components/Forms/CurrencyInput.js +9 -0
- package/dist/components/Forms/CurrencyInput.js.map +1 -0
- package/dist/components/Forms/DatePresets.d.ts +14 -0
- package/dist/components/Forms/DatePresets.d.ts.map +1 -0
- package/dist/components/Forms/DatePresets.js +55 -0
- package/dist/components/Forms/DatePresets.js.map +1 -0
- package/dist/components/Forms/DateRangeInput.d.ts +10 -0
- package/dist/components/Forms/DateRangeInput.d.ts.map +1 -0
- package/dist/components/Forms/DateRangeInput.js +13 -0
- package/dist/components/Forms/DateRangeInput.js.map +1 -0
- package/dist/components/Forms/FormWizard.d.ts +17 -0
- package/dist/components/Forms/FormWizard.d.ts.map +1 -0
- package/dist/components/Forms/FormWizard.js +63 -0
- package/dist/components/Forms/FormWizard.js.map +1 -0
- package/dist/components/Forms/OtpInput.d.ts +11 -0
- package/dist/components/Forms/OtpInput.d.ts.map +1 -0
- package/dist/components/Forms/OtpInput.js +11 -0
- package/dist/components/Forms/OtpInput.js.map +1 -0
- package/dist/components/Forms/PasswordInput.d.ts +12 -0
- package/dist/components/Forms/PasswordInput.d.ts.map +1 -0
- package/dist/components/Forms/PasswordInput.js +31 -0
- package/dist/components/Forms/PasswordInput.js.map +1 -0
- package/dist/components/Forms/PhoneInput.d.ts +11 -0
- package/dist/components/Forms/PhoneInput.d.ts.map +1 -0
- package/dist/components/Forms/PhoneInput.js +9 -0
- package/dist/components/Forms/PhoneInput.js.map +1 -0
- package/dist/components/Forms/RadioGroup.d.ts +15 -0
- package/dist/components/Forms/RadioGroup.d.ts.map +1 -0
- package/dist/components/Forms/RadioGroup.js +9 -0
- package/dist/components/Forms/RadioGroup.js.map +1 -0
- package/dist/components/Forms/RangeSlider.d.ts +13 -0
- package/dist/components/Forms/RangeSlider.d.ts.map +1 -0
- package/dist/components/Forms/RangeSlider.js +9 -0
- package/dist/components/Forms/RangeSlider.js.map +1 -0
- package/dist/components/Forms/RatingInput.d.ts +11 -0
- package/dist/components/Forms/RatingInput.d.ts.map +1 -0
- package/dist/components/Forms/RatingInput.js +11 -0
- package/dist/components/Forms/RatingInput.js.map +1 -0
- package/dist/components/Forms/SearchInput.d.ts +14 -0
- package/dist/components/Forms/SearchInput.d.ts.map +1 -0
- package/dist/components/Forms/SearchInput.js +34 -0
- package/dist/components/Forms/SearchInput.js.map +1 -0
- package/dist/components/Forms/TagsInput.d.ts +10 -0
- package/dist/components/Forms/TagsInput.d.ts.map +1 -0
- package/dist/components/Forms/TagsInput.js +11 -0
- package/dist/components/Forms/TagsInput.js.map +1 -0
- package/dist/components/auth/ChangePasswordForm.d.ts +16 -0
- package/dist/components/auth/ChangePasswordForm.d.ts.map +1 -0
- package/dist/components/auth/ChangePasswordForm.js +23 -0
- package/dist/components/auth/ChangePasswordForm.js.map +1 -0
- package/dist/components/auth/ForgotPasswordForm.d.ts +15 -0
- package/dist/components/auth/ForgotPasswordForm.d.ts.map +1 -0
- package/dist/components/auth/ForgotPasswordForm.js +14 -0
- package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
- package/dist/components/auth/LoginForm.d.ts +22 -0
- package/dist/components/auth/LoginForm.d.ts.map +1 -0
- package/dist/components/auth/LoginForm.js +20 -0
- package/dist/components/auth/LoginForm.js.map +1 -0
- package/dist/components/auth/ResetPasswordForm.d.ts +16 -0
- package/dist/components/auth/ResetPasswordForm.d.ts.map +1 -0
- package/dist/components/auth/ResetPasswordForm.js +23 -0
- package/dist/components/auth/ResetPasswordForm.js.map +1 -0
- package/dist/components/auth/UserMenu.d.ts +22 -0
- package/dist/components/auth/UserMenu.d.ts.map +1 -0
- package/dist/components/auth/UserMenu.js +95 -0
- package/dist/components/auth/UserMenu.js.map +1 -0
- package/dist/components/auth/index.d.ts +11 -0
- package/dist/components/auth/index.d.ts.map +1 -0
- package/dist/components/auth/index.js +6 -0
- package/dist/components/auth/index.js.map +1 -0
- package/dist/components/charts/BarChart.d.ts +20 -0
- package/dist/components/charts/BarChart.d.ts.map +1 -0
- package/dist/components/charts/BarChart.js +28 -0
- package/dist/components/charts/BarChart.js.map +1 -0
- package/dist/components/charts/DonutChart.d.ts +21 -0
- package/dist/components/charts/DonutChart.d.ts.map +1 -0
- package/dist/components/charts/DonutChart.js +26 -0
- package/dist/components/charts/DonutChart.js.map +1 -0
- package/dist/components/charts/LineChart.d.ts +20 -0
- package/dist/components/charts/LineChart.d.ts.map +1 -0
- package/dist/components/charts/LineChart.js +27 -0
- package/dist/components/charts/LineChart.js.map +1 -0
- package/dist/components/charts/chart-setup.d.ts +3 -0
- package/dist/components/charts/chart-setup.d.ts.map +1 -0
- package/dist/components/charts/chart-setup.js +10 -0
- package/dist/components/charts/chart-setup.js.map +1 -0
- package/dist/components/charts/defaults.d.ts +13 -0
- package/dist/components/charts/defaults.d.ts.map +1 -0
- package/dist/components/charts/defaults.js +54 -0
- package/dist/components/charts/defaults.js.map +1 -0
- package/dist/components/charts/index.d.ts +9 -0
- package/dist/components/charts/index.d.ts.map +1 -0
- package/dist/components/charts/index.js +6 -0
- package/dist/components/charts/index.js.map +1 -0
- package/dist/components/data/DescriptionList.d.ts +11 -0
- package/dist/components/data/DescriptionList.d.ts.map +1 -0
- package/dist/components/data/DescriptionList.js +23 -0
- package/dist/components/data/DescriptionList.js.map +1 -0
- package/dist/components/data/StatCard.d.ts +14 -0
- package/dist/components/data/StatCard.d.ts.map +1 -0
- package/dist/components/data/StatCard.js +39 -0
- package/dist/components/data/StatCard.js.map +1 -0
- package/dist/components/data/Timeline.d.ts +15 -0
- package/dist/components/data/Timeline.d.ts.map +1 -0
- package/dist/components/data/Timeline.js +20 -0
- package/dist/components/data/Timeline.js.map +1 -0
- package/dist/components/feedback/Avatar.d.ts +9 -0
- package/dist/components/feedback/Avatar.d.ts.map +1 -0
- package/dist/components/feedback/Avatar.js +15 -0
- package/dist/components/feedback/Avatar.js.map +1 -0
- package/dist/components/feedback/CardSkeleton.d.ts +6 -0
- package/dist/components/feedback/CardSkeleton.d.ts.map +1 -0
- package/dist/components/feedback/CardSkeleton.js +7 -0
- package/dist/components/feedback/CardSkeleton.js.map +1 -0
- package/dist/components/feedback/EmptyState.d.ts +9 -0
- package/dist/components/feedback/EmptyState.d.ts.map +1 -0
- package/dist/components/feedback/EmptyState.js +6 -0
- package/dist/components/feedback/EmptyState.js.map +1 -0
- package/dist/components/feedback/ErrorBoundary.d.ts +18 -0
- package/dist/components/feedback/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/feedback/ErrorBoundary.js +24 -0
- package/dist/components/feedback/ErrorBoundary.js.map +1 -0
- package/dist/components/feedback/TableSkeleton.d.ts +7 -0
- package/dist/components/feedback/TableSkeleton.d.ts.map +1 -0
- package/dist/components/feedback/TableSkeleton.js +7 -0
- package/dist/components/feedback/TableSkeleton.js.map +1 -0
- package/dist/components/feedback/Tag.d.ts +6 -0
- package/dist/components/feedback/Tag.d.ts.map +1 -0
- package/dist/components/feedback/Tag.js +7 -0
- package/dist/components/feedback/Tag.js.map +1 -0
- package/dist/components/navigation/CommandPalette.d.ts +17 -0
- package/dist/components/navigation/CommandPalette.d.ts.map +1 -0
- package/dist/components/navigation/CommandPalette.js +73 -0
- package/dist/components/navigation/CommandPalette.js.map +1 -0
- package/dist/components/navigation/PageTabs.d.ts +14 -0
- package/dist/components/navigation/PageTabs.d.ts.map +1 -0
- package/dist/components/navigation/PageTabs.js +21 -0
- package/dist/components/navigation/PageTabs.js.map +1 -0
- package/dist/components/overlays/Drawer.d.ts +6 -0
- package/dist/components/overlays/Drawer.d.ts.map +1 -0
- package/dist/components/overlays/Drawer.js +8 -0
- package/dist/components/overlays/Drawer.js.map +1 -0
- package/dist/components/overlays/Modal.d.ts +6 -0
- package/dist/components/overlays/Modal.d.ts.map +1 -0
- package/dist/components/overlays/Modal.js +8 -0
- package/dist/components/overlays/Modal.js.map +1 -0
- package/dist/components/pages/AdminPageHeader.d.ts.map +1 -1
- package/dist/components/pages/AdminPageHeader.js +2 -9
- package/dist/components/pages/AdminPageHeader.js.map +1 -1
- package/dist/components/pages/app-shell/AppShell.d.ts +5 -0
- package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -0
- package/dist/components/pages/app-shell/AppShell.js +38 -0
- package/dist/components/pages/app-shell/AppShell.js.map +1 -0
- package/dist/components/pages/app-shell/Breadcrumbs.d.ts +8 -0
- package/dist/components/pages/app-shell/Breadcrumbs.d.ts.map +1 -0
- package/dist/components/pages/app-shell/Breadcrumbs.js +17 -0
- package/dist/components/pages/app-shell/Breadcrumbs.js.map +1 -0
- package/dist/components/pages/app-shell/index.d.ts +4 -0
- package/dist/components/pages/app-shell/index.d.ts.map +1 -0
- package/dist/components/pages/app-shell/index.js +3 -0
- package/dist/components/pages/app-shell/index.js.map +1 -0
- package/dist/components/pages/app-shell/types.d.ts +24 -0
- package/dist/components/pages/app-shell/types.d.ts.map +1 -0
- package/dist/components/pages/app-shell/types.js +2 -0
- package/dist/components/pages/app-shell/types.js.map +1 -0
- package/dist/validation/index.d.ts +2 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +3 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/rules.d.ts +10 -0
- package/dist/validation/rules.d.ts.map +1 -0
- package/dist/validation/rules.js +39 -0
- package/dist/validation/rules.js.map +1 -0
- package/dist/validation/zod.d.ts +2 -0
- package/dist/validation/zod.d.ts.map +1 -0
- package/dist/validation/zod.js +3 -0
- package/dist/validation/zod.js.map +1 -0
- package/package.json +39 -3
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { InputText } from 'primereact/inputtext';
|
|
5
|
+
import { useRef, useState } from 'react';
|
|
6
|
+
import { Controller } from 'react-hook-form';
|
|
7
|
+
// ponytail: inline debounce — 5 lines, no library needed
|
|
8
|
+
function useDebouncedCallback(fn, delay) {
|
|
9
|
+
const timer = useRef(undefined);
|
|
10
|
+
return (value) => {
|
|
11
|
+
clearTimeout(timer.current);
|
|
12
|
+
timer.current = setTimeout(() => fn(value), delay);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const SearchInput = ({ controller, block, onSearch, debounceMs = 300, value: valueProp, onChange: onChangeProp, ...rest }) => {
|
|
16
|
+
const [localValue, setLocalValue] = useState(valueProp ?? '');
|
|
17
|
+
const fireSearch = useDebouncedCallback(onSearch ?? (() => { }), debounceMs);
|
|
18
|
+
if (controller) {
|
|
19
|
+
return (_jsx(Controller, { ...controller, render: ({ field, fieldState, formState }) => (_jsxs("span", { className: classNames('p-input-icon-left', { 'w-full': block }), children: [_jsx("i", { className: "pi pi-search" }), _jsx(InputText, { id: rest.id || field.name, ...rest, ...field, disabled: formState.isSubmitting || rest.disabled, invalid: fieldState.invalid, className: classNames(rest.className, { 'w-full': block }), onChange: (e) => {
|
|
20
|
+
field.onChange(e);
|
|
21
|
+
fireSearch(e.target.value);
|
|
22
|
+
} })] })) }));
|
|
23
|
+
}
|
|
24
|
+
// Uncontrolled plain search box (no react-hook-form)
|
|
25
|
+
return (_jsxs("span", { className: classNames('p-input-icon-left', { 'w-full': block }), children: [_jsx("i", { className: "pi pi-search" }), _jsx(InputText, { ...rest, value: valueProp !== undefined ? valueProp : localValue, className: classNames(rest.className, { 'w-full': block }), onChange: (e) => {
|
|
26
|
+
const v = e.target.value;
|
|
27
|
+
if (valueProp === undefined)
|
|
28
|
+
setLocalValue(v);
|
|
29
|
+
onChangeProp?.(v);
|
|
30
|
+
fireSearch(v);
|
|
31
|
+
} })] }));
|
|
32
|
+
};
|
|
33
|
+
export default SearchInput;
|
|
34
|
+
//# sourceMappingURL=SearchInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.js","sourceRoot":"","sources":["../../../src/components/Forms/SearchInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ChipsProps } from "primereact/chips";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { ControllerProps } from "./types";
|
|
4
|
+
export interface TagsInputProps extends Omit<ChipsProps, "name" | "defaultValue" | "value" | "onChange" | "onBlur"> {
|
|
5
|
+
controller: ControllerProps;
|
|
6
|
+
block?: boolean;
|
|
7
|
+
}
|
|
8
|
+
declare const TagsInput: React.FC<TagsInputProps>;
|
|
9
|
+
export default TagsInput;
|
|
10
|
+
//# sourceMappingURL=TagsInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagsInput.d.ts","sourceRoot":"","sources":["../../../src/components/Forms/TagsInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAS,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnF,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAqBvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import classNames from "classnames";
|
|
4
|
+
import { Chips } from "primereact/chips";
|
|
5
|
+
import { Controller } from "react-hook-form";
|
|
6
|
+
const TagsInput = (props) => {
|
|
7
|
+
const { controller, block, ...rest } = props;
|
|
8
|
+
return (_jsx(Controller, { ...controller, render: ({ field, fieldState, formState }) => (_jsx(Chips, { id: field.name, ...rest, name: field.name, ref: field.ref, value: field.value ?? [], onChange: (e) => field.onChange(e.value), onBlur: field.onBlur, disabled: formState.isSubmitting || rest.disabled, invalid: fieldState.invalid, className: classNames(rest.className, { "w-full": block }) })) }));
|
|
9
|
+
};
|
|
10
|
+
export default TagsInput;
|
|
11
|
+
//# sourceMappingURL=TagsInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TagsInput.js","sourceRoot":"","sources":["../../../src/components/Forms/TagsInput.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,KAAK,EAAc,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAS7C,MAAM,SAAS,GAA6B,CAAC,KAAK,EAAE,EAAE;IACpD,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAC7C,OAAO,CACL,KAAC,UAAU,OACL,UAAU,EACd,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAC5C,KAAC,KAAK,IACJ,EAAE,EAAE,KAAK,CAAC,IAAI,KACV,IAAI,EACR,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,GAAG,EAAE,KAAK,CAAC,GAAG,EACd,KAAK,EAAG,KAAK,CAAC,KAAkB,IAAI,EAAE,EACtC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EACxC,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,QAAQ,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,EACjD,OAAO,EAAE,UAAU,CAAC,OAAO,EAC3B,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GAC1D,CACH,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ChangePasswordFormValues {
|
|
3
|
+
currentPassword: string;
|
|
4
|
+
newPassword: string;
|
|
5
|
+
confirmPassword: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ChangePasswordFormProps {
|
|
8
|
+
onSubmit: (values: ChangePasswordFormValues) => void | Promise<void>;
|
|
9
|
+
title?: string;
|
|
10
|
+
submitLabel?: string;
|
|
11
|
+
minPasswordLength?: number;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
declare const ChangePasswordForm: React.FC<ChangePasswordFormProps>;
|
|
15
|
+
export default ChangePasswordForm;
|
|
16
|
+
//# sourceMappingURL=ChangePasswordForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangePasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth/ChangePasswordForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAoEzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { FormProvider, useForm } from 'react-hook-form';
|
|
5
|
+
import Button from '../Buttons/Button';
|
|
6
|
+
import FormFieldRender from '../Forms/FormFieldRender';
|
|
7
|
+
import PasswordInput from '../Forms/PasswordInput';
|
|
8
|
+
import { minLengthRule, notEmptyRule } from '../../validation';
|
|
9
|
+
const ChangePasswordForm = ({ onSubmit, title = 'Cambiar contraseña', submitLabel = 'Actualizar contraseña', minPasswordLength = 8, className, }) => {
|
|
10
|
+
const form = useForm({ mode: 'onChange' });
|
|
11
|
+
const { watch } = form;
|
|
12
|
+
return (_jsx(FormProvider, { ...form, children: _jsxs("div", { className: classNames('mantis-core-change-password-form', className), children: [_jsx("h1", { className: "mantis-core-change-password-form__title", children: title }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [_jsx(FormFieldRender, { label: "Contrase\u00F1a actual", name: "currentPassword", render: ({ name }) => (_jsx(PasswordInput, { controller: { name, rules: notEmptyRule() }, autoComplete: "current-password", block: true })) }), _jsx(FormFieldRender, { label: "Nueva contrase\u00F1a", name: "newPassword", render: ({ name }) => (_jsx(PasswordInput, { controller: {
|
|
13
|
+
name,
|
|
14
|
+
rules: { ...notEmptyRule(), ...minLengthRule(minPasswordLength) },
|
|
15
|
+
}, autoComplete: "new-password", block: true })) }), _jsx(FormFieldRender, { label: "Confirmar nueva contrase\u00F1a", name: "confirmPassword", render: ({ name }) => (_jsx(PasswordInput, { controller: {
|
|
16
|
+
name,
|
|
17
|
+
rules: {
|
|
18
|
+
validate: (v) => v === watch('newPassword') || 'Las contraseñas no coinciden',
|
|
19
|
+
},
|
|
20
|
+
}, autoComplete: "new-password", block: true })) }), _jsx(Button, { type: "submit", label: submitLabel, loading: form.formState.isSubmitting, disabled: form.formState.isSubmitting, block: true })] })] }) }));
|
|
21
|
+
};
|
|
22
|
+
export default ChangePasswordForm;
|
|
23
|
+
//# sourceMappingURL=ChangePasswordForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChangePasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth/ChangePasswordForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgB/D,MAAM,kBAAkB,GAAsC,CAAC,EAC7D,QAAQ,EACR,KAAK,GAAG,oBAAoB,EAC5B,WAAW,GAAG,uBAAuB,EACrC,iBAAiB,GAAG,CAAC,EACrB,SAAS,GACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAA2B,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACrE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,YAAY,OAAK,IAAI,YACpB,eAAK,SAAS,EAAE,UAAU,CAAC,kCAAkC,EAAE,SAAS,CAAC,aACvE,aAAI,SAAS,EAAC,yCAAyC,YAAE,KAAK,GAAM,EACpE,gBAAM,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAC,WAAW,aAChE,KAAC,eAAe,IACd,KAAK,EAAC,wBAAmB,EACzB,IAAI,EAAC,iBAAiB,EACtB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,aAAa,IACZ,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAC3C,YAAY,EAAC,kBAAkB,EAC/B,KAAK,SACL,CACH,GACD,EACF,KAAC,eAAe,IACd,KAAK,EAAC,uBAAkB,EACxB,IAAI,EAAC,aAAa,EAClB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,aAAa,IACZ,UAAU,EAAE;oCACV,IAAI;oCACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,aAAa,CAAC,iBAAiB,CAAC,EAAqB;iCACrF,EACD,YAAY,EAAC,cAAc,EAC3B,KAAK,SACL,CACH,GACD,EACF,KAAC,eAAe,IACd,KAAK,EAAC,iCAA4B,EAClC,IAAI,EAAC,iBAAiB,EACtB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,aAAa,IACZ,UAAU,EAAE;oCACV,IAAI;oCACJ,KAAK,EAAE;wCACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,IAAI,8BAA8B;qCAC/D;iCACF,EACD,YAAY,EAAC,cAAc,EAC3B,KAAK,SACL,CACH,GACD,EACF,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACrC,KAAK,SACL,IACG,IACH,GACO,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ForgotPasswordFormValues {
|
|
3
|
+
email: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ForgotPasswordFormProps {
|
|
6
|
+
onSubmit: (values: ForgotPasswordFormValues) => void | Promise<void>;
|
|
7
|
+
title?: string;
|
|
8
|
+
subtitle?: string;
|
|
9
|
+
submitLabel?: string;
|
|
10
|
+
backSlot?: React.ReactNode;
|
|
11
|
+
className?: string;
|
|
12
|
+
}
|
|
13
|
+
declare const ForgotPasswordForm: React.FC<ForgotPasswordFormProps>;
|
|
14
|
+
export default ForgotPasswordForm;
|
|
15
|
+
//# sourceMappingURL=ForgotPasswordForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForgotPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth/ForgotPasswordForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAwCzD,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { FormProvider, useForm } from 'react-hook-form';
|
|
5
|
+
import Button from '../Buttons/Button';
|
|
6
|
+
import FormFieldRender from '../Forms/FormFieldRender';
|
|
7
|
+
import TextInput from '../Forms/TextInput';
|
|
8
|
+
import { emailRule } from '../../validation';
|
|
9
|
+
const ForgotPasswordForm = ({ onSubmit, title = 'Recuperar contraseña', subtitle, submitLabel = 'Enviar enlace', backSlot, className, }) => {
|
|
10
|
+
const form = useForm({ mode: 'onChange' });
|
|
11
|
+
return (_jsx(FormProvider, { ...form, children: _jsxs("div", { className: classNames('mantis-core-forgot-password-form', className), children: [_jsx("h1", { className: "mantis-core-forgot-password-form__title", children: title }), subtitle && _jsx("p", { className: "mantis-core-forgot-password-form__subtitle", children: subtitle }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [_jsx(FormFieldRender, { label: "Correo electr\u00F3nico", name: "email", render: ({ name }) => (_jsx(TextInput, { controller: { name, rules: emailRule() }, type: "email", autoComplete: "email", block: true })) }), _jsx(Button, { type: "submit", label: submitLabel, loading: form.formState.isSubmitting, disabled: form.formState.isSubmitting, block: true }), backSlot && _jsx("div", { className: "mantis-core-forgot-password-form__back", children: backSlot })] })] }) }));
|
|
12
|
+
};
|
|
13
|
+
export default ForgotPasswordForm;
|
|
14
|
+
//# sourceMappingURL=ForgotPasswordForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForgotPasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth/ForgotPasswordForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAe7C,MAAM,kBAAkB,GAAsC,CAAC,EAC7D,QAAQ,EACR,KAAK,GAAG,sBAAsB,EAC9B,QAAQ,EACR,WAAW,GAAG,eAAe,EAC7B,QAAQ,EACR,SAAS,GACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAA2B,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAErE,OAAO,CACL,KAAC,YAAY,OAAK,IAAI,YACpB,eAAK,SAAS,EAAE,UAAU,CAAC,kCAAkC,EAAE,SAAS,CAAC,aACvE,aAAI,SAAS,EAAC,yCAAyC,YAAE,KAAK,GAAM,EACnE,QAAQ,IAAI,YAAG,SAAS,EAAC,4CAA4C,YAAE,QAAQ,GAAK,EACrF,gBAAM,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAC,WAAW,aAChE,KAAC,eAAe,IACd,KAAK,EAAC,yBAAoB,EAC1B,IAAI,EAAC,OAAO,EACZ,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,SAAS,IACR,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EACxC,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,OAAO,EACpB,KAAK,SACL,CACH,GACD,EACF,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACrC,KAAK,SACL,EACD,QAAQ,IAAI,cAAK,SAAS,EAAC,wCAAwC,YAAE,QAAQ,GAAO,IAChF,IACH,GACO,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface LoginFormValues {
|
|
3
|
+
identifier: string;
|
|
4
|
+
password: string;
|
|
5
|
+
}
|
|
6
|
+
export interface LoginFormProps {
|
|
7
|
+
onSubmit: (values: LoginFormValues) => void | Promise<void>;
|
|
8
|
+
brand?: React.ReactNode;
|
|
9
|
+
title?: string;
|
|
10
|
+
subtitle?: string;
|
|
11
|
+
footer?: React.ReactNode;
|
|
12
|
+
identifierField?: 'email' | 'username';
|
|
13
|
+
identifierLabel?: string;
|
|
14
|
+
identifierPlaceholder?: string;
|
|
15
|
+
passwordLabel?: string;
|
|
16
|
+
passwordPlaceholder?: string;
|
|
17
|
+
submitLabel?: string;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
declare const LoginForm: React.FC<LoginFormProps>;
|
|
21
|
+
export default LoginForm;
|
|
22
|
+
//# sourceMappingURL=LoginForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth/LoginForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkEvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { FormProvider, useForm } from 'react-hook-form';
|
|
5
|
+
import Button from '../Buttons/Button';
|
|
6
|
+
import FormFieldRender from '../Forms/FormFieldRender';
|
|
7
|
+
import TextInput from '../Forms/TextInput';
|
|
8
|
+
import PasswordInput from '../Forms/PasswordInput';
|
|
9
|
+
import { emailRule, notEmptyRule } from '../../validation';
|
|
10
|
+
const LoginForm = ({ onSubmit, brand, title = 'Iniciar sesión', subtitle, footer, identifierField = 'email', identifierLabel, identifierPlaceholder, passwordLabel = 'Contraseña', passwordPlaceholder, submitLabel = 'Ingresar', className, }) => {
|
|
11
|
+
const form = useForm({ mode: 'onChange' });
|
|
12
|
+
const isEmail = identifierField === 'email';
|
|
13
|
+
const defaultIdentifierLabel = isEmail ? 'Correo electrónico' : 'Usuario';
|
|
14
|
+
const identifierRules = isEmail
|
|
15
|
+
? { ...notEmptyRule(), ...emailRule() }
|
|
16
|
+
: notEmptyRule();
|
|
17
|
+
return (_jsx(FormProvider, { ...form, children: _jsxs("div", { className: classNames('mantis-core-login-form', className), children: [brand && _jsx("div", { className: "mantis-core-login-form__brand", children: brand }), _jsx("h1", { className: "mantis-core-login-form__title", children: title }), subtitle && _jsx("p", { className: "mantis-core-login-form__subtitle", children: subtitle }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [_jsx(FormFieldRender, { label: identifierLabel ?? defaultIdentifierLabel, name: "identifier", render: ({ name }) => (_jsx(TextInput, { controller: { name, rules: identifierRules }, type: isEmail ? 'email' : 'text', autoComplete: isEmail ? 'email' : 'username', placeholder: identifierPlaceholder, block: true })) }), _jsx(FormFieldRender, { label: passwordLabel, name: "password", render: ({ name }) => (_jsx(PasswordInput, { controller: { name, rules: notEmptyRule() }, autoComplete: "current-password", placeholder: passwordPlaceholder, block: true })) }), _jsx(Button, { type: "submit", label: submitLabel, loading: form.formState.isSubmitting, disabled: form.formState.isSubmitting, block: true }), footer && _jsx("div", { className: "mantis-core-login-form__footer", children: footer })] })] }) }));
|
|
18
|
+
};
|
|
19
|
+
export default LoginForm;
|
|
20
|
+
//# sourceMappingURL=LoginForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoginForm.js","sourceRoot":"","sources":["../../../src/components/auth/LoginForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAsB3D,MAAM,SAAS,GAA6B,CAAC,EAC3C,QAAQ,EACR,KAAK,EACL,KAAK,GAAG,gBAAgB,EACxB,QAAQ,EACR,MAAM,EACN,eAAe,GAAG,OAAO,EACzB,eAAe,EACf,qBAAqB,EACrB,aAAa,GAAG,YAAY,EAC5B,mBAAmB,EACnB,WAAW,GAAG,UAAU,EACxB,SAAS,GACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,eAAe,KAAK,OAAO,CAAC;IAC5C,MAAM,sBAAsB,GAAG,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,eAAe,GAAoB,OAAO;QAC9C,CAAC,CAAE,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,SAAS,EAAE,EAAsB;QAC5D,CAAC,CAAC,YAAY,EAAE,CAAC;IAEnB,OAAO,CACL,KAAC,YAAY,OAAK,IAAI,YACpB,eAAK,SAAS,EAAE,UAAU,CAAC,wBAAwB,EAAE,SAAS,CAAC,aAC5D,KAAK,IAAI,cAAK,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAO,EACtE,aAAI,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAM,EACzD,QAAQ,IAAI,YAAG,SAAS,EAAC,kCAAkC,YAAE,QAAQ,GAAK,EAC3E,gBAAM,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAC,WAAW,aAChE,KAAC,eAAe,IACd,KAAK,EAAE,eAAe,IAAI,sBAAsB,EAChD,IAAI,EAAC,YAAY,EACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,SAAS,IACR,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,EAC5C,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAChC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAC5C,WAAW,EAAE,qBAAqB,EAClC,KAAK,SACL,CACH,GACD,EACF,KAAC,eAAe,IACd,KAAK,EAAE,aAAa,EACpB,IAAI,EAAC,UAAU,EACf,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,aAAa,IACZ,UAAU,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAC3C,YAAY,EAAC,kBAAkB,EAC/B,WAAW,EAAE,mBAAmB,EAChC,KAAK,SACL,CACH,GACD,EACF,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACrC,KAAK,SACL,EACD,MAAM,IAAI,cAAK,SAAS,EAAC,gCAAgC,YAAE,MAAM,GAAO,IACpE,IACH,GACO,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ResetPasswordFormValues {
|
|
3
|
+
newPassword: string;
|
|
4
|
+
confirmPassword: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ResetPasswordFormProps {
|
|
7
|
+
onSubmit: (values: ResetPasswordFormValues) => void | Promise<void>;
|
|
8
|
+
title?: string;
|
|
9
|
+
subtitle?: string;
|
|
10
|
+
submitLabel?: string;
|
|
11
|
+
minPasswordLength?: number;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
declare const ResetPasswordForm: React.FC<ResetPasswordFormProps>;
|
|
15
|
+
export default ResetPasswordForm;
|
|
16
|
+
//# sourceMappingURL=ResetPasswordForm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResetPasswordForm.d.ts","sourceRoot":"","sources":["../../../src/components/auth/ResetPasswordForm.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA2DvD,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { FormProvider, useForm } from 'react-hook-form';
|
|
5
|
+
import Button from '../Buttons/Button';
|
|
6
|
+
import FormFieldRender from '../Forms/FormFieldRender';
|
|
7
|
+
import PasswordInput from '../Forms/PasswordInput';
|
|
8
|
+
import { minLengthRule, notEmptyRule } from '../../validation';
|
|
9
|
+
const ResetPasswordForm = ({ onSubmit, title = 'Nueva contraseña', subtitle, submitLabel = 'Guardar contraseña', minPasswordLength = 8, className, }) => {
|
|
10
|
+
const form = useForm({ mode: 'onChange' });
|
|
11
|
+
const { watch } = form;
|
|
12
|
+
return (_jsx(FormProvider, { ...form, children: _jsxs("div", { className: classNames('mantis-core-reset-password-form', className), children: [_jsx("h1", { className: "mantis-core-reset-password-form__title", children: title }), subtitle && _jsx("p", { className: "mantis-core-reset-password-form__subtitle", children: subtitle }), _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-4", children: [_jsx(FormFieldRender, { label: "Nueva contrase\u00F1a", name: "newPassword", render: ({ name }) => (_jsx(PasswordInput, { controller: {
|
|
13
|
+
name,
|
|
14
|
+
rules: { ...notEmptyRule(), ...minLengthRule(minPasswordLength) },
|
|
15
|
+
}, autoComplete: "new-password", block: true })) }), _jsx(FormFieldRender, { label: "Confirmar contrase\u00F1a", name: "confirmPassword", render: ({ name }) => (_jsx(PasswordInput, { controller: {
|
|
16
|
+
name,
|
|
17
|
+
rules: {
|
|
18
|
+
validate: (v) => v === watch('newPassword') || 'Las contraseñas no coinciden',
|
|
19
|
+
},
|
|
20
|
+
}, autoComplete: "new-password", block: true })) }), _jsx(Button, { type: "submit", label: submitLabel, loading: form.formState.isSubmitting, disabled: form.formState.isSubmitting, block: true })] })] }) }));
|
|
21
|
+
};
|
|
22
|
+
export default ResetPasswordForm;
|
|
23
|
+
//# sourceMappingURL=ResetPasswordForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResetPasswordForm.js","sourceRoot":"","sources":["../../../src/components/auth/ResetPasswordForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAgB/D,MAAM,iBAAiB,GAAqC,CAAC,EAC3D,QAAQ,EACR,KAAK,GAAG,kBAAkB,EAC1B,QAAQ,EACR,WAAW,GAAG,oBAAoB,EAClC,iBAAiB,GAAG,CAAC,EACrB,SAAS,GACV,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,OAAO,CAA0B,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACpE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,YAAY,OAAK,IAAI,YACpB,eAAK,SAAS,EAAE,UAAU,CAAC,iCAAiC,EAAE,SAAS,CAAC,aACtE,aAAI,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAM,EAClE,QAAQ,IAAI,YAAG,SAAS,EAAC,2CAA2C,YAAE,QAAQ,GAAK,EACpF,gBAAM,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAC,WAAW,aAChE,KAAC,eAAe,IACd,KAAK,EAAC,uBAAkB,EACxB,IAAI,EAAC,aAAa,EAClB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,aAAa,IACZ,UAAU,EAAE;oCACV,IAAI;oCACJ,KAAK,EAAE,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,aAAa,CAAC,iBAAiB,CAAC,EAAqB;iCACrF,EACD,YAAY,EAAC,cAAc,EAC3B,KAAK,SACL,CACH,GACD,EACF,KAAC,eAAe,IACd,KAAK,EAAC,2BAAsB,EAC5B,IAAI,EAAC,iBAAiB,EACtB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CACpB,KAAC,aAAa,IACZ,UAAU,EAAE;oCACV,IAAI;oCACJ,KAAK,EAAE;wCACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,IAAI,8BAA8B;qCAC/D;iCACF,EACD,YAAY,EAAC,cAAc,EAC3B,KAAK,SACL,CACH,GACD,EACF,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACpC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EACrC,KAAK,SACL,IACG,IACH,GACO,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface UserMenuItem {
|
|
3
|
+
label: string;
|
|
4
|
+
icon?: React.ReactNode;
|
|
5
|
+
href?: string;
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
}
|
|
8
|
+
export interface UserMenuUser {
|
|
9
|
+
name?: string;
|
|
10
|
+
email?: string;
|
|
11
|
+
avatarUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface UserMenuProps {
|
|
14
|
+
user: UserMenuUser;
|
|
15
|
+
items?: UserMenuItem[];
|
|
16
|
+
onSignOut?: () => void;
|
|
17
|
+
signOutLabel?: string;
|
|
18
|
+
className?: string;
|
|
19
|
+
}
|
|
20
|
+
declare const UserMenu: React.FC<UserMenuProps>;
|
|
21
|
+
export default UserMenu;
|
|
22
|
+
//# sourceMappingURL=UserMenu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../src/components/auth/UserMenu.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8LrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { PrimeIcons } from 'primereact/api';
|
|
5
|
+
import { useEffect, useRef, useState } from 'react';
|
|
6
|
+
const UserMenu = ({ user, items, onSignOut, signOutLabel = 'Cerrar sesión', className, }) => {
|
|
7
|
+
const [open, setOpen] = useState(false);
|
|
8
|
+
const wrapperRef = useRef(null);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
const handler = (e) => {
|
|
11
|
+
if (wrapperRef.current && !wrapperRef.current.contains(e.target)) {
|
|
12
|
+
setOpen(false);
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
document.addEventListener('mousedown', handler);
|
|
16
|
+
return () => document.removeEventListener('mousedown', handler);
|
|
17
|
+
}, []);
|
|
18
|
+
const initial = (user.name ?? user.email ?? '?')[0].toUpperCase();
|
|
19
|
+
return (_jsxs("div", { ref: wrapperRef, className: classNames('mantis-core-user-menu', className), style: { position: 'relative', display: 'inline-block' }, children: [_jsx("button", { type: "button", onClick: () => setOpen((v) => !v), "aria-haspopup": "true", "aria-expanded": open, style: {
|
|
20
|
+
background: 'none',
|
|
21
|
+
border: 'none',
|
|
22
|
+
cursor: 'pointer',
|
|
23
|
+
padding: '0',
|
|
24
|
+
display: 'flex',
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
gap: '0.5rem',
|
|
27
|
+
}, children: user.avatarUrl ? (_jsx("img", { src: user.avatarUrl, alt: user.name ?? user.email ?? 'Avatar', style: {
|
|
28
|
+
width: '2rem',
|
|
29
|
+
height: '2rem',
|
|
30
|
+
borderRadius: '50%',
|
|
31
|
+
objectFit: 'cover',
|
|
32
|
+
} })) : (_jsx("span", { style: {
|
|
33
|
+
width: '2rem',
|
|
34
|
+
height: '2rem',
|
|
35
|
+
borderRadius: '50%',
|
|
36
|
+
display: 'flex',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
justifyContent: 'center',
|
|
39
|
+
backgroundColor: 'var(--primary-color)',
|
|
40
|
+
color: 'var(--primary-color-text)',
|
|
41
|
+
fontWeight: 600,
|
|
42
|
+
fontSize: '0.875rem',
|
|
43
|
+
}, children: initial })) }), open && (_jsxs("div", { className: "mantis-core-user-menu__dropdown", style: {
|
|
44
|
+
position: 'absolute',
|
|
45
|
+
right: 0,
|
|
46
|
+
top: 'calc(100% + 0.5rem)',
|
|
47
|
+
minWidth: '14rem',
|
|
48
|
+
backgroundColor: 'var(--surface-overlay)',
|
|
49
|
+
border: '1px solid var(--surface-border)',
|
|
50
|
+
borderRadius: 'var(--border-radius)',
|
|
51
|
+
boxShadow: 'var(--card-shadow)',
|
|
52
|
+
zIndex: 1000,
|
|
53
|
+
overflow: 'hidden',
|
|
54
|
+
}, children: [_jsxs("div", { style: {
|
|
55
|
+
padding: '0.75rem 1rem',
|
|
56
|
+
borderBottom: '1px solid var(--surface-border)',
|
|
57
|
+
}, children: [user.name && (_jsx("p", { style: { margin: 0, fontWeight: 600, color: 'var(--text-color)' }, children: user.name })), user.email && (_jsx("p", { style: { margin: 0, fontSize: '0.8125rem', color: 'var(--text-color-secondary)' }, children: user.email }))] }), items && items.length > 0 && (_jsx("div", { style: { padding: '0.25rem 0' }, children: items.map((item, i) => item.href ? (_jsxs("a", { href: item.href, onClick: () => setOpen(false), style: {
|
|
58
|
+
display: 'flex',
|
|
59
|
+
alignItems: 'center',
|
|
60
|
+
gap: '0.5rem',
|
|
61
|
+
padding: '0.5rem 1rem',
|
|
62
|
+
color: 'var(--text-color)',
|
|
63
|
+
textDecoration: 'none',
|
|
64
|
+
}, children: [item.icon, item.label] }, i)) : (_jsxs("button", { type: "button", onClick: () => {
|
|
65
|
+
setOpen(false);
|
|
66
|
+
item.onClick?.();
|
|
67
|
+
}, style: {
|
|
68
|
+
display: 'flex',
|
|
69
|
+
alignItems: 'center',
|
|
70
|
+
gap: '0.5rem',
|
|
71
|
+
padding: '0.5rem 1rem',
|
|
72
|
+
width: '100%',
|
|
73
|
+
background: 'none',
|
|
74
|
+
border: 'none',
|
|
75
|
+
cursor: 'pointer',
|
|
76
|
+
color: 'var(--text-color)',
|
|
77
|
+
textAlign: 'left',
|
|
78
|
+
}, children: [item.icon, item.label] }, i))) })), onSignOut && (_jsx("div", { style: { borderTop: '1px solid var(--surface-border)', padding: '0.25rem 0' }, children: _jsxs("button", { type: "button", onClick: () => {
|
|
79
|
+
setOpen(false);
|
|
80
|
+
onSignOut();
|
|
81
|
+
}, style: {
|
|
82
|
+
display: 'flex',
|
|
83
|
+
alignItems: 'center',
|
|
84
|
+
gap: '0.5rem',
|
|
85
|
+
padding: '0.5rem 1rem',
|
|
86
|
+
width: '100%',
|
|
87
|
+
background: 'none',
|
|
88
|
+
border: 'none',
|
|
89
|
+
cursor: 'pointer',
|
|
90
|
+
color: 'var(--text-color)',
|
|
91
|
+
textAlign: 'left',
|
|
92
|
+
}, children: [_jsx("i", { className: PrimeIcons.SIGN_OUT, style: { fontSize: '0.875rem' } }), signOutLabel] }) }))] }))] }));
|
|
93
|
+
};
|
|
94
|
+
export default UserMenu;
|
|
95
|
+
//# sourceMappingURL=UserMenu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserMenu.js","sourceRoot":"","sources":["../../../src/components/auth/UserMenu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { default as LoginForm } from './LoginForm';
|
|
2
|
+
export type { LoginFormProps, LoginFormValues } from './LoginForm';
|
|
3
|
+
export { default as ForgotPasswordForm } from './ForgotPasswordForm';
|
|
4
|
+
export type { ForgotPasswordFormProps, ForgotPasswordFormValues } from './ForgotPasswordForm';
|
|
5
|
+
export { default as ResetPasswordForm } from './ResetPasswordForm';
|
|
6
|
+
export type { ResetPasswordFormProps, ResetPasswordFormValues } from './ResetPasswordForm';
|
|
7
|
+
export { default as ChangePasswordForm } from './ChangePasswordForm';
|
|
8
|
+
export type { ChangePasswordFormProps, ChangePasswordFormValues } from './ChangePasswordForm';
|
|
9
|
+
export { default as UserMenu } from './UserMenu';
|
|
10
|
+
export type { UserMenuProps, UserMenuUser, UserMenuItem } from './UserMenu';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as LoginForm } from './LoginForm';
|
|
2
|
+
export { default as ForgotPasswordForm } from './ForgotPasswordForm';
|
|
3
|
+
export { default as ResetPasswordForm } from './ResetPasswordForm';
|
|
4
|
+
export { default as ChangePasswordForm } from './ChangePasswordForm';
|
|
5
|
+
export { default as UserMenu } from './UserMenu';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAErE,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Bar } from "react-chartjs-2";
|
|
3
|
+
import type { ChartOptions, ChartDataset } from "chart.js";
|
|
4
|
+
export type BarChartDataset = Omit<ChartDataset<"bar">, "data"> & {
|
|
5
|
+
data: number[];
|
|
6
|
+
};
|
|
7
|
+
export interface BarChartProps extends Omit<React.ComponentProps<typeof Bar>, "data" | "options"> {
|
|
8
|
+
labels: string[];
|
|
9
|
+
datasets: BarChartDataset[];
|
|
10
|
+
/** Deep-merged over sensible defaults. */
|
|
11
|
+
options?: ChartOptions<"bar">;
|
|
12
|
+
/** Color palette applied to datasets that don't specify their own colors. */
|
|
13
|
+
colors?: string[];
|
|
14
|
+
/** Container height in px. Default: 300. */
|
|
15
|
+
height?: number;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
declare const BarChart: React.FC<BarChartProps>;
|
|
19
|
+
export default BarChart;
|
|
20
|
+
//# sourceMappingURL=BarChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/components/charts/BarChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,KAAK,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOtE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,GAAG;IAChE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,aACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC9B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAmCrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Bar } from "react-chartjs-2";
|
|
4
|
+
import classNames from "classnames";
|
|
5
|
+
import { registerCharts } from "./chart-setup";
|
|
6
|
+
import { DEFAULT_COLORS, defaultBarOptions } from "./defaults";
|
|
7
|
+
registerCharts();
|
|
8
|
+
const BarChart = ({ labels, datasets, options, colors = DEFAULT_COLORS, height = 300, className, ...rest }) => {
|
|
9
|
+
const data = {
|
|
10
|
+
labels,
|
|
11
|
+
datasets: datasets.map((ds, i) => ({
|
|
12
|
+
backgroundColor: colors[i % colors.length] + "cc", // 80% opacity
|
|
13
|
+
borderColor: colors[i % colors.length],
|
|
14
|
+
borderWidth: 1,
|
|
15
|
+
borderRadius: 4,
|
|
16
|
+
...ds,
|
|
17
|
+
})),
|
|
18
|
+
};
|
|
19
|
+
const mergedOptions = {
|
|
20
|
+
...defaultBarOptions,
|
|
21
|
+
...options,
|
|
22
|
+
plugins: { ...defaultBarOptions.plugins, ...options?.plugins },
|
|
23
|
+
scales: { ...defaultBarOptions.scales, ...options?.scales },
|
|
24
|
+
};
|
|
25
|
+
return (_jsx("div", { className: classNames("mantis-core-chart mantis-core-chart--bar", className), style: { height }, children: _jsx(Bar, { data: data, options: mergedOptions, ...rest }) }));
|
|
26
|
+
};
|
|
27
|
+
export default BarChart;
|
|
28
|
+
//# sourceMappingURL=BarChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/components/charts/BarChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/D,cAAc,EAAE,CAAC;AAmBjB,MAAM,QAAQ,GAA4B,CAAC,EACzC,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,GAAG,cAAc,EACvB,MAAM,GAAG,GAAG,EACZ,SAAS,EACT,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,IAAI,GAAqB;QAC7B,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,eAAe,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,cAAc;YACjE,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;YACtC,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,GAAG,EAAE;SACN,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,aAAa,GAAwB;QACzC,GAAG,iBAAiB;QACpB,GAAG,OAAO;QACV,OAAO,EAAE,EAAE,GAAG,iBAAiB,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;QAC9D,MAAM,EAAE,EAAE,GAAG,iBAAiB,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE;KAC5D,CAAC;IAEF,OAAO,CACL,cACE,SAAS,EAAE,UAAU,CAAC,0CAA0C,EAAE,SAAS,CAAC,EAC5E,KAAK,EAAE,EAAE,MAAM,EAAE,YAEjB,KAAC,GAAG,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,KAAM,IAAI,GAAI,GACjD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Doughnut } from "react-chartjs-2";
|
|
3
|
+
import type { ChartOptions } from "chart.js";
|
|
4
|
+
export interface DonutChartProps extends Omit<React.ComponentProps<typeof Doughnut>, "data" | "options"> {
|
|
5
|
+
labels: string[];
|
|
6
|
+
/** One value per label/slice. */
|
|
7
|
+
datasets: {
|
|
8
|
+
data: number[];
|
|
9
|
+
label?: string;
|
|
10
|
+
}[];
|
|
11
|
+
/** Deep-merged over sensible defaults. */
|
|
12
|
+
options?: ChartOptions<"doughnut">;
|
|
13
|
+
/** Color palette for slices. */
|
|
14
|
+
colors?: string[];
|
|
15
|
+
/** Container height in px. Default: 300. */
|
|
16
|
+
height?: number;
|
|
17
|
+
className?: string;
|
|
18
|
+
}
|
|
19
|
+
declare const DonutChart: React.FC<DonutChartProps>;
|
|
20
|
+
export default DonutChart;
|
|
21
|
+
//# sourceMappingURL=DonutChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DonutChart.d.ts","sourceRoot":"","sources":["../../../src/components/charts/DonutChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxD,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iCAAiC;IACjC,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/C,0CAA0C;IAC1C,OAAO,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACnC,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAiCzC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { Doughnut } from "react-chartjs-2";
|
|
4
|
+
import classNames from "classnames";
|
|
5
|
+
import { registerCharts } from "./chart-setup";
|
|
6
|
+
import { DEFAULT_COLORS, defaultDonutOptions } from "./defaults";
|
|
7
|
+
registerCharts();
|
|
8
|
+
const DonutChart = ({ labels, datasets, options, colors = DEFAULT_COLORS, height = 300, className, ...rest }) => {
|
|
9
|
+
const data = {
|
|
10
|
+
labels,
|
|
11
|
+
datasets: datasets.map((ds) => ({
|
|
12
|
+
backgroundColor: labels.map((_, i) => colors[i % colors.length] + "cc"),
|
|
13
|
+
borderColor: labels.map((_, i) => colors[i % colors.length]),
|
|
14
|
+
borderWidth: 1,
|
|
15
|
+
...ds,
|
|
16
|
+
})),
|
|
17
|
+
};
|
|
18
|
+
const mergedOptions = {
|
|
19
|
+
...defaultDonutOptions,
|
|
20
|
+
...options,
|
|
21
|
+
plugins: { ...defaultDonutOptions.plugins, ...options?.plugins },
|
|
22
|
+
};
|
|
23
|
+
return (_jsx("div", { className: classNames("mantis-core-chart mantis-core-chart--donut", className), style: { height }, children: _jsx(Doughnut, { data: data, options: mergedOptions, ...rest }) }));
|
|
24
|
+
};
|
|
25
|
+
export default DonutChart;
|
|
26
|
+
//# sourceMappingURL=DonutChart.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DonutChart.js","sourceRoot":"","sources":["../../../src/components/charts/DonutChart.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjE,cAAc,EAAE,CAAC;AAgBjB,MAAM,UAAU,GAA8B,CAAC,EAC7C,MAAM,EACN,QAAQ,EACR,OAAO,EACP,MAAM,GAAG,cAAc,EACvB,MAAM,GAAG,GAAG,EACZ,SAAS,EACT,GAAG,IAAI,EACR,EAAE,EAAE;IACH,MAAM,IAAI,GAA0B;QAClC,MAAM;QACN,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9B,eAAe,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;YACvE,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC5D,WAAW,EAAE,CAAC;YACd,GAAG,EAAE;SACN,CAAC,CAAC;KACJ,CAAC;IAEF,MAAM,aAAa,GAA6B;QAC9C,GAAG,mBAAmB;QACtB,GAAG,OAAO;QACV,OAAO,EAAE,EAAE,GAAG,mBAAmB,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE;KACjE,CAAC;IAEF,OAAO,CACL,cACE,SAAS,EAAE,UAAU,CAAC,4CAA4C,EAAE,SAAS,CAAC,EAC9E,KAAK,EAAE,EAAE,MAAM,EAAE,YAEjB,KAAC,QAAQ,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,KAAM,IAAI,GAAI,GACtD,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Line } from "react-chartjs-2";
|
|
3
|
+
import type { ChartOptions, ChartDataset } from "chart.js";
|
|
4
|
+
export type LineChartDataset = Omit<ChartDataset<"line">, "data"> & {
|
|
5
|
+
data: number[];
|
|
6
|
+
};
|
|
7
|
+
export interface LineChartProps extends Omit<React.ComponentProps<typeof Line>, "data" | "options"> {
|
|
8
|
+
labels: string[];
|
|
9
|
+
datasets: LineChartDataset[];
|
|
10
|
+
/** Deep-merged over sensible defaults. */
|
|
11
|
+
options?: ChartOptions<"line">;
|
|
12
|
+
/** Color palette applied to datasets that don't specify their own colors. */
|
|
13
|
+
colors?: string[];
|
|
14
|
+
/** Container height in px. Default: 300. */
|
|
15
|
+
height?: number;
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
declare const LineChart: React.FC<LineChartProps>;
|
|
19
|
+
export default LineChart;
|
|
20
|
+
//# sourceMappingURL=LineChart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineChart.d.ts","sourceRoot":"","sources":["../../../src/components/charts/LineChart.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,EAAa,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOtE,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG;IAClE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB,CAAC;AAEF,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnE,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,0CAA0C;IAC1C,OAAO,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IAC/B,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkCvC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|