@mantis-core/ui 0.1.1

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 (167) hide show
  1. package/COMPONENTS.md +147 -0
  2. package/README.md +120 -0
  3. package/dist/components/Buttons/Button.d.ts +19 -0
  4. package/dist/components/Buttons/Button.d.ts.map +1 -0
  5. package/dist/components/Buttons/Button.js +27 -0
  6. package/dist/components/Buttons/Button.js.map +1 -0
  7. package/dist/components/Forms/CKEditorInput.d.ts +32 -0
  8. package/dist/components/Forms/CKEditorInput.d.ts.map +1 -0
  9. package/dist/components/Forms/CKEditorInput.js +357 -0
  10. package/dist/components/Forms/CKEditorInput.js.map +1 -0
  11. package/dist/components/Forms/DateInput.d.ts +10 -0
  12. package/dist/components/Forms/DateInput.d.ts.map +1 -0
  13. package/dist/components/Forms/DateInput.js +11 -0
  14. package/dist/components/Forms/DateInput.js.map +1 -0
  15. package/dist/components/Forms/DropDown.d.ts +10 -0
  16. package/dist/components/Forms/DropDown.d.ts.map +1 -0
  17. package/dist/components/Forms/DropDown.js +11 -0
  18. package/dist/components/Forms/DropDown.js.map +1 -0
  19. package/dist/components/Forms/ErrorMessage.d.ts +6 -0
  20. package/dist/components/Forms/ErrorMessage.d.ts.map +1 -0
  21. package/dist/components/Forms/ErrorMessage.js +14 -0
  22. package/dist/components/Forms/ErrorMessage.js.map +1 -0
  23. package/dist/components/Forms/FormFieldRender.d.ts +13 -0
  24. package/dist/components/Forms/FormFieldRender.d.ts.map +1 -0
  25. package/dist/components/Forms/FormFieldRender.js +9 -0
  26. package/dist/components/Forms/FormFieldRender.js.map +1 -0
  27. package/dist/components/Forms/HiddenField.d.ts +8 -0
  28. package/dist/components/Forms/HiddenField.d.ts.map +1 -0
  29. package/dist/components/Forms/HiddenField.js +8 -0
  30. package/dist/components/Forms/HiddenField.js.map +1 -0
  31. package/dist/components/Forms/MultiSelect.d.ts +10 -0
  32. package/dist/components/Forms/MultiSelect.d.ts.map +1 -0
  33. package/dist/components/Forms/MultiSelect.js +13 -0
  34. package/dist/components/Forms/MultiSelect.js.map +1 -0
  35. package/dist/components/Forms/NumberInput.d.ts +10 -0
  36. package/dist/components/Forms/NumberInput.d.ts.map +1 -0
  37. package/dist/components/Forms/NumberInput.js +16 -0
  38. package/dist/components/Forms/NumberInput.js.map +1 -0
  39. package/dist/components/Forms/RenderField.d.ts +18 -0
  40. package/dist/components/Forms/RenderField.d.ts.map +1 -0
  41. package/dist/components/Forms/RenderField.js +14 -0
  42. package/dist/components/Forms/RenderField.js.map +1 -0
  43. package/dist/components/Forms/Select.d.ts +12 -0
  44. package/dist/components/Forms/Select.d.ts.map +1 -0
  45. package/dist/components/Forms/Select.js +39 -0
  46. package/dist/components/Forms/Select.js.map +1 -0
  47. package/dist/components/Forms/Switch.d.ts +18 -0
  48. package/dist/components/Forms/Switch.d.ts.map +1 -0
  49. package/dist/components/Forms/Switch.js +30 -0
  50. package/dist/components/Forms/Switch.js.map +1 -0
  51. package/dist/components/Forms/TextArea.d.ts +11 -0
  52. package/dist/components/Forms/TextArea.d.ts.map +1 -0
  53. package/dist/components/Forms/TextArea.js +11 -0
  54. package/dist/components/Forms/TextArea.js.map +1 -0
  55. package/dist/components/Forms/TextInput.d.ts +11 -0
  56. package/dist/components/Forms/TextInput.d.ts.map +1 -0
  57. package/dist/components/Forms/TextInput.js +12 -0
  58. package/dist/components/Forms/TextInput.js.map +1 -0
  59. package/dist/components/Forms/TimePicker.d.ts +13 -0
  60. package/dist/components/Forms/TimePicker.d.ts.map +1 -0
  61. package/dist/components/Forms/TimePicker.js +19 -0
  62. package/dist/components/Forms/TimePicker.js.map +1 -0
  63. package/dist/components/Forms/Toggle.d.ts +14 -0
  64. package/dist/components/Forms/Toggle.d.ts.map +1 -0
  65. package/dist/components/Forms/Toggle.js +10 -0
  66. package/dist/components/Forms/Toggle.js.map +1 -0
  67. package/dist/components/Forms/ToggleInlineButton.d.ts +14 -0
  68. package/dist/components/Forms/ToggleInlineButton.d.ts.map +1 -0
  69. package/dist/components/Forms/ToggleInlineButton.js +9 -0
  70. package/dist/components/Forms/ToggleInlineButton.js.map +1 -0
  71. package/dist/components/Forms/UploadFilesPreview.d.ts +30 -0
  72. package/dist/components/Forms/UploadFilesPreview.d.ts.map +1 -0
  73. package/dist/components/Forms/UploadFilesPreview.js +118 -0
  74. package/dist/components/Forms/UploadFilesPreview.js.map +1 -0
  75. package/dist/components/Forms/types.d.ts +9 -0
  76. package/dist/components/Forms/types.d.ts.map +1 -0
  77. package/dist/components/Forms/types.js +2 -0
  78. package/dist/components/Forms/types.js.map +1 -0
  79. package/dist/components/Loaders/Loading.d.ts +9 -0
  80. package/dist/components/Loaders/Loading.d.ts.map +1 -0
  81. package/dist/components/Loaders/Loading.js +11 -0
  82. package/dist/components/Loaders/Loading.js.map +1 -0
  83. package/dist/components/Maps/MapPicker.d.ts +7 -0
  84. package/dist/components/Maps/MapPicker.d.ts.map +1 -0
  85. package/dist/components/Maps/MapPicker.js +10 -0
  86. package/dist/components/Maps/MapPicker.js.map +1 -0
  87. package/dist/components/Maps/MapPickerClient.d.ts +8 -0
  88. package/dist/components/Maps/MapPickerClient.d.ts.map +1 -0
  89. package/dist/components/Maps/MapPickerClient.js +83 -0
  90. package/dist/components/Maps/MapPickerClient.js.map +1 -0
  91. package/dist/components/Maps/MapPickerOSM.d.ts +13 -0
  92. package/dist/components/Maps/MapPickerOSM.d.ts.map +1 -0
  93. package/dist/components/Maps/MapPickerOSM.js +117 -0
  94. package/dist/components/Maps/MapPickerOSM.js.map +1 -0
  95. package/dist/components/Tables/ActionColumn.d.ts +9 -0
  96. package/dist/components/Tables/ActionColumn.d.ts.map +1 -0
  97. package/dist/components/Tables/ActionColumn.js +8 -0
  98. package/dist/components/Tables/ActionColumn.js.map +1 -0
  99. package/dist/components/Tables/FilterPannel.d.ts +7 -0
  100. package/dist/components/Tables/FilterPannel.d.ts.map +1 -0
  101. package/dist/components/Tables/FilterPannel.js +32 -0
  102. package/dist/components/Tables/FilterPannel.js.map +1 -0
  103. package/dist/components/Tables/IndexColumn.d.ts +4 -0
  104. package/dist/components/Tables/IndexColumn.d.ts.map +1 -0
  105. package/dist/components/Tables/IndexColumn.js +7 -0
  106. package/dist/components/Tables/IndexColumn.js.map +1 -0
  107. package/dist/components/Tables/MenuButton.d.ts +14 -0
  108. package/dist/components/Tables/MenuButton.d.ts.map +1 -0
  109. package/dist/components/Tables/MenuButton.js +15 -0
  110. package/dist/components/Tables/MenuButton.js.map +1 -0
  111. package/dist/components/Tables/PaginatedTable.d.ts +23 -0
  112. package/dist/components/Tables/PaginatedTable.d.ts.map +1 -0
  113. package/dist/components/Tables/PaginatedTable.js +26 -0
  114. package/dist/components/Tables/PaginatedTable.js.map +1 -0
  115. package/dist/components/Tables/filters/MultiSelectFilter.d.ts +8 -0
  116. package/dist/components/Tables/filters/MultiSelectFilter.d.ts.map +1 -0
  117. package/dist/components/Tables/filters/MultiSelectFilter.js +7 -0
  118. package/dist/components/Tables/filters/MultiSelectFilter.js.map +1 -0
  119. package/dist/components/pages/AdminPageHeader.d.ts +11 -0
  120. package/dist/components/pages/AdminPageHeader.d.ts.map +1 -0
  121. package/dist/components/pages/AdminPageHeader.js +19 -0
  122. package/dist/components/pages/AdminPageHeader.js.map +1 -0
  123. package/dist/components/pages/FormSection.d.ts +11 -0
  124. package/dist/components/pages/FormSection.d.ts.map +1 -0
  125. package/dist/components/pages/FormSection.js +16 -0
  126. package/dist/components/pages/FormSection.js.map +1 -0
  127. package/dist/components/pages/PageTitle.d.ts +4 -0
  128. package/dist/components/pages/PageTitle.d.ts.map +1 -0
  129. package/dist/components/pages/PageTitle.js +6 -0
  130. package/dist/components/pages/PageTitle.js.map +1 -0
  131. package/dist/components/pages/admin-layout/AdminPageConfigurator.d.ts +9 -0
  132. package/dist/components/pages/admin-layout/AdminPageConfigurator.d.ts.map +1 -0
  133. package/dist/components/pages/admin-layout/AdminPageConfigurator.js +13 -0
  134. package/dist/components/pages/admin-layout/AdminPageConfigurator.js.map +1 -0
  135. package/dist/components/pages/admin-layout/AdminPageLayoutContext.d.ts +14 -0
  136. package/dist/components/pages/admin-layout/AdminPageLayoutContext.d.ts.map +1 -0
  137. package/dist/components/pages/admin-layout/AdminPageLayoutContext.js +27 -0
  138. package/dist/components/pages/admin-layout/AdminPageLayoutContext.js.map +1 -0
  139. package/dist/components/pages/admin-layout/AdminPageLayoutShell.d.ts +7 -0
  140. package/dist/components/pages/admin-layout/AdminPageLayoutShell.d.ts.map +1 -0
  141. package/dist/components/pages/admin-layout/AdminPageLayoutShell.js +11 -0
  142. package/dist/components/pages/admin-layout/AdminPageLayoutShell.js.map +1 -0
  143. package/dist/components/pages/admin-layout/types.d.ts +13 -0
  144. package/dist/components/pages/admin-layout/types.d.ts.map +1 -0
  145. package/dist/components/pages/admin-layout/types.js +2 -0
  146. package/dist/components/pages/admin-layout/types.js.map +1 -0
  147. package/dist/components/table-filter-field.d.ts +11 -0
  148. package/dist/components/table-filter-field.d.ts.map +1 -0
  149. package/dist/components/table-filter-field.js +7 -0
  150. package/dist/components/table-filter-field.js.map +1 -0
  151. package/dist/components/table-toolbar.d.ts +13 -0
  152. package/dist/components/table-toolbar.d.ts.map +1 -0
  153. package/dist/components/table-toolbar.js +9 -0
  154. package/dist/components/table-toolbar.js.map +1 -0
  155. package/dist/components/ui/Pagination.d.ts +37 -0
  156. package/dist/components/ui/Pagination.d.ts.map +1 -0
  157. package/dist/components/ui/Pagination.js +42 -0
  158. package/dist/components/ui/Pagination.js.map +1 -0
  159. package/dist/components/ui/RichTextPreview.d.ts +12 -0
  160. package/dist/components/ui/RichTextPreview.d.ts.map +1 -0
  161. package/dist/components/ui/RichTextPreview.js +17 -0
  162. package/dist/components/ui/RichTextPreview.js.map +1 -0
  163. package/dist/index.d.ts +69 -0
  164. package/dist/index.d.ts.map +1 -0
  165. package/dist/index.js +39 -0
  166. package/dist/index.js.map +1 -0
  167. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPicker.js","sourceRoot":"","sources":["../../../src/components/Maps/MapPicker.tsx"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAQnC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE;IACjE,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,GAAG,EAAE,CAAC,yCAAqB;CACrC,CAAC,CAAC;AAEH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,KAAqB;IACrD,OAAO,KAAC,eAAe,OAAK,KAAK,GAAI,CAAC;AACxC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import "leaflet/dist/leaflet.css";
2
+ export interface MapPickerClientProps {
3
+ onLocationSelect: (lat: number, lng: number) => void;
4
+ initialLat?: number | null;
5
+ initialLng?: number | null;
6
+ }
7
+ export default function MapPickerClient({ onLocationSelect, initialLat, initialLng, }: MapPickerClientProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=MapPickerClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPickerClient.d.ts","sourceRoot":"","sources":["../../../src/components/Maps/MapPickerClient.tsx"],"names":[],"mappings":"AAGA,OAAO,0BAA0B,CAAC;AAclC,MAAM,WAAW,oBAAoB;IACnC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAqBD,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,gBAAgB,EAChB,UAA8B,EAC9B,UAA8B,GAC/B,EAAE,oBAAoB,2CA6BtB"}
@@ -0,0 +1,83 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import L from "leaflet";
4
+ import "leaflet/dist/leaflet.css";
5
+ import { useEffect, useMemo, useState } from "react";
6
+ import { MapContainer, Marker, TileLayer, useMap, useMapEvents } from "react-leaflet";
7
+ const DEFAULT_CENTER = [-3.262623, -79.280329];
8
+ const defaultIcon = L.icon({
9
+ iconRetinaUrl: "/leaflet/marker-icon-2x.png",
10
+ iconUrl: "/leaflet/marker-icon.png",
11
+ shadowUrl: "/leaflet/marker-shadow.png",
12
+ iconSize: [25, 41],
13
+ iconAnchor: [12, 41],
14
+ });
15
+ function LocationMarker({ onLocationSelect, initialLat, initialLng }) {
16
+ const [internalPosition, setInternalPosition] = useState(initialLat != null && initialLng != null ? [initialLat, initialLng] : null);
17
+ const controlledPosition = initialLat != null && initialLng != null ? [initialLat, initialLng] : null;
18
+ const position = controlledPosition ?? internalPosition;
19
+ useMapEvents({
20
+ click(e) {
21
+ const { lat, lng } = e.latlng;
22
+ setInternalPosition([lat, lng]);
23
+ onLocationSelect(lat, lng);
24
+ },
25
+ });
26
+ return position ? _jsx(Marker, { position: position, icon: defaultIcon }) : null;
27
+ }
28
+ export default function MapPickerClient({ onLocationSelect, initialLat = DEFAULT_CENTER[0], initialLng = DEFAULT_CENTER[1], }) {
29
+ const center = useMemo(() => [initialLat ?? DEFAULT_CENTER[0], initialLng ?? DEFAULT_CENTER[1]], [initialLat, initialLng]);
30
+ return (_jsx("div", { className: 'w-full', style: { height: "clamp(300px, 50vh, 600px)", position: "relative", zIndex: 0 }, children: _jsxs(MapContainer, { className: 'w-full h-full', center: center, zoom: 15, scrollWheelZoom: false, style: { height: "100%", width: "100%" }, children: [_jsx(TileLayer, { url: 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', attribution: '\u00A9 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>', noWrap: true }), _jsx(LocationMarker, { onLocationSelect: onLocationSelect, initialLat: initialLat, initialLng: initialLng }), _jsx(MapResizeListener, {}), _jsx(MapCenterUpdater, { center: center })] }) }));
31
+ }
32
+ function MapResizeListener() {
33
+ const map = useMap();
34
+ useEffect(() => {
35
+ const safeInvalidate = () => {
36
+ try {
37
+ const container = map.getContainer();
38
+ if (!container?.isConnected)
39
+ return;
40
+ map.invalidateSize({ pan: false });
41
+ }
42
+ catch {
43
+ // Ignore transient unmount errors during route transitions
44
+ }
45
+ };
46
+ const scheduleInvalidate = () => {
47
+ if (frameId != null) {
48
+ window.cancelAnimationFrame(frameId);
49
+ }
50
+ frameId = window.requestAnimationFrame(() => {
51
+ frameId = null;
52
+ safeInvalidate();
53
+ });
54
+ };
55
+ let frameId = null;
56
+ const timeoutId = window.setTimeout(scheduleInvalidate, 100);
57
+ const observer = typeof ResizeObserver !== "undefined"
58
+ ? new ResizeObserver(() => scheduleInvalidate())
59
+ : null;
60
+ observer?.observe(map.getContainer());
61
+ window.addEventListener("resize", scheduleInvalidate);
62
+ return () => {
63
+ window.removeEventListener("resize", scheduleInvalidate);
64
+ window.clearTimeout(timeoutId);
65
+ observer?.disconnect();
66
+ if (frameId != null) {
67
+ window.cancelAnimationFrame(frameId);
68
+ }
69
+ };
70
+ }, [map]);
71
+ return null;
72
+ }
73
+ function MapCenterUpdater({ center }) {
74
+ const map = useMap();
75
+ useEffect(() => {
76
+ const nextCenter = L.latLng(center);
77
+ if (!map.getCenter().equals(nextCenter)) {
78
+ map.setView(nextCenter, map.getZoom());
79
+ }
80
+ }, [map, center]);
81
+ return null;
82
+ }
83
+ //# sourceMappingURL=MapPickerClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPickerClient.js","sourceRoot":"","sources":["../../../src/components/Maps/MapPickerClient.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type LatLng = {
2
+ lat: number;
3
+ lng: number;
4
+ };
5
+ export interface MapPickerOSMProps {
6
+ initialPosition?: LatLng;
7
+ zoom?: number;
8
+ height?: string;
9
+ onChange?: (pos: LatLng) => void;
10
+ onSave?: (pos: LatLng) => void;
11
+ }
12
+ export default function MapPickerOSM({ initialPosition, zoom, height, onChange, onSave, }: MapPickerOSMProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=MapPickerOSM.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPickerOSM.d.ts","sourceRoot":"","sources":["../../../src/components/Maps/MapPickerOSM.tsx"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAmCD,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,eAAkD,EAClD,IAAS,EACT,MAAgB,EAChB,QAAQ,EACR,MAAM,GACP,EAAE,iBAAiB,2CAqHnB"}
@@ -0,0 +1,117 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState } from "react";
4
+ const loadLeaflet = () => {
5
+ return new Promise((resolve, reject) => {
6
+ if (typeof window === "undefined")
7
+ return reject(new Error("No browser environment"));
8
+ const anyWin = window;
9
+ if (anyWin.L && anyWin.L.map)
10
+ return resolve();
11
+ if (!document.querySelector("link[data-leaflet-css]")) {
12
+ const link = document.createElement("link");
13
+ link.rel = "stylesheet";
14
+ link.href = "https://unpkg.com/leaflet@1.9.4/dist/leaflet.css";
15
+ link.crossOrigin = "";
16
+ link.setAttribute("data-leaflet-css", "true");
17
+ document.head.appendChild(link);
18
+ }
19
+ const existing = document.querySelector("script[data-leaflet]");
20
+ if (existing) {
21
+ existing.addEventListener("load", () => resolve());
22
+ existing.addEventListener("error", () => reject(new Error("Error loading Leaflet script")));
23
+ return;
24
+ }
25
+ const script = document.createElement("script");
26
+ script.src = "https://unpkg.com/leaflet@1.9.4/dist/leaflet.js";
27
+ script.async = true;
28
+ script.defer = true;
29
+ script.setAttribute("data-leaflet", "true");
30
+ script.onload = () => resolve();
31
+ script.onerror = () => reject(new Error("Error loading Leaflet script"));
32
+ document.body.appendChild(script);
33
+ });
34
+ };
35
+ export default function MapPickerOSM({ initialPosition = { lat: -12.0464, lng: -77.0428 }, zoom = 12, height = "400px", onChange, onSave, }) {
36
+ const containerRef = useRef(null);
37
+ const mapRef = useRef(null);
38
+ const markerRef = useRef(null);
39
+ const [pos, setPos] = useState(initialPosition || null);
40
+ const [loading, setLoading] = useState(true);
41
+ const [error, setError] = useState(null);
42
+ useEffect(() => {
43
+ let mounted = true;
44
+ loadLeaflet()
45
+ .then(() => {
46
+ if (!mounted)
47
+ return;
48
+ const anyWin = window;
49
+ const L = anyWin.L;
50
+ if (!L) {
51
+ setError("Leaflet no disponible después de cargar el script.");
52
+ setLoading(false);
53
+ return;
54
+ }
55
+ if (!containerRef.current) {
56
+ setError("Contenedor del mapa no está disponible");
57
+ setLoading(false);
58
+ return;
59
+ }
60
+ const DefaultIcon = L.icon({
61
+ iconUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon.png",
62
+ iconRetinaUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-icon-2x.png",
63
+ shadowUrl: "https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png",
64
+ iconSize: [25, 41],
65
+ iconAnchor: [12, 41],
66
+ popupAnchor: [1, -34],
67
+ shadowSize: [41, 41],
68
+ });
69
+ L.Marker.prototype.options.icon = DefaultIcon;
70
+ mapRef.current = L.map(containerRef.current).setView([initialPosition.lat, initialPosition.lng], zoom);
71
+ L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
72
+ attribution: "&copy; OpenStreetMap contributors",
73
+ }).addTo(mapRef.current);
74
+ markerRef.current = L.marker([initialPosition.lat, initialPosition.lng], {
75
+ draggable: true,
76
+ }).addTo(mapRef.current);
77
+ mapRef.current.on("click", (e) => {
78
+ const latlng = e.latlng;
79
+ markerRef.current.setLatLng(latlng);
80
+ const newPos = { lat: latlng.lat, lng: latlng.lng };
81
+ setPos(newPos);
82
+ onChange?.(newPos);
83
+ });
84
+ markerRef.current.on("dragend", () => {
85
+ const latlng = markerRef.current.getLatLng();
86
+ const newPos = { lat: latlng.lat, lng: latlng.lng };
87
+ setPos(newPos);
88
+ onChange?.(newPos);
89
+ });
90
+ setPos(initialPosition);
91
+ setLoading(false);
92
+ })
93
+ .catch((err) => {
94
+ setError(err.message || String(err));
95
+ setLoading(false);
96
+ });
97
+ return () => {
98
+ mounted = false;
99
+ try {
100
+ const anyWin = window;
101
+ if (anyWin.L && mapRef.current) {
102
+ mapRef.current.remove();
103
+ }
104
+ }
105
+ catch {
106
+ // ignore
107
+ }
108
+ };
109
+ }, [initialPosition, zoom, onChange]);
110
+ const handleSave = () => {
111
+ if (!pos)
112
+ return;
113
+ onSave?.(pos);
114
+ };
115
+ return (_jsxs("div", { children: [_jsx("div", { ref: containerRef, style: { height, width: "100%" }, className: 'rounded-md overflow-hidden' }), loading && (_jsx("div", { className: 'mt-2 text-sm text-slate-500', children: "Cargando mapa (OpenStreetMap)..." })), error && _jsxs("div", { className: 'mt-2 text-sm text-error', children: ["Error cargando mapa: ", error] }), _jsxs("div", { className: 'mt-2 flex items-center gap-4', children: [_jsxs("div", { className: 'text-sm', children: [_jsx("strong", { children: "Lat:" }), " ", pos?.lat?.toFixed(6) ?? "-", " ", _jsx("strong", { children: "Lng:" }), " ", pos?.lng?.toFixed(6) ?? "-"] }), _jsx("button", { type: 'button', onClick: handleSave, className: 'px-3 py-1 rounded bg-primary-600 text-white text-sm', children: "Guardar ubicaci\u00F3n" })] })] }));
116
+ }
117
+ //# sourceMappingURL=MapPickerOSM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapPickerOSM.js","sourceRoot":"","sources":["../../../src/components/Maps/MapPickerOSM.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { ColumnProps } from "primereact/column";
2
+ import { type ActionMenuItem } from "./MenuButton";
3
+ export interface ActionColumnProps extends ColumnProps {
4
+ label?: string;
5
+ icon?: string;
6
+ }
7
+ declare function ActionColumn<TRow = unknown>(items: (rowData: TRow) => ActionMenuItem[], { label, icon, ...rest }?: ActionColumnProps): import("react/jsx-runtime").JSX.Element;
8
+ export default ActionColumn;
9
+ //# sourceMappingURL=ActionColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionColumn.d.ts","sourceRoot":"","sources":["../../../src/components/Tables/ActionColumn.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAmB,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAE/D,MAAM,WAAW,iBAAkB,SAAQ,WAAW;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iBAAS,YAAY,CAAC,IAAI,GAAG,OAAO,EAClC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,cAAc,EAAE,EAC1C,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAE,iBAAsB,2CAWjD;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Column } from "primereact/column";
3
+ import ButtonMenu from "./MenuButton";
4
+ function ActionColumn(items, { label, icon, ...rest } = {}) {
5
+ return (_jsx(Column, { header: 'Acciones', bodyClassName: 'py-1 text-center', style: { width: "100px" }, ...rest, body: (rowData) => _jsx(ButtonMenu, { items: items(rowData), label: label, icon: icon }) }));
6
+ }
7
+ export default ActionColumn;
8
+ //# sourceMappingURL=ActionColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionColumn.js","sourceRoot":"","sources":["../../../src/components/Tables/ActionColumn.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,UAAmC,MAAM,cAAc,CAAC;AAO/D,SAAS,YAAY,CACnB,KAA0C,EAC1C,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,KAAwB,EAAE;IAEhD,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAC,UAAU,EACjB,aAAa,EAAC,kBAAkB,EAChC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KACrB,IAAI,EACR,IAAI,EAAE,CAAC,OAAa,EAAE,EAAE,CAAC,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,GAAI,GACxF,CACH,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { PropsWithChildren } from "react";
2
+ type FilterPannelProps<T> = PropsWithChildren<{
3
+ onApplyFilter: (data: T) => Promise<void>;
4
+ }>;
5
+ declare const FilterPannel: <T extends Record<string, any>>({ onApplyFilter, children, }: FilterPannelProps<T>) => import("react/jsx-runtime").JSX.Element;
6
+ export default FilterPannel;
7
+ //# sourceMappingURL=FilterPannel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterPannel.d.ts","sourceRoot":"","sources":["../../../src/components/Tables/FilterPannel.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAK/C,KAAK,iBAAiB,CAAC,CAAC,IAAI,iBAAiB,CAAC;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC,CAAC;AAYH,QAAA,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,8BAGlD,iBAAiB,CAAC,CAAC,CAAC,4CA8CtB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { PrimeIcons } from "primereact/api";
4
+ import { Sidebar } from "primereact/sidebar";
5
+ import { useState } from "react";
6
+ import { FormProvider, useForm } from "react-hook-form";
7
+ import Button from "../Buttons/Button";
8
+ function isEmpty(value) {
9
+ return value === "" || value === null || value === undefined;
10
+ }
11
+ function cleanFormData(data) {
12
+ return Object.fromEntries(Object.entries(data).map(([key, value]) => [key, isEmpty(value) ? null : value]));
13
+ }
14
+ const FilterPannel = ({ onApplyFilter, children, }) => {
15
+ const [isVisible, setIsVisible] = useState(false);
16
+ const filterForm = useForm({ mode: "onChange" });
17
+ const onSubmit = async (formData) => {
18
+ console.log("FILTER DATA: ", formData);
19
+ const cleanedData = cleanFormData(formData);
20
+ await onApplyFilter(cleanedData);
21
+ setIsVisible(false);
22
+ };
23
+ const onReset = async () => {
24
+ const emptyValues = Object.fromEntries(Object.keys(filterForm.getValues()).map((key) => [key, null]));
25
+ filterForm.reset(emptyValues);
26
+ await onApplyFilter({});
27
+ setIsVisible(false);
28
+ };
29
+ return (_jsxs(FormProvider, { ...filterForm, children: [_jsx(Button, { label: 'Filtrar', icon: PrimeIcons.FILTER, onClick: () => setIsVisible(true) }), _jsx(Sidebar, { style: { width: "30rem" }, position: 'right', visible: isVisible, header: _jsx("h1", { className: 'text-xl font-bold', children: "Buscar:" }), onHide: () => setIsVisible(false), children: _jsxs("div", { className: 'flex flex-col h-full', children: [_jsx("hr", { className: 'border border-bottom-1 border-gray-200 mb-5' }), _jsx("div", { className: 'flex-1 space-y-3 overflow-auto', children: children }), _jsxs("div", { className: 'mt-auto p-3', children: [_jsx("hr", { className: 'border border-bottom-1 border-gray-200 mb-5' }), _jsxs("div", { className: 'flex justify-between w-full', children: [_jsx(Button, { variant: 'info', label: 'Restaurar', onClick: onReset }), _jsx(Button, { label: 'Aplicar', onClick: filterForm.handleSubmit(onSubmit) })] })] })] }) })] }));
30
+ };
31
+ export default FilterPannel;
32
+ //# sourceMappingURL=FilterPannel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterPannel.js","sourceRoot":"","sources":["../../../src/components/Tables/FilterPannel.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { ColumnProps } from "primereact/column";
2
+ declare const IndexColumn: (props?: ColumnProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default IndexColumn;
4
+ //# sourceMappingURL=IndexColumn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexColumn.d.ts","sourceRoot":"","sources":["../../../src/components/Tables/IndexColumn.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,QAAA,MAAM,WAAW,GAAI,QAAQ,WAAW,4CASvC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Column } from "primereact/column";
3
+ const IndexColumn = (props) => {
4
+ return (_jsx(Column, { header: '#', className: 'text-center font-bold', body: (_, { rowIndex }) => rowIndex + 1, ...props }));
5
+ };
6
+ export default IndexColumn;
7
+ //# sourceMappingURL=IndexColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndexColumn.js","sourceRoot":"","sources":["../../../src/components/Tables/IndexColumn.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC1C,OAAO,CACL,KAAC,MAAM,IACL,MAAM,EAAC,GAAG,EACV,SAAS,EAAC,uBAAuB,EACjC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,GAAG,CAAC,KACnC,KAAK,GACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MenuItem } from "primereact/menuitem";
2
+ import type { FC } from "react";
3
+ export interface ActionMenuItem extends MenuItem {
4
+ route?: string | undefined;
5
+ items?: ActionMenuItem[] | ActionMenuItem[][] | undefined;
6
+ }
7
+ export interface MenuButtonProps {
8
+ label?: string;
9
+ icon?: string;
10
+ items?: ActionMenuItem[];
11
+ }
12
+ declare const MenuButton: FC<MenuButtonProps>;
13
+ export default MenuButton;
14
+ //# sourceMappingURL=MenuButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.d.ts","sourceRoot":"","sources":["../../../src/components/Tables/MenuButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,EAAE,GAAG,SAAS,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,QAAA,MAAM,UAAU,EAAE,EAAE,CAAC,eAAe,CAcnC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useRouter } from "next/navigation";
4
+ import { PrimeIcons } from "primereact/api";
5
+ import { TieredMenu } from "primereact/tieredmenu";
6
+ import { useRef } from "react";
7
+ import Button from "../Buttons/Button";
8
+ const MenuButton = ({ icon = PrimeIcons.COG, label, items = [] }) => {
9
+ const ref = useRef(null);
10
+ const router = useRouter();
11
+ const model = items.map(({ route, ...item }) => route ? { ...item, command: () => router.push(route) } : item);
12
+ return (_jsxs(_Fragment, { children: [_jsx(TieredMenu, { popup: true, id: label, ref: ref, model: model }), _jsx(Button, { label: label, icon: icon, onClick: (e) => ref.current?.toggle(e), outlined: true, sm: true })] }));
13
+ };
14
+ export default MenuButton;
15
+ //# sourceMappingURL=MenuButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuButton.js","sourceRoot":"","sources":["../../../src/components/Tables/MenuButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE/B,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAavC,MAAM,UAAU,GAAwB,CAAC,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,EAAE,EAAE;IACvF,MAAM,GAAG,GAAG,MAAM,CAAa,IAAI,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAE3B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,CAC7C,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAC9D,CAAC;IAEF,OAAO,CACL,8BACE,KAAC,UAAU,IAAC,KAAK,QAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,GAAI,EACvD,KAAC,MAAM,IAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,QAAC,EAAE,SAAG,IACvF,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { ColumnProps } from "primereact/column";
2
+ import { DataTable } from "primereact/datatable";
3
+ import type { DataTableBaseProps, DataTableValueArray } from "primereact/datatable";
4
+ import type { ReactElement, Ref } from "react";
5
+ import { type ActionColumnProps } from "./ActionColumn";
6
+ import type { ActionMenuItem } from "./MenuButton";
7
+ export type PaginatedTableProps<TValue extends DataTableValueArray> = DataTableBaseProps<TValue> & {
8
+ showIndexColumn?: boolean;
9
+ showActionColumn?: boolean;
10
+ useMantisCoreStyles?: boolean;
11
+ indexColumnProps?: ColumnProps;
12
+ actionColumnProps?: ActionColumnProps;
13
+ actionColumnItems?: (rowData: TValue[number]) => ActionMenuItem[];
14
+ };
15
+ interface PaginatedTableComponent {
16
+ <TValue extends DataTableValueArray>(props: PaginatedTableProps<TValue> & {
17
+ ref?: Ref<DataTable<TValue>>;
18
+ }): ReactElement | null;
19
+ displayName?: string;
20
+ }
21
+ declare const PaginatedTable: PaginatedTableComponent;
22
+ export default PaginatedTable;
23
+ //# sourceMappingURL=PaginatedTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginatedTable.d.ts","sourceRoot":"","sources":["../../../src/components/Tables/PaginatedTable.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEpF,OAAO,KAAK,EAAgB,YAAY,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,MAAM,mBAAmB,CAAC,MAAM,SAAS,mBAAmB,IAAI,kBAAkB,CAAC,MAAM,CAAC,GAAG;IACjG,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,cAAc,EAAE,CAAC;CACnE,CAAC;AAEF,UAAU,uBAAuB;IAC/B,CAAC,MAAM,SAAS,mBAAmB,EACjC,KAAK,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,GACpE,YAAY,GAAG,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAyED,QAAA,MAAM,cAAc,EAAsC,uBAAuB,CAAC;AAIlF,eAAe,cAAc,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import classNames from "classnames";
4
+ import { Column } from "primereact/column";
5
+ import { DataTable } from "primereact/datatable";
6
+ import { forwardRef } from "react";
7
+ import ActionColumn from "./ActionColumn";
8
+ function PaginatedTableInner({
9
+ // Mantis Core-specific props
10
+ showIndexColumn = true, showActionColumn = false, useMantisCoreStyles = true, indexColumnProps, actionColumnProps, actionColumnItems = () => [],
11
+ // DataTable props with Mantis Core defaults
12
+ className, children, rowHover = true, paginator = true, stripedRows = true, showGridlines = true, currentPageReportTemplate = "Pagina: {currentPage}/{totalPages} | Total: {totalRecords} registros", paginatorTemplate = "FirstPageLink PrevPageLink PageLinks NextPageLink LastPageLink CurrentPageReport", sortMode = "multiple", emptyMessage = "No se ha encontrado informacion", lazy = true, removableSort = true, responsiveLayout = "scroll", size = "small", ...rest }, ref) {
13
+ const mergedActionColumnProps = {
14
+ ...actionColumnProps,
15
+ style: {
16
+ width: "7rem",
17
+ ...actionColumnProps?.style,
18
+ },
19
+ bodyClassName: actionColumnProps?.bodyClassName ?? "mantis-core-table__cell mantis-core-table__cell--status",
20
+ };
21
+ return (_jsxs(DataTable, { ref: ref, className: classNames(className, { "mantis-core-table": useMantisCoreStyles }), rowHover: rowHover, paginator: paginator, stripedRows: stripedRows, showGridlines: showGridlines, currentPageReportTemplate: currentPageReportTemplate, paginatorTemplate: paginatorTemplate, sortMode: sortMode, emptyMessage: emptyMessage, lazy: lazy, removableSort: removableSort, responsiveLayout: responsiveLayout, size: size, ...rest, children: [showIndexColumn && (_jsx(Column, { header: '#', style: { width: "4rem" }, body: (_, options) => (_jsx("div", { className: 'mantis-core-table__index-cell', children: options.rowIndex + 1 })), ...indexColumnProps })), children, showActionColumn && ActionColumn(actionColumnItems, mergedActionColumnProps)] }));
22
+ }
23
+ const PaginatedTable = forwardRef(PaginatedTableInner);
24
+ PaginatedTable.displayName = "PaginatedTable";
25
+ export default PaginatedTable;
26
+ //# sourceMappingURL=PaginatedTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginatedTable.js","sourceRoot":"","sources":["../../../src/components/Tables/PaginatedTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AACb,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,YAAwC,MAAM,gBAAgB,CAAC;AAmBtE,SAAS,mBAAmB,CAC1B;AACE,6BAA6B;AAC7B,eAAe,GAAG,IAAI,EACtB,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,IAAI,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAAG,GAAG,EAAE,CAAC,EAAE;AAC5B,4CAA4C;AAC5C,SAAS,EACT,QAAQ,EACR,QAAQ,GAAG,IAAI,EACf,SAAS,GAAG,IAAI,EAChB,WAAW,GAAG,IAAI,EAClB,aAAa,GAAG,IAAI,EACpB,yBAAyB,GAAG,sEAAsE,EAClG,iBAAiB,GAAG,kFAAkF,EACtG,QAAQ,GAAG,UAAU,EACrB,YAAY,GAAG,iCAAiC,EAChD,IAAI,GAAG,IAAI,EACX,aAAa,GAAG,IAAI,EACpB,gBAAgB,GAAG,QAAQ,EAC3B,IAAI,GAAG,OAAO,EACd,GAAG,IAAI,EACqB,EAC9B,GAAoC;IAEpC,MAAM,uBAAuB,GAAsB;QACjD,GAAG,iBAAiB;QACpB,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,GAAG,iBAAiB,EAAE,KAAK;SAC5B;QACD,aAAa,EACX,iBAAiB,EAAE,aAAa,IAAI,yDAAyD;KAChG,CAAC;IAEF,OAAO,CACL,MAAC,SAAS,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,CAAC,EAC9E,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,yBAAyB,EAAE,yBAAyB,EACpD,iBAAiB,EAAE,iBAAiB,EACpC,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,IAAI,KACN,IAAI,aACP,eAAe,IAAI,CAClB,KAAC,MAAM,IACL,MAAM,EAAC,GAAG,EACV,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EACxB,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CACpB,cAAK,SAAS,EAAC,+BAA+B,YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAO,CAC5E,KACG,gBAAgB,GACpB,CACH,EACA,QAAQ,EACR,gBAAgB,IAAI,YAAY,CAAiB,iBAAiB,EAAE,uBAAuB,CAAC,IACnF,CACb,CAAC;AACJ,CAAC;AAED,MAAM,cAAc,GAAG,UAAU,CAAC,mBAAmB,CAA4B,CAAC;AAElF,cAAc,CAAC,WAAW,GAAG,gBAAgB,CAAC;AAE9C,eAAe,cAAc,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ColumnFilterElementTemplateOptions } from "primereact/column";
2
+ import type { MultiSelectProps } from "primereact/multiselect";
3
+ interface MultiSelectFilterProps extends Omit<MultiSelectProps, "value" | "onChange"> {
4
+ filterProps: ColumnFilterElementTemplateOptions;
5
+ }
6
+ declare const MultiSelectFilter: ({ options, loading, filterProps, ...rest }: MultiSelectFilterProps) => import("react/jsx-runtime").JSX.Element;
7
+ export default MultiSelectFilter;
8
+ //# sourceMappingURL=MultiSelectFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/Tables/filters/MultiSelectFilter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,UAAU,sBAAuB,SAAQ,IAAI,CAAC,gBAAgB,EAAE,OAAO,GAAG,UAAU,CAAC;IACnF,WAAW,EAAE,kCAAkC,CAAC;CACjD;AAED,QAAA,MAAM,iBAAiB,GAAI,4CAA4C,sBAAsB,4CAgB5F,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { MultiSelect } from "primereact/multiselect";
3
+ const MultiSelectFilter = ({ options, loading, filterProps, ...rest }) => {
4
+ return (_jsx(MultiSelect, { filter: true, className: 'w-full', placeholder: 'Seleccione', maxSelectedLabels: 0, selectedItemsLabel: '{} items', options: options, loading: loading, disabled: loading, ...rest, value: filterProps.value ?? [], onChange: (e) => filterProps.filterApplyCallback(e.value) }));
5
+ };
6
+ export default MultiSelectFilter;
7
+ //# sourceMappingURL=MultiSelectFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectFilter.js","sourceRoot":"","sources":["../../../../src/components/Tables/filters/MultiSelectFilter.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAOrD,MAAM,iBAAiB,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,EAA0B,EAAE,EAAE;IAC/F,OAAO,CACL,KAAC,WAAW,IACV,MAAM,QACN,SAAS,EAAC,QAAQ,EAClB,WAAW,EAAC,YAAY,EACxB,iBAAiB,EAAE,CAAC,EACpB,kBAAkB,EAAC,UAAU,EAC7B,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,OAAO,KACb,IAAI,EACR,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,EAAE,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,GACzD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import type { AdminBreadcrumbItem } from "./admin-layout/types";
3
+ type AdminPageHeaderProps = {
4
+ title: string;
5
+ description?: string;
6
+ actions?: React.ReactNode;
7
+ breadcrumbs?: readonly AdminBreadcrumbItem[];
8
+ };
9
+ declare const AdminPageHeader: React.FC<AdminPageHeaderProps>;
10
+ export default AdminPageHeader;
11
+ //# sourceMappingURL=AdminPageHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminPageHeader.d.ts","sourceRoot":"","sources":["../../../src/components/pages/AdminPageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CAC9C,CAAC;AAEF,QAAA,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiEnD,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Link from "next/link";
3
+ const AdminPageHeader = ({ title, description, actions, breadcrumbs, }) => {
4
+ const hasBreadcrumbs = Boolean(breadcrumbs && breadcrumbs.length > 0);
5
+ return (_jsxs("div", { className: 'flex items-start justify-between rounded-xl px-6 py-5 border border-border gap-4', style: {
6
+ background: "linear-gradient(110deg, color-mix(in oklch, var(--primary), white 92%), color-mix(in oklch, var(--accent), white 90%))",
7
+ }, children: [_jsxs("div", { children: [hasBreadcrumbs && (_jsx("nav", { "aria-label": 'Breadcrumb', className: 'mb-2', children: _jsx("ol", { className: 'flex flex-wrap items-center gap-1.5 text-xs', children: breadcrumbs.map((item, index) => {
8
+ const isLast = index === breadcrumbs.length - 1;
9
+ return (_jsxs("li", { className: 'flex items-center gap-1.5', children: [item.href && !isLast ? (_jsx(Link, { href: item.href, className: 'transition-colors hover:opacity-80', style: { color: "var(--muted-foreground)" }, children: item.label })) : (_jsx("span", { style: {
10
+ color: isLast ? "color-mix(in oklch, var(--primary), black 24%)" : "var(--muted-foreground)",
11
+ fontWeight: isLast ? 600 : 500,
12
+ }, children: item.label })), !isLast && _jsx("span", { style: { color: "var(--muted-foreground)" }, children: "/" })] }, `${item.label}-${index}`));
13
+ }) }) })), _jsx("h1", { className: 'text-2xl font-bold', style: {
14
+ color: "color-mix(in oklch, var(--primary), black 20%)",
15
+ fontFamily: "var(--font-display)",
16
+ }, children: title }), description && (_jsx("p", { className: 'text-sm mt-0.5', style: { color: "var(--muted-foreground)" }, children: description }))] }), actions && _jsx("div", { children: actions })] }));
17
+ };
18
+ export default AdminPageHeader;
19
+ //# sourceMappingURL=AdminPageHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AdminPageHeader.js","sourceRoot":"","sources":["../../../src/components/pages/AdminPageHeader.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,WAAW,CAAC;AAU7B,MAAM,eAAe,GAAmC,CAAC,EACvD,KAAK,EACL,WAAW,EACX,OAAO,EACP,WAAW,GACZ,EAAE,EAAE;IACH,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEtE,OAAO,CACL,eACE,SAAS,EAAC,kFAAkF,EAC5F,KAAK,EAAE;YACL,UAAU,EACR,wHAAwH;SAC3H,aACD,0BACG,cAAc,IAAI,CACjB,4BAAgB,YAAY,EAAC,SAAS,EAAC,MAAM,YAC3C,aAAI,SAAS,EAAC,6CAA6C,YACxD,WAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gCAChC,MAAM,MAAM,GAAG,KAAK,KAAK,WAAY,CAAC,MAAM,GAAG,CAAC,CAAC;gCAEjD,OAAO,CACL,cAAmC,SAAS,EAAC,2BAA2B,aACrE,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACtB,KAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,SAAS,EAAC,oCAAoC,EAC9C,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAC1C,IAAI,CAAC,KAAK,GACN,CACR,CAAC,CAAC,CAAC,CACF,eACE,KAAK,EAAE;gDACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,yBAAyB;gDAC5F,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG;6CAC/B,YACA,IAAI,CAAC,KAAK,GACN,CACR,EACA,CAAC,MAAM,IAAI,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,kBAAU,KAjBhE,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,EAAE,CAkB5B,CACN,CAAC;4BACJ,CAAC,CAAC,GACC,GACD,CACP,EAED,aACE,SAAS,EAAC,oBAAoB,EAC9B,KAAK,EAAE;4BACL,KAAK,EAAE,gDAAgD;4BACvD,UAAU,EAAE,qBAAqB;yBAClC,YACA,KAAK,GACH,EACJ,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,YACtE,WAAW,GACV,CACL,IACG,EACL,OAAO,IAAI,wBAAM,OAAO,GAAO,IAC5B,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ interface FormSectionProps {
3
+ title: string;
4
+ description?: string;
5
+ icon?: React.ReactNode;
6
+ children: React.ReactNode;
7
+ className?: string;
8
+ }
9
+ declare const FormSection: React.FC<FormSectionProps>;
10
+ export default FormSection;
11
+ //# sourceMappingURL=FormSection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSection.d.ts","sourceRoot":"","sources":["../../../src/components/pages/FormSection.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,gBAAgB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAgD3C,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "@mantis-core/utils";
3
+ const FormSection = ({ title, description, icon, children, className, }) => {
4
+ return (_jsxs("div", { className: cn("rounded-xl overflow-hidden border", className), style: { borderColor: "var(--border)" }, children: [_jsxs("div", { className: "flex items-center gap-3 px-5 py-4 border-b", style: {
5
+ background: "color-mix(in oklch, var(--primary), white 95%)",
6
+ borderLeftWidth: "4px",
7
+ borderLeftStyle: "solid",
8
+ borderLeftColor: "var(--primary)",
9
+ borderBottomColor: "var(--border)",
10
+ }, children: [icon && (_jsx("span", { className: "flex-shrink-0", style: { color: "var(--primary)" }, children: icon })), _jsxs("div", { children: [_jsx("h2", { className: "font-semibold text-base leading-tight", style: {
11
+ color: "color-mix(in oklch, var(--primary), black 15%)",
12
+ fontFamily: "var(--font-display)",
13
+ }, children: title }), description && (_jsx("p", { className: "text-xs mt-0.5", style: { color: "var(--muted-foreground)" }, children: description }))] })] }), _jsx("div", { className: "p-6", style: { background: "var(--card)" }, children: children })] }));
14
+ };
15
+ export default FormSection;
16
+ //# sourceMappingURL=FormSection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormSection.js","sourceRoot":"","sources":["../../../src/components/pages/FormSection.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAWxC,MAAM,WAAW,GAA+B,CAAC,EAC/C,KAAK,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,SAAS,GACV,EAAE,EAAE;IACH,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,aAEzG,eACE,SAAS,EAAC,4CAA4C,EACtD,KAAK,EAAE;oBACL,UAAU,EAAE,gDAAgD;oBAC5D,eAAe,EAAE,KAAK;oBACtB,eAAe,EAAE,OAAO;oBACxB,eAAe,EAAE,gBAAgB;oBACjC,iBAAiB,EAAE,eAAe;iBACnC,aAEA,IAAI,IAAI,CACP,eAAM,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAC/D,IAAI,GACA,CACR,EACD,0BACE,aACE,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAE;oCACL,KAAK,EAAE,gDAAgD;oCACvD,UAAU,EAAE,qBAAqB;iCAClC,YAEA,KAAK,GACH,EACJ,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,gBAAgB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,YACtE,WAAW,GACV,CACL,IACG,IACF,EAEN,cAAK,SAAS,EAAC,KAAK,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,YACtD,QAAQ,GACL,IACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ declare const PageTitle: React.FC<React.PropsWithChildren>;
3
+ export default PageTitle;
4
+ //# sourceMappingURL=PageTitle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTitle.d.ts","sourceRoot":"","sources":["../../../src/components/pages/PageTitle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAQhD,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ const PageTitle = ({ children }) => {
3
+ return (_jsx("p", { className: 'text-center my-4 text-4xl font-bold', style: { color: "var(--foreground)", fontFamily: "var(--font-display)" }, children: children }));
4
+ };
5
+ export default PageTitle;
6
+ //# sourceMappingURL=PageTitle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageTitle.js","sourceRoot":"","sources":["../../../src/components/pages/PageTitle.tsx"],"names":[],"mappings":";AAEA,MAAM,SAAS,GAAsC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACpE,OAAO,CACL,YACE,SAAS,EAAC,qCAAqC,EAC/C,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,qBAAqB,EAAE,YACvE,QAAQ,GACP,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}