@mbpockets/shared-ui 0.1.18 → 0.1.20
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/EventPage/editMode/index.cjs +28 -11
- package/dist/EventPage/editMode/index.cjs.map +1 -1
- package/dist/EventPage/editMode/index.mjs +29 -12
- package/dist/EventPage/editMode/index.mjs.map +1 -1
- package/dist/EventPage/editMode.cjs +28 -11
- package/dist/EventPage/editMode.cjs.map +1 -1
- package/dist/EventPage/editMode.mjs +29 -12
- package/dist/EventPage/editMode.mjs.map +1 -1
- package/dist/EventPage/index.cjs +28 -11
- package/dist/EventPage/index.cjs.map +1 -1
- package/dist/EventPage/index.mjs +30 -13
- package/dist/EventPage/index.mjs.map +1 -1
- package/dist/EventPage.cjs +28 -11
- package/dist/EventPage.cjs.map +1 -1
- package/dist/EventPage.mjs +30 -13
- package/dist/EventPage.mjs.map +1 -1
- package/dist/PlayerPage/index.cjs +311 -99
- package/dist/PlayerPage/index.cjs.map +1 -1
- package/dist/PlayerPage/index.d.cts +1 -1
- package/dist/PlayerPage/index.d.ts +1 -1
- package/dist/PlayerPage/index.mjs +310 -98
- package/dist/PlayerPage/index.mjs.map +1 -1
- package/dist/PlayerPage.cjs +311 -99
- package/dist/PlayerPage.cjs.map +1 -1
- package/dist/PlayerPage.d.cts +24 -6
- package/dist/PlayerPage.d.ts +24 -6
- package/dist/PlayerPage.mjs +310 -98
- package/dist/PlayerPage.mjs.map +1 -1
- package/dist/ProfilePage/index.cjs +509 -63
- package/dist/ProfilePage/index.cjs.map +1 -1
- package/dist/ProfilePage/index.d.cts +2 -1
- package/dist/ProfilePage/index.d.ts +2 -1
- package/dist/ProfilePage/index.mjs +504 -58
- package/dist/ProfilePage/index.mjs.map +1 -1
- package/dist/ProfilePage.cjs +509 -63
- package/dist/ProfilePage.cjs.map +1 -1
- package/dist/ProfilePage.d.cts +4 -10
- package/dist/ProfilePage.d.ts +4 -10
- package/dist/ProfilePage.mjs +504 -58
- package/dist/ProfilePage.mjs.map +1 -1
- package/dist/SearchPage/Results/index.cjs +28 -11
- package/dist/SearchPage/Results/index.cjs.map +1 -1
- package/dist/SearchPage/Results/index.mjs +30 -13
- package/dist/SearchPage/Results/index.mjs.map +1 -1
- package/dist/SearchPage/Results.cjs +28 -11
- package/dist/SearchPage/Results.cjs.map +1 -1
- package/dist/SearchPage/Results.mjs +30 -13
- package/dist/SearchPage/Results.mjs.map +1 -1
- package/dist/SearchPage/index.cjs +28 -11
- package/dist/SearchPage/index.cjs.map +1 -1
- package/dist/SearchPage/index.mjs +30 -13
- package/dist/SearchPage/index.mjs.map +1 -1
- package/dist/SearchPage.cjs +28 -11
- package/dist/SearchPage.cjs.map +1 -1
- package/dist/SearchPage.mjs +30 -13
- package/dist/SearchPage.mjs.map +1 -1
- package/dist/TablePage/index.cjs +32 -31
- package/dist/TablePage/index.cjs.map +1 -1
- package/dist/TablePage/index.mjs +32 -31
- package/dist/TablePage/index.mjs.map +1 -1
- package/dist/TablePage/players/index.cjs +28 -11
- package/dist/TablePage/players/index.cjs.map +1 -1
- package/dist/TablePage/players/index.mjs +28 -11
- package/dist/TablePage/players/index.mjs.map +1 -1
- package/dist/TablePage/players.cjs +28 -11
- package/dist/TablePage/players.cjs.map +1 -1
- package/dist/TablePage/players.mjs +28 -11
- package/dist/TablePage/players.mjs.map +1 -1
- package/dist/TablePage.cjs +32 -31
- package/dist/TablePage.cjs.map +1 -1
- package/dist/TablePage.mjs +32 -31
- package/dist/TablePage.mjs.map +1 -1
- package/dist/common/index.cjs +38 -36
- package/dist/common/index.cjs.map +1 -1
- package/dist/common/index.d.cts +1 -1
- package/dist/common/index.d.ts +1 -1
- package/dist/common/index.mjs +39 -38
- package/dist/common/index.mjs.map +1 -1
- package/dist/common.cjs +38 -36
- package/dist/common.cjs.map +1 -1
- package/dist/common.d.cts +6 -1
- package/dist/common.d.ts +6 -1
- package/dist/common.mjs +39 -38
- package/dist/common.mjs.map +1 -1
- package/dist/index.cjs +373 -199
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -3
- package/dist/index.d.ts +2 -3
- package/dist/index.mjs +370 -198
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import React7, { createContext, useState, useEffect, useContext, useMemo, useRef } from 'react';
|
|
3
3
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
4
|
-
import { Box, Grid, TextField, Tooltip, IconButton, Button, CircularProgress, Dialog, DialogTitle, DialogContent, DialogActions, Card, CardContent, Typography, FormControl, InputLabel, Select, MenuItem, Chip, LinearProgress, CardMedia, useTheme, useMediaQuery,
|
|
4
|
+
import { Box, Grid, TextField, Tooltip, IconButton, Button, CircularProgress, Dialog, DialogTitle, DialogContent, DialogActions, Card, CardContent, Typography, FormControl, InputLabel, Select, MenuItem, Chip as Chip$1, LinearProgress, CardMedia, CardHeader, useTheme, useMediaQuery, NoSsr } from '@mui/material';
|
|
5
5
|
import DeleteIcon from '@mui/icons-material/Delete';
|
|
6
6
|
import EditIcon from '@mui/icons-material/Edit';
|
|
7
7
|
import AddIcon from '@mui/icons-material/Add';
|
|
@@ -9,7 +9,7 @@ import ColorizeIcon from '@mui/icons-material/Colorize';
|
|
|
9
9
|
import CancelIcon from '@mui/icons-material/Cancel';
|
|
10
10
|
import CheckCircleIcon from '@mui/icons-material/CheckCircle';
|
|
11
11
|
import Box2 from '@mui/material/Box';
|
|
12
|
-
import
|
|
12
|
+
import Grid8 from '@mui/material/Grid';
|
|
13
13
|
import Card10 from '@mui/material/Card';
|
|
14
14
|
import CardContent10 from '@mui/material/CardContent';
|
|
15
15
|
import CardHeader4 from '@mui/material/CardHeader';
|
|
@@ -21,12 +21,12 @@ import LocationOnIcon from '@mui/icons-material/LocationOn';
|
|
|
21
21
|
import EventIcon from '@mui/icons-material/Event';
|
|
22
22
|
import Autocomplete from '@mui/material/Autocomplete';
|
|
23
23
|
import Popper from '@mui/material/Popper';
|
|
24
|
-
import TextField3 from '@mui/material/TextField';
|
|
25
24
|
import Typography10 from '@mui/material/Typography';
|
|
26
25
|
import FormControl2 from '@mui/material/FormControl';
|
|
27
26
|
import RadioGroup from '@mui/material/RadioGroup';
|
|
28
27
|
import FormControlLabel from '@mui/material/FormControlLabel';
|
|
29
28
|
import Radio from '@mui/material/Radio';
|
|
29
|
+
import TextField4 from '@mui/material/TextField';
|
|
30
30
|
import FormGroup from '@mui/material/FormGroup';
|
|
31
31
|
import Checkbox from '@mui/material/Checkbox';
|
|
32
32
|
import Button7 from '@mui/material/Button';
|
|
@@ -87,23 +87,40 @@ function useEventEdit() {
|
|
|
87
87
|
}
|
|
88
88
|
return context;
|
|
89
89
|
}
|
|
90
|
-
function
|
|
91
|
-
|
|
90
|
+
function Chip({ tag, removeCallback }) {
|
|
91
|
+
var _a;
|
|
92
|
+
const color = (_a = tag.color) != null ? _a : "#bfbcbb";
|
|
93
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
|
|
92
94
|
"span",
|
|
93
95
|
{
|
|
94
|
-
className: "inline-block text-sm px-3 py-1 rounded-full
|
|
96
|
+
className: "inline-block text-sm px-3 py-1 rounded-full border-2 font-outlined text-white m-0.5 font-stretch-105% font-sans",
|
|
95
97
|
style: {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
color: "white",
|
|
101
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
98
|
+
borderColor: `color-mix(in srgb, ${color}, black 50%)`,
|
|
99
|
+
background: `linear-gradient(160deg, color-mix(in srgb, ${color}, white 10%) 0%, color-mix(in srgb, ${color}, black 60%) 100%)`,
|
|
100
|
+
textShadow: "black 1.5px 1px 1.5px",
|
|
101
|
+
filter: `drop-shadow(2px 2px 1.5px color-mix(in srgb, ${color}, black 80%))`
|
|
102
102
|
},
|
|
103
|
-
children:
|
|
103
|
+
children: [
|
|
104
|
+
tag.label,
|
|
105
|
+
removeCallback && /* @__PURE__ */ jsx(
|
|
106
|
+
"button",
|
|
107
|
+
{
|
|
108
|
+
type: "button",
|
|
109
|
+
onClick: () => removeCallback(tag.id),
|
|
110
|
+
className: "ml-2 text-white hover:text-red-700 focus:outline-none pl-0.5 pr-1 cursor-pointer hover:bg-white rounded-full",
|
|
111
|
+
style: {
|
|
112
|
+
textShadow: "black 1px 1px 1px"
|
|
113
|
+
},
|
|
114
|
+
children: "X"
|
|
115
|
+
}
|
|
116
|
+
)
|
|
117
|
+
]
|
|
104
118
|
},
|
|
105
119
|
tag.id
|
|
106
|
-
);
|
|
120
|
+
) });
|
|
121
|
+
}
|
|
122
|
+
function generateTagsDisplay(tag) {
|
|
123
|
+
return /* @__PURE__ */ jsx(Chip, { tag }, tag.id);
|
|
107
124
|
}
|
|
108
125
|
function renderTagsFromIds(ids, legalTags) {
|
|
109
126
|
if (!ids || !legalTags || legalTags.length === 0) {
|
|
@@ -461,7 +478,7 @@ function EventBasicInfo(props) {
|
|
|
461
478
|
);
|
|
462
479
|
}
|
|
463
480
|
function EventBasicInfoView({ description, locationId, startingDate, endingDate, timeInfo, timezone, isOwner, onEdit }) {
|
|
464
|
-
return /* @__PURE__ */ jsx(
|
|
481
|
+
return /* @__PURE__ */ jsx(Grid8, { sx: { position: "relative" }, children: /* @__PURE__ */ jsx(Card, { style: {
|
|
465
482
|
boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.1)",
|
|
466
483
|
background: "linear-gradient(135deg, rgba(225, 225, 225, 1), rgba(250, 250, 250, 1))"
|
|
467
484
|
}, children: /* @__PURE__ */ jsxs(CardContent, { children: [
|
|
@@ -745,7 +762,7 @@ function EventBannerView({
|
|
|
745
762
|
}) {
|
|
746
763
|
const backgroundColor = bannerColor || "linear-gradient(135deg, rgba(25,118,210,0.8), rgba(25,118,210,1))";
|
|
747
764
|
return /* @__PURE__ */ jsxs(
|
|
748
|
-
|
|
765
|
+
Grid8,
|
|
749
766
|
{
|
|
750
767
|
sx: {
|
|
751
768
|
background: backgroundColor,
|
|
@@ -753,7 +770,7 @@ function EventBannerView({
|
|
|
753
770
|
position: "relative"
|
|
754
771
|
},
|
|
755
772
|
children: [
|
|
756
|
-
/* @__PURE__ */ jsxs(
|
|
773
|
+
/* @__PURE__ */ jsxs(Grid8, { children: [
|
|
757
774
|
/* @__PURE__ */ jsxs(
|
|
758
775
|
Box,
|
|
759
776
|
{
|
|
@@ -812,7 +829,7 @@ function EventBannerView({
|
|
|
812
829
|
}
|
|
813
830
|
),
|
|
814
831
|
/* @__PURE__ */ jsxs(
|
|
815
|
-
|
|
832
|
+
Grid8,
|
|
816
833
|
{
|
|
817
834
|
display: "flex",
|
|
818
835
|
justifyContent: "center",
|
|
@@ -1054,7 +1071,7 @@ var TableResultCard = ({ result, tags, onClick }) => {
|
|
|
1054
1071
|
" / ",
|
|
1055
1072
|
capacity
|
|
1056
1073
|
] }),
|
|
1057
|
-
result.dungeonMaster ? /* @__PURE__ */ jsx(Chip, { label: "DM Present", size: "small", color: "success", variant: "outlined" }) : /* @__PURE__ */ jsx(Chip, { label: "No DM", size: "small", color: "warning", variant: "outlined" })
|
|
1074
|
+
result.dungeonMaster ? /* @__PURE__ */ jsx(Chip$1, { label: "DM Present", size: "small", color: "success", variant: "outlined" }) : /* @__PURE__ */ jsx(Chip$1, { label: "No DM", size: "small", color: "warning", variant: "outlined" })
|
|
1058
1075
|
] }),
|
|
1059
1076
|
/* @__PURE__ */ jsx(LinearProgress, { variant: "determinate", value: occupancy, sx: { height: 8, borderRadius: 4 } })
|
|
1060
1077
|
] }) });
|
|
@@ -1211,27 +1228,28 @@ function EventPageLayout({
|
|
|
1211
1228
|
tables,
|
|
1212
1229
|
allTags
|
|
1213
1230
|
}) {
|
|
1214
|
-
return /* @__PURE__ */ jsx(
|
|
1215
|
-
/* @__PURE__ */ jsx(
|
|
1231
|
+
return /* @__PURE__ */ jsx(Grid8, { container: true, flexDirection: "column", children: /* @__PURE__ */ jsxs(EventEditProvider, { initialEvent: mergedEvent, value: { isOwner, updateEvent, updateImages }, children: [
|
|
1232
|
+
/* @__PURE__ */ jsx(Grid8, { children: /* @__PURE__ */ jsx(
|
|
1216
1233
|
EventBanner,
|
|
1217
1234
|
{
|
|
1218
1235
|
attendees,
|
|
1219
1236
|
numGames
|
|
1220
1237
|
}
|
|
1221
1238
|
) }),
|
|
1222
|
-
/* @__PURE__ */ jsxs(
|
|
1223
|
-
/* @__PURE__ */ jsx(
|
|
1239
|
+
/* @__PURE__ */ jsxs(Grid8, { container: true, flexDirection: "row", spacing: 3, size: { xs: 12, md: 12 }, children: [
|
|
1240
|
+
/* @__PURE__ */ jsx(Grid8, { size: { xs: 12, md: 4 }, spacing: 3, padding: 3, children: /* @__PURE__ */ jsx(
|
|
1224
1241
|
EventBasicInfo,
|
|
1225
1242
|
{
|
|
1226
1243
|
locationId: mergedEvent.location || "0"
|
|
1227
1244
|
}
|
|
1228
1245
|
) }),
|
|
1229
|
-
/* @__PURE__ */ jsx(
|
|
1246
|
+
/* @__PURE__ */ jsx(Grid8, { size: { xs: 12, md: 8 }, spacing: 3, padding: 3, children: /* @__PURE__ */ jsx(EventTablesCard_default, { tables, tags: allTags }) })
|
|
1230
1247
|
] }),
|
|
1231
|
-
/* @__PURE__ */ jsx(
|
|
1248
|
+
/* @__PURE__ */ jsx(Grid8, {})
|
|
1232
1249
|
] }) });
|
|
1233
1250
|
}
|
|
1234
|
-
var
|
|
1251
|
+
var PlayerDetailsCard = ({
|
|
1252
|
+
preferredPronouns,
|
|
1235
1253
|
age,
|
|
1236
1254
|
yearsPlaying,
|
|
1237
1255
|
discordUsername,
|
|
@@ -1281,6 +1299,23 @@ var PlayerDetails = ({
|
|
|
1281
1299
|
}
|
|
1282
1300
|
),
|
|
1283
1301
|
/* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
|
|
1302
|
+
preferredPronouns && /* @__PURE__ */ jsxs(
|
|
1303
|
+
Typography,
|
|
1304
|
+
{
|
|
1305
|
+
variant: "body2",
|
|
1306
|
+
className: "text-sm font-medium",
|
|
1307
|
+
sx: {
|
|
1308
|
+
color: "#FFFFFF",
|
|
1309
|
+
textShadow: "0px 2px 6px rgba(0, 0, 0, 0.5)",
|
|
1310
|
+
fontWeight: "bold"
|
|
1311
|
+
},
|
|
1312
|
+
children: [
|
|
1313
|
+
/* @__PURE__ */ jsx("span", { className: "font-extrabold text-cyan-300", children: "Preferred Pronouns:" }),
|
|
1314
|
+
" ",
|
|
1315
|
+
preferredPronouns
|
|
1316
|
+
]
|
|
1317
|
+
}
|
|
1318
|
+
),
|
|
1284
1319
|
age !== null && /* @__PURE__ */ jsxs(
|
|
1285
1320
|
Typography,
|
|
1286
1321
|
{
|
|
@@ -1332,7 +1367,7 @@ var PlayerDetails = ({
|
|
|
1332
1367
|
]
|
|
1333
1368
|
}
|
|
1334
1369
|
),
|
|
1335
|
-
preferredGames &&
|
|
1370
|
+
preferredGames && /* @__PURE__ */ jsxs(
|
|
1336
1371
|
Typography,
|
|
1337
1372
|
{
|
|
1338
1373
|
variant: "body2",
|
|
@@ -1345,7 +1380,7 @@ var PlayerDetails = ({
|
|
|
1345
1380
|
children: [
|
|
1346
1381
|
/* @__PURE__ */ jsx("span", { className: "font-extrabold text-cyan-300", children: "Preferred Games:" }),
|
|
1347
1382
|
" ",
|
|
1348
|
-
preferredGames.join(", ")
|
|
1383
|
+
Array.isArray(preferredGames) ? preferredGames.join(", ") : preferredGames
|
|
1349
1384
|
]
|
|
1350
1385
|
}
|
|
1351
1386
|
)
|
|
@@ -1368,24 +1403,20 @@ var PlayerDetails = ({
|
|
|
1368
1403
|
}
|
|
1369
1404
|
);
|
|
1370
1405
|
};
|
|
1371
|
-
var PlayerDetailsCard_default =
|
|
1406
|
+
var PlayerDetailsCard_default = PlayerDetailsCard;
|
|
1372
1407
|
|
|
1373
1408
|
// src/data/values.tsx
|
|
1374
1409
|
var ProfilePictureSettings = {
|
|
1375
1410
|
aspectRatio: 4 / 5};
|
|
1376
|
-
var {
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
bio,
|
|
1381
|
-
preferredPronouns
|
|
1382
|
-
}) => {
|
|
1383
|
-
const [imageSrc, setImageSrc] = useState("/man-walking-silhouette-clipart.jpg");
|
|
1411
|
+
var PlayerDisplayCard = ({ profilePicture, username, bio, preferredPronouns }) => {
|
|
1412
|
+
const defaultImg = "/man-walking-silhouette-clipart.jpg";
|
|
1413
|
+
const [imageSrc, setImageSrc] = useState(defaultImg);
|
|
1414
|
+
const { aspectRatio } = ProfilePictureSettings;
|
|
1384
1415
|
useEffect(() => {
|
|
1385
1416
|
async function validateImage() {
|
|
1386
|
-
const newImage = profilePicture ||
|
|
1417
|
+
const newImage = profilePicture || defaultImg;
|
|
1387
1418
|
if (!profilePicture) {
|
|
1388
|
-
setImageSrc(
|
|
1419
|
+
setImageSrc(defaultImg);
|
|
1389
1420
|
return;
|
|
1390
1421
|
}
|
|
1391
1422
|
const img = new Image();
|
|
@@ -1394,7 +1425,7 @@ var PlayerDisplayCard = ({
|
|
|
1394
1425
|
setImageSrc(newImage);
|
|
1395
1426
|
};
|
|
1396
1427
|
img.onerror = () => {
|
|
1397
|
-
setImageSrc(
|
|
1428
|
+
setImageSrc(defaultImg);
|
|
1398
1429
|
};
|
|
1399
1430
|
}
|
|
1400
1431
|
validateImage();
|
|
@@ -1428,7 +1459,7 @@ var PlayerDisplayCard = ({
|
|
|
1428
1459
|
height: "auto",
|
|
1429
1460
|
// Updates to maintain aspect ratio and fill space nicely
|
|
1430
1461
|
width: "100%",
|
|
1431
|
-
objectFit: "
|
|
1462
|
+
objectFit: "cover"
|
|
1432
1463
|
}
|
|
1433
1464
|
}
|
|
1434
1465
|
),
|
|
@@ -1487,151 +1518,147 @@ var PlayerDisplayCard = ({
|
|
|
1487
1518
|
);
|
|
1488
1519
|
};
|
|
1489
1520
|
var PlayerDisplayCard_default = PlayerDisplayCard;
|
|
1490
|
-
var
|
|
1491
|
-
return /* @__PURE__ */
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
variant: "h5",
|
|
1513
|
-
className: "font-bold text-lg uppercase text-center tracking-wide mb-4",
|
|
1514
|
-
sx: {
|
|
1515
|
-
color: "#FFFFFF",
|
|
1516
|
-
// Bright white for high visibility
|
|
1517
|
-
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1518
|
-
// Strong text shadow for contrast
|
|
1519
|
-
fontSize: "1.5rem"
|
|
1520
|
-
},
|
|
1521
|
-
children: title
|
|
1522
|
-
}
|
|
1523
|
-
),
|
|
1524
|
-
description && /* @__PURE__ */ jsx(
|
|
1525
|
-
Typography,
|
|
1526
|
-
{
|
|
1527
|
-
variant: "body2",
|
|
1528
|
-
className: "text-sm font-medium text-center",
|
|
1529
|
-
sx: {
|
|
1530
|
-
color: "#E3F2FD",
|
|
1531
|
-
// Softer light blue for description
|
|
1532
|
-
textShadow: "0px 2px 4px rgba(0, 0, 0, 0.3)",
|
|
1533
|
-
// Subtle shadow
|
|
1534
|
-
lineHeight: 1.6,
|
|
1535
|
-
marginTop: "1rem"
|
|
1536
|
-
},
|
|
1537
|
-
children: description
|
|
1521
|
+
var PlayerTagsCard = ({ tags = [] }) => {
|
|
1522
|
+
return /* @__PURE__ */ jsxs(Card, { sx: {
|
|
1523
|
+
margin: "1rem",
|
|
1524
|
+
borderRadius: "12px",
|
|
1525
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1526
|
+
overflow: "hidden"
|
|
1527
|
+
}, className: "transition duration-300 transform hover:scale-105 hover:shadow-2xl", children: [
|
|
1528
|
+
/* @__PURE__ */ jsx(
|
|
1529
|
+
CardHeader,
|
|
1530
|
+
{
|
|
1531
|
+
title: "Player Tags",
|
|
1532
|
+
sx: {
|
|
1533
|
+
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1534
|
+
color: "#FFFFFF",
|
|
1535
|
+
fontSize: "1.5rem",
|
|
1536
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1537
|
+
"& .MuiCardHeader-title": {
|
|
1538
|
+
fontWeight: "bold",
|
|
1539
|
+
fontSize: "1.5rem",
|
|
1540
|
+
textAlign: "center",
|
|
1541
|
+
textTransform: "uppercase",
|
|
1542
|
+
letterSpacing: "0.05em"
|
|
1538
1543
|
}
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1544
|
+
}
|
|
1545
|
+
}
|
|
1546
|
+
),
|
|
1547
|
+
/* @__PURE__ */ jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ jsx(Chip, { tag }, tag.id)) }) })
|
|
1548
|
+
] });
|
|
1543
1549
|
};
|
|
1544
|
-
var
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1550
|
+
var PlayerTagsCard_default = PlayerTagsCard;
|
|
1551
|
+
var PlayerPromptCard = ({ title, description }) => /* @__PURE__ */ jsx(
|
|
1552
|
+
Card,
|
|
1553
|
+
{
|
|
1554
|
+
sx: {
|
|
1555
|
+
margin: "1rem",
|
|
1548
1556
|
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1557
|
+
// Gradient color scheme
|
|
1558
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1559
|
+
// Card shadow
|
|
1560
|
+
borderRadius: "12px",
|
|
1561
|
+
// Rounded corners
|
|
1549
1562
|
color: "#FFFFFF",
|
|
1550
|
-
//
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
// Strong shadow for visibility
|
|
1554
|
-
} }),
|
|
1555
|
-
/* @__PURE__ */ jsx(CardContent10, { children: renderLabels(props.PlayerTags) })
|
|
1556
|
-
] }) }) });
|
|
1557
|
-
}
|
|
1558
|
-
var renderLabels = (tags) => {
|
|
1559
|
-
return /* @__PURE__ */ jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: tags.map((tag) => generateLabel(tag)) });
|
|
1560
|
-
};
|
|
1561
|
-
var generateLabel = (tag) => {
|
|
1562
|
-
let color = "#bfbcbb";
|
|
1563
|
-
if (tag.color) color = tag.color;
|
|
1564
|
-
return /* @__PURE__ */ jsx(
|
|
1565
|
-
"span",
|
|
1566
|
-
{
|
|
1567
|
-
className: "inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined",
|
|
1568
|
-
style: {
|
|
1569
|
-
background: color,
|
|
1570
|
-
color: "white",
|
|
1571
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
1572
|
-
},
|
|
1573
|
-
children: tag.label
|
|
1563
|
+
// Text contrast with the background
|
|
1564
|
+
overflow: "hidden"
|
|
1565
|
+
// Keeps consistent and clean card shape
|
|
1574
1566
|
},
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1567
|
+
className: "transition duration-300 transform hover:scale-105 hover:shadow-2xl",
|
|
1568
|
+
children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6", children: [
|
|
1569
|
+
title && /* @__PURE__ */ jsx(
|
|
1570
|
+
Typography,
|
|
1571
|
+
{
|
|
1572
|
+
variant: "h5",
|
|
1573
|
+
className: "font-bold text-lg uppercase text-center tracking-wide mb-4",
|
|
1574
|
+
sx: {
|
|
1575
|
+
color: "#FFFFFF",
|
|
1576
|
+
// Bright white for high visibility
|
|
1577
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1578
|
+
// Strong text shadow for contrast
|
|
1579
|
+
fontSize: "1.5rem"
|
|
1580
|
+
},
|
|
1581
|
+
children: title
|
|
1582
|
+
}
|
|
1583
|
+
),
|
|
1584
|
+
description && /* @__PURE__ */ jsx(
|
|
1585
|
+
Typography,
|
|
1586
|
+
{
|
|
1587
|
+
variant: "body2",
|
|
1588
|
+
className: "text-sm font-medium text-center",
|
|
1589
|
+
sx: {
|
|
1590
|
+
color: "#E3F2FD",
|
|
1591
|
+
// Softer light blue for description
|
|
1592
|
+
textShadow: "0px 2px 4px rgba(0, 0, 0, 0.3)",
|
|
1593
|
+
// Subtle shadow
|
|
1594
|
+
lineHeight: 1.6,
|
|
1595
|
+
marginTop: "1rem"
|
|
1596
|
+
},
|
|
1597
|
+
children: description
|
|
1598
|
+
}
|
|
1599
|
+
)
|
|
1600
|
+
] })
|
|
1601
|
+
}
|
|
1602
|
+
);
|
|
1603
|
+
var PlayerPromptCard_default = PlayerPromptCard;
|
|
1604
|
+
var PlayerTagsEdit = ({
|
|
1605
|
+
selectedTags = [],
|
|
1606
|
+
possibleTags = [],
|
|
1582
1607
|
onToggleTag
|
|
1583
|
-
}) {
|
|
1608
|
+
}) => {
|
|
1584
1609
|
const [inputValue, setInputValue] = useState("");
|
|
1585
1610
|
const selectedIds = useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);
|
|
1586
1611
|
const options = useMemo(
|
|
1587
|
-
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),
|
|
1612
|
+
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label, alternate_title: tag.alternate_title })),
|
|
1588
1613
|
[possibleTags]
|
|
1589
1614
|
);
|
|
1590
|
-
return /* @__PURE__ */
|
|
1615
|
+
return /* @__PURE__ */ jsxs(Card, { sx: {
|
|
1616
|
+
margin: "1rem",
|
|
1617
|
+
borderRadius: "12px",
|
|
1618
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1619
|
+
overflow: "hidden"
|
|
1620
|
+
}, children: [
|
|
1591
1621
|
/* @__PURE__ */ jsx(
|
|
1592
|
-
|
|
1622
|
+
CardHeader,
|
|
1593
1623
|
{
|
|
1594
|
-
title,
|
|
1595
|
-
|
|
1624
|
+
title: "Player Tags",
|
|
1625
|
+
sx: {
|
|
1596
1626
|
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1597
1627
|
color: "#FFFFFF",
|
|
1598
1628
|
fontSize: "1.5rem",
|
|
1599
|
-
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)"
|
|
1629
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1630
|
+
"& .MuiCardHeader-title": {
|
|
1631
|
+
fontWeight: "bold",
|
|
1632
|
+
fontSize: "1.5rem",
|
|
1633
|
+
textAlign: "center",
|
|
1634
|
+
textTransform: "uppercase",
|
|
1635
|
+
letterSpacing: "0.05em"
|
|
1636
|
+
}
|
|
1600
1637
|
}
|
|
1601
1638
|
}
|
|
1602
1639
|
),
|
|
1603
|
-
/* @__PURE__ */ jsxs(
|
|
1604
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
1605
|
-
|
|
1640
|
+
/* @__PURE__ */ jsxs(CardContent, { className: "p-6", children: [
|
|
1641
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-2 mb-4", children: selectedTags.map((tag) => /* @__PURE__ */ jsx(
|
|
1642
|
+
Chip,
|
|
1606
1643
|
{
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
background: tag.color || "#bfbcbb",
|
|
1610
|
-
color: "white",
|
|
1611
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
1612
|
-
},
|
|
1613
|
-
children: [
|
|
1614
|
-
tag.label,
|
|
1615
|
-
/* @__PURE__ */ jsx(
|
|
1616
|
-
"button",
|
|
1617
|
-
{
|
|
1618
|
-
type: "button",
|
|
1619
|
-
onClick: () => onToggleTag(tag.id),
|
|
1620
|
-
className: "ml-2 text-red-500 bg-white bg-opacity-50 rounded-full outline-black outline-2 font-outlined",
|
|
1621
|
-
children: "\xD7"
|
|
1622
|
-
}
|
|
1623
|
-
)
|
|
1624
|
-
]
|
|
1644
|
+
tag,
|
|
1645
|
+
removeCallback: () => onToggleTag(tag.id)
|
|
1625
1646
|
},
|
|
1626
1647
|
tag.id
|
|
1627
1648
|
)) }),
|
|
1628
|
-
/* @__PURE__ */ jsx(
|
|
1649
|
+
/* @__PURE__ */ jsx(
|
|
1629
1650
|
Autocomplete,
|
|
1630
1651
|
{
|
|
1631
1652
|
options,
|
|
1632
|
-
filterOptions: (availableOptions, state) =>
|
|
1633
|
-
|
|
1634
|
-
|
|
1653
|
+
filterOptions: (availableOptions, state) => {
|
|
1654
|
+
const query = state.inputValue.toLowerCase();
|
|
1655
|
+
return availableOptions.filter(
|
|
1656
|
+
(option) => {
|
|
1657
|
+
var _a;
|
|
1658
|
+
return !selectedIds.includes(option.value) && (option.label.toLowerCase().includes(query) || ((_a = option.alternate_title) == null ? void 0 : _a.some((title) => title.toLowerCase().includes(query))));
|
|
1659
|
+
}
|
|
1660
|
+
).slice(0, 5);
|
|
1661
|
+
},
|
|
1635
1662
|
value: null,
|
|
1636
1663
|
inputValue,
|
|
1637
1664
|
onInputChange: (event, newInputValue) => {
|
|
@@ -1646,13 +1673,20 @@ function TagEditor({
|
|
|
1646
1673
|
setInputValue("");
|
|
1647
1674
|
},
|
|
1648
1675
|
slots: { popper: CustomPopper },
|
|
1649
|
-
renderInput: (params) => /* @__PURE__ */ jsx(
|
|
1676
|
+
renderInput: (params) => /* @__PURE__ */ jsx(
|
|
1677
|
+
TextField,
|
|
1678
|
+
{
|
|
1679
|
+
...params,
|
|
1680
|
+
label: "Select Tags",
|
|
1681
|
+
variant: "outlined"
|
|
1682
|
+
}
|
|
1683
|
+
)
|
|
1650
1684
|
},
|
|
1651
1685
|
selectedIds.join("-")
|
|
1652
|
-
)
|
|
1686
|
+
)
|
|
1653
1687
|
] })
|
|
1654
|
-
] })
|
|
1655
|
-
}
|
|
1688
|
+
] });
|
|
1689
|
+
};
|
|
1656
1690
|
var CustomPopper = (props) => {
|
|
1657
1691
|
return /* @__PURE__ */ jsx(
|
|
1658
1692
|
Popper,
|
|
@@ -1661,27 +1695,84 @@ var CustomPopper = (props) => {
|
|
|
1661
1695
|
modifiers: [
|
|
1662
1696
|
{
|
|
1663
1697
|
name: "preventOverflow",
|
|
1664
|
-
options: {
|
|
1698
|
+
options: {
|
|
1699
|
+
boundary: "viewport"
|
|
1700
|
+
}
|
|
1665
1701
|
},
|
|
1666
1702
|
{
|
|
1667
1703
|
name: "offset",
|
|
1668
|
-
options: {
|
|
1704
|
+
options: {
|
|
1705
|
+
offset: [0, -10]
|
|
1706
|
+
}
|
|
1669
1707
|
}
|
|
1670
1708
|
],
|
|
1671
1709
|
placement: "top-start"
|
|
1672
1710
|
}
|
|
1673
1711
|
);
|
|
1674
1712
|
};
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1713
|
+
var PlayerTagsEdit_default = PlayerTagsEdit;
|
|
1714
|
+
function PlayerPageLayout({
|
|
1715
|
+
playerData,
|
|
1716
|
+
tags = [],
|
|
1717
|
+
blurbs = [],
|
|
1718
|
+
isOwner = false,
|
|
1719
|
+
possibleTags = [],
|
|
1720
|
+
onToggleTag = () => {
|
|
1721
|
+
}
|
|
1722
|
+
}) {
|
|
1723
|
+
const theme = useTheme();
|
|
1724
|
+
const isSmallScreen = useMediaQuery(theme.breakpoints.down("lg"));
|
|
1725
|
+
const tagsElement = isOwner ? /* @__PURE__ */ jsx(
|
|
1726
|
+
PlayerTagsEdit_default,
|
|
1678
1727
|
{
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
onToggleTag: props.updatePlayerTags
|
|
1728
|
+
selectedTags: tags,
|
|
1729
|
+
possibleTags,
|
|
1730
|
+
onToggleTag
|
|
1683
1731
|
}
|
|
1684
|
-
);
|
|
1732
|
+
) : /* @__PURE__ */ jsx(PlayerTagsCard_default, { tags });
|
|
1733
|
+
return /* @__PURE__ */ jsx(NoSsr, { children: /* @__PURE__ */ jsx(Box, { sx: { padding: "2rem", marginRight: "auto", marginLeft: "auto" }, justifyContent: "center", children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 3, justifyContent: "center", sx: { marginRight: "auto", marginLeft: "auto" }, children: [
|
|
1734
|
+
!isSmallScreen && /* @__PURE__ */ jsxs(Grid, { size: { xs: 12, lg: 3 }, children: [
|
|
1735
|
+
/* @__PURE__ */ jsx(
|
|
1736
|
+
PlayerDetailsCard_default,
|
|
1737
|
+
{
|
|
1738
|
+
preferredPronouns: playerData.preferredPronouns,
|
|
1739
|
+
age: playerData.age,
|
|
1740
|
+
yearsPlaying: playerData.yearsPlaying,
|
|
1741
|
+
discordUsername: playerData.discordUsername,
|
|
1742
|
+
preferredGames: playerData.preferredGames
|
|
1743
|
+
}
|
|
1744
|
+
),
|
|
1745
|
+
tagsElement
|
|
1746
|
+
] }),
|
|
1747
|
+
/* @__PURE__ */ jsx(Grid, { size: { xs: 12, lg: 6 }, children: /* @__PURE__ */ jsxs(Grid, { container: true, spacing: 3, children: [
|
|
1748
|
+
/* @__PURE__ */ jsx(Grid, { size: { xs: 12, lg: 8 }, children: /* @__PURE__ */ jsx(
|
|
1749
|
+
PlayerDisplayCard_default,
|
|
1750
|
+
{
|
|
1751
|
+
profilePicture: playerData.profilePicture,
|
|
1752
|
+
username: playerData.username,
|
|
1753
|
+
bio: playerData.bio,
|
|
1754
|
+
preferredPronouns: playerData.preferredPronouns
|
|
1755
|
+
}
|
|
1756
|
+
) }),
|
|
1757
|
+
isSmallScreen && /* @__PURE__ */ jsx(Grid, { size: { xs: 12, lg: 3 }, children: /* @__PURE__ */ jsx(
|
|
1758
|
+
PlayerDetailsCard_default,
|
|
1759
|
+
{
|
|
1760
|
+
preferredPronouns: playerData.preferredPronouns,
|
|
1761
|
+
age: playerData.age,
|
|
1762
|
+
yearsPlaying: playerData.yearsPlaying,
|
|
1763
|
+
discordUsername: playerData.discordUsername,
|
|
1764
|
+
preferredGames: playerData.preferredGames
|
|
1765
|
+
}
|
|
1766
|
+
) }),
|
|
1767
|
+
blurbs.map((blurb, index) => /* @__PURE__ */ jsx(Grid, { size: { xs: 12, lg: 8 }, children: /* @__PURE__ */ jsx(
|
|
1768
|
+
PlayerPromptCard_default,
|
|
1769
|
+
{
|
|
1770
|
+
title: blurb.title,
|
|
1771
|
+
description: blurb.description
|
|
1772
|
+
}
|
|
1773
|
+
) }, index))
|
|
1774
|
+
] }) })
|
|
1775
|
+
] }) }) });
|
|
1685
1776
|
}
|
|
1686
1777
|
var SORT_OPTIONS = [
|
|
1687
1778
|
{ id: "relevance", label: "Relevance" },
|
|
@@ -1840,7 +1931,7 @@ var TagsFilter = ({
|
|
|
1840
1931
|
});
|
|
1841
1932
|
},
|
|
1842
1933
|
slots: { popper: CustomPopper2 },
|
|
1843
|
-
renderInput: (params) => /* @__PURE__ */ jsx(
|
|
1934
|
+
renderInput: (params) => /* @__PURE__ */ jsx(TextField4, { ...params, label: `Select ${label}` })
|
|
1844
1935
|
},
|
|
1845
1936
|
`${category}-${selectedTags.join("-")}`
|
|
1846
1937
|
)
|
|
@@ -2010,8 +2101,8 @@ function SearchPageLayout({
|
|
|
2010
2101
|
}
|
|
2011
2102
|
}
|
|
2012
2103
|
) }),
|
|
2013
|
-
/* @__PURE__ */ jsxs(
|
|
2014
|
-
/* @__PURE__ */ jsx(
|
|
2104
|
+
/* @__PURE__ */ jsxs(Grid8, { container: true, spacing: 2, children: [
|
|
2105
|
+
/* @__PURE__ */ jsx(Grid8, { size: { xs: 12, md: 3 }, children: /* @__PURE__ */ jsxs(Card10, { sx: { marginBottom: isMobile ? 2 : 0 }, children: [
|
|
2015
2106
|
/* @__PURE__ */ jsx(
|
|
2016
2107
|
CardHeader4,
|
|
2017
2108
|
{
|
|
@@ -2034,7 +2125,7 @@ function SearchPageLayout({
|
|
|
2034
2125
|
}
|
|
2035
2126
|
) })
|
|
2036
2127
|
] }) }),
|
|
2037
|
-
/* @__PURE__ */ jsx(
|
|
2128
|
+
/* @__PURE__ */ jsx(Grid8, { size: { xs: 12, md: 9 }, children: /* @__PURE__ */ jsxs(Card10, { children: [
|
|
2038
2129
|
/* @__PURE__ */ jsx(
|
|
2039
2130
|
CardHeader4,
|
|
2040
2131
|
{
|
|
@@ -2152,14 +2243,14 @@ var PlayerHighlightsCard = function(props) {
|
|
|
2152
2243
|
removeFromTable
|
|
2153
2244
|
} = props;
|
|
2154
2245
|
return /* @__PURE__ */ jsx(Card, { elevation: 3, sx: { backgroundColor: canEdit ? "#fffbea" : "#f5f9fa", marginBottom: "6px" }, children: /* @__PURE__ */ jsxs(CardContent, { children: [
|
|
2155
|
-
/* @__PURE__ */ jsxs(
|
|
2156
|
-
/* @__PURE__ */ jsxs(
|
|
2157
|
-
/* @__PURE__ */ jsx(
|
|
2158
|
-
/* @__PURE__ */ jsx(
|
|
2246
|
+
/* @__PURE__ */ jsxs(Grid8, { container: true, spacing: 2, direction: "column", children: [
|
|
2247
|
+
/* @__PURE__ */ jsxs(Grid8, { container: true, direction: "row", children: [
|
|
2248
|
+
/* @__PURE__ */ jsx(Grid8, { children: /* @__PURE__ */ jsx(Image2, { alt: player.username + "'s profile pic", height: 64, src: player.miniPic || "", width: 64 }) }),
|
|
2249
|
+
/* @__PURE__ */ jsx(Grid8, { children: /* @__PURE__ */ jsx(Typography, { variant: "h5", children: player.username }) })
|
|
2159
2250
|
] }),
|
|
2160
|
-
/* @__PURE__ */ jsx(
|
|
2251
|
+
/* @__PURE__ */ jsx(Grid8, { children: renderTagsFromIds(player.tags, allTags) })
|
|
2161
2252
|
] }),
|
|
2162
|
-
canEdit && /* @__PURE__ */ jsxs(
|
|
2253
|
+
canEdit && /* @__PURE__ */ jsxs(Grid8, { children: [
|
|
2163
2254
|
/* @__PURE__ */ jsx(Button7, { onClick: () => removeFromTable(player), children: isWaitList ? /* @__PURE__ */ jsx("p", { children: "Deny Player" }) : /* @__PURE__ */ jsx("p", { children: "Remove Player" }) }),
|
|
2164
2255
|
canChangeDungeonMaster && /* @__PURE__ */ jsx(Button7, { onClick: () => {
|
|
2165
2256
|
handleAssignToDungeonMaster(player);
|
|
@@ -2171,11 +2262,11 @@ var PlayerHighlightsCard = function(props) {
|
|
|
2171
2262
|
var DMHighlightsCard = function({ canEdit, player, allTags }) {
|
|
2172
2263
|
return /* @__PURE__ */ jsxs(Card, { elevation: 3, sx: { backgroundColor: "#f5f9fa", marginBottom: "6px" }, children: [
|
|
2173
2264
|
/* @__PURE__ */ jsx(CardHeader, { slotProps: { title: { variant: "h4" } }, title: "Game Master" }),
|
|
2174
|
-
/* @__PURE__ */ jsx(CardContent, { sx: { backgroundColor: canEdit ? "#fffbea" : "inherit" }, children: /* @__PURE__ */ jsxs(
|
|
2175
|
-
/* @__PURE__ */ jsx(
|
|
2176
|
-
/* @__PURE__ */ jsxs(
|
|
2177
|
-
/* @__PURE__ */ jsx(
|
|
2178
|
-
/* @__PURE__ */ jsx(
|
|
2265
|
+
/* @__PURE__ */ jsx(CardContent, { sx: { backgroundColor: canEdit ? "#fffbea" : "inherit" }, children: /* @__PURE__ */ jsxs(Grid8, { container: true, spacing: 2, direction: "column", children: [
|
|
2266
|
+
/* @__PURE__ */ jsx(Grid8, { children: /* @__PURE__ */ jsx(Typography, { variant: "h5", children: player.username }) }),
|
|
2267
|
+
/* @__PURE__ */ jsxs(Grid8, { container: true, direction: "row", children: [
|
|
2268
|
+
/* @__PURE__ */ jsx(Grid8, { children: /* @__PURE__ */ jsx(Image2, { alt: player.username + "'s profile pic", height: 120, src: player.imageUrl ? player.imageUrl : "", width: 256 }) }),
|
|
2269
|
+
/* @__PURE__ */ jsx(Grid8, { children: renderTagsFromIds(player.tags, allTags) }),
|
|
2179
2270
|
/* @__PURE__ */ jsx(Typography, { children: player.description })
|
|
2180
2271
|
] })
|
|
2181
2272
|
] }) })
|
|
@@ -2329,6 +2420,87 @@ var NextGameCountdown = ({ nextGameTime }) => {
|
|
|
2329
2420
|
timeLeft
|
|
2330
2421
|
] });
|
|
2331
2422
|
};
|
|
2423
|
+
function TagEditor({
|
|
2424
|
+
title = "Tags",
|
|
2425
|
+
selectedTags,
|
|
2426
|
+
possibleTags,
|
|
2427
|
+
onToggleTag
|
|
2428
|
+
}) {
|
|
2429
|
+
const [inputValue, setInputValue] = useState("");
|
|
2430
|
+
const selectedIds = useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);
|
|
2431
|
+
const options = useMemo(
|
|
2432
|
+
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),
|
|
2433
|
+
[possibleTags]
|
|
2434
|
+
);
|
|
2435
|
+
return /* @__PURE__ */ jsx(Grid8, { container: true, children: /* @__PURE__ */ jsx(Grid8, { size: { xs: 12 }, children: /* @__PURE__ */ jsxs(Card10, { children: [
|
|
2436
|
+
/* @__PURE__ */ jsx(
|
|
2437
|
+
CardHeader4,
|
|
2438
|
+
{
|
|
2439
|
+
title,
|
|
2440
|
+
style: {
|
|
2441
|
+
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
2442
|
+
color: "#FFFFFF",
|
|
2443
|
+
fontSize: "1.5rem",
|
|
2444
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)"
|
|
2445
|
+
}
|
|
2446
|
+
}
|
|
2447
|
+
),
|
|
2448
|
+
/* @__PURE__ */ jsxs(CardContent10, { children: [
|
|
2449
|
+
/* @__PURE__ */ jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: selectedTags.map((tag) => /* @__PURE__ */ jsx(
|
|
2450
|
+
Chip,
|
|
2451
|
+
{
|
|
2452
|
+
tag,
|
|
2453
|
+
removeCallback: () => onToggleTag(tag.id)
|
|
2454
|
+
},
|
|
2455
|
+
tag.id
|
|
2456
|
+
)) }),
|
|
2457
|
+
/* @__PURE__ */ jsx(Grid8, { container: true, spacing: 3, children: /* @__PURE__ */ jsx(Grid8, { sx: { marginTop: 3, width: "100%" }, children: /* @__PURE__ */ jsx(
|
|
2458
|
+
Autocomplete,
|
|
2459
|
+
{
|
|
2460
|
+
options,
|
|
2461
|
+
filterOptions: (availableOptions, state) => availableOptions.filter(
|
|
2462
|
+
(option) => !selectedIds.includes(option.value) && option.label.toLowerCase().includes(state.inputValue.toLowerCase())
|
|
2463
|
+
).slice(0, 3),
|
|
2464
|
+
value: null,
|
|
2465
|
+
inputValue,
|
|
2466
|
+
onInputChange: (event, newInputValue) => {
|
|
2467
|
+
if (event && event.type === "change") {
|
|
2468
|
+
setInputValue(newInputValue);
|
|
2469
|
+
}
|
|
2470
|
+
},
|
|
2471
|
+
onChange: (event, newValue) => {
|
|
2472
|
+
if (newValue) {
|
|
2473
|
+
onToggleTag(newValue.value);
|
|
2474
|
+
}
|
|
2475
|
+
setInputValue("");
|
|
2476
|
+
},
|
|
2477
|
+
slots: { popper: CustomPopper3 },
|
|
2478
|
+
renderInput: (params) => /* @__PURE__ */ jsx(TextField4, { ...params, label: "Select Tags" })
|
|
2479
|
+
},
|
|
2480
|
+
selectedIds.join("-")
|
|
2481
|
+
) }) })
|
|
2482
|
+
] })
|
|
2483
|
+
] }) }) });
|
|
2484
|
+
}
|
|
2485
|
+
var CustomPopper3 = (props) => {
|
|
2486
|
+
return /* @__PURE__ */ jsx(
|
|
2487
|
+
Popper,
|
|
2488
|
+
{
|
|
2489
|
+
...props,
|
|
2490
|
+
modifiers: [
|
|
2491
|
+
{
|
|
2492
|
+
name: "preventOverflow",
|
|
2493
|
+
options: { boundary: "viewport" }
|
|
2494
|
+
},
|
|
2495
|
+
{
|
|
2496
|
+
name: "offset",
|
|
2497
|
+
options: { offset: [0, -10] }
|
|
2498
|
+
}
|
|
2499
|
+
],
|
|
2500
|
+
placement: "top-start"
|
|
2501
|
+
}
|
|
2502
|
+
);
|
|
2503
|
+
};
|
|
2332
2504
|
function TablePageLayout(props) {
|
|
2333
2505
|
var _a;
|
|
2334
2506
|
const { allTags, dungeonMaster, onDeleteTable, onJoinWaitlist, onLeaveTable, onSaveDraft, players, table, tableStatus, waitlistPlayers } = props;
|
|
@@ -2399,9 +2571,9 @@ function TablePageLayout(props) {
|
|
|
2399
2571
|
p: 2,
|
|
2400
2572
|
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)"
|
|
2401
2573
|
},
|
|
2402
|
-
children: /* @__PURE__ */ jsxs(
|
|
2574
|
+
children: /* @__PURE__ */ jsxs(Grid8, { container: true, direction: "column", children: [
|
|
2403
2575
|
/* @__PURE__ */ jsxs(
|
|
2404
|
-
|
|
2576
|
+
Grid8,
|
|
2405
2577
|
{
|
|
2406
2578
|
container: true,
|
|
2407
2579
|
direction: "column",
|
|
@@ -2446,7 +2618,7 @@ function TablePageLayout(props) {
|
|
|
2446
2618
|
value: currentShortDescription
|
|
2447
2619
|
}
|
|
2448
2620
|
) : /* @__PURE__ */ jsx(Typography, { sx: { color: "white", opacity: 0.95 }, children: currentShortDescription }),
|
|
2449
|
-
/* @__PURE__ */ jsx(
|
|
2621
|
+
/* @__PURE__ */ jsx(Grid8, { container: true, children: isTableInEditMode ? renderEditableTags(currentTags, allTags, handleToggleTag) : renderTags(currentTagIds, allTags) }),
|
|
2450
2622
|
/* @__PURE__ */ jsx(
|
|
2451
2623
|
TableActionsBar,
|
|
2452
2624
|
{
|
|
@@ -2466,8 +2638,8 @@ function TablePageLayout(props) {
|
|
|
2466
2638
|
]
|
|
2467
2639
|
}
|
|
2468
2640
|
),
|
|
2469
|
-
/* @__PURE__ */ jsxs(
|
|
2470
|
-
/* @__PURE__ */ jsx(
|
|
2641
|
+
/* @__PURE__ */ jsxs(Grid8, { container: true, spacing: 2, sx: { mt: 2 }, children: [
|
|
2642
|
+
/* @__PURE__ */ jsx(Grid8, { size: { xs: 12, md: 8 }, children: /* @__PURE__ */ jsx(Card, { sx: { height: "100%" }, children: /* @__PURE__ */ jsx(CardContent, { children: isTableInEditMode ? /* @__PURE__ */ jsx(
|
|
2471
2643
|
AutoResizingTextarea_default,
|
|
2472
2644
|
{
|
|
2473
2645
|
isInEditMode: isTableInEditMode,
|
|
@@ -2476,7 +2648,7 @@ function TablePageLayout(props) {
|
|
|
2476
2648
|
value: currentDescription
|
|
2477
2649
|
}
|
|
2478
2650
|
) : /* @__PURE__ */ jsx(Typography, { sx: { whiteSpace: "pre-wrap" }, children: currentDescription }) }) }) }),
|
|
2479
|
-
/* @__PURE__ */ jsxs(
|
|
2651
|
+
/* @__PURE__ */ jsxs(Grid8, { size: { xs: 12, md: 4 }, children: [
|
|
2480
2652
|
/* @__PURE__ */ jsx(DMHighlightsCard, { canEdit: isTableInEditMode, player: currentDungeonMaster, allTags }),
|
|
2481
2653
|
/* @__PURE__ */ jsxs(Card, { sx: { height: "100%" }, children: [
|
|
2482
2654
|
/* @__PURE__ */ jsx(CardHeader, { slotProps: { title: { variant: "h4" } }, title: "Players: " }),
|
|
@@ -2503,13 +2675,13 @@ var renderTags = function(tags, allTags) {
|
|
|
2503
2675
|
if (!tags || !allTags) {
|
|
2504
2676
|
return /* @__PURE__ */ jsx(Fragment, {});
|
|
2505
2677
|
}
|
|
2506
|
-
return /* @__PURE__ */ jsx(
|
|
2678
|
+
return /* @__PURE__ */ jsx(Grid8, { container: true, spacing: 1, sx: { pb: 1.5 }, children: tags.map((tagId) => {
|
|
2507
2679
|
const tag = allTags.find((potentialTag) => tagId === potentialTag.id);
|
|
2508
2680
|
return tag ? generateTagsDisplay(tag) : /* @__PURE__ */ jsx(Fragment, {});
|
|
2509
2681
|
}) });
|
|
2510
2682
|
};
|
|
2511
2683
|
var renderEditableTags = function(selectedTags, allTags, onToggleTag) {
|
|
2512
|
-
return /* @__PURE__ */ jsx(
|
|
2684
|
+
return /* @__PURE__ */ jsx(Grid8, { size: { xs: 12 }, sx: { pb: 1.5 }, children: /* @__PURE__ */ jsx(
|
|
2513
2685
|
TagEditor,
|
|
2514
2686
|
{
|
|
2515
2687
|
title: "Table Tags",
|
|
@@ -2524,6 +2696,6 @@ var renderEditableTags = function(selectedTags, allTags, onToggleTag) {
|
|
|
2524
2696
|
};
|
|
2525
2697
|
var TablePageLayout_default = TablePageLayout;
|
|
2526
2698
|
|
|
2527
|
-
export { AutoResizingTextarea_default as AutoResizingTextarea, BaseSearchResultCard_default as BaseSearchResultCard, CANDIDATE_TIMEZONES, DMHighlightsCard, EventBanner, EventBannerEdit, EventBasicInfo, EventBasicInfoEdit, EventEditProvider, EventPageLayout, EventResultCard_default as EventResultCard, EventTablesCard_default as EventTablesCard, FiltersContainer_default as FiltersContainer, GameTableProvider, ModalContext, ModalProvider_default as ModalProvider, NextGameCountdown, PlayerDetailsCard_default as PlayerDetailsCard, PlayerDisplayCard_default as PlayerDisplayCard, PlayerHighlightsCard, PlayerPromptCard_default as PlayerPromptCard, PlayerResultCard_default as PlayerResultCard, PlayerTagsCard, PlayerTagsEdit, PlayersScrollableList_default as PlayersScrollableList, ResultsContainer_default as ResultsContainer, ScrollableResultsList_default as ScrollableResultsList, SearchPageLayout, SearchResultCard_default as SearchResultCard, SortOptions_default as SortOptions, TableActionsBar, TablePageLayout_default as TablePageLayout, TableResultCard_default as TableResultCard, TablesScrollableList_default as TablesScrollableList, TagEditor, TagsFilter_default as TagsFilter, TypeFilter_default as TypeFilter, generateTagsDisplay, renderTagsFromIds, useEventEdit, useGameTableContext, useModal };
|
|
2699
|
+
export { AutoResizingTextarea_default as AutoResizingTextarea, BaseSearchResultCard_default as BaseSearchResultCard, CANDIDATE_TIMEZONES, Chip, DMHighlightsCard, EventBanner, EventBannerEdit, EventBasicInfo, EventBasicInfoEdit, EventEditProvider, EventPageLayout, EventResultCard_default as EventResultCard, EventTablesCard_default as EventTablesCard, FiltersContainer_default as FiltersContainer, GameTableProvider, ModalContext, ModalProvider_default as ModalProvider, NextGameCountdown, PlayerDetailsCard_default as PlayerDetailsCard, PlayerDisplayCard_default as PlayerDisplayCard, PlayerHighlightsCard, PlayerPageLayout, PlayerPromptCard_default as PlayerPromptCard, PlayerResultCard_default as PlayerResultCard, PlayerTagsCard_default as PlayerTagsCard, PlayerTagsEdit_default as PlayerTagsEdit, PlayersScrollableList_default as PlayersScrollableList, ResultsContainer_default as ResultsContainer, ScrollableResultsList_default as ScrollableResultsList, SearchPageLayout, SearchResultCard_default as SearchResultCard, SortOptions_default as SortOptions, TableActionsBar, TablePageLayout_default as TablePageLayout, TableResultCard_default as TableResultCard, TablesScrollableList_default as TablesScrollableList, TagEditor, TagsFilter_default as TagsFilter, TypeFilter_default as TypeFilter, generateTagsDisplay, renderTagsFromIds, useEventEdit, useGameTableContext, useModal };
|
|
2528
2700
|
//# sourceMappingURL=index.mjs.map
|
|
2529
2701
|
//# sourceMappingURL=index.mjs.map
|