utopia-ui 3.0.0-alpha.85 → 3.0.0-alpha.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
1
2
|
import { useMap, useMapEvents, MapContainer, TileLayer, Popup, Marker, Tooltip } from 'react-leaflet';
|
2
3
|
import 'leaflet/dist/leaflet.css';
|
3
4
|
import * as React from 'react';
|
@@ -7,7 +8,7 @@ import { LatLng, LatLngBounds } from 'leaflet';
|
|
7
8
|
import MarkerClusterGroup from 'react-leaflet-cluster';
|
8
9
|
import { Link, useNavigate, useLocation, Outlet, BrowserRouter, NavLink } from 'react-router-dom';
|
9
10
|
import { toast, ToastContainer } from 'react-toastify';
|
10
|
-
import { startOfToday, format, parse,
|
11
|
+
import { startOfToday, format, parse, sub, add } from 'date-fns';
|
11
12
|
import { ChevronLeftIcon, ChevronRightIcon } from '@heroicons/react/24/outline';
|
12
13
|
import axios from 'axios';
|
13
14
|
import 'leaflet.locatecontrol/dist/L.Control.Locate.css';
|
@@ -26,36 +27,6 @@ import 'react-toastify/dist/ReactToastify.css';
|
|
26
27
|
import ReactCrop, { centerCrop, makeAspectCrop } from 'react-image-crop';
|
27
28
|
import { HexColorPicker } from 'react-colorful';
|
28
29
|
|
29
|
-
function styleInject(css, ref) {
|
30
|
-
if ( ref === void 0 ) ref = {};
|
31
|
-
var insertAt = ref.insertAt;
|
32
|
-
|
33
|
-
if (!css || typeof document === 'undefined') { return; }
|
34
|
-
|
35
|
-
var head = document.head || document.getElementsByTagName('head')[0];
|
36
|
-
var style = document.createElement('style');
|
37
|
-
style.type = 'text/css';
|
38
|
-
|
39
|
-
if (insertAt === 'top') {
|
40
|
-
if (head.firstChild) {
|
41
|
-
head.insertBefore(style, head.firstChild);
|
42
|
-
} else {
|
43
|
-
head.appendChild(style);
|
44
|
-
}
|
45
|
-
} else {
|
46
|
-
head.appendChild(style);
|
47
|
-
}
|
48
|
-
|
49
|
-
if (style.styleSheet) {
|
50
|
-
style.styleSheet.cssText = css;
|
51
|
-
} else {
|
52
|
-
style.appendChild(document.createTextNode(css));
|
53
|
-
}
|
54
|
-
}
|
55
|
-
|
56
|
-
var css_248z$2 = ".leaflet-container {\n text-align: left;\n background-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: 50% 80%; \n }\n \n \n \n input {\n box-sizing: border-box;\n }\n \n textarea {\n box-sizing: border-box;\n }\n \n .leaflet-control-attribution {\n display: none;\n }\n \n .leaflet-control-locate {\n display: none;\n }\n\n .leaflet-data-marker {\n \n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==') no-repeat;\n background-position: 6px 32px;\n }\n \n .crosshair-cursor-enabled {\n cursor: crosshair;\n }\n \n .leaflet-container {\n cursor: inherit;\n }\n \n .calendar-icon {\n position: relative;\n top: -35px;\n left: 10px;\n width: 13px;\n }\n \n .user-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n }\n\n .circle-icon {\n position: relative;\n top: -33px;\n left: 10px;\n width: 13px;\n }\n\n .fire-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n }\n\n .tree-icon {\n position: relative;\n top: -38px;\n left: 4px;\n width: 24px;\n }\n \n .leaflet-popup-scrolled {\n overflow-x: hidden;\n }\n\n .leaflet-popup-content-wrapper, .leaflet-popup-tip{\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n\n }\n\n .leaflet-tooltip {\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n border-width: 0px;\n border-radius: 1em;\n transition: opacity 500ms;\n transition-delay: 50ms;\n }\n\n .leaflet-tooltip-top::before {\n border-top-color: var(--fallback-b1,oklch(var(--b1)/1));\n }\n\n .marker-cluster span {\n color: #000;\n }";
|
57
|
-
styleInject(css_248z$2);
|
58
|
-
|
59
30
|
/******************************************************************************
|
60
31
|
Copyright (c) Microsoft Corporation.
|
61
32
|
|
@@ -142,6 +113,36 @@ function __spreadArray(to, from, pack) {
|
|
142
113
|
return to.concat(ar || Array.prototype.slice.call(from));
|
143
114
|
}
|
144
115
|
|
116
|
+
function styleInject(css, ref) {
|
117
|
+
if ( ref === void 0 ) ref = {};
|
118
|
+
var insertAt = ref.insertAt;
|
119
|
+
|
120
|
+
if (!css || typeof document === 'undefined') { return; }
|
121
|
+
|
122
|
+
var head = document.head || document.getElementsByTagName('head')[0];
|
123
|
+
var style = document.createElement('style');
|
124
|
+
style.type = 'text/css';
|
125
|
+
|
126
|
+
if (insertAt === 'top') {
|
127
|
+
if (head.firstChild) {
|
128
|
+
head.insertBefore(style, head.firstChild);
|
129
|
+
} else {
|
130
|
+
head.appendChild(style);
|
131
|
+
}
|
132
|
+
} else {
|
133
|
+
head.appendChild(style);
|
134
|
+
}
|
135
|
+
|
136
|
+
if (style.styleSheet) {
|
137
|
+
style.styleSheet.cssText = css;
|
138
|
+
} else {
|
139
|
+
style.appendChild(document.createTextNode(css));
|
140
|
+
}
|
141
|
+
}
|
142
|
+
|
143
|
+
var css_248z$2 = ".leaflet-container {\n text-align: left;\n background-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n background-repeat: no-repeat;\n background-attachment: fixed;\n background-position: 50% 80%; \n }\n \n \n \n input {\n box-sizing: border-box;\n }\n \n textarea {\n box-sizing: border-box;\n }\n \n .leaflet-control-attribution {\n display: none;\n }\n \n .leaflet-control-locate {\n display: none;\n }\n\n .leaflet-data-marker {\n \n background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAQCAYAAACcN8ZaAAAB3klEQVR42s3U4UdDURzG8czMXJnJ1Vwzc6VJZjaZJdlMlpQsKdmUFNOUspRSSqUolfQfr+fF98Vx5mwv9qbDx7LdznnO7/7Omej3+/+Ga0QMUYkhbvBgmhzCQxwxibIGrGEF8CQhU+LLtKQkQNqScUgjxRxTBIxbgfgD/BgnhM8kM5KTeclLQYqGkkMRBckzR8ic/mAgd5BAZplsUaqyIg2sDtHg2brUZJk5SmwopErJUWE8SpmTMhNvya60Zd/SNrR4bkeaskG4uiwRZk6yrJEYFibGAxn+scECHTmTnuVCzvmty3PHciB7bGKN6lQkzysPqIrHmpFhYbKUtckC1/Ioz4ZHuZdbuSLYiRxRpSZVWXZVxAzC0R4Ik5SQsu6w8yd5l2/5kg95I9SdXMoZQfYIUjeqEUrgOkXGPeN4TYRhxy8E+ZUf+eS7B7miIoeybVSjKDnm8u3+gH3pDTYwu1igATvs/pXqvBKiR4i2bNJfi1ZfUAnjgrOG8wY2quNzBKuU/ZS+uSFEl5O0xRGuUIlZCcw7xG5QPkeHYUSNV5WXGou2sC3rBC0LjenqCXGO0WEiTJa0Lr4KixdHBrDGuGGiRqCUpFk8pGIpQtCU7p4YPwxYxEMCk1aAMQZh8Ac8PfbIzYPJOwAAAABJRU5ErkJggg==') no-repeat;\n background-position: 6px 32px;\n }\n \n .crosshair-cursor-enabled {\n cursor: crosshair;\n }\n \n .leaflet-container {\n cursor: inherit;\n }\n \n .calendar-icon {\n position: relative;\n top: -35px;\n left: 10px;\n width: 13px;\n }\n \n .user-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n }\n\n .circle-icon {\n position: relative;\n top: -33px;\n left: 10px;\n width: 13px;\n }\n\n .fire-icon {\n position: relative;\n top: -36px;\n left: 10px;\n width: 13px;\n }\n\n .tree-icon {\n position: relative;\n top: -38px;\n left: 4px;\n width: 24px;\n }\n \n .leaflet-popup-scrolled {\n overflow-x: hidden;\n }\n\n .leaflet-popup-content-wrapper, .leaflet-popup-tip{\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n\n }\n\n .leaflet-tooltip {\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n border-width: 0px;\n border-radius: 1em;\n transition: opacity 500ms;\n transition-delay: 50ms;\n }\n\n .leaflet-tooltip-top::before {\n border-top-color: var(--fallback-b1,oklch(var(--b1)/1));\n }\n\n .marker-cluster span {\n color: #000;\n }";
|
144
|
+
styleInject(css_248z$2);
|
145
|
+
|
145
146
|
var LayerContext = createContext({
|
146
147
|
layers: [],
|
147
148
|
addLayer: function () { },
|
@@ -173,7 +174,7 @@ function useLayerManager(initialLayers) {
|
|
173
174
|
}
|
174
175
|
var LayersProvider = function (_a) {
|
175
176
|
var initialLayers = _a.initialLayers, children = _a.children;
|
176
|
-
return (
|
177
|
+
return (jsx(LayerContext.Provider, __assign({ value: useLayerManager(initialLayers) }, { children: children })));
|
177
178
|
};
|
178
179
|
var useLayers = function () {
|
179
180
|
var layers = useContext(LayerContext).layers;
|
@@ -372,43 +373,28 @@ var AuthProvider = function (_a) {
|
|
372
373
|
}
|
373
374
|
});
|
374
375
|
}); };
|
375
|
-
return (
|
376
|
+
return (jsx(AuthContext.Provider, __assign({ value: { isAuthenticated: isAuthenticated, user: user, login: login, register: register, loading: loading, logout: logout, updateUser: updateUser, token: token, requestPasswordReset: requestPasswordReset, passwordReset: passwordReset } }, { children: children })));
|
376
377
|
};
|
377
378
|
var useAuth = function () { return useContext(AuthContext); };
|
378
379
|
|
379
380
|
function Subtitle(_a) {
|
380
381
|
var styleClass = _a.styleClass, children = _a.children;
|
381
|
-
return (
|
382
|
+
return (jsx("div", __assign({ className: "tw-text-xl tw-font-semibold ".concat(styleClass) }, { children: children })));
|
382
383
|
}
|
383
384
|
|
384
385
|
function TitleCard(_a) {
|
385
386
|
var title = _a.title, hideTitle = _a.hideTitle, children = _a.children, topMargin = _a.topMargin, TopSideButtons = _a.TopSideButtons, className = _a.className;
|
386
|
-
return (
|
387
|
-
|
388
|
-
React.createElement(React.Fragment, null,
|
389
|
-
React.createElement(Subtitle, { styleClass: TopSideButtons ? "tw-inline-block" : "" },
|
390
|
-
title,
|
391
|
-
TopSideButtons && React.createElement("div", { className: "tw-inline-block tw-float-right" }, TopSideButtons)),
|
392
|
-
React.createElement("div", { className: "tw-divider tw-mt-2" })),
|
393
|
-
React.createElement("div", { className: 'tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100' }, children)));
|
387
|
+
return (jsxs("div", __assign({ className: "tw-card tw-w-full tw-p-6 tw-bg-base-100 tw-shadow-xl tw-h-fit tw-mb-4 " + (className || "") + " " + (topMargin || "tw-mt-6") }, { children: [!hideTitle &&
|
388
|
+
jsxs(Fragment, { children: [jsxs(Subtitle, __assign({ styleClass: TopSideButtons ? "tw-inline-block" : "" }, { children: [title, TopSideButtons && jsx("div", __assign({ className: "tw-inline-block tw-float-right" }, { children: TopSideButtons }))] })), jsx("div", { className: "tw-divider tw-mt-2" })] }), jsx("div", __assign({ className: 'tw-h-full tw-bg-transparent tw-w-full tw-pb-6 tw-bg-base-100' }, { children: children }))] })));
|
394
389
|
}
|
395
390
|
|
396
391
|
function CardPage(_a) {
|
397
392
|
var title = _a.title, hideTitle = _a.hideTitle, children = _a.children, parent = _a.parent;
|
398
|
-
return (
|
399
|
-
React.createElement("div", { className: 'tw-w-full xl:tw-max-w-6xl ' },
|
400
|
-
React.createElement("div", { className: "tw-text-sm tw-breadcrumbs" },
|
401
|
-
React.createElement("ul", null,
|
402
|
-
React.createElement("li", null,
|
403
|
-
React.createElement(Link, { to: '/' }, "Home")),
|
404
|
-
parent && React.createElement("li", null,
|
405
|
-
React.createElement(Link, { to: (parent === null || parent === void 0 ? void 0 : parent.url) ? parent === null || parent === void 0 ? void 0 : parent.url : "" }, parent === null || parent === void 0 ? void 0 : parent.name)),
|
406
|
-
React.createElement("li", null, title))),
|
407
|
-
React.createElement(TitleCard, { hideTitle: hideTitle, title: title, topMargin: "tw-my-2", className: " tw-mb-4" }, children))));
|
393
|
+
return (jsx("main", __assign({ className: "tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-2 tw-px-6 tw-min-w-80 tw-flex tw-justify-center" }, { children: jsxs("div", __assign({ className: 'tw-w-full xl:tw-max-w-6xl ' }, { children: [jsx("div", __assign({ className: "tw-text-sm tw-breadcrumbs" }, { children: jsxs("ul", { children: [jsx("li", { children: jsx(Link, __assign({ to: '/' }, { children: "Home" })) }), parent && jsx("li", { children: jsx(Link, __assign({ to: (parent === null || parent === void 0 ? void 0 : parent.url) ? parent === null || parent === void 0 ? void 0 : parent.url : "" }, { children: parent === null || parent === void 0 ? void 0 : parent.name })) }), jsx("li", { children: title })] }) })), jsx(TitleCard, __assign({ hideTitle: hideTitle, title: title, topMargin: "tw-my-2", className: " tw-mb-4" }, { children: children }))] })) })));
|
408
394
|
}
|
409
395
|
|
410
396
|
function MapOverlayPage(_a) {
|
411
|
-
var children = _a.children, className = _a.className, backdrop = _a.backdrop;
|
397
|
+
var children = _a.children, className = _a.className, backdrop = _a.backdrop, _b = _a.card, card = _b === void 0 ? true : _b;
|
412
398
|
var closeScreen = function () {
|
413
399
|
navigate("/");
|
414
400
|
};
|
@@ -425,12 +411,7 @@ function MapOverlayPage(_a) {
|
|
425
411
|
L$1.DomEvent.disableScrollPropagation(backdropRef.current);
|
426
412
|
}
|
427
413
|
}, [overlayRef, backdropRef]);
|
428
|
-
return (
|
429
|
-
React.createElement("div", { ref: backdropRef, className: "".concat(backdrop && "tw-backdrop-brightness-75", " tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto") },
|
430
|
-
React.createElement("div", { ref: overlayRef, className: "tw-card tw-shadow-xl tw-bg-base-100 tw-p-6 ".concat(className && className, " ").concat(!backdrop && "tw-z-[2000]", " tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto") },
|
431
|
-
React.createElement("div", { className: "tw-card-body tw-p-0 tw-h-full" },
|
432
|
-
children,
|
433
|
-
React.createElement("button", { className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2", onClick: function () { return closeScreen(); } }, "\u2715"))))));
|
414
|
+
return (jsx("div", __assign({ className: "tw-absolute tw-h-full tw-w-full tw-m-auto ".concat(backdrop && "tw-z-[2000]") }, { children: jsx("div", __assign({ ref: backdropRef, className: "".concat(backdrop && "tw-backdrop-brightness-75", " tw-h-full tw-w-full tw-grid tw-place-items-center tw-m-auto") }, { children: jsxs("div", __assign({ ref: overlayRef, className: "".concat(card && "tw-card tw-card-body", " tw-shadow-xl tw-bg-base-100 tw-p-6 ").concat(className && className, " ").concat(!backdrop && "tw-z-[2000]", " tw-absolute tw-top-0 tw-bottom-0 tw-right-0 tw-left-0 tw-m-auto") }, { children: [children, jsx("button", __assign({ className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2", onClick: function () { return closeScreen(); } }, { children: "\u2715" }))] })) })) })));
|
434
415
|
}
|
435
416
|
|
436
417
|
var CircleLayout = function (_a) {
|
@@ -450,7 +431,7 @@ var CircleLayout = function (_a) {
|
|
450
431
|
}
|
451
432
|
}
|
452
433
|
}, [items]);
|
453
|
-
return (
|
434
|
+
return (jsx("div", __assign({ className: "tw-absolute tw-mx-auto tw-flex tw-justify-center tw-items-center tw-h-full tw-w-full", ref: containerRef }, { children: items.map(function (item) { return (jsx("div", __assign({ className: "tw-absolute", style: { fontSize: fontSize } }, { children: item }), item)); }) })));
|
454
435
|
};
|
455
436
|
|
456
437
|
var LUNAR_MONTH = 29.530588853;
|
@@ -475,9 +456,7 @@ var getLunarAge = function (date) {
|
|
475
456
|
var percent = getLunarAgePercent(date);
|
476
457
|
return percent * LUNAR_MONTH;
|
477
458
|
};
|
478
|
-
var getNextNewMoon = function (
|
479
|
-
if (date === void 0) { date = new Date(); }
|
480
|
-
getLunarAge(date);
|
459
|
+
var getNextNewMoon = function () {
|
481
460
|
return new Date(getLastNewMoon().getTime() + LUNAR_MONTH * 86400000);
|
482
461
|
};
|
483
462
|
var getLastNewMoon = function (date) {
|
@@ -490,14 +469,6 @@ var MoonCalendar = function () {
|
|
490
469
|
var today = startOfToday();
|
491
470
|
var _a = useState(function () { return format(today, "MMM-yyyy"); }), currMonth = _a[0], setCurrMonth = _a[1];
|
492
471
|
var firstDayOfMonth = parse(currMonth, "MMM-yyyy", new Date());
|
493
|
-
eachDayOfInterval({
|
494
|
-
start: firstDayOfMonth,
|
495
|
-
end: endOfMonth(firstDayOfMonth),
|
496
|
-
});
|
497
|
-
eachDayOfInterval({
|
498
|
-
start: getLastNewMoon(),
|
499
|
-
end: getNextNewMoon()
|
500
|
-
});
|
501
472
|
var getPrevMonth = function (event) {
|
502
473
|
event.preventDefault();
|
503
474
|
var firstDayOfPrevMonth = add(firstDayOfMonth, { months: -1 });
|
@@ -508,24 +479,12 @@ var MoonCalendar = function () {
|
|
508
479
|
var firstDayOfNextMonth = add(firstDayOfMonth, { months: 1 });
|
509
480
|
setCurrMonth(format(firstDayOfNextMonth, "MMM-yyyy"));
|
510
481
|
};
|
511
|
-
return (
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
format(sub(getNextNewMoon(), { seconds: LUNAR_MONTH * 86400 / 4 * 3 }), "dd.MM hh:mm"),
|
518
|
-
format(sub(getNextNewMoon(), { seconds: LUNAR_MONTH * 86400 / 2 }), "dd.MM hh:mm"),
|
519
|
-
format(sub(getNextNewMoon(), { seconds: LUNAR_MONTH * 86400 / 4 }), "dd.MM hh:mm")
|
520
|
-
], radius: 120, fontSize: "0.8em" })),
|
521
|
-
React.createElement("div", { className: 'tw-flex tw-flex-row' },
|
522
|
-
React.createElement(ChevronLeftIcon, { className: "tw-w-6 tw-h-6 tw-cursor-pointer", onClick: getPrevMonth }),
|
523
|
-
React.createElement("p", { className: 'tw-text-center tw-p-1 tw-h-full tw-grow' },
|
524
|
-
"from ",
|
525
|
-
format(getLastNewMoon(), "dd.MM"),
|
526
|
-
" - to ",
|
527
|
-
format(getNextNewMoon(), "dd.MM")),
|
528
|
-
React.createElement(ChevronRightIcon, { className: "tw-w-6 tw-h-6 tw-cursor-pointer", onClick: getNextMonth }))));
|
482
|
+
return (jsxs(MapOverlayPage, __assign({ backdrop: true, className: 'tw-h-96 tw-w-80' }, { children: [jsx("p", __assign({ className: 'tw-self-center tw-text-lg tw-font-bold' }, { children: "Moon Cycle" })), jsxs("div", __assign({ className: 'tw-relative tw-h-full' }, { children: [jsx(CircleLayout, { items: ["🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘"], radius: 80, fontSize: "3em" }), jsx(CircleLayout, { items: [
|
483
|
+
format(getLastNewMoon(), "dd.MM hh:mm"),
|
484
|
+
format(sub(getNextNewMoon(), { seconds: LUNAR_MONTH * 86400 / 4 * 3 }), "dd.MM hh:mm"),
|
485
|
+
format(sub(getNextNewMoon(), { seconds: LUNAR_MONTH * 86400 / 2 }), "dd.MM hh:mm"),
|
486
|
+
format(sub(getNextNewMoon(), { seconds: LUNAR_MONTH * 86400 / 4 }), "dd.MM hh:mm")
|
487
|
+
], radius: 120, fontSize: "0.8em" })] })), jsxs("div", __assign({ className: 'tw-flex tw-flex-row' }, { children: [jsx(ChevronLeftIcon, { className: "tw-w-6 tw-h-6 tw-cursor-pointer", onClick: getPrevMonth }), jsxs("p", __assign({ className: 'tw-text-center tw-p-1 tw-h-full tw-grow' }, { children: ["from ", format(getLastNewMoon(), "dd.MM"), " - to ", format(getNextNewMoon(), "dd.MM")] })), jsx(ChevronRightIcon, { className: "tw-w-6 tw-h-6 tw-cursor-pointer", onClick: getNextMonth })] }))] })));
|
529
488
|
};
|
530
489
|
|
531
490
|
function LoginPage() {
|
@@ -561,15 +520,7 @@ function LoginPage() {
|
|
561
520
|
}
|
562
521
|
});
|
563
522
|
}); };
|
564
|
-
return (
|
565
|
-
React.createElement("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, "Login"),
|
566
|
-
React.createElement("input", { type: "email", placeholder: "E-Mail", value: email, onChange: function (e) { return setEmail(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
567
|
-
React.createElement("input", { type: "password", placeholder: "Password", onChange: function (e) { return setPassword(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
568
|
-
React.createElement("div", { className: 'tw-text-right tw-text-primary' },
|
569
|
-
React.createElement(Link, { to: "/reset-password" },
|
570
|
-
React.createElement("span", { className: "tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200" }, "Forgot Password?"))),
|
571
|
-
React.createElement("div", { className: "tw-card-actions" },
|
572
|
-
React.createElement("button", { className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onLogin(); } }, loading ? React.createElement("span", { className: "tw-loading tw-loading-spinner" }) : 'Login'))));
|
523
|
+
return (jsxs(MapOverlayPage, __assign({ backdrop: true, className: 'tw-max-w-xs tw-h-fit' }, { children: [jsx("h2", __assign({ className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, { children: "Login" })), jsx("input", { type: "email", placeholder: "E-Mail", value: email, onChange: function (e) { return setEmail(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("input", { type: "password", placeholder: "Password", onChange: function (e) { return setPassword(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("div", __assign({ className: 'tw-text-right tw-text-primary' }, { children: jsx(Link, __assign({ to: "/reset-password" }, { children: jsx("span", __assign({ className: "tw-text-sm tw-inline-block hover:tw-text-primary hover:tw-underline hover:tw-cursor-pointer tw-transition tw-duration-200" }, { children: "Forgot Password?" })) })) })), jsx("div", __assign({ className: "tw-card-actions" }, { children: jsx("button", __assign({ className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onLogin(); } }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner" }) : 'Login' })) }))] })));
|
573
524
|
}
|
574
525
|
|
575
526
|
function SignupPage() {
|
@@ -606,13 +557,7 @@ function SignupPage() {
|
|
606
557
|
}
|
607
558
|
});
|
608
559
|
}); };
|
609
|
-
return (
|
610
|
-
React.createElement("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, "Sign Up"),
|
611
|
-
React.createElement("input", { type: "text", placeholder: "Name", value: userName, onChange: function (e) { return setUserName(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
612
|
-
React.createElement("input", { type: "email", placeholder: "E-Mail", value: email, onChange: function (e) { return setEmail(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
613
|
-
React.createElement("input", { type: "password", placeholder: "Password", onChange: function (e) { return setPassword(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
614
|
-
React.createElement("div", { className: "tw-card-actions tw-mt-4" },
|
615
|
-
React.createElement("button", { className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onRegister(); } }, loading ? React.createElement("span", { className: "tw-loading tw-loading-spinner" }) : 'Sign Up'))));
|
560
|
+
return (jsxs(MapOverlayPage, __assign({ backdrop: true, className: 'tw-max-w-xs tw-h-fit' }, { children: [jsx("h2", __assign({ className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, { children: "Sign Up" })), jsx("input", { type: "text", placeholder: "Name", value: userName, onChange: function (e) { return setUserName(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("input", { type: "email", placeholder: "E-Mail", value: email, onChange: function (e) { return setEmail(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("input", { type: "password", placeholder: "Password", onChange: function (e) { return setPassword(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("div", __assign({ className: "tw-card-actions tw-mt-4" }, { children: jsx("button", __assign({ className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onRegister(); } }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner" }) : 'Sign Up' })) }))] })));
|
616
561
|
}
|
617
562
|
|
618
563
|
function RequestPasswordPage(_a) {
|
@@ -647,11 +592,7 @@ function RequestPasswordPage(_a) {
|
|
647
592
|
}
|
648
593
|
});
|
649
594
|
}); };
|
650
|
-
return (
|
651
|
-
React.createElement("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, "Reset Password"),
|
652
|
-
React.createElement("input", { type: "email", placeholder: "E-Mail", value: email, onChange: function (e) { return setEmail(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
653
|
-
React.createElement("div", { className: "tw-card-actions tw-mt-4" },
|
654
|
-
React.createElement("button", { className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onReset(); } }, loading ? React.createElement("span", { className: "tw-loading tw-loading-spinner" }) : 'Send'))));
|
595
|
+
return (jsxs(MapOverlayPage, __assign({ backdrop: true, className: 'tw-max-w-xs tw-h-fit' }, { children: [jsx("h2", __assign({ className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, { children: "Reset Password" })), jsx("input", { type: "email", placeholder: "E-Mail", value: email, onChange: function (e) { return setEmail(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("div", __assign({ className: "tw-card-actions tw-mt-4" }, { children: jsx("button", __assign({ className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onReset(); } }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner" }) : 'Send' })) }))] })));
|
655
596
|
}
|
656
597
|
|
657
598
|
function SetNewPasswordPage() {
|
@@ -687,11 +628,7 @@ function SetNewPasswordPage() {
|
|
687
628
|
}
|
688
629
|
});
|
689
630
|
}); };
|
690
|
-
return (
|
691
|
-
React.createElement("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, "Set new Password"),
|
692
|
-
React.createElement("input", { type: "password", placeholder: "Password", onChange: function (e) { return setPassword(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }),
|
693
|
-
React.createElement("div", { className: "tw-card-actions tw-mt-4" },
|
694
|
-
React.createElement("button", { className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onReset(); } }, loading ? React.createElement("span", { className: "tw-loading tw-loading-spinner" }) : 'Set'))));
|
631
|
+
return (jsxs(MapOverlayPage, __assign({ backdrop: true, className: 'tw-max-w-xs tw-h-fit' }, { children: [jsx("h2", __assign({ className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, { children: "Set new Password" })), jsx("input", { type: "password", placeholder: "Password", onChange: function (e) { return setPassword(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full tw-max-w-xs" }), jsx("div", __assign({ className: "tw-card-actions tw-mt-4" }, { children: jsx("button", __assign({ className: loading ? 'tw-btn tw-btn-disabled tw-btn-block tw-btn-primary' : 'tw-btn tw-btn-primary tw-btn-block', onClick: function () { return onReset(); } }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner" }) : 'Set' })) }))] })));
|
695
632
|
}
|
696
633
|
|
697
634
|
var PermissionContext = createContext({
|
@@ -759,7 +696,7 @@ function usePermissionsManager(initialPermissions) {
|
|
759
696
|
}
|
760
697
|
var PermissionsProvider = function (_a) {
|
761
698
|
var initialPermissions = _a.initialPermissions, children = _a.children;
|
762
|
-
return (
|
699
|
+
return (jsx(PermissionContext.Provider, __assign({ value: usePermissionsManager(initialPermissions) }, { children: children })));
|
763
700
|
};
|
764
701
|
var useSetPermissionApi = function () {
|
765
702
|
var setPermissionApi = useContext(PermissionContext).setPermissionApi;
|
@@ -791,19 +728,11 @@ function AddButton(_a) {
|
|
791
728
|
});
|
792
729
|
return canAdd;
|
793
730
|
};
|
794
|
-
return (
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
React.createElement("ul", { tabIndex: 0, className: "tw-dropdown-content tw-pr-1 tw-list-none" }, layers.map(function (layer) {
|
800
|
-
var _a;
|
801
|
-
return (((_a = layer.api) === null || _a === void 0 ? void 0 : _a.createItem) && hasUserPermission(layer.api.collectionName, "create") && (React.createElement("li", { key: layer.name },
|
802
|
-
React.createElement("a", null,
|
803
|
-
React.createElement("div", { className: "tw-tooltip tw-tooltip-left", "data-tip": layer.menuText },
|
804
|
-
React.createElement("button", { tabIndex: 0, className: "tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none", style: { backgroundColor: layer.menuColor }, onClick: function () { setSelectNewItemPosition(layer); } },
|
805
|
-
React.createElement(layer.menuIcon, { className: "tw-h-6 tw-w-6 tw-text-white" })))))));
|
806
|
-
}))) : ""));
|
731
|
+
return (jsx(Fragment, { children: canAddItems() ?
|
732
|
+
jsxs("div", __assign({ className: "tw-dropdown tw-dropdown-top tw-dropdown-end tw-dropdown-hover tw-z-500 tw-absolute tw-right-4 tw-bottom-4" }, { children: [jsx("label", __assign({ tabIndex: 0, className: "tw-z-500 tw-btn tw-btn-circle tw-shadow tw-bg-base-100" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "2", stroke: "currentColor", className: "tw-w-5 tw-h-5" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M12 4.5v15m7.5-7.5h-15" }) })) })), jsx("ul", __assign({ tabIndex: 0, className: "tw-dropdown-content tw-pr-1 tw-list-none" }, { children: layers.map(function (layer) {
|
733
|
+
var _a;
|
734
|
+
return (((_a = layer.api) === null || _a === void 0 ? void 0 : _a.createItem) && hasUserPermission(layer.api.collectionName, "create") && (jsx("li", { children: jsx("a", { children: jsx("div", __assign({ className: "tw-tooltip tw-tooltip-left", "data-tip": layer.menuText }, { children: jsx("button", __assign({ tabIndex: 0, className: "tw-z-500 tw-border-0 tw-pl-2 tw-p-0 tw-mb-3 tw-w-10 tw-h-10 tw-cursor-pointer tw-rounded-full tw-mouse tw-drop-shadow-md tw-transition tw-ease-in tw-duration-200 focus:tw-outline-none", style: { backgroundColor: layer.menuColor }, onClick: function () { setSelectNewItemPosition(layer); } }, { children: jsx(layer.menuIcon, { className: "tw-h-6 tw-w-6 tw-text-white" }) })) })) }) }, layer.name)));
|
735
|
+
}) }))] })) : "" }));
|
807
736
|
}
|
808
737
|
|
809
738
|
var ItemContext = createContext({
|
@@ -916,7 +845,7 @@ function useItemsManager(initialItems) {
|
|
916
845
|
}
|
917
846
|
var ItemsProvider = function (_a) {
|
918
847
|
var initialItems = _a.initialItems, children = _a.children;
|
919
|
-
return (
|
848
|
+
return (jsx(ItemContext.Provider, __assign({ value: useItemsManager(initialItems) }, { children: children })));
|
920
849
|
};
|
921
850
|
var useItems = function () {
|
922
851
|
var items = useContext(ItemContext).items;
|
@@ -1055,7 +984,7 @@ function useTagsManager(initialTags) {
|
|
1055
984
|
}
|
1056
985
|
var TagsProvider = function (_a) {
|
1057
986
|
var initialTags = _a.initialTags, children = _a.children;
|
1058
|
-
return (
|
987
|
+
return (jsx(TagContext.Provider, __assign({ value: useTagsManager(initialTags) }, { children: children })));
|
1059
988
|
};
|
1060
989
|
var useTags = function () {
|
1061
990
|
var tags = useContext(TagContext).tags;
|
@@ -1216,7 +1145,7 @@ function useFilterManager(initialTags) {
|
|
1216
1145
|
}
|
1217
1146
|
var FilterProvider = function (_a) {
|
1218
1147
|
var initialTags = _a.initialTags, children = _a.children;
|
1219
|
-
return (
|
1148
|
+
return (jsx(FilterContext.Provider, __assign({ value: useFilterManager(initialTags) }, { children: children })));
|
1220
1149
|
};
|
1221
1150
|
var useFilterTags = function () {
|
1222
1151
|
var filterTags = useContext(FilterContext).filterTags;
|
@@ -1330,7 +1259,7 @@ function useLeafletRefsManager(initialLeafletRefs) {
|
|
1330
1259
|
}
|
1331
1260
|
var LeafletRefsProvider = function (_a) {
|
1332
1261
|
var initialLeafletRefs = _a.initialLeafletRefs, children = _a.children;
|
1333
|
-
return (
|
1262
|
+
return (jsx(LeafletRefsContext.Provider, __assign({ value: useLeafletRefsManager(initialLeafletRefs) }, { children: children })));
|
1334
1263
|
};
|
1335
1264
|
var useLeafletRefs = function () {
|
1336
1265
|
var leafletRefs = useContext(LeafletRefsContext).leafletRefs;
|
@@ -2314,9 +2243,7 @@ var LocateControl = function () {
|
|
2314
2243
|
setActive(true);
|
2315
2244
|
},
|
2316
2245
|
});
|
2317
|
-
return (
|
2318
|
-
React.createElement("div", { className: "tw-card tw-w-14 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300" },
|
2319
|
-
React.createElement("div", { className: "tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 ", onClick: function () {
|
2246
|
+
return (jsx(Fragment, { children: jsx("div", __assign({ className: "tw-card tw-w-14 tw-bg-base-100 tw-shadow-xl tw-items-center tw-justify-center hover:tw-bg-slate-300 hover:tw-cursor-pointer tw-transition-all tw-duration-300" }, { children: jsx("div", __assign({ className: "tw-card-body tw-card tw-p-2 tw-h-10 tw-w-10 ", onClick: function () {
|
2320
2247
|
if (active) {
|
2321
2248
|
lc.stop();
|
2322
2249
|
setActive(false);
|
@@ -2325,9 +2252,8 @@ var LocateControl = function () {
|
|
2325
2252
|
lc.start();
|
2326
2253
|
setLoading(true);
|
2327
2254
|
}
|
2328
|
-
} }, loading ?
|
2329
|
-
|
2330
|
-
React.createElement("path", { d: "M30 14.75h-2.824c-0.608-5.219-4.707-9.318-9.874-9.921l-0.053-0.005v-2.824c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.824c-5.219 0.608-9.318 4.707-9.921 9.874l-0.005 0.053h-2.824c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.824c0.608 5.219 4.707 9.318 9.874 9.921l0.053 0.005v2.824c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.824c5.219-0.608 9.318-4.707 9.921-9.874l0.005-0.053h2.824c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0zM17.25 24.624v-2.624c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.624c-3.821-0.57-6.803-3.553-7.368-7.326l-0.006-0.048h2.624c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0h-2.624c0.57-3.821 3.553-6.804 7.326-7.368l0.048-0.006v2.624c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.624c3.821 0.57 6.803 3.553 7.368 7.326l0.006 0.048h-2.624c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.624c-0.571 3.821-3.553 6.803-7.326 7.368l-0.048 0.006z" }))))));
|
2255
|
+
} }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner tw-loading-md tw-mt-1" }) :
|
2256
|
+
jsx("svg", __assign({ fill: "".concat(active ? "#fc8702" : "currentColor"), viewBox: "0 0 32 32", version: "1.1", xmlns: "http://www.w3.org/2000/svg", className: 'tw-mt-1 tw-p-[1px]' }, { children: jsx("path", { d: "M30 14.75h-2.824c-0.608-5.219-4.707-9.318-9.874-9.921l-0.053-0.005v-2.824c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.824c-5.219 0.608-9.318 4.707-9.921 9.874l-0.005 0.053h-2.824c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.824c0.608 5.219 4.707 9.318 9.874 9.921l0.053 0.005v2.824c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.824c5.219-0.608 9.318-4.707 9.921-9.874l0.005-0.053h2.824c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0zM17.25 24.624v-2.624c0-0.69-0.56-1.25-1.25-1.25s-1.25 0.56-1.25 1.25v0 2.624c-3.821-0.57-6.803-3.553-7.368-7.326l-0.006-0.048h2.624c0.69 0 1.25-0.56 1.25-1.25s-0.56-1.25-1.25-1.25v0h-2.624c0.57-3.821 3.553-6.804 7.326-7.368l0.048-0.006v2.624c0 0.69 0.56 1.25 1.25 1.25s1.25-0.56 1.25-1.25v0-2.624c3.821 0.57 6.803 3.553 7.368 7.326l0.006 0.048h-2.624c-0.69 0-1.25 0.56-1.25 1.25s0.56 1.25 1.25 1.25v0h2.624c-0.571 3.821-3.553 6.803-7.326 7.368l-0.048 0.006z" }) })) })) })) }));
|
2331
2257
|
};
|
2332
2258
|
|
2333
2259
|
var createSvg = function (shape, markerColor, borderColor) {
|
@@ -2441,84 +2367,48 @@ var SearchControl = function (_a) {
|
|
2441
2367
|
});
|
2442
2368
|
}); };
|
2443
2369
|
var searchInput = useRef(null);
|
2444
|
-
return (
|
2445
|
-
|
2446
|
-
|
2447
|
-
|
2448
|
-
|
2449
|
-
|
2450
|
-
|
2451
|
-
|
2452
|
-
|
2453
|
-
|
2454
|
-
|
2455
|
-
|
2456
|
-
|
2457
|
-
|
2458
|
-
|
2459
|
-
|
2460
|
-
|
2461
|
-
|
2462
|
-
|
2463
|
-
|
2464
|
-
|
2465
|
-
|
2466
|
-
|
2467
|
-
|
2468
|
-
|
2469
|
-
|
2470
|
-
|
2471
|
-
|
2472
|
-
|
2473
|
-
|
2474
|
-
|
2475
|
-
|
2476
|
-
|
2477
|
-
|
2478
|
-
|
2479
|
-
|
2480
|
-
|
2481
|
-
|
2482
|
-
|
2483
|
-
|
2484
|
-
|
2485
|
-
|
2486
|
-
Array.from(geoResults).length > 0 && (itemsResults.length > 0 || tagsResults.length > 0) && React.createElement("hr", { className: 'tw-opacity-50' }),
|
2487
|
-
Array.from(geoResults).map(function (geo) {
|
2488
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
2489
|
-
return (React.createElement("div", { className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', key: Math.random(), onClick: function () {
|
2490
|
-
var _a, _b;
|
2491
|
-
(_a = searchInput.current) === null || _a === void 0 ? void 0 : _a.blur();
|
2492
|
-
L$1.marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), { icon: MarkerIconFactory("circle", "#777", "RGBA(35, 31, 32, 0.2)", "circle-solid") }).addTo(map).bindPopup("<h3 class=\"tw-text-base tw-font-bold\">".concat((geo === null || geo === void 0 ? void 0 : geo.properties.name) ? geo === null || geo === void 0 ? void 0 : geo.properties.name : value, "<h3>").concat(capitalizeFirstLetter((_b = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _b === void 0 ? void 0 : _b.osm_value))).openPopup().addEventListener("popupclose", function (e) { console.log(e.target.remove()); });
|
2493
|
-
if (geo.properties.extent)
|
2494
|
-
map.fitBounds(new LatLngBounds(new LatLng(geo.properties.extent[1], geo.properties.extent[0]), new LatLng(geo.properties.extent[3], geo.properties.extent[2])));
|
2495
|
-
else
|
2496
|
-
map.setView(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), 15, { duration: 1 });
|
2497
|
-
hide();
|
2498
|
-
} },
|
2499
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "tw-text-current tw-mr-2 tw-mt-0 tw-w-4" },
|
2500
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" })),
|
2501
|
-
React.createElement("div", null,
|
2502
|
-
React.createElement("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, (geo === null || geo === void 0 ? void 0 : geo.properties.name) ? geo === null || geo === void 0 ? void 0 : geo.properties.name : value),
|
2503
|
-
React.createElement("div", { className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' },
|
2504
|
-
((_a = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _a === void 0 ? void 0 : _a.city) && "".concat(capitalizeFirstLetter((_b = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _b === void 0 ? void 0 : _b.city), ", "),
|
2505
|
-
" ",
|
2506
|
-
((_c = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _c === void 0 ? void 0 : _c.osm_value) && ((_d = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _d === void 0 ? void 0 : _d.osm_value) !== "yes" && ((_e = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _e === void 0 ? void 0 : _e.osm_value) !== "primary" && ((_f = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _f === void 0 ? void 0 : _f.osm_value) !== "path" && ((_g = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _g === void 0 ? void 0 : _g.osm_value) !== "secondary" && ((_h = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _h === void 0 ? void 0 : _h.osm_value) !== "residential" && ((_j = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _j === void 0 ? void 0 : _j.osm_value) !== "unclassified" && "".concat(capitalizeFirstLetter((_k = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _k === void 0 ? void 0 : _k.osm_value), ", "),
|
2507
|
-
" ",
|
2508
|
-
geo.properties.state && "".concat(geo.properties.state, ", "),
|
2509
|
-
" ",
|
2510
|
-
geo.properties.country && geo.properties.country))));
|
2511
|
-
}),
|
2512
|
-
isGeoCoordinate(value) &&
|
2513
|
-
React.createElement("div", { className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: function () {
|
2514
|
-
L$1.marker(new LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), { icon: MarkerIconFactory("circle", "#777", "RGBA(35, 31, 32, 0.2)", "circle-solid") }).addTo(map).bindPopup("<h3 class=\"tw-text-base tw-font-bold\">".concat(extractCoordinates(value)[0], ", ").concat(extractCoordinates(value)[1], "</h3>")).openPopup().addEventListener("popupclose", function (e) { console.log(e.target.remove()); });
|
2515
|
-
map.setView(new LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), 15, { duration: 1 });
|
2516
|
-
} },
|
2517
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: "tw-text-current tw-mr-2 tw-mt-0 tw-w-4" },
|
2518
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5" })),
|
2519
|
-
React.createElement("div", null,
|
2520
|
-
React.createElement("div", { className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, value),
|
2521
|
-
React.createElement("div", { className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, "Coordiante")))))));
|
2370
|
+
return (jsx(Fragment, { children: !(windowDimensions.height < 500 && popupOpen && hideSuggestions) &&
|
2371
|
+
jsxs("div", __assign({ className: 'tw-w-[calc(100vw-2rem)] tw-max-w-[22rem] ' }, { children: [jsxs("div", __assign({ className: 'flex tw-flex-row' }, { children: [jsx("input", { type: "text", placeholder: "search ...", autoComplete: "off", value: value, className: "tw-input tw-input-bordered tw-w-full tw-shadow-xl tw-rounded-lg tw-mr-2", ref: searchInput, onChange: function (e) { return setValue(e.target.value); }, onFocus: function () {
|
2372
|
+
setHideSuggestions(false);
|
2373
|
+
if (windowDimensions.width < 500)
|
2374
|
+
map.closePopup();
|
2375
|
+
}, onBlur: function () { return hide(); } }), jsx(LocateControl, {})] })), value.length > 0 && jsx("button", __assign({ className: "tw-btn tw-btn-sm tw-btn-circle tw-absolute tw-right-16 tw-top-2", onClick: function () { return setValue(""); } }, { children: "\u2715" })), hideSuggestions || Array.from(geoResults).length == 0 && itemsResults.length == 0 && tagsResults.length == 0 && !isGeoCoordinate(value) || value.length == 0 ? "" :
|
2376
|
+
jsxs("div", __assign({ className: 'tw-card tw-card-body tw-bg-base-100 tw-p-4 tw-mt-2 tw-shadow-xl tw-overflow-y-auto tw-max-h-[calc(100dvh-152px)]' }, { children: [tagsResults.length > 0 &&
|
2377
|
+
jsx("div", __assign({ className: 'tw-flex tw-flex-wrap tw-max-h-16 tw-overflow-hidden tw-min-h-[32px]' }, { children: tagsResults.map(function (tag) { return (jsx("div", __assign({ className: 'tw-rounded-2xl tw-text-white tw-p-1 tw-px-4 tw-shadow-md tw-card tw-mr-2 tw-mb-2 tw-cursor-pointer', style: { backgroundColor: tag.color }, onClick: function () {
|
2378
|
+
addFilterTag(tag);
|
2379
|
+
var params = new URLSearchParams(window.location.search);
|
2380
|
+
window.history.pushState({}, "", "/" + "".concat(params ? "?".concat(params) : ""));
|
2381
|
+
} }, { children: jsxs("b", { children: ["#", decodeTag(tag.name)] }) }), tag.name)); }) })), itemsResults.length > 0 && tagsResults.length > 0 && jsx("hr", { className: 'tw-opacity-50' }), itemsResults.slice(0, 5).map(function (item) { return (jsx("div", __assign({ className: 'tw-cursor-pointer hover:tw-font-bold', onClick: function () {
|
2382
|
+
var _a, _b;
|
2383
|
+
var marker = (_a = Object.entries(leafletRefs).find(function (r) { return r[1].item == item; })) === null || _a === void 0 ? void 0 : _a[1].marker;
|
2384
|
+
if (filterTags.length > 0) {
|
2385
|
+
marker !== null && window.history.pushState({}, "", "/".concat(item.layer.name, "/").concat(item.id));
|
2386
|
+
resetFilterTags();
|
2387
|
+
hide();
|
2388
|
+
}
|
2389
|
+
else {
|
2390
|
+
marker !== null && ((_b = clusterRef === null || clusterRef === void 0 ? void 0 : clusterRef.current) === null || _b === void 0 ? void 0 : _b.zoomToShowLayer(marker, function () {
|
2391
|
+
marker === null || marker === void 0 ? void 0 : marker.openPopup();
|
2392
|
+
hide();
|
2393
|
+
}));
|
2394
|
+
}
|
2395
|
+
} }, { children: jsxs("div", __assign({ className: 'tw-flex tw-flex-row' }, { children: [jsx(item.layer.menuIcon, { className: "tw-text-current tw-w-5 tw-mr-2 tw-mt-0" }), jsxs("div", { children: [jsx("div", __assign({ className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, { children: item.name })), jsx("div", __assign({ className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, { children: item.text }))] })] })) }), item.id)); }), Array.from(geoResults).length > 0 && (itemsResults.length > 0 || tagsResults.length > 0) && jsx("hr", { className: 'tw-opacity-50' }), Array.from(geoResults).map(function (geo) {
|
2396
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
2397
|
+
return (jsxs("div", __assign({ className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: function () {
|
2398
|
+
var _a, _b;
|
2399
|
+
(_a = searchInput.current) === null || _a === void 0 ? void 0 : _a.blur();
|
2400
|
+
L$1.marker(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), { icon: MarkerIconFactory("circle", "#777", "RGBA(35, 31, 32, 0.2)", "circle-solid") }).addTo(map).bindPopup("<h3 class=\"tw-text-base tw-font-bold\">".concat((geo === null || geo === void 0 ? void 0 : geo.properties.name) ? geo === null || geo === void 0 ? void 0 : geo.properties.name : value, "<h3>").concat(capitalizeFirstLetter((_b = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _b === void 0 ? void 0 : _b.osm_value))).openPopup().addEventListener("popupclose", function (e) { console.log(e.target.remove()); });
|
2401
|
+
if (geo.properties.extent)
|
2402
|
+
map.fitBounds(new LatLngBounds(new LatLng(geo.properties.extent[1], geo.properties.extent[0]), new LatLng(geo.properties.extent[3], geo.properties.extent[2])));
|
2403
|
+
else
|
2404
|
+
map.setView(new LatLng(geo.geometry.coordinates[1], geo.geometry.coordinates[0]), 15, { duration: 1 });
|
2405
|
+
hide();
|
2406
|
+
} }, { children: [jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "tw-text-current tw-mr-2 tw-mt-0 tw-w-4" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z" }) })), jsxs("div", { children: [jsx("div", __assign({ className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, { children: (geo === null || geo === void 0 ? void 0 : geo.properties.name) ? geo === null || geo === void 0 ? void 0 : geo.properties.name : value })), jsxs("div", __assign({ className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, { children: [((_a = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _a === void 0 ? void 0 : _a.city) && "".concat(capitalizeFirstLetter((_b = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _b === void 0 ? void 0 : _b.city), ", "), " ", ((_c = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _c === void 0 ? void 0 : _c.osm_value) && ((_d = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _d === void 0 ? void 0 : _d.osm_value) !== "yes" && ((_e = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _e === void 0 ? void 0 : _e.osm_value) !== "primary" && ((_f = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _f === void 0 ? void 0 : _f.osm_value) !== "path" && ((_g = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _g === void 0 ? void 0 : _g.osm_value) !== "secondary" && ((_h = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _h === void 0 ? void 0 : _h.osm_value) !== "residential" && ((_j = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _j === void 0 ? void 0 : _j.osm_value) !== "unclassified" && "".concat(capitalizeFirstLetter((_k = geo === null || geo === void 0 ? void 0 : geo.properties) === null || _k === void 0 ? void 0 : _k.osm_value), ", "), " ", geo.properties.state && "".concat(geo.properties.state, ", "), " ", geo.properties.country && geo.properties.country] }))] })] }), Math.random()));
|
2407
|
+
}), isGeoCoordinate(value) &&
|
2408
|
+
jsxs("div", __assign({ className: 'tw-flex tw-flex-row hover:tw-font-bold tw-cursor-pointer', onClick: function () {
|
2409
|
+
L$1.marker(new LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), { icon: MarkerIconFactory("circle", "#777", "RGBA(35, 31, 32, 0.2)", "circle-solid") }).addTo(map).bindPopup("<h3 class=\"tw-text-base tw-font-bold\">".concat(extractCoordinates(value)[0], ", ").concat(extractCoordinates(value)[1], "</h3>")).openPopup().addEventListener("popupclose", function (e) { console.log(e.target.remove()); });
|
2410
|
+
map.setView(new LatLng(extractCoordinates(value)[0], extractCoordinates(value)[1]), 15, { duration: 1 });
|
2411
|
+
} }, { children: [jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "currentColor", className: "tw-text-current tw-mr-2 tw-mt-0 tw-w-4" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 3v1.5M3 21v-6m0 0 2.77-.693a9 9 0 0 1 6.208.682l.108.054a9 9 0 0 0 6.086.71l3.114-.732a48.524 48.524 0 0 1-.005-10.499l-3.11.732a9 9 0 0 1-6.085-.711l-.108-.054a9 9 0 0 0-6.208-.682L3 4.5M3 15V4.5" }) })), jsxs("div", { children: [jsx("div", __assign({ className: 'tw-text-sm tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, { children: value })), jsx("div", __assign({ className: 'tw-text-xs tw-overflow-hidden tw-text-ellipsis tw-whitespace-nowrap tw-max-w-[17rem]' }, { children: "Coordiante" }))] })] }))] }))] })) }));
|
2522
2412
|
};
|
2523
2413
|
function isGeoCoordinate(input) {
|
2524
2414
|
var geokoordinatenRegex = /^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$/;
|
@@ -2550,25 +2440,16 @@ function LayerControl() {
|
|
2550
2440
|
var isLayerVisible = useIsLayerVisible();
|
2551
2441
|
var toggleVisibleLayer = useToggleVisibleLayer();
|
2552
2442
|
var addVisibleLayer = useAddVisibleLayer();
|
2553
|
-
return (
|
2554
|
-
|
2555
|
-
|
2556
|
-
|
2557
|
-
|
2558
|
-
|
2559
|
-
|
2560
|
-
|
2561
|
-
|
2562
|
-
|
2563
|
-
React.createElement("span", { className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer' }, layer.name)));
|
2564
|
-
})))
|
2565
|
-
:
|
2566
|
-
React.createElement("div", { className: "tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer", onClick: function () {
|
2567
|
-
setOpen(true);
|
2568
|
-
} },
|
2569
|
-
React.createElement("svg", { version: "1.1", viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg" },
|
2570
|
-
React.createElement("path", { id: "svg_1", fill: "currentColor", d: "m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z" }),
|
2571
|
-
React.createElement("path", { id: "svg_2", strokeWidth: "2", stroke: "currentColor", fill: "none", d: "m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z" })))));
|
2443
|
+
return (jsx("div", __assign({ className: "tw-card tw-bg-base-100 tw-shadow-xl " }, { children: open ?
|
2444
|
+
jsxs("div", __assign({ className: "tw-card-body tw-p-2 tw-w-32 tw-transition-all tw-duration-300" }, { children: [jsx("label", __assign({ className: "tw-btn tw-btn-sm tw-rounded-2xl tw-btn-circle tw-btn-ghost hover:tw-bg-transparent tw-absolute tw-right-0 tw-top-0 tw-text-gray-600", onClick: function () {
|
2445
|
+
setOpen(false);
|
2446
|
+
} }, { children: jsx("p", __assign({ className: 'tw-text-center ' }, { children: "\u2715" })) })), jsx("ul", __assign({ className: 'tw-flex-row' }, { children: layers.map(function (layer) {
|
2447
|
+
return jsx("li", { children: jsxs("label", __assign({ htmlFor: layer.name, className: "tw-label tw-justify-normal tw-pt-1 tw-pb-1" }, { children: [jsx("input", { id: layer.name, onChange: function () { return toggleVisibleLayer(layer); }, type: "checkbox", className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: isLayerVisible(layer) }), jsx("span", __assign({ className: 'tw-text-sm tw-label-text tw-mx-2 tw-cursor-pointer' }, { children: layer.name }))] })) }, layer.name);
|
2448
|
+
}) }))] }))
|
2449
|
+
:
|
2450
|
+
jsx("div", __assign({ className: "tw-card-body hover:tw-bg-slate-300 tw-card tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer", onClick: function () {
|
2451
|
+
setOpen(true);
|
2452
|
+
} }, { children: jsxs("svg", __assign({ version: "1.1", viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg" }, { children: [jsx("path", { id: "svg_1", fill: "currentColor", d: "m2.75565,11.90727l-1.03852,0.28372c-0.77718,0.38859 -0.77718,1.0138 0,1.4023l7.0156,3.5078c0.77718,0.38859 2.0275,0.38859 2.8047,0l7.0156,-3.5078c0.77718,-0.38859 0.77718,-1.0138 0,-1.4023l-0.63311,-0.48643l-4.67718,2.23624c-1.5452,0.77262 -3.31877,1.58343 -4.86407,0.81081l-5.62302,-2.84434z" }), jsx("path", { id: "svg_2", strokeWidth: "2", stroke: "currentColor", fill: "none", d: "m11.247,4.30851l6.2349,3.0877c0.69083,0.34211 0.69083,0.89295 0,1.2351l-6.2349,3.0877c-0.69083,0.34211 -1.8031,0.34212 -2.494,0l-6.2349,-3.0877c-0.69083,-0.34211 -0.69083,-0.89295 0,-1.2351l6.2349,-3.0877c0.69083,-0.34211 1.8031,-0.34211 2.494,0z" })] })) })) })));
|
2572
2453
|
}
|
2573
2454
|
|
2574
2455
|
var QuestContext = createContext({
|
@@ -2584,7 +2465,7 @@ function useQuestsManager(initialOpen) {
|
|
2584
2465
|
}
|
2585
2466
|
var QuestsProvider = function (_a) {
|
2586
2467
|
var initialOpen = _a.initialOpen, children = _a.children;
|
2587
|
-
return (
|
2468
|
+
return (jsx(QuestContext.Provider, __assign({ value: useQuestsManager(initialOpen) }, { children: children })));
|
2588
2469
|
};
|
2589
2470
|
var useQuestsOpen = function () {
|
2590
2471
|
var open = useContext(QuestContext).open;
|
@@ -2598,11 +2479,8 @@ var useSetQuestOpen = function () {
|
|
2598
2479
|
function QuestControl() {
|
2599
2480
|
var questsOpen = useQuestsOpen();
|
2600
2481
|
var setQuestsOpen = useSetQuestOpen();
|
2601
|
-
return (
|
2602
|
-
|
2603
|
-
React.createElement("div", { className: "tw-card-body hover:tw-bg-slate-300 tw-rounded-2xl tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer", onClick: function () { return setQuestsOpen(true); } },
|
2604
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", stroke: "currentColor", viewBox: "0 0 448 512" },
|
2605
|
-
React.createElement("path", { d: "M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z" }))))));
|
2482
|
+
return (jsx(Fragment, { children: questsOpen ? "" :
|
2483
|
+
jsx("div", __assign({ className: "tw-card tw-bg-base-100 tw-shadow-xl tw-my-2 tw-w-10", onClick: function (e) { return e.stopPropagation(); } }, { children: jsx("div", __assign({ className: "tw-card-body hover:tw-bg-slate-300 tw-rounded-2xl tw-p-2 tw-h-10 tw-w-10 tw-transition-all tw-duration-300 hover:tw-cursor-pointer", onClick: function () { return setQuestsOpen(true); } }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "currentColor", stroke: "currentColor", viewBox: "0 0 448 512" }, { children: jsx("path", { d: "M192 0c17.7 0 32 14.3 32 32V144H160V32c0-17.7 14.3-32 32-32zM64 64c0-17.7 14.3-32 32-32s32 14.3 32 32v80H64V64zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32v96c0 17.7-14.3 32-32 32s-32-14.3-32-32V64zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32v64c0 17.7-14.3 32-32 32s-32-14.3-32-32V128zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6c13.2 0 25.4-4 35.6-10.8c8.7 24.9 32.5 42.8 60.4 42.8c11.7 0 22.6-3.1 32-8.6V256c0 52.3-25.1 98.8-64 128v96c0 17.7-14.3 32-32 32H160c-17.7 0-32-14.3-32-32V401.6c-17.3-7.9-33.2-18.8-46.9-32.5L69.5 357.5C45.5 333.5 32 300.9 32 267V240c0-35.3 28.7-64 64-64h88c22.1 0 40 17.9 40 40s-17.9 40-40 40H128c-8.8 0-16 7.2-16 16s7.2 16 16 16h56c39.8 0 72-32.2 72-72z" }) })) })) })) }));
|
2606
2484
|
}
|
2607
2485
|
|
2608
2486
|
var Control = function (_a) {
|
@@ -2614,20 +2492,15 @@ var Control = function (_a) {
|
|
2614
2492
|
L$1.DomEvent.disableScrollPropagation(controlContainerRef.current);
|
2615
2493
|
}
|
2616
2494
|
}, [controlContainerRef]);
|
2617
|
-
return (
|
2495
|
+
return (jsx("div", __assign({ ref: controlContainerRef, style: { zIndex: zIndex }, className: "tw-absolute tw-z-[999] tw-flex-col ".concat(position === 'topLeft' && "tw-top-4 tw-left-4", " ").concat(position === 'bottomLeft' && "tw-bottom-4 tw-left-4", " ").concat(position === 'topRight' && "tw-bottom-4 tw-right-4", " ").concat(position === 'bottomRight' && "tw-bottom-4 tw-right-4") }, { children: children })));
|
2618
2496
|
};
|
2619
2497
|
|
2620
2498
|
var TagsControl = function () {
|
2621
2499
|
var filterTags = useFilterTags();
|
2622
2500
|
var removeFilterTag = useRemoveFilterTag();
|
2623
|
-
return (
|
2624
|
-
|
2625
|
-
|
2626
|
-
React.createElement("label", { className: "tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600", onClick: function () { return (removeFilterTag(tag.name)); } }, "\u2715")),
|
2627
|
-
React.createElement("b", null,
|
2628
|
-
"#",
|
2629
|
-
decodeTag(tag.name)));
|
2630
|
-
})));
|
2501
|
+
return (jsx("div", __assign({ className: 'tw-flex tw-flex-wrap tw-mt-4 tw-w-[calc(100vw-2rem)] tw-max-w-xs' }, { children: filterTags.map(function (tag) {
|
2502
|
+
return jsxs("div", __assign({ className: 'tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-mr-2 tw-mb-2', style: { backgroundColor: tag.color } }, { children: [jsx("div", __assign({ className: "tw-card-actions tw-justify-end" }, { children: jsx("label", __assign({ className: "tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600", onClick: function () { return (removeFilterTag(tag.name)); } }, { children: "\u2715" })) })), jsxs("b", { children: ["#", decodeTag(tag.name)] })] }), tag.id);
|
2503
|
+
}) })));
|
2631
2504
|
};
|
2632
2505
|
|
2633
2506
|
// for refreshing map on resize (needs to be implemented)
|
@@ -2663,37 +2536,11 @@ function UtopiaMap(_a) {
|
|
2663
2536
|
var params = new URLSearchParams(location.search);
|
2664
2537
|
params.get("position");
|
2665
2538
|
}, [location]);
|
2666
|
-
return (
|
2667
|
-
|
2668
|
-
|
2669
|
-
|
2670
|
-
|
2671
|
-
React.createElement(ItemsProvider, { initialItems: [] },
|
2672
|
-
React.createElement(LeafletRefsProvider, { initialLeafletRefs: {} },
|
2673
|
-
React.createElement("div", { className: (selectNewItemPosition != null ? "crosshair-cursor-enabled" : undefined) },
|
2674
|
-
React.createElement(MapContainer, { ref: mapDivRef, style: { height: height, width: width }, center: new LatLng(center[0], center[1]), zoom: zoom, zoomControl: false },
|
2675
|
-
React.createElement(Outlet, null),
|
2676
|
-
React.createElement(Control, { position: 'topLeft', zIndex: "1000" },
|
2677
|
-
React.createElement(SearchControl, { clusterRef: clusterRef }),
|
2678
|
-
React.createElement(TagsControl, null)),
|
2679
|
-
React.createElement(Control, { position: 'bottomLeft', zIndex: "999" },
|
2680
|
-
React.createElement(QuestControl, null),
|
2681
|
-
React.createElement(LayerControl, null)),
|
2682
|
-
React.createElement(TileLayer, { attribution: '\u00A9 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors', url: "https://tile.osmand.net/hd/{z}/{x}/{y}.png" }),
|
2683
|
-
React.createElement(MarkerClusterGroup, { ref: clusterRef, showCoverageOnHover: true, chunkedLoading: true, maxClusterRadius: 50, removeOutsideVisibleBounds: false }, React.Children.toArray(children).map(function (child) {
|
2684
|
-
return React.isValidElement(child) ?
|
2685
|
-
React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup, clusterRef: clusterRef }) : child;
|
2686
|
-
})),
|
2687
|
-
React.createElement(MapEventListener, { setSelectNewItemPosition: setSelectNewItemPosition, selectNewItemPosition: selectNewItemPosition, setItemFormPopup: setItemFormPopup })),
|
2688
|
-
React.createElement(AddButton, { setSelectNewItemPosition: setSelectNewItemPosition }),
|
2689
|
-
selectNewItemPosition != null &&
|
2690
|
-
React.createElement("div", { className: "tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md" },
|
2691
|
-
React.createElement("div", { className: "tw-alert tw-bg-base-100 tw-text-base-content" },
|
2692
|
-
React.createElement("div", null,
|
2693
|
-
React.createElement("span", null,
|
2694
|
-
"Select ",
|
2695
|
-
selectNewItemPosition.name,
|
2696
|
-
" position!")))))))))))));
|
2539
|
+
return (jsx(Fragment, { children: jsx(LayersProvider, __assign({ initialLayers: [] }, { children: jsx(TagsProvider, __assign({ initialTags: [] }, { children: jsx(PermissionsProvider, __assign({ initialPermissions: [] }, { children: jsx(FilterProvider, __assign({ initialTags: [] }, { children: jsx(ItemsProvider, __assign({ initialItems: [] }, { children: jsx(LeafletRefsProvider, __assign({ initialLeafletRefs: {} }, { children: jsxs("div", __assign({ className: (selectNewItemPosition != null ? "crosshair-cursor-enabled" : undefined) }, { children: [jsxs(MapContainer, __assign({ ref: mapDivRef, style: { height: height, width: width }, center: new LatLng(center[0], center[1]), zoom: zoom, zoomControl: false }, { children: [jsx(Outlet, {}), jsxs(Control, __assign({ position: 'topLeft', zIndex: "1000" }, { children: [jsx(SearchControl, { clusterRef: clusterRef }), jsx(TagsControl, {})] })), jsxs(Control, __assign({ position: 'bottomLeft', zIndex: "999" }, { children: [jsx(QuestControl, {}), jsx(LayerControl, {})] })), jsx(TileLayer, { attribution: '\u00A9 <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors', url: "https://tile.osmand.net/hd/{z}/{x}/{y}.png" }), jsx(MarkerClusterGroup, __assign({ ref: clusterRef, showCoverageOnHover: true, chunkedLoading: true, maxClusterRadius: 50, removeOutsideVisibleBounds: false }, { children: React.Children.toArray(children).map(function (child) {
|
2540
|
+
return React.isValidElement(child) ?
|
2541
|
+
React.cloneElement(child, { setItemFormPopup: setItemFormPopup, itemFormPopup: itemFormPopup, clusterRef: clusterRef }) : child;
|
2542
|
+
}) })), jsx(MapEventListener, { setSelectNewItemPosition: setSelectNewItemPosition, selectNewItemPosition: selectNewItemPosition, setItemFormPopup: setItemFormPopup })] })), jsx(AddButton, { setSelectNewItemPosition: setSelectNewItemPosition }), selectNewItemPosition != null &&
|
2543
|
+
jsx("div", __assign({ className: "tw-button tw-z-1000 tw-absolute tw-right-5 tw-top-4 tw-drop-shadow-md" }, { children: jsx("div", __assign({ className: "tw-alert tw-bg-base-100 tw-text-base-content" }, { children: jsx("div", { children: jsxs("span", { children: ["Select ", selectNewItemPosition.name, " position!"] }) }) })) }))] })) })) })) })) })) })) })) }));
|
2697
2544
|
}
|
2698
2545
|
|
2699
2546
|
var AssetContext = createContext({
|
@@ -2709,7 +2556,7 @@ function useAssetsManager() {
|
|
2709
2556
|
}
|
2710
2557
|
var AssetsProvider = function (_a) {
|
2711
2558
|
var children = _a.children;
|
2712
|
-
return (
|
2559
|
+
return (jsx(AssetContext.Provider, __assign({ value: useAssetsManager() }, { children: children })));
|
2713
2560
|
};
|
2714
2561
|
var useAssetApi = function () {
|
2715
2562
|
var api = useContext(AssetContext).api;
|
@@ -2743,13 +2590,9 @@ var DialogModal = function (_a) {
|
|
2743
2590
|
document.body.classList.remove("modal-open");
|
2744
2591
|
}
|
2745
2592
|
}, [isOpened]);
|
2746
|
-
return (
|
2593
|
+
return (jsx("dialog", __assign({ className: 'tw-card tw-shadow-xl tw-absolute tw-right-0 tw-top-0 tw-bottom-0 tw-left-0 tw-m-auto tw-transition-opacity tw-duration-300 tw-p-4 tw-max-w-xl tw-bg-base-100', ref: ref, onCancel: onClose, onClick: function (e) {
|
2747
2594
|
return ref.current && !isClickInsideRectangle(e, ref.current) && onClose();
|
2748
|
-
} },
|
2749
|
-
React.createElement("div", { className: "tw-card-body tw-p-2" },
|
2750
|
-
React.createElement("h2", { className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, title),
|
2751
|
-
children,
|
2752
|
-
showCloseButton && React.createElement("button", { className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2", onClick: onClose }, "\u2715"))));
|
2595
|
+
} }, { children: jsxs("div", __assign({ className: "tw-card-body tw-p-2" }, { children: [jsx("h2", __assign({ className: 'tw-text-2xl tw-font-semibold tw-mb-2 tw-text-center' }, { children: title })), children, showCloseButton && jsx("button", __assign({ className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2", onClick: onClose }, { children: "\u2715" }))] })) })));
|
2753
2596
|
};
|
2754
2597
|
|
2755
2598
|
function HeaderView(_a) {
|
@@ -2814,46 +2657,19 @@ function HeaderView(_a) {
|
|
2814
2657
|
if (setItemFormPopup)
|
2815
2658
|
setItemFormPopup({ position: new LatLng(item.position.coordinates[1], item.position.coordinates[0]), layer: item.layer, item: item, setItemFormPopup: setItemFormPopup });
|
2816
2659
|
};
|
2817
|
-
return (
|
2818
|
-
|
2819
|
-
|
2820
|
-
|
2821
|
-
|
2822
|
-
|
2823
|
-
|
2824
|
-
|
2825
|
-
|
2826
|
-
|
2827
|
-
|
2828
|
-
|
2829
|
-
|
2830
|
-
React.createElement("div", { className: "tw-dropdown tw-dropdown-bottom" },
|
2831
|
-
React.createElement("label", { tabIndex: 0, className: "tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6" },
|
2832
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" },
|
2833
|
-
React.createElement("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }))),
|
2834
|
-
React.createElement("ul", { tabIndex: 0, className: "tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000" },
|
2835
|
-
((item.layer.api.updateItem && hasUserPermission((_q = item.layer.api) === null || _q === void 0 ? void 0 : _q.collectionName, "update")) || item.layer.customEditLink) && React.createElement("li", null,
|
2836
|
-
React.createElement("a", { className: "!tw-text-base-content tw-cursor-pointer", onClick: function (e) {
|
2837
|
-
var _a, _b;
|
2838
|
-
((_a = item.layer) === null || _a === void 0 ? void 0 : _a.customEditLink) && navigate(item.layer.customEditLink);
|
2839
|
-
!((_b = item.layer) === null || _b === void 0 ? void 0 : _b.customEditLink) && openEditPopup(e);
|
2840
|
-
} },
|
2841
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" },
|
2842
|
-
React.createElement("path", { d: "M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z" })))),
|
2843
|
-
item.layer.api.deleteItem && hasUserPermission((_r = item.layer.api) === null || _r === void 0 ? void 0 : _r.collectionName, "delete") && React.createElement("li", null,
|
2844
|
-
React.createElement("a", { className: 'tw-cursor-pointer !tw-text-error', onClick: openDeleteModal }, loading ? React.createElement("span", { className: "tw-loading tw-loading-spinner tw-loading-sm" })
|
2845
|
-
:
|
2846
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" },
|
2847
|
-
React.createElement("path", { fillRule: "evenodd", d: "M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z", clipRule: "evenodd" })))))))),
|
2848
|
-
React.createElement(DialogModal, { isOpened: modalOpen, title: "Are you sure?", showCloseButton: false, onClose: function () { return (setModalOpen(false)); } },
|
2849
|
-
React.createElement("span", null,
|
2850
|
-
"Do you want to delte ",
|
2851
|
-
React.createElement("b", null, item.name),
|
2852
|
-
"?"),
|
2853
|
-
React.createElement("div", { className: "tw-grid" },
|
2854
|
-
React.createElement("div", { className: "tw-flex tw-justify-between" },
|
2855
|
-
React.createElement("label", { className: "tw-btn tw-mt-4 tw-btn-error", onClick: removeItemFromMap }, "Yes"),
|
2856
|
-
React.createElement("label", { className: "tw-btn tw-mt-4", onClick: function () { return setModalOpen(false); } }, "No"))))));
|
2660
|
+
return (jsxs(Fragment, { children: [jsxs("div", __assign({ className: 'tw-grid tw-grid-cols-6 tw-pb-2' }, { children: [jsx("div", __assign({ className: 'tw-col-span-5' }, { children: jsxs("div", __assign({ className: "tw-flex tw-flex-row" }, { children: [avatar ?
|
2661
|
+
jsx("div", __assign({ className: "tw-w-10 tw-rounded-full" }, { children: jsx("img", { className: "tw-rounded-full", src: "".concat(avatar, "?width=80&height=80") }) }))
|
2662
|
+
:
|
2663
|
+
"", jsx("b", __assign({ className: "tw-text-xl tw-font-bold ".concat(avatar ? "tw-ml-2 tw-mt-1" : "") }, { children: title ? title : item.name }))] })) })), jsx("div", __assign({ className: 'tw-col-span-1' }, { children: (((_k = (_j = item.layer) === null || _j === void 0 ? void 0 : _j.api) === null || _k === void 0 ? void 0 : _k.deleteItem) || ((_m = (_l = item.layer) === null || _l === void 0 ? void 0 : _l.api) === null || _m === void 0 ? void 0 : _m.updateItem))
|
2664
|
+
&& ((user && (owner === null || owner === void 0 ? void 0 : owner.id) === user.id) || owner == undefined)
|
2665
|
+
&& (hasUserPermission((_o = item.layer.api) === null || _o === void 0 ? void 0 : _o.collectionName, "delete") || hasUserPermission((_p = item.layer.api) === null || _p === void 0 ? void 0 : _p.collectionName, "update")) &&
|
2666
|
+
jsxs("div", __assign({ className: "tw-dropdown tw-dropdown-bottom" }, { children: [jsx("label", __assign({ tabIndex: 0, className: "tw-bg-base-100 tw-btn tw-m-1 tw-leading-3 tw-border-none tw-min-h-0 tw-h-6" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }) })) })), jsxs("ul", __assign({ tabIndex: 0, className: "tw-dropdown-content tw-menu tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-z-1000" }, { children: [((item.layer.api.updateItem && hasUserPermission((_q = item.layer.api) === null || _q === void 0 ? void 0 : _q.collectionName, "update")) || item.layer.customEditLink) && jsx("li", { children: jsx("a", __assign({ className: "!tw-text-base-content tw-cursor-pointer", onClick: function (e) {
|
2667
|
+
var _a, _b;
|
2668
|
+
((_a = item.layer) === null || _a === void 0 ? void 0 : _a.customEditLink) && navigate(item.layer.customEditLink);
|
2669
|
+
!((_b = item.layer) === null || _b === void 0 ? void 0 : _b.customEditLink) && openEditPopup(e);
|
2670
|
+
} }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z" }) })) })) }), item.layer.api.deleteItem && hasUserPermission((_r = item.layer.api) === null || _r === void 0 ? void 0 : _r.collectionName, "delete") && jsx("li", { children: jsx("a", __assign({ className: 'tw-cursor-pointer !tw-text-error', onClick: openDeleteModal }, { children: loading ? jsx("span", { className: "tw-loading tw-loading-spinner tw-loading-sm" })
|
2671
|
+
:
|
2672
|
+
jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { fillRule: "evenodd", d: "M9 2a1 1 0 00-.894.553L7.382 4H4a1 1 0 000 2v10a2 2 0 002 2h8a2 2 0 002-2V6a1 1 0 100-2h-3.382l-.724-1.447A1 1 0 0011 2H9zM7 8a1 1 0 012 0v6a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v6a1 1 0 102 0V8a1 1 0 00-1-1z", clipRule: "evenodd" }) })) })) })] }))] })) }))] })), jsxs(DialogModal, __assign({ isOpened: modalOpen, title: "Are you sure?", showCloseButton: false, onClose: function () { return (setModalOpen(false)); } }, { children: [jsxs("span", { children: ["Do you want to delte ", jsx("b", { children: item.name }), "?"] }), jsx("div", __assign({ className: "tw-grid" }, { children: jsxs("div", __assign({ className: "tw-flex tw-justify-between" }, { children: [jsx("label", __assign({ className: "tw-btn tw-mt-4 tw-btn-error", onClick: removeItemFromMap }, { children: "Yes" })), jsx("label", __assign({ className: "tw-btn tw-mt-4", onClick: function () { return setModalOpen(false); } }, { children: "No" }))] })) }))] }))] }));
|
2857
2673
|
}
|
2858
2674
|
|
2859
2675
|
var urlRegex = /(^| )(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,10}(:[0-9]{1,10})?(\/.*)?$/gm;
|
@@ -2902,66 +2718,64 @@ var TextView = function (_a) {
|
|
2902
2718
|
}) : "";
|
2903
2719
|
var CustomH1 = function (_a) {
|
2904
2720
|
var children = _a.children;
|
2905
|
-
return (
|
2721
|
+
return (jsx("h1", __assign({ className: "tw-text-xl tw-font-bold" }, { children: children })));
|
2906
2722
|
};
|
2907
2723
|
var CustomH2 = function (_a) {
|
2908
2724
|
var children = _a.children;
|
2909
|
-
return (
|
2725
|
+
return (jsx("h2", __assign({ className: "tw-text-lg tw-font-bold" }, { children: children })));
|
2910
2726
|
};
|
2911
2727
|
var CustomH3 = function (_a) {
|
2912
2728
|
var children = _a.children;
|
2913
|
-
return (
|
2729
|
+
return (jsx("h3", __assign({ className: "tw-text-base tw-font-bold" }, { children: children })));
|
2914
2730
|
};
|
2915
2731
|
var CustomH4 = function (_a) {
|
2916
2732
|
var children = _a.children;
|
2917
|
-
return (
|
2733
|
+
return (jsx("h4", __assign({ className: "tw-text-base tw-font-bold" }, { children: children })));
|
2918
2734
|
};
|
2919
2735
|
var CustomH5 = function (_a) {
|
2920
2736
|
var children = _a.children;
|
2921
|
-
return (
|
2737
|
+
return (jsx("h5", __assign({ className: "tw-text-sm tw-font-bold" }, { children: children })));
|
2922
2738
|
};
|
2923
2739
|
var CustomH6 = function (_a) {
|
2924
2740
|
var children = _a.children;
|
2925
|
-
return (
|
2741
|
+
return (jsx("h6", __assign({ className: "tw-text-sm tw-font-bold" }, { children: children })));
|
2926
2742
|
};
|
2927
2743
|
var CustomParagraph = function (_a) {
|
2928
2744
|
var children = _a.children;
|
2929
|
-
return (
|
2745
|
+
return (jsx("p", __assign({ className: "!tw-my-2" }, { children: children })));
|
2930
2746
|
};
|
2931
2747
|
var CustomUnorderdList = function (_a) {
|
2932
2748
|
var children = _a.children;
|
2933
|
-
return (
|
2749
|
+
return (jsx("ul", __assign({ className: "tw-list-disc tw-list-inside" }, { children: children })));
|
2934
2750
|
};
|
2935
2751
|
var CustomOrderdList = function (_a) {
|
2936
2752
|
var children = _a.children;
|
2937
|
-
return (
|
2753
|
+
return (jsx("ol", __assign({ className: "tw-list-decimal tw-list-inside" }, { children: children })));
|
2938
2754
|
};
|
2939
2755
|
var CustomHorizontalRow = function (_a) {
|
2940
2756
|
var children = _a.children;
|
2941
|
-
return (
|
2757
|
+
return (jsx("hr", __assign({ className: "tw-border-current" }, { children: children })));
|
2942
2758
|
};
|
2943
2759
|
var CustomImage = function (_a) {
|
2944
2760
|
var alt = _a.alt, src = _a.src, title = _a.title;
|
2945
|
-
return (
|
2761
|
+
return (jsx("img", { className: "max-w-full rounded-lg shadow-md", src: src, alt: alt, title: title }));
|
2946
2762
|
};
|
2947
2763
|
var CustomExternalLink = function (_a) {
|
2948
2764
|
var href = _a.href, children = _a.children;
|
2949
|
-
return (
|
2950
|
-
" ",
|
2951
|
-
children));
|
2765
|
+
return (jsxs("a", __assign({ className: 'tw-font-bold', href: href, target: "_blank" }, { children: [" ", children] })));
|
2952
2766
|
};
|
2953
2767
|
var CustomHashTagLink = function (_a) {
|
2954
2768
|
var children = _a.children, tag = _a.tag, item = _a.item;
|
2955
|
-
return (
|
2769
|
+
return (jsx("a", __assign({ style: { color: tag ? tag.color : '#faa', fontWeight: 'bold', cursor: 'pointer' }, onClick: function (e) {
|
2956
2770
|
e.stopPropagation();
|
2957
2771
|
addFilterTag(tag);
|
2958
2772
|
// map.fitBounds(items)
|
2959
2773
|
// map.closePopup();
|
2960
|
-
} }, decodeTag(children)));
|
2774
|
+
} }, { children: decodeTag(children) }), tag ? tag.name + item.id : item.id));
|
2961
2775
|
};
|
2962
2776
|
return (
|
2963
2777
|
//@ts-ignore
|
2964
|
-
|
2778
|
+
jsx(Markdown, __assign({ className: "tw-text-map tw-leading-map ", remarkPlugins: [remarkBreaks], components: {
|
2965
2779
|
p: CustomParagraph,
|
2966
2780
|
a: function (_a) {
|
2967
2781
|
var href = _a.href, children = _a.children;
|
@@ -2970,14 +2784,14 @@ var TextView = function (_a) {
|
|
2970
2784
|
if (isYouTubeVideo) {
|
2971
2785
|
var videoId = href === null || href === void 0 ? void 0 : href.split('v=')[1].split('&')[0]; // Extrahiert die Video-ID aus der URL
|
2972
2786
|
var youtubeEmbedUrl = "https://www.youtube-nocookie.com/embed/".concat(videoId);
|
2973
|
-
return (
|
2787
|
+
return (jsx("iframe", { className: 'tw-w-full', src: youtubeEmbedUrl, allowFullScreen: true }));
|
2974
2788
|
}
|
2975
2789
|
if (href === null || href === void 0 ? void 0 : href.startsWith("#")) {
|
2976
2790
|
var tag = tags.find(function (t) { return t.name.toLowerCase() == decodeURI(href).slice(1).toLowerCase(); });
|
2977
|
-
return
|
2791
|
+
return jsx(CustomHashTagLink, __assign({ tag: tag, item: item }, { children: children }));
|
2978
2792
|
}
|
2979
2793
|
else {
|
2980
|
-
return (
|
2794
|
+
return (jsx(CustomExternalLink, __assign({ href: href }, { children: children })));
|
2981
2795
|
}
|
2982
2796
|
},
|
2983
2797
|
ul: CustomUnorderdList,
|
@@ -2990,7 +2804,7 @@ var TextView = function (_a) {
|
|
2990
2804
|
h4: CustomH4,
|
2991
2805
|
h5: CustomH5,
|
2992
2806
|
h6: CustomH6,
|
2993
|
-
} }, replacedText));
|
2807
|
+
} }, { children: replacedText })));
|
2994
2808
|
};
|
2995
2809
|
function truncateString(str, n, useWordBoundary) {
|
2996
2810
|
if (str.length <= n) {
|
@@ -3037,22 +2851,16 @@ var calculateTimeDifference = function (time) {
|
|
3037
2851
|
|
3038
2852
|
var ItemViewPopup = React.forwardRef(function (props, ref) {
|
3039
2853
|
var _a = useState(false), infoExpanded = _a[0], setInfoExpanded = _a[1];
|
3040
|
-
return (
|
3041
|
-
|
3042
|
-
|
3043
|
-
|
3044
|
-
|
3045
|
-
|
3046
|
-
|
3047
|
-
|
3048
|
-
|
3049
|
-
|
3050
|
-
React.createElement("div", { className: 'tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1' },
|
3051
|
-
infoExpanded ?
|
3052
|
-
React.createElement("p", { className: "tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500 tw-cursor-pointer", onClick: function () { return setInfoExpanded(false); } }, "posted ".concat(props.item && props.item.user_created && props.item.user_created.first_name ? "by ".concat(props.item.user_created.first_name) : "", " ").concat(timeAgo(props.item.date_created)))
|
3053
|
-
:
|
3054
|
-
React.createElement("p", { className: "!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500", onClick: function () { return setInfoExpanded(true); } }, "\u24D8"),
|
3055
|
-
React.createElement("div", { className: 'tw-grow' })))));
|
2854
|
+
return (jsx(Popup, __assign({ ref: ref, maxHeight: 377, minWidth: 275, maxWidth: 275, autoPanPadding: [20, 80] }, { children: jsxs("div", __assign({ className: 'tw-bg-base-100 tw-text-base-content' }, { children: [jsx(HeaderView, { item: props.item, setItemFormPopup: props.setItemFormPopup }), jsx("div", __assign({ className: 'tw-overflow-y-auto tw-overflow-x-hidden tw-max-h-64 fade' }, { children: props.children ?
|
2855
|
+
React.Children.toArray(props.children).map(function (child) {
|
2856
|
+
return React.isValidElement(child) ?
|
2857
|
+
React.cloneElement(child, { item: props.item }) : "";
|
2858
|
+
})
|
2859
|
+
:
|
2860
|
+
jsx(TextView, { item: props.item }) })), jsxs("div", __assign({ className: 'tw-flex -tw-mb-1 tw-flex-row tw-mr-2 tw-mt-1' }, { children: [infoExpanded ?
|
2861
|
+
jsx("p", __assign({ className: "tw-italic tw-min-h-[21px] !tw-my-0 tw-text-gray-500 tw-cursor-pointer", onClick: function () { return setInfoExpanded(false); } }, { children: "posted ".concat(props.item && props.item.user_created && props.item.user_created.first_name ? "by ".concat(props.item.user_created.first_name) : "", " ").concat(timeAgo(props.item.date_created)) }))
|
2862
|
+
:
|
2863
|
+
jsx("p", __assign({ className: "!tw-my-0 tw-min-h-[21px] tw-font-bold tw-cursor-pointer tw-text-gray-500", onClick: function () { return setInfoExpanded(true); } }, { children: "\u24D8" })), jsx("div", { className: 'tw-grow' })] }))] })) })));
|
3056
2864
|
});
|
3057
2865
|
|
3058
2866
|
var Geometry = /** @class */ (function () {
|
@@ -3094,19 +2902,13 @@ function TextAreaInput(_a) {
|
|
3094
2902
|
init.current = true;
|
3095
2903
|
}
|
3096
2904
|
}, [ref]);
|
3097
|
-
return (
|
3098
|
-
labelTitle ? React.createElement("label", { className: "tw-label" },
|
3099
|
-
React.createElement("span", { className: "tw-label-text tw-text-base-content " + labelStyle }, labelTitle)) : "",
|
3100
|
-
React.createElement("textarea", { required: true, ref: ref, defaultValue: defaultValue, name: dataField, className: "tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ".concat(inputStyle ? inputStyle : ""), placeholder: placeholder || "", onChange: function (e) { return updateFormValue && updateFormValue(e.target.value); } })));
|
2905
|
+
return (jsxs("div", __assign({ className: "tw-form-control tw-w-full ".concat(containerStyle ? containerStyle : "") }, { children: [labelTitle ? jsx("label", __assign({ className: "tw-label" }, { children: jsx("span", __assign({ className: "tw-label-text tw-text-base-content " + labelStyle }, { children: labelTitle })) })) : "", jsx("textarea", { required: true, ref: ref, defaultValue: defaultValue, name: dataField, className: "tw-textarea tw-textarea-bordered tw-w-full tw-leading-5 ".concat(inputStyle ? inputStyle : ""), placeholder: placeholder || "", onChange: function (e) { return updateFormValue && updateFormValue(e.target.value); } })] })));
|
3101
2906
|
}
|
3102
2907
|
|
3103
2908
|
function TextInput(_a) {
|
3104
2909
|
var labelTitle = _a.labelTitle, labelStyle = _a.labelStyle, type = _a.type, dataField = _a.dataField, containerStyle = _a.containerStyle, inputStyle = _a.inputStyle, defaultValue = _a.defaultValue, placeholder = _a.placeholder, autocomplete = _a.autocomplete, updateFormValue = _a.updateFormValue;
|
3105
|
-
return (
|
3106
|
-
|
3107
|
-
React.createElement("span", { className: "tw-label-text tw-text-base-content " + labelStyle }, labelTitle))
|
3108
|
-
: " ",
|
3109
|
-
React.createElement("input", { required: true, type: type || "text", name: dataField, defaultValue: defaultValue, placeholder: placeholder || "", autoComplete: autocomplete, onChange: function (e) { return updateFormValue && updateFormValue(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full ".concat(inputStyle ? inputStyle : "") })));
|
2910
|
+
return (jsxs("div", __assign({ className: "tw-form-control tw-w-full ".concat(containerStyle) }, { children: [labelTitle ? jsx("label", __assign({ className: "tw-label" }, { children: jsx("span", __assign({ className: "tw-label-text tw-text-base-content " + labelStyle }, { children: labelTitle })) }))
|
2911
|
+
: " ", jsx("input", { required: true, type: type || "text", name: dataField, defaultValue: defaultValue, placeholder: placeholder || "", autoComplete: autocomplete, onChange: function (e) { return updateFormValue && updateFormValue(e.target.value); }, className: "tw-input tw-input-bordered tw-w-full ".concat(inputStyle ? inputStyle : "") })] })));
|
3110
2912
|
}
|
3111
2913
|
|
3112
2914
|
var randomColor = function () {
|
@@ -3246,29 +3048,21 @@ function ItemFormPopup(props) {
|
|
3246
3048
|
useEffect(function () {
|
3247
3049
|
resetPopup();
|
3248
3050
|
}, [props.position]);
|
3249
|
-
return (
|
3051
|
+
return (jsx(Popup, __assign({ minWidth: 275, maxWidth: 275, autoPanPadding: [20, 80], eventHandlers: {
|
3250
3052
|
remove: function () {
|
3251
3053
|
setTimeout(function () {
|
3252
3054
|
resetPopup();
|
3253
3055
|
}, 100);
|
3254
3056
|
}
|
3255
|
-
}, position: props.position },
|
3256
|
-
|
3257
|
-
|
3258
|
-
|
3259
|
-
|
3260
|
-
|
3261
|
-
|
3262
|
-
|
3263
|
-
|
3264
|
-
React.cloneElement(child, { item: props.item, key: props.position.toString(), setPopupTitle: setPopupTitle }) : "";
|
3265
|
-
})
|
3266
|
-
:
|
3267
|
-
React.createElement(React.Fragment, null,
|
3268
|
-
React.createElement(TextInput, { type: "text", placeholder: "Name", dataField: "name", defaultValue: props.item ? props.item.name : "", inputStyle: '' }),
|
3269
|
-
React.createElement(TextAreaInput, { key: props.position.toString(), placeholder: "Text", dataField: "text", defaultValue: props.item ? props.item.text : "", inputStyle: 'tw-h-40 tw-mt-5' })),
|
3270
|
-
React.createElement("div", { className: 'tw-flex tw-justify-center' },
|
3271
|
-
React.createElement("button", { className: spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center', type: 'submit' }, spinner ? React.createElement("span", { className: "tw-loading tw-loading-spinner" }) : 'Save')))));
|
3057
|
+
}, position: props.position }, { children: jsxs("form", __assign({ ref: formRef, onReset: resetPopup, autoComplete: 'off', onSubmit: function (e) { return handleSubmit(e); } }, { children: [props.item ? jsx("div", { className: 'tw-h-3' })
|
3058
|
+
:
|
3059
|
+
jsx("div", __assign({ className: 'tw-flex tw-justify-center' }, { children: jsx("b", __assign({ className: "tw-text-xl tw-font-bold" }, { children: popupTitle ? popupTitle : "New ".concat(props.layer.name) })) })), props.children ?
|
3060
|
+
React.Children.toArray(props.children).map(function (child) {
|
3061
|
+
return React.isValidElement(child) ?
|
3062
|
+
React.cloneElement(child, { item: props.item, key: props.position.toString(), setPopupTitle: setPopupTitle }) : "";
|
3063
|
+
})
|
3064
|
+
:
|
3065
|
+
jsxs(Fragment, { children: [jsx(TextInput, { type: "text", placeholder: "Name", dataField: "name", defaultValue: props.item ? props.item.name : "", inputStyle: '' }), jsx(TextAreaInput, { placeholder: "Text", dataField: "text", defaultValue: props.item ? props.item.text : "", inputStyle: 'tw-h-40 tw-mt-5' }, props.position.toString())] }), jsx("div", __assign({ className: 'tw-flex tw-justify-center' }, { children: jsx("button", __assign({ className: spinner ? 'tw-btn tw-btn-disabled tw-mt-5 tw-place-self-center' : 'tw-btn tw-mt-5 tw-place-self-center', type: 'submit' }, { children: spinner ? jsx("span", { className: "tw-loading tw-loading-spinner" }) : 'Save' })) }))] })) })));
|
3272
3066
|
}
|
3273
3067
|
|
3274
3068
|
var Layer = function (_a) {
|
@@ -3353,84 +3147,78 @@ var Layer = function (_a) {
|
|
3353
3147
|
});
|
3354
3148
|
}
|
3355
3149
|
}, [tagsReady]);
|
3356
|
-
return (
|
3357
|
-
|
3358
|
-
|
3359
|
-
|
3360
|
-
|
3361
|
-
|
3362
|
-
|
3363
|
-
|
3364
|
-
|
3365
|
-
|
3366
|
-
|
3367
|
-
item
|
3368
|
-
|
3369
|
-
|
3370
|
-
|
3371
|
-
|
3372
|
-
return
|
3373
|
-
|
3374
|
-
}
|
3375
|
-
|
3376
|
-
|
3377
|
-
|
3378
|
-
|
3379
|
-
|
3380
|
-
|
3381
|
-
}
|
3382
|
-
|
3383
|
-
|
3384
|
-
|
3385
|
-
|
3386
|
-
|
3387
|
-
|
3388
|
-
|
3389
|
-
|
3390
|
-
|
3391
|
-
|
3392
|
-
|
3393
|
-
|
3394
|
-
|
3395
|
-
|
3396
|
-
|
3397
|
-
|
3398
|
-
|
3150
|
+
return (jsxs(Fragment, { children: [items &&
|
3151
|
+
((_c = (_b = items.
|
3152
|
+
filter(function (item) { var _a; return ((_a = item.layer) === null || _a === void 0 ? void 0 : _a.name) === name; })) === null || _b === void 0 ? void 0 : _b.filter(function (item) {
|
3153
|
+
return filterTags.length == 0 ? item : filterTags.every(function (tag) { return getItemTags(item).some(function (filterTag) { return filterTag.name.toLocaleLowerCase() === tag.name.toLocaleLowerCase(); }); });
|
3154
|
+
})) === null || _c === void 0 ? void 0 : _c.filter(function (item) { return item.layer && isLayerVisible(item.layer); }).map(function (item) {
|
3155
|
+
var _a;
|
3156
|
+
if (getValue(item, itemLongitudeField) && getValue(item, itemLatitudeField)) {
|
3157
|
+
if (getValue(item, itemTextField))
|
3158
|
+
item[itemTextField] = getValue(item, itemTextField);
|
3159
|
+
else
|
3160
|
+
item[itemTextField] = "";
|
3161
|
+
if (item === null || item === void 0 ? void 0 : item.tags) {
|
3162
|
+
item[itemTextField] = item[itemTextField] + '\n\n';
|
3163
|
+
item.tags.map(function (tag) {
|
3164
|
+
if (!item[itemTextField].includes("#".concat(encodeTag(tag))))
|
3165
|
+
return (item[itemTextField] = item[itemTextField] + "#".concat(encodeTag(tag), " "));
|
3166
|
+
return item[itemTextField];
|
3167
|
+
});
|
3168
|
+
}
|
3169
|
+
if (allTagsLoaded && allItemsLoaded) {
|
3170
|
+
(_a = item[itemTextField].match(hashTagRegex)) === null || _a === void 0 ? void 0 : _a.map(function (tag) {
|
3171
|
+
if ((!tags.find(function (t) { return t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(); })) && !newTagsToAdd.find(function (t) { return t.name.toLocaleLowerCase() === tag.slice(1).toLocaleLowerCase(); })) {
|
3172
|
+
var newTag_1 = { id: crypto.randomUUID(), name: tag.slice(1), color: randomColor() };
|
3173
|
+
setNewTagsToAdd(function (current) { return __spreadArray(__spreadArray([], current, true), [newTag_1], false); });
|
3174
|
+
}
|
3175
|
+
});
|
3176
|
+
!tagsReady && setTagsReady(true);
|
3177
|
+
}
|
3178
|
+
var itemTtags = getItemTags(item);
|
3179
|
+
var latitude = itemLatitudeField && item ? getValue(item, itemLatitudeField) : undefined;
|
3180
|
+
var longitude = itemLongitudeField && item ? getValue(item, itemLongitudeField) : undefined;
|
3181
|
+
var color1 = markerDefaultColor;
|
3182
|
+
var color2 = "RGBA(35, 31, 32, 0.2)";
|
3183
|
+
if (itemColorField)
|
3184
|
+
color1 = getValue(item, itemColorField);
|
3185
|
+
else if (itemTtags && itemTtags[0]) {
|
3186
|
+
color1 = itemTtags[0].color;
|
3187
|
+
}
|
3188
|
+
if (itemTtags && itemTtags[0] && itemColorField)
|
3189
|
+
color2 = itemTtags[0].color;
|
3190
|
+
else if (itemTtags && itemTtags[1]) {
|
3191
|
+
color2 = itemTtags[1].color;
|
3192
|
+
}
|
3193
|
+
return (jsxs(Marker, __assign({ ref: function (r) {
|
3194
|
+
if (!(item.id in leafletRefs && leafletRefs[item.id].marker == r))
|
3195
|
+
r && addMarker(item, r);
|
3196
|
+
}, icon: MarkerIconFactory(markerShape, color1, color2, markerIcon), position: [latitude, longitude] }, { children: [(children && React.Children.toArray(children).some(function (child) { return React.isValidElement(child) && child.props.__TYPE === "ItemView"; }) ?
|
3197
|
+
React.Children.toArray(children).map(function (child) {
|
3198
|
+
return React.isValidElement(child) && child.props.__TYPE === "ItemView" ?
|
3199
|
+
jsx(ItemViewPopup, __assign({ ref: function (r) {
|
3200
|
+
if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))
|
3201
|
+
r && addPopup(item, r);
|
3202
|
+
}, item: item, setItemFormPopup: setItemFormPopup }, { children: child }), item.id + item.name)
|
3203
|
+
: "";
|
3204
|
+
})
|
3205
|
+
:
|
3206
|
+
jsx(Fragment, { children: jsx(ItemViewPopup, { ref: function (r) {
|
3207
|
+
if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))
|
3208
|
+
r && addPopup(item, r);
|
3209
|
+
}, item: item, setItemFormPopup: setItemFormPopup }, item.id + item.name) })), jsx(Tooltip, __assign({ offset: [0, -38], direction: 'top' }, { children: item.name ? item.name : getValue(item, itemNameField) }))] }), item.id));
|
3399
3210
|
}
|
3400
|
-
|
3401
|
-
|
3402
|
-
|
3403
|
-
|
3404
|
-
|
3405
|
-
|
3406
|
-
|
3407
|
-
|
3408
|
-
|
3409
|
-
|
3410
|
-
|
3411
|
-
: "";
|
3412
|
-
})
|
3413
|
-
:
|
3414
|
-
React.createElement(React.Fragment, null,
|
3415
|
-
React.createElement(ItemViewPopup, { key: item.id + item.name, ref: function (r) {
|
3416
|
-
if (!(item.id in leafletRefs && leafletRefs[item.id].popup == r))
|
3417
|
-
r && addPopup(item, r);
|
3418
|
-
}, item: item, setItemFormPopup: setItemFormPopup }))),
|
3419
|
-
React.createElement(Tooltip, { offset: [0, -38], direction: 'top' }, item.name ? item.name : getValue(item, itemNameField))));
|
3420
|
-
}
|
3421
|
-
else
|
3422
|
-
return null;
|
3423
|
-
})),
|
3424
|
-
itemFormPopup && itemFormPopup.layer.name == name &&
|
3425
|
-
(children && React.Children.toArray(children).some(function (child) { return React.isValidElement(child) && child.props.__TYPE === "ItemForm"; }) ?
|
3426
|
-
React.Children.toArray(children).map(function (child) {
|
3427
|
-
return React.isValidElement(child) && child.props.__TYPE === "ItemForm" ?
|
3428
|
-
React.createElement(ItemFormPopup, { key: setItemFormPopup === null || setItemFormPopup === void 0 ? void 0 : setItemFormPopup.name, position: itemFormPopup.position, layer: itemFormPopup.layer, setItemFormPopup: setItemFormPopup, item: itemFormPopup.item }, child)
|
3429
|
-
: "";
|
3430
|
-
})
|
3431
|
-
:
|
3432
|
-
React.createElement(React.Fragment, null,
|
3433
|
-
React.createElement(ItemFormPopup, { position: itemFormPopup.position, layer: itemFormPopup.layer, setItemFormPopup: setItemFormPopup, item: itemFormPopup.item })))));
|
3211
|
+
else
|
3212
|
+
return null;
|
3213
|
+
})), itemFormPopup && itemFormPopup.layer.name == name &&
|
3214
|
+
(children && React.Children.toArray(children).some(function (child) { return React.isValidElement(child) && child.props.__TYPE === "ItemForm"; }) ?
|
3215
|
+
React.Children.toArray(children).map(function (child) {
|
3216
|
+
return React.isValidElement(child) && child.props.__TYPE === "ItemForm" ?
|
3217
|
+
jsx(ItemFormPopup, __assign({ position: itemFormPopup.position, layer: itemFormPopup.layer, setItemFormPopup: setItemFormPopup, item: itemFormPopup.item }, { children: child }), setItemFormPopup === null || setItemFormPopup === void 0 ? void 0 : setItemFormPopup.name)
|
3218
|
+
: "";
|
3219
|
+
})
|
3220
|
+
:
|
3221
|
+
jsx(Fragment, { children: jsx(ItemFormPopup, { position: itemFormPopup.position, layer: itemFormPopup.layer, setItemFormPopup: setItemFormPopup, item: itemFormPopup.item }) }))] }));
|
3434
3222
|
};
|
3435
3223
|
|
3436
3224
|
function Tags(_a) {
|
@@ -3452,7 +3240,7 @@ function Tags(_a) {
|
|
3452
3240
|
tag && addFilterTag(tag);
|
3453
3241
|
});
|
3454
3242
|
}, [location, tags]);
|
3455
|
-
return (
|
3243
|
+
return (jsx(Fragment, {}));
|
3456
3244
|
}
|
3457
3245
|
|
3458
3246
|
function Permissions(_a) {
|
@@ -3466,7 +3254,7 @@ function Permissions(_a) {
|
|
3466
3254
|
data && setPermissionData(data);
|
3467
3255
|
api && setPermissionApi(api);
|
3468
3256
|
}, [api, data, adminRole, user]);
|
3469
|
-
return (
|
3257
|
+
return (jsx(Fragment, {}));
|
3470
3258
|
}
|
3471
3259
|
|
3472
3260
|
var ItemForm = function (_a) {
|
@@ -3474,11 +3262,11 @@ var ItemForm = function (_a) {
|
|
3474
3262
|
useEffect(function () {
|
3475
3263
|
setPopupTitle && title && setPopupTitle(title);
|
3476
3264
|
}, [title]);
|
3477
|
-
return (
|
3478
|
-
|
3479
|
-
|
3480
|
-
|
3481
|
-
|
3265
|
+
return (jsx("div", { children: children ?
|
3266
|
+
React.Children.toArray(children).map(function (child) {
|
3267
|
+
return React.isValidElement(child) ?
|
3268
|
+
React.cloneElement(child, { item: item, test: "test" }) : "";
|
3269
|
+
}) : "" }));
|
3482
3270
|
};
|
3483
3271
|
ItemForm.propTypes = {
|
3484
3272
|
children: PropTypes.node,
|
@@ -3490,11 +3278,11 @@ ItemForm.defaultProps = {
|
|
3490
3278
|
|
3491
3279
|
var ItemView = function (_a) {
|
3492
3280
|
var children = _a.children, item = _a.item;
|
3493
|
-
return (
|
3494
|
-
|
3495
|
-
|
3496
|
-
|
3497
|
-
|
3281
|
+
return (jsx("div", { children: children ?
|
3282
|
+
React.Children.toArray(children).map(function (child) {
|
3283
|
+
return React.isValidElement(child) ?
|
3284
|
+
React.cloneElement(child, { item: item }) : "";
|
3285
|
+
}) : "" }));
|
3498
3286
|
};
|
3499
3287
|
ItemView.propTypes = {
|
3500
3288
|
children: PropTypes.node,
|
@@ -3511,58 +3299,37 @@ function SelectBox(props) {
|
|
3511
3299
|
updateFormValue(newValue);
|
3512
3300
|
setValue(newValue);
|
3513
3301
|
};
|
3514
|
-
return (
|
3515
|
-
|
3516
|
-
|
3517
|
-
|
3518
|
-
|
3519
|
-
labelDescription && React.createElement("div", { className: "tw-tooltip tw-tooltip-right", "data-tip": labelDescription },
|
3520
|
-
React.createElement(InformationCircleIcon, { className: 'tw-w-4 tw-h-4' }))))
|
3521
|
-
: "",
|
3522
|
-
React.createElement("select", { className: "tw-select tw-select-bordered tw-w-full", value: value, onChange: function (e) { return updateValue(e.target.value); } },
|
3523
|
-
React.createElement("option", { disabled: true, value: "PLACEHOLDER" }, placeholder),
|
3524
|
-
options.map(function (o, k) {
|
3525
|
-
return React.createElement("option", { value: o.value || o.name, key: k }, o.name);
|
3526
|
-
}))));
|
3302
|
+
return (jsxs("div", __assign({ className: "tw-inline-block ".concat(containerStyle) }, { children: [labelTitle ?
|
3303
|
+
jsx("label", __assign({ className: "tw-label ".concat(labelStyle) }, { children: jsxs("div", __assign({ className: "tw-label-text" }, { children: [labelTitle, labelDescription && jsx("div", __assign({ className: "tw-tooltip tw-tooltip-right", "data-tip": labelDescription }, { children: jsx(InformationCircleIcon, { className: 'tw-w-4 tw-h-4' }) }))] })) }))
|
3304
|
+
: "", jsxs("select", __assign({ className: "tw-select tw-select-bordered tw-w-full", value: value, onChange: function (e) { return updateValue(e.target.value); } }, { children: [jsx("option", __assign({ disabled: true, value: "PLACEHOLDER" }, { children: placeholder })), options.map(function (o, k) {
|
3305
|
+
return jsx("option", __assign({ value: o.value || o.name }, { children: o.name }), k);
|
3306
|
+
})] }))] })));
|
3527
3307
|
}
|
3528
3308
|
|
3529
3309
|
var PopupTextAreaInput = function (_a) {
|
3530
3310
|
var dataField = _a.dataField, placeholder = _a.placeholder, style = _a.style, item = _a.item;
|
3531
|
-
return (
|
3311
|
+
return (jsx(TextAreaInput, { defaultValue: (item === null || item === void 0 ? void 0 : item.text) ? item.text : "", dataField: dataField, placeholder: placeholder, inputStyle: style }));
|
3532
3312
|
};
|
3533
3313
|
|
3534
3314
|
var PopupStartEndInput = function (_a) {
|
3535
3315
|
var item = _a.item;
|
3536
|
-
return (
|
3537
|
-
React.createElement(TextInput, { type: 'date', placeholder: 'start', dataField: 'start', inputStyle: 'tw-text-sm tw-px-2', labelTitle: 'start', defaultValue: item && item.start ? item.start.substring(0, 10) : "", autocomplete: 'one-time-code' }),
|
3538
|
-
React.createElement(TextInput, { type: 'date', placeholder: 'end', dataField: 'end', inputStyle: 'tw-text-sm tw-px-2', labelTitle: 'end', defaultValue: item && item.end ? item.end.substring(0, 10) : "", autocomplete: 'one-time-code' })));
|
3316
|
+
return (jsxs("div", __assign({ className: 'tw-grid tw-grid-cols-2 tw-gap-2 tw-mb-5' }, { children: [jsx(TextInput, { type: 'date', placeholder: 'start', dataField: 'start', inputStyle: 'tw-text-sm tw-px-2', labelTitle: 'start', defaultValue: item && item.start ? item.start.substring(0, 10) : "", autocomplete: 'one-time-code' }), jsx(TextInput, { type: 'date', placeholder: 'end', dataField: 'end', inputStyle: 'tw-text-sm tw-px-2', labelTitle: 'end', defaultValue: item && item.end ? item.end.substring(0, 10) : "", autocomplete: 'one-time-code' })] })));
|
3539
3317
|
};
|
3540
3318
|
|
3541
3319
|
var PopupTextInput = function (_a) {
|
3542
3320
|
var dataField = _a.dataField, placeholder = _a.placeholder, style = _a.style, item = _a.item;
|
3543
|
-
return (
|
3321
|
+
return (jsx(TextInput, { defaultValue: (item === null || item === void 0 ? void 0 : item.name) ? item.name : "", dataField: dataField, placeholder: placeholder, inputStyle: style, type: 'text' }));
|
3544
3322
|
};
|
3545
3323
|
|
3546
3324
|
var StartEndView = function (_a) {
|
3547
3325
|
var item = _a.item;
|
3548
|
-
return (
|
3549
|
-
React.createElement("div", { className: "tw-basis-2/5 tw-flex tw-flex-row" },
|
3550
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-4 tw-w-4 tw-mr-2", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2 },
|
3551
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })),
|
3552
|
-
React.createElement("time", { className: 'tw-align-middle', dateTime: item && item.start ? item.start.substring(0, 10) : "" }, item && item.start ? new Date(item.start).toLocaleDateString() : "")),
|
3553
|
-
React.createElement("div", { className: "tw-basis-1/5 tw-place-content-center" },
|
3554
|
-
React.createElement("span", null, "-")),
|
3555
|
-
React.createElement("div", { className: "tw-basis-2/5 tw-flex tw-flex-row" },
|
3556
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-4 tw-w-4 tw-mr-2", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2 },
|
3557
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" })),
|
3558
|
-
React.createElement("time", { className: 'tw-align-middle', dateTime: item && item.end ? item.end.substring(0, 10) : "" }, item && item.end ? new Date(item.end).toLocaleDateString() : ""))));
|
3326
|
+
return (jsxs("div", __assign({ className: "tw-flex tw-flex-row tw-mb-4 tw-mt-1" }, { children: [jsxs("div", __assign({ className: "tw-basis-2/5 tw-flex tw-flex-row" }, { children: [jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-4 tw-w-4 tw-mr-2", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2 }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" }) })), jsx("time", __assign({ className: 'tw-align-middle', dateTime: item && item.start ? item.start.substring(0, 10) : "" }, { children: item && item.start ? new Date(item.start).toLocaleDateString() : "" }))] })), jsx("div", __assign({ className: "tw-basis-1/5 tw-place-content-center" }, { children: jsx("span", { children: "-" }) })), jsxs("div", __assign({ className: "tw-basis-2/5 tw-flex tw-flex-row" }, { children: [jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-4 tw-w-4 tw-mr-2", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", strokeWidth: 2 }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" }) })), jsx("time", __assign({ className: 'tw-align-middle', dateTime: item && item.end ? item.end.substring(0, 10) : "" }, { children: item && item.end ? new Date(item.end).toLocaleDateString() : "" }))] }))] })));
|
3559
3327
|
};
|
3560
3328
|
|
3561
3329
|
var PopupButton = function (_a) {
|
3562
3330
|
var _b;
|
3563
3331
|
var url = _a.url, parameterField = _a.parameterField, text = _a.text, colorField = _a.colorField, item = _a.item;
|
3564
|
-
return (
|
3565
|
-
React.createElement("button", { style: { backgroundColor: "".concat(colorField && getValue(item, colorField) ? getValue(item, colorField) : (_b = item === null || item === void 0 ? void 0 : item.layer) === null || _b === void 0 ? void 0 : _b.markerDefaultColor) }, className: "tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1" }, text)));
|
3332
|
+
return (jsx(Link, __assign({ to: "".concat(url, "/").concat(parameterField ? getValue(item, parameterField) : "") }, { children: jsx("button", __assign({ style: { backgroundColor: "".concat(colorField && getValue(item, colorField) ? getValue(item, colorField) : (_b = item === null || item === void 0 ? void 0 : item.layer) === null || _b === void 0 ? void 0 : _b.markerDefaultColor) }, className: "tw-btn tw-text-white tw-btn-sm tw-float-right tw-mt-1" }, { children: text })) })));
|
3566
3333
|
};
|
3567
3334
|
|
3568
3335
|
function NavBar(_a) {
|
@@ -3586,50 +3353,10 @@ function NavBar(_a) {
|
|
3586
3353
|
pending: 'logging out ..'
|
3587
3354
|
});
|
3588
3355
|
};
|
3589
|
-
return (
|
3590
|
-
|
3591
|
-
|
3592
|
-
|
3593
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M4 6h16M4 12h16M4 18h16" }))),
|
3594
|
-
React.createElement("div", { className: "tw-flex-1 tw-mr-2" },
|
3595
|
-
React.createElement("div", { className: "tw-flex-1 tw-truncate tw-grid tw-grid-flow-col", style: { maxWidth: nameWidth } },
|
3596
|
-
React.createElement(Link, { className: "tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate", to: "/" },
|
3597
|
-
React.createElement("h1", { className: "tw-truncate" }, appName)),
|
3598
|
-
React.createElement("button", { className: "tw-btn tw-px-2 tw-btn-ghost", onClick: function () { return window.my_modal_3.showModal(); } },
|
3599
|
-
React.createElement(QuestionMarkIcon, { className: "tw-h-5 tw-w-5" })))),
|
3600
|
-
isAuthenticated ?
|
3601
|
-
React.createElement("div", { className: "tw-flex-none" },
|
3602
|
-
(user === null || user === void 0 ? void 0 : user.avatar) ? React.createElement("div", { className: "tw-avatar" },
|
3603
|
-
React.createElement("div", { className: "tw-w-10 tw-rounded-full" },
|
3604
|
-
React.createElement("img", { src: "https://api.utopia-lab.org/assets/" + (user === null || user === void 0 ? void 0 : user.avatar) + "?access_token=" + token }))) : React.createElement(React.Fragment, null),
|
3605
|
-
React.createElement("div", { className: 'tw-ml-2 tw-mr-2' }, user === null || user === void 0 ? void 0 : user.first_name),
|
3606
|
-
React.createElement("div", { className: "tw-dropdown tw-dropdown-end" },
|
3607
|
-
React.createElement("label", { tabIndex: 0, className: "tw-btn tw-btn-ghost tw-btn-square" },
|
3608
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" },
|
3609
|
-
React.createElement("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }))),
|
3610
|
-
React.createElement("ul", { tabIndex: 0, className: "tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]" },
|
3611
|
-
React.createElement("li", null,
|
3612
|
-
React.createElement(Link, { to: "/profile-settings" }, "Profile")),
|
3613
|
-
React.createElement("li", null,
|
3614
|
-
React.createElement(Link, { to: "/user-settings" }, "Settings")),
|
3615
|
-
React.createElement("li", null,
|
3616
|
-
React.createElement("a", { onClick: function () { onLogout(); } }, "Logout")))))
|
3617
|
-
:
|
3618
|
-
React.createElement("div", null,
|
3619
|
-
React.createElement("div", { className: "tw-hidden md:tw-flex" },
|
3620
|
-
React.createElement(Link, { to: "/login" },
|
3621
|
-
React.createElement("div", { className: "tw-btn tw-btn-ghost tw-mr-2" }, "Login")),
|
3622
|
-
React.createElement(Link, { to: "/signup" },
|
3623
|
-
React.createElement("div", { className: "tw-btn tw-btn-ghost tw-mr-2" }, "Sign Up"))),
|
3624
|
-
React.createElement("div", { className: "tw-dropdown tw-dropdown-end" },
|
3625
|
-
React.createElement("label", { tabIndex: 1, className: "tw-btn tw-btn-ghost md:tw-hidden" },
|
3626
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" },
|
3627
|
-
React.createElement("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }))),
|
3628
|
-
React.createElement("ul", { tabIndex: 1, className: "tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]" },
|
3629
|
-
React.createElement("li", null,
|
3630
|
-
React.createElement(Link, { to: "/login" }, "Login")),
|
3631
|
-
React.createElement("li", null,
|
3632
|
-
React.createElement(Link, { to: "/signup" }, "Sign Up"))))))));
|
3356
|
+
return (jsx(Fragment, { children: jsxs("div", __assign({ className: "tw-navbar tw-bg-base-100 tw-z-[10000] tw-shadow-xl tw-relative" }, { children: [jsx("button", __assign({ className: "tw-btn tw-btn-square tw-btn-ghost", "data-te-sidenav-toggle-ref": true, "data-te-target": "#sidenav", "aria-controls": "#sidenav", "aria-haspopup": "true" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", className: "tw-inline-block tw-w-5 tw-h-5 tw-stroke-current" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M4 6h16M4 12h16M4 18h16" }) })) })), jsx("div", __assign({ className: "tw-flex-1 tw-mr-2" }, { children: jsxs("div", __assign({ className: "tw-flex-1 tw-truncate tw-grid tw-grid-flow-col", style: { maxWidth: nameWidth } }, { children: [jsx(Link, __assign({ className: "tw-btn tw-btn-ghost tw-px-2 tw-normal-case tw-text-xl tw-flex-1 tw-truncate", to: "/" }, { children: jsx("h1", __assign({ className: "tw-truncate" }, { children: appName })) })), jsx("button", __assign({ className: "tw-btn tw-px-2 tw-btn-ghost", onClick: function () { return window.my_modal_3.showModal(); } }, { children: jsx(QuestionMarkIcon, { className: "tw-h-5 tw-w-5" }) }))] })) })), isAuthenticated ?
|
3357
|
+
jsxs("div", __assign({ className: "tw-flex-none" }, { children: [(user === null || user === void 0 ? void 0 : user.avatar) ? jsx("div", __assign({ className: "tw-avatar" }, { children: jsx("div", __assign({ className: "tw-w-10 tw-rounded-full" }, { children: jsx("img", { src: "https://api.utopia-lab.org/assets/" + (user === null || user === void 0 ? void 0 : user.avatar) + "?access_token=" + token }) })) })) : jsx(Fragment, {}), jsx("div", __assign({ className: 'tw-ml-2 tw-mr-2' }, { children: user === null || user === void 0 ? void 0 : user.first_name })), jsxs("div", __assign({ className: "tw-dropdown tw-dropdown-end" }, { children: [jsx("label", __assign({ tabIndex: 0, className: "tw-btn tw-btn-ghost tw-btn-square" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }) })) })), jsxs("ul", __assign({ tabIndex: 0, className: "tw-menu tw-menu-compact tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]" }, { children: [jsx("li", { children: jsx(Link, __assign({ to: "/profile-settings" }, { children: "Profile" })) }), jsx("li", { children: jsx(Link, __assign({ to: "/user-settings" }, { children: "Settings" })) }), jsx("li", { children: jsx("a", __assign({ onClick: function () { onLogout(); } }, { children: "Logout" })) })] }))] }))] }))
|
3358
|
+
:
|
3359
|
+
jsxs("div", { children: [jsxs("div", __assign({ className: "tw-hidden md:tw-flex" }, { children: [jsx(Link, __assign({ to: "/login" }, { children: jsx("div", __assign({ className: "tw-btn tw-btn-ghost tw-mr-2" }, { children: "Login" })) })), jsx(Link, __assign({ to: "/signup" }, { children: jsx("div", __assign({ className: "tw-btn tw-btn-ghost tw-mr-2" }, { children: "Sign Up" })) }))] })), jsxs("div", __assign({ className: "tw-dropdown tw-dropdown-end" }, { children: [jsx("label", __assign({ tabIndex: 1, className: "tw-btn tw-btn-ghost md:tw-hidden" }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M10 6a2 2 0 110-4 2 2 0 010 4zM10 12a2 2 0 110-4 2 2 0 010 4zM10 18a2 2 0 110-4 2 2 0 010 4z" }) })) })), jsxs("ul", __assign({ tabIndex: 1, className: "tw-menu tw-dropdown-content tw-mt-3 tw-p-2 tw-shadow tw-bg-base-100 tw-rounded-box tw-w-52 !tw-z-[10000]" }, { children: [jsx("li", { children: jsx(Link, __assign({ to: "/login" }, { children: "Login" })) }), jsx("li", { children: jsx(Link, __assign({ to: "/signup" }, { children: "Sign Up" })) })] }))] }))] })] })) }));
|
3633
3360
|
}
|
3634
3361
|
|
3635
3362
|
var SetAssetsApi = function (_a) {
|
@@ -3638,21 +3365,14 @@ var SetAssetsApi = function (_a) {
|
|
3638
3365
|
useEffect(function () {
|
3639
3366
|
setAssetsApi(assetsApi);
|
3640
3367
|
}, [assetsApi]);
|
3641
|
-
return (
|
3368
|
+
return (jsx(Fragment, {}));
|
3642
3369
|
};
|
3643
3370
|
|
3644
3371
|
function AppShell(_a) {
|
3645
3372
|
var appName = _a.appName, nameWidth = _a.nameWidth, children = _a.children, assetsApi = _a.assetsApi;
|
3646
3373
|
// Create a client
|
3647
3374
|
var queryClient = new QueryClient();
|
3648
|
-
return (
|
3649
|
-
React.createElement(BrowserRouter, null,
|
3650
|
-
React.createElement(AssetsProvider, null,
|
3651
|
-
React.createElement(SetAssetsApi, { assetsApi: assetsApi }),
|
3652
|
-
React.createElement(QuestsProvider, { initialOpen: true },
|
3653
|
-
React.createElement(ToastContainer, { position: "top-right", autoClose: 2000, hideProgressBar: true, newestOnTop: false, closeOnClick: true, rtl: false, pauseOnFocusLoss: true, draggable: true, pauseOnHover: true, theme: "light" }),
|
3654
|
-
React.createElement(NavBar, { appName: appName, nameWidth: nameWidth }),
|
3655
|
-
React.createElement("div", { id: "app-content", className: "tw-flex tw-!pl-[77px]" }, children))))));
|
3375
|
+
return (jsx(QueryClientProvider, __assign({ client: queryClient }, { children: jsx(BrowserRouter, { children: jsxs(AssetsProvider, { children: [jsx(SetAssetsApi, { assetsApi: assetsApi }), jsxs(QuestsProvider, __assign({ initialOpen: true }, { children: [jsx(ToastContainer, { position: "top-right", autoClose: 2000, hideProgressBar: true, newestOnTop: false, closeOnClick: true, rtl: false, pauseOnFocusLoss: true, draggable: true, pauseOnHover: true, theme: "light" }), jsx(NavBar, { appName: appName, nameWidth: nameWidth }), jsx("div", __assign({ id: "app-content", className: "tw-flex tw-!pl-[77px]" }, { children: children }))] }))] }) }) })));
|
3656
3376
|
}
|
3657
3377
|
|
3658
3378
|
function SidebarSubmenu(_a) {
|
@@ -3664,22 +3384,9 @@ function SidebarSubmenu(_a) {
|
|
3664
3384
|
if (submenu.filter(function (m) { return m.path === location.pathname; })[0])
|
3665
3385
|
setIsExpanded(true);
|
3666
3386
|
}, []);
|
3667
|
-
return (
|
3668
|
-
|
3669
|
-
|
3670
|
-
" ",
|
3671
|
-
React.createElement("span", { className: "group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden", "data-te-sidenav-slim": "false" },
|
3672
|
-
name,
|
3673
|
-
" "),
|
3674
|
-
React.createElement(ChevronDownIcon, { className: 'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' + (isExpanded ? 'rotate-180' : '') })),
|
3675
|
-
React.createElement("div", { className: " w-full data-[te-collapse-show]:!hidden " + (isExpanded ? "" : "hidden") },
|
3676
|
-
React.createElement("ul", { className: "menu menu-compact" }, submenu.map(function (m, k) {
|
3677
|
-
return (React.createElement("li", { key: k },
|
3678
|
-
React.createElement(Link, { to: m.path, className: '' },
|
3679
|
-
m.icon,
|
3680
|
-
React.createElement("span", { className: "", "data-te-sidenav-slim": "false" }, m.name),
|
3681
|
-
location.pathname == m.path ? (React.createElement("span", { className: "absolute mt-1 mb-1 inset-y-0 left-0 w-1 rounded-tr-md rounded-br-md bg-primary ", "aria-hidden": "true" })) : null)));
|
3682
|
-
})))));
|
3387
|
+
return (jsxs("div", __assign({ className: 'flex-col' }, { children: [jsxs("div", __assign({ className: 'w-full', onClick: function () { return setIsExpanded(!isExpanded); } }, { children: [icon, " ", jsxs("span", __assign({ className: "group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:hidden", "data-te-sidenav-slim": "false" }, { children: [name, " "] })), jsx(ChevronDownIcon, { className: 'w-5 h-5 mt-1 float-right delay-400 duration-500 transition-all ' + (isExpanded ? 'rotate-180' : '') })] })), jsx("div", __assign({ className: " w-full data-[te-collapse-show]:!hidden " + (isExpanded ? "" : "hidden") }, { children: jsx("ul", __assign({ className: "menu menu-compact" }, { children: submenu.map(function (m, k) {
|
3388
|
+
return (jsx("li", { children: jsxs(Link, __assign({ to: m.path, className: '' }, { children: [m.icon, jsx("span", __assign({ className: "", "data-te-sidenav-slim": "false" }, { children: m.name })), location.pathname == m.path ? (jsx("span", { className: "absolute mt-1 mb-1 inset-y-0 left-0 w-1 rounded-tr-md rounded-br-md bg-primary ", "aria-hidden": "true" })) : null] })) }, k));
|
3389
|
+
}) })) }))] })));
|
3683
3390
|
}
|
3684
3391
|
|
3685
3392
|
function SideBar(_a) {
|
@@ -3702,44 +3409,32 @@ function SideBar(_a) {
|
|
3702
3409
|
init.current = true;
|
3703
3410
|
}
|
3704
3411
|
}, []);
|
3705
|
-
return (
|
3706
|
-
|
3707
|
-
|
3708
|
-
|
3709
|
-
|
3710
|
-
|
3711
|
-
|
3712
|
-
|
3713
|
-
|
3714
|
-
|
3715
|
-
|
3716
|
-
|
3717
|
-
|
3718
|
-
|
3719
|
-
|
3720
|
-
|
3721
|
-
|
3722
|
-
|
3723
|
-
|
3724
|
-
|
3725
|
-
|
3726
|
-
(React.createElement(NavLink, { end: true, target: route.blank ? "_blank" : "_self", to: route.path, className: function (_a) {
|
3727
|
-
var isActive = _a.isActive;
|
3728
|
-
return "".concat(isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none');
|
3729
|
-
}, onClick: function () {
|
3730
|
-
if (screen.width < 640 && !slim)
|
3731
|
-
instance.toggle();
|
3732
|
-
} },
|
3733
|
-
route.icon,
|
3734
|
-
React.createElement("span", { className: "group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden", "data-te-sidenav-slim": "false" }, route.name),
|
3735
|
-
location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (React.createElement("span", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary ", "aria-hidden": "true" })) : null))));
|
3736
|
-
})),
|
3737
|
-
React.createElement(ChevronRightIcon$1, { className: "tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all " + (!slim ? "tw-rotate-180" : ''), onClick: function () { return toggleSlim(); } }))))));
|
3412
|
+
return (jsx("nav", __assign({ id: "sidenav", className: "group tw-fixed tw-left-0 tw-mt-16 tw-top-0 tw-z-[10035] tw-h-[calc(100dvh-64px)] tw--translate-x-full tw-overflow-hidden tw-shadow-xl data-[te-sidenav-slim='true']:tw-hidden data-[te-sidenav-slim-collapsed='true']:tw-w-[56px] data-[te-sidenav-slim='true']:tw-w-[56px] data-[te-sidenav-hidden='false']:tw-translate-x-0 dark:tw-bg-zinc-800 [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='false']]:tw-hidden [&[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='true']]:[display:unset]", "data-te-sidenav-init": true, "data-te-sidenav-hidden": "true", "data-te-sidenav-mode": "side", "data-te-sidenav-slim": "true", "data-te-sidenav-content": "#app-content", "data-te-sidenav-slim-collapsed": "true", "data-te-sidenav-slim-width": "56", "data-te-sidenav-width": "160" }, { children: jsxs("div", __assign({ className: 'tw-flex tw-flex-col tw-h-[calc(100dvh-64px)]' }, { children: [jsx("ul", __assign({ className: "tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0", "data-te-sidenav-menu-ref": true }, { children: routes.map(function (route, k) {
|
3413
|
+
return (jsx("li", __assign({ className: "" }, { children: route.submenu ?
|
3414
|
+
jsx(SidebarSubmenu, __assign({}, route)) :
|
3415
|
+
(jsxs(NavLink, __assign({ end: true, target: route.blank ? "_blank" : "_self", to: route.path, className: function (_a) {
|
3416
|
+
var isActive = _a.isActive;
|
3417
|
+
return "".concat(isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none');
|
3418
|
+
}, onClick: function () {
|
3419
|
+
if (screen.width < 640 && !slim)
|
3420
|
+
instance.toggle();
|
3421
|
+
} }, { children: [route.icon, jsx("span", __assign({ className: "group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden", "data-te-sidenav-slim": "false" }, { children: route.name })), location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (jsx("span", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary ", "aria-hidden": "true" })) : null] }))) }), k));
|
3422
|
+
}) })), jsx("div", __assign({ id: "slim-toggler", className: 'tw-w-full tw-bg-base-100 tw-flex-1 tw-grid tw-place-items-end', "aria-haspopup": "true" }, { children: jsxs("div", __assign({ className: 'tw-w-full' }, { children: [jsx("ul", __assign({ className: "tw-menu tw-w-full tw-bg-base-100 tw-text-base-content tw-p-0 tw-mb-0", "data-te-sidenav-menu-ref": true }, { children: bottomRoutes === null || bottomRoutes === void 0 ? void 0 : bottomRoutes.map(function (route, k) {
|
3423
|
+
return (jsx("li", __assign({ className: "" }, { children: route.submenu ?
|
3424
|
+
jsx(SidebarSubmenu, __assign({}, route)) :
|
3425
|
+
(jsxs(NavLink, __assign({ end: true, target: route.blank ? "_blank" : "_self", to: route.path, className: function (_a) {
|
3426
|
+
var isActive = _a.isActive;
|
3427
|
+
return "".concat(isActive ? 'tw-font-semibold tw-bg-base-200 !tw-rounded-none' : 'tw-font-normal !tw-rounded-none');
|
3428
|
+
}, onClick: function () {
|
3429
|
+
if (screen.width < 640 && !slim)
|
3430
|
+
instance.toggle();
|
3431
|
+
} }, { children: [route.icon, jsx("span", __assign({ className: "group-[&[data-te-sidenav-slim-collapsed='true']]:data-[te-sidenav-slim='false']:tw-hidden", "data-te-sidenav-slim": "false" }, { children: route.name })), location.pathname.includes(route.path) && route.path.length > 1 || location.pathname === route.path ? (jsx("span", { className: "tw-absolute tw-inset-y-0 tw-left-0 tw-w-1 tw-rounded-tr-md tw-rounded-br-md tw-bg-primary ", "aria-hidden": "true" })) : null] }))) }), k));
|
3432
|
+
}) })), jsx(ChevronRightIcon$1, { className: "tw-w-5 tw-h-5 tw-mb-4 tw-mr-4 tw-cursor-pointer tw-float-right tw-delay-400 tw-duration-500 tw-transition-all " + (!slim ? "tw-rotate-180" : ''), onClick: function () { return toggleSlim(); } })] })) }))] })) })));
|
3738
3433
|
}
|
3739
3434
|
|
3740
3435
|
function Content(_a) {
|
3741
3436
|
var children = _a.children;
|
3742
|
-
return (
|
3437
|
+
return (jsx("div", __assign({ className: 'tw-flex tw-flex-col tw-w-full tw-bg-base-200 tw-relative' }, { children: children })));
|
3743
3438
|
}
|
3744
3439
|
|
3745
3440
|
function UserSettings() {
|
@@ -3769,18 +3464,10 @@ function UserSettings() {
|
|
3769
3464
|
})
|
3770
3465
|
.then(function () { return navigate("/"); });
|
3771
3466
|
};
|
3772
|
-
return (
|
3773
|
-
|
3774
|
-
|
3775
|
-
|
3776
|
-
React.createElement("div", { className: "tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6" },
|
3777
|
-
React.createElement(TextInput, { type: 'email', placeholder: "E-Mail", defaultValue: (user === null || user === void 0 ? void 0 : user.email) ? user.email : "", updateFormValue: function (v) { return setEmail(v); } }),
|
3778
|
-
React.createElement(TextInput, { type: 'password', placeholder: "new Password", defaultValue: (user === null || user === void 0 ? void 0 : user.password) ? user.password : "", updateFormValue: function (v) {
|
3779
|
-
setPassword(v);
|
3780
|
-
setPasswordChanged(true);
|
3781
|
-
} })),
|
3782
|
-
React.createElement("div", { className: "tw-mt-8" },
|
3783
|
-
React.createElement("button", { className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, "Update")))))));
|
3467
|
+
return (jsx(Fragment, { children: jsx("main", __assign({ className: "tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-8 tw-px-6 tw-bg-base-200 tw-min-w-80 tw-flex tw-justify-center" }, { children: jsx("div", __assign({ className: 'tw-w-full xl:tw-max-w-6xl' }, { children: jsxs(TitleCard, __assign({ title: "Settings", topMargin: "tw-mt-2", className: 'tw-mb-6' }, { children: [jsxs("div", __assign({ className: "tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-6" }, { children: [jsx(TextInput, { type: 'email', placeholder: "E-Mail", defaultValue: (user === null || user === void 0 ? void 0 : user.email) ? user.email : "", updateFormValue: function (v) { return setEmail(v); } }), jsx(TextInput, { type: 'password', placeholder: "new Password", defaultValue: (user === null || user === void 0 ? void 0 : user.password) ? user.password : "", updateFormValue: function (v) {
|
3468
|
+
setPassword(v);
|
3469
|
+
setPasswordChanged(true);
|
3470
|
+
} })] })), jsx("div", __assign({ className: "tw-mt-8" }, { children: jsx("button", __assign({ className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, { children: "Update" })) }))] })) })) })) }));
|
3784
3471
|
}
|
3785
3472
|
|
3786
3473
|
var css_248z$1 = ".picker {\n position: relative;\n }\n \n .swatch {\n width: 28px;\n height: 28px;\n border-radius: 8px;\n border: 3px solid #fff;\n box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n }\n \n .popover {\n position: absolute;\n top: 0;\n left: 36px;\n border-radius: 9px;\n box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);\n }";
|
@@ -3836,10 +3523,7 @@ var ColorPicker = function (_a) {
|
|
3836
3523
|
});
|
3837
3524
|
}
|
3838
3525
|
}, []);
|
3839
|
-
return (
|
3840
|
-
React.createElement("div", { className: "swatch", style: { backgroundColor: color }, onClick: function () { return toggle(true); } }),
|
3841
|
-
isOpen && (React.createElement("div", { className: "popover", ref: popover },
|
3842
|
-
React.createElement(HexColorPicker, { color: color, onChange: onChange })))));
|
3526
|
+
return (jsxs("div", __assign({ ref: colorPickerRef, className: "picker ".concat(className) }, { children: [jsx("div", { className: "swatch", style: { backgroundColor: color }, onClick: function () { return toggle(true); } }), isOpen && (jsx("div", __assign({ className: "popover", ref: popover }, { children: jsx(HexColorPicker, { color: color, onChange: onChange }) })))] })));
|
3843
3527
|
};
|
3844
3528
|
|
3845
3529
|
function ProfileSettings() {
|
@@ -3955,53 +3639,26 @@ function ProfileSettings() {
|
|
3955
3639
|
})
|
3956
3640
|
.then(function () { return navigate("/"); });
|
3957
3641
|
};
|
3958
|
-
return (
|
3959
|
-
|
3960
|
-
|
3961
|
-
|
3962
|
-
|
3963
|
-
|
3964
|
-
React.createElement("label", { className: "custom-file-upload" },
|
3965
|
-
React.createElement("input", { type: "file", accept: "image/*", className: "tw-file-input tw-w-full tw-max-w-xs", onChange: onImageChange }),
|
3966
|
-
React.createElement("div", { className: 'button tw-btn tw-btn-lg tw-btn-circle tw-animate-none' },
|
3967
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "tw-w-6 tw-h-6" },
|
3968
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5" }))),
|
3969
|
-
avatar ?
|
3970
|
-
React.createElement("div", { className: 'tw-h-20 tw-w-20' },
|
3971
|
-
React.createElement("img", { src: assetsApi.url + avatar + "?access_token=" + token, className: ' tw-rounded-full' }))
|
3972
|
-
:
|
3973
|
-
React.createElement("div", { className: 'tw-h-20 tw-w-20' },
|
3974
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", version: "1.0", viewBox: "0 0 150 150", className: 'tw-w-20 tw-h-20 tw-rounded-full', style: { backgroundColor: "#eee" } },
|
3975
|
-
React.createElement("path", { fill: "#ccc", d: "M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z" }),
|
3976
|
-
React.createElement("path", { fill: "#ccc", d: "M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z" }))))
|
3977
|
-
: React.createElement("div", { className: 'tw-w-20 tw-flex tw-items-center tw-justify-center' },
|
3978
|
-
React.createElement("span", { className: "tw-loading tw-loading-spinner" })),
|
3979
|
-
React.createElement(ColorPicker, { color: color, onChange: setColor, className: "-tw-left-6 tw-top-14 -tw-mr-6" }),
|
3980
|
-
React.createElement(TextInput, { placeholder: "Name", defaultValue: (user === null || user === void 0 ? void 0 : user.first_name) ? user.first_name : "", updateFormValue: function (v) { return setName(v); }, containerStyle: 'tw-grow tw-ml-6 tw-my-auto ' })),
|
3981
|
-
React.createElement("div", { className: "tw-grid tw-grid-cols-1 tw-md:grid-cols-1 tw-gap-6 tw-pt-6 tw-pb-6" },
|
3982
|
-
React.createElement(TextAreaInput, { placeholder: "About me, Contact, #Tags, ...", defaultValue: (user === null || user === void 0 ? void 0 : user.description) ? user.description : "", updateFormValue: function (v) { return setText(v); }, inputStyle: 'tw-h-64' })),
|
3983
|
-
React.createElement("div", { className: "tw-mt-8" },
|
3984
|
-
React.createElement("button", { className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, "Update"))))),
|
3985
|
-
React.createElement(DialogModal, { title: "", isOpened: cropModalOpen, onClose: function () {
|
3986
|
-
setCropModalOpen(false);
|
3987
|
-
setImage("");
|
3988
|
-
} },
|
3989
|
-
React.createElement(ReactCrop, { crop: crop, onChange: function (c) { return setCrop(c); }, aspect: 1 },
|
3990
|
-
React.createElement("img", { src: image, ref: imgRef, onLoad: onImageLoad })),
|
3991
|
-
React.createElement("button", { className: "tw-btn tw-btn-primary", onClick: function () {
|
3992
|
-
setCropping(true);
|
3642
|
+
return (jsxs("div", __assign({ className: 'tw-backdrop-contrast-50 tw-h-full tw-w-full' }, { children: [jsx("main", __assign({ className: "tw-flex-1 tw-overflow-y-auto tw-overflow-x-hidden tw-pt-8 tw-px-6 tw-min-w-80 tw-flex tw-justify-center" }, { children: jsx("div", __assign({ className: 'tw-w-full xl:tw-max-w-6xl' }, { children: jsxs(TitleCard, __assign({ title: "Profile", topMargin: "tw-mt-2", className: 'tw-mb-6' }, { children: [jsxs("div", __assign({ className: "tw-flex" }, { children: [!cropping ?
|
3643
|
+
jsxs("label", __assign({ className: "custom-file-upload" }, { children: [jsx("input", { type: "file", accept: "image/*", className: "tw-file-input tw-w-full tw-max-w-xs", onChange: onImageChange }), jsx("div", __assign({ className: 'button tw-btn tw-btn-lg tw-btn-circle tw-animate-none' }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "tw-w-6 tw-h-6" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5" }) })) })), avatar ?
|
3644
|
+
jsx("div", __assign({ className: 'tw-h-20 tw-w-20' }, { children: jsx("img", { src: assetsApi.url + avatar + "?access_token=" + token, className: ' tw-rounded-full' }) }))
|
3645
|
+
:
|
3646
|
+
jsx("div", __assign({ className: 'tw-h-20 tw-w-20' }, { children: jsxs("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", version: "1.0", viewBox: "0 0 150 150", className: 'tw-w-20 tw-h-20 tw-rounded-full', style: { backgroundColor: "#eee" } }, { children: [jsx("path", { fill: "#ccc", d: "M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z" }), jsx("path", { fill: "#ccc", d: "M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z" })] })) }))] }))
|
3647
|
+
: jsx("div", __assign({ className: 'tw-w-20 tw-flex tw-items-center tw-justify-center' }, { children: jsx("span", { className: "tw-loading tw-loading-spinner" }) })), jsx(ColorPicker, { color: color, onChange: setColor, className: "-tw-left-6 tw-top-14 -tw-mr-6" }), jsx(TextInput, { placeholder: "Name", defaultValue: (user === null || user === void 0 ? void 0 : user.first_name) ? user.first_name : "", updateFormValue: function (v) { return setName(v); }, containerStyle: 'tw-grow tw-ml-6 tw-my-auto ' })] })), jsx("div", __assign({ className: "tw-grid tw-grid-cols-1 tw-md:grid-cols-1 tw-gap-6 tw-pt-6 tw-pb-6" }, { children: jsx(TextAreaInput, { placeholder: "About me, Contact, #Tags, ...", defaultValue: (user === null || user === void 0 ? void 0 : user.description) ? user.description : "", updateFormValue: function (v) { return setText(v); }, inputStyle: 'tw-h-64' }) })), jsx("div", __assign({ className: "tw-mt-8" }, { children: jsx("button", __assign({ className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, { children: "Update" })) }))] })) })) })), jsxs(DialogModal, __assign({ title: "", isOpened: cropModalOpen, onClose: function () {
|
3993
3648
|
setCropModalOpen(false);
|
3994
|
-
|
3995
|
-
} }, "
|
3649
|
+
setImage("");
|
3650
|
+
} }, { children: [jsx(ReactCrop, __assign({ crop: crop, onChange: function (c) { return setCrop(c); }, aspect: 1 }, { children: jsx("img", { src: image, ref: imgRef, onLoad: onImageLoad }) })), jsx("button", __assign({ className: "tw-btn tw-btn-primary", onClick: function () {
|
3651
|
+
setCropping(true);
|
3652
|
+
setCropModalOpen(false);
|
3653
|
+
renderCrop();
|
3654
|
+
} }, { children: "Select" }))] }))] })));
|
3996
3655
|
}
|
3997
3656
|
|
3998
3657
|
var TagView = function (_a) {
|
3999
3658
|
var tag = _a.tag, heighlight = _a.heighlight, onClick = _a.onClick;
|
4000
3659
|
return (
|
4001
3660
|
// Use your imagination to render suggestions.
|
4002
|
-
|
4003
|
-
React.createElement("div", { className: "tw-card-actions tw-justify-end" }),
|
4004
|
-
React.createElement("b", null, decodeTag(tag.name))));
|
3661
|
+
jsxs("div", __assign({ onClick: onClick, className: "tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-h-[2.75em] tw-mt-3 tw-mr-4 tw-cursor-pointer tw-w-fit ".concat(heighlight && 'tw-border-primary tw-shadow-te-primary'), style: { backgroundColor: tag.color ? tag.color : "#666" } }, { children: [jsx("div", { className: "tw-card-actions tw-justify-end" }), jsx("b", { children: decodeTag(tag.name) })] }), tag.name));
|
4005
3662
|
};
|
4006
3663
|
|
4007
3664
|
function OverlayProfile() {
|
@@ -4041,38 +3698,11 @@ function OverlayProfile() {
|
|
4041
3698
|
tag && setNeeds(function (current) { return __spreadArray(__spreadArray([], current, true), [tag], false); });
|
4042
3699
|
});
|
4043
3700
|
}, [item]);
|
4044
|
-
return (
|
4045
|
-
|
4046
|
-
|
4047
|
-
|
4048
|
-
|
4049
|
-
((_a = item.layer) === null || _a === void 0 ? void 0 : _a.itemAvatarField) && getValue(item, item.layer.itemAvatarField) && React.createElement("img", { className: 'h-20 rounded-full inline', src: "https://api.utopia-lab.org/assets/".concat(getValue(item, item.layer.itemAvatarField), "?width=160&heigth=160") }),
|
4050
|
-
" ",
|
4051
|
-
((_b = item.layer) === null || _b === void 0 ? void 0 : _b.itemNameField) && getValue(item, item.layer.itemNameField))),
|
4052
|
-
(owner === null || owner === void 0 ? void 0 : owner.id) === (user === null || user === void 0 ? void 0 : user.id) && (owner === null || owner === void 0 ? void 0 : owner.id) ?
|
4053
|
-
React.createElement("a", { className: 'tw-self-center tw-btn tw-btn-sm tw-mr-4 tw-cursor-pointer', onClick: function () { return navigate("/profile-settings"); } },
|
4054
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" },
|
4055
|
-
React.createElement("path", { d: "M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z" }))) : ""),
|
4056
|
-
React.createElement("div", { className: 'tw-h-full' },
|
4057
|
-
React.createElement("div", { role: "tablist", className: "tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2" },
|
4058
|
-
React.createElement("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Vision", checked: activeTab == 1 && true, onChange: function () { return setActiveTab(1); } }),
|
4059
|
-
React.createElement("div", { role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1" },
|
4060
|
-
React.createElement(TextView, { item: item })),
|
4061
|
-
React.createElement("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Offers & Needs", checked: activeTab == 2 && true, onChange: function () { return setActiveTab(2); } }),
|
4062
|
-
React.createElement("div", { role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1" },
|
4063
|
-
React.createElement("div", { className: 'tw-h-full' },
|
4064
|
-
React.createElement("div", { className: 'tw-grid tw-grid-cols-1' },
|
4065
|
-
offers.length > 0 ?
|
4066
|
-
React.createElement("div", { className: 'tw-col-span-1' },
|
4067
|
-
React.createElement("h3", { className: '-tw-mb-2' }, "Offers"),
|
4068
|
-
React.createElement("div", { className: 'tw-flex tw-flex-wrap tw-mb-4' }, offers.map(function (o) { return React.createElement(TagView, { key: o === null || o === void 0 ? void 0 : o.id, tag: o, onClick: function () { return addFilterTag(o); } }); }))) : "",
|
4069
|
-
needs.length > 0 ?
|
4070
|
-
React.createElement("div", { className: 'tw-col-span-1' },
|
4071
|
-
React.createElement("h3", { className: '-tw-mb-2 tw-col-span-1' }, "Needs"),
|
4072
|
-
React.createElement("div", { className: 'tw-flex tw-flex-wrap tw-mb-4' }, needs.map(function (n) { return React.createElement(TagView, { key: n === null || n === void 0 ? void 0 : n.id, tag: n, onClick: function () { return addFilterTag(n); } }); }))) : ""))),
|
4073
|
-
React.createElement("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Contact", checked: activeTab == 3 && true, onChange: function () { return setActiveTab(3); } }),
|
4074
|
-
React.createElement("div", { role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1" },
|
4075
|
-
React.createElement(TextView, { item: item, itemTextField: 'user_created.contact' })))))));
|
3701
|
+
return (jsx(MapOverlayPage, __assign({ className: 'tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-[calc(100dvh-96px)] md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0' }, { children: item &&
|
3702
|
+
jsxs(Fragment, { children: [jsxs("div", __assign({ className: 'tw-flex tw-flex-row' }, { children: [jsx("div", __assign({ className: "tw-grow" }, { children: jsxs("p", __assign({ className: "text-4xl" }, { children: [((_a = item.layer) === null || _a === void 0 ? void 0 : _a.itemAvatarField) && getValue(item, item.layer.itemAvatarField) && jsx("img", { className: 'h-20 rounded-full inline', src: "https://api.utopia-lab.org/assets/".concat(getValue(item, item.layer.itemAvatarField), "?width=160&heigth=160") }), " ", ((_b = item.layer) === null || _b === void 0 ? void 0 : _b.itemNameField) && getValue(item, item.layer.itemNameField)] })) })), (owner === null || owner === void 0 ? void 0 : owner.id) === (user === null || user === void 0 ? void 0 : user.id) && (owner === null || owner === void 0 ? void 0 : owner.id) ?
|
3703
|
+
jsx("a", __assign({ className: 'tw-self-center tw-btn tw-btn-sm tw-mr-4 tw-cursor-pointer', onClick: function () { return navigate("/profile-settings"); } }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", className: "tw-h-5 tw-w-5", viewBox: "0 0 20 20", fill: "currentColor" }, { children: jsx("path", { d: "M13.586 3.586a2 2 0 112.828 2.828l-.793.793-2.828-2.828.793-.793zM11.379 5.793L3 14.172V17h2.828l8.38-8.379-2.83-2.828z" }) })) })) : ""] })), jsx("div", __assign({ className: 'tw-h-full' }, { children: jsxs("div", __assign({ role: "tablist", className: "tw-tabs tw-tabs-lifted tw-mt-2 tw-mb-2" }, { children: [jsx("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Vision", checked: activeTab == 1 && true, onChange: function () { return setActiveTab(1); } }), jsx("div", __assign({ role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1" }, { children: jsx(TextView, { item: item }) })), jsx("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Offers & Needs", checked: activeTab == 2 && true, onChange: function () { return setActiveTab(2); } }), jsx("div", __assign({ role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-4 tw-pb-1" }, { children: jsx("div", __assign({ className: 'tw-h-full' }, { children: jsxs("div", __assign({ className: 'tw-grid tw-grid-cols-1' }, { children: [offers.length > 0 ?
|
3704
|
+
jsxs("div", __assign({ className: 'tw-col-span-1' }, { children: [jsx("h3", __assign({ className: '-tw-mb-2' }, { children: "Offers" })), jsx("div", __assign({ className: 'tw-flex tw-flex-wrap tw-mb-4' }, { children: offers.map(function (o) { return jsx(TagView, { tag: o, onClick: function () { return addFilterTag(o); } }, o === null || o === void 0 ? void 0 : o.id); }) }))] })) : "", needs.length > 0 ?
|
3705
|
+
jsxs("div", __assign({ className: 'tw-col-span-1' }, { children: [jsx("h3", __assign({ className: '-tw-mb-2 tw-col-span-1' }, { children: "Needs" })), jsx("div", __assign({ className: 'tw-flex tw-flex-wrap tw-mb-4' }, { children: needs.map(function (n) { return jsx(TagView, { tag: n, onClick: function () { return addFilterTag(n); } }, n === null || n === void 0 ? void 0 : n.id); }) }))] })) : ""] })) })) })), jsx("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Contact", checked: activeTab == 3 && true, onChange: function () { return setActiveTab(3); } }), jsx("div", __assign({ role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-h-[calc(100dvh-268px)] tw-overflow-y-auto fade tw-pt-2 tw-pb-1" }, { children: jsx(TextView, { item: item, itemTextField: 'user_created.contact' }) }))] })) }))] }) })));
|
4076
3706
|
}
|
4077
3707
|
|
4078
3708
|
var Autocomplete = function (_a) {
|
@@ -4124,10 +3754,7 @@ var Autocomplete = function (_a) {
|
|
4124
3754
|
break;
|
4125
3755
|
}
|
4126
3756
|
};
|
4127
|
-
return (
|
4128
|
-
React.createElement("input", __assign({ ref: inputRef }, inputProps, { type: "text", onChange: function (e) { return handleChange(e); }, onKeyDown: handleKeyDown })),
|
4129
|
-
React.createElement("ul", { className: "tw-absolute tw-z-[4000] ".concat(filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2') }, filteredSuggestions.map(function (suggestion, index) { return (React.createElement("li", { key: index, onClick: function () { return handleSuggestionClick(suggestion); } },
|
4130
|
-
React.createElement(TagView, { heighlight: index == heighlightedSuggestion, tag: suggestion }))); }))));
|
3757
|
+
return (jsxs("div", { children: [jsx("input", __assign({ ref: inputRef }, inputProps, { type: "text", onChange: function (e) { return handleChange(e); }, onKeyDown: handleKeyDown })), jsx("ul", __assign({ className: "tw-absolute tw-z-[4000] ".concat(filteredSuggestions.length > 0 && 'tw-bg-base-100 tw-rounded-xl tw-p-2') }, { children: filteredSuggestions.map(function (suggestion, index) { return (jsx("li", __assign({ onClick: function () { return handleSuggestionClick(suggestion); } }, { children: jsx(TagView, { heighlight: index == heighlightedSuggestion, tag: suggestion }) }), index)); }) }))] }));
|
4131
3758
|
};
|
4132
3759
|
|
4133
3760
|
var TagsWidget = function (_a) {
|
@@ -4184,18 +3811,12 @@ var TagsWidget = function (_a) {
|
|
4184
3811
|
onChange: onChange,
|
4185
3812
|
className: 'tw-bg-transparent tw-w-fit tw-mt-5 tw-h-fit'
|
4186
3813
|
};
|
4187
|
-
return (
|
3814
|
+
return (jsx("div", __assign({ onClick: function () {
|
4188
3815
|
setFocusInput(true);
|
4189
3816
|
setTimeout(function () {
|
4190
3817
|
setFocusInput(false);
|
4191
3818
|
}, 200);
|
4192
|
-
}, className: "tw-input tw-input-bordered tw-cursor-text ".concat(containerStyle) },
|
4193
|
-
React.createElement("div", { className: 'tw-flex tw-flex-wrap tw-h-fit' },
|
4194
|
-
defaultTags.map(function (tag) { return (React.createElement("div", { key: tag.name, className: 'tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-h-[2.75em] tw-mt-3 tw-mr-4', style: { backgroundColor: tag.color ? tag.color : "#666" } },
|
4195
|
-
React.createElement("div", { className: "tw-card-actions tw-justify-end" },
|
4196
|
-
React.createElement("label", { className: "tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600", onClick: function () { return (deleteTag(tag)); } }, "\u2715")),
|
4197
|
-
React.createElement("b", null, decodeTag(tag.name)))); }),
|
4198
|
-
React.createElement(Autocomplete, { suggestions: tags, pushFilteredSuggestions: pushFilteredSuggestions, setFocus: focusInput, inputProps: inputProps, onSelected: function (tag) { return onSelected(tag); } }))));
|
3819
|
+
}, className: "tw-input tw-input-bordered tw-cursor-text ".concat(containerStyle) }, { children: jsxs("div", __assign({ className: 'tw-flex tw-flex-wrap tw-h-fit' }, { children: [defaultTags.map(function (tag) { return (jsxs("div", __assign({ className: 'tw-rounded-2xl tw-text-white tw-p-2 tw-px-4 tw-shadow-xl tw-card tw-h-[2.75em] tw-mt-3 tw-mr-4', style: { backgroundColor: tag.color ? tag.color : "#666" } }, { children: [jsx("div", __assign({ className: "tw-card-actions tw-justify-end" }, { children: jsx("label", __assign({ className: "tw-btn tw-btn-xs tw-btn-circle tw-absolute tw--right-2 tw--top-2 tw-bg-white tw-text-gray-600", onClick: function () { return (deleteTag(tag)); } }, { children: "\u2715" })) })), jsx("b", { children: decodeTag(tag.name) })] }), tag.name)); }), jsx(Autocomplete, { suggestions: tags, pushFilteredSuggestions: pushFilteredSuggestions, setFocus: focusInput, inputProps: inputProps, onSelected: function (tag) { return onSelected(tag); } })] })) })));
|
4199
3820
|
};
|
4200
3821
|
|
4201
3822
|
function OverlayProfileSettings() {
|
@@ -4377,55 +3998,19 @@ function OverlayProfileSettings() {
|
|
4377
3998
|
}
|
4378
3999
|
});
|
4379
4000
|
}); };
|
4380
|
-
return (
|
4381
|
-
|
4382
|
-
|
4383
|
-
|
4384
|
-
|
4385
|
-
|
4386
|
-
React.createElement("input", { type: "file", accept: "image/*", className: "tw-file-input tw-w-full tw-max-w-xs", onChange: onImageChange }),
|
4387
|
-
React.createElement("div", { className: 'button tw-btn tw-btn-lg tw-btn-circle tw-animate-none' },
|
4388
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "tw-w-6 tw-h-6" },
|
4389
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5" }))),
|
4390
|
-
avatar ?
|
4391
|
-
React.createElement("div", { className: 'tw-h-20 tw-w-20' },
|
4392
|
-
React.createElement("img", { src: assetsApi.url + avatar + "?access_token=" + token, className: ' tw-rounded-full' }))
|
4393
|
-
:
|
4394
|
-
React.createElement("div", { className: 'tw-h-20 tw-w-20' },
|
4395
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", version: "1.0", viewBox: "0 0 150 150", className: 'tw-w-20 tw-h-20 tw-rounded-full', style: { backgroundColor: "#eee" } },
|
4396
|
-
React.createElement("path", { fill: "#ccc", d: "M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z" }),
|
4397
|
-
React.createElement("path", { fill: "#ccc", d: "M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z" }))))
|
4398
|
-
: React.createElement("div", { className: 'tw-w-20 tw-flex tw-items-center tw-justify-center' },
|
4399
|
-
React.createElement("span", { className: "tw-loading tw-loading-spinner" })),
|
4400
|
-
React.createElement(ColorPicker, { color: color, onChange: setColor, className: "-tw-left-6 tw-top-14 -tw-mr-6" }),
|
4401
|
-
React.createElement(TextInput, { placeholder: "Name", defaultValue: (user === null || user === void 0 ? void 0 : user.first_name) ? user.first_name : "", updateFormValue: function (v) { return setName(v); }, containerStyle: 'tw-grow tw-ml-6 tw-my-auto ' })),
|
4402
|
-
React.createElement("div", { role: "tablist", className: "tw-tabs tw-tabs-lifted tw-mt-4" },
|
4403
|
-
React.createElement("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Vision", checked: activeTab == 1 && true, onChange: function () { return setActiveTab(1); } }),
|
4404
|
-
React.createElement("div", { role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56" },
|
4405
|
-
React.createElement(TextAreaInput, { placeholder: "My Vision...", defaultValue: (user === null || user === void 0 ? void 0 : user.description) ? user.description : "", updateFormValue: function (v) { return setText(v); }, containerStyle: 'tw-h-full', inputStyle: 'tw-h-full tw-border-t-0 tw-rounded-tl-none' })),
|
4406
|
-
React.createElement("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Offers & Needs", checked: activeTab == 2 && true, onChange: function () { return setActiveTab(2); } }),
|
4407
|
-
React.createElement("div", { role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-pt-4 tw-h-[calc(100dvh-332px)] tw-min-h-56" },
|
4408
|
-
React.createElement("div", { className: 'tw-h-full' },
|
4409
|
-
React.createElement("div", { className: 'tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4' },
|
4410
|
-
React.createElement(TagsWidget, { defaultTags: offers, onUpdate: function (v) { return setOffers(v); }, placeholder: "enter your offers", containerStyle: 'tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto' })),
|
4411
|
-
React.createElement("div", { className: 'tw-w-full tw-h-[calc(50%-0.75em)] ' },
|
4412
|
-
React.createElement(TagsWidget, { defaultTags: needs, onUpdate: function (v) { return setNeeds(v); }, placeholder: "enter your needs", containerStyle: 'tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto' })))),
|
4413
|
-
React.createElement("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Contact", checked: activeTab == 3 && true, onChange: function () { return setActiveTab(3); } }),
|
4414
|
-
React.createElement("div", { role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56" },
|
4415
|
-
React.createElement(TextAreaInput, { placeholder: "Contact ...", defaultValue: (user === null || user === void 0 ? void 0 : user.contact) ? user.contact : "", updateFormValue: function (v) { return setContact(v); }, containerStyle: 'tw-h-full', inputStyle: 'tw-h-full tw-border-t-0 ' }))),
|
4416
|
-
React.createElement("div", { className: "tw-mt-4 tw-mb-4" },
|
4417
|
-
React.createElement("button", { className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, "Update")))),
|
4418
|
-
React.createElement(DialogModal, { title: "", isOpened: cropModalOpen, onClose: function () {
|
4419
|
-
setCropModalOpen(false);
|
4420
|
-
setImage("");
|
4421
|
-
} },
|
4422
|
-
React.createElement(ReactCrop, { crop: crop, onChange: function (c) { return setCrop(c); }, aspect: 1 },
|
4423
|
-
React.createElement("img", { src: image, ref: imgRef, onLoad: onImageLoad })),
|
4424
|
-
React.createElement("button", { className: "tw-btn tw-btn-primary", onClick: function () {
|
4425
|
-
setCropping(true);
|
4001
|
+
return (jsxs(Fragment, { children: [jsx(MapOverlayPage, __assign({ backdrop: true, className: 'tw-mx-4 tw-mt-4 tw-mb-12 tw-overflow-x-hidden tw-max-h-[calc(100dvh-96px)] !tw-h-[calc(100dvh-96px)] tw-w-[calc(100%-32px)] md:tw-w-[calc(50%-32px)] tw-max-w-3xl !tw-left-auto tw-top-0 tw-bottom-0' }, { children: jsxs("div", __assign({ className: 'tw-flex tw-flex-col tw-h-full' }, { children: [jsxs("div", __assign({ className: "tw-flex" }, { children: [!cropping ?
|
4002
|
+
jsxs("label", __assign({ className: "custom-file-upload" }, { children: [jsx("input", { type: "file", accept: "image/*", className: "tw-file-input tw-w-full tw-max-w-xs", onChange: onImageChange }), jsx("div", __assign({ className: 'button tw-btn tw-btn-lg tw-btn-circle tw-animate-none' }, { children: jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: "1.5", stroke: "currentColor", className: "tw-w-6 tw-h-6" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M3 16.5v2.25A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75V16.5m-13.5-9L12 3m0 0l4.5 4.5M12 3v13.5" }) })) })), avatar ?
|
4003
|
+
jsx("div", __assign({ className: 'tw-h-20 tw-w-20' }, { children: jsx("img", { src: assetsApi.url + avatar + "?access_token=" + token, className: ' tw-rounded-full' }) }))
|
4004
|
+
:
|
4005
|
+
jsx("div", __assign({ className: 'tw-h-20 tw-w-20' }, { children: jsxs("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", version: "1.0", viewBox: "0 0 150 150", className: 'tw-w-20 tw-h-20 tw-rounded-full', style: { backgroundColor: "#eee" } }, { children: [jsx("path", { fill: "#ccc", d: "M 104.68731,56.689353 C 102.19435,80.640493 93.104981,97.26875 74.372196,97.26875 55.639402,97.26875 46.988823,82.308034 44.057005,57.289941 41.623314,34.938838 55.639402,15.800152 74.372196,15.800152 c 18.732785,0 32.451944,18.493971 30.315114,40.889201 z" }), jsx("path", { fill: "#ccc", d: "M 92.5675 89.6048 C 90.79484 93.47893 89.39893 102.4504 94.86478 106.9039 C 103.9375 114.2963 106.7064 116.4723 118.3117 118.9462 C 144.0432 124.4314 141.6492 138.1543 146.5244 149.2206 L 4.268444 149.1023 C 8.472223 138.6518 6.505799 124.7812 32.40051 118.387 C 41.80992 116.0635 45.66513 113.8823 53.58659 107.0158 C 58.52744 102.7329 57.52583 93.99267 56.43084 89.26926 C 52.49275 88.83011 94.1739 88.14054 92.5675 89.6048 z" })] })) }))] }))
|
4006
|
+
: jsx("div", __assign({ className: 'tw-w-20 tw-flex tw-items-center tw-justify-center' }, { children: jsx("span", { className: "tw-loading tw-loading-spinner" }) })), jsx(ColorPicker, { color: color, onChange: setColor, className: "-tw-left-6 tw-top-14 -tw-mr-6" }), jsx(TextInput, { placeholder: "Name", defaultValue: (user === null || user === void 0 ? void 0 : user.first_name) ? user.first_name : "", updateFormValue: function (v) { return setName(v); }, containerStyle: 'tw-grow tw-ml-6 tw-my-auto ' })] })), jsxs("div", __assign({ role: "tablist", className: "tw-tabs tw-tabs-lifted tw-mt-4" }, { children: [jsx("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Vision", checked: activeTab == 1 && true, onChange: function () { return setActiveTab(1); } }), jsx("div", __assign({ role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56" }, { children: jsx(TextAreaInput, { placeholder: "My Vision...", defaultValue: (user === null || user === void 0 ? void 0 : user.description) ? user.description : "", updateFormValue: function (v) { return setText(v); }, containerStyle: 'tw-h-full', inputStyle: 'tw-h-full tw-border-t-0 tw-rounded-tl-none' }) })), jsx("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab tw-min-w-[10em] [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Offers & Needs", checked: activeTab == 2 && true, onChange: function () { return setActiveTab(2); } }), jsx("div", __assign({ role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-rounded-box tw-pt-4 tw-h-[calc(100dvh-332px)] tw-min-h-56" }, { children: jsxs("div", __assign({ className: 'tw-h-full' }, { children: [jsx("div", __assign({ className: 'tw-w-full tw-h-[calc(50%-0.75em)] tw-mb-4' }, { children: jsx(TagsWidget, { defaultTags: offers, onUpdate: function (v) { return setOffers(v); }, placeholder: "enter your offers", containerStyle: 'tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto' }) })), jsx("div", __assign({ className: 'tw-w-full tw-h-[calc(50%-0.75em)] ' }, { children: jsx(TagsWidget, { defaultTags: needs, onUpdate: function (v) { return setNeeds(v); }, placeholder: "enter your needs", containerStyle: 'tw-bg-transparent tw-w-full tw-h-full tw-mt-3 tw-text-xs tw-h-[calc(100%-1rem)] tw-min-h-[5em] tw-pb-2 tw-overflow-auto' }) }))] })) })), jsx("input", { type: "radio", name: "my_tabs_2", role: "tab", className: "tw-tab [--tab-border-color:var(--fallback-bc,oklch(var(--bc)/0.2))]", "aria-label": "Contact", checked: activeTab == 3 && true, onChange: function () { return setActiveTab(3); } }), jsx("div", __assign({ role: "tabpanel", className: "tw-tab-content tw-bg-base-100 tw-border-[var(--fallback-bc,oklch(var(--bc)/0.2))] tw-rounded-box tw-h-[calc(100dvh-332px)] tw-min-h-56" }, { children: jsx(TextAreaInput, { placeholder: "Contact ...", defaultValue: (user === null || user === void 0 ? void 0 : user.contact) ? user.contact : "", updateFormValue: function (v) { return setContact(v); }, containerStyle: 'tw-h-full', inputStyle: 'tw-h-full tw-border-t-0 ' }) }))] })), jsx("div", __assign({ className: "tw-mt-4 tw-mb-4" }, { children: jsx("button", __assign({ className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, { children: "Update" })) }))] })) })), jsxs(DialogModal, __assign({ title: "", isOpened: cropModalOpen, onClose: function () {
|
4426
4007
|
setCropModalOpen(false);
|
4427
|
-
|
4428
|
-
} }, "
|
4008
|
+
setImage("");
|
4009
|
+
} }, { children: [jsx(ReactCrop, __assign({ crop: crop, onChange: function (c) { return setCrop(c); }, aspect: 1 }, { children: jsx("img", { src: image, ref: imgRef, onLoad: onImageLoad }) })), jsx("button", __assign({ className: "tw-btn tw-btn-primary", onClick: function () {
|
4010
|
+
setCropping(true);
|
4011
|
+
setCropModalOpen(false);
|
4012
|
+
renderCrop();
|
4013
|
+
} }, { children: "Select" }))] }))] }));
|
4429
4014
|
}
|
4430
4015
|
|
4431
4016
|
function OverlayUserSettings() {
|
@@ -4455,17 +4040,10 @@ function OverlayUserSettings() {
|
|
4455
4040
|
})
|
4456
4041
|
.then(function () { return navigate("/"); });
|
4457
4042
|
};
|
4458
|
-
return (
|
4459
|
-
|
4460
|
-
|
4461
|
-
|
4462
|
-
React.createElement(TextInput, { type: 'email', placeholder: "new E-Mail", defaultValue: (user === null || user === void 0 ? void 0 : user.email) ? user.email : "", updateFormValue: function (v) { return setEmail(v); } }),
|
4463
|
-
React.createElement(TextInput, { type: 'password', placeholder: "new Password", defaultValue: (user === null || user === void 0 ? void 0 : user.password) ? user.password : "", updateFormValue: function (v) {
|
4464
|
-
setPassword(v);
|
4465
|
-
setPasswordChanged(true);
|
4466
|
-
} })),
|
4467
|
-
React.createElement("div", { className: "tw-mt-8" },
|
4468
|
-
React.createElement("button", { className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, "Update"))));
|
4043
|
+
return (jsxs(MapOverlayPage, __assign({ backdrop: true, className: 'tw-mx-4 tw-mt-4 tw-max-h-[calc(100dvh-96px)] tw-h-fit md:tw-w-[calc(50%-32px)] tw-w-[calc(100%-32px)] tw-max-w-xl !tw-left-auto tw-top-0 tw-bottom-0' }, { children: [jsx("div", __assign({ className: "tw-text-xl tw-font-semibold" }, { children: "Settings" })), jsx("div", { className: "tw-divider tw-mt-2" }), jsxs("div", __assign({ className: "tw-grid tw-grid-cols-1 tw-gap-6" }, { children: [jsx(TextInput, { type: 'email', placeholder: "new E-Mail", defaultValue: (user === null || user === void 0 ? void 0 : user.email) ? user.email : "", updateFormValue: function (v) { return setEmail(v); } }), jsx(TextInput, { type: 'password', placeholder: "new Password", defaultValue: (user === null || user === void 0 ? void 0 : user.password) ? user.password : "", updateFormValue: function (v) {
|
4044
|
+
setPassword(v);
|
4045
|
+
setPasswordChanged(true);
|
4046
|
+
} })] })), jsx("div", __assign({ className: "tw-mt-8" }, { children: jsx("button", __assign({ className: loading ? " tw-loading tw-btn-disabled tw-btn tw-btn-primary tw-float-right" : "tw-btn tw-btn-primary tw-float-right", onClick: function () { return onUpdateUser(); } }, { children: "Update" })) }))] })));
|
4469
4047
|
}
|
4470
4048
|
|
4471
4049
|
function Modal(_a) {
|
@@ -4474,13 +4052,7 @@ function Modal(_a) {
|
|
4474
4052
|
if (showOnStartup)
|
4475
4053
|
window.my_modal_3.showModal();
|
4476
4054
|
}, []);
|
4477
|
-
return (
|
4478
|
-
React.createElement("dialog", { id: "my_modal_3", className: "tw-modal tw-transition-all tw-duration-300" },
|
4479
|
-
React.createElement("form", { method: "dialog", className: "tw-modal-box tw-transition-none" },
|
4480
|
-
React.createElement("button", { className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none" }, "\u2715"),
|
4481
|
-
children),
|
4482
|
-
React.createElement("form", { method: "dialog", className: "tw-modal-backdrop" },
|
4483
|
-
React.createElement("button", null, "close")))));
|
4055
|
+
return (jsx(Fragment, { children: jsxs("dialog", __assign({ id: "my_modal_3", className: "tw-modal tw-transition-all tw-duration-300" }, { children: [jsxs("form", __assign({ method: "dialog", className: "tw-modal-box tw-transition-none" }, { children: [jsx("button", __assign({ className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-2 tw-top-2 focus:tw-outline-none" }, { children: "\u2715" })), children] })), jsx("form", __assign({ method: "dialog", className: "tw-modal-backdrop" }, { children: jsx("button", { children: "close" }) }))] })) }));
|
4484
4056
|
}
|
4485
4057
|
|
4486
4058
|
function Quests() {
|
@@ -4490,30 +4062,9 @@ function Quests() {
|
|
4490
4062
|
useEffect(function () {
|
4491
4063
|
setQuestsOpen(false);
|
4492
4064
|
}, []);
|
4493
|
-
return (
|
4494
|
-
|
4495
|
-
|
4496
|
-
React.createElement("div", { className: "tw-card-actions tw-justify-end" },
|
4497
|
-
React.createElement("label", { className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1", onClick: function () { return setQuestsOpen(false); } }, "\u2715")),
|
4498
|
-
React.createElement("h2", { className: "tw-card-title tw-m-auto " },
|
4499
|
-
"Level 1",
|
4500
|
-
React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "#aaa", className: "tw-w-5 tw-h-5 tw-cursor-pointer" },
|
4501
|
-
React.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z" }))),
|
4502
|
-
React.createElement("ul", { className: 'tw-flex-row' },
|
4503
|
-
React.createElement("li", null,
|
4504
|
-
React.createElement("label", { className: "tw-label tw-justify-normal tw-pt-1 tw-pb-0" },
|
4505
|
-
React.createElement("input", { type: "checkbox", readOnly: true, className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: isAuthenticated ? isAuthenticated : false }),
|
4506
|
-
React.createElement("span", { className: 'tw-text-sm tw-label-text tw-mx-2' }, "Sign Up"))),
|
4507
|
-
React.createElement("li", null,
|
4508
|
-
React.createElement("label", { className: "tw-label tw-justify-normal tw-pt-1 tw-pb-0" },
|
4509
|
-
React.createElement("input", { type: "checkbox", readOnly: true, className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: (user === null || user === void 0 ? void 0 : user.description) ? true : false }),
|
4510
|
-
React.createElement("span", { className: 'tw-text-sm tw-label-text tw-mx-2' }, "Fill Profile"))),
|
4511
|
-
React.createElement("li", null,
|
4512
|
-
React.createElement("label", { className: "tw-label tw-justify-normal tw-pt-1 tw-pb-0" },
|
4513
|
-
React.createElement("input", { type: "checkbox", readOnly: true, className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: (user === null || user === void 0 ? void 0 : user.avatar) ? true : false }),
|
4514
|
-
React.createElement("span", { className: 'tw-text-sm tw-label-text tw-mx-2' }, "Upload Avatar")))),
|
4515
|
-
" "))
|
4516
|
-
: ""));
|
4065
|
+
return (jsx(Fragment, { children: questsOpen ?
|
4066
|
+
jsx("div", __assign({ className: "tw-card tw-w-48 tw-bg-base-100 tw-shadow-xl tw-absolute tw-bottom-4 tw-left-4 tw-z-[2000]" }, { children: jsxs("div", __assign({ className: "tw-card-body tw-p-4 tw-pt-0" }, { children: [jsx("div", __assign({ className: "tw-card-actions tw-justify-end" }, { children: jsx("label", __assign({ className: "tw-btn tw-btn-sm tw-btn-circle tw-btn-ghost tw-absolute tw-right-1 tw-top-1", onClick: function () { return setQuestsOpen(false); } }, { children: "\u2715" })) })), jsxs("h2", __assign({ className: "tw-card-title tw-m-auto " }, { children: ["Level 1", jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24", strokeWidth: 1.5, stroke: "#aaa", className: "tw-w-5 tw-h-5 tw-cursor-pointer" }, { children: jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9 5.25h.008v.008H12v-.008z" }) }))] })), jsxs("ul", __assign({ className: 'tw-flex-row' }, { children: [jsx("li", { children: jsxs("label", __assign({ className: "tw-label tw-justify-normal tw-pt-1 tw-pb-0" }, { children: [jsx("input", { type: "checkbox", readOnly: true, className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: isAuthenticated ? isAuthenticated : false }), jsx("span", __assign({ className: 'tw-text-sm tw-label-text tw-mx-2' }, { children: "Sign Up" }))] })) }), jsx("li", { children: jsxs("label", __assign({ className: "tw-label tw-justify-normal tw-pt-1 tw-pb-0" }, { children: [jsx("input", { type: "checkbox", readOnly: true, className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: (user === null || user === void 0 ? void 0 : user.description) ? true : false }), jsx("span", __assign({ className: 'tw-text-sm tw-label-text tw-mx-2' }, { children: "Fill Profile" }))] })) }), jsx("li", { children: jsxs("label", __assign({ className: "tw-label tw-justify-normal tw-pt-1 tw-pb-0" }, { children: [jsx("input", { type: "checkbox", readOnly: true, className: "tw-checkbox tw-checkbox-xs tw-checkbox-success", checked: (user === null || user === void 0 ? void 0 : user.avatar) ? true : false }), jsx("span", __assign({ className: 'tw-text-sm tw-label-text tw-mx-2' }, { children: "Upload Avatar" }))] })) })] })), " "] })) }))
|
4067
|
+
: "" }));
|
4517
4068
|
}
|
4518
4069
|
|
4519
4070
|
var css_248z = "/*\n! tailwindcss v3.3.1 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: Helvetica, sans-serif, Roboto; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::-moz-placeholder, textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n[hidden] {\n display: none;\n}\n\n:root,\n[data-theme] {\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n}\n\n@supports not (color: oklch(0 0 0)) {\n\n :root {\n color-scheme: light;\n --fallback-p: #491eff;\n --fallback-pc: #d4dbff;\n --fallback-s: #ff41c7;\n --fallback-sc: #fff9fc;\n --fallback-a: #00cfbd;\n --fallback-ac: #00100d;\n --fallback-n: #2b3440;\n --fallback-nc: #d7dde4;\n --fallback-b1: #ffffff;\n --fallback-b2: #e5e6e6;\n --fallback-b3: #e5e6e6;\n --fallback-bc: #1f2937;\n --fallback-in: #00b3f0;\n --fallback-inc: #000000;\n --fallback-su: #00ca92;\n --fallback-suc: #000000;\n --fallback-wa: #ffc22d;\n --fallback-wac: #000000;\n --fallback-er: #ff6f70;\n --fallback-erc: #000000;\n }\n\n @media (prefers-color-scheme: dark) {\n\n :root {\n color-scheme: dark;\n --fallback-p: #7582ff;\n --fallback-pc: #050617;\n --fallback-s: #ff71cf;\n --fallback-sc: #190211;\n --fallback-a: #00c7b5;\n --fallback-ac: #000e0c;\n --fallback-n: #2a323c;\n --fallback-nc: #a6adbb;\n --fallback-b1: #1d232a;\n --fallback-b2: #191e24;\n --fallback-b3: #15191e;\n --fallback-bc: #a6adbb;\n --fallback-in: #00b3f0;\n --fallback-inc: #000000;\n --fallback-su: #00ca92;\n --fallback-suc: #000000;\n --fallback-wa: #ffc22d;\n --fallback-wac: #000000;\n --fallback-er: #ff6f70;\n --fallback-erc: #000000;\n }\n }\n}\n\nhtml {\n -webkit-tap-highlight-color: transparent;\n}\n\n:root {\n color-scheme: light;\n --in: 0.7206 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 0.8471 0.199 83.87;\n --er: 0.7176 0.221 22.18;\n --pc: 0.89824 0.06192 275.75;\n --ac: 0.15352 0.0368 183.61;\n --inc: 0 0 0;\n --suc: 0 0 0;\n --wac: 0 0 0;\n --erc: 0 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 0.4912 0.3096 275.75;\n --s: 0.6971 0.329 342.55;\n --sc: 0.9871 0.0106 342.55;\n --a: 0.7676 0.184 183.61;\n --n: 0.321785 0.02476 255.701624;\n --nc: 0.894994 0.011585 252.096176;\n --b1: 1 0 0;\n --b2: 0.961151 0 0;\n --b3: 0.924169 0.00108 197.137559;\n --bc: 0.278078 0.029596 256.847952;\n}\n\n@media (prefers-color-scheme: dark) {\n\n :root {\n color-scheme: dark;\n --in: 0.7206 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 0.8471 0.199 83.87;\n --er: 0.7176 0.221 22.18;\n --pc: 0.13138 0.0392 275.75;\n --sc: 0.1496 0.052 342.55;\n --ac: 0.14902 0.0334 183.61;\n --inc: 0 0 0;\n --suc: 0 0 0;\n --wac: 0 0 0;\n --erc: 0 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 0.6569 0.196 275.75;\n --s: 0.748 0.26 342.55;\n --a: 0.7451 0.167 183.61;\n --n: 0.313815 0.021108 254.139175;\n --nc: 0.746477 0.0216 264.435964;\n --b1: 0.253267 0.015896 252.417568;\n --b2: 0.232607 0.013807 253.100675;\n --b3: 0.211484 0.01165 254.087939;\n --bc: 0.746477 0.0216 264.435964;\n }\n}\n\n[data-theme=light] {\n color-scheme: light;\n --in: 0.7206 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 0.8471 0.199 83.87;\n --er: 0.7176 0.221 22.18;\n --pc: 0.89824 0.06192 275.75;\n --ac: 0.15352 0.0368 183.61;\n --inc: 0 0 0;\n --suc: 0 0 0;\n --wac: 0 0 0;\n --erc: 0 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 0.4912 0.3096 275.75;\n --s: 0.6971 0.329 342.55;\n --sc: 0.9871 0.0106 342.55;\n --a: 0.7676 0.184 183.61;\n --n: 0.321785 0.02476 255.701624;\n --nc: 0.894994 0.011585 252.096176;\n --b1: 1 0 0;\n --b2: 0.961151 0 0;\n --b3: 0.924169 0.00108 197.137559;\n --bc: 0.278078 0.029596 256.847952;\n}\n\n[data-theme=dark] {\n color-scheme: dark;\n --in: 0.7206 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 0.8471 0.199 83.87;\n --er: 0.7176 0.221 22.18;\n --pc: 0.13138 0.0392 275.75;\n --sc: 0.1496 0.052 342.55;\n --ac: 0.14902 0.0334 183.61;\n --inc: 0 0 0;\n --suc: 0 0 0;\n --wac: 0 0 0;\n --erc: 0 0 0;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 0.6569 0.196 275.75;\n --s: 0.748 0.26 342.55;\n --a: 0.7451 0.167 183.61;\n --n: 0.313815 0.021108 254.139175;\n --nc: 0.746477 0.0216 264.435964;\n --b1: 0.253267 0.015896 252.417568;\n --b2: 0.232607 0.013807 253.100675;\n --b3: 0.211484 0.01165 254.087939;\n --bc: 0.746477 0.0216 264.435964;\n}\n\n[data-theme=cupcake] {\n color-scheme: light;\n --in: 0.7206 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 0.8471 0.199 83.87;\n --er: 0.7176 0.221 22.18;\n --pc: 0.152344 0.017892 200.026556;\n --sc: 0.15787 0.020249 356.29965;\n --ac: 0.158762 0.029206 78.618794;\n --nc: 0.847148 0.013247 313.189598;\n --inc: 0 0 0;\n --suc: 0 0 0;\n --wac: 0 0 0;\n --erc: 0 0 0;\n --rounded-box: 1rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --p: 0.76172 0.089459 200.026556;\n --s: 0.789351 0.101246 356.29965;\n --a: 0.793811 0.146032 78.618794;\n --n: 0.235742 0.066235 313.189598;\n --b1: 0.977882 0.00418 56.375637;\n --b2: 0.939822 0.007638 61.449292;\n --b3: 0.915861 0.006811 53.440502;\n --bc: 0.235742 0.066235 313.189598;\n --rounded-btn: 1.9rem;\n --tab-border: 2px;\n --tab-radius: 0.7rem;\n}\n\n[data-theme=retro] {\n color-scheme: light;\n --inc: 0.90923 0.043042 262.880917;\n --suc: 0.12541 0.033982 149.213788;\n --wac: 0.133168 0.031484 58.31834;\n --erc: 0.13144 0.0398 27.33;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --p: 0.768664 0.104092 22.664655;\n --pc: 0.265104 0.006243 0.522862;\n --s: 0.807415 0.052534 159.094608;\n --sc: 0.265104 0.006243 0.522862;\n --a: 0.703919 0.125455 52.953428;\n --ac: 0.265104 0.006243 0.522862;\n --n: 0.284181 0.009519 355.534017;\n --nc: 0.925604 0.025113 89.217311;\n --b1: 0.916374 0.034554 90.51575;\n --b2: 0.882722 0.049418 91.774344;\n --b3: 0.84133 0.065952 90.856665;\n --bc: 0.265104 0.006243 0.522862;\n --in: 0.54615 0.215208 262.880917;\n --su: 0.627052 0.169912 149.213788;\n --wa: 0.66584 0.157422 58.31834;\n --er: 0.6572 0.199 27.33;\n --rounded-box: 0.4rem;\n --rounded-btn: 0.4rem;\n --rounded-badge: 0.4rem;\n --tab-radius: 0.4rem;\n}\n\n[data-theme=cyberpunk] {\n color-scheme: light;\n --b2: 0.878943 0.16647 104.32;\n --b3: 0.812786 0.15394 104.32;\n --in: 0.7206 0.191 231.6;\n --su: 64.8% 0.150 160;\n --wa: 0.8471 0.199 83.87;\n --er: 0.7176 0.221 22.18;\n --bc: 0.18902 0.0358 104.32;\n --pc: 0.14844 0.0418 6.35;\n --sc: 0.16666 0.0368 204.72;\n --ac: 0.14372 0.04352 310.43;\n --inc: 0 0 0;\n --suc: 0 0 0;\n --wac: 0 0 0;\n --erc: 0 0 0;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n font-family: ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;\n --p: 0.7422 0.209 6.35;\n --s: 0.8333 0.184 204.72;\n --a: 0.7186 0.2176 310.43;\n --n: 0.2304 0.065 269.31;\n --nc: 0.9451 0.179 104.32;\n --b1: 0.9451 0.179 104.32;\n --rounded-box: 0;\n --rounded-btn: 0;\n --rounded-badge: 0;\n --tab-radius: 0;\n}\n\n[data-theme=aqua] {\n color-scheme: dark;\n --b2: 0.453464 0.118611 261.181672;\n --b3: 0.419333 0.109683 261.181672;\n --bc: 0.897519 0.025508 261.181672;\n --sc: 0.121365 0.02175 309.782946;\n --ac: 0.186854 0.020445 94.555431;\n --nc: 0.122124 0.023402 243.760661;\n --inc: 0.90923 0.043042 262.880917;\n --suc: 0.12541 0.033982 149.213788;\n --wac: 0.133168 0.031484 58.31834;\n --erc: 0.1479 0.038 27.33;\n --rounded-box: 1rem;\n --rounded-btn: 0.5rem;\n --rounded-badge: 1.9rem;\n --animation-btn: 0.25s;\n --animation-input: .2s;\n --btn-focus-scale: 0.95;\n --border-btn: 1px;\n --tab-border: 1px;\n --tab-radius: 0.5rem;\n --p: 0.856617 0.14498 198.6458;\n --pc: 0.401249 0.068266 197.603872;\n --s: 0.606827 0.108752 309.782946;\n --a: 0.934269 0.102225 94.555431;\n --n: 0.610622 0.117009 243.760661;\n --b1: 0.487596 0.127539 261.181672;\n --in: 0.54615 0.215208 262.880917;\n --su: 0.627052 0.169912 149.213788;\n --wa: 0.66584 0.157422 58.31834;\n --er: 0.7395 0.19 27.33;\n}\n\ninput[type=\"range\"]::-webkit-slider-thumb {\n height: 1rem;\n width: 1rem;\n border-radius: 9999px;\n border: 0;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n cursor: pointer;\n}\n\ninput[type=\"range\"]:disabled::-webkit-slider-thumb {}\n\ninput[type=\"range\"]:disabled:focus::-webkit-slider-thumb {}\n\ninput[type=\"range\"]:disabled:active::-webkit-slider-thumb {}\n\ninput[type=\"range\"]::-moz-range-thumb {\n height: 1rem;\n width: 1rem;\n border-radius: 9999px;\n border: 0;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n cursor: pointer;\n}\n\ninput[type=\"range\"]:disabled::-moz-range-thumb {}\n\ninput[type=\"range\"]::-moz-range-progress {}\n\ninput[type=\"range\"]::-ms-fill-lower {}\n\ninput[type=\"range\"]:focus {\n outline: none;\n}\n\ninput[type=\"range\"]:focus::-webkit-slider-thumb {}\n\ninput[type=\"range\"]:active::-webkit-slider-thumb {}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.tw-alert {\n display: grid;\n width: 100%;\n grid-auto-flow: row;\n align-content: flex-start;\n align-items: center;\n justify-items: center;\n gap: 1rem;\n text-align: center;\n border-radius: var(--rounded-box, 1rem);\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n padding: 1rem;\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --alert-bg: var(--fallback-b2,oklch(var(--b2)/1));\n --alert-bg-mix: var(--fallback-b1,oklch(var(--b1)/1));\n background-color: var(--alert-bg);\n}\n@media (min-width: 640px) {\n\n .tw-alert {\n grid-auto-flow: column;\n grid-template-columns: auto minmax(auto,1fr);\n justify-items: start;\n text-align: start;\n }\n}\n.tw-avatar {\n position: relative;\n display: inline-flex;\n}\n.tw-avatar > div {\n display: block;\n aspect-ratio: 1 / 1;\n overflow: hidden;\n}\n.tw-avatar img {\n height: 100%;\n width: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.tw-avatar.tw-placeholder > div {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.tw-breadcrumbs {\n max-width: 100%;\n overflow-x: auto;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.tw-breadcrumbs > ul,\n .tw-breadcrumbs > ol {\n display: flex;\n align-items: center;\n white-space: nowrap;\n min-height: -moz-min-content;\n min-height: min-content;\n}\n.tw-breadcrumbs > ul > li, .tw-breadcrumbs > ol > li {\n display: flex;\n align-items: center;\n}\n.tw-breadcrumbs > ul > li > a, .tw-breadcrumbs > ol > li > a {\n display: flex;\n cursor: pointer;\n align-items: center;\n}\n@media (hover:hover) {\n\n .tw-breadcrumbs > ul > li > a:hover, .tw-breadcrumbs > ol > li > a:hover {\n text-decoration-line: underline;\n }\n\n .tw-checkbox-success:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-su,oklch(var(--su)/var(--tw-border-opacity)));\n }\n\n .tw-label a:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n }\n\n .tw-menu li > *:not(ul):not(.tw-menu-title):not(details):active,\n.tw-menu li > *:not(ul):not(.tw-menu-title):not(details).tw-active,\n.tw-menu li > details > summary:active {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n }\n\n .tw-tab:hover {\n --tw-text-opacity: 1;\n }\n}\n.tw-btn {\n display: inline-flex;\n height: 3rem;\n min-height: 3rem;\n flex-shrink: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n border-radius: var(--rounded-btn, 0.5rem);\n border-color: transparent;\n border-color: oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity));\n padding-left: 1rem;\n padding-right: 1rem;\n text-align: center;\n font-size: 0.875rem;\n line-height: 1em;\n gap: 0.5rem;\n font-weight: 600;\n text-decoration-line: none;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n border-width: var(--border-btn, 1px);\n animation: button-pop var(--animation-btn, 0.25s) ease-out;\n transition-property: color, background-color, border-color, opacity, box-shadow, transform;\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n outline-color: var(--fallback-bc,oklch(var(--bc)/1));\n background-color: oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity));\n --tw-bg-opacity: 1;\n --tw-border-opacity: 1;\n}\n.tw-btn-disabled,\n .tw-btn[disabled],\n .tw-btn:disabled {\n pointer-events: none;\n}\n.tw-btn-square {\n height: 3rem;\n width: 3rem;\n padding: 0px;\n}\n.tw-btn-circle {\n height: 3rem;\n width: 3rem;\n border-radius: 9999px;\n padding: 0px;\n}\n:where(.tw-btn:is(input[type=\"checkbox\"])),\n:where(.tw-btn:is(input[type=\"radio\"])) {\n width: auto;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n}\n.tw-btn:is(input[type=\"checkbox\"]):after,\n.tw-btn:is(input[type=\"radio\"]):after {\n --tw-content: attr(aria-label);\n content: var(--tw-content);\n}\n.tw-card {\n position: relative;\n display: flex;\n flex-direction: column;\n border-radius: var(--rounded-box, 1rem);\n}\n.tw-card:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-card-body {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n padding: var(--padding-card, 2rem);\n gap: 0.5rem;\n}\n.tw-card-body :where(p) {\n flex-grow: 1;\n}\n.tw-card-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n gap: 0.5rem;\n}\n.tw-card figure {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.tw-card.tw-image-full {\n display: grid;\n}\n.tw-card.tw-image-full:before {\n position: relative;\n content: \"\";\n z-index: 10;\n border-radius: var(--rounded-box, 1rem);\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n opacity: 0.75;\n}\n.tw-card.tw-image-full:before,\n .tw-card.tw-image-full > * {\n grid-column-start: 1;\n grid-row-start: 1;\n}\n.tw-card.tw-image-full > figure img {\n height: 100%;\n -o-object-fit: cover;\n object-fit: cover;\n}\n.tw-card.tw-image-full > .tw-card-body {\n position: relative;\n z-index: 20;\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n}\n.tw-checkbox {\n flex-shrink: 0;\n --chkbg: var(--fallback-bc,oklch(var(--bc)/1));\n --chkfg: var(--fallback-b1,oklch(var(--b1)/1));\n height: 1.5rem;\n width: 1.5rem;\n cursor: pointer;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 0.2;\n}\n.tw-divider {\n display: flex;\n flex-direction: row;\n align-items: center;\n align-self: stretch;\n margin-top: 1rem;\n margin-bottom: 1rem;\n height: 1rem;\n white-space: nowrap;\n}\n.tw-divider:before,\n .tw-divider:after {\n height: 0.125rem;\n width: 100%;\n flex-grow: 1;\n --tw-content: '';\n content: var(--tw-content);\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n}\n.tw-dropdown {\n position: relative;\n display: inline-block;\n}\n.tw-dropdown > *:not(summary):focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-dropdown .tw-dropdown-content {\n position: absolute;\n}\n.tw-dropdown:is(:not(details)) .tw-dropdown-content {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n visibility: hidden;\n opacity: 0;\n transform-origin: top;\n --tw-scale-x: .95;\n --tw-scale-y: .95;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n}\n.tw-dropdown-end .tw-dropdown-content {\n inset-inline-end: 0px;\n}\n.tw-dropdown-left .tw-dropdown-content {\n bottom: auto;\n inset-inline-end: 100%;\n top: 0px;\n transform-origin: right;\n}\n.tw-dropdown-right .tw-dropdown-content {\n bottom: auto;\n inset-inline-start: 100%;\n top: 0px;\n transform-origin: left;\n}\n.tw-dropdown-bottom .tw-dropdown-content {\n bottom: auto;\n top: 100%;\n transform-origin: top;\n}\n.tw-dropdown-top .tw-dropdown-content {\n bottom: 100%;\n top: auto;\n transform-origin: bottom;\n}\n.tw-dropdown-end.tw-dropdown-right .tw-dropdown-content {\n bottom: 0px;\n top: auto;\n}\n.tw-dropdown-end.tw-dropdown-left .tw-dropdown-content {\n bottom: 0px;\n top: auto;\n}\n.tw-dropdown.tw-dropdown-open .tw-dropdown-content,\n.tw-dropdown:not(.tw-dropdown-hover):focus .tw-dropdown-content,\n.tw-dropdown:focus-within .tw-dropdown-content {\n visibility: visible;\n opacity: 1;\n}\n@media (hover: hover) {\n\n .tw-dropdown.tw-dropdown-hover:hover .tw-dropdown-content {\n visibility: visible;\n opacity: 1;\n }\n\n .tw-btn:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:hover {\n background-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,\n black\n );\n border-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,\n black\n );\n }\n }\n\n @supports not (color: oklch(0 0 0)) {\n\n .tw-btn:hover {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n }\n\n .tw-btn:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:hover {\n background-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,\n black\n );\n border-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,\n black\n );\n }\n }\n\n @supports not (color: oklch(0 0 0)) {\n\n .tw-btn:hover {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n }\n\n .tw-btn:hover {\n --tw-border-opacity: 1;\n border-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:hover {\n background-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-bg-opacity, 1)) 90%,\n black\n );\n border-color: color-mix(\n in oklab,\n oklch(var(--btn-color, var(--b2)) / var(--tw-border-opacity, 1)) 90%,\n black\n );\n }\n }\n\n @supports not (color: oklch(0 0 0)) {\n\n .tw-btn:hover {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n }\n\n .tw-btn.tw-glass:hover {\n --glass-opacity: 25%;\n --glass-border-opacity: 15%;\n }\n\n .tw-btn-ghost:hover {\n border-color: transparent;\n }\n\n @supports (color: oklch(0 0 0)) {\n\n .tw-btn-ghost:hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n }\n }\n\n .tw-btn-ghost:hover {\n border-color: transparent;\n }\n\n @supports (color: oklch(0 0 0)) {\n\n .tw-btn-ghost:hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n }\n }\n\n .tw-btn-outline.tw-btn-primary:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-primary:hover {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n }\n\n .tw-btn-outline.tw-btn-primary:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-primary:hover {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n }\n\n .tw-btn-outline.tw-btn-error:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-error:hover {\n background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n }\n }\n\n .tw-btn-outline.tw-btn-error:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-error:hover {\n background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n }\n }\n\n .tw-btn-disabled:hover,\n .tw-btn[disabled]:hover,\n .tw-btn:disabled:hover {\n --tw-border-opacity: 0;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-bg-opacity: 0.2;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n }\n\n @supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn:is(input[type=\"checkbox\"]:checked):hover, .tw-btn:is(input[type=\"radio\"]:checked):hover {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n }\n\n .tw-dropdown.tw-dropdown-hover:hover .tw-dropdown-content {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n }\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n cursor: pointer;\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n @supports (color: oklch(0 0 0)) {\n\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(.tw-active):hover, :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(.tw-active):hover {\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n }\n }\n\n .tw-tab[disabled],\n .tw-tab[disabled]:hover {\n cursor: not-allowed;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n }\n}\n.tw-dropdown:is(details) summary::-webkit-details-marker {\n display: none;\n}\n.tw-file-input {\n height: 3rem;\n flex-shrink: 1;\n padding-inline-end: 1rem;\n font-size: 1rem;\n line-height: 2;\n line-height: 1.5rem;\n overflow: hidden;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 0;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-file-input::file-selector-button {\n margin-inline-end: 1rem;\n display: inline-flex;\n height: 100%;\n flex-shrink: 0;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n padding-left: 1rem;\n padding-right: 1rem;\n text-align: center;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 1em;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n border-style: solid;\n --tw-border-opacity: 1;\n border-color: var(--fallback-n,oklch(var(--n)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n font-weight: 600;\n text-transform: uppercase;\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n text-decoration-line: none;\n border-width: var(--border-btn, 1px);\n animation: button-pop var(--animation-btn, 0.25s) ease-out;\n}\n.tw-form-control {\n display: flex;\n flex-direction: column;\n}\n.tw-label {\n display: flex;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n align-items: center;\n justify-content: space-between;\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.tw-input {\n flex-shrink: 1;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 3rem;\n padding-left: 1rem;\n padding-right: 1rem;\n font-size: 1rem;\n line-height: 2;\n line-height: 1.5rem;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-join .tw-dropdown .tw-join-item:first-child:not(:last-child),\n .tw-join *:first-child:not(:last-child) .tw-dropdown .tw-join-item {\n border-start-end-radius: inherit;\n border-end-end-radius: inherit;\n}\n.tw-menu {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n font-size: 0.875rem;\n line-height: 1.25rem;\n padding: 0.5rem;\n}\n.tw-menu :where(li ul) {\n position: relative;\n white-space: nowrap;\n margin-inline-start: 1rem;\n padding-inline-start: 0.5rem;\n}\n.tw-menu :where(li:not(.tw-menu-title) > *:not(ul):not(details):not(.tw-menu-title)),\n .tw-menu :where(li:not(.tw-menu-title) > details > summary:not(.tw-menu-title)) {\n display: grid;\n grid-auto-flow: column;\n align-content: flex-start;\n align-items: center;\n gap: 0.5rem;\n grid-auto-columns: minmax(auto, max-content) auto max-content;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.tw-menu li.tw-disabled {\n cursor: not-allowed;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n color: var(--fallback-bc,oklch(var(--bc)/0.3));\n}\n.tw-menu :where(li > .tw-menu-dropdown:not(.tw-menu-dropdown-show)) {\n display: none;\n}\n:where(.tw-menu li) {\n position: relative;\n display: flex;\n flex-shrink: 0;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: stretch;\n}\n:where(.tw-menu li) .tw-badge {\n justify-self: end;\n}\n.tw-modal {\n pointer-events: none;\n position: fixed;\n inset: 0px;\n margin: 0px;\n display: grid;\n height: 100%;\n max-height: none;\n width: 100%;\n max-width: none;\n justify-items: center;\n padding: 0px;\n opacity: 0;\n overscroll-behavior: contain;\n z-index: 999;\n background-color: transparent;\n color: inherit;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-property: transform, opacity, visibility;\n overflow-y: hidden;\n}\n:where(.tw-modal) {\n align-items: center;\n}\n.tw-modal-box {\n max-height: calc(100vh - 5em);\n grid-column-start: 1;\n grid-row-start: 1;\n width: 91.666667%;\n max-width: 32rem;\n --tw-scale-x: .9;\n --tw-scale-y: .9;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-bottom-right-radius: var(--rounded-box, 1rem);\n border-bottom-left-radius: var(--rounded-box, 1rem);\n border-top-left-radius: var(--rounded-box, 1rem);\n border-top-right-radius: var(--rounded-box, 1rem);\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n padding: 1.5rem;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n box-shadow: rgba(0, 0, 0, 0.25) 0px 25px 50px -12px;\n overflow-y: auto;\n overscroll-behavior: contain;\n}\n.tw-modal-open,\n.tw-modal:target,\n.tw-modal-toggle:checked + .tw-modal,\n.tw-modal[open] {\n pointer-events: auto;\n visibility: visible;\n opacity: 1;\n}\n:root:has(:is(.tw-modal-open, .tw-modal:target, .tw-modal-toggle:checked + .tw-modal, .tw-modal[open])) {\n overflow: hidden;\n}\n.tw-navbar {\n display: flex;\n align-items: center;\n padding: var(--navbar-padding, 0.5rem);\n min-height: 4rem;\n width: 100%;\n}\n:where(.tw-navbar > *) {\n display: inline-flex;\n align-items: center;\n}\n.tw-select {\n display: inline-flex;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n height: 3rem;\n min-height: 3rem;\n padding-left: 1rem;\n padding-right: 2.5rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),\n linear-gradient(135deg, currentColor 50%, transparent 50%);\n background-position: calc(100% - 20px) calc(1px + 50%),\n calc(100% - 16.1px) calc(1px + 50%);\n background-size: 4px 4px,\n 4px 4px;\n background-repeat: no-repeat;\n}\n.tw-select[multiple] {\n height: auto;\n}\n.tw-tabs {\n display: grid;\n align-items: flex-end;\n}\n.tw-tabs-lifted:has(.tw-tab-content[class^=\"rounded-\"]) .tw-tab:first-child:not(.tw-tab-active),\n .tw-tabs-lifted:has(.tw-tab-content[class*=\" rounded-\"]) .tw-tab:first-child:not(.tw-tab-active) {\n border-bottom-color: transparent;\n}\n.tw-tab {\n position: relative;\n grid-row-start: 1;\n display: inline-flex;\n height: 2rem;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n appearance: none;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n --tab-padding: 1rem;\n --tw-text-opacity: 0.5;\n --tab-color: var(--fallback-bc,oklch(var(--bc)/1));\n --tab-bg: var(--fallback-b1,oklch(var(--b1)/1));\n --tab-border-color: var(--fallback-b3,oklch(var(--b3)/1));\n color: var(--tab-color);\n padding-inline-start: var(--tab-padding, 1rem);\n padding-inline-end: var(--tab-padding, 1rem);\n}\n.tw-tab:is(input[type=\"radio\"]) {\n width: auto;\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.tw-tab:is(input[type=\"radio\"]):after {\n --tw-content: attr(aria-label);\n content: var(--tw-content);\n}\n.tw-tab:not(input):empty {\n cursor: default;\n grid-column-start: span 9999;\n}\n.tw-tab-content {\n grid-column-start: 1;\n grid-column-end: span 9999;\n grid-row-start: 2;\n margin-top: calc(var(--tab-border) * -1);\n display: none;\n border-color: transparent;\n border-width: var(--tab-border, 0);\n}\n:checked + .tw-tab-content:nth-child(2),\n .tw-tab-active + .tw-tab-content:nth-child(2) {\n border-start-start-radius: 0px;\n}\ninput.tw-tab:checked + .tw-tab-content,\n.tw-tab-active + .tw-tab-content {\n display: block;\n}\n.tw-textarea {\n min-height: 3rem;\n flex-shrink: 1;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n border-radius: var(--rounded-btn, 0.5rem);\n border-width: 1px;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-avatar-group :where(.tw-avatar) {\n overflow: hidden;\n border-radius: 9999px;\n border-width: 4px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-border-opacity)));\n}\n.tw-btm-nav > * .tw-label {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.tw-breadcrumbs > ul > li > a:focus, .tw-breadcrumbs > ol > li > a:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-breadcrumbs > ul > li > a:focus-visible, .tw-breadcrumbs > ol > li > a:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n}\n.tw-breadcrumbs > ul > li + *:before, .tw-breadcrumbs > ol > li + *:before {\n content: \"\";\n margin-left: 0.5rem;\n margin-right: 0.75rem;\n display: block;\n height: 0.375rem;\n width: 0.375rem;\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n opacity: 0.4;\n border-top: 1px solid;\n border-right: 1px solid;\n background-color: transparent;\n}\n[dir=\"rtl\"] .tw-breadcrumbs > ul > li + *:before,\n[dir=\"rtl\"] .tw-breadcrumbs > ol > li + *:before {\n --tw-rotate: -135deg;\n}\n.tw-btn:active:hover,\n .tw-btn:active:focus {\n animation: button-pop 0s ease-out;\n transform: scale(var(--btn-focus-scale, 0.97));\n}\n@supports not (color: oklch(0 0 0)) {\n\n .tw-btn {\n background-color: var(--btn-color, var(--fallback-b2));\n border-color: var(--btn-color, var(--fallback-b2));\n }\n\n .tw-btn-primary {\n --btn-color: var(--fallback-p);\n }\n\n .tw-btn-neutral {\n --btn-color: var(--fallback-n);\n }\n\n .tw-btn-error {\n --btn-color: var(--fallback-er);\n }\n}\n@supports (color: color-mix(in oklab, black, black)) {\n\n .tw-btn-outline.tw-btn-primary.tw-btn-active {\n background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);\n }\n\n .tw-btn-outline.tw-btn-error.tw-btn-active {\n background-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n border-color: color-mix(in oklab, var(--fallback-er,oklch(var(--er)/1)) 90%, black);\n }\n}\n.tw-btn:focus-visible {\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n}\n.tw-btn-primary {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n outline-color: var(--fallback-p,oklch(var(--p)/1));\n}\n@supports (color: oklch(0 0 0)) {\n\n .tw-btn-primary {\n --btn-color: var(--p);\n }\n\n .tw-btn-neutral {\n --btn-color: var(--n);\n }\n\n .tw-btn-error {\n --btn-color: var(--er);\n }\n}\n.tw-btn-neutral {\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n outline-color: var(--fallback-n,oklch(var(--n)/1));\n}\n.tw-btn-error {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n outline-color: var(--fallback-er,oklch(var(--er)/1));\n}\n.tw-btn.tw-glass {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n outline-color: currentColor;\n}\n.tw-btn.tw-glass.tw-btn-active {\n --glass-opacity: 25%;\n --glass-border-opacity: 15%;\n}\n.tw-btn-ghost {\n border-width: 1px;\n border-color: transparent;\n background-color: transparent;\n color: currentColor;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n outline-color: currentColor;\n}\n.tw-btn-ghost.tw-btn-active {\n border-color: transparent;\n background-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-btn-outline.tw-btn-primary {\n --tw-text-opacity: 1;\n color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));\n}\n.tw-btn-outline.tw-btn-primary.tw-btn-active {\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n}\n.tw-btn-outline.tw-btn-error {\n --tw-text-opacity: 1;\n color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity)));\n}\n.tw-btn-outline.tw-btn-error.tw-btn-active {\n --tw-text-opacity: 1;\n color: var(--fallback-erc,oklch(var(--erc)/var(--tw-text-opacity)));\n}\n.tw-btn.tw-btn-disabled,\n .tw-btn[disabled],\n .tw-btn:disabled {\n --tw-border-opacity: 0;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-bg-opacity: 0.2;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-btn:is(input[type=\"checkbox\"]:checked),\n.tw-btn:is(input[type=\"radio\"]:checked) {\n --tw-border-opacity: 1;\n border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));\n}\n.tw-btn:is(input[type=\"checkbox\"]:checked):focus-visible, .tw-btn:is(input[type=\"radio\"]:checked):focus-visible {\n outline-color: var(--fallback-p,oklch(var(--p)/1));\n}\n@keyframes button-pop {\n\n 0% {\n transform: scale(var(--btn-focus-scale, 0.98));\n }\n\n 40% {\n transform: scale(1.02);\n }\n\n 100% {\n transform: scale(1);\n }\n}\n.tw-card :where(figure:first-child) {\n overflow: hidden;\n border-start-start-radius: inherit;\n border-start-end-radius: inherit;\n border-end-start-radius: unset;\n border-end-end-radius: unset;\n}\n.tw-card :where(figure:last-child) {\n overflow: hidden;\n border-start-start-radius: unset;\n border-start-end-radius: unset;\n border-end-start-radius: inherit;\n border-end-end-radius: inherit;\n}\n.tw-card:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: 2px;\n}\n.tw-card.tw-bordered {\n border-width: 1px;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n}\n.tw-card.tw-compact .tw-card-body {\n padding: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-card-title {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-size: 1.25rem;\n line-height: 1.75rem;\n font-weight: 600;\n}\n.tw-card.tw-image-full :where(figure) {\n overflow: hidden;\n border-radius: inherit;\n}\n.tw-checkbox:focus {\n box-shadow: none;\n}\n.tw-checkbox:focus-visible {\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/1));\n}\n.tw-checkbox:checked,\n .tw-checkbox[checked=\"true\"],\n .tw-checkbox[aria-checked=\"true\"] {\n background-repeat: no-repeat;\n animation: checkmark var(--animation-input, 0.2s) ease-out;\n background-color: var(--chkbg);\n background-image: linear-gradient(-45deg, transparent 65%, var(--chkbg) 65.99%),\n linear-gradient(45deg, transparent 75%, var(--chkbg) 75.99%),\n linear-gradient(-45deg, var(--chkbg) 40%, transparent 40.99%),\n linear-gradient(\n 45deg,\n var(--chkbg) 30%,\n var(--chkfg) 30.99%,\n var(--chkfg) 40%,\n transparent 40.99%\n ),\n linear-gradient(-45deg, var(--chkfg) 50%, var(--chkbg) 50.99%);\n}\n.tw-checkbox:indeterminate {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n background-repeat: no-repeat;\n animation: checkmark var(--animation-input, 0.2s) ease-out;\n background-image: linear-gradient(90deg, transparent 80%, var(--chkbg) 80%),\n linear-gradient(-90deg, transparent 80%, var(--chkbg) 80%),\n linear-gradient(0deg, var(--chkbg) 43%, var(--chkfg) 43%, var(--chkfg) 57%, var(--chkbg) 57%);\n}\n.tw-checkbox-success {\n --chkbg: var(--fallback-su,oklch(var(--su)/1));\n --chkfg: var(--fallback-suc,oklch(var(--suc)/1));\n --tw-border-opacity: 1;\n border-color: var(--fallback-su,oklch(var(--su)/var(--tw-border-opacity)));\n}\n.tw-checkbox-success:focus-visible {\n outline-color: var(--fallback-su,oklch(var(--su)/1));\n}\n.tw-checkbox-success:checked,\n .tw-checkbox-success[checked=\"true\"],\n .tw-checkbox-success[aria-checked=\"true\"] {\n --tw-border-opacity: 1;\n border-color: var(--fallback-su,oklch(var(--su)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-suc,oklch(var(--suc)/var(--tw-text-opacity)));\n}\n.tw-checkbox:disabled {\n cursor: not-allowed;\n border-color: transparent;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n opacity: 0.2;\n}\n@keyframes checkmark {\n\n 0% {\n background-position-y: 5px;\n }\n\n 50% {\n background-position-y: -2px;\n }\n\n 100% {\n background-position-y: 0;\n }\n}\n.tw-divider:not(:empty) {\n gap: 1rem;\n}\n.tw-dropdown.tw-dropdown-open .tw-dropdown-content,\n.tw-dropdown:focus .tw-dropdown-content,\n.tw-dropdown:focus-within .tw-dropdown-content {\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-file-input:focus {\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-file-input-disabled,\n .tw-file-input[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-file-input-disabled::-moz-placeholder, .tw-file-input[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-file-input-disabled::placeholder,\n .tw-file-input[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-file-input-disabled::file-selector-button, .tw-file-input[disabled]::file-selector-button {\n --tw-border-opacity: 0;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-bg-opacity: 0.2;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-label-text {\n font-size: 0.875rem;\n line-height: 1.25rem;\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n}\n.tw-input input:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-input[list]::-webkit-calendar-picker-indicator {\n line-height: 1em;\n}\n.tw-input-bordered {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-input:focus,\n .tw-input:focus-within {\n box-shadow: none;\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-input-disabled,\n .tw-input:disabled,\n .tw-input[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n color: var(--fallback-bc,oklch(var(--bc)/0.4));\n}\n.tw-input-disabled::-moz-placeholder, .tw-input:disabled::-moz-placeholder, .tw-input[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-input-disabled::placeholder,\n .tw-input:disabled::placeholder,\n .tw-input[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-input::-webkit-date-and-time-value {\n text-align: inherit;\n}\n.tw-loading {\n pointer-events: none;\n display: inline-block;\n aspect-ratio: 1 / 1;\n width: 1.5rem;\n background-color: currentColor;\n -webkit-mask-size: 100%;\n mask-size: 100%;\n -webkit-mask-repeat: no-repeat;\n mask-repeat: no-repeat;\n -webkit-mask-position: center;\n mask-position: center;\n -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n}\n.tw-loading-spinner {\n -webkit-mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n mask-image: url(\"data:image/svg+xml,%3Csvg width='24' height='24' stroke='%23000' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cstyle%3E.spinner_V8m1%7Btransform-origin:center;animation:spinner_zKoa 2s linear infinite%7D.spinner_V8m1 circle%7Bstroke-linecap:round;animation:spinner_YpZS 1.5s ease-out infinite%7D%40keyframes spinner_zKoa%7B100%25%7Btransform:rotate(360deg)%7D%7D%40keyframes spinner_YpZS%7B0%25%7Bstroke-dasharray:0 150;stroke-dashoffset:0%7D47.5%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-16%7D95%25%2C100%25%7Bstroke-dasharray:42 150;stroke-dashoffset:-59%7D%7D%3C%2Fstyle%3E%3Cg class='spinner_V8m1'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3'%3E%3C%2Fcircle%3E%3C%2Fg%3E%3C%2Fsvg%3E\");\n}\n.tw-loading-sm {\n width: 1.25rem;\n}\n.tw-loading-md {\n width: 1.5rem;\n}\n:where(.tw-menu li:empty) {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n opacity: 0.1;\n margin: 0.5rem 1rem;\n height: 1px;\n}\n.tw-menu :where(li ul):before {\n position: absolute;\n bottom: 0.75rem;\n inset-inline-start: 0px;\n top: 0.75rem;\n width: 1px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-bg-opacity)));\n opacity: 0.1;\n content: \"\";\n}\n.tw-menu :where(li:not(.tw-menu-title) > *:not(ul):not(details):not(.tw-menu-title)),\n.tw-menu :where(li:not(.tw-menu-title) > details > summary:not(.tw-menu-title)) {\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n border-radius: var(--rounded-btn, 0.5rem);\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n text-align: start;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 200ms;\n text-wrap: balance;\n}\n:where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(summary):not(.tw-active).tw-focus,\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):not(summary):not(.tw-active):focus,\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > *:not(ul):not(details):not(.tw-menu-title)):is(summary):not(.tw-active):focus-visible,\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(summary):not(.tw-active).tw-focus,\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):not(summary):not(.tw-active):focus,\n :where(.tw-menu li:not(.tw-menu-title):not(.tw-disabled) > details > summary:not(.tw-menu-title)):is(summary):not(.tw-active):focus-visible {\n cursor: pointer;\n background-color: var(--fallback-bc,oklch(var(--bc)/0.1));\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-menu li > *:not(ul):not(.tw-menu-title):not(details):active,\n.tw-menu li > *:not(ul):not(.tw-menu-title):not(details).tw-active,\n.tw-menu li > details > summary:active {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-n,oklch(var(--n)/var(--tw-bg-opacity)));\n --tw-text-opacity: 1;\n color: var(--fallback-nc,oklch(var(--nc)/var(--tw-text-opacity)));\n}\n.tw-menu :where(li > details > summary)::-webkit-details-marker {\n display: none;\n}\n.tw-menu :where(li > details > summary):after,\n.tw-menu :where(li > .tw-menu-dropdown-toggle):after {\n justify-self: end;\n display: block;\n margin-top: -0.5rem;\n height: 0.5rem;\n width: 0.5rem;\n transform: rotate(45deg);\n transition-property: transform, margin-top;\n transition-duration: 0.3s;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n content: \"\";\n transform-origin: 75% 75%;\n box-shadow: 2px 2px;\n pointer-events: none;\n}\n.tw-menu :where(li > details[open] > summary):after,\n.tw-menu :where(li > .tw-menu-dropdown-toggle.tw-menu-dropdown-show):after {\n transform: rotate(225deg);\n margin-top: 0;\n}\n.tw-mockup-browser .tw-mockup-browser-toolbar .tw-input {\n position: relative;\n margin-left: auto;\n margin-right: auto;\n display: block;\n height: 1.75rem;\n width: 24rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n padding-left: 2rem;\n direction: ltr;\n}\n.tw-mockup-browser .tw-mockup-browser-toolbar .tw-input:before {\n content: \"\";\n position: absolute;\n left: 0.5rem;\n top: 50%;\n aspect-ratio: 1 / 1;\n height: 0.75rem;\n --tw-translate-y: -50%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-radius: 9999px;\n border-width: 2px;\n border-color: currentColor;\n opacity: 0.6;\n}\n.tw-mockup-browser .tw-mockup-browser-toolbar .tw-input:after {\n content: \"\";\n position: absolute;\n left: 1.25rem;\n top: 50%;\n height: 0.5rem;\n --tw-translate-y: 25%;\n --tw-rotate: -45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-radius: 9999px;\n border-width: 1px;\n border-color: currentColor;\n opacity: 0.6;\n}\n.tw-modal:not(dialog:not(.tw-modal-open)),\n .tw-modal::backdrop {\n background-color: #0006;\n animation: modal-pop 0.2s ease-out;\n}\n.tw-modal-backdrop {\n z-index: -1;\n grid-column-start: 1;\n grid-row-start: 1;\n display: grid;\n align-self: stretch;\n justify-self: stretch;\n color: transparent;\n}\n.tw-modal-open .tw-modal-box,\n.tw-modal-toggle:checked + .tw-modal .tw-modal-box,\n.tw-modal:target .tw-modal-box,\n.tw-modal[open] .tw-modal-box {\n --tw-translate-y: 0px;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n@keyframes modal-pop {\n\n 0% {\n opacity: 0;\n }\n}\n@keyframes progress-loading {\n\n 50% {\n background-position-x: -115%;\n }\n}\n@keyframes radiomark {\n\n 0% {\n box-shadow: 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset,\n 0 0 0 12px var(--fallback-b1,oklch(var(--b1)/1)) inset;\n }\n\n 50% {\n box-shadow: 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset,\n 0 0 0 3px var(--fallback-b1,oklch(var(--b1)/1)) inset;\n }\n\n 100% {\n box-shadow: 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset,\n 0 0 0 4px var(--fallback-b1,oklch(var(--b1)/1)) inset;\n }\n}\n@keyframes rating-pop {\n\n 0% {\n transform: translateY(-0.125em);\n }\n\n 40% {\n transform: translateY(-0.125em);\n }\n\n 100% {\n transform: translateY(0);\n }\n}\n.tw-select-bordered {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-select:focus {\n box-shadow: none;\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-select-disabled,\n .tw-select:disabled,\n .tw-select[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-select-disabled::-moz-placeholder, .tw-select:disabled::-moz-placeholder, .tw-select[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-select-disabled::placeholder,\n .tw-select:disabled::placeholder,\n .tw-select[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-select-multiple,\n .tw-select[multiple],\n .tw-select[size].tw-select:not([size=\"1\"]) {\n background-image: none;\n padding-right: 1rem;\n}\n[dir=\"rtl\"] .tw-select {\n background-position: calc(0% + 12px) calc(1px + 50%),\n calc(0% + 16px) calc(1px + 50%);\n}\n@keyframes skeleton {\n\n from {\n background-position: 150%;\n }\n\n to {\n background-position: -50%;\n }\n}\n.tw-tabs-lifted > .tw-tab:focus-visible {\n border-end-end-radius: 0;\n border-end-start-radius: 0;\n}\n.tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]),\n .tw-tab:is(input:checked) {\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 1;\n --tw-text-opacity: 1;\n}\n.tw-tab:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n.tw-tab:focus-visible {\n outline: 2px solid currentColor;\n outline-offset: -5px;\n}\n.tw-tab-disabled,\n .tw-tab[disabled] {\n cursor: not-allowed;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-tabs-bordered > .tw-tab {\n border-color: var(--fallback-bc,oklch(var(--bc)/var(--tw-border-opacity)));\n --tw-border-opacity: 0.2;\n border-style: solid;\n border-bottom-width: calc(var(--tab-border, 1px) + 1px);\n}\n.tw-tabs-lifted > .tw-tab {\n border: var(--tab-border, 1px) solid transparent;\n border-width: 0 0 var(--tab-border, 1px) 0;\n border-start-start-radius: var(--tab-radius, 0.5rem);\n border-start-end-radius: var(--tab-radius, 0.5rem);\n border-bottom-color: var(--tab-border-color);\n padding-inline-start: var(--tab-padding, 1rem);\n padding-inline-end: var(--tab-padding, 1rem);\n padding-top: var(--tab-border, 1px);\n}\n.tw-tabs-lifted > .tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]),\n .tw-tabs-lifted > .tw-tab:is(input:checked) {\n background-color: var(--tab-bg);\n border-width: var(--tab-border, 1px) var(--tab-border, 1px) 0 var(--tab-border, 1px);\n border-inline-start-color: var(--tab-border-color);\n border-inline-end-color: var(--tab-border-color);\n border-top-color: var(--tab-border-color);\n padding-inline-start: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));\n padding-inline-end: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));\n padding-bottom: var(--tab-border, 1px);\n padding-top: 0;\n}\n.tw-tabs-lifted > .tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]):before, .tw-tabs-lifted > .tw-tab:is(input:checked):before {\n z-index: 1;\n content: \"\";\n display: block;\n position: absolute;\n width: calc(100% + var(--tab-radius, 0.5rem) * 2);\n height: var(--tab-radius, 0.5rem);\n bottom: 0;\n background-size: var(--tab-radius, 0.5rem);\n background-position: top left,\n top right;\n background-repeat: no-repeat;\n --tab-grad: calc(69% - var(--tab-border, 1px));\n --radius-start: radial-gradient(\n circle at top left,\n transparent var(--tab-grad),\n var(--tab-border-color) calc(var(--tab-grad) + 0.25px),\n var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)),\n var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px)\n );\n --radius-end: radial-gradient(\n circle at top right,\n transparent var(--tab-grad),\n var(--tab-border-color) calc(var(--tab-grad) + 0.25px),\n var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)),\n var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.25px)\n );\n background-image: var(--radius-start), var(--radius-end);\n}\n.tw-tabs-lifted > .tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]):first-child:before, .tw-tabs-lifted > .tw-tab:is(input:checked):first-child:before {\n background-image: var(--radius-end);\n background-position: top right;\n}\n[dir=\"rtl\"] .tw-tabs-lifted > .tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]):first-child:before, [dir=\"rtl\"] .tw-tabs-lifted > .tw-tab:is(input:checked):first-child:before {\n background-image: var(--radius-start);\n background-position: top left;\n}\n.tw-tabs-lifted > .tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]):last-child:before, .tw-tabs-lifted > .tw-tab:is(input:checked):last-child:before {\n background-image: var(--radius-start);\n background-position: top left;\n}\n[dir=\"rtl\"] .tw-tabs-lifted > .tw-tab.tw-tab-active:not(.tw-tab-disabled):not([disabled]):last-child:before, [dir=\"rtl\"] .tw-tabs-lifted > .tw-tab:is(input:checked):last-child:before {\n background-image: var(--radius-end);\n background-position: top right;\n}\n.tw-tabs-lifted\n > .tw-tab-active:not(.tw-tab-disabled):not([disabled])\n + .tw-tabs-lifted\n .tw-tab-active:not(.tw-tab-disabled):not([disabled]):before, .tw-tabs-lifted > .tw-tab:is(input:checked) + .tw-tabs-lifted .tw-tab:is(input:checked):before {\n background-image: var(--radius-end);\n background-position: top right;\n}\n.tw-tabs-boxed .tw-tab {\n border-radius: var(--rounded-btn, 0.5rem);\n}\n.tw-textarea-bordered {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-textarea:focus {\n box-shadow: none;\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n outline-style: solid;\n outline-width: 2px;\n outline-offset: 2px;\n outline-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-textarea-disabled,\n .tw-textarea:disabled,\n .tw-textarea[disabled] {\n cursor: not-allowed;\n --tw-border-opacity: 1;\n border-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-border-opacity)));\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n --tw-text-opacity: 0.2;\n}\n.tw-textarea-disabled::-moz-placeholder, .tw-textarea:disabled::-moz-placeholder, .tw-textarea[disabled]::-moz-placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n.tw-textarea-disabled::placeholder,\n .tw-textarea:disabled::placeholder,\n .tw-textarea[disabled]::placeholder {\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-placeholder-opacity)));\n --tw-placeholder-opacity: 0.2;\n}\n@keyframes toast-pop {\n\n 0% {\n transform: scale(0.9);\n opacity: 0;\n }\n\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n.tw-btn-xs {\n height: 1.5rem;\n min-height: 1.5rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n font-size: 0.75rem;\n}\n.tw-btn-sm {\n height: 2rem;\n min-height: 2rem;\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n font-size: 0.875rem;\n}\n.tw-btn-lg {\n height: 4rem;\n min-height: 4rem;\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n font-size: 1.125rem;\n}\n.tw-btn-block {\n width: 100%;\n}\n.tw-btn-square:where(.tw-btn-xs) {\n height: 1.5rem;\n width: 1.5rem;\n padding: 0px;\n}\n.tw-btn-square:where(.tw-btn-sm) {\n height: 2rem;\n width: 2rem;\n padding: 0px;\n}\n.tw-btn-square:where(.tw-btn-md) {\n height: 3rem;\n width: 3rem;\n padding: 0px;\n}\n.tw-btn-square:where(.tw-btn-lg) {\n height: 4rem;\n width: 4rem;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-xs) {\n height: 1.5rem;\n width: 1.5rem;\n border-radius: 9999px;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-sm) {\n height: 2rem;\n width: 2rem;\n border-radius: 9999px;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-md) {\n height: 3rem;\n width: 3rem;\n border-radius: 9999px;\n padding: 0px;\n}\n.tw-btn-circle:where(.tw-btn-lg) {\n height: 4rem;\n width: 4rem;\n border-radius: 9999px;\n padding: 0px;\n}\n[type=\"checkbox\"].tw-checkbox-xs {\n height: 1rem;\n width: 1rem;\n}\n.tw-tabs-md :where(.tw-tab) {\n height: 2rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n line-height: 2;\n --tab-padding: 1rem;\n}\n.tw-tabs-lg :where(.tw-tab) {\n height: 3rem;\n font-size: 1.125rem;\n line-height: 1.75rem;\n line-height: 2;\n --tab-padding: 1.25rem;\n}\n.tw-tabs-sm :where(.tw-tab) {\n height: 1.5rem;\n font-size: 0.875rem;\n line-height: .75rem;\n --tab-padding: 0.75rem;\n}\n.tw-tabs-xs :where(.tw-tab) {\n height: 1.25rem;\n font-size: 0.75rem;\n line-height: .75rem;\n --tab-padding: 0.5rem;\n}\n.tw-tooltip {\n position: relative;\n display: inline-block;\n --tooltip-offset: calc(100% + 1px + var(--tooltip-tail, 0px));\n}\n.tw-tooltip:before {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n content: var(--tw-content);\n --tw-content: attr(data-tip);\n}\n.tw-tooltip:before, .tw-tooltip-top:before {\n transform: translateX(-50%);\n top: auto;\n left: 50%;\n right: auto;\n bottom: var(--tooltip-offset);\n}\n.tw-tooltip-left:before {\n transform: translateY(-50%);\n top: 50%;\n left: auto;\n right: var(--tooltip-offset);\n bottom: auto;\n}\n.tw-tooltip-right:before {\n transform: translateY(-50%);\n top: 50%;\n left: var(--tooltip-offset);\n right: auto;\n bottom: auto;\n}\n.tw-avatar.tw-online:before {\n content: \"\";\n position: absolute;\n z-index: 10;\n display: block;\n border-radius: 9999px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-su,oklch(var(--su)/var(--tw-bg-opacity)));\n outline-style: solid;\n outline-width: 2px;\n outline-color: var(--fallback-b1,oklch(var(--b1)/1));\n width: 15%;\n height: 15%;\n top: 7%;\n right: 7%;\n}\n.tw-avatar.tw-offline:before {\n content: \"\";\n position: absolute;\n z-index: 10;\n display: block;\n border-radius: 9999px;\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b3,oklch(var(--b3)/var(--tw-bg-opacity)));\n outline-style: solid;\n outline-width: 2px;\n outline-color: var(--fallback-b1,oklch(var(--b1)/1));\n width: 15%;\n height: 15%;\n top: 7%;\n right: 7%;\n}\n.tw-card-compact .tw-card-body {\n padding: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-card-compact .tw-card-title {\n margin-bottom: 0.25rem;\n}\n.tw-card-normal .tw-card-body {\n padding: var(--padding-card, 2rem);\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.tw-card-normal .tw-card-title {\n margin-bottom: 0.75rem;\n}\n.tw-modal-top :where(.tw-modal-box) {\n width: 100%;\n max-width: none;\n --tw-translate-y: -2.5rem;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-bottom-right-radius: var(--rounded-box, 1rem);\n border-bottom-left-radius: var(--rounded-box, 1rem);\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n}\n.tw-modal-middle :where(.tw-modal-box) {\n width: 91.666667%;\n max-width: 32rem;\n --tw-translate-y: 0px;\n --tw-scale-x: .9;\n --tw-scale-y: .9;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-top-left-radius: var(--rounded-box, 1rem);\n border-top-right-radius: var(--rounded-box, 1rem);\n border-bottom-right-radius: var(--rounded-box, 1rem);\n border-bottom-left-radius: var(--rounded-box, 1rem);\n}\n.tw-modal-bottom :where(.tw-modal-box) {\n width: 100%;\n max-width: none;\n --tw-translate-y: 2.5rem;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n border-top-left-radius: var(--rounded-box, 1rem);\n border-top-right-radius: var(--rounded-box, 1rem);\n border-bottom-right-radius: 0px;\n border-bottom-left-radius: 0px;\n}\n.tw-tooltip {\n position: relative;\n display: inline-block;\n text-align: center;\n --tooltip-tail: 0.1875rem;\n --tooltip-color: var(--fallback-n,oklch(var(--n)/1));\n --tooltip-text-color: var(--fallback-nc,oklch(var(--nc)/1));\n --tooltip-tail-offset: calc(100% + 0.0625rem - var(--tooltip-tail));\n}\n.tw-tooltip:before,\n.tw-tooltip:after {\n opacity: 0;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-delay: 100ms;\n transition-duration: 200ms;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n}\n.tw-tooltip:after {\n position: absolute;\n content: \"\";\n border-style: solid;\n border-width: var(--tooltip-tail, 0);\n width: 0;\n height: 0;\n display: block;\n}\n.tw-tooltip:before {\n max-width: 20rem;\n border-radius: 0.25rem;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n background-color: var(--tooltip-color);\n color: var(--tooltip-text-color);\n width: -moz-max-content;\n width: max-content;\n}\n.tw-tooltip.tw-tooltip-open:before {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip.tw-tooltip-open:after {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:hover:before {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:hover:after {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:has(:focus-visible):after,\n.tw-tooltip:has(:focus-visible):before {\n opacity: 1;\n transition-delay: 75ms;\n}\n.tw-tooltip:not([data-tip]):hover:before,\n.tw-tooltip:not([data-tip]):hover:after {\n visibility: hidden;\n opacity: 0;\n}\n.tw-tooltip:after, .tw-tooltip-top:after {\n transform: translateX(-50%);\n border-color: var(--tooltip-color) transparent transparent transparent;\n top: auto;\n left: 50%;\n right: auto;\n bottom: var(--tooltip-tail-offset);\n}\n.tw-tooltip-left:after {\n transform: translateY(-50%);\n border-color: transparent transparent transparent var(--tooltip-color);\n top: 50%;\n left: auto;\n right: calc(var(--tooltip-tail-offset) + 0.0625rem);\n bottom: auto;\n}\n.tw-tooltip-right:after {\n transform: translateY(-50%);\n border-color: transparent var(--tooltip-color) transparent transparent;\n top: 50%;\n left: calc(var(--tooltip-tail-offset) + 0.0625rem);\n right: auto;\n bottom: auto;\n}\n.tw-fixed {\n position: fixed;\n}\n.tw-absolute {\n position: absolute;\n}\n.tw-relative {\n position: relative;\n}\n.tw-inset-y-0 {\n top: 0px;\n bottom: 0px;\n}\n.\\!tw-left-auto {\n left: auto !important;\n}\n.-tw-left-6 {\n left: -1.5rem;\n}\n.tw--right-2 {\n right: -0.5rem;\n}\n.tw--top-2 {\n top: -0.5rem;\n}\n.tw-bottom-0 {\n bottom: 0px;\n}\n.tw-bottom-4 {\n bottom: 1rem;\n}\n.tw-left-0 {\n left: 0px;\n}\n.tw-left-4 {\n left: 1rem;\n}\n.tw-right-0 {\n right: 0px;\n}\n.tw-right-1 {\n right: 0.25rem;\n}\n.tw-right-16 {\n right: 4rem;\n}\n.tw-right-2 {\n right: 0.5rem;\n}\n.tw-right-4 {\n right: 1rem;\n}\n.tw-right-5 {\n right: 1.25rem;\n}\n.tw-top-0 {\n top: 0px;\n}\n.tw-top-1 {\n top: 0.25rem;\n}\n.tw-top-14 {\n top: 3.5rem;\n}\n.tw-top-2 {\n top: 0.5rem;\n}\n.tw-top-4 {\n top: 1rem;\n}\n.\\!tw-z-\\[10000\\] {\n z-index: 10000 !important;\n}\n.tw-z-1000 {\n z-index: 1000;\n}\n.tw-z-3000 {\n z-index: 3000;\n}\n.tw-z-500 {\n z-index: 500;\n}\n.tw-z-\\[10000\\] {\n z-index: 10000;\n}\n.tw-z-\\[10035\\] {\n z-index: 10035;\n}\n.tw-z-\\[2000\\] {\n z-index: 2000;\n}\n.tw-z-\\[4000\\] {\n z-index: 4000;\n}\n.tw-z-\\[999\\] {\n z-index: 999;\n}\n.tw-col-span-1 {\n grid-column: span 1 / span 1;\n}\n.tw-col-span-5 {\n grid-column: span 5 / span 5;\n}\n.tw-float-right {\n float: right;\n}\n.tw-m-1 {\n margin: 0.25rem;\n}\n.tw-m-auto {\n margin: auto;\n}\n.\\!tw-my-0 {\n margin-top: 0px !important;\n margin-bottom: 0px !important;\n}\n.\\!tw-my-2 {\n margin-top: 0.5rem !important;\n margin-bottom: 0.5rem !important;\n}\n.tw-mx-2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n.tw-mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.tw-mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n.tw-my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.tw-my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n.-tw-mb-1 {\n margin-bottom: -0.25rem;\n}\n.-tw-mb-2 {\n margin-bottom: -0.5rem;\n}\n.-tw-mr-6 {\n margin-right: -1.5rem;\n}\n.tw-mb-0 {\n margin-bottom: 0px;\n}\n.tw-mb-1 {\n margin-bottom: 0.25rem;\n}\n.tw-mb-12 {\n margin-bottom: 3rem;\n}\n.tw-mb-2 {\n margin-bottom: 0.5rem;\n}\n.tw-mb-3 {\n margin-bottom: 0.75rem;\n}\n.tw-mb-4 {\n margin-bottom: 1rem;\n}\n.tw-mb-5 {\n margin-bottom: 1.25rem;\n}\n.tw-mb-6 {\n margin-bottom: 1.5rem;\n}\n.tw-ml-2 {\n margin-left: 0.5rem;\n}\n.tw-ml-6 {\n margin-left: 1.5rem;\n}\n.tw-mr-2 {\n margin-right: 0.5rem;\n}\n.tw-mr-4 {\n margin-right: 1rem;\n}\n.tw-mt-0 {\n margin-top: 0px;\n}\n.tw-mt-1 {\n margin-top: 0.25rem;\n}\n.tw-mt-16 {\n margin-top: 4rem;\n}\n.tw-mt-2 {\n margin-top: 0.5rem;\n}\n.tw-mt-3 {\n margin-top: 0.75rem;\n}\n.tw-mt-4 {\n margin-top: 1rem;\n}\n.tw-mt-5 {\n margin-top: 1.25rem;\n}\n.tw-mt-6 {\n margin-top: 1.5rem;\n}\n.tw-mt-8 {\n margin-top: 2rem;\n}\n.tw-inline-block {\n display: inline-block;\n}\n.tw-flex {\n display: flex;\n}\n.tw-grid {\n display: grid;\n}\n.tw-hidden {\n display: none;\n}\n.\\!tw-h-\\[calc\\(100dvh-96px\\)\\] {\n height: calc(100dvh - 96px) !important;\n}\n.tw-h-10 {\n height: 2.5rem;\n}\n.tw-h-20 {\n height: 5rem;\n}\n.tw-h-3 {\n height: 0.75rem;\n}\n.tw-h-4 {\n height: 1rem;\n}\n.tw-h-40 {\n height: 10rem;\n}\n.tw-h-5 {\n height: 1.25rem;\n}\n.tw-h-6 {\n height: 1.5rem;\n}\n.tw-h-64 {\n height: 16rem;\n}\n.tw-h-96 {\n height: 24rem;\n}\n.tw-h-\\[2\\.75em\\] {\n height: 2.75em;\n}\n.tw-h-\\[calc\\(100\\%-1rem\\)\\] {\n height: calc(100% - 1rem);\n}\n.tw-h-\\[calc\\(100dvh-268px\\)\\] {\n height: calc(100dvh - 268px);\n}\n.tw-h-\\[calc\\(100dvh-332px\\)\\] {\n height: calc(100dvh - 332px);\n}\n.tw-h-\\[calc\\(100dvh-64px\\)\\] {\n height: calc(100dvh - 64px);\n}\n.tw-h-\\[calc\\(100dvh-96px\\)\\] {\n height: calc(100dvh - 96px);\n}\n.tw-h-\\[calc\\(50\\%-0\\.75em\\)\\] {\n height: calc(50% - 0.75em);\n}\n.tw-h-fit {\n height: -moz-fit-content;\n height: fit-content;\n}\n.tw-h-full {\n height: 100%;\n}\n.tw-max-h-16 {\n max-height: 4rem;\n}\n.tw-max-h-64 {\n max-height: 16rem;\n}\n.tw-max-h-\\[calc\\(100dvh-152px\\)\\] {\n max-height: calc(100dvh - 152px);\n}\n.tw-max-h-\\[calc\\(100dvh-96px\\)\\] {\n max-height: calc(100dvh - 96px);\n}\n.tw-min-h-0 {\n min-height: 0px;\n}\n.tw-min-h-56 {\n min-height: 224px;\n}\n.tw-min-h-\\[21px\\] {\n min-height: 21px;\n}\n.tw-min-h-\\[32px\\] {\n min-height: 32px;\n}\n.tw-min-h-\\[5em\\] {\n min-height: 5em;\n}\n.tw-w-1 {\n width: 0.25rem;\n}\n.tw-w-10 {\n width: 2.5rem;\n}\n.tw-w-14 {\n width: 3.5rem;\n}\n.tw-w-20 {\n width: 5rem;\n}\n.tw-w-32 {\n width: 8rem;\n}\n.tw-w-4 {\n width: 1rem;\n}\n.tw-w-48 {\n width: 12rem;\n}\n.tw-w-5 {\n width: 1.25rem;\n}\n.tw-w-52 {\n width: 13rem;\n}\n.tw-w-6 {\n width: 1.5rem;\n}\n.tw-w-80 {\n width: 20rem;\n}\n.tw-w-\\[56px\\] {\n width: 56px;\n}\n.tw-w-\\[calc\\(100\\%-32px\\)\\] {\n width: calc(100% - 32px);\n}\n.tw-w-\\[calc\\(100vw-2rem\\)\\] {\n width: calc(100vw - 2rem);\n}\n.tw-w-fit {\n width: -moz-fit-content;\n width: fit-content;\n}\n.tw-w-full {\n width: 100%;\n}\n.tw-min-w-80 {\n min-width: 320px;\n}\n.tw-min-w-\\[10em\\] {\n min-width: 10em;\n}\n.tw-max-w-3xl {\n max-width: 48rem;\n}\n.tw-max-w-\\[17rem\\] {\n max-width: 17rem;\n}\n.tw-max-w-\\[22rem\\] {\n max-width: 22rem;\n}\n.tw-max-w-xl {\n max-width: 36rem;\n}\n.tw-max-w-xs {\n max-width: 20rem;\n}\n.tw-flex-1 {\n flex: 1 1 0%;\n}\n.tw-flex-none {\n flex: none;\n}\n.tw-grow {\n flex-grow: 1;\n}\n.tw-basis-1\\/5 {\n flex-basis: 20%;\n}\n.tw-basis-2\\/5 {\n flex-basis: 40%;\n}\n.tw--translate-x-full {\n --tw-translate-x: -100%;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-translate-x-0 {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-rotate-180 {\n --tw-rotate: 180deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.tw-animate-none {\n animation: none;\n}\n.tw-cursor-pointer {\n cursor: pointer;\n}\n.tw-cursor-text {\n cursor: text;\n}\n.tw-list-inside {\n list-style-position: inside;\n}\n.tw-list-decimal {\n list-style-type: decimal;\n}\n.tw-list-disc {\n list-style-type: disc;\n}\n.tw-list-none {\n list-style-type: none;\n}\n.tw-grid-flow-col {\n grid-auto-flow: column;\n}\n.tw-grid-cols-1 {\n grid-template-columns: repeat(1, minmax(0, 1fr));\n}\n.tw-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.tw-grid-cols-6 {\n grid-template-columns: repeat(6, minmax(0, 1fr));\n}\n.tw-flex-row {\n flex-direction: row;\n}\n.tw-flex-col {\n flex-direction: column;\n}\n.tw-flex-wrap {\n flex-wrap: wrap;\n}\n.tw-place-content-center {\n place-content: center;\n}\n.tw-place-items-end {\n place-items: end;\n}\n.tw-place-items-center {\n place-items: center;\n}\n.tw-items-center {\n align-items: center;\n}\n.tw-justify-normal {\n justify-content: normal;\n}\n.tw-justify-end {\n justify-content: flex-end;\n}\n.tw-justify-center {\n justify-content: center;\n}\n.tw-justify-between {\n justify-content: space-between;\n}\n.tw-gap-2 {\n gap: 0.5rem;\n}\n.tw-gap-6 {\n gap: 1.5rem;\n}\n.tw-place-self-end {\n place-self: end;\n}\n.tw-place-self-center {\n place-self: center;\n}\n.tw-self-center {\n align-self: center;\n}\n.tw-overflow-auto {\n overflow: auto;\n}\n.tw-overflow-hidden {\n overflow: hidden;\n}\n.tw-overflow-y-auto {\n overflow-y: auto;\n}\n.tw-overflow-x-hidden {\n overflow-x: hidden;\n}\n.tw-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.tw-text-ellipsis {\n text-overflow: ellipsis;\n}\n.tw-whitespace-nowrap {\n white-space: nowrap;\n}\n.\\!tw-rounded-none {\n border-radius: 0px !important;\n}\n.tw-rounded-2xl {\n border-radius: 1rem;\n}\n.tw-rounded-box {\n border-radius: var(--rounded-box, 1rem);\n}\n.tw-rounded-full {\n border-radius: 9999px;\n}\n.tw-rounded-lg {\n border-radius: 0.5rem;\n}\n.tw-rounded-xl {\n border-radius: 0.75rem;\n}\n.tw-rounded-br-md {\n border-bottom-right-radius: 0.375rem;\n}\n.tw-rounded-tl-none {\n border-top-left-radius: 0px;\n}\n.tw-rounded-tr-md {\n border-top-right-radius: 0.375rem;\n}\n.tw-border-0 {\n border-width: 0px;\n}\n.tw-border-t-0 {\n border-top-width: 0px;\n}\n.tw-border-none {\n border-style: none;\n}\n.tw-border-\\[var\\(--fallback-bc\\,oklch\\(var\\(--bc\\)\\/0\\.2\\)\\)\\] {\n border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n.tw-border-current {\n border-color: currentColor;\n}\n.tw-border-primary {\n --tw-border-opacity: 1;\n border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));\n}\n.tw-bg-base-100 {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));\n}\n.tw-bg-base-200 {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));\n}\n.tw-bg-primary {\n --tw-bg-opacity: 1;\n background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));\n}\n.tw-bg-transparent {\n background-color: transparent;\n}\n.tw-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity));\n}\n.tw-stroke-current {\n stroke: currentColor;\n}\n.tw-p-0 {\n padding: 0px;\n}\n.tw-p-1 {\n padding: 0.25rem;\n}\n.tw-p-2 {\n padding: 0.5rem;\n}\n.tw-p-4 {\n padding: 1rem;\n}\n.tw-p-6 {\n padding: 1.5rem;\n}\n.tw-p-\\[1px\\] {\n padding: 1px;\n}\n.tw-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.tw-px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.tw-px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.tw-pb-0 {\n padding-bottom: 0px;\n}\n.tw-pb-1 {\n padding-bottom: 0.25rem;\n}\n.tw-pb-2 {\n padding-bottom: 0.5rem;\n}\n.tw-pb-6 {\n padding-bottom: 1.5rem;\n}\n.tw-pl-2 {\n padding-left: 0.5rem;\n}\n.tw-pr-1 {\n padding-right: 0.25rem;\n}\n.tw-pt-0 {\n padding-top: 0px;\n}\n.tw-pt-1 {\n padding-top: 0.25rem;\n}\n.tw-pt-2 {\n padding-top: 0.5rem;\n}\n.tw-pt-4 {\n padding-top: 1rem;\n}\n.tw-pt-6 {\n padding-top: 1.5rem;\n}\n.tw-pt-8 {\n padding-top: 2rem;\n}\n.tw-text-center {\n text-align: center;\n}\n.tw-text-right {\n text-align: right;\n}\n.tw-align-middle {\n vertical-align: middle;\n}\n.tw-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.tw-text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.tw-text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.tw-text-map {\n font-size: 13px;\n}\n.tw-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.tw-text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.tw-text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.tw-font-bold {\n font-weight: 700;\n}\n.tw-font-normal {\n font-weight: 400;\n}\n.tw-font-semibold {\n font-weight: 600;\n}\n.tw-normal-case {\n text-transform: none;\n}\n.tw-italic {\n font-style: italic;\n}\n.tw-leading-3 {\n line-height: .75rem;\n}\n.tw-leading-5 {\n line-height: 1.25rem;\n}\n.tw-leading-map {\n line-height: 1.4em;\n}\n.\\!tw-text-base-content {\n --tw-text-opacity: 1 !important;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity))) !important;\n}\n.\\!tw-text-error {\n --tw-text-opacity: 1 !important;\n color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity))) !important;\n}\n.tw-text-base-content {\n --tw-text-opacity: 1;\n color: var(--fallback-bc,oklch(var(--bc)/var(--tw-text-opacity)));\n}\n.tw-text-current {\n color: currentColor;\n}\n.tw-text-error {\n --tw-text-opacity: 1;\n color: var(--fallback-er,oklch(var(--er)/var(--tw-text-opacity)));\n}\n.tw-text-gray-500 {\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity));\n}\n.tw-text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity));\n}\n.tw-text-primary {\n --tw-text-opacity: 1;\n color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));\n}\n.tw-text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.tw-opacity-50 {\n opacity: 0.5;\n}\n.tw-shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-md {\n --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-te-primary {\n --tw-shadow: 0 0 0 1px rgb(59, 113, 202);\n --tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.tw-drop-shadow-md {\n --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.tw-backdrop-brightness-75 {\n --tw-backdrop-brightness: brightness(.75);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.tw-backdrop-contrast-50 {\n --tw-backdrop-contrast: contrast(.5);\n -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);\n}\n.tw-transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tw-transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tw-transition-none {\n transition-property: none;\n}\n.tw-transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.tw-duration-200 {\n transition-duration: 200ms;\n}\n.tw-duration-300 {\n transition-duration: 300ms;\n}\n.tw-duration-500 {\n transition-duration: 500ms;\n}\n.tw-ease-in {\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n}\n.\\[--tab-border-color\\:var\\(--fallback-bc\\2c oklch\\(var\\(--bc\\)\\/0\\.2\\)\\)\\] {\n --tab-border-color: var(--fallback-bc,oklch(var(--bc)/0.2));\n}\n\n.fade {\n -webkit-mask-image: linear-gradient(180deg, transparent, #000 3%, #000 97%, transparent);\n mask-image: linear-gradient(180deg, transparent, #000 3%, #000 97%, transparent);\n}\n\n.tw-modal {\n z-index: 1200 !important;\n}\n\n.tw-menu li a {\n border-radius: 10px;\n}\n\n.tw-modal {\n z-index: 1200 !important;\n max-height: 100dvh;\n}\n\n.tw-modal-box {\n max-height: calc(100dvh - 2em);\n}\n\n.Toastify__toast {\n border-radius: 1rem;\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n margin-left: 1rem;\n margin-right: 1rem;\n margin-bottom: 1rem;\n background-color: var(--fallback-b1,oklch(var(--b1)/1));\n color: var(--fallback-bc,oklch(var(--bc)/1));\n}\n\n.Toastify__toast-container {\n z-index: 1999 !important;\n}\n\n.Toastify__toast-container--top-right {\n top: 4.75em !important;\n}\n\n:root {\n\n --toastify-color-info: var(--fallback-in,oklch(var(--in)/1));\n --toastify-color-success: var(--fallback-su,oklch(var(--su)/1));\n --toastify-color-warning: var(--fallback-wa,oklch(var(--wa)/1));\n --toastify-color-error: var(--fallback-er,oklch(var(--er)/1));\n\n}\n\n.custom-file-upload {\n cursor: pointer;\n}\n\ninput[type=\"file\"] {\n display: none;\n}\n\n.custom-file-upload:hover .button {\n opacity: 0.8;\n}\n\n.custom-file-upload .button {\n transition: .5s ease;\n opacity: 0;\n position: absolute;\n transform: translate(8px, 8px);\n\n}\n\n.tw-tab-content .container {\n height: 100%;\n}\n\n.hover\\:tw-cursor-pointer:hover {\n cursor: pointer;\n}\n\n.hover\\:tw-bg-slate-300:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(203 213 225 / var(--tw-bg-opacity));\n}\n\n.hover\\:tw-bg-transparent:hover {\n background-color: transparent;\n}\n\n.hover\\:tw-font-bold:hover {\n font-weight: 700;\n}\n\n.hover\\:tw-text-primary:hover {\n --tw-text-opacity: 1;\n color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));\n}\n\n.hover\\:tw-underline:hover {\n text-decoration-line: underline;\n}\n\n.focus\\:tw-outline-none:focus {\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n\n.data-\\[te-sidenav-slim\\=\\'true\\'\\]\\:tw-hidden[data-te-sidenav-slim='true'] {\n display: none;\n}\n\n.data-\\[te-sidenav-slim-collapsed\\=\\'true\\'\\]\\:tw-w-\\[56px\\][data-te-sidenav-slim-collapsed='true'] {\n width: 56px;\n}\n\n.data-\\[te-sidenav-slim\\=\\'true\\'\\]\\:tw-w-\\[56px\\][data-te-sidenav-slim='true'] {\n width: 56px;\n}\n\n.data-\\[te-sidenav-hidden\\=\\'false\\'\\]\\:tw-translate-x-0[data-te-sidenav-hidden='false'] {\n --tw-translate-x: 0px;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n\n.tw-group[data-te-sidenav-slim-collapsed='true'] .group-\\[\\&\\[data-te-sidenav-slim-collapsed\\=\\'true\\'\\]\\]\\:data-\\[te-sidenav-slim\\=\\'false\\'\\]\\:tw-hidden[data-te-sidenav-slim='false'] {\n display: none;\n}\n\n@media (prefers-color-scheme: dark) {\n\n .dark\\:tw-bg-zinc-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(39 39 42 / var(--tw-bg-opacity));\n }\n}\n\n@media (min-width: 768px) {\n\n .md\\:tw-flex {\n display: flex;\n }\n\n .md\\:tw-hidden {\n display: none;\n }\n\n .md\\:tw-w-\\[calc\\(50\\%-32px\\)\\] {\n width: calc(50% - 32px);\n }\n\n .md\\:tw-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n}\n\n@media (min-width: 1280px) {\n\n .xl\\:tw-max-w-6xl {\n max-width: 72rem;\n }\n}\n\n.\\[\\&\\[data-te-sidenav-slim-collapsed\\=\\'true\\'\\]\\[data-te-sidenav-slim\\=\\'false\\'\\]\\]\\:tw-hidden[data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='false'] {\n display: none;\n}\n\n.\\[\\&\\[data-te-sidenav-slim-collapsed\\=\\'true\\'\\]\\[data-te-sidenav-slim\\=\\'true\\'\\]\\]\\:\\[display\\:unset\\][data-te-sidenav-slim-collapsed='true'][data-te-sidenav-slim='true'] {\n display: unset;\n}";
|