@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,83 @@
1
+ "use client";
2
+ 'use strict';
3
+
4
+ var react = require('react');
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+
7
+ var ModalContext = react.createContext({
8
+ showModal: (content) => {
9
+ },
10
+ hideModal: () => {
11
+ }
12
+ });
13
+ var useModal = () => react.useContext(ModalContext);
14
+ var Modal = ({ onClose, children }) => {
15
+ const modalRef = react.useRef(null);
16
+ const previouslyFocusedElement = react.useRef(null);
17
+ react.useEffect(() => {
18
+ var _a;
19
+ if (children) {
20
+ previouslyFocusedElement.current = document.activeElement;
21
+ (_a = modalRef.current) == null ? void 0 : _a.focus();
22
+ }
23
+ return () => {
24
+ var _a2;
25
+ (_a2 = previouslyFocusedElement.current) == null ? void 0 : _a2.focus();
26
+ };
27
+ }, [children]);
28
+ const handleOnClose = () => {
29
+ onClose();
30
+ };
31
+ const handleKeyDown = (e) => {
32
+ var _a;
33
+ if (e.key !== "Tab") return;
34
+ const focusableElements = (_a = modalRef.current) == null ? void 0 : _a.querySelectorAll(
35
+ 'button, [tabindex]:not([tabindex="-1"])'
36
+ );
37
+ if (!focusableElements || focusableElements.length === 0) return;
38
+ const first = focusableElements[0];
39
+ const last = focusableElements[focusableElements.length - 1];
40
+ if (e.shiftKey) {
41
+ if (document.activeElement === first) {
42
+ e.preventDefault();
43
+ last.focus();
44
+ }
45
+ } else {
46
+ if (document.activeElement === last) {
47
+ e.preventDefault();
48
+ first.focus();
49
+ }
50
+ }
51
+ };
52
+ return /* @__PURE__ */ jsxRuntime.jsx(
53
+ "div",
54
+ {
55
+ className: "modal-overlay",
56
+ onKeyDown: handleKeyDown,
57
+ ref: modalRef,
58
+ role: "dialog",
59
+ tabIndex: -1,
60
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "modal-container", children: [
61
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "modal-control-strip", children: /* @__PURE__ */ jsxRuntime.jsx("button", { onClick: handleOnClose, children: "X" }) }),
62
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "modal-content", children })
63
+ ] })
64
+ }
65
+ );
66
+ };
67
+ var Modal_default = Modal;
68
+ var ModalProvider = ({ children }) => {
69
+ const [modalContent, setModalContent] = react.useState(null);
70
+ const showModal = (content) => setModalContent(content);
71
+ const hideModal = () => setModalContent(null);
72
+ return /* @__PURE__ */ jsxRuntime.jsxs(ModalContext.Provider, { value: { showModal, hideModal }, children: [
73
+ children,
74
+ modalContent && /* @__PURE__ */ jsxRuntime.jsx(Modal_default, { onClose: hideModal, children: modalContent })
75
+ ] });
76
+ };
77
+ var ModalProvider_default = ModalProvider;
78
+
79
+ exports.ModalContext = ModalContext;
80
+ exports.ModalProvider = ModalProvider_default;
81
+ exports.useModal = useModal;
82
+ //# sourceMappingURL=ModalProvider.cjs.map
83
+ //# sourceMappingURL=ModalProvider.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/TablePage/ModalProvider/ModalContext.ts","../../src/components/shared/Modal/index.tsx","../../src/components/TablePage/ModalProvider/ModalProvider.tsx"],"names":["createContext","useContext","useRef","useEffect","_a","jsx","jsxs","useState"],"mappings":"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","file":"ModalProvider.cjs","sourcesContent":["\"use client\"\r\nimport { createContext, ReactNode, useContext } from \"react\";\r\n\r\ntype ModalContextType = {\r\n showModal: (content: ReactNode) => void;\r\n hideModal: () => void;\r\n}\r\n\r\nexport const ModalContext = createContext<ModalContextType>({\r\n showModal: (content: ReactNode) => {},\r\n hideModal: () => {},\r\n});\r\n\r\nexport const useModal = () => useContext(ModalContext);","\"use client\"\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport \"./style.css\";\r\n\r\ninterface IModalProps {\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst Modal: React.FC<IModalProps> = ({ onClose, children }) => {\r\n const modalRef = useRef<HTMLDivElement>(null);\r\n const previouslyFocusedElement = useRef<HTMLElement | null>(null);\r\n\r\n useEffect(() => {\r\n if (children) {\r\n previouslyFocusedElement.current = document.activeElement as HTMLElement;\r\n modalRef.current?.focus();\r\n }\r\n return () => {\r\n previouslyFocusedElement.current?.focus();\r\n }\r\n }, [children]);\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== 'Tab') return;\r\n\r\n const focusableElements = modalRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n\r\n if (!focusableElements || focusableElements.length === 0) return;\r\n\r\n const first = focusableElements[0];\r\n const last = focusableElements[focusableElements.length - 1];\r\n\r\n if (e.shiftKey) {\r\n // shift + tab\r\n if (document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n }\r\n } else {\r\n // tab\r\n if (document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className=\"modal-overlay\"\r\n onKeyDown={handleKeyDown}\r\n ref={modalRef}\r\n role=\"dialog\"\r\n tabIndex={-1}\r\n >\r\n <div className=\"modal-container\">\r\n <div className=\"modal-control-strip\">\r\n <button onClick={handleOnClose}>X</button>\r\n </div>\r\n <div className=\"modal-content\">\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","\"use client\";\n\nimport React, { ReactNode, useState } from \"react\";\r\nimport { ModalContext } from './ModalContext';\r\nimport Modal from \"@/components/shared/Modal\";\r\n\r\ntype ModalProviderProps = {\r\n children: ReactNode;\r\n}\r\n\r\nexport const ModalProvider = ({ children }: ModalProviderProps) => {\r\n const [modalContent, setModalContent] = useState<null | ReactNode>(null);\r\n\r\n const showModal = (content: ReactNode) => setModalContent(content);\r\n const hideModal = () => setModalContent(null);\r\n\r\n return (\r\n <ModalContext.Provider value={{ showModal, hideModal }}>\r\n {children}\r\n {modalContent && (\r\n <Modal onClose={hideModal}>\r\n {modalContent}\r\n </Modal>\r\n )}\r\n </ModalContext.Provider>\r\n );\r\n}\r\n\r\nexport default ModalProvider;"]}
@@ -0,0 +1,49 @@
1
+ /* src/components/shared/Modal/style.css */
2
+ .modal-container {
3
+ margin: auto;
4
+ color: #000000;
5
+ top: 20px;
6
+ flex-direction: column;
7
+ width: fit-content;
8
+ height: fit-content;
9
+ background-color: lightgrey;
10
+ display: flex;
11
+ }
12
+ .modal-overlay {
13
+ position: fixed;
14
+ margin: auto;
15
+ color: #000000;
16
+ top: 20px;
17
+ flex-direction: column;
18
+ width: 100%;
19
+ height: 100%;
20
+ background-color: rgba(0, 0, 0, 0.5);
21
+ display: flex;
22
+ justify-content: center;
23
+ align-items: center;
24
+ z-index: 1000;
25
+ }
26
+ .modal-content {
27
+ padding: 20px;
28
+ display: flex;
29
+ flex-direction: column;
30
+ }
31
+ .modal-content button {
32
+ border: outset 1px;
33
+ border-radius: 0;
34
+ color: black;
35
+ cursor: pointer;
36
+ margin: auto;
37
+ padding: 8px 48px;
38
+ }
39
+ .modal-content button:focus {
40
+ outline: 1px dotted #333;
41
+ outline-offset: -4px;
42
+ }
43
+ .modal-control-strip {
44
+ align-content: end;
45
+ display: flex;
46
+ justify-content: flex-end;
47
+ padding: 5px;
48
+ }
49
+ /*# sourceMappingURL=ModalProvider.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/shared/Modal/style.css"],"sourcesContent":["\r\n .modal-container {\r\n margin: auto;\r\n color: #000000;\r\n top: 20px;\r\n flex-direction: column;\r\n width: fit-content;\r\n height: fit-content;\r\n background-color: lightgrey;\r\n display: flex;\r\n }\r\n\r\n .modal-overlay {\r\n position: fixed;\r\n margin: auto;\r\n color: #000000;\r\n top: 20px;\r\n flex-direction: column;\r\n width: 100%;\r\n height: 100%;\r\n background-color: rgba(0, 0, 0, 0.5);\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n z-index: 1000;\r\n }\r\n .modal-content {\r\n padding: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n .modal-content button {\r\n border: outset 1px;\r\n border-radius: 0;\r\n color: black;\r\n cursor: pointer;\r\n margin: auto;\r\n padding: 8px 48px;\r\n }\r\n .modal-content button:focus {\r\n outline: 1px dotted #333;\r\n outline-offset: -4px;\r\n }\r\n .modal-control-strip {\r\n align-content: end;\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 5px;\r\n }"],"mappings":";AACI,CAAC;AACG,UAAQ;AACR,SAAO;AACP,OAAK;AACL,kBAAgB;AAChB,SAAO;AACP,UAAQ;AACR,oBAAkB;AAClB,WAAS;AACb;AAEA,CAAC;AACG,YAAU;AACV,UAAQ;AACR,SAAO;AACP,OAAK;AACL,kBAAgB;AAChB,SAAO;AACP,UAAQ;AACR,oBAAkB,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAChC,WAAS;AACT,mBAAiB;AACjB,eAAa;AACb,WAAS;AACb;AACA,CAAC;AACG,WAAS;AACT,WAAS;AACT,kBAAgB;AACpB;AACA,CALC,cAKc;AACP,UAAQ,OAAO;AACf,iBAAe;AACf,SAAO;AACP,UAAQ;AACR,UAAQ;AACR,WAAS,IAAI;AACjB;AACJ,CAbC,cAac,MAAM;AACb,WAAS,IAAI,OAAO;AACpB,kBAAgB;AACxB;AACA,CAAC;AACG,iBAAe;AACf,WAAS;AACT,mBAAiB;AACjB,WAAS;AACb;","names":[]}
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ type ModalContextType = {
6
+ showModal: (content: ReactNode) => void;
7
+ hideModal: () => void;
8
+ };
9
+ declare const ModalContext: React.Context<ModalContextType>;
10
+ declare const useModal: () => ModalContextType;
11
+
12
+ type ModalProviderProps = {
13
+ children: ReactNode;
14
+ };
15
+ declare const ModalProvider: ({ children }: ModalProviderProps) => react_jsx_runtime.JSX.Element;
16
+
17
+ export { ModalContext, ModalProvider, useModal };
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+
5
+ type ModalContextType = {
6
+ showModal: (content: ReactNode) => void;
7
+ hideModal: () => void;
8
+ };
9
+ declare const ModalContext: React.Context<ModalContextType>;
10
+ declare const useModal: () => ModalContextType;
11
+
12
+ type ModalProviderProps = {
13
+ children: ReactNode;
14
+ };
15
+ declare const ModalProvider: ({ children }: ModalProviderProps) => react_jsx_runtime.JSX.Element;
16
+
17
+ export { ModalContext, ModalProvider, useModal };
@@ -0,0 +1,79 @@
1
+ "use client";
2
+ import { createContext, useContext, useState, useRef, useEffect } from 'react';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
4
+
5
+ var ModalContext = createContext({
6
+ showModal: (content) => {
7
+ },
8
+ hideModal: () => {
9
+ }
10
+ });
11
+ var useModal = () => useContext(ModalContext);
12
+ var Modal = ({ onClose, children }) => {
13
+ const modalRef = useRef(null);
14
+ const previouslyFocusedElement = useRef(null);
15
+ useEffect(() => {
16
+ var _a;
17
+ if (children) {
18
+ previouslyFocusedElement.current = document.activeElement;
19
+ (_a = modalRef.current) == null ? void 0 : _a.focus();
20
+ }
21
+ return () => {
22
+ var _a2;
23
+ (_a2 = previouslyFocusedElement.current) == null ? void 0 : _a2.focus();
24
+ };
25
+ }, [children]);
26
+ const handleOnClose = () => {
27
+ onClose();
28
+ };
29
+ const handleKeyDown = (e) => {
30
+ var _a;
31
+ if (e.key !== "Tab") return;
32
+ const focusableElements = (_a = modalRef.current) == null ? void 0 : _a.querySelectorAll(
33
+ 'button, [tabindex]:not([tabindex="-1"])'
34
+ );
35
+ if (!focusableElements || focusableElements.length === 0) return;
36
+ const first = focusableElements[0];
37
+ const last = focusableElements[focusableElements.length - 1];
38
+ if (e.shiftKey) {
39
+ if (document.activeElement === first) {
40
+ e.preventDefault();
41
+ last.focus();
42
+ }
43
+ } else {
44
+ if (document.activeElement === last) {
45
+ e.preventDefault();
46
+ first.focus();
47
+ }
48
+ }
49
+ };
50
+ return /* @__PURE__ */ jsx(
51
+ "div",
52
+ {
53
+ className: "modal-overlay",
54
+ onKeyDown: handleKeyDown,
55
+ ref: modalRef,
56
+ role: "dialog",
57
+ tabIndex: -1,
58
+ children: /* @__PURE__ */ jsxs("div", { className: "modal-container", children: [
59
+ /* @__PURE__ */ jsx("div", { className: "modal-control-strip", children: /* @__PURE__ */ jsx("button", { onClick: handleOnClose, children: "X" }) }),
60
+ /* @__PURE__ */ jsx("div", { className: "modal-content", children })
61
+ ] })
62
+ }
63
+ );
64
+ };
65
+ var Modal_default = Modal;
66
+ var ModalProvider = ({ children }) => {
67
+ const [modalContent, setModalContent] = useState(null);
68
+ const showModal = (content) => setModalContent(content);
69
+ const hideModal = () => setModalContent(null);
70
+ return /* @__PURE__ */ jsxs(ModalContext.Provider, { value: { showModal, hideModal }, children: [
71
+ children,
72
+ modalContent && /* @__PURE__ */ jsx(Modal_default, { onClose: hideModal, children: modalContent })
73
+ ] });
74
+ };
75
+ var ModalProvider_default = ModalProvider;
76
+
77
+ export { ModalContext, ModalProvider_default as ModalProvider, useModal };
78
+ //# sourceMappingURL=ModalProvider.mjs.map
79
+ //# sourceMappingURL=ModalProvider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/TablePage/ModalProvider/ModalContext.ts","../../src/components/shared/Modal/index.tsx","../../src/components/TablePage/ModalProvider/ModalProvider.tsx"],"names":["_a","jsxs","jsx"],"mappings":"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","file":"ModalProvider.mjs","sourcesContent":["\"use client\"\r\nimport { createContext, ReactNode, useContext } from \"react\";\r\n\r\ntype ModalContextType = {\r\n showModal: (content: ReactNode) => void;\r\n hideModal: () => void;\r\n}\r\n\r\nexport const ModalContext = createContext<ModalContextType>({\r\n showModal: (content: ReactNode) => {},\r\n hideModal: () => {},\r\n});\r\n\r\nexport const useModal = () => useContext(ModalContext);","\"use client\"\r\nimport React, { useEffect, useRef } from \"react\";\r\nimport \"./style.css\";\r\n\r\ninterface IModalProps {\r\n onClose: () => void;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst Modal: React.FC<IModalProps> = ({ onClose, children }) => {\r\n const modalRef = useRef<HTMLDivElement>(null);\r\n const previouslyFocusedElement = useRef<HTMLElement | null>(null);\r\n\r\n useEffect(() => {\r\n if (children) {\r\n previouslyFocusedElement.current = document.activeElement as HTMLElement;\r\n modalRef.current?.focus();\r\n }\r\n return () => {\r\n previouslyFocusedElement.current?.focus();\r\n }\r\n }, [children]);\r\n\r\n const handleOnClose = () => {\r\n onClose();\r\n };\r\n\r\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (e.key !== 'Tab') return;\r\n\r\n const focusableElements = modalRef.current?.querySelectorAll<HTMLElement>(\r\n 'button, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n\r\n if (!focusableElements || focusableElements.length === 0) return;\r\n\r\n const first = focusableElements[0];\r\n const last = focusableElements[focusableElements.length - 1];\r\n\r\n if (e.shiftKey) {\r\n // shift + tab\r\n if (document.activeElement === first) {\r\n e.preventDefault();\r\n last.focus();\r\n }\r\n } else {\r\n // tab\r\n if (document.activeElement === last) {\r\n e.preventDefault();\r\n first.focus();\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n className=\"modal-overlay\"\r\n onKeyDown={handleKeyDown}\r\n ref={modalRef}\r\n role=\"dialog\"\r\n tabIndex={-1}\r\n >\r\n <div className=\"modal-container\">\r\n <div className=\"modal-control-strip\">\r\n <button onClick={handleOnClose}>X</button>\r\n </div>\r\n <div className=\"modal-content\">\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","\"use client\";\n\nimport React, { ReactNode, useState } from \"react\";\r\nimport { ModalContext } from './ModalContext';\r\nimport Modal from \"@/components/shared/Modal\";\r\n\r\ntype ModalProviderProps = {\r\n children: ReactNode;\r\n}\r\n\r\nexport const ModalProvider = ({ children }: ModalProviderProps) => {\r\n const [modalContent, setModalContent] = useState<null | ReactNode>(null);\r\n\r\n const showModal = (content: ReactNode) => setModalContent(content);\r\n const hideModal = () => setModalContent(null);\r\n\r\n return (\r\n <ModalContext.Provider value={{ showModal, hideModal }}>\r\n {children}\r\n {modalContent && (\r\n <Modal onClose={hideModal}>\r\n {modalContent}\r\n </Modal>\r\n )}\r\n </ModalContext.Provider>\r\n );\r\n}\r\n\r\nexport default ModalProvider;"]}