@mbpockets/shared-ui 0.1.18

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.
Files changed (281) hide show
  1. package/LICENSE +681 -0
  2. package/README.md +85 -0
  3. package/dist/EventPage/editMode/index.cjs +573 -0
  4. package/dist/EventPage/editMode/index.cjs.map +1 -0
  5. package/dist/EventPage/editMode/index.d.cts +5 -0
  6. package/dist/EventPage/editMode/index.d.ts +5 -0
  7. package/dist/EventPage/editMode/index.mjs +559 -0
  8. package/dist/EventPage/editMode/index.mjs.map +1 -0
  9. package/dist/EventPage/editMode.cjs +573 -0
  10. package/dist/EventPage/editMode.cjs.map +1 -0
  11. package/dist/EventPage/editMode.d.cts +5 -0
  12. package/dist/EventPage/editMode.d.ts +5 -0
  13. package/dist/EventPage/editMode.mjs +559 -0
  14. package/dist/EventPage/editMode.mjs.map +1 -0
  15. package/dist/EventPage/index.cjs +1245 -0
  16. package/dist/EventPage/index.cjs.map +1 -0
  17. package/dist/EventPage/index.d.cts +6 -0
  18. package/dist/EventPage/index.d.ts +6 -0
  19. package/dist/EventPage/index.mjs +1215 -0
  20. package/dist/EventPage/index.mjs.map +1 -0
  21. package/dist/EventPage.cjs +1245 -0
  22. package/dist/EventPage.cjs.map +1 -0
  23. package/dist/EventPage.d.cts +42 -0
  24. package/dist/EventPage.d.ts +42 -0
  25. package/dist/EventPage.mjs +1215 -0
  26. package/dist/EventPage.mjs.map +1 -0
  27. package/dist/PlayerPage/index.cjs +370 -0
  28. package/dist/PlayerPage/index.cjs.map +1 -0
  29. package/dist/PlayerPage/index.d.cts +4 -0
  30. package/dist/PlayerPage/index.d.ts +4 -0
  31. package/dist/PlayerPage/index.mjs +358 -0
  32. package/dist/PlayerPage/index.mjs.map +1 -0
  33. package/dist/PlayerPage.cjs +370 -0
  34. package/dist/PlayerPage.cjs.map +1 -0
  35. package/dist/PlayerPage.d.cts +32 -0
  36. package/dist/PlayerPage.d.ts +32 -0
  37. package/dist/PlayerPage.mjs +358 -0
  38. package/dist/PlayerPage.mjs.map +1 -0
  39. package/dist/ProfilePage/index.cjs +136 -0
  40. package/dist/ProfilePage/index.cjs.map +1 -0
  41. package/dist/ProfilePage/index.d.cts +3 -0
  42. package/dist/ProfilePage/index.d.ts +3 -0
  43. package/dist/ProfilePage/index.mjs +124 -0
  44. package/dist/ProfilePage/index.mjs.map +1 -0
  45. package/dist/ProfilePage.cjs +136 -0
  46. package/dist/ProfilePage.cjs.map +1 -0
  47. package/dist/ProfilePage.d.cts +10 -0
  48. package/dist/ProfilePage.d.ts +10 -0
  49. package/dist/ProfilePage.mjs +124 -0
  50. package/dist/ProfilePage.mjs.map +1 -0
  51. package/dist/SearchPage/Filters/index.cjs +270 -0
  52. package/dist/SearchPage/Filters/index.cjs.map +1 -0
  53. package/dist/SearchPage/Filters/index.d.cts +4 -0
  54. package/dist/SearchPage/Filters/index.d.ts +4 -0
  55. package/dist/SearchPage/Filters/index.mjs +250 -0
  56. package/dist/SearchPage/Filters/index.mjs.map +1 -0
  57. package/dist/SearchPage/Filters.cjs +270 -0
  58. package/dist/SearchPage/Filters.cjs.map +1 -0
  59. package/dist/SearchPage/Filters.d.cts +31 -0
  60. package/dist/SearchPage/Filters.d.ts +31 -0
  61. package/dist/SearchPage/Filters.mjs +250 -0
  62. package/dist/SearchPage/Filters.mjs.map +1 -0
  63. package/dist/SearchPage/Results/index.cjs +226 -0
  64. package/dist/SearchPage/Results/index.cjs.map +1 -0
  65. package/dist/SearchPage/Results/index.d.cts +4 -0
  66. package/dist/SearchPage/Results/index.d.ts +4 -0
  67. package/dist/SearchPage/Results/index.mjs +212 -0
  68. package/dist/SearchPage/Results/index.mjs.map +1 -0
  69. package/dist/SearchPage/Results.cjs +226 -0
  70. package/dist/SearchPage/Results.cjs.map +1 -0
  71. package/dist/SearchPage/Results.d.cts +53 -0
  72. package/dist/SearchPage/Results.d.ts +53 -0
  73. package/dist/SearchPage/Results.mjs +212 -0
  74. package/dist/SearchPage/Results.mjs.map +1 -0
  75. package/dist/SearchPage/index.cjs +737 -0
  76. package/dist/SearchPage/index.cjs.map +1 -0
  77. package/dist/SearchPage/index.d.cts +7 -0
  78. package/dist/SearchPage/index.d.ts +7 -0
  79. package/dist/SearchPage/index.mjs +695 -0
  80. package/dist/SearchPage/index.mjs.map +1 -0
  81. package/dist/SearchPage.cjs +737 -0
  82. package/dist/SearchPage.cjs.map +1 -0
  83. package/dist/SearchPage.d.cts +110 -0
  84. package/dist/SearchPage.d.ts +110 -0
  85. package/dist/SearchPage.mjs +695 -0
  86. package/dist/SearchPage.mjs.map +1 -0
  87. package/dist/TablePage/GameTableProvider/index.cjs +26 -0
  88. package/dist/TablePage/GameTableProvider/index.cjs.map +1 -0
  89. package/dist/TablePage/GameTableProvider/index.d.cts +4 -0
  90. package/dist/TablePage/GameTableProvider/index.d.ts +4 -0
  91. package/dist/TablePage/GameTableProvider/index.mjs +19 -0
  92. package/dist/TablePage/GameTableProvider/index.mjs.map +1 -0
  93. package/dist/TablePage/GameTableProvider.cjs +26 -0
  94. package/dist/TablePage/GameTableProvider.cjs.map +1 -0
  95. package/dist/TablePage/GameTableProvider.d.cts +15 -0
  96. package/dist/TablePage/GameTableProvider.d.ts +15 -0
  97. package/dist/TablePage/GameTableProvider.mjs +19 -0
  98. package/dist/TablePage/GameTableProvider.mjs.map +1 -0
  99. package/dist/TablePage/ModalProvider/index.cjs +83 -0
  100. package/dist/TablePage/ModalProvider/index.cjs.map +1 -0
  101. package/dist/TablePage/ModalProvider/index.css +49 -0
  102. package/dist/TablePage/ModalProvider/index.css.map +1 -0
  103. package/dist/TablePage/ModalProvider/index.d.cts +3 -0
  104. package/dist/TablePage/ModalProvider/index.d.ts +3 -0
  105. package/dist/TablePage/ModalProvider/index.mjs +79 -0
  106. package/dist/TablePage/ModalProvider/index.mjs.map +1 -0
  107. package/dist/TablePage/ModalProvider.cjs +83 -0
  108. package/dist/TablePage/ModalProvider.cjs.map +1 -0
  109. package/dist/TablePage/ModalProvider.css +49 -0
  110. package/dist/TablePage/ModalProvider.css.map +1 -0
  111. package/dist/TablePage/ModalProvider.d.cts +17 -0
  112. package/dist/TablePage/ModalProvider.d.ts +17 -0
  113. package/dist/TablePage/ModalProvider.mjs +79 -0
  114. package/dist/TablePage/ModalProvider.mjs.map +1 -0
  115. package/dist/TablePage/index.cjs +606 -0
  116. package/dist/TablePage/index.cjs.map +1 -0
  117. package/dist/TablePage/index.css +49 -0
  118. package/dist/TablePage/index.css.map +1 -0
  119. package/dist/TablePage/index.d.cts +10 -0
  120. package/dist/TablePage/index.d.ts +10 -0
  121. package/dist/TablePage/index.mjs +579 -0
  122. package/dist/TablePage/index.mjs.map +1 -0
  123. package/dist/TablePage/players/index.cjs +85 -0
  124. package/dist/TablePage/players/index.cjs.map +1 -0
  125. package/dist/TablePage/players/index.d.cts +4 -0
  126. package/dist/TablePage/players/index.d.ts +4 -0
  127. package/dist/TablePage/players/index.mjs +76 -0
  128. package/dist/TablePage/players/index.mjs.map +1 -0
  129. package/dist/TablePage/players.cjs +85 -0
  130. package/dist/TablePage/players.cjs.map +1 -0
  131. package/dist/TablePage/players.d.cts +22 -0
  132. package/dist/TablePage/players.d.ts +22 -0
  133. package/dist/TablePage/players.mjs +76 -0
  134. package/dist/TablePage/players.mjs.map +1 -0
  135. package/dist/TablePage.cjs +606 -0
  136. package/dist/TablePage.cjs.map +1 -0
  137. package/dist/TablePage.css +49 -0
  138. package/dist/TablePage.css.map +1 -0
  139. package/dist/TablePage.d.cts +54 -0
  140. package/dist/TablePage.d.ts +54 -0
  141. package/dist/TablePage.mjs +579 -0
  142. package/dist/TablePage.mjs.map +1 -0
  143. package/dist/common/Modal/index.cjs +64 -0
  144. package/dist/common/Modal/index.cjs.map +1 -0
  145. package/dist/common/Modal/index.css +49 -0
  146. package/dist/common/Modal/index.css.map +1 -0
  147. package/dist/common/Modal/index.d.cts +2 -0
  148. package/dist/common/Modal/index.d.ts +2 -0
  149. package/dist/common/Modal/index.mjs +62 -0
  150. package/dist/common/Modal/index.mjs.map +1 -0
  151. package/dist/common/Modal.cjs +64 -0
  152. package/dist/common/Modal.cjs.map +1 -0
  153. package/dist/common/Modal.css +49 -0
  154. package/dist/common/Modal.css.map +1 -0
  155. package/dist/common/Modal.d.cts +9 -0
  156. package/dist/common/Modal.d.ts +9 -0
  157. package/dist/common/Modal.mjs +62 -0
  158. package/dist/common/Modal.mjs.map +1 -0
  159. package/dist/common/index.cjs +210 -0
  160. package/dist/common/index.cjs.map +1 -0
  161. package/dist/common/index.css +49 -0
  162. package/dist/common/index.css.map +1 -0
  163. package/dist/common/index.d.cts +4 -0
  164. package/dist/common/index.d.ts +4 -0
  165. package/dist/common/index.mjs +194 -0
  166. package/dist/common/index.mjs.map +1 -0
  167. package/dist/common.cjs +210 -0
  168. package/dist/common.cjs.map +1 -0
  169. package/dist/common.css +49 -0
  170. package/dist/common.css.map +1 -0
  171. package/dist/common.d.cts +28 -0
  172. package/dist/common.d.ts +28 -0
  173. package/dist/common.mjs +194 -0
  174. package/dist/common.mjs.map +1 -0
  175. package/dist/index-D7WHhl3Q.d.ts +64 -0
  176. package/dist/index-DC0kK3aC.d.cts +64 -0
  177. package/dist/index.cjs +2608 -0
  178. package/dist/index.cjs.map +1 -0
  179. package/dist/index.css +49 -0
  180. package/dist/index.css.map +1 -0
  181. package/dist/index.d.cts +20 -0
  182. package/dist/index.d.ts +20 -0
  183. package/dist/index.mjs +2529 -0
  184. package/dist/index.mjs.map +1 -0
  185. package/dist/mocks/EventDB.cjs +171 -0
  186. package/dist/mocks/EventDB.cjs.map +1 -0
  187. package/dist/mocks/EventDB.d.cts +6 -0
  188. package/dist/mocks/EventDB.d.ts +6 -0
  189. package/dist/mocks/EventDB.mjs +169 -0
  190. package/dist/mocks/EventDB.mjs.map +1 -0
  191. package/dist/mocks/Events.cjs +59 -0
  192. package/dist/mocks/Events.cjs.map +1 -0
  193. package/dist/mocks/Events.d.cts +13 -0
  194. package/dist/mocks/Events.d.ts +13 -0
  195. package/dist/mocks/Events.mjs +57 -0
  196. package/dist/mocks/Events.mjs.map +1 -0
  197. package/dist/mocks/Players.cjs +75 -0
  198. package/dist/mocks/Players.cjs.map +1 -0
  199. package/dist/mocks/Players.d.cts +15 -0
  200. package/dist/mocks/Players.d.ts +15 -0
  201. package/dist/mocks/Players.mjs +73 -0
  202. package/dist/mocks/Players.mjs.map +1 -0
  203. package/dist/mocks/SearchResults.cjs +143 -0
  204. package/dist/mocks/SearchResults.cjs.map +1 -0
  205. package/dist/mocks/SearchResults.d.cts +30 -0
  206. package/dist/mocks/SearchResults.d.ts +30 -0
  207. package/dist/mocks/SearchResults.mjs +137 -0
  208. package/dist/mocks/SearchResults.mjs.map +1 -0
  209. package/dist/mocks/Tables.cjs +133 -0
  210. package/dist/mocks/Tables.cjs.map +1 -0
  211. package/dist/mocks/Tables.d.cts +38 -0
  212. package/dist/mocks/Tables.d.ts +38 -0
  213. package/dist/mocks/Tables.mjs +131 -0
  214. package/dist/mocks/Tables.mjs.map +1 -0
  215. package/dist/mocks/Tags.cjs +142 -0
  216. package/dist/mocks/Tags.cjs.map +1 -0
  217. package/dist/mocks/Tags.d.cts +5 -0
  218. package/dist/mocks/Tags.d.ts +5 -0
  219. package/dist/mocks/Tags.mjs +140 -0
  220. package/dist/mocks/Tags.mjs.map +1 -0
  221. package/dist/mocks/index.cjs +566 -0
  222. package/dist/mocks/index.cjs.map +1 -0
  223. package/dist/mocks/index.d.cts +8 -0
  224. package/dist/mocks/index.d.ts +8 -0
  225. package/dist/mocks/index.mjs +555 -0
  226. package/dist/mocks/index.mjs.map +1 -0
  227. package/dist/mocks.cjs +566 -0
  228. package/dist/mocks.cjs.map +1 -0
  229. package/dist/mocks.d.cts +8 -0
  230. package/dist/mocks.d.ts +8 -0
  231. package/dist/mocks.mjs +555 -0
  232. package/dist/mocks.mjs.map +1 -0
  233. package/dist/types/event.cjs +4 -0
  234. package/dist/types/event.cjs.map +1 -0
  235. package/dist/types/event.d.cts +37 -0
  236. package/dist/types/event.d.ts +37 -0
  237. package/dist/types/event.mjs +3 -0
  238. package/dist/types/event.mjs.map +1 -0
  239. package/dist/types/index.cjs +4 -0
  240. package/dist/types/index.cjs.map +1 -0
  241. package/dist/types/index.d.cts +6 -0
  242. package/dist/types/index.d.ts +6 -0
  243. package/dist/types/index.mjs +3 -0
  244. package/dist/types/index.mjs.map +1 -0
  245. package/dist/types/player.cjs +4 -0
  246. package/dist/types/player.cjs.map +1 -0
  247. package/dist/types/player.d.cts +20 -0
  248. package/dist/types/player.d.ts +20 -0
  249. package/dist/types/player.mjs +3 -0
  250. package/dist/types/player.mjs.map +1 -0
  251. package/dist/types/search.cjs +4 -0
  252. package/dist/types/search.cjs.map +1 -0
  253. package/dist/types/search.d.cts +20 -0
  254. package/dist/types/search.d.ts +20 -0
  255. package/dist/types/search.mjs +3 -0
  256. package/dist/types/search.mjs.map +1 -0
  257. package/dist/types/table.cjs +4 -0
  258. package/dist/types/table.cjs.map +1 -0
  259. package/dist/types/table.d.cts +21 -0
  260. package/dist/types/table.d.ts +21 -0
  261. package/dist/types/table.mjs +3 -0
  262. package/dist/types/table.mjs.map +1 -0
  263. package/dist/types/tables.cjs +4 -0
  264. package/dist/types/tables.cjs.map +1 -0
  265. package/dist/types/tables.d.cts +21 -0
  266. package/dist/types/tables.d.ts +21 -0
  267. package/dist/types/tables.mjs +3 -0
  268. package/dist/types/tables.mjs.map +1 -0
  269. package/dist/types/tag.cjs +4 -0
  270. package/dist/types/tag.cjs.map +1 -0
  271. package/dist/types/tag.d.cts +14 -0
  272. package/dist/types/tag.d.ts +14 -0
  273. package/dist/types/tag.mjs +3 -0
  274. package/dist/types/tag.mjs.map +1 -0
  275. package/dist/types.cjs +4 -0
  276. package/dist/types.cjs.map +1 -0
  277. package/dist/types.d.cts +6 -0
  278. package/dist/types.d.ts +6 -0
  279. package/dist/types.mjs +3 -0
  280. package/dist/types.mjs.map +1 -0
  281. package/package.json +117 -0
@@ -0,0 +1,270 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var Typography2 = require('@mui/material/Typography');
5
+ var FormControl = require('@mui/material/FormControl');
6
+ var RadioGroup = require('@mui/material/RadioGroup');
7
+ var FormControlLabel = require('@mui/material/FormControlLabel');
8
+ var Radio = require('@mui/material/Radio');
9
+ var jsxRuntime = require('react/jsx-runtime');
10
+ var React = require('react');
11
+ var Box = require('@mui/material/Box');
12
+ var Autocomplete = require('@mui/material/Autocomplete');
13
+ var TextField = require('@mui/material/TextField');
14
+ var Popper = require('@mui/material/Popper');
15
+ var Divider = require('@mui/material/Divider');
16
+ var FormGroup = require('@mui/material/FormGroup');
17
+ var Checkbox = require('@mui/material/Checkbox');
18
+
19
+ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
20
+
21
+ var Typography2__default = /*#__PURE__*/_interopDefault(Typography2);
22
+ var FormControl__default = /*#__PURE__*/_interopDefault(FormControl);
23
+ var RadioGroup__default = /*#__PURE__*/_interopDefault(RadioGroup);
24
+ var FormControlLabel__default = /*#__PURE__*/_interopDefault(FormControlLabel);
25
+ var Radio__default = /*#__PURE__*/_interopDefault(Radio);
26
+ var React__default = /*#__PURE__*/_interopDefault(React);
27
+ var Box__default = /*#__PURE__*/_interopDefault(Box);
28
+ var Autocomplete__default = /*#__PURE__*/_interopDefault(Autocomplete);
29
+ var TextField__default = /*#__PURE__*/_interopDefault(TextField);
30
+ var Popper__default = /*#__PURE__*/_interopDefault(Popper);
31
+ var Divider__default = /*#__PURE__*/_interopDefault(Divider);
32
+ var FormGroup__default = /*#__PURE__*/_interopDefault(FormGroup);
33
+ var Checkbox__default = /*#__PURE__*/_interopDefault(Checkbox);
34
+
35
+ var SORT_OPTIONS = [
36
+ { id: "relevance", label: "Relevance" },
37
+ { id: "newest", label: "Newest" },
38
+ { id: "popular", label: "Most Popular" }
39
+ ];
40
+ var SortOptions = ({
41
+ defaultValue = "relevance",
42
+ onChange
43
+ }) => {
44
+ const handleSortChange = (event) => {
45
+ onChange == null ? void 0 : onChange(event.target.value);
46
+ };
47
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
48
+ /* @__PURE__ */ jsxRuntime.jsx(Typography2__default.default, { variant: "h6", gutterBottom: true, children: "Sort By" }),
49
+ /* @__PURE__ */ jsxRuntime.jsx(FormControl__default.default, { children: /* @__PURE__ */ jsxRuntime.jsx(RadioGroup__default.default, { defaultValue, onChange: handleSortChange, children: SORT_OPTIONS.map((option) => /* @__PURE__ */ jsxRuntime.jsx(
50
+ FormControlLabel__default.default,
51
+ {
52
+ value: option.id,
53
+ control: /* @__PURE__ */ jsxRuntime.jsx(Radio__default.default, {}),
54
+ label: option.label
55
+ },
56
+ option.id
57
+ )) }) })
58
+ ] });
59
+ };
60
+ var SortOptions_default = SortOptions;
61
+ var TagsFilter = ({
62
+ onChange,
63
+ tags: Tags = []
64
+ }) => {
65
+ const [mustHaveTags, setMustHaveTags] = React__default.default.useState([]);
66
+ const [mustNotHaveTags, setMustNotHaveTags] = React__default.default.useState([]);
67
+ const [shouldHaveAtLeastOneTags, setShouldHaveAtLeastOneTags] = React__default.default.useState([]);
68
+ Tags = !!Tags ? Tags : [];
69
+ const [inputValues, setInputValues] = React__default.default.useState({
70
+ mustHave: "",
71
+ mustNotHave: "",
72
+ shouldHaveAtLeastOne: ""
73
+ });
74
+ const tagOptions = React__default.default.useMemo(() => {
75
+ console.log("available tags: " + JSON.stringify(Tags));
76
+ console.log(!Tags);
77
+ if (!Tags || Tags.length == 0 || !Tags.map) return [];
78
+ return Tags.map((tag) => ({
79
+ value: tag.id,
80
+ label: tag.label
81
+ }));
82
+ }, [Tags]);
83
+ const handleTagChange = (tagId, category) => {
84
+ let newTags = [];
85
+ switch (category) {
86
+ case "mustHave":
87
+ newTags = mustHaveTags.includes(tagId) ? mustHaveTags.filter((id) => id !== tagId) : [...mustHaveTags, tagId];
88
+ setMustHaveTags(newTags);
89
+ break;
90
+ case "mustNotHave":
91
+ newTags = mustNotHaveTags.includes(tagId) ? mustNotHaveTags.filter((id) => id !== tagId) : [...mustNotHaveTags, tagId];
92
+ setMustNotHaveTags(newTags);
93
+ break;
94
+ case "shouldHaveAtLeastOne":
95
+ newTags = shouldHaveAtLeastOneTags.includes(tagId) ? shouldHaveAtLeastOneTags.filter((id) => id !== tagId) : [...shouldHaveAtLeastOneTags, tagId];
96
+ setShouldHaveAtLeastOneTags(newTags);
97
+ break;
98
+ }
99
+ if (onChange) {
100
+ onChange({
101
+ mustHave: category === "mustHave" ? newTags : mustHaveTags,
102
+ mustNotHave: category === "mustNotHave" ? newTags : mustNotHaveTags,
103
+ shouldHaveAtLeastOne: category === "shouldHaveAtLeastOne" ? newTags : shouldHaveAtLeastOneTags
104
+ });
105
+ }
106
+ };
107
+ const renderSelectedTags = (selectedTags, category) => {
108
+ const tagValues = [];
109
+ if (!Tags || Tags.length == 0 || !Tags.map) return null;
110
+ Tags.forEach((tag) => {
111
+ if (selectedTags.includes(tag.id)) {
112
+ tagValues.push(tag);
113
+ }
114
+ });
115
+ if (tagValues.length === 0) {
116
+ return null;
117
+ }
118
+ return /* @__PURE__ */ jsxRuntime.jsx(Box__default.default, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: tagValues.map((tag) => /* @__PURE__ */ jsxRuntime.jsxs(
119
+ "span",
120
+ {
121
+ className: "inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined",
122
+ style: {
123
+ background: tag.color || "#bfbcbb",
124
+ color: "white",
125
+ textShadow: "black 0.2em 0.2em 0.4em"
126
+ },
127
+ children: [
128
+ tag.label,
129
+ /* @__PURE__ */ jsxRuntime.jsx(
130
+ "button",
131
+ {
132
+ type: "button",
133
+ onClick: () => handleTagChange(tag.id, category),
134
+ className: "ml-2 text-red-500 bg-white bg-opacity-50 rounded-full outline-black outline-2 font-outlined",
135
+ children: "\xD7"
136
+ }
137
+ )
138
+ ]
139
+ },
140
+ tag.id
141
+ )) });
142
+ };
143
+ const createTagSelector = (category, label) => {
144
+ const selectedTags = category === "mustHave" ? mustHaveTags : category === "mustNotHave" ? mustNotHaveTags : shouldHaveAtLeastOneTags;
145
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
146
+ /* @__PURE__ */ jsxRuntime.jsx(Typography2__default.default, { variant: "subtitle1", gutterBottom: true, sx: { mt: 2 }, children: label }),
147
+ renderSelectedTags(selectedTags, category),
148
+ /* @__PURE__ */ jsxRuntime.jsx(
149
+ Autocomplete__default.default,
150
+ {
151
+ options: tagOptions,
152
+ filterOptions: (options, state) => {
153
+ const tagsToExclude = /* @__PURE__ */ new Set();
154
+ selectedTags.forEach((id) => tagsToExclude.add(id));
155
+ if (category !== "mustHave") {
156
+ mustHaveTags.forEach((id) => tagsToExclude.add(id));
157
+ }
158
+ if (category !== "mustNotHave") {
159
+ mustNotHaveTags.forEach((id) => tagsToExclude.add(id));
160
+ }
161
+ if (category !== "shouldHaveAtLeastOne") {
162
+ shouldHaveAtLeastOneTags.forEach((id) => tagsToExclude.add(id));
163
+ }
164
+ return options.filter(
165
+ (option) => (
166
+ // Exclude options already selected in any category
167
+ !tagsToExclude.has(option.value) && // Filter based on user input
168
+ option.label.toLowerCase().includes(state.inputValue.toLowerCase())
169
+ )
170
+ ).slice(0, 3);
171
+ },
172
+ value: null,
173
+ inputValue: inputValues[category],
174
+ onInputChange: (event, newInputValue) => {
175
+ if (event && event.type === "change") {
176
+ setInputValues({
177
+ ...inputValues,
178
+ [category]: newInputValue
179
+ });
180
+ }
181
+ },
182
+ onChange: (event, newValue) => {
183
+ if (newValue) {
184
+ handleTagChange(newValue.value, category);
185
+ }
186
+ setInputValues({
187
+ ...inputValues,
188
+ [category]: ""
189
+ });
190
+ },
191
+ slots: { popper: CustomPopper },
192
+ renderInput: (params) => /* @__PURE__ */ jsxRuntime.jsx(TextField__default.default, { ...params, label: `Select ${label}` })
193
+ },
194
+ `${category}-${selectedTags.join("-")}`
195
+ )
196
+ ] });
197
+ };
198
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
199
+ /* @__PURE__ */ jsxRuntime.jsx(Typography2__default.default, { variant: "h6", gutterBottom: true, children: "Tags" }),
200
+ createTagSelector("mustHave", "Must Have Tags"),
201
+ /* @__PURE__ */ jsxRuntime.jsx(Divider__default.default, { sx: { my: 2 } }),
202
+ createTagSelector("mustNotHave", "Must Not Have Tags"),
203
+ /* @__PURE__ */ jsxRuntime.jsx(Divider__default.default, { sx: { my: 2 } }),
204
+ createTagSelector("shouldHaveAtLeastOne", "Should Contain At Least One Tag")
205
+ ] });
206
+ };
207
+ var CustomPopper = (props) => {
208
+ return /* @__PURE__ */ jsxRuntime.jsx(
209
+ Popper__default.default,
210
+ {
211
+ ...props,
212
+ modifiers: [
213
+ {
214
+ name: "preventOverflow",
215
+ options: {
216
+ boundary: "viewport"
217
+ // Prevent the Popper from going outside the viewport
218
+ }
219
+ },
220
+ {
221
+ name: "offset",
222
+ options: {
223
+ offset: [0, -10]
224
+ // Set negative vertical offset (adjust value as needed)
225
+ }
226
+ }
227
+ ],
228
+ placement: "top-start"
229
+ }
230
+ );
231
+ };
232
+ var TagsFilter_default = TagsFilter;
233
+ var FILTER_TYPES = [
234
+ { id: "player", label: "Players" },
235
+ { id: "event", label: "Events", disabled: true },
236
+ { id: "table", label: "Tables", disabled: true }
237
+ ];
238
+ var TypeFilter = ({ onChange }) => {
239
+ const [selectedTypes, setSelectedTypes] = React__default.default.useState([]);
240
+ const handleTypeChange = (typeId) => {
241
+ const newSelectedTypes = selectedTypes.includes(typeId) ? selectedTypes.filter((id) => id !== typeId) : [...selectedTypes, typeId];
242
+ setSelectedTypes(newSelectedTypes);
243
+ onChange == null ? void 0 : onChange(newSelectedTypes);
244
+ };
245
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
246
+ /* @__PURE__ */ jsxRuntime.jsx(Typography2__default.default, { variant: "h6", gutterBottom: true, children: "Type" }),
247
+ /* @__PURE__ */ jsxRuntime.jsx(FormGroup__default.default, { children: FILTER_TYPES.map((type) => /* @__PURE__ */ jsxRuntime.jsx(
248
+ FormControlLabel__default.default,
249
+ {
250
+ control: /* @__PURE__ */ jsxRuntime.jsx(
251
+ Checkbox__default.default,
252
+ {
253
+ checked: selectedTypes.includes(type.id),
254
+ onChange: () => handleTypeChange(type.id),
255
+ disabled: type.disabled
256
+ }
257
+ ),
258
+ label: type.label
259
+ },
260
+ type.id
261
+ )) })
262
+ ] });
263
+ };
264
+ var TypeFilter_default = TypeFilter;
265
+
266
+ exports.SortOptions = SortOptions_default;
267
+ exports.TagsFilter = TagsFilter_default;
268
+ exports.TypeFilter = TypeFilter_default;
269
+ //# sourceMappingURL=Filters.cjs.map
270
+ //# sourceMappingURL=Filters.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/SearchPage/Filters/SortOptions.tsx","../../src/components/SearchPage/Filters/TagsFilter.tsx","../../src/components/SearchPage/Filters/TypeFilter.tsx"],"names":["jsxs","Fragment","jsx","Typography","FormControl","RadioGroup","FormControlLabel","Radio","React","Box","Autocomplete","TextField","Divider","Popper","FormGroup","Checkbox"],"mappings":"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","file":"Filters.cjs","sourcesContent":["\"use client\";\n\nimport React from 'react';\nimport Typography from '@mui/material/Typography';\nimport FormControl from '@mui/material/FormControl';\nimport RadioGroup from '@mui/material/RadioGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Radio from '@mui/material/Radio';\n\ninterface SortOptionsProps {\n defaultValue?: string;\n onChange?: (sortOption: string) => void;\n}\n\nconst SORT_OPTIONS = [\n { id: 'relevance', label: 'Relevance' },\n { id: 'newest', label: 'Newest' },\n { id: 'popular', label: 'Most Popular' },\n];\n\nconst SortOptions: React.FC<SortOptionsProps> = ({\n defaultValue = 'relevance',\n onChange\n}) => {\n const handleSortChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n onChange?.(event.target.value);\n };\n\n return (\n <>\n <Typography variant=\"h6\" gutterBottom>\n Sort By\n </Typography>\n <FormControl>\n <RadioGroup defaultValue={defaultValue} onChange={handleSortChange}>\n {SORT_OPTIONS.map((option) => (\n <FormControlLabel\n key={option.id}\n value={option.id}\n control={<Radio />}\n label={option.label}\n />\n ))}\n </RadioGroup>\n </FormControl>\n </>\n );\n};\n\nexport default SortOptions;\n","\"use client\"\nimport React from 'react';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport TextField from '@mui/material/TextField';\nimport Popper, { PopperProps } from '@mui/material/Popper';\nimport {Tag} from '@/types/tag';\nimport Divider from '@mui/material/Divider';\n\ninterface TagsFilterProps {\n onChange?: (selectedTags: {\n mustHave: number[];\n mustNotHave: number[];\n shouldHaveAtLeastOne: number[];\n }) => void;\n tags: Tag[];\n}\n\ntype TagCategory = 'mustHave' | 'mustNotHave' | 'shouldHaveAtLeastOne';\n\n/**\n * Component for filtering search results by tags\n * Uses Autocomplete for interactive tag selection similar to PlayerTagsEdit\n * Provides three separate sections for tags: must haves, must not haves, and should contain at least one\n */\nconst TagsFilter: React.FC<TagsFilterProps> = ({ \n onChange, tags: Tags = []\n}) => {\n const [mustHaveTags, setMustHaveTags] = React.useState<number[]>([]);\n const [mustNotHaveTags, setMustNotHaveTags] = React.useState<number[]>([]);\n const [shouldHaveAtLeastOneTags, setShouldHaveAtLeastOneTags] = React.useState<number[]>([]);\n Tags = !!Tags ? Tags : [];\n \n const [inputValues, setInputValues] = React.useState({\n mustHave: '',\n mustNotHave: '',\n shouldHaveAtLeastOne: ''\n });\n\n // Convert tags to format needed for Autocomplete\n const tagOptions = React.useMemo(() => {\n console.log(\"available tags: \" + JSON.stringify(Tags))\n console.log(!Tags)\n if (!Tags || Tags.length == 0 || !Tags.map) return [];\n return Tags.map(tag => ({\n value: tag.id,\n label: tag.label\n }));\n }, [Tags]);\n\n const handleTagChange = (tagId: number, category: TagCategory) => {\n let newTags: number[] = [];\n \n switch (category) {\n case 'mustHave':\n newTags = mustHaveTags.includes(tagId)\n ? mustHaveTags.filter(id => id !== tagId)\n : [...mustHaveTags, tagId];\n setMustHaveTags(newTags);\n break;\n case 'mustNotHave':\n newTags = mustNotHaveTags.includes(tagId)\n ? mustNotHaveTags.filter(id => id !== tagId)\n : [...mustNotHaveTags, tagId];\n setMustNotHaveTags(newTags);\n break;\n case 'shouldHaveAtLeastOne':\n newTags = shouldHaveAtLeastOneTags.includes(tagId)\n ? shouldHaveAtLeastOneTags.filter(id => id !== tagId)\n : [...shouldHaveAtLeastOneTags, tagId];\n setShouldHaveAtLeastOneTags(newTags);\n break;\n }\n \n if (onChange) {\n onChange({\n mustHave: category === 'mustHave' ? newTags : mustHaveTags,\n mustNotHave: category === 'mustNotHave' ? newTags : mustNotHaveTags,\n shouldHaveAtLeastOne: category === 'shouldHaveAtLeastOne' ? newTags : shouldHaveAtLeastOneTags\n });\n }\n };\n\n // Render selected tags as labels with remove buttons\n const renderSelectedTags = (selectedTags: number[], category: TagCategory) => {\n const tagValues: Tag[] = [];\n\n if (!Tags || Tags.length == 0 || !Tags.map) return null;\n Tags.forEach((tag) => {\n if (selectedTags.includes(tag.id)) {\n tagValues.push(tag);\n }\n });\n\n if (tagValues.length === 0) {\n return null;\n }\n\n return (\n <Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 1, mb: 2 }}>\n {tagValues.map((tag) => (\n <span\n key={tag.id}\n className=\"inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined\"\n style={{\n background: tag.color || '#bfbcbb',\n color: \"white\",\n textShadow: \"black 0.2em 0.2em 0.4em\"\n }}\n >\n {tag.label}\n <button \n type=\"button\" \n onClick={() => handleTagChange(tag.id, category)}\n className=\"ml-2 text-red-500 bg-white bg-opacity-50 rounded-full outline-black outline-2 font-outlined\"\n >\n &times;\n </button>\n </span>\n ))}\n </Box>\n );\n };\n\n // Helper function to create an Autocomplete component for a specific category\n const createTagSelector = (category: TagCategory, label: string) => {\n const selectedTags = \n category === 'mustHave' \n ? mustHaveTags \n : category === 'mustNotHave' \n ? mustNotHaveTags \n : shouldHaveAtLeastOneTags;\n \n return (\n <>\n <Typography variant=\"subtitle1\" gutterBottom sx={{ mt: 2 }}>\n {label}\n </Typography>\n \n {renderSelectedTags(selectedTags, category)}\n \n <Autocomplete\n key={`${category}-${selectedTags.join('-')}`}\n options={tagOptions}\n filterOptions={(options, state) => {\n // Determine which tags to exclude based on the current category\n const tagsToExclude = new Set<number>();\n \n // Always exclude tags already selected in the current category\n selectedTags.forEach(id => tagsToExclude.add(id));\n \n // Exclude tags selected in other categories\n if (category !== 'mustHave') {\n mustHaveTags.forEach(id => tagsToExclude.add(id));\n }\n if (category !== 'mustNotHave') {\n mustNotHaveTags.forEach(id => tagsToExclude.add(id));\n }\n if (category !== 'shouldHaveAtLeastOne') {\n shouldHaveAtLeastOneTags.forEach(id => tagsToExclude.add(id));\n }\n \n return options\n .filter(\n (option) =>\n // Exclude options already selected in any category\n !tagsToExclude.has(option.value) &&\n // Filter based on user input\n option.label.toLowerCase().includes(state.inputValue.toLowerCase())\n )\n .slice(0, 3); // Show up to 3 results\n }}\n value={null} // Clearing the selected value immediately\n inputValue={inputValues[category]} // Bind the input value to state\n onInputChange={(event, newInputValue) => {\n // Check if this is clearing after selection\n if (event && event.type === 'change') {\n setInputValues({\n ...inputValues,\n [category]: newInputValue\n });\n }\n }}\n onChange={(event, newValue) => {\n if (newValue) {\n handleTagChange(newValue.value, category); // Update selected tags\n }\n // Clear the text box after selection\n setInputValues({\n ...inputValues,\n [category]: ''\n });\n }}\n slots={{ popper: CustomPopper }}\n renderInput={(params) => <TextField {...params} label={`Select ${label}`} />}\n />\n </>\n );\n };\n\n return (\n <>\n <Typography variant=\"h6\" gutterBottom>\n Tags\n </Typography>\n \n {createTagSelector('mustHave', 'Must Have Tags')}\n \n <Divider sx={{ my: 2 }} />\n \n {createTagSelector('mustNotHave', 'Must Not Have Tags')}\n \n <Divider sx={{ my: 2 }} />\n \n {createTagSelector('shouldHaveAtLeastOne', 'Should Contain At Least One Tag')}\n </>\n );\n};\n\n// Custom popper for dropdown placement\nconst CustomPopper = (props: PopperProps) => {\n return (\n <Popper\n {...props}\n modifiers={[\n {\n name: \"preventOverflow\",\n options: {\n boundary: \"viewport\", // Prevent the Popper from going outside the viewport\n },\n },\n {\n name: \"offset\",\n options: {\n offset: [0, -10], // Set negative vertical offset (adjust value as needed)\n },\n },\n ]}\n placement=\"top-start\" // Position the dropdown above the input field\n />\n );\n};\n\nexport default TagsFilter;","\"use client\";\n\nimport React from 'react';\nimport Typography from '@mui/material/Typography';\nimport FormGroup from '@mui/material/FormGroup';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Checkbox from '@mui/material/Checkbox';\nimport type { SearchResultType } from '@/types/search';\n\ninterface TypeFilterProps {\n onChange?: (selectedTypes: SearchResultType[]) => void;\n}\n\nconst FILTER_TYPES: Array<{ id: SearchResultType; label: string; disabled?: boolean }> = [\n { id: 'player', label: 'Players' },\n { id: 'event', label: 'Events', disabled: true },\n { id: 'table', label: 'Tables', disabled: true },\n];\n\nconst TypeFilter: React.FC<TypeFilterProps> = ({ onChange }) => {\n const [selectedTypes, setSelectedTypes] = React.useState<SearchResultType[]>([]);\n\n const handleTypeChange = (typeId: SearchResultType) => {\n const newSelectedTypes = selectedTypes.includes(typeId)\n ? selectedTypes.filter((id) => id !== typeId)\n : [...selectedTypes, typeId];\n\n setSelectedTypes(newSelectedTypes);\n onChange?.(newSelectedTypes);\n };\n\n return (\n <>\n <Typography variant=\"h6\" gutterBottom>\n Type\n </Typography>\n <FormGroup>\n {FILTER_TYPES.map((type) => (\n <FormControlLabel\n key={type.id}\n control={\n <Checkbox\n checked={selectedTypes.includes(type.id)}\n onChange={() => handleTypeChange(type.id)}\n disabled={type.disabled}\n />\n }\n label={type.label}\n />\n ))}\n </FormGroup>\n </>\n );\n};\n\nexport default TypeFilter;\n"]}
@@ -0,0 +1,31 @@
1
+ import React__default from 'react';
2
+ import { Tag } from '../types/tag';
3
+ import { SearchResultType } from '../types/search';
4
+
5
+ interface SortOptionsProps {
6
+ defaultValue?: string;
7
+ onChange?: (sortOption: string) => void;
8
+ }
9
+ declare const SortOptions: React__default.FC<SortOptionsProps>;
10
+
11
+ interface TagsFilterProps {
12
+ onChange?: (selectedTags: {
13
+ mustHave: number[];
14
+ mustNotHave: number[];
15
+ shouldHaveAtLeastOne: number[];
16
+ }) => void;
17
+ tags: Tag[];
18
+ }
19
+ /**
20
+ * Component for filtering search results by tags
21
+ * Uses Autocomplete for interactive tag selection similar to PlayerTagsEdit
22
+ * Provides three separate sections for tags: must haves, must not haves, and should contain at least one
23
+ */
24
+ declare const TagsFilter: React__default.FC<TagsFilterProps>;
25
+
26
+ interface TypeFilterProps {
27
+ onChange?: (selectedTypes: SearchResultType[]) => void;
28
+ }
29
+ declare const TypeFilter: React__default.FC<TypeFilterProps>;
30
+
31
+ export { SortOptions, TagsFilter, TypeFilter };
@@ -0,0 +1,31 @@
1
+ import React__default from 'react';
2
+ import { Tag } from '../types/tag';
3
+ import { SearchResultType } from '../types/search';
4
+
5
+ interface SortOptionsProps {
6
+ defaultValue?: string;
7
+ onChange?: (sortOption: string) => void;
8
+ }
9
+ declare const SortOptions: React__default.FC<SortOptionsProps>;
10
+
11
+ interface TagsFilterProps {
12
+ onChange?: (selectedTags: {
13
+ mustHave: number[];
14
+ mustNotHave: number[];
15
+ shouldHaveAtLeastOne: number[];
16
+ }) => void;
17
+ tags: Tag[];
18
+ }
19
+ /**
20
+ * Component for filtering search results by tags
21
+ * Uses Autocomplete for interactive tag selection similar to PlayerTagsEdit
22
+ * Provides three separate sections for tags: must haves, must not haves, and should contain at least one
23
+ */
24
+ declare const TagsFilter: React__default.FC<TagsFilterProps>;
25
+
26
+ interface TypeFilterProps {
27
+ onChange?: (selectedTypes: SearchResultType[]) => void;
28
+ }
29
+ declare const TypeFilter: React__default.FC<TypeFilterProps>;
30
+
31
+ export { SortOptions, TagsFilter, TypeFilter };
@@ -0,0 +1,250 @@
1
+ "use client";
2
+ import Typography2 from '@mui/material/Typography';
3
+ import FormControl from '@mui/material/FormControl';
4
+ import RadioGroup from '@mui/material/RadioGroup';
5
+ import FormControlLabel from '@mui/material/FormControlLabel';
6
+ import Radio from '@mui/material/Radio';
7
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
8
+ import React from 'react';
9
+ import Box from '@mui/material/Box';
10
+ import Autocomplete from '@mui/material/Autocomplete';
11
+ import TextField from '@mui/material/TextField';
12
+ import Popper from '@mui/material/Popper';
13
+ import Divider from '@mui/material/Divider';
14
+ import FormGroup from '@mui/material/FormGroup';
15
+ import Checkbox from '@mui/material/Checkbox';
16
+
17
+ var SORT_OPTIONS = [
18
+ { id: "relevance", label: "Relevance" },
19
+ { id: "newest", label: "Newest" },
20
+ { id: "popular", label: "Most Popular" }
21
+ ];
22
+ var SortOptions = ({
23
+ defaultValue = "relevance",
24
+ onChange
25
+ }) => {
26
+ const handleSortChange = (event) => {
27
+ onChange == null ? void 0 : onChange(event.target.value);
28
+ };
29
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
30
+ /* @__PURE__ */ jsx(Typography2, { variant: "h6", gutterBottom: true, children: "Sort By" }),
31
+ /* @__PURE__ */ jsx(FormControl, { children: /* @__PURE__ */ jsx(RadioGroup, { defaultValue, onChange: handleSortChange, children: SORT_OPTIONS.map((option) => /* @__PURE__ */ jsx(
32
+ FormControlLabel,
33
+ {
34
+ value: option.id,
35
+ control: /* @__PURE__ */ jsx(Radio, {}),
36
+ label: option.label
37
+ },
38
+ option.id
39
+ )) }) })
40
+ ] });
41
+ };
42
+ var SortOptions_default = SortOptions;
43
+ var TagsFilter = ({
44
+ onChange,
45
+ tags: Tags = []
46
+ }) => {
47
+ const [mustHaveTags, setMustHaveTags] = React.useState([]);
48
+ const [mustNotHaveTags, setMustNotHaveTags] = React.useState([]);
49
+ const [shouldHaveAtLeastOneTags, setShouldHaveAtLeastOneTags] = React.useState([]);
50
+ Tags = !!Tags ? Tags : [];
51
+ const [inputValues, setInputValues] = React.useState({
52
+ mustHave: "",
53
+ mustNotHave: "",
54
+ shouldHaveAtLeastOne: ""
55
+ });
56
+ const tagOptions = React.useMemo(() => {
57
+ console.log("available tags: " + JSON.stringify(Tags));
58
+ console.log(!Tags);
59
+ if (!Tags || Tags.length == 0 || !Tags.map) return [];
60
+ return Tags.map((tag) => ({
61
+ value: tag.id,
62
+ label: tag.label
63
+ }));
64
+ }, [Tags]);
65
+ const handleTagChange = (tagId, category) => {
66
+ let newTags = [];
67
+ switch (category) {
68
+ case "mustHave":
69
+ newTags = mustHaveTags.includes(tagId) ? mustHaveTags.filter((id) => id !== tagId) : [...mustHaveTags, tagId];
70
+ setMustHaveTags(newTags);
71
+ break;
72
+ case "mustNotHave":
73
+ newTags = mustNotHaveTags.includes(tagId) ? mustNotHaveTags.filter((id) => id !== tagId) : [...mustNotHaveTags, tagId];
74
+ setMustNotHaveTags(newTags);
75
+ break;
76
+ case "shouldHaveAtLeastOne":
77
+ newTags = shouldHaveAtLeastOneTags.includes(tagId) ? shouldHaveAtLeastOneTags.filter((id) => id !== tagId) : [...shouldHaveAtLeastOneTags, tagId];
78
+ setShouldHaveAtLeastOneTags(newTags);
79
+ break;
80
+ }
81
+ if (onChange) {
82
+ onChange({
83
+ mustHave: category === "mustHave" ? newTags : mustHaveTags,
84
+ mustNotHave: category === "mustNotHave" ? newTags : mustNotHaveTags,
85
+ shouldHaveAtLeastOne: category === "shouldHaveAtLeastOne" ? newTags : shouldHaveAtLeastOneTags
86
+ });
87
+ }
88
+ };
89
+ const renderSelectedTags = (selectedTags, category) => {
90
+ const tagValues = [];
91
+ if (!Tags || Tags.length == 0 || !Tags.map) return null;
92
+ Tags.forEach((tag) => {
93
+ if (selectedTags.includes(tag.id)) {
94
+ tagValues.push(tag);
95
+ }
96
+ });
97
+ if (tagValues.length === 0) {
98
+ return null;
99
+ }
100
+ return /* @__PURE__ */ jsx(Box, { sx: { display: "flex", flexWrap: "wrap", gap: 1, mb: 2 }, children: tagValues.map((tag) => /* @__PURE__ */ jsxs(
101
+ "span",
102
+ {
103
+ className: "inline-block text-sm px-3 py-1 rounded-full outline-black outline-2 font-outlined",
104
+ style: {
105
+ background: tag.color || "#bfbcbb",
106
+ color: "white",
107
+ textShadow: "black 0.2em 0.2em 0.4em"
108
+ },
109
+ children: [
110
+ tag.label,
111
+ /* @__PURE__ */ jsx(
112
+ "button",
113
+ {
114
+ type: "button",
115
+ onClick: () => handleTagChange(tag.id, category),
116
+ className: "ml-2 text-red-500 bg-white bg-opacity-50 rounded-full outline-black outline-2 font-outlined",
117
+ children: "\xD7"
118
+ }
119
+ )
120
+ ]
121
+ },
122
+ tag.id
123
+ )) });
124
+ };
125
+ const createTagSelector = (category, label) => {
126
+ const selectedTags = category === "mustHave" ? mustHaveTags : category === "mustNotHave" ? mustNotHaveTags : shouldHaveAtLeastOneTags;
127
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
128
+ /* @__PURE__ */ jsx(Typography2, { variant: "subtitle1", gutterBottom: true, sx: { mt: 2 }, children: label }),
129
+ renderSelectedTags(selectedTags, category),
130
+ /* @__PURE__ */ jsx(
131
+ Autocomplete,
132
+ {
133
+ options: tagOptions,
134
+ filterOptions: (options, state) => {
135
+ const tagsToExclude = /* @__PURE__ */ new Set();
136
+ selectedTags.forEach((id) => tagsToExclude.add(id));
137
+ if (category !== "mustHave") {
138
+ mustHaveTags.forEach((id) => tagsToExclude.add(id));
139
+ }
140
+ if (category !== "mustNotHave") {
141
+ mustNotHaveTags.forEach((id) => tagsToExclude.add(id));
142
+ }
143
+ if (category !== "shouldHaveAtLeastOne") {
144
+ shouldHaveAtLeastOneTags.forEach((id) => tagsToExclude.add(id));
145
+ }
146
+ return options.filter(
147
+ (option) => (
148
+ // Exclude options already selected in any category
149
+ !tagsToExclude.has(option.value) && // Filter based on user input
150
+ option.label.toLowerCase().includes(state.inputValue.toLowerCase())
151
+ )
152
+ ).slice(0, 3);
153
+ },
154
+ value: null,
155
+ inputValue: inputValues[category],
156
+ onInputChange: (event, newInputValue) => {
157
+ if (event && event.type === "change") {
158
+ setInputValues({
159
+ ...inputValues,
160
+ [category]: newInputValue
161
+ });
162
+ }
163
+ },
164
+ onChange: (event, newValue) => {
165
+ if (newValue) {
166
+ handleTagChange(newValue.value, category);
167
+ }
168
+ setInputValues({
169
+ ...inputValues,
170
+ [category]: ""
171
+ });
172
+ },
173
+ slots: { popper: CustomPopper },
174
+ renderInput: (params) => /* @__PURE__ */ jsx(TextField, { ...params, label: `Select ${label}` })
175
+ },
176
+ `${category}-${selectedTags.join("-")}`
177
+ )
178
+ ] });
179
+ };
180
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
181
+ /* @__PURE__ */ jsx(Typography2, { variant: "h6", gutterBottom: true, children: "Tags" }),
182
+ createTagSelector("mustHave", "Must Have Tags"),
183
+ /* @__PURE__ */ jsx(Divider, { sx: { my: 2 } }),
184
+ createTagSelector("mustNotHave", "Must Not Have Tags"),
185
+ /* @__PURE__ */ jsx(Divider, { sx: { my: 2 } }),
186
+ createTagSelector("shouldHaveAtLeastOne", "Should Contain At Least One Tag")
187
+ ] });
188
+ };
189
+ var CustomPopper = (props) => {
190
+ return /* @__PURE__ */ jsx(
191
+ Popper,
192
+ {
193
+ ...props,
194
+ modifiers: [
195
+ {
196
+ name: "preventOverflow",
197
+ options: {
198
+ boundary: "viewport"
199
+ // Prevent the Popper from going outside the viewport
200
+ }
201
+ },
202
+ {
203
+ name: "offset",
204
+ options: {
205
+ offset: [0, -10]
206
+ // Set negative vertical offset (adjust value as needed)
207
+ }
208
+ }
209
+ ],
210
+ placement: "top-start"
211
+ }
212
+ );
213
+ };
214
+ var TagsFilter_default = TagsFilter;
215
+ var FILTER_TYPES = [
216
+ { id: "player", label: "Players" },
217
+ { id: "event", label: "Events", disabled: true },
218
+ { id: "table", label: "Tables", disabled: true }
219
+ ];
220
+ var TypeFilter = ({ onChange }) => {
221
+ const [selectedTypes, setSelectedTypes] = React.useState([]);
222
+ const handleTypeChange = (typeId) => {
223
+ const newSelectedTypes = selectedTypes.includes(typeId) ? selectedTypes.filter((id) => id !== typeId) : [...selectedTypes, typeId];
224
+ setSelectedTypes(newSelectedTypes);
225
+ onChange == null ? void 0 : onChange(newSelectedTypes);
226
+ };
227
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
228
+ /* @__PURE__ */ jsx(Typography2, { variant: "h6", gutterBottom: true, children: "Type" }),
229
+ /* @__PURE__ */ jsx(FormGroup, { children: FILTER_TYPES.map((type) => /* @__PURE__ */ jsx(
230
+ FormControlLabel,
231
+ {
232
+ control: /* @__PURE__ */ jsx(
233
+ Checkbox,
234
+ {
235
+ checked: selectedTypes.includes(type.id),
236
+ onChange: () => handleTypeChange(type.id),
237
+ disabled: type.disabled
238
+ }
239
+ ),
240
+ label: type.label
241
+ },
242
+ type.id
243
+ )) })
244
+ ] });
245
+ };
246
+ var TypeFilter_default = TypeFilter;
247
+
248
+ export { SortOptions_default as SortOptions, TagsFilter_default as TagsFilter, TypeFilter_default as TypeFilter };
249
+ //# sourceMappingURL=Filters.mjs.map
250
+ //# sourceMappingURL=Filters.mjs.map