@addsign/moje-agenda-shared-lib 0.0.37 → 0.0.39
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/assets/tailwind.css +66 -46
- package/dist/components/Button.js +8 -8
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Calendar.js +32 -28
- package/dist/components/Calendar.js.map +1 -1
- package/dist/components/ConfirmationModalDialog.js +1 -3
- package/dist/components/ConfirmationModalDialog.js.map +1 -1
- package/dist/index-DPrqKh-7.js +16 -0
- package/dist/index-DPrqKh-7.js.map +1 -0
- package/package.json +16 -2
package/dist/assets/tailwind.css
CHANGED
|
@@ -638,10 +638,6 @@ video {
|
|
|
638
638
|
.m-4 {
|
|
639
639
|
margin: 1rem;
|
|
640
640
|
}
|
|
641
|
-
.mx-1 {
|
|
642
|
-
margin-left: 0.25rem;
|
|
643
|
-
margin-right: 0.25rem;
|
|
644
|
-
}
|
|
645
641
|
.mx-auto {
|
|
646
642
|
margin-left: auto;
|
|
647
643
|
margin-right: auto;
|
|
@@ -669,9 +665,6 @@ video {
|
|
|
669
665
|
.ml-1\.5 {
|
|
670
666
|
margin-left: 0.375rem;
|
|
671
667
|
}
|
|
672
|
-
.ml-4 {
|
|
673
|
-
margin-left: 1rem;
|
|
674
|
-
}
|
|
675
668
|
.ml-5 {
|
|
676
669
|
margin-left: 1.25rem;
|
|
677
670
|
}
|
|
@@ -914,16 +907,6 @@ video {
|
|
|
914
907
|
margin-right: calc(1.25rem * var(--tw-space-x-reverse));
|
|
915
908
|
margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse)));
|
|
916
909
|
}
|
|
917
|
-
.divide-x > :not([hidden]) ~ :not([hidden]) {
|
|
918
|
-
--tw-divide-x-reverse: 0;
|
|
919
|
-
border-right-width: calc(1px * var(--tw-divide-x-reverse));
|
|
920
|
-
border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
|
|
921
|
-
}
|
|
922
|
-
.divide-y > :not([hidden]) ~ :not([hidden]) {
|
|
923
|
-
--tw-divide-y-reverse: 0;
|
|
924
|
-
border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
|
|
925
|
-
border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
|
|
926
|
-
}
|
|
927
910
|
.self-stretch {
|
|
928
911
|
align-self: stretch;
|
|
929
912
|
}
|
|
@@ -942,6 +925,9 @@ video {
|
|
|
942
925
|
.whitespace-nowrap {
|
|
943
926
|
white-space: nowrap;
|
|
944
927
|
}
|
|
928
|
+
.\!rounded-full {
|
|
929
|
+
border-radius: 9999px !important;
|
|
930
|
+
}
|
|
945
931
|
.rounded-full {
|
|
946
932
|
border-radius: 9999px;
|
|
947
933
|
}
|
|
@@ -1014,26 +1000,27 @@ video {
|
|
|
1014
1000
|
--tw-border-opacity: 1;
|
|
1015
1001
|
border-color: rgb(220 38 38 / var(--tw-border-opacity));
|
|
1016
1002
|
}
|
|
1003
|
+
.border-secondary-border {
|
|
1004
|
+
border-color: var(--color-secondary-border);
|
|
1005
|
+
}
|
|
1017
1006
|
.border-transparent {
|
|
1018
1007
|
border-color: transparent;
|
|
1019
1008
|
}
|
|
1020
1009
|
.\!bg-danger {
|
|
1021
1010
|
background-color: var(--color-danger) !important;
|
|
1022
1011
|
}
|
|
1023
|
-
.\!bg-gray-500 {
|
|
1024
|
-
--tw-bg-opacity: 1 !important;
|
|
1025
|
-
background-color: rgb(107 114 128 / var(--tw-bg-opacity)) !important;
|
|
1026
|
-
}
|
|
1027
1012
|
.\!bg-primary {
|
|
1028
1013
|
background-color: var(--color-primary) !important;
|
|
1029
1014
|
}
|
|
1015
|
+
.\!bg-secondary {
|
|
1016
|
+
background-color: var(--color-secondary) !important;
|
|
1017
|
+
}
|
|
1018
|
+
.\!bg-success {
|
|
1019
|
+
background-color: var(--color-success) !important;
|
|
1020
|
+
}
|
|
1030
1021
|
.\!bg-transparent {
|
|
1031
1022
|
background-color: transparent !important;
|
|
1032
1023
|
}
|
|
1033
|
-
.\!bg-white {
|
|
1034
|
-
--tw-bg-opacity: 1 !important;
|
|
1035
|
-
background-color: rgb(255 255 255 / var(--tw-bg-opacity)) !important;
|
|
1036
|
-
}
|
|
1037
1024
|
.bg-black {
|
|
1038
1025
|
--tw-bg-opacity: 1;
|
|
1039
1026
|
background-color: rgb(0 0 0 / var(--tw-bg-opacity));
|
|
@@ -1046,10 +1033,6 @@ video {
|
|
|
1046
1033
|
--tw-bg-opacity: 1;
|
|
1047
1034
|
background-color: rgb(229 231 235 / var(--tw-bg-opacity));
|
|
1048
1035
|
}
|
|
1049
|
-
.bg-gray-400 {
|
|
1050
|
-
--tw-bg-opacity: 1;
|
|
1051
|
-
background-color: rgb(156 163 175 / var(--tw-bg-opacity));
|
|
1052
|
-
}
|
|
1053
1036
|
.bg-gray-50 {
|
|
1054
1037
|
--tw-bg-opacity: 1;
|
|
1055
1038
|
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
|
@@ -1129,6 +1112,10 @@ video {
|
|
|
1129
1112
|
padding-left: 1.5rem;
|
|
1130
1113
|
padding-right: 1.5rem;
|
|
1131
1114
|
}
|
|
1115
|
+
.px-8 {
|
|
1116
|
+
padding-left: 2rem;
|
|
1117
|
+
padding-right: 2rem;
|
|
1118
|
+
}
|
|
1132
1119
|
.py-1 {
|
|
1133
1120
|
padding-top: 0.25rem;
|
|
1134
1121
|
padding-bottom: 0.25rem;
|
|
@@ -1149,10 +1136,17 @@ video {
|
|
|
1149
1136
|
padding-top: 0.75rem;
|
|
1150
1137
|
padding-bottom: 0.75rem;
|
|
1151
1138
|
}
|
|
1139
|
+
.py-4 {
|
|
1140
|
+
padding-top: 1rem;
|
|
1141
|
+
padding-bottom: 1rem;
|
|
1142
|
+
}
|
|
1152
1143
|
.py-px {
|
|
1153
1144
|
padding-top: 1px;
|
|
1154
1145
|
padding-bottom: 1px;
|
|
1155
1146
|
}
|
|
1147
|
+
.pb-4 {
|
|
1148
|
+
padding-bottom: 1rem;
|
|
1149
|
+
}
|
|
1156
1150
|
.pb-5 {
|
|
1157
1151
|
padding-bottom: 1.25rem;
|
|
1158
1152
|
}
|
|
@@ -1211,6 +1205,10 @@ video {
|
|
|
1211
1205
|
font-size: 1.5rem;
|
|
1212
1206
|
line-height: 2rem;
|
|
1213
1207
|
}
|
|
1208
|
+
.text-3xl {
|
|
1209
|
+
font-size: 1.875rem;
|
|
1210
|
+
line-height: 2.25rem;
|
|
1211
|
+
}
|
|
1214
1212
|
.text-base {
|
|
1215
1213
|
font-size: 1rem;
|
|
1216
1214
|
line-height: 1.5rem;
|
|
@@ -1231,9 +1229,6 @@ video {
|
|
|
1231
1229
|
font-size: 0.75rem;
|
|
1232
1230
|
line-height: 1rem;
|
|
1233
1231
|
}
|
|
1234
|
-
.font-bold {
|
|
1235
|
-
font-weight: 700;
|
|
1236
|
-
}
|
|
1237
1232
|
.font-medium {
|
|
1238
1233
|
font-weight: 500;
|
|
1239
1234
|
}
|
|
@@ -1278,9 +1273,8 @@ video {
|
|
|
1278
1273
|
--tw-text-opacity: 1;
|
|
1279
1274
|
color: rgb(59 130 246 / var(--tw-text-opacity));
|
|
1280
1275
|
}
|
|
1281
|
-
.text-
|
|
1282
|
-
--
|
|
1283
|
-
color: rgb(243 244 246 / var(--tw-text-opacity));
|
|
1276
|
+
.text-danger-text {
|
|
1277
|
+
color: var(--color-danger-text);
|
|
1284
1278
|
}
|
|
1285
1279
|
.text-gray-200 {
|
|
1286
1280
|
--tw-text-opacity: 1;
|
|
@@ -1321,10 +1315,16 @@ video {
|
|
|
1321
1315
|
.text-primary {
|
|
1322
1316
|
color: var(--color-primary);
|
|
1323
1317
|
}
|
|
1318
|
+
.text-primary-text {
|
|
1319
|
+
color: var(--color-primary-text);
|
|
1320
|
+
}
|
|
1324
1321
|
.text-red-600 {
|
|
1325
1322
|
--tw-text-opacity: 1;
|
|
1326
1323
|
color: rgb(220 38 38 / var(--tw-text-opacity));
|
|
1327
1324
|
}
|
|
1325
|
+
.text-secondary-text {
|
|
1326
|
+
color: var(--color-secondary-text);
|
|
1327
|
+
}
|
|
1328
1328
|
.text-slate-600 {
|
|
1329
1329
|
--tw-text-opacity: 1;
|
|
1330
1330
|
color: rgb(71 85 105 / var(--tw-text-opacity));
|
|
@@ -1333,6 +1333,9 @@ video {
|
|
|
1333
1333
|
--tw-text-opacity: 1;
|
|
1334
1334
|
color: rgb(51 65 85 / var(--tw-text-opacity));
|
|
1335
1335
|
}
|
|
1336
|
+
.text-success-text {
|
|
1337
|
+
color: var(--color-success-text);
|
|
1338
|
+
}
|
|
1336
1339
|
.text-transparent {
|
|
1337
1340
|
color: transparent;
|
|
1338
1341
|
}
|
|
@@ -1404,37 +1407,54 @@ video {
|
|
|
1404
1407
|
|
|
1405
1408
|
|
|
1406
1409
|
|
|
1407
|
-
.hover
|
|
1408
|
-
--
|
|
1409
|
-
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
|
1410
|
+
.hover\:\!bg-danger-hover:hover {
|
|
1411
|
+
background-color: var(--color-danger-hover) !important;
|
|
1410
1412
|
}
|
|
1411
1413
|
|
|
1412
1414
|
|
|
1413
1415
|
|
|
1414
|
-
.hover
|
|
1416
|
+
.hover\:\!bg-primary-hover:hover {
|
|
1417
|
+
background-color: var(--color-primary-hover) !important;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
|
|
1421
|
+
|
|
1422
|
+
.hover\:\!bg-secondary-hover:hover {
|
|
1423
|
+
background-color: var(--color-secondary-hover) !important;
|
|
1424
|
+
}
|
|
1425
|
+
|
|
1426
|
+
|
|
1427
|
+
|
|
1428
|
+
.hover\:\!bg-success-hover:hover {
|
|
1429
|
+
background-color: var(--color-success-hover) !important;
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
|
|
1433
|
+
|
|
1434
|
+
.hover\:bg-gray-100:hover {
|
|
1415
1435
|
--tw-bg-opacity: 1;
|
|
1416
|
-
background-color: rgb(
|
|
1436
|
+
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
|
1417
1437
|
}
|
|
1418
1438
|
|
|
1419
1439
|
|
|
1420
1440
|
|
|
1421
|
-
.hover\:bg-gray-
|
|
1441
|
+
.hover\:bg-gray-150:hover {
|
|
1422
1442
|
--tw-bg-opacity: 1;
|
|
1423
|
-
background-color: rgb(
|
|
1443
|
+
background-color: rgb(238 240 243 / var(--tw-bg-opacity));
|
|
1424
1444
|
}
|
|
1425
1445
|
|
|
1426
1446
|
|
|
1427
1447
|
|
|
1428
|
-
.hover\:bg-gray-
|
|
1448
|
+
.hover\:bg-gray-200:hover {
|
|
1429
1449
|
--tw-bg-opacity: 1;
|
|
1430
|
-
background-color: rgb(
|
|
1450
|
+
background-color: rgb(229 231 235 / var(--tw-bg-opacity));
|
|
1431
1451
|
}
|
|
1432
1452
|
|
|
1433
1453
|
|
|
1434
1454
|
|
|
1435
|
-
.hover\:bg-gray-
|
|
1455
|
+
.hover\:bg-gray-50:hover {
|
|
1436
1456
|
--tw-bg-opacity: 1;
|
|
1437
|
-
background-color: rgb(
|
|
1457
|
+
background-color: rgb(249 250 251 / var(--tw-bg-opacity));
|
|
1438
1458
|
}
|
|
1439
1459
|
|
|
1440
1460
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import '../assets/tailwind.css';/* empty css */
|
|
3
|
-
const commonStyles = " py-2 px-4 leading-[25px] ";
|
|
3
|
+
const commonStyles = " py-2 px-4 leading-[25px] w-fit rounded-lg whitespace-nowrap font-medium disabled:opacity-50 ";
|
|
4
4
|
const buttonStyles = {
|
|
5
|
-
primary: "!bg-primary
|
|
6
|
-
secondary: "!bg-
|
|
7
|
-
transparent: "!bg-transparent border border-transparent hover:bg-gray-100 hover:border-gray-200
|
|
8
|
-
success: "!bg-
|
|
9
|
-
danger: "!bg-danger text-
|
|
10
|
-
icon: "
|
|
5
|
+
primary: "!bg-primary hover:!bg-primary-hover text-primary-text ",
|
|
6
|
+
secondary: "!bg-secondary hover:!bg-secondary-hover text-secondary-text border border-secondary-border ",
|
|
7
|
+
transparent: "!bg-transparent border border-transparent hover:bg-gray-100 hover:border-gray-200 ",
|
|
8
|
+
success: "!bg-success hover:!bg-success-hover text-success-text ",
|
|
9
|
+
danger: "!bg-danger hover:!bg-danger-hover text-danger-text ",
|
|
10
|
+
icon: " !rounded-full text-center inline-flex items-center "
|
|
11
11
|
};
|
|
12
12
|
const Button = ({
|
|
13
13
|
variant = "primary",
|
|
@@ -20,7 +20,7 @@ const Button = ({
|
|
|
20
20
|
return /* @__PURE__ */ jsx(
|
|
21
21
|
"button",
|
|
22
22
|
{
|
|
23
|
-
className: classNames + " " + (className || " sharedLibraryource "),
|
|
23
|
+
className: classNames + " " + (className || " sharedLibraryource text-3xl"),
|
|
24
24
|
onClick,
|
|
25
25
|
...props,
|
|
26
26
|
children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../lib/components/Button.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport \"../css/tailwind.css\";\r\n\r\ntype ButtonVariant =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"transparent\"\r\n | \"success\"\r\n | \"danger\"\r\n | \"icon\";\r\n\r\ninterface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: ButtonVariant;\r\n}\r\nconst commonStyles
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../lib/components/Button.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport \"../css/tailwind.css\";\r\n\r\ntype ButtonVariant =\r\n | \"primary\"\r\n | \"secondary\"\r\n | \"transparent\"\r\n | \"success\"\r\n | \"danger\"\r\n | \"icon\";\r\n\r\ninterface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\r\n variant?: ButtonVariant;\r\n}\r\nconst commonStyles =\r\n \" py-2 px-4 leading-[25px] w-fit rounded-lg whitespace-nowrap font-medium disabled:opacity-50 \";\r\nconst buttonStyles: { [key in ButtonVariant]: string } = {\r\n primary: \"!bg-primary hover:!bg-primary-hover text-primary-text \",\r\n secondary:\r\n \"!bg-secondary hover:!bg-secondary-hover text-secondary-text border border-secondary-border \",\r\n transparent:\r\n \"!bg-transparent border border-transparent hover:bg-gray-100 hover:border-gray-200 \",\r\n success: \"!bg-success hover:!bg-success-hover text-success-text \",\r\n danger: \"!bg-danger hover:!bg-danger-hover text-danger-text \",\r\n\r\n icon: \" !rounded-full text-center inline-flex items-center \",\r\n};\r\nconst Button: React.FC<IButtonProps> = ({\r\n variant = \"primary\",\r\n children,\r\n onClick,\r\n className,\r\n ...props\r\n}) => {\r\n const classNames = commonStyles + buttonStyles[variant];\r\n\r\n return (\r\n <button\r\n className={\r\n classNames + \" \" + (className || \" sharedLibraryource text-3xl\")\r\n }\r\n onClick={onClick}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n );\r\n};\r\n\r\nexport default Button;\r\n"],"names":[],"mappings":";;AAcA,MAAM,eACJ;AACF,MAAM,eAAmD;AAAA,EACvD,SAAS;AAAA,EACT,WACE;AAAA,EACF,aACE;AAAA,EACF,SAAS;AAAA,EACT,QAAQ;AAAA,EAER,MAAM;AACR;AACA,MAAM,SAAiC,CAAC;AAAA,EACtC,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAM;AACE,QAAA,aAAa,eAAe,aAAa,OAAO;AAGpD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WACE,aAAa,OAAO,aAAa;AAAA,MAEnC;AAAA,MACC,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useState, useCallback, useEffect } from "react";
|
|
3
|
+
import { F as FaChevronLeft, a as FaChevronRight } from "../index-DPrqKh-7.js";
|
|
3
4
|
const Calendar = ({ items }) => {
|
|
4
5
|
const [currentMonth, setCurrentMonth] = useState(
|
|
5
6
|
(/* @__PURE__ */ new Date()).getMonth()
|
|
@@ -84,51 +85,54 @@ const Calendar = ({ items }) => {
|
|
|
84
85
|
const date = new Date(year, month, day);
|
|
85
86
|
return items.filter((item) => date >= item.from && date <= item.to);
|
|
86
87
|
};
|
|
87
|
-
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col bg-white shadow-lg flex-grow text-xs", children: [
|
|
88
|
-
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center
|
|
89
|
-
/* @__PURE__ */
|
|
88
|
+
return /* @__PURE__ */ jsxs("div", { className: "flex flex-col bg-white shadow-lg flex-grow text-xs rounded-xl border", children: [
|
|
89
|
+
/* @__PURE__ */ jsxs("div", { className: "flex justify-between items-center text-black p-2", children: [
|
|
90
|
+
/* @__PURE__ */ jsx(
|
|
91
|
+
"div",
|
|
92
|
+
{
|
|
93
|
+
onClick: goToPreviousMonth,
|
|
94
|
+
className: "mr-5 px-8 py-4 cursor-pointer hover:bg-gray-100 rounded-xl text-sm",
|
|
95
|
+
children: /* @__PURE__ */ jsx(FaChevronLeft, {})
|
|
96
|
+
}
|
|
97
|
+
),
|
|
98
|
+
/* @__PURE__ */ jsxs("h2", { className: "font-semibold text-base", children: [
|
|
90
99
|
monthNames[currentMonth],
|
|
91
100
|
" ",
|
|
92
101
|
currentYear
|
|
93
102
|
] }),
|
|
94
|
-
/* @__PURE__ */
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
103
|
-
),
|
|
104
|
-
/* @__PURE__ */ jsx(
|
|
105
|
-
"button",
|
|
106
|
-
{
|
|
107
|
-
type: "button",
|
|
108
|
-
onClick: goToNextMonth,
|
|
109
|
-
className: "mx-1 px-3 py-2 text-black bg-gray-400 hover:bg-gray-500",
|
|
110
|
-
children: "Následující"
|
|
111
|
-
}
|
|
112
|
-
)
|
|
113
|
-
] })
|
|
103
|
+
/* @__PURE__ */ jsx(
|
|
104
|
+
"div",
|
|
105
|
+
{
|
|
106
|
+
onClick: goToNextMonth,
|
|
107
|
+
className: "px-8 py-4 cursor-pointer hover:bg-gray-100 rounded-xl text-sm",
|
|
108
|
+
children: /* @__PURE__ */ jsx(FaChevronRight, {})
|
|
109
|
+
}
|
|
110
|
+
)
|
|
114
111
|
] }),
|
|
115
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-7
|
|
116
|
-
dayNames.map((day, index) => /* @__PURE__ */ jsx(
|
|
112
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-7 pb-4", children: [
|
|
113
|
+
dayNames.map((day, index) => /* @__PURE__ */ jsx(
|
|
114
|
+
"div",
|
|
115
|
+
{
|
|
116
|
+
className: "py-1 px-4 text-center font-semibold border-t",
|
|
117
|
+
children: day
|
|
118
|
+
},
|
|
119
|
+
index
|
|
120
|
+
)),
|
|
117
121
|
calendarData.map((week, weekIndex) => /* @__PURE__ */ jsx(React.Fragment, { children: week.map((day, dayIndex) => {
|
|
118
122
|
const itemsForDay = day ? findItemsForDay(day, currentMonth, currentYear) : [];
|
|
119
123
|
return /* @__PURE__ */ jsxs(
|
|
120
124
|
"div",
|
|
121
125
|
{
|
|
122
|
-
className: "p-0 align-middle justify-center text-center",
|
|
126
|
+
className: "p-0 align-middle justify-center text-center border-t hover:bg-gray-150 " + (dayIndex > 4 ? "bg-gray-100" : ""),
|
|
123
127
|
children: [
|
|
124
|
-
/* @__PURE__ */ jsxs("div", { className: "py-1
|
|
128
|
+
day && /* @__PURE__ */ jsxs("div", { className: "py-1", children: [
|
|
125
129
|
day,
|
|
126
130
|
" "
|
|
127
131
|
] }),
|
|
128
132
|
itemsForDay.map((item, itemIndex) => /* @__PURE__ */ jsx(
|
|
129
133
|
"div",
|
|
130
134
|
{
|
|
131
|
-
className: "dataItem w-full py-1 bg-primary text-white text-center mt-0",
|
|
135
|
+
className: "dataItem w-full py-1 bg-primary text-white text-center mt-0 -pr-1",
|
|
132
136
|
style: {
|
|
133
137
|
backgroundColor: item.background,
|
|
134
138
|
color: item.color
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","sources":["../../lib/components/Calendar.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\n\nexport interface ICalendarItem {\n id: number;\n label?: string;\n from: Date;\n to: Date;\n background?: string;\n color?: string;\n tooltip?: string;\n}\n\ntype ICalendarProps = {\n items: ICalendarItem[];\n};\n\n// Check if a day is within any item's date range\n\nconst Calendar: React.FunctionComponent<ICalendarProps> = ({ items }) => {\n const [currentMonth, setCurrentMonth] = useState<number>(\n new Date().getMonth()\n );\n const [currentYear, setCurrentYear] = useState<number>(\n new Date().getFullYear()\n );\n const [calendarData, setCalendarData] = useState<(string | number)[][]>([]);\n\n const monthNames: string[] = [\n \"Leden\",\n \"Únor\",\n \"Březen\",\n \"Duben\",\n \"Květen\",\n \"Červen\",\n \"Červenec\",\n \"Srpen\",\n \"Září\",\n \"Říjen\",\n \"Listopad\",\n \"Prosinec\",\n ];\n const dayNames: string[] = [\n \"Pondělí\",\n \"Úterý\",\n \"Středa\",\n \"Čtvrtek\",\n \"Pátek\",\n \"Sobota\",\n \"Neděle\",\n ];\n\n // Leap year check\n const isLeapYear = (year: number) =>\n (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n\n // Days in each month\n const daysInMonth = useCallback((month: number, year: number) => {\n if (month === 1) {\n // February\n return isLeapYear(year) ? 29 : 28;\n }\n if ([0, 2, 4, 6, 7, 9, 11].includes(month)) {\n // Months with 31 days\n\n return 31;\n }\n\n return 30; // Months with 30 days\n }, []);\n\n // Generate days for a month\n const generateMonthDays = useCallback(\n (month: number, year: number) => {\n const days = [];\n // const firstDayOfMonth = new Date(year, month, 1).getDay()\n\n // Adjusted to make week start from Monday\n let firstDayOfMonth = new Date(year, month, 1).getDay() - 1;\n if (firstDayOfMonth === -1) firstDayOfMonth = 6; // Sunday becomes 6 instead of -1\n\n let dayCounter = 1;\n\n for (let week = 0; week < 6; week++) {\n const weekDays = [];\n for (let day = 0; day < 7; day++) {\n if (week === 0 && day < firstDayOfMonth) {\n weekDays.push(\"\");\n } else if (dayCounter > daysInMonth(month, year)) {\n weekDays.push(\"\");\n } else {\n weekDays.push(dayCounter++);\n }\n }\n days.push(weekDays);\n }\n return days;\n },\n [daysInMonth]\n );\n\n useEffect(() => {\n setCalendarData(generateMonthDays(currentMonth, currentYear));\n }, [currentMonth, currentYear, generateMonthDays]);\n\n // Navigation handlers\n const goToNextMonth = () => {\n setCurrentMonth((prev) => (prev === 11 ? 0 : prev + 1));\n if (currentMonth === 11) {\n setCurrentYear((prev) => prev + 1);\n }\n };\n\n const goToPreviousMonth = () => {\n setCurrentMonth((prev) => (prev === 0 ? 11 : prev - 1));\n if (currentMonth === 0) {\n setCurrentYear((prev) => prev - 1);\n }\n };\n const findItemsForDay = (\n day: number,\n month: number,\n year: number\n ): ICalendarItem[] => {\n const date = new Date(year, month, day);\n return items.filter((item) => date >= item.from && date <= item.to);\n };\n return (\n <div className=\"flex flex-col bg-white shadow-lg flex-grow text-xs\">\n <div className=\"flex justify-between items-center
|
|
1
|
+
{"version":3,"file":"Calendar.js","sources":["../../lib/components/Calendar.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { FaChevronLeft, FaChevronRight } from \"react-icons/fa\";\r\n\r\nexport interface ICalendarItem {\r\n id: number;\r\n label?: string;\r\n from: Date;\r\n to: Date;\r\n background?: string;\r\n color?: string;\r\n tooltip?: string;\r\n}\r\n\r\ntype ICalendarProps = {\r\n items: ICalendarItem[];\r\n};\r\n\r\n// Check if a day is within any item's date range\r\n\r\nconst Calendar: React.FunctionComponent<ICalendarProps> = ({ items }) => {\r\n const [currentMonth, setCurrentMonth] = useState<number>(\r\n new Date().getMonth()\r\n );\r\n const [currentYear, setCurrentYear] = useState<number>(\r\n new Date().getFullYear()\r\n );\r\n const [calendarData, setCalendarData] = useState<(string | number)[][]>([]);\r\n\r\n const monthNames: string[] = [\r\n \"Leden\",\r\n \"Únor\",\r\n \"Březen\",\r\n \"Duben\",\r\n \"Květen\",\r\n \"Červen\",\r\n \"Červenec\",\r\n \"Srpen\",\r\n \"Září\",\r\n \"Říjen\",\r\n \"Listopad\",\r\n \"Prosinec\",\r\n ];\r\n const dayNames: string[] = [\r\n \"Pondělí\",\r\n \"Úterý\",\r\n \"Středa\",\r\n \"Čtvrtek\",\r\n \"Pátek\",\r\n \"Sobota\",\r\n \"Neděle\",\r\n ];\r\n\r\n // Leap year check\r\n const isLeapYear = (year: number) =>\r\n (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\r\n\r\n // Days in each month\r\n const daysInMonth = useCallback((month: number, year: number) => {\r\n if (month === 1) {\r\n // February\r\n return isLeapYear(year) ? 29 : 28;\r\n }\r\n if ([0, 2, 4, 6, 7, 9, 11].includes(month)) {\r\n // Months with 31 days\r\n\r\n return 31;\r\n }\r\n\r\n return 30; // Months with 30 days\r\n }, []);\r\n\r\n // Generate days for a month\r\n const generateMonthDays = useCallback(\r\n (month: number, year: number) => {\r\n const days = [];\r\n // const firstDayOfMonth = new Date(year, month, 1).getDay()\r\n\r\n // Adjusted to make week start from Monday\r\n let firstDayOfMonth = new Date(year, month, 1).getDay() - 1;\r\n if (firstDayOfMonth === -1) firstDayOfMonth = 6; // Sunday becomes 6 instead of -1\r\n\r\n let dayCounter = 1;\r\n\r\n for (let week = 0; week < 6; week++) {\r\n const weekDays = [];\r\n for (let day = 0; day < 7; day++) {\r\n if (week === 0 && day < firstDayOfMonth) {\r\n weekDays.push(\"\");\r\n } else if (dayCounter > daysInMonth(month, year)) {\r\n weekDays.push(\"\");\r\n } else {\r\n weekDays.push(dayCounter++);\r\n }\r\n }\r\n days.push(weekDays);\r\n }\r\n return days;\r\n },\r\n [daysInMonth]\r\n );\r\n\r\n useEffect(() => {\r\n setCalendarData(generateMonthDays(currentMonth, currentYear));\r\n }, [currentMonth, currentYear, generateMonthDays]);\r\n\r\n // Navigation handlers\r\n const goToNextMonth = () => {\r\n setCurrentMonth((prev) => (prev === 11 ? 0 : prev + 1));\r\n if (currentMonth === 11) {\r\n setCurrentYear((prev) => prev + 1);\r\n }\r\n };\r\n\r\n const goToPreviousMonth = () => {\r\n setCurrentMonth((prev) => (prev === 0 ? 11 : prev - 1));\r\n if (currentMonth === 0) {\r\n setCurrentYear((prev) => prev - 1);\r\n }\r\n };\r\n const findItemsForDay = (\r\n day: number,\r\n month: number,\r\n year: number\r\n ): ICalendarItem[] => {\r\n const date = new Date(year, month, day);\r\n return items.filter((item) => date >= item.from && date <= item.to);\r\n };\r\n return (\r\n <div className=\"flex flex-col bg-white shadow-lg flex-grow text-xs rounded-xl border\">\r\n <div className=\"flex justify-between items-center text-black p-2\">\r\n <div\r\n onClick={goToPreviousMonth}\r\n className=\"mr-5 px-8 py-4 cursor-pointer hover:bg-gray-100 rounded-xl text-sm\"\r\n >\r\n <FaChevronLeft />\r\n </div>\r\n <h2 className=\"font-semibold text-base\">\r\n {monthNames[currentMonth]} {currentYear}\r\n </h2>\r\n\r\n <div\r\n onClick={goToNextMonth}\r\n className=\"px-8 py-4 cursor-pointer hover:bg-gray-100 rounded-xl text-sm\"\r\n >\r\n <FaChevronRight />\r\n </div>\r\n </div>\r\n <div className=\"grid grid-cols-7 pb-4\">\r\n {dayNames.map((day, index) => (\r\n <div\r\n key={index}\r\n className=\"py-1 px-4 text-center font-semibold border-t\"\r\n >\r\n {day}\r\n </div>\r\n ))}\r\n {calendarData.map((week, weekIndex) => (\r\n <React.Fragment key={weekIndex}>\r\n {week.map((day, dayIndex) => {\r\n const itemsForDay = day\r\n ? findItemsForDay(day as number, currentMonth, currentYear)\r\n : [];\r\n return (\r\n <div\r\n key={dayIndex}\r\n className={\r\n \"p-0 align-middle justify-center text-center border-t hover:bg-gray-150 \" +\r\n (dayIndex > 4 ? \"bg-gray-100\" : \"\")\r\n }\r\n >\r\n {day && <div className=\"py-1\">{day} </div>}\r\n {itemsForDay.map((item, itemIndex) => (\r\n <div\r\n key={itemIndex}\r\n className=\"dataItem w-full py-1 bg-primary text-white text-center mt-0 -pr-1\"\r\n style={{\r\n backgroundColor: item.background,\r\n color: item.color,\r\n }}\r\n data-tooltip-target={\"tooltip-\" + item.id}\r\n title={item.tooltip}\r\n >\r\n {item.label}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n })}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Calendar;\r\n"],"names":[],"mappings":";;;AAmBA,MAAM,WAAoD,CAAC,EAAE,YAAY;AACjE,QAAA,CAAC,cAAc,eAAe,IAAI;AAAA,KACtC,oBAAI,KAAK,GAAE,SAAS;AAAA,EAAA;AAEhB,QAAA,CAAC,aAAa,cAAc,IAAI;AAAA,KACpC,oBAAI,KAAK,GAAE,YAAY;AAAA,EAAA;AAEzB,QAAM,CAAC,cAAc,eAAe,IAAI,SAAgC,CAAE,CAAA;AAE1E,QAAM,aAAuB;AAAA,IAC3B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEF,QAAM,WAAqB;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAII,QAAA,aAAa,CAAC,SACjB,OAAO,MAAM,KAAK,OAAO,QAAQ,KAAM,OAAO,QAAQ;AAGzD,QAAM,cAAc,YAAY,CAAC,OAAe,SAAiB;AAC/D,QAAI,UAAU,GAAG;AAER,aAAA,WAAW,IAAI,IAAI,KAAK;AAAA,IACjC;AACI,QAAA,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,KAAK,GAAG;AAGnC,aAAA;AAAA,IACT;AAEO,WAAA;AAAA,EACT,GAAG,CAAE,CAAA;AAGL,QAAM,oBAAoB;AAAA,IACxB,CAAC,OAAe,SAAiB;AAC/B,YAAM,OAAO,CAAA;AAIT,UAAA,kBAAkB,IAAI,KAAK,MAAM,OAAO,CAAC,EAAE,OAAW,IAAA;AAC1D,UAAI,oBAAoB;AAAsB,0BAAA;AAE9C,UAAI,aAAa;AAEjB,eAAS,OAAO,GAAG,OAAO,GAAG,QAAQ;AACnC,cAAM,WAAW,CAAA;AACjB,iBAAS,MAAM,GAAG,MAAM,GAAG,OAAO;AAC5B,cAAA,SAAS,KAAK,MAAM,iBAAiB;AACvC,qBAAS,KAAK,EAAE;AAAA,UACP,WAAA,aAAa,YAAY,OAAO,IAAI,GAAG;AAChD,qBAAS,KAAK,EAAE;AAAA,UAAA,OACX;AACL,qBAAS,KAAK,YAAY;AAAA,UAC5B;AAAA,QACF;AACA,aAAK,KAAK,QAAQ;AAAA,MACpB;AACO,aAAA;AAAA,IACT;AAAA,IACA,CAAC,WAAW;AAAA,EAAA;AAGd,YAAU,MAAM;AACE,oBAAA,kBAAkB,cAAc,WAAW,CAAC;AAAA,EAC3D,GAAA,CAAC,cAAc,aAAa,iBAAiB,CAAC;AAGjD,QAAM,gBAAgB,MAAM;AAC1B,oBAAgB,CAAC,SAAU,SAAS,KAAK,IAAI,OAAO,CAAE;AACtD,QAAI,iBAAiB,IAAI;AACR,qBAAA,CAAC,SAAS,OAAO,CAAC;AAAA,IACnC;AAAA,EAAA;AAGF,QAAM,oBAAoB,MAAM;AAC9B,oBAAgB,CAAC,SAAU,SAAS,IAAI,KAAK,OAAO,CAAE;AACtD,QAAI,iBAAiB,GAAG;AACP,qBAAA,CAAC,SAAS,OAAO,CAAC;AAAA,IACnC;AAAA,EAAA;AAEF,QAAM,kBAAkB,CACtB,KACA,OACA,SACoB;AACpB,UAAM,OAAO,IAAI,KAAK,MAAM,OAAO,GAAG;AAC/B,WAAA,MAAM,OAAO,CAAC,SAAS,QAAQ,KAAK,QAAQ,QAAQ,KAAK,EAAE;AAAA,EAAA;AAGlE,SAAA,qBAAC,OAAI,EAAA,WAAU,0EACb,UAAA;AAAA,IAAC,qBAAA,OAAA,EAAI,WAAU,oDACb,UAAA;AAAA,MAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAU;AAAA,UAEV,8BAAC,eAAc,EAAA;AAAA,QAAA;AAAA,MACjB;AAAA,MACA,qBAAC,MAAG,EAAA,WAAU,2BACX,UAAA;AAAA,QAAA,WAAW,YAAY;AAAA,QAAE;AAAA,QAAE;AAAA,MAAA,GAC9B;AAAA,MAEA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAS;AAAA,UACT,WAAU;AAAA,UAEV,8BAAC,gBAAe,EAAA;AAAA,QAAA;AAAA,MAClB;AAAA,IAAA,GACF;AAAA,IACA,qBAAC,OAAI,EAAA,WAAU,yBACZ,UAAA;AAAA,MAAS,SAAA,IAAI,CAAC,KAAK,UAClB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEC,WAAU;AAAA,UAET,UAAA;AAAA,QAAA;AAAA,QAHI;AAAA,MAAA,CAKR;AAAA,MACA,aAAa,IAAI,CAAC,MAAM,cACvB,oBAAC,MAAM,UAAN,EACE,UAAA,KAAK,IAAI,CAAC,KAAK,aAAa;AAC3B,cAAM,cAAc,MAChB,gBAAgB,KAAe,cAAc,WAAW,IACxD;AAEF,eAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,WACE,8EACC,WAAW,IAAI,gBAAgB;AAAA,YAGjC,UAAA;AAAA,cAAO,OAAA,qBAAC,OAAI,EAAA,WAAU,QAAQ,UAAA;AAAA,gBAAA;AAAA,gBAAI;AAAA,cAAA,GAAC;AAAA,cACnC,YAAY,IAAI,CAAC,MAAM,cACtB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,iBAAiB,KAAK;AAAA,oBACtB,OAAO,KAAK;AAAA,kBACd;AAAA,kBACA,uBAAqB,aAAa,KAAK;AAAA,kBACvC,OAAO,KAAK;AAAA,kBAEX,UAAK,KAAA;AAAA,gBAAA;AAAA,gBATD;AAAA,cAAA,CAWR;AAAA,YAAA;AAAA,UAAA;AAAA,UApBI;AAAA,QAAA;AAAA,MAqBP,CAEH,EA9BkB,GAAA,SA+BrB,CACD;AAAA,IAAA,GACH;AAAA,EACF,EAAA,CAAA;AAEJ;"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
+
import { b as FaRegTrashAlt } from "../index-DPrqKh-7.js";
|
|
3
4
|
import { G as GenIcon } from "../iconBase-BY_L6Cb_.js";
|
|
4
|
-
function FaRegTrashAlt(props) {
|
|
5
|
-
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 448 512" }, "child": [{ "tag": "path", "attr": { "d": "M268 416h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12zM432 80h-82.41l-34-56.7A48 48 0 0 0 274.41 0H173.59a48 48 0 0 0-41.16 23.3L98.41 80H16A16 16 0 0 0 0 96v16a16 16 0 0 0 16 16h16v336a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128h16a16 16 0 0 0 16-16V96a16 16 0 0 0-16-16zM171.84 50.91A6 6 0 0 1 177 48h94a6 6 0 0 1 5.15 2.91L293.61 80H154.39zM368 464H80V128h288zm-212-48h24a12 12 0 0 0 12-12V188a12 12 0 0 0-12-12h-24a12 12 0 0 0-12 12v216a12 12 0 0 0 12 12z" }, "child": [] }] })(props);
|
|
6
|
-
}
|
|
7
5
|
function IoCloseOutline(props) {
|
|
8
6
|
return GenIcon({ "tag": "svg", "attr": { "viewBox": "0 0 512 512" }, "child": [{ "tag": "path", "attr": { "fill": "none", "strokeLinecap": "round", "strokeLinejoin": "round", "strokeWidth": "32", "d": "M368 368 144 144m224 0L144 368" }, "child": [] }] })(props);
|
|
9
7
|
}
|