@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.
- package/COMPONENTS.md +147 -0
- package/README.md +120 -0
- package/dist/components/Buttons/Button.d.ts +19 -0
- package/dist/components/Buttons/Button.d.ts.map +1 -0
- package/dist/components/Buttons/Button.js +27 -0
- package/dist/components/Buttons/Button.js.map +1 -0
- package/dist/components/Forms/CKEditorInput.d.ts +32 -0
- package/dist/components/Forms/CKEditorInput.d.ts.map +1 -0
- package/dist/components/Forms/CKEditorInput.js +357 -0
- package/dist/components/Forms/CKEditorInput.js.map +1 -0
- package/dist/components/Forms/DateInput.d.ts +10 -0
- package/dist/components/Forms/DateInput.d.ts.map +1 -0
- package/dist/components/Forms/DateInput.js +11 -0
- package/dist/components/Forms/DateInput.js.map +1 -0
- package/dist/components/Forms/DropDown.d.ts +10 -0
- package/dist/components/Forms/DropDown.d.ts.map +1 -0
- package/dist/components/Forms/DropDown.js +11 -0
- package/dist/components/Forms/DropDown.js.map +1 -0
- package/dist/components/Forms/ErrorMessage.d.ts +6 -0
- package/dist/components/Forms/ErrorMessage.d.ts.map +1 -0
- package/dist/components/Forms/ErrorMessage.js +14 -0
- package/dist/components/Forms/ErrorMessage.js.map +1 -0
- package/dist/components/Forms/FormFieldRender.d.ts +13 -0
- package/dist/components/Forms/FormFieldRender.d.ts.map +1 -0
- package/dist/components/Forms/FormFieldRender.js +9 -0
- package/dist/components/Forms/FormFieldRender.js.map +1 -0
- package/dist/components/Forms/HiddenField.d.ts +8 -0
- package/dist/components/Forms/HiddenField.d.ts.map +1 -0
- package/dist/components/Forms/HiddenField.js +8 -0
- package/dist/components/Forms/HiddenField.js.map +1 -0
- package/dist/components/Forms/MultiSelect.d.ts +10 -0
- package/dist/components/Forms/MultiSelect.d.ts.map +1 -0
- package/dist/components/Forms/MultiSelect.js +13 -0
- package/dist/components/Forms/MultiSelect.js.map +1 -0
- package/dist/components/Forms/NumberInput.d.ts +10 -0
- package/dist/components/Forms/NumberInput.d.ts.map +1 -0
- package/dist/components/Forms/NumberInput.js +16 -0
- package/dist/components/Forms/NumberInput.js.map +1 -0
- package/dist/components/Forms/RenderField.d.ts +18 -0
- package/dist/components/Forms/RenderField.d.ts.map +1 -0
- package/dist/components/Forms/RenderField.js +14 -0
- package/dist/components/Forms/RenderField.js.map +1 -0
- package/dist/components/Forms/Select.d.ts +12 -0
- package/dist/components/Forms/Select.d.ts.map +1 -0
- package/dist/components/Forms/Select.js +39 -0
- package/dist/components/Forms/Select.js.map +1 -0
- package/dist/components/Forms/Switch.d.ts +18 -0
- package/dist/components/Forms/Switch.d.ts.map +1 -0
- package/dist/components/Forms/Switch.js +30 -0
- package/dist/components/Forms/Switch.js.map +1 -0
- package/dist/components/Forms/TextArea.d.ts +11 -0
- package/dist/components/Forms/TextArea.d.ts.map +1 -0
- package/dist/components/Forms/TextArea.js +11 -0
- package/dist/components/Forms/TextArea.js.map +1 -0
- package/dist/components/Forms/TextInput.d.ts +11 -0
- package/dist/components/Forms/TextInput.d.ts.map +1 -0
- package/dist/components/Forms/TextInput.js +12 -0
- package/dist/components/Forms/TextInput.js.map +1 -0
- package/dist/components/Forms/TimePicker.d.ts +13 -0
- package/dist/components/Forms/TimePicker.d.ts.map +1 -0
- package/dist/components/Forms/TimePicker.js +19 -0
- package/dist/components/Forms/TimePicker.js.map +1 -0
- package/dist/components/Forms/Toggle.d.ts +14 -0
- package/dist/components/Forms/Toggle.d.ts.map +1 -0
- package/dist/components/Forms/Toggle.js +10 -0
- package/dist/components/Forms/Toggle.js.map +1 -0
- package/dist/components/Forms/ToggleInlineButton.d.ts +14 -0
- package/dist/components/Forms/ToggleInlineButton.d.ts.map +1 -0
- package/dist/components/Forms/ToggleInlineButton.js +9 -0
- package/dist/components/Forms/ToggleInlineButton.js.map +1 -0
- package/dist/components/Forms/UploadFilesPreview.d.ts +30 -0
- package/dist/components/Forms/UploadFilesPreview.d.ts.map +1 -0
- package/dist/components/Forms/UploadFilesPreview.js +118 -0
- package/dist/components/Forms/UploadFilesPreview.js.map +1 -0
- package/dist/components/Forms/types.d.ts +9 -0
- package/dist/components/Forms/types.d.ts.map +1 -0
- package/dist/components/Forms/types.js +2 -0
- package/dist/components/Forms/types.js.map +1 -0
- package/dist/components/Loaders/Loading.d.ts +9 -0
- package/dist/components/Loaders/Loading.d.ts.map +1 -0
- package/dist/components/Loaders/Loading.js +11 -0
- package/dist/components/Loaders/Loading.js.map +1 -0
- package/dist/components/Maps/MapPicker.d.ts +7 -0
- package/dist/components/Maps/MapPicker.d.ts.map +1 -0
- package/dist/components/Maps/MapPicker.js +10 -0
- package/dist/components/Maps/MapPicker.js.map +1 -0
- package/dist/components/Maps/MapPickerClient.d.ts +8 -0
- package/dist/components/Maps/MapPickerClient.d.ts.map +1 -0
- package/dist/components/Maps/MapPickerClient.js +83 -0
- package/dist/components/Maps/MapPickerClient.js.map +1 -0
- package/dist/components/Maps/MapPickerOSM.d.ts +13 -0
- package/dist/components/Maps/MapPickerOSM.d.ts.map +1 -0
- package/dist/components/Maps/MapPickerOSM.js +117 -0
- package/dist/components/Maps/MapPickerOSM.js.map +1 -0
- package/dist/components/Tables/ActionColumn.d.ts +9 -0
- package/dist/components/Tables/ActionColumn.d.ts.map +1 -0
- package/dist/components/Tables/ActionColumn.js +8 -0
- package/dist/components/Tables/ActionColumn.js.map +1 -0
- package/dist/components/Tables/FilterPannel.d.ts +7 -0
- package/dist/components/Tables/FilterPannel.d.ts.map +1 -0
- package/dist/components/Tables/FilterPannel.js +32 -0
- package/dist/components/Tables/FilterPannel.js.map +1 -0
- package/dist/components/Tables/IndexColumn.d.ts +4 -0
- package/dist/components/Tables/IndexColumn.d.ts.map +1 -0
- package/dist/components/Tables/IndexColumn.js +7 -0
- package/dist/components/Tables/IndexColumn.js.map +1 -0
- package/dist/components/Tables/MenuButton.d.ts +14 -0
- package/dist/components/Tables/MenuButton.d.ts.map +1 -0
- package/dist/components/Tables/MenuButton.js +15 -0
- package/dist/components/Tables/MenuButton.js.map +1 -0
- package/dist/components/Tables/PaginatedTable.d.ts +23 -0
- package/dist/components/Tables/PaginatedTable.d.ts.map +1 -0
- package/dist/components/Tables/PaginatedTable.js +26 -0
- package/dist/components/Tables/PaginatedTable.js.map +1 -0
- package/dist/components/Tables/filters/MultiSelectFilter.d.ts +8 -0
- package/dist/components/Tables/filters/MultiSelectFilter.d.ts.map +1 -0
- package/dist/components/Tables/filters/MultiSelectFilter.js +7 -0
- package/dist/components/Tables/filters/MultiSelectFilter.js.map +1 -0
- package/dist/components/pages/AdminPageHeader.d.ts +11 -0
- package/dist/components/pages/AdminPageHeader.d.ts.map +1 -0
- package/dist/components/pages/AdminPageHeader.js +19 -0
- package/dist/components/pages/AdminPageHeader.js.map +1 -0
- package/dist/components/pages/FormSection.d.ts +11 -0
- package/dist/components/pages/FormSection.d.ts.map +1 -0
- package/dist/components/pages/FormSection.js +16 -0
- package/dist/components/pages/FormSection.js.map +1 -0
- package/dist/components/pages/PageTitle.d.ts +4 -0
- package/dist/components/pages/PageTitle.d.ts.map +1 -0
- package/dist/components/pages/PageTitle.js +6 -0
- package/dist/components/pages/PageTitle.js.map +1 -0
- package/dist/components/pages/admin-layout/AdminPageConfigurator.d.ts +9 -0
- package/dist/components/pages/admin-layout/AdminPageConfigurator.d.ts.map +1 -0
- package/dist/components/pages/admin-layout/AdminPageConfigurator.js +13 -0
- package/dist/components/pages/admin-layout/AdminPageConfigurator.js.map +1 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutContext.d.ts +14 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutContext.d.ts.map +1 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutContext.js +27 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutContext.js.map +1 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutShell.d.ts +7 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutShell.d.ts.map +1 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutShell.js +11 -0
- package/dist/components/pages/admin-layout/AdminPageLayoutShell.js.map +1 -0
- package/dist/components/pages/admin-layout/types.d.ts +13 -0
- package/dist/components/pages/admin-layout/types.d.ts.map +1 -0
- package/dist/components/pages/admin-layout/types.js +2 -0
- package/dist/components/pages/admin-layout/types.js.map +1 -0
- package/dist/components/table-filter-field.d.ts +11 -0
- package/dist/components/table-filter-field.d.ts.map +1 -0
- package/dist/components/table-filter-field.js +7 -0
- package/dist/components/table-filter-field.js.map +1 -0
- package/dist/components/table-toolbar.d.ts +13 -0
- package/dist/components/table-toolbar.d.ts.map +1 -0
- package/dist/components/table-toolbar.js +9 -0
- package/dist/components/table-toolbar.js.map +1 -0
- package/dist/components/ui/Pagination.d.ts +37 -0
- package/dist/components/ui/Pagination.d.ts.map +1 -0
- package/dist/components/ui/Pagination.js +42 -0
- package/dist/components/ui/Pagination.js.map +1 -0
- package/dist/components/ui/RichTextPreview.d.ts +12 -0
- package/dist/components/ui/RichTextPreview.d.ts.map +1 -0
- package/dist/components/ui/RichTextPreview.js +17 -0
- package/dist/components/ui/RichTextPreview.js.map +1 -0
- package/dist/index.d.ts +69 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- 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: "© 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 @@
|
|
|
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 @@
|
|
|
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"}
|