diff --git a/remix/app/Providers/Chakra/theme.tsx b/remix/app/Providers/Chakra/theme.tsx index bd09e95..b28ad56 100644 --- a/remix/app/Providers/Chakra/theme.tsx +++ b/remix/app/Providers/Chakra/theme.tsx @@ -103,8 +103,6 @@ export const theme = extendTheme({ }, }) -console.log("nik Select", Select) - Switch.defaultProps = { ...Switch.defaultProps, as: "div", diff --git a/remix/app/Providers/ThingtimeProvider.tsx b/remix/app/Providers/ThingtimeProvider.tsx index 9b39648..89bd86c 100644 --- a/remix/app/Providers/ThingtimeProvider.tsx +++ b/remix/app/Providers/ThingtimeProvider.tsx @@ -254,7 +254,7 @@ export const ThingtimeProvider = (props: any): JSX.Element => { // nothing } - console.log("nik detected thingtime change", thingtime) + console.log("nik thingtime changed in ThingtimeProvider.tsx", thingtime) if (stateRef.current.initialized) { if (thingtime.thingtime !== thingtime || thingtime.tt !== thingtime) { diff --git a/remix/app/components/Commander/Commander.tsx b/remix/app/components/Commander/Commander.tsx index 8f39678..dd5584d 100644 --- a/remix/app/components/Commander/Commander.tsx +++ b/remix/app/components/Commander/Commander.tsx @@ -48,8 +48,6 @@ export const Commander = (props) => { return thingtime?.settings?.commanderActive }, [thingtime?.settings?.commanderActive]) - // console.log("nik commanderActive", commanderActive) - // commanderActive useEffect React.useEffect(() => { if (commanderActive) { @@ -109,7 +107,6 @@ export const Commander = (props) => { ] return [pathRaw?.trim(), valRaw?.trim()] } - // console.log("nik sanitizedCommand", sanitizedCommand) return [sanitizedCommand] }, [ // inputValue, @@ -167,7 +164,7 @@ export const Commander = (props) => { return mappedResults } catch (err) { - console.error("nik fuse error", err) + console.error("fuse error", err) } }, [inputValue, paths]) @@ -184,28 +181,21 @@ export const Commander = (props) => { ) const commandContainsPath = React.useMemo(() => { - // console.log("nik command", commandPath) - // console.log("nik suggestions", suggestions) const commandIncludesSuggestion = suggestions?.find((suggestion) => { return commandPath?.includes(suggestion) }) - // console.log("nik commandIncludesSuggestion", commandIncludesSuggestion) // return false return commandIncludesSuggestion }, [commandPath, suggestions]) const openCommander = React.useCallback(() => { - // console.log("nik commander opening commander") setThingtime("settings.commanderActive", true) }, [setThingtime]) const closeCommander = React.useCallback( (e?: any) => { if (!e?.defaultPrevented) { - // console.log("nik 123123 commander event closeCommander ", e) if (thingtime?.settings?.commanderActive) { - // console.log("nik commander closing commander") - // console.log("nik setting commanderActive to false") setThingtime("settings.commanderActive", false) } } @@ -269,12 +259,6 @@ export const Commander = (props) => { } if (commanderActive) { try { - // console.log("nik Commander onEnter") - // console.log("nik commandIsAction", commandIsAction) - // console.log("nik commandContainsPath", commandContainsPath) - - // console.log("nik onEnter commandPath", commandPath) - if (commandIsAction) { // nothing const prevVal = getThingtime(commandPath) @@ -284,10 +268,6 @@ export const Commander = (props) => { const fn = `() => { return ${commandValue} }` const evalFn = eval(fn) const realVal = evalFn() - // console.log("nik realVal", realVal) - // console.log("nik prevVal", prevVal) - // console.log("nik parentPath", parentPath) - // console.log("nik commandPath", commandPath) setThingtime(commandPath, realVal) } catch (err) { console.log( diff --git a/remix/app/components/Rainbow/Rainbow.tsx b/remix/app/components/Rainbow/Rainbow.tsx index 8e2de6e..0cca1d0 100644 --- a/remix/app/components/Rainbow/Rainbow.tsx +++ b/remix/app/components/Rainbow/Rainbow.tsx @@ -83,8 +83,8 @@ export const Rainbow = (allProps: any): JSX.Element => { React.useEffect(() => { const updateChildSize = () => { - const { width, height } = parentRef?.current?.getBoundingClientRect() - console.log("nik width height", width, height) + const { width, height } = + parentRef?.current?.getBoundingClientRect() || {} setState({ width, height }) } @@ -141,7 +141,6 @@ export const Rainbow = (allProps: any): JSX.Element => { svg?.appendChild?.(rectSource?.cloneNode?.()) if (path) { - console.log("nik re-rendering rainbow") const gp = new GradientPath({ path, segments: props?.segments || 1000, diff --git a/remix/app/components/Thingtime/Thingtime.tsx b/remix/app/components/Thingtime/Thingtime.tsx index 72f1423..5f017e0 100644 --- a/remix/app/components/Thingtime/Thingtime.tsx +++ b/remix/app/components/Thingtime/Thingtime.tsx @@ -11,6 +11,7 @@ import { NumberInputStepper, Select, Switch, + Textarea, } from "@chakra-ui/react" import { Icon } from "../Icon/Icon" @@ -29,6 +30,7 @@ export const Thingtime = (props) => { const [circular, setCircular] = React.useState(props?.circular) const contentEditableRef = React.useRef(null) + const editValueRef = React.useRef({}) const depth = React.useMemo(() => { return props?.depth || 1 @@ -256,37 +258,64 @@ export const Thingtime = (props) => { [pl] ) - const updatedRef = React.useRef(false) - const [contentEditableThing, setContentEditableThing] = React.useState(thing) + const updateContentEditableThing = React.useCallback((value) => { + // replace all new line occurences in value with

+ + // extract all series of new lines + const newlines = value?.split?.(/[^\n]/)?.filter((v) => v !== "") + + let newValue = value + + // replace all new lines groups with

+ newlines?.forEach?.((newline) => { + const baseLength = "\n"?.length + + const newlineClone = newline + + const newlineClonePart1 = newlineClone?.replace( + "\n\n\n", + "

" + ) + const newlineClonePart2 = newlineClonePart1?.replace( + /\n\n/g, + "

" + ) + const newlineClonePart3 = newlineClonePart2?.replace(/\n/g, "
") + + newValue = newValue?.replace(newline, newlineClonePart3) + }) + + setContentEditableThing(newValue) + }, []) + React.useEffect(() => { - console.log("nik detected thing changed") - console.log("nik thing", thing) - console.log("nik contentEditableThing", contentEditableThing) - console.log("nik updatedRef?.current", updatedRef?.current) - if (!updatedRef?.current && contentEditableThing !== thing) { - console.log("nik setting content editable thing", thing) - setContentEditableThing(thing) + const entries = Object.entries(editValueRef.current) + const propsThingInEntries = entries?.find?.( + (entry) => entry[1] === props?.thing + ) + if (!propsThingInEntries) { + updateContentEditableThing(props?.thing) + // setContentEditableThing(props?.thing) + } else { + const [time, value] = propsThingInEntries + if (time && value) { + delete editValueRef.current[time] + } } - updatedRef.current = false - }, [thing, updatedRef, contentEditableThing, contentEditableRef]) + }, [props?.thing]) const updateValue = React.useCallback( (args) => { const { value } = args - console.log("nik value", value) - console.log("nik props?.fullPath", fullPath) - setThingtime(fullPath, value) - updatedRef.current = true }, [fullPath, setThingtime] ) const atomicValue = React.useMemo(() => { - console.log("nik contentEditableThing", contentEditableThing) if (props?.edit) { if (type === "boolean") { return ( @@ -297,10 +326,8 @@ export const Thingtime = (props) => { e?.stopPropagation?.() // cancel bubble e?.nativeEvent?.stopImmediatePropagation?.() - console.log("nik 123123 clicked", !thing) setTimeout(() => { updateValue({ value: !thing }) - console.log("nik 123123 changed", e) }, 1) }} > @@ -344,7 +371,7 @@ export const Thingtime = (props) => { ) } - if (type === "string") { + if (type === "string" && typeof contentEditableThing === "string") { return ( { border="none" outline="none" contentEditable={true} + dangerouslySetInnerHTML={{ __html: contentEditableThing }} onInput={(value) => { - console.log("nik value", value) - const innerText = value?.target?.innerText - if (typeof innerText === "string") { + const time = Date.now() + editValueRef.current[time] = innerText updateValue({ value: innerText }) } }} - > - {contentEditableThing} - + > ) } diff --git a/remix/app/components/Thingtime/ThingtimeURL.tsx b/remix/app/components/Thingtime/ThingtimeURL.tsx index 837de80..149d685 100644 --- a/remix/app/components/Thingtime/ThingtimeURL.tsx +++ b/remix/app/components/Thingtime/ThingtimeURL.tsx @@ -18,8 +18,6 @@ export const ThingtimeURL = (props) => { const path = pathPartOne?.replace(/\//g, ".") - console.log("nik Detected path in url", path) - return path }, [location]) diff --git a/remix/app/smarts/index.tsx b/remix/app/smarts/index.tsx index 42d90fc..a6b92a8 100644 --- a/remix/app/smarts/index.tsx +++ b/remix/app/smarts/index.tsx @@ -57,9 +57,9 @@ export const save = (value, opts) => { // extract parent path from dot delimitted path export const getParentPath = (path) => { - const parts = path.split(".") - parts.pop() - return parts.join(".") + const parts = path?.split(".") + parts?.pop() + return parts?.join(".") } export const toJavascript = (value, opts = {}) => { diff --git a/remix/package.json b/remix/package.json index 5a8d129..a4183e5 100644 --- a/remix/package.json +++ b/remix/package.json @@ -18,6 +18,7 @@ "@remix-run/serve": "^1.15.0", "@vercel/analytics": "^0.1.11", "@vercel/remix": "^1.15.0", + "draft-js": "^0.11.7", "flatted": "^3.2.7", "fuse.js": "^6.6.2", "gradient-path": "^2.3.0", diff --git a/remix/pnpm-lock.yaml b/remix/pnpm-lock.yaml index 69556bb..4fa163e 100644 --- a/remix/pnpm-lock.yaml +++ b/remix/pnpm-lock.yaml @@ -4,10 +4,13 @@ settings: autoInstallPeers: true excludeLinksFromLockfile: false +overrides: + '@types/react': ^17.0.2 + dependencies: '@chakra-ui/react': specifier: ^2.7.1 - version: 2.7.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.0.28)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0) + version: 2.7.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@17.0.62)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0) '@fortawesome/fontawesome-svg-core': specifier: ^6.4.0 version: 6.4.0 @@ -35,6 +38,9 @@ dependencies: '@vercel/remix': specifier: ^1.15.0 version: 1.15.0(react-dom@18.2.0)(react@18.2.0) + draft-js: + specifier: ^0.11.7 + version: 0.11.7(react-dom@18.2.0)(react@18.2.0) flatted: specifier: ^3.2.7 version: 3.2.7 @@ -86,8 +92,8 @@ devDependencies: specifier: ^8.40.2 version: 8.40.2 '@types/react': - specifier: ^18.0.25 - version: 18.0.28 + specifier: ^17.0.2 + version: 17.0.62 '@types/react-dom': specifier: ^18.0.11 version: 18.0.11 @@ -1583,7 +1589,7 @@ packages: '@emotion/react': '>=10.0.35' react: '>=18' dependencies: - '@emotion/react': 11.11.1(@types/react@18.0.28)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@17.0.62)(react@18.2.0) react: 18.2.0 dev: false @@ -1624,14 +1630,14 @@ packages: resolution: {integrity: sha512-IGM/yGUHS+8TOQrZGpAKOJl/xGBrmRYJrmbHfUE7zrG3PpQyXvbLDP1M+RggkCFVgHlJi2wpYIf0QtQlU0XZfw==} dev: false - /@chakra-ui/focus-lock@2.0.17(@types/react@18.0.28)(react@18.2.0): + /@chakra-ui/focus-lock@2.0.17(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-V+m4Ml9E8QY66DUpHX/imInVvz5XJ5zx59Tl0aNancXgeVY1Rt/ZdxuZdPLCAmPC/MF3GUOgnEA+WU8i+VL6Gw==} peerDependencies: react: '>=18' dependencies: '@chakra-ui/dom-utils': 2.1.0 react: 18.2.0 - react-focus-lock: 2.9.4(@types/react@18.0.28)(react@18.2.0) + react-focus-lock: 2.9.4(@types/react@17.0.62)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -1769,7 +1775,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/modal@2.2.12(@chakra-ui/system@2.5.8)(@types/react@18.0.28)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/modal@2.2.12(@chakra-ui/system@2.5.8)(@types/react@17.0.62)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-F1nNmYGvyqlmxidbwaBM3y57NhZ/Qeyc8BE9tb1FL1v9nxQhkfrPvMQ9miK0O1syPN6aZ5MMj+uD3AsRFE+/tA==} peerDependencies: '@chakra-ui/system': '>=2.0.0' @@ -1778,7 +1784,7 @@ packages: react-dom: '>=18' dependencies: '@chakra-ui/close-button': 2.0.17(@chakra-ui/system@2.5.8)(react@18.2.0) - '@chakra-ui/focus-lock': 2.0.17(@types/react@18.0.28)(react@18.2.0) + '@chakra-ui/focus-lock': 2.0.17(@types/react@17.0.62)(react@18.2.0) '@chakra-ui/portal': 2.0.16(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/react-context': 2.0.8(react@18.2.0) '@chakra-ui/react-types': 2.0.7(react@18.2.0) @@ -1790,7 +1796,7 @@ packages: framer-motion: 10.12.17(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.6(@types/react@18.0.28)(react@18.2.0) + react-remove-scroll: 2.5.6(@types/react@17.0.62)(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false @@ -1911,8 +1917,8 @@ packages: '@chakra-ui/react-env': 3.0.0(react@18.2.0) '@chakra-ui/system': 2.5.8(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(react@18.2.0) '@chakra-ui/utils': 2.0.15 - '@emotion/react': 11.11.1(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.0.28)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@17.0.62)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@17.0.62)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2128,7 +2134,7 @@ packages: react: 18.2.0 dev: false - /@chakra-ui/react@2.7.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@18.0.28)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0): + /@chakra-ui/react@2.7.1(@emotion/react@11.11.1)(@emotion/styled@11.11.0)(@types/react@17.0.62)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uIYIAg+gnUoRbgdCfSEVvQnrEz0oWWXATGGSQpxmuJovNVyZKnX/Xug7NkWQfBUJPYRSG+VB69ZmsAFpyLSMtA==} peerDependencies: '@emotion/react': ^11.0.0 @@ -2149,7 +2155,7 @@ packages: '@chakra-ui/counter': 2.0.14(react@18.2.0) '@chakra-ui/css-reset': 2.1.2(@emotion/react@11.11.1)(react@18.2.0) '@chakra-ui/editable': 3.0.0(@chakra-ui/system@2.5.8)(react@18.2.0) - '@chakra-ui/focus-lock': 2.0.17(@types/react@18.0.28)(react@18.2.0) + '@chakra-ui/focus-lock': 2.0.17(@types/react@17.0.62)(react@18.2.0) '@chakra-ui/form-control': 2.0.18(@chakra-ui/system@2.5.8)(react@18.2.0) '@chakra-ui/hooks': 2.2.0(react@18.2.0) '@chakra-ui/icon': 3.0.16(@chakra-ui/system@2.5.8)(react@18.2.0) @@ -2159,7 +2165,7 @@ packages: '@chakra-ui/live-region': 2.0.13(react@18.2.0) '@chakra-ui/media-query': 3.2.12(@chakra-ui/system@2.5.8)(react@18.2.0) '@chakra-ui/menu': 2.1.15(@chakra-ui/system@2.5.8)(framer-motion@10.12.17)(react@18.2.0) - '@chakra-ui/modal': 2.2.12(@chakra-ui/system@2.5.8)(@types/react@18.0.28)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0) + '@chakra-ui/modal': 2.2.12(@chakra-ui/system@2.5.8)(@types/react@17.0.62)(framer-motion@10.12.17)(react-dom@18.2.0)(react@18.2.0) '@chakra-ui/number-input': 2.0.19(@chakra-ui/system@2.5.8)(react@18.2.0) '@chakra-ui/pin-input': 2.0.20(@chakra-ui/system@2.5.8)(react@18.2.0) '@chakra-ui/popover': 2.1.12(@chakra-ui/system@2.5.8)(framer-motion@10.12.17)(react@18.2.0) @@ -2190,8 +2196,8 @@ packages: '@chakra-ui/transition': 2.0.16(framer-motion@10.12.17)(react@18.2.0) '@chakra-ui/utils': 2.0.15 '@chakra-ui/visually-hidden': 2.0.15(@chakra-ui/system@2.5.8)(react@18.2.0) - '@emotion/react': 11.11.1(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.0.28)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@17.0.62)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@17.0.62)(react@18.2.0) framer-motion: 10.12.17(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2330,8 +2336,8 @@ packages: '@chakra-ui/styled-system': 2.9.1 '@chakra-ui/theme-utils': 2.0.18 '@chakra-ui/utils': 2.0.15 - '@emotion/react': 11.11.1(@types/react@18.0.28)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@18.0.28)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@17.0.62)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.1)(@types/react@17.0.62)(react@18.2.0) react: 18.2.0 react-fast-compare: 3.2.1 dev: false @@ -2554,7 +2560,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.1(@types/react@18.0.28)(react@18.2.0): + /@emotion/react@11.11.1(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-5mlW1DquU5HaxjLkfkGN1GA/fvVGdyHURRiX/0FHl2cfIfRxSOfmxEH5YS43edp0OldZrZ+dkBKbngxcNCdZvA==} peerDependencies: '@types/react': '*' @@ -2570,7 +2576,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.0.28 + '@types/react': 17.0.62 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -2589,7 +2595,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@18.0.28)(react@18.2.0): + /@emotion/styled@11.11.0(@emotion/react@11.11.1)(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -2602,11 +2608,11 @@ packages: '@babel/runtime': 7.20.13 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.1(@types/react@18.0.28)(react@18.2.0) + '@emotion/react': 11.11.1(@types/react@17.0.62)(react@18.2.0) '@emotion/serialize': 1.1.2 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.0.28 + '@types/react': 17.0.62 react: 18.2.0 dev: false @@ -3423,7 +3429,7 @@ packages: dependencies: '@remix-run/router': 1.5.0 '@types/cookie': 0.4.1 - '@types/react': 18.0.28 + '@types/react': 17.0.62 '@web3-storage/multipart-parser': 1.0.0 cookie: 0.4.2 set-cookie-parser: 2.5.1 @@ -3676,11 +3682,11 @@ packages: /@types/react-dom@18.0.11: resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} dependencies: - '@types/react': 18.0.28 + '@types/react': 17.0.62 dev: true - /@types/react@18.0.28: - resolution: {integrity: sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==} + /@types/react@17.0.62: + resolution: {integrity: sha512-eANCyz9DG8p/Vdhr0ZKST8JV12PhH2ACCDYlFw6DIO+D+ca+uP4jtEDEpVqXZrh/uZdXQGwk7whJa3ah5DtyLw==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -4360,6 +4366,10 @@ packages: get-intrinsic: 1.2.0 dev: true + /asap@2.0.6: + resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} + dev: false + /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} dev: true @@ -4862,6 +4872,11 @@ packages: browserslist: 4.21.5 dev: true + /core-js@3.32.0: + resolution: {integrity: sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==} + requiresBuild: true + dev: false + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true @@ -4877,6 +4892,14 @@ packages: yaml: 1.10.2 dev: false + /cross-fetch@3.1.8: + resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + dependencies: + node-fetch: 2.6.12 + transitivePeerDependencies: + - encoding + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -5108,6 +5131,21 @@ packages: engines: {node: '>=12'} dev: true + /draft-js@0.11.7(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-ne7yFfN4sEL82QPQEn80xnADR8/Q6ALVworbC5UOSzOvjffmYfFsr3xSZtxbIirti14R7Y33EZC5rivpLgIbsg==} + peerDependencies: + react: '>=0.14.0' + react-dom: '>=0.14.0' + dependencies: + fbjs: 2.0.0 + immutable: 3.7.6 + object-assign: 4.1.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + transitivePeerDependencies: + - encoding + dev: false + /duplexify@3.7.1: resolution: {integrity: sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==} dependencies: @@ -6067,6 +6105,25 @@ packages: format: 0.2.2 dev: true + /fbjs-css-vars@1.0.2: + resolution: {integrity: sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==} + dev: false + + /fbjs@2.0.0: + resolution: {integrity: sha512-8XA8ny9ifxrAWlyhAbexXcs3rRMtxWcs3M0lctLfB49jRDHiaxj+Mo0XxbwE7nKZYzgCFoq64FS+WFd4IycPPQ==} + dependencies: + core-js: 3.32.0 + cross-fetch: 3.1.8 + fbjs-css-vars: 1.0.2 + loose-envify: 1.4.0 + object-assign: 4.1.1 + promise: 7.3.1 + setimmediate: 1.0.5 + ua-parser-js: 0.7.35 + transitivePeerDependencies: + - encoding + dev: false + /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -6638,6 +6695,11 @@ packages: engines: {node: '>= 4'} dev: true + /immutable@3.7.6: + resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==} + engines: {node: '>=0.8.0'} + dev: false + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} @@ -7861,6 +7923,18 @@ packages: dev: true optional: true + /node-fetch@2.6.12: + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + dependencies: + whatwg-url: 5.0.0 + dev: false + /node-fetch@2.6.9: resolution: {integrity: sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==} engines: {node: 4.x || >=6.0.0} @@ -8420,6 +8494,12 @@ packages: optional: true dev: true + /promise@7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + dependencies: + asap: 2.0.6 + dev: false + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: @@ -8562,7 +8642,7 @@ packages: resolution: {integrity: sha512-xTYf9zFim2pEif/Fw16dBiXpe0hoy5PxcD8+OwBnTtNLfIm3g6WxhKNurY+6OmdH1u6Ta/W/Vl6vjbYP1MFnDg==} dev: false - /react-focus-lock@2.9.4(@types/react@18.0.28)(react@18.2.0): + /react-focus-lock@2.9.4(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-7pEdXyMseqm3kVjhdVH18sovparAzLg5h6WvIx7/Ck3ekjhrrDMEegHSa3swwC8wgfdd7DIdUVRGeiHT9/7Sgg==} peerDependencies: '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -8572,13 +8652,13 @@ packages: optional: true dependencies: '@babel/runtime': 7.20.13 - '@types/react': 18.0.28 + '@types/react': 17.0.62 focus-lock: 0.11.6 prop-types: 15.8.1 react: 18.2.0 react-clientside-effect: 1.2.6(react@18.2.0) - use-callback-ref: 1.3.0(@types/react@18.0.28)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.0.28)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@17.0.62)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@17.0.62)(react@18.2.0) dev: false /react-icons@4.10.1(react@18.2.0): @@ -8601,7 +8681,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.0.28)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -8611,13 +8691,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.28 + '@types/react': 17.0.62 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@17.0.62)(react@18.2.0) tslib: 2.5.0 dev: false - /react-remove-scroll@2.5.6(@types/react@18.0.28)(react@18.2.0): + /react-remove-scroll@2.5.6(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-bO856ad1uDYLefgArk559IzUNeQ6SWH4QnrevIUjH+GczV56giDfl3h0Idptf2oIKxQmd1p9BN25jleKodTALg==} engines: {node: '>=10'} peerDependencies: @@ -8627,13 +8707,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.28 + '@types/react': 17.0.62 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.0.28)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.0.28)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@17.0.62)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@17.0.62)(react@18.2.0) tslib: 2.5.0 - use-callback-ref: 1.3.0(@types/react@18.0.28)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.0.28)(react@18.2.0) + use-callback-ref: 1.3.0(@types/react@17.0.62)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@17.0.62)(react@18.2.0) dev: false /react-router-dom@6.10.0(react-dom@18.2.0)(react@18.2.0): @@ -8659,7 +8739,7 @@ packages: react: 18.2.0 dev: false - /react-style-singleton@2.2.1(@types/react@18.0.28)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -8669,7 +8749,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.28 + '@types/react': 17.0.62 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -9035,6 +9115,10 @@ packages: /set-cookie-parser@2.5.1: resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==} + /setimmediate@1.0.5: + resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} + dev: false + /setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -9447,7 +9531,6 @@ packages: /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - dev: true /trough@2.1.0: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} @@ -9537,6 +9620,10 @@ packages: hasBin: true dev: true + /ua-parser-js@0.7.35: + resolution: {integrity: sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==} + dev: false + /ufo@1.0.1: resolution: {integrity: sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==} dev: true @@ -9694,7 +9781,7 @@ packages: punycode: 2.3.0 dev: true - /use-callback-ref@1.3.0(@types/react@18.0.28)(react@18.2.0): + /use-callback-ref@1.3.0(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -9704,12 +9791,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.28 + '@types/react': 17.0.62 react: 18.2.0 tslib: 2.5.0 dev: false - /use-sidecar@1.1.2(@types/react@18.0.28)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@17.0.62)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -9719,7 +9806,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.0.28 + '@types/react': 17.0.62 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.5.0 @@ -9885,7 +9972,6 @@ packages: /webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} - dev: true /webpack-sources@3.2.3: resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} @@ -9937,7 +10023,6 @@ packages: dependencies: tr46: 0.0.3 webidl-conversions: 3.0.1 - dev: true /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}