diff --git a/package.json b/package.json index 57352315..aeac1a45 100644 --- a/package.json +++ b/package.json @@ -18,14 +18,15 @@ "@airgap/beacon-sdk": "^4.0.10", "@craco/craco": "^7.1.0", "@date-io/dayjs": "1.x", - "@emotion/react": "^11.10.4", - "@emotion/styled": "^11.10.4", + "@emotion/react": "^11.11.1", + "@emotion/styled": "^11.11.0", "@hookform/resolvers": "^2.8.1", "@material-ui/core": "^4.11.3", "@material-ui/icons": "^4.9.1", "@material-ui/lab": "^4.0.0-alpha.57", "@microsoft/signalr": "^5.0.9", - "@mui/material": "^5.10.6", + "@mui/icons-material": "^5.14.18", + "@mui/material": "^5.14.18", "@mui/x-date-pickers": "^5.0.2", "@taquito/beacon-wallet": "^17.3.1", "@taquito/signer": "^17.3.1", @@ -50,6 +51,7 @@ "graphql": "^15.5.1", "graphql-request": "^3.4.0", "hex-to-rgba": "^2.0.1", + "html-react-parser": "^5.0.6", "https-browserify": "^1.0.0", "jsonschema": "^1.4.0", "launchdarkly-react-client-sdk": "2.27.0", diff --git a/src/modules/lite/creator/index.tsx b/src/modules/lite/creator/index.tsx index 4be97433..91662714 100644 --- a/src/modules/lite/creator/index.tsx +++ b/src/modules/lite/creator/index.tsx @@ -26,9 +26,33 @@ import { useTezos } from "services/beacon/hooks/useTezos" import { getSignature } from "services/utils/utils" import { Navbar } from "modules/common/Toolbar" import { SmallButton } from "modules/common/SmallButton" -import { EnvKey, getEnv } from "services/config" import { saveLiteCommunity } from "services/services/lite/lite-services" import { InfoRounded } from "@material-ui/icons" +import CodeIcon from "@mui/icons-material/Code" +import CodeOffIcon from "@mui/icons-material/CodeOff" +import { ProposalCodeEditorInput } from "modules/explorer/components/ProposalFormInput" +import Prism, { highlight } from "prismjs" +import "prism-themes/themes/prism-night-owl.css" + +const CodeButton = styled(CodeIcon)(({ theme }) => ({ + background: theme.palette.primary.dark, + padding: 3, + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + borderBottom: "0.5px solid", + cursor: "pointer", + color: theme.palette.secondary.main +})) + +const CodeOffButton = styled(CodeOffIcon)(({ theme }) => ({ + background: theme.palette.primary.dark, + padding: 3, + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + borderBottom: "0.5px solid", + cursor: "pointer", + color: theme.palette.secondary.main +})) const CommunityContainer = styled(Grid)(({ theme }) => ({ boxSizing: "border-box", @@ -116,6 +140,7 @@ const CustomTextarea = styled(withTheme(TextareaAutosize))(props => ({ "fontWeight": 400, "padding": "21px 20px", "fontFamily": "Roboto Mono", + "borderTopRightRadius": 0, "border": "none", "fontSize": 16, "color": props.theme.palette.text.secondary, @@ -197,6 +222,27 @@ const CommunityForm = ({ submitForm, values, setFieldValue, errors, touched, set const { data: tokenMetadata, isLoading: loading, error } = useTokenMetadata(values?.tokenAddress) + const codeEditorStyles = { + minHeight: 500, + fontFamily: "Roboto Mono", + fontSize: 14, + fontWeight: 400, + outlineWidth: 0, + color: "white" + } + + const [isMarkup, setIsMarkup] = useState(false) + const grammar = Prism.languages.markup + const codeEditorPlaceholder = ` + + + Proposal Description + + +

...

+ + ` + useEffect(() => { if (tokenMetadata) { setFieldValue("tokenID", tokenMetadata.token_id) @@ -227,20 +273,55 @@ const CommunityForm = ({ submitForm, values, setFieldValue, errors, touched, set {errors?.name && touched.name ? {errors.name} : null} - - {() => ( - { - setFieldValue("description", newValue.target.value) - }} - /> - )} - + {!isMarkup ? ( +
+ + setIsMarkup(true)} /> + +
+ ) : ( +
+ + setIsMarkup(false)} /> + +
+ )} + + {!isMarkup ? ( + + {() => ( + { + setFieldValue("description", newValue.target.value) + }} + /> + )} + + ) : ( + + {() => ( + { + console.log(newValue) + setFieldValue("description", newValue) + }} + highlight={code => highlight(code, grammar, "javascript")} + placeholder={codeEditorPlaceholder} + /> + )} + + )}
diff --git a/src/modules/lite/explorer/components/DaoCardDetail.tsx b/src/modules/lite/explorer/components/DaoCardDetail.tsx index 6eef4139..c495d461 100644 --- a/src/modules/lite/explorer/components/DaoCardDetail.tsx +++ b/src/modules/lite/explorer/components/DaoCardDetail.tsx @@ -7,6 +7,7 @@ import { DashboardContext } from "../context/ActionSheets/explorer" import { updateCount } from "services/services/lite/lite-services" import { useIsMember } from "../hooks/useIsMember" import { useHoldersTotalCount } from "../hooks/useHolderTotalCount" +import ReactHtmlParser from "react-html-parser" const StyledAvatar = styled(Avatar)({ height: 159, @@ -112,7 +113,7 @@ export const DaoCardDetail: React.FC = ({ community, setIsUp - {community?.description} + {ReactHtmlParser(community?.description ? community?.description : "")} diff --git a/src/modules/lite/explorer/components/ProposalDetailCard.tsx b/src/modules/lite/explorer/components/ProposalDetailCard.tsx index 450d7c11..8e18da67 100644 --- a/src/modules/lite/explorer/components/ProposalDetailCard.tsx +++ b/src/modules/lite/explorer/components/ProposalDetailCard.tsx @@ -10,6 +10,7 @@ import LinkIcon from "assets/img/link.svg" import { Poll } from "models/Polls" import dayjs from "dayjs" import { useNotification } from "modules/common/hooks/useNotification" +import ReactHtmlParser from "react-html-parser" const LogoItem = styled("img")(({ theme }) => ({ cursor: "pointer", @@ -195,7 +196,7 @@ export const ProposalDetailCard: React.FC<{ poll: Poll | undefined; daoId: strin - {poll?.description} + {ReactHtmlParser(poll?.description ? poll?.description : "")} diff --git a/src/modules/lite/explorer/components/ProposalTableRow.tsx b/src/modules/lite/explorer/components/ProposalTableRow.tsx index 26e66120..fc2d5918 100644 --- a/src/modules/lite/explorer/components/ProposalTableRow.tsx +++ b/src/modules/lite/explorer/components/ProposalTableRow.tsx @@ -6,6 +6,7 @@ import { useHistory } from "react-router" import { Blockie } from "modules/common/Blockie" import { toShortAddress } from "services/contracts/utils" import { Poll } from "models/Polls" +import ReactHtmlParser from "react-html-parser" export interface ProposalTableRowData { daoId?: string @@ -76,7 +77,7 @@ export const ProposalTableRow: React.FC<{ poll: Poll; daoId?: string }> = ({ pol - {poll.description} + {ReactHtmlParser(poll.description)} diff --git a/src/modules/lite/explorer/pages/CreateProposal/index.tsx b/src/modules/lite/explorer/pages/CreateProposal/index.tsx index 6c9b42fb..aa5b6bfc 100644 --- a/src/modules/lite/explorer/pages/CreateProposal/index.tsx +++ b/src/modules/lite/explorer/pages/CreateProposal/index.tsx @@ -9,7 +9,8 @@ import { withTheme, TextareaAutosize, useTheme, - useMediaQuery + useMediaQuery, + Tooltip } from "@material-ui/core" import { Choices } from "../../components/Choices" @@ -30,6 +31,12 @@ import { isWebUri } from "valid-url" import { useDAO } from "services/services/dao/hooks/useDAO" import { useDAOID } from "modules/explorer/pages/DAO/router" import { useUserTokenBalance } from "services/contracts/token/hooks/useUserTokenBalance" +import CodeIcon from "@mui/icons-material/Code" +import CodeOffIcon from "@mui/icons-material/CodeOff" +import { ProposalCodeEditorInput } from "modules/explorer/components/ProposalFormInput" +import Prism, { highlight } from "prismjs" +import "prism-themes/themes/prism-night-owl.css" + dayjs.extend(duration) const ProposalContainer = styled(Grid)(({ theme }) => ({ @@ -39,6 +46,26 @@ const ProposalContainer = styled(Grid)(({ theme }) => ({ } })) +const CodeButton = styled(CodeIcon)(({ theme }) => ({ + background: theme.palette.primary.main, + padding: 3, + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + borderBottom: "0.5px solid", + cursor: "pointer", + color: theme.palette.secondary.main +})) + +const CodeOffButton = styled(CodeOffIcon)(({ theme }) => ({ + background: theme.palette.primary.main, + padding: 3, + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + borderBottom: "0.5px solid", + cursor: "pointer", + color: theme.palette.secondary.main +})) + const CustomFormikTextField = withStyles({ root: { "& .MuiInput-root": { @@ -109,6 +136,7 @@ const CustomTextarea = styled(withTheme(TextareaAutosize))(props => ({ "paddingTop": 19, "paddingLeft": 26, "border": "none", + "borderTopRightRadius": 0, "fontSize": 17, "color": props.theme.palette.text.primary, "background": props.theme.palette.primary.main, @@ -193,17 +221,6 @@ const hasDuplicates = (options: string[]) => { return new Set(trimOptions).size !== trimOptions.length } -const isValidHttpUrl = (externalLink: string) => { - let url - try { - url = new URL(externalLink) - } catch (_) { - return false - } - - return url.protocol === "http:" || url.protocol === "https:" -} - const validateForm = (values: Poll) => { const errors: FormikErrors = {} @@ -285,7 +302,27 @@ export const ProposalForm = ({ const { pathname } = useLocation() + const codeEditorStyles = { + minHeight: 500, + fontFamily: "Roboto Mono", + fontSize: 14, + fontWeight: 400, + outlineWidth: 0, + color: "white" + } + const shouldShowBar = pathname.includes("/lite") ? true : false + const [isMarkup, setIsMarkup] = useState(false) + const grammar = Prism.languages.markup + const codeEditorPlaceholder = ` + + + Proposal Description + + +

...

+ + ` const hasErrors = errors.endTimeDays || errors.endTimeHours || errors.endTimeMinutes return ( @@ -315,19 +352,53 @@ export const ProposalForm = ({ {errors?.name && touched.name ? {errors.name} : null} - - {() => ( - { - setFieldValue("description", newValue.target.value) - }} - /> - )} - + {!isMarkup ? ( +
+ + setIsMarkup(true)} /> + +
+ ) : ( +
+ + setIsMarkup(false)} /> + +
+ )} + {!isMarkup ? ( + + {() => ( + { + setFieldValue("description", newValue.target.value) + }} + /> + )} + + ) : ( + + {() => ( + { + console.log(newValue) + setFieldValue("description", newValue) + }} + highlight={code => highlight(code, grammar, "javascript")} + placeholder={codeEditorPlaceholder} + /> + )} + + )}
diff --git a/yarn.lock b/yarn.lock index 220ed879..5b32a953 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1256,6 +1256,13 @@ dependencies: regenerator-runtime "^0.13.11" +"@babel/runtime@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" + integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.21.9", "@babel/template@^7.3.3": version "7.21.9" resolved "https://registry.npmjs.org/@babel/template/-/template-7.21.9.tgz" @@ -1521,10 +1528,10 @@ resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz" integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA== -"@emotion/react@^11.10.4": - version "11.11.0" - resolved "https://registry.npmjs.org/@emotion/react/-/react-11.11.0.tgz" - integrity sha512-ZSK3ZJsNkwfjT3JpDAWJZlrGD81Z3ytNDsxw1LKq1o+xkmO5pnWfr6gmCC8gHEFf3nSSX/09YrG67jybNPxSUw== +"@emotion/react@^11.11.1": + version "11.11.1" + resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.1.tgz#b2c36afac95b184f73b08da8c214fdf861fa4157" + integrity sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA== dependencies: "@babel/runtime" "^7.18.3" "@emotion/babel-plugin" "^11.11.0" @@ -1551,9 +1558,9 @@ resolved "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz" integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA== -"@emotion/styled@^11.10.4": +"@emotion/styled@^11.11.0": version "11.11.0" - resolved "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz" + resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.11.0.tgz#26b75e1b5a1b7a629d7c0a8b708fbf5a9cdce346" integrity sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng== dependencies: "@babel/runtime" "^7.18.3" @@ -1630,6 +1637,33 @@ resolved "https://registry.npmjs.org/@eslint/js/-/js-8.41.0.tgz" integrity sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA== +"@floating-ui/core@^1.4.2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c" + integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg== + dependencies: + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/dom@^1.5.1": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa" + integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA== + dependencies: + "@floating-ui/core" "^1.4.2" + "@floating-ui/utils" "^0.1.3" + +"@floating-ui/react-dom@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.4.tgz#b076fafbdfeb881e1d86ae748b7ff95150e9f3ec" + integrity sha512-CF8k2rgKeh/49UrnIBs4BdxPUV6vize/Db1d/YbCLyp9GiVZ0BEwf5AiDSxJRCr6yOkGqTFHtmrULxkEfYZ7dQ== + dependencies: + "@floating-ui/dom" "^1.5.1" + +"@floating-ui/utils@^0.1.3": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9" + integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A== + "@hookform/resolvers@^2.8.1": version "2.9.11" resolved "https://registry.npmjs.org/@hookform/resolvers/-/resolvers-2.9.11.tgz" @@ -2061,82 +2095,88 @@ node-fetch "^2.6.7" ws "^6.0.0" -"@mui/base@5.0.0-beta.3": - version "5.0.0-beta.3" - resolved "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.3.tgz" - integrity sha512-ErOMoGNpgf6BF5W+jgXDiRlXJnpSeg8XSRonuY5UCCMHIlOWtKDtt/LS3qDAbFFGb7tV/y6EBddbcMeexx+zHw== - dependencies: - "@babel/runtime" "^7.21.0" - "@emotion/is-prop-valid" "^1.2.1" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.13.1" - "@popperjs/core" "^2.11.7" - clsx "^1.2.1" +"@mui/base@5.0.0-beta.24": + version "5.0.0-beta.24" + resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.24.tgz#1a0638388291828dacf9547b466bc21fbaad3a2a" + integrity sha512-bKt2pUADHGQtqWDZ8nvL2Lvg2GNJyd/ZUgZAJoYzRgmnxBL9j36MSlS3+exEdYkikcnvVafcBtD904RypFKb0w== + dependencies: + "@babel/runtime" "^7.23.2" + "@floating-ui/react-dom" "^2.0.4" + "@mui/types" "^7.2.9" + "@mui/utils" "^5.14.18" + "@popperjs/core" "^2.11.8" + clsx "^2.0.0" prop-types "^15.8.1" - react-is "^18.2.0" -"@mui/core-downloads-tracker@^5.13.3": - version "5.13.3" - resolved "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.13.3.tgz" - integrity sha512-w4//nRIi9fiMow/MmhkForOezd8nc229EpSZZ5DzwpJNOmAXwypFTapOUVAGTUQiTJyeZXUNbQqYuUIrIs2nbg== - -"@mui/material@^5.10.6": - version "5.13.3" - resolved "https://registry.npmjs.org/@mui/material/-/material-5.13.3.tgz" - integrity sha512-10pek+Bz+PZ4rjUf3KTKfXWjPMUqU1nSnRPf4DAXABhsjzelGGfGW/EICgrLRrttYplTJZhoponWALezAge8ug== - dependencies: - "@babel/runtime" "^7.21.0" - "@mui/base" "5.0.0-beta.3" - "@mui/core-downloads-tracker" "^5.13.3" - "@mui/system" "^5.13.2" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.13.1" - "@types/react-transition-group" "^4.4.6" - clsx "^1.2.1" +"@mui/core-downloads-tracker@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.18.tgz#f8b187dc89756fa5c0b7d15aea537a6f73f0c2d8" + integrity sha512-yFpF35fEVDV81nVktu0BE9qn2dD/chs7PsQhlyaV3EnTeZi9RZBuvoEfRym1/jmhJ2tcfeWXiRuHG942mQXJJQ== + +"@mui/icons-material@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/icons-material/-/icons-material-5.14.18.tgz#9e92964cde8c7ba32cf50438a83403dc283f2328" + integrity sha512-o2z49R1G4SdBaxZjbMmkn+2OdT1bKymLvAYaB6pH59obM1CYv/0vAVm6zO31IqhwtYwXv6A7sLIwCGYTaVkcdg== + dependencies: + "@babel/runtime" "^7.23.2" + +"@mui/material@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.18.tgz#d0a89be3e27afe90135d542ddbf160b3f34e869c" + integrity sha512-y3UiR/JqrkF5xZR0sIKj6y7xwuEiweh9peiN3Zfjy1gXWXhz5wjlaLdoxFfKIEBUFfeQALxr/Y8avlHH+B9lpQ== + dependencies: + "@babel/runtime" "^7.23.2" + "@mui/base" "5.0.0-beta.24" + "@mui/core-downloads-tracker" "^5.14.18" + "@mui/system" "^5.14.18" + "@mui/types" "^7.2.9" + "@mui/utils" "^5.14.18" + "@types/react-transition-group" "^4.4.8" + clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" react-is "^18.2.0" react-transition-group "^4.4.5" -"@mui/private-theming@^5.13.1": - version "5.13.1" - resolved "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.13.1.tgz" - integrity sha512-HW4npLUD9BAkVppOUZHeO1FOKUJWAwbpy0VQoGe3McUYTlck1HezGHQCfBQ5S/Nszi7EViqiimECVl9xi+/WjQ== +"@mui/private-theming@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.18.tgz#98f97139ea21570493391ab377c1deb47fc6d1a2" + integrity sha512-WSgjqRlzfHU+2Rou3HlR2Gqfr4rZRsvFgataYO3qQ0/m6gShJN+lhVEvwEiJ9QYyVzMDvNpXZAcqp8Y2Vl+PAw== dependencies: - "@babel/runtime" "^7.21.0" - "@mui/utils" "^5.13.1" + "@babel/runtime" "^7.23.2" + "@mui/utils" "^5.14.18" prop-types "^15.8.1" -"@mui/styled-engine@^5.13.2": - version "5.13.2" - resolved "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.13.2.tgz" - integrity sha512-VCYCU6xVtXOrIN8lcbuPmoG+u7FYuOERG++fpY74hPpEWkyFQG97F+/XfTQVYzlR2m7nPjnwVUgATcTCMEaMvw== +"@mui/styled-engine@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.18.tgz#82d427bc975b85cecdbab2fd9353ed6c2df7eae1" + integrity sha512-pW8bpmF9uCB5FV2IPk6mfbQCjPI5vGI09NOLhtGXPeph/4xIfC3JdIX0TILU0WcTs3aFQqo6s2+1SFgIB9rCXA== dependencies: - "@babel/runtime" "^7.21.0" + "@babel/runtime" "^7.23.2" "@emotion/cache" "^11.11.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/system@^5.13.2": - version "5.13.2" - resolved "https://registry.npmjs.org/@mui/system/-/system-5.13.2.tgz" - integrity sha512-TPyWmRJPt0JPVxacZISI4o070xEJ7ftxpVtu6LWuYVOUOINlhoGOclam4iV8PDT3EMQEHuUrwU49po34UdWLlw== - dependencies: - "@babel/runtime" "^7.21.0" - "@mui/private-theming" "^5.13.1" - "@mui/styled-engine" "^5.13.2" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.13.1" - clsx "^1.2.1" +"@mui/system@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.18.tgz#0f671e8f0a5e8e965b79235d77c50098f54195b5" + integrity sha512-hSQQdb3KF72X4EN2hMEiv8EYJZSflfdd1TRaGPoR7CIAG347OxCslpBUwWngYobaxgKvq6xTrlIl+diaactVww== + dependencies: + "@babel/runtime" "^7.23.2" + "@mui/private-theming" "^5.14.18" + "@mui/styled-engine" "^5.14.18" + "@mui/types" "^7.2.9" + "@mui/utils" "^5.14.18" + clsx "^2.0.0" csstype "^3.1.2" prop-types "^15.8.1" -"@mui/types@^7.2.4": - version "7.2.4" - resolved "https://registry.npmjs.org/@mui/types/-/types-7.2.4.tgz" - integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA== +"@mui/types@^7.2.9": + version "7.2.9" + resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.9.tgz#730ee83a37af292a5973962f78ce5c95f31213a7" + integrity sha512-k1lN/PolaRZfNsRdAqXtcR71sTnv3z/VCCGPxU8HfdftDkzi335MdJ6scZxvofMAd/K/9EbzCZTFBmlNpQVdCg== -"@mui/utils@^5.10.3", "@mui/utils@^5.13.1": +"@mui/utils@^5.10.3": version "5.13.1" resolved "https://registry.npmjs.org/@mui/utils/-/utils-5.13.1.tgz" integrity sha512-6lXdWwmlUbEU2jUI8blw38Kt+3ly7xkmV9ljzY4Q20WhsJMWiNry9CX8M+TaP/HbtuyR8XKsdMgQW7h7MM3n3A== @@ -2147,6 +2187,16 @@ prop-types "^15.8.1" react-is "^18.2.0" +"@mui/utils@^5.14.18": + version "5.14.18" + resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.18.tgz#d2a46df9b06230423ba6b6317748b27185a56ac3" + integrity sha512-HZDRsJtEZ7WMSnrHV9uwScGze4wM/Y+u6pDVo+grUjt5yXzn+wI8QX/JwTHh9YSw/WpnUL80mJJjgCnWj2VrzQ== + dependencies: + "@babel/runtime" "^7.23.2" + "@types/prop-types" "^15.7.10" + prop-types "^15.8.1" + react-is "^18.2.0" + "@mui/x-date-pickers@^5.0.2": version "5.0.20" resolved "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-5.0.20.tgz" @@ -2208,9 +2258,9 @@ schema-utils "^3.0.0" source-map "^0.7.3" -"@popperjs/core@^2.11.7": +"@popperjs/core@^2.11.8": version "2.11.8" - resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@reach/portal@^0.13.0": @@ -3162,6 +3212,11 @@ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== +"@types/prop-types@^15.7.10": + version "15.7.10" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.10.tgz#892afc9332c4d62a5ea7e897fe48ed2085bbb08a" + integrity sha512-mxSnDQxPqsZxmeShFH+uwQ4kO4gcJcGahjjMFeLbKE95IAZiiZyiEepGZjtXJ7hN/yfu0bu9xN2ajcU0JcxX6A== + "@types/q@^1.5.1": version "1.5.5" resolved "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz" @@ -3232,13 +3287,20 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react-transition-group@^4.2.0", "@types/react-transition-group@^4.4.5", "@types/react-transition-group@^4.4.6": +"@types/react-transition-group@^4.2.0", "@types/react-transition-group@^4.4.5": version "4.4.6" resolved "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz" integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== dependencies: "@types/react" "*" +"@types/react-transition-group@^4.4.8": + version "4.4.9" + resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.9.tgz#12a1a1b5b8791067198149867b0823fbace31579" + integrity sha512-ZVNmWumUIh5NhH8aMD9CR2hdW0fNuYInlocZHaZ+dgk/1K49j1w/HoAuK1ki+pgscQrOFRTlXeoURtuzEkV3dg== + dependencies: + "@types/react" "*" + "@types/react@*", "@types/react@^17", "@types/react@^17.0.3", "@types/react@~17.0.3": version "17.0.60" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.60.tgz#a4a97dcdbebad76612c188fc06440e4995fd8ad2" @@ -4980,6 +5042,11 @@ clsx@^1.0.4, clsx@^1.1.0, clsx@^1.2.1: resolved "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz" integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== +clsx@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b" + integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q== + co@^4.6.0: version "4.6.0" resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" @@ -5794,12 +5861,21 @@ dom-serializer@^1.0.1: domhandler "^4.2.0" entities "^2.0.0" +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== -domelementtype@^2.0.1, domelementtype@^2.2.0: +domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: version "2.3.0" resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== @@ -5811,6 +5887,13 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" +domhandler@5.0.3, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + domhandler@^2.3.0, domhandler@^2.4.0: version "2.4.2" resolved "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz" @@ -5842,6 +5925,15 @@ domutils@^2.5.2, domutils@^2.8.0: domelementtype "^2.2.0" domhandler "^4.2.0" +domutils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + dot-case@^3.0.4: version "3.0.4" resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" @@ -5972,6 +6064,11 @@ entities@^2.0.0: resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +entities@^4.2.0, entities@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + error-ex@^1.3.1: version "1.3.2" resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" @@ -7322,6 +7419,14 @@ hpack.js@^2.1.6: readable-stream "^2.0.1" wbuf "^1.1.0" +html-dom-parser@5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/html-dom-parser/-/html-dom-parser-5.0.4.tgz#2941a762317d088e747db31c8cf290987ec30a55" + integrity sha512-azy8THLKd4Ar0OVJpEgX+MSjYvKdNDWlGiRBIlovMqEQYMAnLLXBhhiSwjylDD3RDdcCYT8Utg6uoRDeLHUyHg== + dependencies: + domhandler "5.0.3" + htmlparser2 "9.0.0" + html-encoding-sniffer@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz" @@ -7352,6 +7457,16 @@ html-minifier-terser@^6.0.2: relateurl "^0.2.7" terser "^5.10.0" +html-react-parser@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/html-react-parser/-/html-react-parser-5.0.6.tgz#ee9e8ae404aa38cfbaf3825cb26fabced46024a1" + integrity sha512-aPSzFhO2bK/L/mYQbMwFz+1QG8nhxozbwENt/52HTApasrBvDX87MFD5uSQIjq7Io0bnKzH4uh7PM42zZ4ag9A== + dependencies: + domhandler "5.0.3" + html-dom-parser "5.0.4" + react-property "2.0.2" + style-to-js "1.1.9" + html-void-elements@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz" @@ -7368,6 +7483,16 @@ html-webpack-plugin@^5.5.0: pretty-error "^4.0.0" tapable "^2.0.0" +htmlparser2@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-9.0.0.tgz#e431142b7eeb1d91672742dea48af8ac7140cddb" + integrity sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.1.0" + entities "^4.5.0" + htmlparser2@^3.9.0: version "3.10.1" resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz" @@ -7588,6 +7713,11 @@ inline-style-parser@0.1.1: resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== +inline-style-parser@0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.2.tgz#d498b4e6de0373458fc610ff793f6b14ebf45633" + integrity sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ== + internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" @@ -11094,7 +11224,7 @@ react-hook-form@^7.15.4: react-html-parser@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/react-html-parser/-/react-html-parser-2.0.2.tgz" + resolved "https://registry.yarnpkg.com/react-html-parser/-/react-html-parser-2.0.2.tgz#6dbe1ddd2cebc1b34ca15215158021db5fc5685e" integrity sha512-XeerLwCVjTs3njZcgCOeDUqLgNIt/t+6Jgi5/qPsO/krUWl76kWKXMeVs2LhY2gwM6X378DkhLjur0zUQdpz0g== dependencies: htmlparser2 "^3.9.0" @@ -11142,6 +11272,11 @@ react-paginate@^8.2.0: dependencies: prop-types "^15" +react-property@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/react-property/-/react-property-2.0.2.tgz#d5ac9e244cef564880a610bc8d868bd6f60fdda6" + integrity sha512-+PbtI3VuDV0l6CleQMsx2gtK0JZbZKbpdu5ynr+lbsuvtmgbNcS3VM0tuY2QjFNOcWxvXeHjDpy42RO+4U2rug== + react-query@^3.13.0: version "3.39.3" resolved "https://registry.npmjs.org/react-query/-/react-query-3.39.3.tgz" @@ -11360,6 +11495,11 @@ regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.9: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + regenerator-transform@^0.15.1: version "0.15.1" resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz" @@ -12373,6 +12513,20 @@ style-loader@^3.3.1: resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz" integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== +style-to-js@1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/style-to-js/-/style-to-js-1.1.9.tgz#5bdc23ba7624016094a19d6ea90fa3f98bee34c4" + integrity sha512-6bkwhOlPOx+wKiHVlPTHjUqM4zDKv9pyccehB8zetZL0hhQ7MVp7UEWUsohjiMdxwhSsEdjMrEve+8qzUVmY4w== + dependencies: + style-to-object "1.0.4" + +style-to-object@1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.4.tgz#496fded508ce520eca13e738e8af33b8b5af98f2" + integrity sha512-KyNO6mfijxSnypdvEjeXlhvbGPSh0l1zBJp80n+ncBQvrEbSwBHwZCpo0xz6Q4AKSPfXowWwypCBAUAdfz3rFQ== + dependencies: + inline-style-parser "0.2.2" + style-to-object@^0.4.0: version "0.4.1" resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz"