feat: main Progress, some pretty cool changes
This commit is contained in:
parent
0ce2a38e5b
commit
253ba9d11a
5
remix/app/Providers/Chakra/ChakraWrapper.tsx
Normal file
5
remix/app/Providers/Chakra/ChakraWrapper.tsx
Normal file
@ -0,0 +1,5 @@
|
||||
import { ChakraProvider } from '@chakra-ui/react'
|
||||
import { theme } from './theme'
|
||||
export const ChakraWrapper = props => {
|
||||
return <ChakraProvider theme={theme}>{props.children}</ChakraProvider>
|
||||
}
|
44
remix/app/Providers/Chakra/colors.tsx
Normal file
44
remix/app/Providers/Chakra/colors.tsx
Normal file
@ -0,0 +1,44 @@
|
||||
const g = {
|
||||
grey: '#F1F1F3',
|
||||
greys: {
|
||||
light: '#F1F1F3',
|
||||
medium: '#E0E0E0',
|
||||
dark: '#BDBDBD'
|
||||
}
|
||||
}
|
||||
|
||||
g.gray = g.grey
|
||||
g.grays = g.greys
|
||||
|
||||
export const colors = {
|
||||
white: '#FFFFFF',
|
||||
...g,
|
||||
black: '#000000',
|
||||
// all colors of the chakras
|
||||
chakras: {
|
||||
root: '#C62828',
|
||||
sacral: '#FF7043',
|
||||
solarPlexus: '#FFEE58',
|
||||
heart: '#66BB6A',
|
||||
throat: '#42A5F5',
|
||||
thirdEye: '#5C6BC0',
|
||||
crown: '#AB47BC',
|
||||
red: '#C62828',
|
||||
orange: '#FF7043',
|
||||
yellow: '#FFEE58',
|
||||
green: '#66BB6A',
|
||||
blue: '#42A5F5',
|
||||
indigo: '#5C6BC0',
|
||||
violet: '#AB47BC'
|
||||
},
|
||||
// all colors of the rainbow
|
||||
rainbow: {
|
||||
red: '#FF0000',
|
||||
orange: '#FF7F00',
|
||||
yellow: '#FFFF00',
|
||||
green: '#00FF00',
|
||||
blue: '#0000FF',
|
||||
indigo: '#4B0082',
|
||||
violet: '#8F00FF'
|
||||
}
|
||||
}
|
14
remix/app/Providers/Chakra/theme.tsx
Normal file
14
remix/app/Providers/Chakra/theme.tsx
Normal file
@ -0,0 +1,14 @@
|
||||
import { extendTheme } from '@chakra-ui/react'
|
||||
import { colors } from './colors'
|
||||
|
||||
export const theme = extendTheme({
|
||||
colors,
|
||||
// edit Input defaultProps
|
||||
components: {
|
||||
Input: {
|
||||
defaultProps: {
|
||||
focusBorderColor: 'transparent'
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
@ -1,41 +0,0 @@
|
||||
import React, { createContext, useState, useEffect, useCallback } from "react"
|
||||
|
||||
export const StateContext = createContext<StateContextInterface | null>(null)
|
||||
|
||||
export const StateProvider = (props: any): JSX.Element => {
|
||||
|
||||
const [state, setState] = useState({})
|
||||
|
||||
const addState = useCallback(
|
||||
(newState: any) => {
|
||||
setState(prevState => {
|
||||
return {
|
||||
...prevState,
|
||||
...newState
|
||||
}
|
||||
})
|
||||
},
|
||||
[]
|
||||
)
|
||||
|
||||
useEffect(() => {
|
||||
try {
|
||||
window.addState = addState
|
||||
} catch {
|
||||
// nothing
|
||||
}
|
||||
}, [])
|
||||
|
||||
return <StateContext.Provider value={{ state, addState }}>{props?.children}</StateContext.Provider>
|
||||
}
|
||||
|
||||
export const withState = (Component: any) => (props: any) => (
|
||||
<StateContext.Consumer>
|
||||
{props => <Component {...props} />}
|
||||
</StateContext.Consumer>
|
||||
)
|
||||
|
||||
export interface StateContextInterface {
|
||||
state: any
|
||||
addState: any
|
||||
}
|
94
remix/app/Providers/ThingtimeProvider.tsx
Normal file
94
remix/app/Providers/ThingtimeProvider.tsx
Normal file
@ -0,0 +1,94 @@
|
||||
import React, { createContext } from 'react'
|
||||
import { sanitise } from '~/functions/path'
|
||||
import { smarts } from '~/smarts'
|
||||
|
||||
export interface ThingtimeContextInterface {
|
||||
thingtime: any
|
||||
setThingtime: any
|
||||
}
|
||||
|
||||
export const ThingtimeContext = createContext<ThingtimeContextInterface | null>(
|
||||
null
|
||||
)
|
||||
|
||||
try {
|
||||
window.smarts = smarts
|
||||
} catch (err) {
|
||||
// nothing
|
||||
}
|
||||
|
||||
const initialThingtime = {
|
||||
nav: {},
|
||||
settings: {
|
||||
showCommander: true,
|
||||
clearCommanderOnToggle: true,
|
||||
clearCommanderContextOnToggle: true
|
||||
}
|
||||
}
|
||||
|
||||
export const ThingtimeProvider = (props: any): JSX.Element => {
|
||||
const [thingtime, set] = React.useState(initialThingtime)
|
||||
|
||||
const setThingtime = React.useCallback(
|
||||
(path, value) => {
|
||||
const prevThingtime = thingtime
|
||||
|
||||
const newThingtime = {
|
||||
...prevThingtime
|
||||
}
|
||||
|
||||
// check if first characters of path starts with thingtime or tt and strip from path
|
||||
|
||||
path = sanitise(path)
|
||||
|
||||
// log the path and value
|
||||
console.log('nik ThingtimeProvider setThingtime path', path)
|
||||
console.log('nik ThingtimeProvider setThingtime value', value)
|
||||
|
||||
smarts.setsmart(newThingtime, path, value)
|
||||
|
||||
set(newThingtime)
|
||||
},
|
||||
[thingtime]
|
||||
)
|
||||
|
||||
const getThingtime = React.useCallback(
|
||||
(...args) => {
|
||||
const path = args[0]
|
||||
if (path === 'thingtime' || path === 'tt' || !path) {
|
||||
return thingtime
|
||||
}
|
||||
return smarts.getsmart(thingtime, path)
|
||||
},
|
||||
[thingtime]
|
||||
)
|
||||
|
||||
React.useEffect(() => {
|
||||
try {
|
||||
window.setThingtime = setThingtime
|
||||
window.thingtime = thingtime
|
||||
} catch {
|
||||
// nothing
|
||||
}
|
||||
|
||||
const keyListener = e => {}
|
||||
|
||||
window.addEventListener('keydown', keyListener)
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', keyListener)
|
||||
}
|
||||
}, [setThingtime, thingtime])
|
||||
|
||||
const value = {
|
||||
thingtime,
|
||||
setThingtime,
|
||||
getThingtime
|
||||
}
|
||||
|
||||
return (
|
||||
<ThingtimeContext.Provider value={value}>
|
||||
{props?.children}
|
||||
</ThingtimeContext.Provider>
|
||||
)
|
||||
}
|
223
remix/app/components/Commander/Commander.tsx
Normal file
223
remix/app/components/Commander/Commander.tsx
Normal file
@ -0,0 +1,223 @@
|
||||
import React from 'react'
|
||||
import { Center, Box, Flex, Input } from '@chakra-ui/react'
|
||||
import { useThingtime } from '../Thingtime/useThingtime'
|
||||
import { Thingtime } from '../Thingtime/Thingtime'
|
||||
import { sanitise } from '~/functions/path'
|
||||
|
||||
export const Commander = props => {
|
||||
const { thingtime, setThingtime, getThingtime } = useThingtime()
|
||||
|
||||
const [contextPath, setContextPath] = React.useState()
|
||||
|
||||
const [showContext, setShowContext] = React.useState(false)
|
||||
|
||||
const contextValue = React.useMemo(() => {
|
||||
console.log('thingtime updated!')
|
||||
const ret = getThingtime(contextPath)
|
||||
console.log('nik ret', ret)
|
||||
return ret
|
||||
}, [contextPath, getThingtime])
|
||||
|
||||
const showCommander = React.useMemo(() => {
|
||||
console.log(
|
||||
'nik thingtime?.settings?.showCommander',
|
||||
thingtime?.settings?.showCommander
|
||||
)
|
||||
return thingtime?.settings?.showCommander
|
||||
}, [thingtime?.settings?.showCommander])
|
||||
|
||||
React.useEffect(() => {
|
||||
if (thingtime?.settings?.clearCommanderOnToggle) {
|
||||
setValue('')
|
||||
}
|
||||
if (showCommander) {
|
||||
inputRef?.current?.focus?.()
|
||||
}
|
||||
}, [showCommander, thingtime])
|
||||
|
||||
const inputRef = React.useRef()
|
||||
|
||||
const [value, setValue] = React.useState('')
|
||||
|
||||
const onChange = React.useCallback(e => {
|
||||
setValue(e.target.value)
|
||||
}, [])
|
||||
|
||||
const onEnter = React.useCallback(
|
||||
props => {
|
||||
// if first characters of value equal tt. then run command
|
||||
// or if first character is a dot then run command
|
||||
try {
|
||||
const isTT = value?.slice(0, 3) === 'tt.'
|
||||
const isDot = value?.slice(0, 1) === '.'
|
||||
const executeCommand = isTT || isDot
|
||||
if (executeCommand) {
|
||||
const command = isTT ? value?.slice(3) : value?.slice(1)
|
||||
const sanitisedCommand = sanitise(command)
|
||||
console.log('nik command', command)
|
||||
|
||||
console.log('setting to thingtime', thingtime)
|
||||
|
||||
const commandIsSetter = command?.includes('=')
|
||||
|
||||
if (commandIsSetter) {
|
||||
// nothing
|
||||
const [pathRaw, valRaw] = sanitisedCommand?.split('=')
|
||||
const path = pathRaw.trim()
|
||||
const val = valRaw.trim()
|
||||
console.log('nik path', path)
|
||||
console.log('nik val', val)
|
||||
try {
|
||||
const realVal = eval(val)
|
||||
console.log('nik realVal', realVal)
|
||||
setThingtime(path, realVal)
|
||||
} catch (err) {
|
||||
console.log('setThingtime errored in Commander', err)
|
||||
}
|
||||
// setContextPath(path)
|
||||
} else {
|
||||
const val = getThingtime(sanitisedCommand)
|
||||
|
||||
console.log('setting to val', val)
|
||||
|
||||
setContextPath(sanitisedCommand)
|
||||
setShowContext(true)
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Caught error on commander onEnter', err)
|
||||
}
|
||||
},
|
||||
[value, thingtime, getThingtime, setThingtime]
|
||||
)
|
||||
|
||||
// trigger on enter
|
||||
const onKeyDown = React.useCallback(
|
||||
e => {
|
||||
if (e.key === 'Enter') {
|
||||
console.log('nik enter')
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
onEnter({ e })
|
||||
// setThingtime(
|
||||
// 'settings.showCommander',
|
||||
// !thingtime?.settings?.showCommander
|
||||
// )
|
||||
}
|
||||
},
|
||||
[thingtime?.settings?.showCommander, onEnter]
|
||||
)
|
||||
|
||||
const openCommander = React.useCallback(() => {
|
||||
setThingtime('settings.showCommander', true)
|
||||
}, [setThingtime])
|
||||
|
||||
const closeCommander = React.useCallback(() => {
|
||||
setThingtime('settings.showCommander', false)
|
||||
setShowContext(false)
|
||||
setContextPath(undefined)
|
||||
}, [setThingtime])
|
||||
|
||||
const toggleCommander = React.useCallback(() => {
|
||||
if (thingtime?.settings?.showCommander) {
|
||||
closeCommander()
|
||||
} else {
|
||||
openCommander()
|
||||
}
|
||||
}, [thingtime?.settings?.showCommander, closeCommander, openCommander])
|
||||
|
||||
React.useEffect(() => {
|
||||
const keyListener = (e: any) => {
|
||||
if (e?.metaKey && e?.code === 'KeyP') {
|
||||
console.log('nik heard event')
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
toggleCommander()
|
||||
}
|
||||
// if key escape close all modals
|
||||
if (e?.code === 'Escape') {
|
||||
closeCommander()
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('keydown', keyListener)
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', keyListener)
|
||||
}
|
||||
}, [setThingtime, thingtime])
|
||||
|
||||
return (
|
||||
<Center
|
||||
id='commander'
|
||||
display={showCommander ? 'flex' : 'none'}
|
||||
// zIndex={99999}
|
||||
// position='fixed'
|
||||
// top='100px'
|
||||
position='absolute'
|
||||
h='100%'
|
||||
top={0}
|
||||
left={0}
|
||||
right={0}
|
||||
py={1}
|
||||
>
|
||||
<Center
|
||||
display={showContext ? 'flex' : 'none'}
|
||||
position='absolute'
|
||||
top={'100%'}
|
||||
left={0}
|
||||
right={0}
|
||||
h='auto'
|
||||
mt={2}
|
||||
>
|
||||
<Flex p={3} borderRadius={'12px'} bg='grey'>
|
||||
<Thingtime thing={contextValue}></Thingtime>
|
||||
</Flex>
|
||||
</Center>
|
||||
<Center
|
||||
position='relative'
|
||||
bg='grey'
|
||||
w='400px'
|
||||
h='100%'
|
||||
outline={'none'}
|
||||
overflow='hidden'
|
||||
p={'1px'}
|
||||
borderRadius={'6px'}
|
||||
>
|
||||
<Box
|
||||
position='absolute'
|
||||
width='105%'
|
||||
pb={'105%'}
|
||||
bg={
|
||||
'conic-gradient(#f34a4a, #ffbc48, #58ca70, #47b5e6, #a555e8, #f34a4a)'
|
||||
}
|
||||
sx={{
|
||||
'@keyframes rainbow-conical': {
|
||||
'100%': {
|
||||
transform: 'rotate(-360deg)'
|
||||
}
|
||||
},
|
||||
animation: 'rainbow-conical 1s linear infinite'
|
||||
}}
|
||||
></Box>
|
||||
<Input
|
||||
ref={inputRef}
|
||||
h='100%'
|
||||
borderRadius={'5px'}
|
||||
outline={'none'}
|
||||
border={'none'}
|
||||
value={value}
|
||||
onChange={onChange}
|
||||
onKeyDown={onKeyDown}
|
||||
w='100%'
|
||||
sx={{
|
||||
'&::placeholder': {
|
||||
color: 'greys.dark'
|
||||
}
|
||||
}}
|
||||
placeholder={"What's on your mind?"}
|
||||
></Input>
|
||||
</Center>
|
||||
</Center>
|
||||
)
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
import React from 'react'
|
||||
import { Flex } from '@chakra-ui/react'
|
||||
import { Box, Flex } from '@chakra-ui/react'
|
||||
import { RainbowSkeleton } from '../Skeleton/RainbowSkeleton'
|
||||
import { ProfileDrawer } from './ProfileDrawer'
|
||||
import { Commander } from '../Commander/Commander'
|
||||
|
||||
export const Nav = props => {
|
||||
const [profileDrawerOpen, setProfileDrawerOpen] = React.useState(false)
|
||||
@ -12,33 +13,33 @@ export const Nav = props => {
|
||||
|
||||
return (
|
||||
<>
|
||||
<Flex
|
||||
as='nav'
|
||||
w='100%'
|
||||
alignItems={'center'}
|
||||
justifyContent='center'
|
||||
flexDir={'row'}
|
||||
position='fixed'
|
||||
top={0}
|
||||
left={0}
|
||||
right={0}
|
||||
py={6}
|
||||
px={6}
|
||||
bg='white'
|
||||
zIndex={999}
|
||||
boxShadow={'0px 0px 10px rgba(0,0,0,0.1)'}
|
||||
>
|
||||
<RainbowSkeleton
|
||||
ml={'auto'}
|
||||
w='25px'
|
||||
h='25px'
|
||||
onClick={toggleProfileDrawer}
|
||||
sx={{}}
|
||||
borderRadius='999px'
|
||||
></RainbowSkeleton>
|
||||
{/* <RainbowSkeleton w='40px' ml='auto' mr={"4px"}></RainbowSkeleton>
|
||||
<RainbowSkeleton></RainbowSkeleton> */}
|
||||
</Flex>
|
||||
<Box position='fixed' top={0} left={0} right={0} zIndex={999}>
|
||||
<Flex
|
||||
as='nav'
|
||||
w='100%'
|
||||
alignItems={'center'}
|
||||
position='relative'
|
||||
justifyContent='center'
|
||||
flexDir={'row'}
|
||||
py={2}
|
||||
px={2}
|
||||
bg='white'
|
||||
boxShadow={'0px 0px 10px rgba(0,0,0,0.1)'}
|
||||
>
|
||||
<Commander></Commander>
|
||||
<RainbowSkeleton
|
||||
ml={'auto'}
|
||||
w='25px'
|
||||
h='25px'
|
||||
onClick={toggleProfileDrawer}
|
||||
bg={'rgba(0,0,0,0.1)'}
|
||||
sx={{}}
|
||||
borderRadius='999px'
|
||||
></RainbowSkeleton>
|
||||
{/* <RainbowSkeleton w='40px' ml='auto' mr={"4px"}></RainbowSkeleton>
|
||||
<RainbowSkeleton></RainbowSkeleton> */}
|
||||
</Flex>
|
||||
</Box>
|
||||
{/* <ProfileDrawer isOpen={profileDrawerOpen}></ProfileDrawer> */}
|
||||
</>
|
||||
)
|
||||
|
@ -31,7 +31,6 @@ export const RainbowSkeleton = props => {
|
||||
w='10px'
|
||||
h='8px'
|
||||
borderRadius={'2px'}
|
||||
bg={'rgba(0,0,0,0.1)'}
|
||||
sx={{
|
||||
'@keyframes placeholder-rainbow': keyframes,
|
||||
'@keyframes placeholder-opacity': {
|
||||
@ -39,7 +38,7 @@ export const RainbowSkeleton = props => {
|
||||
'100%': { opacity: 1 }
|
||||
},
|
||||
// add delay
|
||||
animation: `placeholder-rainbow 3s infinite linear, placeholder-opacity 1.3s linear 0s infinite alternate none running}`
|
||||
animation: `placeholder-rainbow 8s infinite linear, placeholder-opacity 1.3s linear 0s infinite alternate none running}`
|
||||
}}
|
||||
{...props}
|
||||
></Flex>
|
||||
|
@ -1,23 +1,29 @@
|
||||
import React from 'react'
|
||||
import { Box, Flex } from '@chakra-ui/react'
|
||||
import { Safe } from '../Safety/Safe'
|
||||
import { useState } from './useState'
|
||||
import { useThingtime } from './useThingtime'
|
||||
|
||||
export const Thingtime = props => {
|
||||
// const uuid = React.useMemo(() => {
|
||||
// return Math.random().toString(36).substring(7)
|
||||
// }, [])
|
||||
const uuid = React.useRef(Math.random().toString(36).substring(7))
|
||||
|
||||
const { state } = useState()
|
||||
const [uuid, setUuid] = React.useState()
|
||||
|
||||
// will only run on the client
|
||||
React.useEffect(() => {
|
||||
setUuid(Math.random().toString(36).substring(7))
|
||||
}, [])
|
||||
|
||||
const { thingtime } = useThingtime()
|
||||
|
||||
React.useEffect(() => {
|
||||
console.log('nik state?.test changed', state?.test)
|
||||
}, [state?.test])
|
||||
// console.log('nik thingtime?.test changed', thingtime?.test)
|
||||
}, [thingtime?.test])
|
||||
|
||||
React.useEffect(() => {
|
||||
console.log('nik state changed', state)
|
||||
}, [state])
|
||||
// console.log('nik thingtime changed', thingtime)
|
||||
}, [thingtime])
|
||||
|
||||
const depth = React.useMemo(() => {
|
||||
return props?.depth || 1
|
||||
@ -37,7 +43,9 @@ export const Thingtime = props => {
|
||||
|
||||
const keys = React.useMemo(() => {
|
||||
if (validKeyTypes?.includes(typeof thing)) {
|
||||
return Object.keys(thing)
|
||||
const keysRet = Object.keys(thing)
|
||||
console.log('nik keysRet', keysRet)
|
||||
return keysRet
|
||||
} else {
|
||||
return []
|
||||
}
|
||||
@ -55,7 +63,20 @@ export const Thingtime = props => {
|
||||
} else if (type === 'boolean') {
|
||||
return thing ? 'true' : 'false'
|
||||
} else if (type === 'object') {
|
||||
return JSON.stringify(thing, null, 2)
|
||||
if (!keys?.length) {
|
||||
return 'Empty object'
|
||||
}
|
||||
|
||||
try {
|
||||
return JSON.stringify(thing, null, 2)
|
||||
} catch (err) {
|
||||
console.error(
|
||||
'Caught error making renderableValue of thing',
|
||||
err,
|
||||
thing
|
||||
)
|
||||
return 'Circular reference in object.'
|
||||
}
|
||||
} else {
|
||||
return null
|
||||
}
|
||||
@ -118,8 +139,9 @@ export const Thingtime = props => {
|
||||
// w={'500px'}
|
||||
// w={['200px', '500px']}
|
||||
maxW='100%'
|
||||
py={props?.path ? 3 : 0}
|
||||
pl={[4, 6]}
|
||||
pr={[4, 6]}
|
||||
// pr={[4, 6]}
|
||||
>
|
||||
{keysToUse?.length &&
|
||||
keysToUse.map((key, idx) => {
|
||||
|
@ -1,18 +0,0 @@
|
||||
import React, { useContext } from 'react'
|
||||
|
||||
import { StateContext } from '~/Providers/State'
|
||||
|
||||
const getGlobal = () => {
|
||||
try {
|
||||
return window
|
||||
} catch {
|
||||
return globalThis
|
||||
}
|
||||
}
|
||||
|
||||
export const useState = (props?: any) => {
|
||||
|
||||
const { state, addState } = useContext(StateContext)
|
||||
|
||||
return { state, addState }
|
||||
}
|
19
remix/app/components/Thingtime/useThingtime.tsx
Normal file
19
remix/app/components/Thingtime/useThingtime.tsx
Normal file
@ -0,0 +1,19 @@
|
||||
import React, { useContext } from 'react'
|
||||
|
||||
import { ThingtimeContext } from '~/Providers/ThingtimeProvider'
|
||||
|
||||
const getGlobal = () => {
|
||||
try {
|
||||
return window
|
||||
} catch {
|
||||
return globalThis
|
||||
}
|
||||
}
|
||||
|
||||
export const useThingtime = (props?: any) => {
|
||||
const value = useContext(ThingtimeContext)
|
||||
|
||||
const { thingtime, setThingtime, getThingtime } = value
|
||||
|
||||
return value
|
||||
}
|
@ -5,13 +5,13 @@ export const RainbowText = props => {
|
||||
return (
|
||||
<Text
|
||||
as='h1'
|
||||
userSelect={"none"}
|
||||
userSelect={'none'}
|
||||
position='relative'
|
||||
fontSize='6xl'
|
||||
fontWeight='bold'
|
||||
backgroundClip={'text'}
|
||||
color='transparent'
|
||||
bgGradient='linear-gradient(to right, #f34a4a, #ffbc48, #58ca70, #47b5e6, #a555e8, #f34a4a);'
|
||||
bgGradient='linear-gradient(to right, #f34a4a, #ffbc48, #58ca70, #47b5e6, #a555e8, #f34a4a)'
|
||||
backgroundSize='200%'
|
||||
sx={{
|
||||
'@keyframes moving-rainbow': {
|
||||
|
@ -1,4 +1,10 @@
|
||||
import { hydrate } from 'react-dom'
|
||||
// import { RemixBrowser } from "remix";
|
||||
import { RemixBrowser } from '@remix-run/react'
|
||||
try {
|
||||
window.process = {}
|
||||
} catch (err) {
|
||||
// nothing
|
||||
}
|
||||
|
||||
hydrate(<RemixBrowser />, document)
|
||||
|
13
remix/app/functions/path.tsx
Normal file
13
remix/app/functions/path.tsx
Normal file
@ -0,0 +1,13 @@
|
||||
export const sanitise = str => {
|
||||
const isTT = str?.slice(0, 3) === 'tt.'
|
||||
const isThingtime = str?.slice(0, 9) === 'thingtime.'
|
||||
|
||||
if (isTT) {
|
||||
str = str?.slice(3)
|
||||
}
|
||||
if (isThingtime) {
|
||||
str = str?.slice(9)
|
||||
}
|
||||
|
||||
return str
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import { ChakraProvider } from '@chakra-ui/react'
|
||||
import { ChakraWrapper } from './Providers/Chakra/ChakraWrapper'
|
||||
// import type { MetaFunction } from "@vercel/remix"
|
||||
import {
|
||||
Links,
|
||||
@ -10,7 +10,7 @@ import {
|
||||
} from '@remix-run/react'
|
||||
import { Analytics } from '@vercel/analytics/react'
|
||||
import { Main } from './components/Layout/Main'
|
||||
import { StateProvider } from './Providers/State'
|
||||
import { ThingtimeProvider } from './Providers/ThingtimeProvider'
|
||||
|
||||
function Document ({
|
||||
children,
|
||||
@ -29,7 +29,7 @@ function Document ({
|
||||
<Links />
|
||||
</head>
|
||||
<body>
|
||||
<Main>{children}</Main>
|
||||
{children}
|
||||
<ScrollRestoration />
|
||||
<Scripts />
|
||||
<LiveReload />
|
||||
@ -42,17 +42,18 @@ function Document ({
|
||||
export default function App () {
|
||||
return (
|
||||
<Document>
|
||||
<StateProvider>
|
||||
<ChakraProvider>
|
||||
<Outlet />
|
||||
</ChakraProvider>
|
||||
</StateProvider>
|
||||
<ChakraWrapper>
|
||||
<ThingtimeProvider>
|
||||
<Main>
|
||||
<Outlet />
|
||||
</Main>
|
||||
</ThingtimeProvider>
|
||||
</ChakraWrapper>
|
||||
</Document>
|
||||
)
|
||||
}
|
||||
|
||||
// limiter
|
||||
|
||||
const setThingtime = glob => {
|
||||
try {
|
||||
glob.thingtime = {
|
||||
|
2857
remix/app/smarts/index.tsx
Normal file
2857
remix/app/smarts/index.tsx
Normal file
File diff suppressed because it is too large
Load Diff
@ -6,6 +6,13 @@
|
||||
"dev": "remix dev --port 9999"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.14.8",
|
||||
"@babel/generator": "^7.8.4",
|
||||
"@babel/parser": "^7.22.5",
|
||||
"@babel/polyfill": "^7.4.4",
|
||||
"@babel/standalone": "^7.14.8",
|
||||
"@babel/template": "^7.14.8",
|
||||
"@babel/types": "^7.15.0",
|
||||
"@chakra-ui/react": "^2.7.1",
|
||||
"@remix-run/node": "^1.15.0",
|
||||
"@remix-run/react": "^1.15.0",
|
||||
@ -13,8 +20,11 @@
|
||||
"@vercel/analytics": "^0.1.11",
|
||||
"@vercel/remix": "^1.15.0",
|
||||
"isbot": "latest",
|
||||
"lodash-es": "^4.17.21",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
"react-dom": "^18.2.0",
|
||||
"smarts": "^2.0.3",
|
||||
"uuid": "^9.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@remix-run/dev": "^1.15.0",
|
||||
|
@ -1,10 +1,31 @@
|
||||
lockfileVersion: '6.1'
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
dependencies:
|
||||
'@babel/core':
|
||||
specifier: ^7.14.8
|
||||
version: 7.20.12
|
||||
'@babel/generator':
|
||||
specifier: ^7.8.4
|
||||
version: 7.20.14
|
||||
'@babel/parser':
|
||||
specifier: ^7.22.5
|
||||
version: 7.22.5
|
||||
'@babel/polyfill':
|
||||
specifier: ^7.4.4
|
||||
version: 7.12.1
|
||||
'@babel/standalone':
|
||||
specifier: ^7.14.8
|
||||
version: 7.22.5
|
||||
'@babel/template':
|
||||
specifier: ^7.14.8
|
||||
version: 7.20.7
|
||||
'@babel/types':
|
||||
specifier: ^7.15.0
|
||||
version: 7.20.7
|
||||
'@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)
|
||||
@ -26,12 +47,21 @@ dependencies:
|
||||
isbot:
|
||||
specifier: latest
|
||||
version: 3.6.12
|
||||
lodash-es:
|
||||
specifier: ^4.17.21
|
||||
version: 4.17.21
|
||||
react:
|
||||
specifier: ^18.2.0
|
||||
version: 18.2.0
|
||||
react-dom:
|
||||
specifier: ^18.2.0
|
||||
version: 18.2.0(react@18.2.0)
|
||||
smarts:
|
||||
specifier: ^2.0.3
|
||||
version: 2.0.3
|
||||
uuid:
|
||||
specifier: ^9.0.0
|
||||
version: 9.0.0
|
||||
|
||||
devDependencies:
|
||||
'@remix-run/dev':
|
||||
@ -61,7 +91,6 @@ packages:
|
||||
dependencies:
|
||||
'@jridgewell/gen-mapping': 0.1.1
|
||||
'@jridgewell/trace-mapping': 0.3.17
|
||||
dev: true
|
||||
|
||||
/@babel/code-frame@7.18.6:
|
||||
resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
|
||||
@ -72,7 +101,6 @@ packages:
|
||||
/@babel/compat-data@7.20.14:
|
||||
resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/core@7.20.12:
|
||||
resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
|
||||
@ -84,7 +112,7 @@ packages:
|
||||
'@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12)
|
||||
'@babel/helper-module-transforms': 7.20.11
|
||||
'@babel/helpers': 7.20.13
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/parser': 7.22.5
|
||||
'@babel/template': 7.20.7
|
||||
'@babel/traverse': 7.20.13
|
||||
'@babel/types': 7.20.7
|
||||
@ -95,7 +123,6 @@ packages:
|
||||
semver: 6.3.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/eslint-parser@7.19.1(@babel/core@7.20.12)(eslint@8.34.0):
|
||||
resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==}
|
||||
@ -118,7 +145,6 @@ packages:
|
||||
'@babel/types': 7.20.7
|
||||
'@jridgewell/gen-mapping': 0.3.2
|
||||
jsesc: 2.5.2
|
||||
dev: true
|
||||
|
||||
/@babel/helper-annotate-as-pure@7.18.6:
|
||||
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
|
||||
@ -147,7 +173,6 @@ packages:
|
||||
browserslist: 4.21.5
|
||||
lru-cache: 5.1.1
|
||||
semver: 6.3.0
|
||||
dev: true
|
||||
|
||||
/@babel/helper-create-class-features-plugin@7.20.12(@babel/core@7.20.12):
|
||||
resolution: {integrity: sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==}
|
||||
@ -198,7 +223,6 @@ packages:
|
||||
/@babel/helper-environment-visitor@7.18.9:
|
||||
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/helper-explode-assignable-expression@7.18.6:
|
||||
resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
|
||||
@ -213,14 +237,12 @@ packages:
|
||||
dependencies:
|
||||
'@babel/template': 7.20.7
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/helper-hoist-variables@7.18.6:
|
||||
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/helper-member-expression-to-functions@7.20.7:
|
||||
resolution: {integrity: sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==}
|
||||
@ -249,7 +271,6 @@ packages:
|
||||
'@babel/types': 7.20.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/helper-optimise-call-expression@7.18.6:
|
||||
resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
|
||||
@ -297,7 +318,6 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/helper-skip-transparent-expression-wrappers@7.20.0:
|
||||
resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
|
||||
@ -311,7 +331,6 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/helper-string-parser@7.19.4:
|
||||
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
|
||||
@ -324,7 +343,6 @@ packages:
|
||||
/@babel/helper-validator-option@7.18.6:
|
||||
resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/helper-wrap-function@7.20.5:
|
||||
resolution: {integrity: sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==}
|
||||
@ -347,7 +365,6 @@ packages:
|
||||
'@babel/types': 7.20.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/highlight@7.18.6:
|
||||
resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
|
||||
@ -357,13 +374,12 @@ packages:
|
||||
chalk: 2.4.2
|
||||
js-tokens: 4.0.0
|
||||
|
||||
/@babel/parser@7.20.15:
|
||||
resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==}
|
||||
/@babel/parser@7.22.5:
|
||||
resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.18.6(@babel/core@7.20.12):
|
||||
resolution: {integrity: sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==}
|
||||
@ -1150,6 +1166,14 @@ packages:
|
||||
'@babel/helper-plugin-utils': 7.20.2
|
||||
dev: true
|
||||
|
||||
/@babel/polyfill@7.12.1:
|
||||
resolution: {integrity: sha512-X0pi0V6gxLi6lFZpGmeNa4zxtwEmCs42isWLNjZZDE0Y8yVfgu0T2OAHlzBbdYlqbW/YXVvoBHpATEM+goCj8g==}
|
||||
deprecated: 🚨 This package has been deprecated in favor of separate inclusion of a polyfill and regenerator-runtime (when needed). See the @babel/polyfill docs (https://babeljs.io/docs/en/babel-polyfill) for more information.
|
||||
dependencies:
|
||||
core-js: 2.6.12
|
||||
regenerator-runtime: 0.13.11
|
||||
dev: false
|
||||
|
||||
/@babel/preset-env@7.20.2(@babel/core@7.20.12):
|
||||
resolution: {integrity: sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@ -1288,14 +1312,18 @@ packages:
|
||||
dependencies:
|
||||
regenerator-runtime: 0.13.11
|
||||
|
||||
/@babel/standalone@7.22.5:
|
||||
resolution: {integrity: sha512-6Lwhzral4YDEbIM3dBC8/w0BMDvOosGBGaJWSORLkerx8byawkmwwzXKUB0jGlI1Zp90+cK2uyTl62UPtLbUjQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: false
|
||||
|
||||
/@babel/template@7.20.7:
|
||||
resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.18.6
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/parser': 7.22.5
|
||||
'@babel/types': 7.20.7
|
||||
dev: true
|
||||
|
||||
/@babel/traverse@7.20.13:
|
||||
resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==}
|
||||
@ -1307,13 +1335,12 @@ packages:
|
||||
'@babel/helper-function-name': 7.19.0
|
||||
'@babel/helper-hoist-variables': 7.18.6
|
||||
'@babel/helper-split-export-declaration': 7.18.6
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/parser': 7.22.5
|
||||
'@babel/types': 7.20.7
|
||||
debug: 4.3.4
|
||||
globals: 11.12.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/@babel/types@7.20.7:
|
||||
resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
|
||||
@ -2996,7 +3023,6 @@ packages:
|
||||
dependencies:
|
||||
'@jridgewell/set-array': 1.1.2
|
||||
'@jridgewell/sourcemap-codec': 1.4.14
|
||||
dev: true
|
||||
|
||||
/@jridgewell/gen-mapping@0.3.2:
|
||||
resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
|
||||
@ -3005,28 +3031,23 @@ packages:
|
||||
'@jridgewell/set-array': 1.1.2
|
||||
'@jridgewell/sourcemap-codec': 1.4.14
|
||||
'@jridgewell/trace-mapping': 0.3.17
|
||||
dev: true
|
||||
|
||||
/@jridgewell/resolve-uri@3.1.0:
|
||||
resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
dev: true
|
||||
|
||||
/@jridgewell/set-array@1.1.2:
|
||||
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
|
||||
engines: {node: '>=6.0.0'}
|
||||
dev: true
|
||||
|
||||
/@jridgewell/sourcemap-codec@1.4.14:
|
||||
resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
|
||||
dev: true
|
||||
|
||||
/@jridgewell/trace-mapping@0.3.17:
|
||||
resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
|
||||
dependencies:
|
||||
'@jridgewell/resolve-uri': 3.1.0
|
||||
'@jridgewell/sourcemap-codec': 1.4.14
|
||||
dev: true
|
||||
|
||||
/@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
|
||||
resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
|
||||
@ -3106,7 +3127,7 @@ packages:
|
||||
dependencies:
|
||||
'@babel/core': 7.20.12
|
||||
'@babel/generator': 7.20.14
|
||||
'@babel/parser': 7.20.15
|
||||
'@babel/parser': 7.22.5
|
||||
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12)
|
||||
'@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12)
|
||||
'@babel/preset-env': 7.20.2(@babel/core@7.20.12)
|
||||
@ -4059,7 +4080,6 @@ packages:
|
||||
electron-to-chromium: 1.4.296
|
||||
node-releases: 2.0.10
|
||||
update-browserslist-db: 1.0.10(browserslist@4.21.5)
|
||||
dev: true
|
||||
|
||||
/buffer-from@1.1.2:
|
||||
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
||||
@ -4140,7 +4160,6 @@ packages:
|
||||
|
||||
/caniuse-lite@1.0.30001452:
|
||||
resolution: {integrity: sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==}
|
||||
dev: true
|
||||
|
||||
/chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
@ -4330,6 +4349,17 @@ packages:
|
||||
browserslist: 4.21.5
|
||||
dev: true
|
||||
|
||||
/core-js@2.6.12:
|
||||
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
|
||||
deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
|
||||
/core-js@3.31.0:
|
||||
resolution: {integrity: sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
|
||||
/core-util-is@1.0.3:
|
||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||
dev: true
|
||||
@ -4423,7 +4453,6 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
dev: true
|
||||
|
||||
/decode-named-character-reference@1.0.2:
|
||||
resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==}
|
||||
@ -4468,6 +4497,11 @@ packages:
|
||||
resolution: {integrity: sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==}
|
||||
dev: true
|
||||
|
||||
/deepmerge@3.3.0:
|
||||
resolution: {integrity: sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/deepmerge@4.3.0:
|
||||
resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -4583,7 +4617,6 @@ packages:
|
||||
|
||||
/electron-to-chromium@1.4.296:
|
||||
resolution: {integrity: sha512-i/6Q+Y9bluDa2a0NbMvdtG5TuS/1Fr3TKK8L+7UUL9QjRS5iFJzCC3r70xjyOnLiYG8qGV4/mMpe6HuAbdJW4w==}
|
||||
dev: true
|
||||
|
||||
/emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
@ -4762,7 +4795,6 @@ packages:
|
||||
/escalade@3.1.1:
|
||||
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/escape-html@1.0.3:
|
||||
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
||||
@ -5535,7 +5567,6 @@ packages:
|
||||
/gensync@1.0.0-beta.2:
|
||||
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/get-intrinsic@1.2.0:
|
||||
resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
|
||||
@ -5628,7 +5659,6 @@ packages:
|
||||
/globals@11.12.0:
|
||||
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/globals@13.20.0:
|
||||
resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
|
||||
@ -6085,6 +6115,10 @@ packages:
|
||||
resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
|
||||
dev: true
|
||||
|
||||
/is-mergeable-object@1.1.1:
|
||||
resolution: {integrity: sha512-CPduJfuGg8h8vW74WOxHtHmtQutyQBzR+3MjQ6iDHIYdbOnm1YC7jv43SqCoU8OPGTJD4nibmiryA4kmogbGrA==}
|
||||
dev: false
|
||||
|
||||
/is-negative-zero@2.0.2:
|
||||
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -6257,7 +6291,6 @@ packages:
|
||||
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/jsesc@3.0.2:
|
||||
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
|
||||
@ -6291,7 +6324,6 @@ packages:
|
||||
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/jsonc-parser@3.2.0:
|
||||
resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
|
||||
@ -6386,6 +6418,10 @@ packages:
|
||||
p-locate: 5.0.0
|
||||
dev: true
|
||||
|
||||
/lodash-es@4.17.21:
|
||||
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
|
||||
dev: false
|
||||
|
||||
/lodash.camelcase@4.3.0:
|
||||
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
|
||||
dev: true
|
||||
@ -6433,7 +6469,6 @@ packages:
|
||||
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
|
||||
dependencies:
|
||||
yallist: 3.1.1
|
||||
dev: true
|
||||
|
||||
/lru-cache@6.0.0:
|
||||
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
|
||||
@ -7016,7 +7051,6 @@ packages:
|
||||
|
||||
/ms@2.1.2:
|
||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||
dev: true
|
||||
|
||||
/ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
@ -7067,7 +7101,6 @@ packages:
|
||||
|
||||
/node-releases@2.0.10:
|
||||
resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
|
||||
dev: true
|
||||
|
||||
/normalize-path@3.0.0:
|
||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||
@ -7377,7 +7410,6 @@ packages:
|
||||
|
||||
/picocolors@1.0.0:
|
||||
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
|
||||
dev: true
|
||||
|
||||
/picomatch@2.3.1:
|
||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||
@ -7510,7 +7542,6 @@ packages:
|
||||
resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/pretty-format@27.5.1:
|
||||
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
|
||||
@ -8046,7 +8077,6 @@ packages:
|
||||
/semver@6.3.0:
|
||||
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/semver@7.3.8:
|
||||
resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
|
||||
@ -8131,6 +8161,25 @@ packages:
|
||||
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
|
||||
dev: true
|
||||
|
||||
/smarts@2.0.3:
|
||||
resolution: {integrity: sha512-42Xy0lJd2gP6g7pg2+ADa6VuSbF2S2QSTHm2H/Wj+4TiHE6Ekyz6LntJ6bloNPfYFEh6o5jnfjNurzfWlcQKiw==}
|
||||
dependencies:
|
||||
'@babel/core': 7.20.12
|
||||
'@babel/generator': 7.20.14
|
||||
'@babel/parser': 7.22.5
|
||||
'@babel/polyfill': 7.12.1
|
||||
'@babel/standalone': 7.22.5
|
||||
'@babel/template': 7.20.7
|
||||
'@babel/types': 7.20.7
|
||||
core-js: 3.31.0
|
||||
deepmerge: 3.3.0
|
||||
is-mergeable-object: 1.1.1
|
||||
prettier: 2.7.1
|
||||
uuid: 3.4.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/socks-proxy-agent@5.0.1:
|
||||
resolution: {integrity: sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==}
|
||||
engines: {node: '>= 6'}
|
||||
@ -8668,7 +8717,6 @@ packages:
|
||||
browserslist: 4.21.5
|
||||
escalade: 3.1.1
|
||||
picocolors: 1.0.0
|
||||
dev: true
|
||||
|
||||
/uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
@ -8732,6 +8780,17 @@ packages:
|
||||
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
|
||||
/uuid@3.4.0:
|
||||
resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==}
|
||||
deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/uuid@9.0.0:
|
||||
resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/uvu@0.5.6:
|
||||
resolution: {integrity: sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==}
|
||||
engines: {node: '>=8'}
|
||||
@ -8973,7 +9032,6 @@ packages:
|
||||
|
||||
/yallist@3.1.1:
|
||||
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
|
||||
dev: true
|
||||
|
||||
/yallist@4.0.0:
|
||||
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"include": ["remix.env.d.ts", "**/*.ts", "**/*.tsx"],
|
||||
"compilerOptions": {
|
||||
"noImplicitAny": false,
|
||||
"lib": ["DOM", "DOM.Iterable", "ES2019"],
|
||||
"isolatedModules": true,
|
||||
"esModuleInterop": true,
|
||||
|
Loading…
Reference in New Issue
Block a user