@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 @@
1
+ {"version":3,"sources":["../src/components/TablePage/GameTableProvider/GameTableContext.tsx","../src/components/TablePage/ModalProvider/ModalContext.ts","../src/components/shared/Modal/index.tsx","../src/components/TablePage/ModalProvider/ModalProvider.tsx","../src/components/shared/TagComponents.tsx","../src/components/TablePage/players/PlayerHighlightsCard.tsx","../src/components/TablePage/TableActionsBar.tsx","../src/components/shared/AutoResizingTextarea.tsx","../src/components/shared/TagEditor.tsx","../src/components/TablePage/TablePageLayout.tsx"],"names":["React","jsx","Fragment","createContext","useContext","useRef","useEffect","_a","jsxs","useState","Card","CardContent","Grid","Image","Typography","Button","CardHeader","EditIcon","ListIcon","SaveIcon","DeleteIcon","useMemo","Autocomplete","TextField","Popper","Box"],"mappings":"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","file":"TablePage.cjs","sourcesContent":["\"use client\"\nimport React from \"react\";\nimport type { TableFormat } from \"@/types/table\";\n\ninterface IGameTableContextType {\n table: TableFormat;\n setTable: React.Dispatch<React.SetStateAction<TableFormat | null>>;\n}\n\ninterface IGameTableProviderProps {\n children: React.ReactNode;\n}\n\nconst GameTableContext = React.createContext<IGameTableContextType | undefined>(undefined);\n\nexport function GameTableProvider(props: IGameTableProviderProps) {\n return <>{props.children}</>;\n}\n\nexport function useGameTableContext(): IGameTableContextType {\n const context = React.useContext(GameTableContext);\n\n if (context) {\n return context;\n }\n\n throw new Error('useGameTableContext is deprecated in the package build. Pass table data through props instead.');\n}\n","\"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;","\"use client\";\n\nimport React from \"react\";\nimport type { Tag } from \"@/types/tag\";\n\nexport function generateTagsDisplay(tag: Tag) {\n return (\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 marginTop:\"6px\",\n marginRight: \"6px\",\n marginBottom: \"6px\",\n background: tag.color || '#bfbcbb',\n color: \"white\",\n textShadow: \"black 0.2em 0.2em 0.4em\"\n }}\n >\n {tag.label}\n </span>\n )\n}\n\nexport function renderTagsFromIds(ids: number[] | undefined, legalTags: Tag[]) {\n if (!ids || !legalTags || legalTags.length === 0) { return ( <></>) }\n const validTags = ids\n .map((id) => legalTags.find((tag) => tag.id === id))\n .filter((tag): tag is Tag => Boolean(tag));\n\n return validTags.map((tag) => generateTagsDisplay(tag));\n}\n","\"use client\";\n\nimport Image from \"next/image\";\nimport Button from \"@mui/material/Button\";\nimport {Card, CardContent, CardHeader, Typography} from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {renderTagsFromIds} from \"@/components/shared/TagComponents\";\nimport type { Player } from \"@/types/player\";\nimport type { Tag } from \"@/types/tag\";\n\nexport type PlayerHighlightsCardProps = {\n addToTable?: (player: Player) => void;\n allTags: Tag[];\n canChangeDungeonMaster: boolean;\n canEdit: boolean;\n handleAssignToDungeonMaster: (player: Player) => void;\n isWaitList?: boolean;\n player: Player;\n removeFromTable: (player: Player) => void;\n}\n\nexport const PlayerHighlightsCard = function(props: PlayerHighlightsCardProps) {\n const {\n allTags,\n canChangeDungeonMaster,\n canEdit,\n handleAssignToDungeonMaster,\n isWaitList,\n player,\n removeFromTable\n } = props;\n\n return (\n <Card elevation={3} sx={{ backgroundColor: canEdit ? \"#fffbea\" : \"#f5f9fa\", marginBottom:\"6px\" }}>\n <CardContent>\n <Grid container spacing={2} direction=\"column\">\n <Grid container direction=\"row\">\n <Grid>\n <Image alt={player.username + \"'s profile pic\"} height={64} src={player.miniPic || \"\"} width={64} />\n </Grid>\n <Grid>\n <Typography variant=\"h5\">{player.username}</Typography>\n </Grid>\n </Grid>\n <Grid>{renderTagsFromIds(player.tags, allTags)}</Grid>\n </Grid>\n {canEdit && (\n <Grid>\n <Button onClick={() => removeFromTable(player)}>\n { isWaitList ? <p>Deny Player</p> : <p>Remove Player</p> }\n </Button>\n {canChangeDungeonMaster && (\n <Button onClick={() => {\n handleAssignToDungeonMaster(player);\n removeFromTable(player);\n }}>\n <p>Assign to DungeonMaster</p>\n </Button>\n )}\n </Grid>\n )}\n </CardContent>\n </Card>\n )\n}\n\nexport const DMHighlightsCard = function({canEdit, player, allTags}:{canEdit: boolean, player: Player, allTags:Tag[]}) {\n return (\n <Card elevation={3} sx={{ backgroundColor: \"#f5f9fa\", marginBottom:\"6px\" }}>\n <CardHeader slotProps={{title: { variant: \"h4\"}}} title=\"Game Master\"/>\n <CardContent sx={{ backgroundColor: canEdit ? '#fffbea' : 'inherit' }}>\n <Grid container spacing={2} direction=\"column\">\n <Grid>\n <Typography variant=\"h5\">{player.username}</Typography>\n </Grid>\n <Grid container direction=\"row\">\n <Grid>\n <Image alt={player.username + \"'s profile pic\"} height={120} src={player.imageUrl ? player.imageUrl : \"\"} width={256} />\n </Grid>\n <Grid>{renderTagsFromIds(player.tags, allTags)}</Grid>\n <Typography>{player.description}</Typography>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n )\n}\n","\"use client\";\n\nimport type { ReactNode } from \"react\";\nimport Image from \"next/image\";\nimport Button from \"@mui/material/Button\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport { Grid, Typography } from \"@mui/material\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport EditIcon from \"@mui/icons-material/Edit\";\nimport ListIcon from \"@mui/icons-material/List\";\nimport SaveIcon from \"@mui/icons-material/Save\";\nimport { useModal } from \"@/components/TablePage/ModalProvider/ModalContext\";\nimport type { Player } from \"@/types/player\";\nimport type { TableStatus } from \"@/components/TablePage/types\";\n\nexport interface TableActionProps {\n isInEditMode: boolean;\n numPlayers: number;\n onDeleteTable?: () => void | Promise<void>;\n onEditModeChange: (nextValue: boolean) => void;\n onJoinWaitlist?: () => void | Promise<void>;\n onLeaveTable?: () => void | Promise<void>;\n onPromoteWaitlistPlayer?: (playerId: number) => void;\n onSave: () => void;\n slots: number;\n tableStatus: TableStatus;\n waitlistPlayers: Player[];\n}\n\nexport default function TableActionsBar(props: TableActionProps) {\n const { hideModal, showModal } = useModal();\n const {\n isInEditMode,\n numPlayers,\n onDeleteTable,\n onEditModeChange,\n onJoinWaitlist,\n onLeaveTable,\n onPromoteWaitlistPlayer,\n onSave,\n slots,\n tableStatus,\n waitlistPlayers,\n } = props;\n const {isOwner, isPlayer, isDM, onWaitlist} = tableStatus;\n\n const canEditTable = isOwner && !isInEditMode;\n const canSaveTable = isOwner && isInEditMode;\n const canViewWaitlist = isOwner || isDM || waitlistPlayers.length > 0;\n\n const renderPlayerWaitlistModalContent = (canMovePlayersToTable?: boolean): ReactNode => {\n if (waitlistPlayers.length === 0) {\n return <p>Waitlist is empty!</p>;\n }\n\n return (\n <div className=\"flex flex-col items-center\">\n <CardHeader slotProps={{title: {variant: \"h4\"}}} title=\"Waitlist Players: \"/>\n <ul className=\"gap-8\">\n {waitlistPlayers.map((player) => (\n <li\n className={`${canMovePlayersToTable ? 'bg-amber-100 cursor-pointer' : 'bg-gray-200'} mb-8 flex flex-row flex-start space-between justify-center items-center gap-3 p-2 rounded`}\n key={player.id}\n onClick={() => canMovePlayersToTable ? onPromoteWaitlistPlayer?.(player.id) : undefined}\n tabIndex={0}\n >\n <Image\n alt={player.username + \"'s profile pic\"}\n height={64}\n src={player.miniPic || \"\"}\n width={64}\n />\n <div>{player.username}</div>\n </li>\n ))}\n </ul>\n <button onClick={() => hideModal()}>close modal</button>\n </div>\n )\n }\n\n return (\n <Grid container direction=\"column\" spacing={1}>\n <Grid container direction=\"row\">\n <Typography color=\"white\" sx={{ textShadow:'4px 4px 6px rgba(0, 0, 0, 0.5)' }}>\n Players: {numPlayers} / {slots}\n </Typography>\n </Grid>\n\n <Grid container direction=\"row\">\n {!isOwner && !isPlayer && !isDM && !onWaitlist && (\n <Button onClick={() => onJoinWaitlist?.()} sx={buttonStyle}>\n Join Waitlist\n </Button>\n )}\n\n {!isOwner && (isPlayer || onWaitlist) && (\n <Button onClick={() => onLeaveTable?.()} sx={buttonStyle}>\n {onWaitlist ? \"Leave Waitlist\" : \"Leave Table\"}\n </Button>\n )}\n\n { canEditTable ? (\n <>\n <Button onClick={() => onEditModeChange(true)} sx={buttonStyle} endIcon={<EditIcon/>}>\n Edit\n </Button>\n {canViewWaitlist ? (\n <Button\n endIcon={<ListIcon />}\n onClick={() => showModal(renderPlayerWaitlistModalContent(false))}\n sx={buttonStyle}\n >\n View Waitlist\n </Button>\n ) : null}\n </>\n ) : canSaveTable ? (\n <>\n <Button onClick={onSave} sx={buttonStyle} endIcon={<SaveIcon/>}>\n Save\n </Button>\n <Button onClick={() => onEditModeChange(false)} sx={buttonStyle}>\n Cancel\n </Button>\n <Button\n endIcon={<ListIcon />}\n onClick={() => showModal(renderPlayerWaitlistModalContent(true))}\n sx={buttonStyle}\n >\n Edit Waitlist\n </Button>\n </>\n ) : null}\n\n { isOwner && (\n <Button onClick={() => onDeleteTable?.()} sx={buttonStyle} endIcon={<DeleteIcon/>}>\n Delete Table\n </Button>\n )}\n </Grid>\n </Grid>\n )\n}\n\nconst buttonStyle = {\n marginLeft: \"3px\",\n backgroundColor:\"blue\",\n color:\"white\",\n borderRadius:\"5px\",\n};\n","\"use client\"\r\n\r\nimport React, {Dispatch, SetStateAction, useEffect} from 'react';\r\n\r\ninterface IAutoResizingTextareaProps {\r\n isInEditMode: boolean;\r\n onChange: Dispatch<SetStateAction<string>>;\r\n textareaRef: React.RefObject<HTMLTextAreaElement | null>;\r\n value: string;\r\n}\r\n\r\nconst AutoResizingTextarea: React.FC<IAutoResizingTextareaProps> = (props: IAutoResizingTextareaProps) => {\r\n const { isInEditMode, onChange, textareaRef, value } = props;\r\n\r\n useEffect(() => {\r\n if (isInEditMode && textareaRef.current) {\r\n const textarea = textareaRef.current;\r\n\r\n textarea.style.height = 'auto';\r\n textarea.style.height = `${textarea.scrollHeight}px`;\r\n }\r\n }, [isInEditMode, textareaRef, value]); // Run effect when entering edit mode or value changes\r\n\r\n return (\r\n <textarea\r\n ref={textareaRef}\r\n value={value}\r\n onChange={(e) => onChange(e.target.value)}\r\n style={{\r\n backgroundColor: '#fffbea',\r\n overflow: 'hidden',\r\n resize: 'none',\r\n width: '100%'\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport default AutoResizingTextarea;\r\n","\"use client\";\n\nimport React, { useMemo, useState } from \"react\";\nimport Autocomplete from \"@mui/material/Autocomplete\";\nimport Card from \"@mui/material/Card\";\nimport CardContent from \"@mui/material/CardContent\";\nimport CardHeader from \"@mui/material/CardHeader\";\nimport Grid from \"@mui/material/Grid\";\nimport Popper, { PopperProps } from \"@mui/material/Popper\";\nimport TextField from \"@mui/material/TextField\";\nimport type { Tag } from \"@/types/tag\";\n\nexport interface TagEditorProps {\n title?: string;\n selectedTags: Tag[];\n possibleTags: Tag[];\n onToggleTag: (id: number) => void;\n}\n\nexport function TagEditor({\n title = \"Tags\",\n selectedTags,\n possibleTags,\n onToggleTag,\n}: TagEditorProps) {\n const [inputValue, setInputValue] = useState(\"\");\n const selectedIds = useMemo(() => selectedTags.map((tag) => tag.id), [selectedTags]);\n\n const options = useMemo(\n () => possibleTags.map((tag) => ({ value: tag.id, label: tag.label })),\n [possibleTags]\n );\n\n return (\n <Grid container>\n <Grid size={{ xs: 12 }}>\n <Card>\n <CardHeader\n title={title}\n style={{\n background: \"linear-gradient(135deg, rgba(25, 118, 210, 0.8), rgba(25, 118, 210, 1))\",\n color: \"#FFFFFF\",\n fontSize: \"1.5rem\",\n textShadow: \"0px 3px 6px rgba(0, 0, 0, 0.5)\",\n }}\n />\n <CardContent>\n <div className=\"mt-2 flex flex-wrap gap-2\">\n {selectedTags.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={() => onToggleTag(tag.id)}\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 </div>\n <Grid container spacing={3}>\n <Grid sx={{ marginTop: 3, width: \"100%\" }}>\n <Autocomplete\n key={selectedIds.join(\"-\")}\n options={options}\n filterOptions={(availableOptions, state) =>\n availableOptions\n .filter(\n (option) =>\n !selectedIds.includes(option.value) &&\n option.label.toLowerCase().includes(state.inputValue.toLowerCase())\n )\n .slice(0, 3)\n }\n value={null}\n inputValue={inputValue}\n onInputChange={(event, newInputValue) => {\n if (event && event.type === \"change\") {\n setInputValue(newInputValue);\n }\n }}\n onChange={(event, newValue) => {\n if (newValue) {\n onToggleTag(newValue.value);\n }\n setInputValue(\"\");\n }}\n slots={{ popper: CustomPopper }}\n renderInput={(params) => <TextField {...params} label=\"Select Tags\" />}\n />\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n </Grid>\n </Grid>\n );\n}\n\nconst CustomPopper = (props: PopperProps) => {\n return (\n <Popper\n {...props}\n modifiers={[\n {\n name: \"preventOverflow\",\n options: { boundary: \"viewport\" },\n },\n {\n name: \"offset\",\n options: { offset: [0, -10] },\n },\n ]}\n placement=\"top-start\"\n />\n );\n};\n","\"use client\";\n\nimport { JSX, useEffect, useMemo, useRef, useState } from \"react\";\nimport { Box, Card, CardContent, CardHeader, Typography } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport AutoResizingTextarea from \"@/components/shared/AutoResizingTextarea\";\nimport { TagEditor, generateTagsDisplay } from \"@/components/shared\";\nimport { DMHighlightsCard, PlayerHighlightsCard } from \"@/components/TablePage/players/PlayerHighlightsCard\";\nimport TableActionsBar from \"@/components/TablePage/TableActionsBar\";\nimport type { Player } from \"@/types/player\";\nimport type { TableRecord } from \"@/types/tables\";\nimport type { Tag } from \"@/types/tag\";\nimport type { TablePageLayoutProps } from \"@/components/TablePage/types\";\n\nexport function TablePageLayout(props: TablePageLayoutProps) {\n const { allTags, dungeonMaster, onDeleteTable, onJoinWaitlist, onLeaveTable, onSaveDraft, players, table, tableStatus, waitlistPlayers } = props;\n const textAreaRef = useRef<HTMLTextAreaElement>(null);\n const [isTableInEditMode, setIsTableInEditMode] = useState(false);\n\n const [currentDescription, setCurrentDescription] = useState(table.description);\n const [currentDungeonMaster, setCurrentDungeonMaster] = useState(dungeonMaster);\n const [currentPlayers, setCurrentPlayers] = useState(players);\n const [currentShortDescription, setCurrentShortDescription] = useState(table.shortDescription);\n const [currentTitle, setCurrentTitle] = useState(table.title);\n const [currentWaitlistPlayers, setCurrentWaitlistPlayers] = useState(waitlistPlayers);\n const [currentTagIds, setCurrentTagIds] = useState<number[]>(table.tags ?? []);\n\n useEffect(() => {\n setCurrentDescription(table.description);\n setCurrentDungeonMaster(dungeonMaster);\n setCurrentPlayers(players);\n setCurrentShortDescription(table.shortDescription);\n setCurrentTitle(table.title);\n setCurrentWaitlistPlayers(waitlistPlayers);\n setCurrentTagIds(table.tags ?? []);\n }, [dungeonMaster, players, table, waitlistPlayers]);\n\n const currentTags = useMemo(\n () => allTags.filter((tag) => currentTagIds.includes(tag.id)),\n [allTags, currentTagIds]\n );\n\n const handleAssignToDungeonMaster = (newDungeonMaster: Player) => {\n setCurrentDungeonMaster(newDungeonMaster);\n };\n\n const handleRemovePlayerFromTable = (playerToRemove: Player): void => {\n setCurrentPlayers((prevState) => prevState.filter((player) => player.id !== playerToRemove.id));\n };\n\n const handlePromoteWaitlistPlayer = (playerIdToPromote: number) => {\n setCurrentWaitlistPlayers((prevWaitlist) => {\n const foundPlayer = prevWaitlist.find((player) => player.id === playerIdToPromote);\n if (!foundPlayer) {\n return prevWaitlist;\n }\n\n setCurrentPlayers((prevPlayers) => [...prevPlayers, foundPlayer]);\n return prevWaitlist.filter((player) => player.id !== playerIdToPromote);\n });\n };\n\n const handleToggleTag = (tagId: number) => {\n setCurrentTagIds((prevState) =>\n prevState.includes(tagId)\n ? prevState.filter((id) => id !== tagId)\n : [...prevState, tagId]\n );\n };\n\n const handleSaveTable = () => {\n const nextDraft: TableRecord = {\n ...table,\n description: currentDescription,\n dungeonMaster: String(currentDungeonMaster.id),\n players: currentPlayers.map((player) => player.id),\n shortDescription: currentShortDescription,\n tags: currentTagIds,\n title: currentTitle,\n waitlist: currentWaitlistPlayers.map((player) => player.id),\n };\n\n void onSaveDraft?.(nextDraft);\n setIsTableInEditMode(false);\n };\n\n return (\n <Card\n sx={{\n backgroundColor: isTableInEditMode ? \"lightsalmon\" : \"white\",\n borderRadius: \"5%\",\n p: 2,\n boxShadow: \"0px 8px 15px rgba(25, 118, 210, 0.3)\",\n }}\n >\n <Grid container direction=\"column\">\n <Grid\n container\n direction=\"column\"\n spacing={1}\n sx={{\n px: 2,\n py: 1.5,\n borderRadius: 2,\n background: \"linear-gradient(135deg, rgba(25,118,210,0.8), rgba(25,118,210,1))\",\n textShadow:'4px 4px 6px rgba(0, 0, 0, 0.5)'\n }}\n >\n <Box>\n {isTableInEditMode ? (\n <input\n onChange={(e) => setCurrentTitle(e.target.value)}\n style={{ backgroundColor: '#fffbea' }}\n tabIndex={0}\n type=\"text\"\n value={currentTitle}\n />\n ) : (\n <CardHeader\n title={currentTitle}\n sx={{\n p: 0,\n \"& .MuiCardHeader-title\": {\n color: \"white\",\n fontWeight: 700,\n },\n }}\n />\n )}\n </Box>\n\n {isTableInEditMode ? (\n <input\n onChange={(e) => setCurrentShortDescription(e.target.value)}\n style={{ backgroundColor: '#fffbea' }}\n tabIndex={0}\n type=\"text\"\n value={currentShortDescription}\n />\n ) : (\n <Typography sx={{ color: \"white\", opacity: 0.95 }}>\n {currentShortDescription}\n </Typography>\n )}\n\n <Grid container>\n {isTableInEditMode\n ? renderEditableTags(currentTags, allTags, handleToggleTag)\n : renderTags(currentTagIds, allTags)}\n </Grid>\n\n <TableActionsBar\n isInEditMode={isTableInEditMode}\n numPlayers={currentPlayers.length}\n onDeleteTable={onDeleteTable}\n onEditModeChange={setIsTableInEditMode}\n onJoinWaitlist={onJoinWaitlist}\n onLeaveTable={onLeaveTable}\n onPromoteWaitlistPlayer={handlePromoteWaitlistPlayer}\n onSave={handleSaveTable}\n slots={table.capacity || 0}\n tableStatus={tableStatus}\n waitlistPlayers={currentWaitlistPlayers}\n />\n </Grid>\n\n <Grid container spacing={2} sx={{ mt: 2 }}>\n <Grid size={{xs: 12, md:8}}>\n <Card sx={{ height: \"100%\" }}>\n <CardContent>\n {isTableInEditMode ? (\n <AutoResizingTextarea\n isInEditMode={isTableInEditMode}\n onChange={setCurrentDescription}\n textareaRef={textAreaRef}\n value={currentDescription}\n />\n ) : (\n <Typography sx={{ whiteSpace: \"pre-wrap\" }}>\n {currentDescription}\n </Typography>\n )}\n </CardContent>\n </Card>\n </Grid>\n\n <Grid size={{xs: 12, md:4}}>\n <DMHighlightsCard canEdit={isTableInEditMode} player={currentDungeonMaster} allTags={allTags} />\n\n <Card sx={{ height: \"100%\" }}>\n <CardHeader slotProps={{title: {variant: \"h4\"}}} title=\"Players: \"/>\n <CardContent>\n {currentPlayers.map((player) => (\n <PlayerHighlightsCard\n allTags={allTags}\n canChangeDungeonMaster={tableStatus.isOwner || tableStatus.isDM}\n canEdit={isTableInEditMode}\n handleAssignToDungeonMaster={handleAssignToDungeonMaster}\n key={player.id}\n player={player}\n removeFromTable={handleRemovePlayerFromTable}\n />\n ))}\n </CardContent>\n </Card>\n </Grid>\n </Grid>\n </Grid>\n </Card>\n );\n}\n\nconst renderTags = function (\n tags: number[] | undefined,\n allTags: Tag[] | undefined\n): JSX.Element {\n if (!tags || !allTags) {\n return <></>;\n }\n return (\n <Grid container spacing={1} sx={{ pb: 1.5 }}>\n {tags.map((tagId) => {\n const tag = allTags.find((potentialTag) => tagId === potentialTag.id);\n return tag ? generateTagsDisplay(tag) : <></>;\n })}\n </Grid>\n );\n};\n\nconst renderEditableTags = function (\n selectedTags: Tag[],\n allTags: Tag[],\n onToggleTag: (tagId: number) => void\n): JSX.Element {\n return (\n <Grid size={{ xs: 12 }} sx={{ pb: 1.5 }}>\n <TagEditor\n title=\"Table Tags\"\n possibleTags={allTags.filter((tag) => tag.appliesTo?.tables)}\n selectedTags={selectedTags}\n onToggleTag={onToggleTag}\n />\n </Grid>\n );\n};\n\nexport default TablePageLayout;\n"]}
@@ -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=TablePage.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,54 @@
1
+ export { GameTableProvider, useGameTableContext } from './TablePage/GameTableProvider';
2
+ export { ModalContext, ModalProvider, useModal } from './TablePage/ModalProvider';
3
+ export { DMHighlightsCard, PlayerHighlightsCard, PlayerHighlightsCardProps } from './TablePage/players';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import { Player } from './types/player';
6
+ import { TableRecord } from './types/tables';
7
+ import { Tag } from './types/tag';
8
+ import 'react';
9
+ import './types/table.cjs';
10
+
11
+ interface UpdatableValues {
12
+ description?: string;
13
+ shortDescription?: string;
14
+ tags?: number[];
15
+ communicationPrefs?: string;
16
+ dungeonMaster?: string;
17
+ }
18
+ type TableStatus = {
19
+ isPlayer: boolean;
20
+ isDM: boolean;
21
+ isOwner: boolean;
22
+ onWaitlist: boolean;
23
+ };
24
+ interface TablePageLayoutProps {
25
+ table: TableRecord;
26
+ allTags: Tag[];
27
+ players: Player[];
28
+ dungeonMaster: Player;
29
+ waitlistPlayers: Player[];
30
+ tableStatus: TableStatus;
31
+ onSaveDraft?: (draft: TableRecord) => void | Promise<void>;
32
+ onJoinWaitlist?: () => void | Promise<void>;
33
+ onLeaveTable?: () => void | Promise<void>;
34
+ onDeleteTable?: () => void | Promise<void>;
35
+ }
36
+
37
+ interface TableActionProps {
38
+ isInEditMode: boolean;
39
+ numPlayers: number;
40
+ onDeleteTable?: () => void | Promise<void>;
41
+ onEditModeChange: (nextValue: boolean) => void;
42
+ onJoinWaitlist?: () => void | Promise<void>;
43
+ onLeaveTable?: () => void | Promise<void>;
44
+ onPromoteWaitlistPlayer?: (playerId: number) => void;
45
+ onSave: () => void;
46
+ slots: number;
47
+ tableStatus: TableStatus;
48
+ waitlistPlayers: Player[];
49
+ }
50
+ declare function TableActionsBar(props: TableActionProps): react_jsx_runtime.JSX.Element;
51
+
52
+ declare function TablePageLayout(props: TablePageLayoutProps): react_jsx_runtime.JSX.Element;
53
+
54
+ export { type TableActionProps, TableActionsBar, TablePageLayout, type TablePageLayoutProps, type TableStatus, type UpdatableValues };
@@ -0,0 +1,54 @@
1
+ export { GameTableProvider, useGameTableContext } from './TablePage/GameTableProvider';
2
+ export { ModalContext, ModalProvider, useModal } from './TablePage/ModalProvider';
3
+ export { DMHighlightsCard, PlayerHighlightsCard, PlayerHighlightsCardProps } from './TablePage/players';
4
+ import * as react_jsx_runtime from 'react/jsx-runtime';
5
+ import { Player } from './types/player';
6
+ import { TableRecord } from './types/tables';
7
+ import { Tag } from './types/tag';
8
+ import 'react';
9
+ import './types/table.js';
10
+
11
+ interface UpdatableValues {
12
+ description?: string;
13
+ shortDescription?: string;
14
+ tags?: number[];
15
+ communicationPrefs?: string;
16
+ dungeonMaster?: string;
17
+ }
18
+ type TableStatus = {
19
+ isPlayer: boolean;
20
+ isDM: boolean;
21
+ isOwner: boolean;
22
+ onWaitlist: boolean;
23
+ };
24
+ interface TablePageLayoutProps {
25
+ table: TableRecord;
26
+ allTags: Tag[];
27
+ players: Player[];
28
+ dungeonMaster: Player;
29
+ waitlistPlayers: Player[];
30
+ tableStatus: TableStatus;
31
+ onSaveDraft?: (draft: TableRecord) => void | Promise<void>;
32
+ onJoinWaitlist?: () => void | Promise<void>;
33
+ onLeaveTable?: () => void | Promise<void>;
34
+ onDeleteTable?: () => void | Promise<void>;
35
+ }
36
+
37
+ interface TableActionProps {
38
+ isInEditMode: boolean;
39
+ numPlayers: number;
40
+ onDeleteTable?: () => void | Promise<void>;
41
+ onEditModeChange: (nextValue: boolean) => void;
42
+ onJoinWaitlist?: () => void | Promise<void>;
43
+ onLeaveTable?: () => void | Promise<void>;
44
+ onPromoteWaitlistPlayer?: (playerId: number) => void;
45
+ onSave: () => void;
46
+ slots: number;
47
+ tableStatus: TableStatus;
48
+ waitlistPlayers: Player[];
49
+ }
50
+ declare function TableActionsBar(props: TableActionProps): react_jsx_runtime.JSX.Element;
51
+
52
+ declare function TablePageLayout(props: TablePageLayoutProps): react_jsx_runtime.JSX.Element;
53
+
54
+ export { type TableActionProps, TableActionsBar, TablePageLayout, type TablePageLayoutProps, type TableStatus, type UpdatableValues };