@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.cjs
CHANGED
|
@@ -11,7 +11,7 @@ var ColorizeIcon = require('@mui/icons-material/Colorize');
|
|
|
11
11
|
var CancelIcon = require('@mui/icons-material/Cancel');
|
|
12
12
|
var CheckCircleIcon = require('@mui/icons-material/CheckCircle');
|
|
13
13
|
var Box2 = require('@mui/material/Box');
|
|
14
|
-
var
|
|
14
|
+
var Grid8 = require('@mui/material/Grid');
|
|
15
15
|
var Card10 = require('@mui/material/Card');
|
|
16
16
|
var CardContent10 = require('@mui/material/CardContent');
|
|
17
17
|
var CardHeader4 = require('@mui/material/CardHeader');
|
|
@@ -23,12 +23,12 @@ var LocationOnIcon = require('@mui/icons-material/LocationOn');
|
|
|
23
23
|
var EventIcon = require('@mui/icons-material/Event');
|
|
24
24
|
var Autocomplete = require('@mui/material/Autocomplete');
|
|
25
25
|
var Popper = require('@mui/material/Popper');
|
|
26
|
-
var TextField3 = require('@mui/material/TextField');
|
|
27
26
|
var Typography10 = require('@mui/material/Typography');
|
|
28
27
|
var FormControl2 = require('@mui/material/FormControl');
|
|
29
28
|
var RadioGroup = require('@mui/material/RadioGroup');
|
|
30
29
|
var FormControlLabel = require('@mui/material/FormControlLabel');
|
|
31
30
|
var Radio = require('@mui/material/Radio');
|
|
31
|
+
var TextField4 = require('@mui/material/TextField');
|
|
32
32
|
var FormGroup = require('@mui/material/FormGroup');
|
|
33
33
|
var Checkbox = require('@mui/material/Checkbox');
|
|
34
34
|
var Button7 = require('@mui/material/Button');
|
|
@@ -47,7 +47,7 @@ var ColorizeIcon__default = /*#__PURE__*/_interopDefault(ColorizeIcon);
|
|
|
47
47
|
var CancelIcon__default = /*#__PURE__*/_interopDefault(CancelIcon);
|
|
48
48
|
var CheckCircleIcon__default = /*#__PURE__*/_interopDefault(CheckCircleIcon);
|
|
49
49
|
var Box2__default = /*#__PURE__*/_interopDefault(Box2);
|
|
50
|
-
var
|
|
50
|
+
var Grid8__default = /*#__PURE__*/_interopDefault(Grid8);
|
|
51
51
|
var Card10__default = /*#__PURE__*/_interopDefault(Card10);
|
|
52
52
|
var CardContent10__default = /*#__PURE__*/_interopDefault(CardContent10);
|
|
53
53
|
var CardHeader4__default = /*#__PURE__*/_interopDefault(CardHeader4);
|
|
@@ -59,12 +59,12 @@ var LocationOnIcon__default = /*#__PURE__*/_interopDefault(LocationOnIcon);
|
|
|
59
59
|
var EventIcon__default = /*#__PURE__*/_interopDefault(EventIcon);
|
|
60
60
|
var Autocomplete__default = /*#__PURE__*/_interopDefault(Autocomplete);
|
|
61
61
|
var Popper__default = /*#__PURE__*/_interopDefault(Popper);
|
|
62
|
-
var TextField3__default = /*#__PURE__*/_interopDefault(TextField3);
|
|
63
62
|
var Typography10__default = /*#__PURE__*/_interopDefault(Typography10);
|
|
64
63
|
var FormControl2__default = /*#__PURE__*/_interopDefault(FormControl2);
|
|
65
64
|
var RadioGroup__default = /*#__PURE__*/_interopDefault(RadioGroup);
|
|
66
65
|
var FormControlLabel__default = /*#__PURE__*/_interopDefault(FormControlLabel);
|
|
67
66
|
var Radio__default = /*#__PURE__*/_interopDefault(Radio);
|
|
67
|
+
var TextField4__default = /*#__PURE__*/_interopDefault(TextField4);
|
|
68
68
|
var FormGroup__default = /*#__PURE__*/_interopDefault(FormGroup);
|
|
69
69
|
var Checkbox__default = /*#__PURE__*/_interopDefault(Checkbox);
|
|
70
70
|
var Button7__default = /*#__PURE__*/_interopDefault(Button7);
|
|
@@ -125,23 +125,40 @@ function useEventEdit() {
|
|
|
125
125
|
}
|
|
126
126
|
return context;
|
|
127
127
|
}
|
|
128
|
-
function
|
|
129
|
-
|
|
128
|
+
function Chip({ tag, removeCallback }) {
|
|
129
|
+
var _a;
|
|
130
|
+
const color = (_a = tag.color) != null ? _a : "#bfbcbb";
|
|
131
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
130
132
|
"span",
|
|
131
133
|
{
|
|
132
|
-
className: "inline-block text-sm px-3 py-1 rounded-full
|
|
134
|
+
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",
|
|
133
135
|
style: {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
color: "white",
|
|
139
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
136
|
+
borderColor: `color-mix(in srgb, ${color}, black 50%)`,
|
|
137
|
+
background: `linear-gradient(160deg, color-mix(in srgb, ${color}, white 10%) 0%, color-mix(in srgb, ${color}, black 60%) 100%)`,
|
|
138
|
+
textShadow: "black 1.5px 1px 1.5px",
|
|
139
|
+
filter: `drop-shadow(2px 2px 1.5px color-mix(in srgb, ${color}, black 80%))`
|
|
140
140
|
},
|
|
141
|
-
children:
|
|
141
|
+
children: [
|
|
142
|
+
tag.label,
|
|
143
|
+
removeCallback && /* @__PURE__ */ jsxRuntime.jsx(
|
|
144
|
+
"button",
|
|
145
|
+
{
|
|
146
|
+
type: "button",
|
|
147
|
+
onClick: () => removeCallback(tag.id),
|
|
148
|
+
className: "ml-2 text-white hover:text-red-700 focus:outline-none pl-0.5 pr-1 cursor-pointer hover:bg-white rounded-full",
|
|
149
|
+
style: {
|
|
150
|
+
textShadow: "black 1px 1px 1px"
|
|
151
|
+
},
|
|
152
|
+
children: "X"
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
]
|
|
142
156
|
},
|
|
143
157
|
tag.id
|
|
144
|
-
);
|
|
158
|
+
) });
|
|
159
|
+
}
|
|
160
|
+
function generateTagsDisplay(tag) {
|
|
161
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Chip, { tag }, tag.id);
|
|
145
162
|
}
|
|
146
163
|
function renderTagsFromIds(ids, legalTags) {
|
|
147
164
|
if (!ids || !legalTags || legalTags.length === 0) {
|
|
@@ -499,7 +516,7 @@ function EventBasicInfo(props) {
|
|
|
499
516
|
);
|
|
500
517
|
}
|
|
501
518
|
function EventBasicInfoView({ description, locationId, startingDate, endingDate, timeInfo, timezone, isOwner, onEdit }) {
|
|
502
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
519
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { sx: { position: "relative" }, children: /* @__PURE__ */ jsxRuntime.jsx(material.Card, { style: {
|
|
503
520
|
boxShadow: "0px 4px 10px rgba(0, 0, 0, 0.1)",
|
|
504
521
|
background: "linear-gradient(135deg, rgba(225, 225, 225, 1), rgba(250, 250, 250, 1))"
|
|
505
522
|
}, children: /* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { children: [
|
|
@@ -783,7 +800,7 @@ function EventBannerView({
|
|
|
783
800
|
}) {
|
|
784
801
|
const backgroundColor = bannerColor || "linear-gradient(135deg, rgba(25,118,210,0.8), rgba(25,118,210,1))";
|
|
785
802
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
786
|
-
|
|
803
|
+
Grid8__default.default,
|
|
787
804
|
{
|
|
788
805
|
sx: {
|
|
789
806
|
background: backgroundColor,
|
|
@@ -791,7 +808,7 @@ function EventBannerView({
|
|
|
791
808
|
position: "relative"
|
|
792
809
|
},
|
|
793
810
|
children: [
|
|
794
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
811
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { children: [
|
|
795
812
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
796
813
|
material.Box,
|
|
797
814
|
{
|
|
@@ -850,7 +867,7 @@ function EventBannerView({
|
|
|
850
867
|
}
|
|
851
868
|
),
|
|
852
869
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
853
|
-
|
|
870
|
+
Grid8__default.default,
|
|
854
871
|
{
|
|
855
872
|
display: "flex",
|
|
856
873
|
justifyContent: "center",
|
|
@@ -1249,27 +1266,28 @@ function EventPageLayout({
|
|
|
1249
1266
|
tables,
|
|
1250
1267
|
allTags
|
|
1251
1268
|
}) {
|
|
1252
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1253
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1269
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, flexDirection: "column", children: /* @__PURE__ */ jsxRuntime.jsxs(EventEditProvider, { initialEvent: mergedEvent, value: { isOwner, updateEvent, updateImages }, children: [
|
|
1270
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1254
1271
|
EventBanner,
|
|
1255
1272
|
{
|
|
1256
1273
|
attendees,
|
|
1257
1274
|
numGames
|
|
1258
1275
|
}
|
|
1259
1276
|
) }),
|
|
1260
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1261
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1277
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, flexDirection: "row", spacing: 3, size: { xs: 12, md: 12 }, children: [
|
|
1278
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 4 }, spacing: 3, padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1262
1279
|
EventBasicInfo,
|
|
1263
1280
|
{
|
|
1264
1281
|
locationId: mergedEvent.location || "0"
|
|
1265
1282
|
}
|
|
1266
1283
|
) }),
|
|
1267
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1284
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 8 }, spacing: 3, padding: 3, children: /* @__PURE__ */ jsxRuntime.jsx(EventTablesCard_default, { tables, tags: allTags }) })
|
|
1268
1285
|
] }),
|
|
1269
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1286
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, {})
|
|
1270
1287
|
] }) });
|
|
1271
1288
|
}
|
|
1272
|
-
var
|
|
1289
|
+
var PlayerDetailsCard = ({
|
|
1290
|
+
preferredPronouns,
|
|
1273
1291
|
age,
|
|
1274
1292
|
yearsPlaying,
|
|
1275
1293
|
discordUsername,
|
|
@@ -1319,6 +1337,23 @@ var PlayerDetails = ({
|
|
|
1319
1337
|
}
|
|
1320
1338
|
),
|
|
1321
1339
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
|
|
1340
|
+
preferredPronouns && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1341
|
+
material.Typography,
|
|
1342
|
+
{
|
|
1343
|
+
variant: "body2",
|
|
1344
|
+
className: "text-sm font-medium",
|
|
1345
|
+
sx: {
|
|
1346
|
+
color: "#FFFFFF",
|
|
1347
|
+
textShadow: "0px 2px 6px rgba(0, 0, 0, 0.5)",
|
|
1348
|
+
fontWeight: "bold"
|
|
1349
|
+
},
|
|
1350
|
+
children: [
|
|
1351
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-extrabold text-cyan-300", children: "Preferred Pronouns:" }),
|
|
1352
|
+
" ",
|
|
1353
|
+
preferredPronouns
|
|
1354
|
+
]
|
|
1355
|
+
}
|
|
1356
|
+
),
|
|
1322
1357
|
age !== null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1323
1358
|
material.Typography,
|
|
1324
1359
|
{
|
|
@@ -1370,7 +1405,7 @@ var PlayerDetails = ({
|
|
|
1370
1405
|
]
|
|
1371
1406
|
}
|
|
1372
1407
|
),
|
|
1373
|
-
preferredGames &&
|
|
1408
|
+
preferredGames && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1374
1409
|
material.Typography,
|
|
1375
1410
|
{
|
|
1376
1411
|
variant: "body2",
|
|
@@ -1383,7 +1418,7 @@ var PlayerDetails = ({
|
|
|
1383
1418
|
children: [
|
|
1384
1419
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-extrabold text-cyan-300", children: "Preferred Games:" }),
|
|
1385
1420
|
" ",
|
|
1386
|
-
preferredGames.join(", ")
|
|
1421
|
+
Array.isArray(preferredGames) ? preferredGames.join(", ") : preferredGames
|
|
1387
1422
|
]
|
|
1388
1423
|
}
|
|
1389
1424
|
)
|
|
@@ -1406,24 +1441,20 @@ var PlayerDetails = ({
|
|
|
1406
1441
|
}
|
|
1407
1442
|
);
|
|
1408
1443
|
};
|
|
1409
|
-
var PlayerDetailsCard_default =
|
|
1444
|
+
var PlayerDetailsCard_default = PlayerDetailsCard;
|
|
1410
1445
|
|
|
1411
1446
|
// src/data/values.tsx
|
|
1412
1447
|
var ProfilePictureSettings = {
|
|
1413
1448
|
aspectRatio: 4 / 5};
|
|
1414
|
-
var {
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
bio,
|
|
1419
|
-
preferredPronouns
|
|
1420
|
-
}) => {
|
|
1421
|
-
const [imageSrc, setImageSrc] = React7.useState("/man-walking-silhouette-clipart.jpg");
|
|
1449
|
+
var PlayerDisplayCard = ({ profilePicture, username, bio, preferredPronouns }) => {
|
|
1450
|
+
const defaultImg = "/man-walking-silhouette-clipart.jpg";
|
|
1451
|
+
const [imageSrc, setImageSrc] = React7.useState(defaultImg);
|
|
1452
|
+
const { aspectRatio } = ProfilePictureSettings;
|
|
1422
1453
|
React7.useEffect(() => {
|
|
1423
1454
|
async function validateImage() {
|
|
1424
|
-
const newImage = profilePicture ||
|
|
1455
|
+
const newImage = profilePicture || defaultImg;
|
|
1425
1456
|
if (!profilePicture) {
|
|
1426
|
-
setImageSrc(
|
|
1457
|
+
setImageSrc(defaultImg);
|
|
1427
1458
|
return;
|
|
1428
1459
|
}
|
|
1429
1460
|
const img = new Image();
|
|
@@ -1432,7 +1463,7 @@ var PlayerDisplayCard = ({
|
|
|
1432
1463
|
setImageSrc(newImage);
|
|
1433
1464
|
};
|
|
1434
1465
|
img.onerror = () => {
|
|
1435
|
-
setImageSrc(
|
|
1466
|
+
setImageSrc(defaultImg);
|
|
1436
1467
|
};
|
|
1437
1468
|
}
|
|
1438
1469
|
validateImage();
|
|
@@ -1466,7 +1497,7 @@ var PlayerDisplayCard = ({
|
|
|
1466
1497
|
height: "auto",
|
|
1467
1498
|
// Updates to maintain aspect ratio and fill space nicely
|
|
1468
1499
|
width: "100%",
|
|
1469
|
-
objectFit: "
|
|
1500
|
+
objectFit: "cover"
|
|
1470
1501
|
}
|
|
1471
1502
|
}
|
|
1472
1503
|
),
|
|
@@ -1525,151 +1556,147 @@ var PlayerDisplayCard = ({
|
|
|
1525
1556
|
);
|
|
1526
1557
|
};
|
|
1527
1558
|
var PlayerDisplayCard_default = PlayerDisplayCard;
|
|
1528
|
-
var
|
|
1529
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
variant: "h5",
|
|
1551
|
-
className: "font-bold text-lg uppercase text-center tracking-wide mb-4",
|
|
1552
|
-
sx: {
|
|
1553
|
-
color: "#FFFFFF",
|
|
1554
|
-
// Bright white for high visibility
|
|
1555
|
-
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1556
|
-
// Strong text shadow for contrast
|
|
1557
|
-
fontSize: "1.5rem"
|
|
1558
|
-
},
|
|
1559
|
-
children: title
|
|
1560
|
-
}
|
|
1561
|
-
),
|
|
1562
|
-
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1563
|
-
material.Typography,
|
|
1564
|
-
{
|
|
1565
|
-
variant: "body2",
|
|
1566
|
-
className: "text-sm font-medium text-center",
|
|
1567
|
-
sx: {
|
|
1568
|
-
color: "#E3F2FD",
|
|
1569
|
-
// Softer light blue for description
|
|
1570
|
-
textShadow: "0px 2px 4px rgba(0, 0, 0, 0.3)",
|
|
1571
|
-
// Subtle shadow
|
|
1572
|
-
lineHeight: 1.6,
|
|
1573
|
-
marginTop: "1rem"
|
|
1574
|
-
},
|
|
1575
|
-
children: description
|
|
1559
|
+
var PlayerTagsCard = ({ tags = [] }) => {
|
|
1560
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Card, { sx: {
|
|
1561
|
+
margin: "1rem",
|
|
1562
|
+
borderRadius: "12px",
|
|
1563
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1564
|
+
overflow: "hidden"
|
|
1565
|
+
}, className: "transition duration-300 transform hover:scale-105 hover:shadow-2xl", children: [
|
|
1566
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1567
|
+
material.CardHeader,
|
|
1568
|
+
{
|
|
1569
|
+
title: "Player Tags",
|
|
1570
|
+
sx: {
|
|
1571
|
+
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1572
|
+
color: "#FFFFFF",
|
|
1573
|
+
fontSize: "1.5rem",
|
|
1574
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1575
|
+
"& .MuiCardHeader-title": {
|
|
1576
|
+
fontWeight: "bold",
|
|
1577
|
+
fontSize: "1.5rem",
|
|
1578
|
+
textAlign: "center",
|
|
1579
|
+
textTransform: "uppercase",
|
|
1580
|
+
letterSpacing: "0.05em"
|
|
1576
1581
|
}
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1582
|
+
}
|
|
1583
|
+
}
|
|
1584
|
+
),
|
|
1585
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2", children: tags.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(Chip, { tag }, tag.id)) }) })
|
|
1586
|
+
] });
|
|
1581
1587
|
};
|
|
1582
|
-
var
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1588
|
+
var PlayerTagsCard_default = PlayerTagsCard;
|
|
1589
|
+
var PlayerPromptCard = ({ title, description }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1590
|
+
material.Card,
|
|
1591
|
+
{
|
|
1592
|
+
sx: {
|
|
1593
|
+
margin: "1rem",
|
|
1586
1594
|
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1595
|
+
// Gradient color scheme
|
|
1596
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1597
|
+
// Card shadow
|
|
1598
|
+
borderRadius: "12px",
|
|
1599
|
+
// Rounded corners
|
|
1587
1600
|
color: "#FFFFFF",
|
|
1588
|
-
//
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
// Strong shadow for visibility
|
|
1592
|
-
} }),
|
|
1593
|
-
/* @__PURE__ */ jsxRuntime.jsx(CardContent10__default.default, { children: renderLabels(props.PlayerTags) })
|
|
1594
|
-
] }) }) });
|
|
1595
|
-
}
|
|
1596
|
-
var renderLabels = (tags) => {
|
|
1597
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: tags.map((tag) => generateLabel(tag)) });
|
|
1598
|
-
};
|
|
1599
|
-
var generateLabel = (tag) => {
|
|
1600
|
-
let color = "#bfbcbb";
|
|
1601
|
-
if (tag.color) color = tag.color;
|
|
1602
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1603
|
-
"span",
|
|
1604
|
-
{
|
|
1605
|
-
className: "inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined",
|
|
1606
|
-
style: {
|
|
1607
|
-
background: color,
|
|
1608
|
-
color: "white",
|
|
1609
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
1610
|
-
},
|
|
1611
|
-
children: tag.label
|
|
1601
|
+
// Text contrast with the background
|
|
1602
|
+
overflow: "hidden"
|
|
1603
|
+
// Keeps consistent and clean card shape
|
|
1612
1604
|
},
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1605
|
+
className: "transition duration-300 transform hover:scale-105 hover:shadow-2xl",
|
|
1606
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { className: "p-6", children: [
|
|
1607
|
+
title && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1608
|
+
material.Typography,
|
|
1609
|
+
{
|
|
1610
|
+
variant: "h5",
|
|
1611
|
+
className: "font-bold text-lg uppercase text-center tracking-wide mb-4",
|
|
1612
|
+
sx: {
|
|
1613
|
+
color: "#FFFFFF",
|
|
1614
|
+
// Bright white for high visibility
|
|
1615
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1616
|
+
// Strong text shadow for contrast
|
|
1617
|
+
fontSize: "1.5rem"
|
|
1618
|
+
},
|
|
1619
|
+
children: title
|
|
1620
|
+
}
|
|
1621
|
+
),
|
|
1622
|
+
description && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1623
|
+
material.Typography,
|
|
1624
|
+
{
|
|
1625
|
+
variant: "body2",
|
|
1626
|
+
className: "text-sm font-medium text-center",
|
|
1627
|
+
sx: {
|
|
1628
|
+
color: "#E3F2FD",
|
|
1629
|
+
// Softer light blue for description
|
|
1630
|
+
textShadow: "0px 2px 4px rgba(0, 0, 0, 0.3)",
|
|
1631
|
+
// Subtle shadow
|
|
1632
|
+
lineHeight: 1.6,
|
|
1633
|
+
marginTop: "1rem"
|
|
1634
|
+
},
|
|
1635
|
+
children: description
|
|
1636
|
+
}
|
|
1637
|
+
)
|
|
1638
|
+
] })
|
|
1639
|
+
}
|
|
1640
|
+
);
|
|
1641
|
+
var PlayerPromptCard_default = PlayerPromptCard;
|
|
1642
|
+
var PlayerTagsEdit = ({
|
|
1643
|
+
selectedTags = [],
|
|
1644
|
+
possibleTags = [],
|
|
1620
1645
|
onToggleTag
|
|
1621
|
-
}) {
|
|
1646
|
+
}) => {
|
|
1622
1647
|
const [inputValue, setInputValue] = React7.useState("");
|
|
1623
1648
|
const selectedIds = React7.useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);
|
|
1624
1649
|
const options = React7.useMemo(
|
|
1625
|
-
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),
|
|
1650
|
+
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label, alternate_title: tag.alternate_title })),
|
|
1626
1651
|
[possibleTags]
|
|
1627
1652
|
);
|
|
1628
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1653
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(material.Card, { sx: {
|
|
1654
|
+
margin: "1rem",
|
|
1655
|
+
borderRadius: "12px",
|
|
1656
|
+
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)",
|
|
1657
|
+
overflow: "hidden"
|
|
1658
|
+
}, children: [
|
|
1629
1659
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1630
|
-
|
|
1660
|
+
material.CardHeader,
|
|
1631
1661
|
{
|
|
1632
|
-
title,
|
|
1633
|
-
|
|
1662
|
+
title: "Player Tags",
|
|
1663
|
+
sx: {
|
|
1634
1664
|
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
1635
1665
|
color: "#FFFFFF",
|
|
1636
1666
|
fontSize: "1.5rem",
|
|
1637
|
-
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)"
|
|
1667
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)",
|
|
1668
|
+
"& .MuiCardHeader-title": {
|
|
1669
|
+
fontWeight: "bold",
|
|
1670
|
+
fontSize: "1.5rem",
|
|
1671
|
+
textAlign: "center",
|
|
1672
|
+
textTransform: "uppercase",
|
|
1673
|
+
letterSpacing: "0.05em"
|
|
1674
|
+
}
|
|
1638
1675
|
}
|
|
1639
1676
|
}
|
|
1640
1677
|
),
|
|
1641
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1642
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1643
|
-
|
|
1678
|
+
/* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { className: "p-6", children: [
|
|
1679
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap gap-2 mb-4", children: selectedTags.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1680
|
+
Chip,
|
|
1644
1681
|
{
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
background: tag.color || "#bfbcbb",
|
|
1648
|
-
color: "white",
|
|
1649
|
-
textShadow: "black 0.2em 0.2em 0.4em"
|
|
1650
|
-
},
|
|
1651
|
-
children: [
|
|
1652
|
-
tag.label,
|
|
1653
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1654
|
-
"button",
|
|
1655
|
-
{
|
|
1656
|
-
type: "button",
|
|
1657
|
-
onClick: () => onToggleTag(tag.id),
|
|
1658
|
-
className: "ml-2 text-red-500 bg-white bg-opacity-50 rounded-full outline-black outline-2 font-outlined",
|
|
1659
|
-
children: "\xD7"
|
|
1660
|
-
}
|
|
1661
|
-
)
|
|
1662
|
-
]
|
|
1682
|
+
tag,
|
|
1683
|
+
removeCallback: () => onToggleTag(tag.id)
|
|
1663
1684
|
},
|
|
1664
1685
|
tag.id
|
|
1665
1686
|
)) }),
|
|
1666
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1687
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1667
1688
|
Autocomplete__default.default,
|
|
1668
1689
|
{
|
|
1669
1690
|
options,
|
|
1670
|
-
filterOptions: (availableOptions, state) =>
|
|
1671
|
-
|
|
1672
|
-
|
|
1691
|
+
filterOptions: (availableOptions, state) => {
|
|
1692
|
+
const query = state.inputValue.toLowerCase();
|
|
1693
|
+
return availableOptions.filter(
|
|
1694
|
+
(option) => {
|
|
1695
|
+
var _a;
|
|
1696
|
+
return !selectedIds.includes(option.value) && (option.label.toLowerCase().includes(query) || ((_a = option.alternate_title) == null ? void 0 : _a.some((title) => title.toLowerCase().includes(query))));
|
|
1697
|
+
}
|
|
1698
|
+
).slice(0, 5);
|
|
1699
|
+
},
|
|
1673
1700
|
value: null,
|
|
1674
1701
|
inputValue,
|
|
1675
1702
|
onInputChange: (event, newInputValue) => {
|
|
@@ -1684,13 +1711,20 @@ function TagEditor({
|
|
|
1684
1711
|
setInputValue("");
|
|
1685
1712
|
},
|
|
1686
1713
|
slots: { popper: CustomPopper },
|
|
1687
|
-
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1714
|
+
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1715
|
+
material.TextField,
|
|
1716
|
+
{
|
|
1717
|
+
...params,
|
|
1718
|
+
label: "Select Tags",
|
|
1719
|
+
variant: "outlined"
|
|
1720
|
+
}
|
|
1721
|
+
)
|
|
1688
1722
|
},
|
|
1689
1723
|
selectedIds.join("-")
|
|
1690
|
-
)
|
|
1724
|
+
)
|
|
1691
1725
|
] })
|
|
1692
|
-
] })
|
|
1693
|
-
}
|
|
1726
|
+
] });
|
|
1727
|
+
};
|
|
1694
1728
|
var CustomPopper = (props) => {
|
|
1695
1729
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1696
1730
|
Popper__default.default,
|
|
@@ -1699,27 +1733,84 @@ var CustomPopper = (props) => {
|
|
|
1699
1733
|
modifiers: [
|
|
1700
1734
|
{
|
|
1701
1735
|
name: "preventOverflow",
|
|
1702
|
-
options: {
|
|
1736
|
+
options: {
|
|
1737
|
+
boundary: "viewport"
|
|
1738
|
+
}
|
|
1703
1739
|
},
|
|
1704
1740
|
{
|
|
1705
1741
|
name: "offset",
|
|
1706
|
-
options: {
|
|
1742
|
+
options: {
|
|
1743
|
+
offset: [0, -10]
|
|
1744
|
+
}
|
|
1707
1745
|
}
|
|
1708
1746
|
],
|
|
1709
1747
|
placement: "top-start"
|
|
1710
1748
|
}
|
|
1711
1749
|
);
|
|
1712
1750
|
};
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1751
|
+
var PlayerTagsEdit_default = PlayerTagsEdit;
|
|
1752
|
+
function PlayerPageLayout({
|
|
1753
|
+
playerData,
|
|
1754
|
+
tags = [],
|
|
1755
|
+
blurbs = [],
|
|
1756
|
+
isOwner = false,
|
|
1757
|
+
possibleTags = [],
|
|
1758
|
+
onToggleTag = () => {
|
|
1759
|
+
}
|
|
1760
|
+
}) {
|
|
1761
|
+
const theme = material.useTheme();
|
|
1762
|
+
const isSmallScreen = material.useMediaQuery(theme.breakpoints.down("lg"));
|
|
1763
|
+
const tagsElement = isOwner ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1764
|
+
PlayerTagsEdit_default,
|
|
1716
1765
|
{
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
onToggleTag: props.updatePlayerTags
|
|
1766
|
+
selectedTags: tags,
|
|
1767
|
+
possibleTags,
|
|
1768
|
+
onToggleTag
|
|
1721
1769
|
}
|
|
1722
|
-
);
|
|
1770
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(PlayerTagsCard_default, { tags });
|
|
1771
|
+
return /* @__PURE__ */ jsxRuntime.jsx(material.NoSsr, { children: /* @__PURE__ */ jsxRuntime.jsx(material.Box, { sx: { padding: "2rem", marginRight: "auto", marginLeft: "auto" }, justifyContent: "center", children: /* @__PURE__ */ jsxRuntime.jsxs(material.Grid, { container: true, spacing: 3, justifyContent: "center", sx: { marginRight: "auto", marginLeft: "auto" }, children: [
|
|
1772
|
+
!isSmallScreen && /* @__PURE__ */ jsxRuntime.jsxs(material.Grid, { size: { xs: 12, lg: 3 }, children: [
|
|
1773
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1774
|
+
PlayerDetailsCard_default,
|
|
1775
|
+
{
|
|
1776
|
+
preferredPronouns: playerData.preferredPronouns,
|
|
1777
|
+
age: playerData.age,
|
|
1778
|
+
yearsPlaying: playerData.yearsPlaying,
|
|
1779
|
+
discordUsername: playerData.discordUsername,
|
|
1780
|
+
preferredGames: playerData.preferredGames
|
|
1781
|
+
}
|
|
1782
|
+
),
|
|
1783
|
+
tagsElement
|
|
1784
|
+
] }),
|
|
1785
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 6 }, children: /* @__PURE__ */ jsxRuntime.jsxs(material.Grid, { container: true, spacing: 3, children: [
|
|
1786
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1787
|
+
PlayerDisplayCard_default,
|
|
1788
|
+
{
|
|
1789
|
+
profilePicture: playerData.profilePicture,
|
|
1790
|
+
username: playerData.username,
|
|
1791
|
+
bio: playerData.bio,
|
|
1792
|
+
preferredPronouns: playerData.preferredPronouns
|
|
1793
|
+
}
|
|
1794
|
+
) }),
|
|
1795
|
+
isSmallScreen && /* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 3 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1796
|
+
PlayerDetailsCard_default,
|
|
1797
|
+
{
|
|
1798
|
+
preferredPronouns: playerData.preferredPronouns,
|
|
1799
|
+
age: playerData.age,
|
|
1800
|
+
yearsPlaying: playerData.yearsPlaying,
|
|
1801
|
+
discordUsername: playerData.discordUsername,
|
|
1802
|
+
preferredGames: playerData.preferredGames
|
|
1803
|
+
}
|
|
1804
|
+
) }),
|
|
1805
|
+
blurbs.map((blurb, index) => /* @__PURE__ */ jsxRuntime.jsx(material.Grid, { size: { xs: 12, lg: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1806
|
+
PlayerPromptCard_default,
|
|
1807
|
+
{
|
|
1808
|
+
title: blurb.title,
|
|
1809
|
+
description: blurb.description
|
|
1810
|
+
}
|
|
1811
|
+
) }, index))
|
|
1812
|
+
] }) })
|
|
1813
|
+
] }) }) });
|
|
1723
1814
|
}
|
|
1724
1815
|
var SORT_OPTIONS = [
|
|
1725
1816
|
{ id: "relevance", label: "Relevance" },
|
|
@@ -1878,7 +1969,7 @@ var TagsFilter = ({
|
|
|
1878
1969
|
});
|
|
1879
1970
|
},
|
|
1880
1971
|
slots: { popper: CustomPopper2 },
|
|
1881
|
-
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1972
|
+
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(TextField4__default.default, { ...params, label: `Select ${label}` })
|
|
1882
1973
|
},
|
|
1883
1974
|
`${category}-${selectedTags.join("-")}`
|
|
1884
1975
|
)
|
|
@@ -2048,8 +2139,8 @@ function SearchPageLayout({
|
|
|
2048
2139
|
}
|
|
2049
2140
|
}
|
|
2050
2141
|
) }),
|
|
2051
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2052
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2142
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, children: [
|
|
2143
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 3 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { sx: { marginBottom: isMobile ? 2 : 0 }, children: [
|
|
2053
2144
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2054
2145
|
CardHeader4__default.default,
|
|
2055
2146
|
{
|
|
@@ -2072,7 +2163,7 @@ function SearchPageLayout({
|
|
|
2072
2163
|
}
|
|
2073
2164
|
) })
|
|
2074
2165
|
] }) }),
|
|
2075
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2166
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 9 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { children: [
|
|
2076
2167
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2077
2168
|
CardHeader4__default.default,
|
|
2078
2169
|
{
|
|
@@ -2190,14 +2281,14 @@ var PlayerHighlightsCard = function(props) {
|
|
|
2190
2281
|
removeFromTable
|
|
2191
2282
|
} = props;
|
|
2192
2283
|
return /* @__PURE__ */ jsxRuntime.jsx(material.Card, { elevation: 3, sx: { backgroundColor: canEdit ? "#fffbea" : "#f5f9fa", marginBottom: "6px" }, children: /* @__PURE__ */ jsxRuntime.jsxs(material.CardContent, { children: [
|
|
2193
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2194
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2195
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2196
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2284
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, direction: "column", children: [
|
|
2285
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, direction: "row", children: [
|
|
2286
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(Image2__default.default, { alt: player.username + "'s profile pic", height: 64, src: player.miniPic || "", width: 64 }) }),
|
|
2287
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "h5", children: player.username }) })
|
|
2197
2288
|
] }),
|
|
2198
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2289
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: renderTagsFromIds(player.tags, allTags) })
|
|
2199
2290
|
] }),
|
|
2200
|
-
canEdit && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2291
|
+
canEdit && /* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { children: [
|
|
2201
2292
|
/* @__PURE__ */ jsxRuntime.jsx(Button7__default.default, { onClick: () => removeFromTable(player), children: isWaitList ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Deny Player" }) : /* @__PURE__ */ jsxRuntime.jsx("p", { children: "Remove Player" }) }),
|
|
2202
2293
|
canChangeDungeonMaster && /* @__PURE__ */ jsxRuntime.jsx(Button7__default.default, { onClick: () => {
|
|
2203
2294
|
handleAssignToDungeonMaster(player);
|
|
@@ -2209,11 +2300,11 @@ var PlayerHighlightsCard = function(props) {
|
|
|
2209
2300
|
var DMHighlightsCard = function({ canEdit, player, allTags }) {
|
|
2210
2301
|
return /* @__PURE__ */ jsxRuntime.jsxs(material.Card, { elevation: 3, sx: { backgroundColor: "#f5f9fa", marginBottom: "6px" }, children: [
|
|
2211
2302
|
/* @__PURE__ */ jsxRuntime.jsx(material.CardHeader, { slotProps: { title: { variant: "h4" } }, title: "Game Master" }),
|
|
2212
|
-
/* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { sx: { backgroundColor: canEdit ? "#fffbea" : "inherit" }, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2213
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2214
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2215
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2216
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2303
|
+
/* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { sx: { backgroundColor: canEdit ? "#fffbea" : "inherit" }, children: /* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, direction: "column", children: [
|
|
2304
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "h5", children: player.username }) }),
|
|
2305
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, direction: "row", children: [
|
|
2306
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(Image2__default.default, { alt: player.username + "'s profile pic", height: 120, src: player.imageUrl ? player.imageUrl : "", width: 256 }) }),
|
|
2307
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { children: renderTagsFromIds(player.tags, allTags) }),
|
|
2217
2308
|
/* @__PURE__ */ jsxRuntime.jsx(material.Typography, { children: player.description })
|
|
2218
2309
|
] })
|
|
2219
2310
|
] }) })
|
|
@@ -2367,6 +2458,87 @@ var NextGameCountdown = ({ nextGameTime }) => {
|
|
|
2367
2458
|
timeLeft
|
|
2368
2459
|
] });
|
|
2369
2460
|
};
|
|
2461
|
+
function TagEditor({
|
|
2462
|
+
title = "Tags",
|
|
2463
|
+
selectedTags,
|
|
2464
|
+
possibleTags,
|
|
2465
|
+
onToggleTag
|
|
2466
|
+
}) {
|
|
2467
|
+
const [inputValue, setInputValue] = React7.useState("");
|
|
2468
|
+
const selectedIds = React7.useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);
|
|
2469
|
+
const options = React7.useMemo(
|
|
2470
|
+
() => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),
|
|
2471
|
+
[possibleTags]
|
|
2472
|
+
);
|
|
2473
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, children: /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12 }, children: /* @__PURE__ */ jsxRuntime.jsxs(Card10__default.default, { children: [
|
|
2474
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2475
|
+
CardHeader4__default.default,
|
|
2476
|
+
{
|
|
2477
|
+
title,
|
|
2478
|
+
style: {
|
|
2479
|
+
background: "linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))",
|
|
2480
|
+
color: "#FFFFFF",
|
|
2481
|
+
fontSize: "1.5rem",
|
|
2482
|
+
textShadow: "0px 3px 6px rgba(0, 0, 0, 0.5)"
|
|
2483
|
+
}
|
|
2484
|
+
}
|
|
2485
|
+
),
|
|
2486
|
+
/* @__PURE__ */ jsxRuntime.jsxs(CardContent10__default.default, { children: [
|
|
2487
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 flex flex-wrap gap-2", children: selectedTags.map((tag) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2488
|
+
Chip,
|
|
2489
|
+
{
|
|
2490
|
+
tag,
|
|
2491
|
+
removeCallback: () => onToggleTag(tag.id)
|
|
2492
|
+
},
|
|
2493
|
+
tag.id
|
|
2494
|
+
)) }),
|
|
2495
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, spacing: 3, children: /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { sx: { marginTop: 3, width: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2496
|
+
Autocomplete__default.default,
|
|
2497
|
+
{
|
|
2498
|
+
options,
|
|
2499
|
+
filterOptions: (availableOptions, state) => availableOptions.filter(
|
|
2500
|
+
(option) => !selectedIds.includes(option.value) && option.label.toLowerCase().includes(state.inputValue.toLowerCase())
|
|
2501
|
+
).slice(0, 3),
|
|
2502
|
+
value: null,
|
|
2503
|
+
inputValue,
|
|
2504
|
+
onInputChange: (event, newInputValue) => {
|
|
2505
|
+
if (event && event.type === "change") {
|
|
2506
|
+
setInputValue(newInputValue);
|
|
2507
|
+
}
|
|
2508
|
+
},
|
|
2509
|
+
onChange: (event, newValue) => {
|
|
2510
|
+
if (newValue) {
|
|
2511
|
+
onToggleTag(newValue.value);
|
|
2512
|
+
}
|
|
2513
|
+
setInputValue("");
|
|
2514
|
+
},
|
|
2515
|
+
slots: { popper: CustomPopper3 },
|
|
2516
|
+
renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(TextField4__default.default, { ...params, label: "Select Tags" })
|
|
2517
|
+
},
|
|
2518
|
+
selectedIds.join("-")
|
|
2519
|
+
) }) })
|
|
2520
|
+
] })
|
|
2521
|
+
] }) }) });
|
|
2522
|
+
}
|
|
2523
|
+
var CustomPopper3 = (props) => {
|
|
2524
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2525
|
+
Popper__default.default,
|
|
2526
|
+
{
|
|
2527
|
+
...props,
|
|
2528
|
+
modifiers: [
|
|
2529
|
+
{
|
|
2530
|
+
name: "preventOverflow",
|
|
2531
|
+
options: { boundary: "viewport" }
|
|
2532
|
+
},
|
|
2533
|
+
{
|
|
2534
|
+
name: "offset",
|
|
2535
|
+
options: { offset: [0, -10] }
|
|
2536
|
+
}
|
|
2537
|
+
],
|
|
2538
|
+
placement: "top-start"
|
|
2539
|
+
}
|
|
2540
|
+
);
|
|
2541
|
+
};
|
|
2370
2542
|
function TablePageLayout(props) {
|
|
2371
2543
|
var _a;
|
|
2372
2544
|
const { allTags, dungeonMaster, onDeleteTable, onJoinWaitlist, onLeaveTable, onSaveDraft, players, table, tableStatus, waitlistPlayers } = props;
|
|
@@ -2437,9 +2609,9 @@ function TablePageLayout(props) {
|
|
|
2437
2609
|
p: 2,
|
|
2438
2610
|
boxShadow: "0px 8px 15px rgba(25, 118, 210, 0.3)"
|
|
2439
2611
|
},
|
|
2440
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
2612
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, direction: "column", children: [
|
|
2441
2613
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2442
|
-
|
|
2614
|
+
Grid8__default.default,
|
|
2443
2615
|
{
|
|
2444
2616
|
container: true,
|
|
2445
2617
|
direction: "column",
|
|
@@ -2484,7 +2656,7 @@ function TablePageLayout(props) {
|
|
|
2484
2656
|
value: currentShortDescription
|
|
2485
2657
|
}
|
|
2486
2658
|
) : /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { color: "white", opacity: 0.95 }, children: currentShortDescription }),
|
|
2487
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2659
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, children: isTableInEditMode ? renderEditableTags(currentTags, allTags, handleToggleTag) : renderTags(currentTagIds, allTags) }),
|
|
2488
2660
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2489
2661
|
TableActionsBar,
|
|
2490
2662
|
{
|
|
@@ -2504,8 +2676,8 @@ function TablePageLayout(props) {
|
|
|
2504
2676
|
]
|
|
2505
2677
|
}
|
|
2506
2678
|
),
|
|
2507
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2508
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
2679
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { container: true, spacing: 2, sx: { mt: 2 }, children: [
|
|
2680
|
+
/* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12, md: 8 }, children: /* @__PURE__ */ jsxRuntime.jsx(material.Card, { sx: { height: "100%" }, children: /* @__PURE__ */ jsxRuntime.jsx(material.CardContent, { children: isTableInEditMode ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
2509
2681
|
AutoResizingTextarea_default,
|
|
2510
2682
|
{
|
|
2511
2683
|
isInEditMode: isTableInEditMode,
|
|
@@ -2514,7 +2686,7 @@ function TablePageLayout(props) {
|
|
|
2514
2686
|
value: currentDescription
|
|
2515
2687
|
}
|
|
2516
2688
|
) : /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { sx: { whiteSpace: "pre-wrap" }, children: currentDescription }) }) }) }),
|
|
2517
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
2689
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Grid8__default.default, { size: { xs: 12, md: 4 }, children: [
|
|
2518
2690
|
/* @__PURE__ */ jsxRuntime.jsx(DMHighlightsCard, { canEdit: isTableInEditMode, player: currentDungeonMaster, allTags }),
|
|
2519
2691
|
/* @__PURE__ */ jsxRuntime.jsxs(material.Card, { sx: { height: "100%" }, children: [
|
|
2520
2692
|
/* @__PURE__ */ jsxRuntime.jsx(material.CardHeader, { slotProps: { title: { variant: "h4" } }, title: "Players: " }),
|
|
@@ -2541,13 +2713,13 @@ var renderTags = function(tags, allTags) {
|
|
|
2541
2713
|
if (!tags || !allTags) {
|
|
2542
2714
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
2543
2715
|
}
|
|
2544
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2716
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { container: true, spacing: 1, sx: { pb: 1.5 }, children: tags.map((tagId) => {
|
|
2545
2717
|
const tag = allTags.find((potentialTag) => tagId === potentialTag.id);
|
|
2546
2718
|
return tag ? generateTagsDisplay(tag) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
2547
2719
|
}) });
|
|
2548
2720
|
};
|
|
2549
2721
|
var renderEditableTags = function(selectedTags, allTags, onToggleTag) {
|
|
2550
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2722
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Grid8__default.default, { size: { xs: 12 }, sx: { pb: 1.5 }, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
2551
2723
|
TagEditor,
|
|
2552
2724
|
{
|
|
2553
2725
|
title: "Table Tags",
|
|
@@ -2565,6 +2737,7 @@ var TablePageLayout_default = TablePageLayout;
|
|
|
2565
2737
|
exports.AutoResizingTextarea = AutoResizingTextarea_default;
|
|
2566
2738
|
exports.BaseSearchResultCard = BaseSearchResultCard_default;
|
|
2567
2739
|
exports.CANDIDATE_TIMEZONES = CANDIDATE_TIMEZONES;
|
|
2740
|
+
exports.Chip = Chip;
|
|
2568
2741
|
exports.DMHighlightsCard = DMHighlightsCard;
|
|
2569
2742
|
exports.EventBanner = EventBanner;
|
|
2570
2743
|
exports.EventBannerEdit = EventBannerEdit;
|
|
@@ -2582,10 +2755,11 @@ exports.NextGameCountdown = NextGameCountdown;
|
|
|
2582
2755
|
exports.PlayerDetailsCard = PlayerDetailsCard_default;
|
|
2583
2756
|
exports.PlayerDisplayCard = PlayerDisplayCard_default;
|
|
2584
2757
|
exports.PlayerHighlightsCard = PlayerHighlightsCard;
|
|
2758
|
+
exports.PlayerPageLayout = PlayerPageLayout;
|
|
2585
2759
|
exports.PlayerPromptCard = PlayerPromptCard_default;
|
|
2586
2760
|
exports.PlayerResultCard = PlayerResultCard_default;
|
|
2587
|
-
exports.PlayerTagsCard =
|
|
2588
|
-
exports.PlayerTagsEdit =
|
|
2761
|
+
exports.PlayerTagsCard = PlayerTagsCard_default;
|
|
2762
|
+
exports.PlayerTagsEdit = PlayerTagsEdit_default;
|
|
2589
2763
|
exports.PlayersScrollableList = PlayersScrollableList_default;
|
|
2590
2764
|
exports.ResultsContainer = ResultsContainer_default;
|
|
2591
2765
|
exports.ScrollableResultsList = ScrollableResultsList_default;
|