@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.
Files changed (188) hide show
  1. package/dist/components/Forms/ColorPickerInput.d.ts +10 -0
  2. package/dist/components/Forms/ColorPickerInput.d.ts.map +1 -0
  3. package/dist/components/Forms/ColorPickerInput.js +13 -0
  4. package/dist/components/Forms/ColorPickerInput.js.map +1 -0
  5. package/dist/components/Forms/Combobox.d.ts +10 -0
  6. package/dist/components/Forms/Combobox.d.ts.map +1 -0
  7. package/dist/components/Forms/Combobox.js +11 -0
  8. package/dist/components/Forms/Combobox.js.map +1 -0
  9. package/dist/components/Forms/CurrencyInput.d.ts +12 -0
  10. package/dist/components/Forms/CurrencyInput.d.ts.map +1 -0
  11. package/dist/components/Forms/CurrencyInput.js +9 -0
  12. package/dist/components/Forms/CurrencyInput.js.map +1 -0
  13. package/dist/components/Forms/DatePresets.d.ts +14 -0
  14. package/dist/components/Forms/DatePresets.d.ts.map +1 -0
  15. package/dist/components/Forms/DatePresets.js +55 -0
  16. package/dist/components/Forms/DatePresets.js.map +1 -0
  17. package/dist/components/Forms/DateRangeInput.d.ts +10 -0
  18. package/dist/components/Forms/DateRangeInput.d.ts.map +1 -0
  19. package/dist/components/Forms/DateRangeInput.js +13 -0
  20. package/dist/components/Forms/DateRangeInput.js.map +1 -0
  21. package/dist/components/Forms/FormWizard.d.ts +17 -0
  22. package/dist/components/Forms/FormWizard.d.ts.map +1 -0
  23. package/dist/components/Forms/FormWizard.js +63 -0
  24. package/dist/components/Forms/FormWizard.js.map +1 -0
  25. package/dist/components/Forms/OtpInput.d.ts +11 -0
  26. package/dist/components/Forms/OtpInput.d.ts.map +1 -0
  27. package/dist/components/Forms/OtpInput.js +11 -0
  28. package/dist/components/Forms/OtpInput.js.map +1 -0
  29. package/dist/components/Forms/PasswordInput.d.ts +12 -0
  30. package/dist/components/Forms/PasswordInput.d.ts.map +1 -0
  31. package/dist/components/Forms/PasswordInput.js +31 -0
  32. package/dist/components/Forms/PasswordInput.js.map +1 -0
  33. package/dist/components/Forms/PhoneInput.d.ts +11 -0
  34. package/dist/components/Forms/PhoneInput.d.ts.map +1 -0
  35. package/dist/components/Forms/PhoneInput.js +9 -0
  36. package/dist/components/Forms/PhoneInput.js.map +1 -0
  37. package/dist/components/Forms/RadioGroup.d.ts +15 -0
  38. package/dist/components/Forms/RadioGroup.d.ts.map +1 -0
  39. package/dist/components/Forms/RadioGroup.js +9 -0
  40. package/dist/components/Forms/RadioGroup.js.map +1 -0
  41. package/dist/components/Forms/RangeSlider.d.ts +13 -0
  42. package/dist/components/Forms/RangeSlider.d.ts.map +1 -0
  43. package/dist/components/Forms/RangeSlider.js +9 -0
  44. package/dist/components/Forms/RangeSlider.js.map +1 -0
  45. package/dist/components/Forms/RatingInput.d.ts +11 -0
  46. package/dist/components/Forms/RatingInput.d.ts.map +1 -0
  47. package/dist/components/Forms/RatingInput.js +11 -0
  48. package/dist/components/Forms/RatingInput.js.map +1 -0
  49. package/dist/components/Forms/SearchInput.d.ts +14 -0
  50. package/dist/components/Forms/SearchInput.d.ts.map +1 -0
  51. package/dist/components/Forms/SearchInput.js +34 -0
  52. package/dist/components/Forms/SearchInput.js.map +1 -0
  53. package/dist/components/Forms/TagsInput.d.ts +10 -0
  54. package/dist/components/Forms/TagsInput.d.ts.map +1 -0
  55. package/dist/components/Forms/TagsInput.js +11 -0
  56. package/dist/components/Forms/TagsInput.js.map +1 -0
  57. package/dist/components/auth/ChangePasswordForm.d.ts +16 -0
  58. package/dist/components/auth/ChangePasswordForm.d.ts.map +1 -0
  59. package/dist/components/auth/ChangePasswordForm.js +23 -0
  60. package/dist/components/auth/ChangePasswordForm.js.map +1 -0
  61. package/dist/components/auth/ForgotPasswordForm.d.ts +15 -0
  62. package/dist/components/auth/ForgotPasswordForm.d.ts.map +1 -0
  63. package/dist/components/auth/ForgotPasswordForm.js +14 -0
  64. package/dist/components/auth/ForgotPasswordForm.js.map +1 -0
  65. package/dist/components/auth/LoginForm.d.ts +22 -0
  66. package/dist/components/auth/LoginForm.d.ts.map +1 -0
  67. package/dist/components/auth/LoginForm.js +20 -0
  68. package/dist/components/auth/LoginForm.js.map +1 -0
  69. package/dist/components/auth/ResetPasswordForm.d.ts +16 -0
  70. package/dist/components/auth/ResetPasswordForm.d.ts.map +1 -0
  71. package/dist/components/auth/ResetPasswordForm.js +23 -0
  72. package/dist/components/auth/ResetPasswordForm.js.map +1 -0
  73. package/dist/components/auth/UserMenu.d.ts +22 -0
  74. package/dist/components/auth/UserMenu.d.ts.map +1 -0
  75. package/dist/components/auth/UserMenu.js +95 -0
  76. package/dist/components/auth/UserMenu.js.map +1 -0
  77. package/dist/components/auth/index.d.ts +11 -0
  78. package/dist/components/auth/index.d.ts.map +1 -0
  79. package/dist/components/auth/index.js +6 -0
  80. package/dist/components/auth/index.js.map +1 -0
  81. package/dist/components/charts/BarChart.d.ts +20 -0
  82. package/dist/components/charts/BarChart.d.ts.map +1 -0
  83. package/dist/components/charts/BarChart.js +28 -0
  84. package/dist/components/charts/BarChart.js.map +1 -0
  85. package/dist/components/charts/DonutChart.d.ts +21 -0
  86. package/dist/components/charts/DonutChart.d.ts.map +1 -0
  87. package/dist/components/charts/DonutChart.js +26 -0
  88. package/dist/components/charts/DonutChart.js.map +1 -0
  89. package/dist/components/charts/LineChart.d.ts +20 -0
  90. package/dist/components/charts/LineChart.d.ts.map +1 -0
  91. package/dist/components/charts/LineChart.js +27 -0
  92. package/dist/components/charts/LineChart.js.map +1 -0
  93. package/dist/components/charts/chart-setup.d.ts +3 -0
  94. package/dist/components/charts/chart-setup.d.ts.map +1 -0
  95. package/dist/components/charts/chart-setup.js +10 -0
  96. package/dist/components/charts/chart-setup.js.map +1 -0
  97. package/dist/components/charts/defaults.d.ts +13 -0
  98. package/dist/components/charts/defaults.d.ts.map +1 -0
  99. package/dist/components/charts/defaults.js +54 -0
  100. package/dist/components/charts/defaults.js.map +1 -0
  101. package/dist/components/charts/index.d.ts +9 -0
  102. package/dist/components/charts/index.d.ts.map +1 -0
  103. package/dist/components/charts/index.js +6 -0
  104. package/dist/components/charts/index.js.map +1 -0
  105. package/dist/components/data/DescriptionList.d.ts +11 -0
  106. package/dist/components/data/DescriptionList.d.ts.map +1 -0
  107. package/dist/components/data/DescriptionList.js +23 -0
  108. package/dist/components/data/DescriptionList.js.map +1 -0
  109. package/dist/components/data/StatCard.d.ts +14 -0
  110. package/dist/components/data/StatCard.d.ts.map +1 -0
  111. package/dist/components/data/StatCard.js +39 -0
  112. package/dist/components/data/StatCard.js.map +1 -0
  113. package/dist/components/data/Timeline.d.ts +15 -0
  114. package/dist/components/data/Timeline.d.ts.map +1 -0
  115. package/dist/components/data/Timeline.js +20 -0
  116. package/dist/components/data/Timeline.js.map +1 -0
  117. package/dist/components/feedback/Avatar.d.ts +9 -0
  118. package/dist/components/feedback/Avatar.d.ts.map +1 -0
  119. package/dist/components/feedback/Avatar.js +15 -0
  120. package/dist/components/feedback/Avatar.js.map +1 -0
  121. package/dist/components/feedback/CardSkeleton.d.ts +6 -0
  122. package/dist/components/feedback/CardSkeleton.d.ts.map +1 -0
  123. package/dist/components/feedback/CardSkeleton.js +7 -0
  124. package/dist/components/feedback/CardSkeleton.js.map +1 -0
  125. package/dist/components/feedback/EmptyState.d.ts +9 -0
  126. package/dist/components/feedback/EmptyState.d.ts.map +1 -0
  127. package/dist/components/feedback/EmptyState.js +6 -0
  128. package/dist/components/feedback/EmptyState.js.map +1 -0
  129. package/dist/components/feedback/ErrorBoundary.d.ts +18 -0
  130. package/dist/components/feedback/ErrorBoundary.d.ts.map +1 -0
  131. package/dist/components/feedback/ErrorBoundary.js +24 -0
  132. package/dist/components/feedback/ErrorBoundary.js.map +1 -0
  133. package/dist/components/feedback/TableSkeleton.d.ts +7 -0
  134. package/dist/components/feedback/TableSkeleton.d.ts.map +1 -0
  135. package/dist/components/feedback/TableSkeleton.js +7 -0
  136. package/dist/components/feedback/TableSkeleton.js.map +1 -0
  137. package/dist/components/feedback/Tag.d.ts +6 -0
  138. package/dist/components/feedback/Tag.d.ts.map +1 -0
  139. package/dist/components/feedback/Tag.js +7 -0
  140. package/dist/components/feedback/Tag.js.map +1 -0
  141. package/dist/components/navigation/CommandPalette.d.ts +17 -0
  142. package/dist/components/navigation/CommandPalette.d.ts.map +1 -0
  143. package/dist/components/navigation/CommandPalette.js +73 -0
  144. package/dist/components/navigation/CommandPalette.js.map +1 -0
  145. package/dist/components/navigation/PageTabs.d.ts +14 -0
  146. package/dist/components/navigation/PageTabs.d.ts.map +1 -0
  147. package/dist/components/navigation/PageTabs.js +21 -0
  148. package/dist/components/navigation/PageTabs.js.map +1 -0
  149. package/dist/components/overlays/Drawer.d.ts +6 -0
  150. package/dist/components/overlays/Drawer.d.ts.map +1 -0
  151. package/dist/components/overlays/Drawer.js +8 -0
  152. package/dist/components/overlays/Drawer.js.map +1 -0
  153. package/dist/components/overlays/Modal.d.ts +6 -0
  154. package/dist/components/overlays/Modal.d.ts.map +1 -0
  155. package/dist/components/overlays/Modal.js +8 -0
  156. package/dist/components/overlays/Modal.js.map +1 -0
  157. package/dist/components/pages/AdminPageHeader.d.ts.map +1 -1
  158. package/dist/components/pages/AdminPageHeader.js +2 -9
  159. package/dist/components/pages/AdminPageHeader.js.map +1 -1
  160. package/dist/components/pages/app-shell/AppShell.d.ts +5 -0
  161. package/dist/components/pages/app-shell/AppShell.d.ts.map +1 -0
  162. package/dist/components/pages/app-shell/AppShell.js +38 -0
  163. package/dist/components/pages/app-shell/AppShell.js.map +1 -0
  164. package/dist/components/pages/app-shell/Breadcrumbs.d.ts +8 -0
  165. package/dist/components/pages/app-shell/Breadcrumbs.d.ts.map +1 -0
  166. package/dist/components/pages/app-shell/Breadcrumbs.js +17 -0
  167. package/dist/components/pages/app-shell/Breadcrumbs.js.map +1 -0
  168. package/dist/components/pages/app-shell/index.d.ts +4 -0
  169. package/dist/components/pages/app-shell/index.d.ts.map +1 -0
  170. package/dist/components/pages/app-shell/index.js +3 -0
  171. package/dist/components/pages/app-shell/index.js.map +1 -0
  172. package/dist/components/pages/app-shell/types.d.ts +24 -0
  173. package/dist/components/pages/app-shell/types.d.ts.map +1 -0
  174. package/dist/components/pages/app-shell/types.js +2 -0
  175. package/dist/components/pages/app-shell/types.js.map +1 -0
  176. package/dist/validation/index.d.ts +2 -0
  177. package/dist/validation/index.d.ts.map +1 -0
  178. package/dist/validation/index.js +3 -0
  179. package/dist/validation/index.js.map +1 -0
  180. package/dist/validation/rules.d.ts +10 -0
  181. package/dist/validation/rules.d.ts.map +1 -0
  182. package/dist/validation/rules.js +39 -0
  183. package/dist/validation/rules.js.map +1 -0
  184. package/dist/validation/zod.d.ts +2 -0
  185. package/dist/validation/zod.d.ts.map +1 -0
  186. package/dist/validation/zod.js +3 -0
  187. package/dist/validation/zod.js.map +1 -0
  188. 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"}