radix select

This commit is contained in:
Sanster 2022-04-28 13:57:22 +08:00
parent bf1e990f00
commit a297a6d3d0
14 changed files with 499 additions and 303 deletions

View File

@ -5,6 +5,8 @@
"proxy": "http://localhost:8080",
"dependencies": {
"@heroicons/react": "^1.0.4",
"@radix-ui/react-dialog": "^0.1.7",
"@radix-ui/react-select": "^0.1.2-rc.16",
"@radix-ui/react-switch": "^0.1.5",
"@radix-ui/react-toast": "^0.1.1",
"@testing-library/jest-dom": "^5.14.1",

View File

@ -22,10 +22,5 @@
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<script>
if (location.hostname === 'localhost') {
self.FIREBASE_APPCHECK_DEBUG_TOKEN = true
}
</script>
</body>
</html>

View File

@ -29,8 +29,12 @@ function App() {
setTheme(newTheme)
})
useEffect(() => {
document.body.setAttribute('data-theme', theme)
}, [theme])
return (
<div className="lama-cleaner" data-theme={theme}>
<div className="lama-cleaner">
<Header />
{file ? <Workspace file={file} /> : <LandingPage />}
</div>

View File

@ -52,7 +52,6 @@
}
.editor-toolkit-panel {
// width: 100%;
position: fixed;
bottom: 0.5rem;
border-radius: 3rem;
@ -110,80 +109,3 @@
border: 1px solid var(--yellow-accent);
pointer-events: none;
}
.editor-size-selector-options {
position: fixed;
display: grid;
}
.editor-size-selector {
grid-area: toolkit-size-selector;
display: grid;
grid-template-columns: repeat(2, max-content);
align-items: center;
}
.editor-size-selector-main {
@include accented-display(var(white));
user-select: none;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
outline: none;
gap: 8px;
width: 128px;
border: 1px solid var(--editor-size-border-color);
color: var(--options-text-color);
svg {
width: 1rem;
height: 1rem;
margin-top: 0.25rem;
}
}
.editor-size-options {
@include accented-display(var(--btn-primary-bg));
width: 128px;
padding: 0;
display: grid;
justify-self: center;
position: fixed;
bottom: 4rem;
cursor: pointer;
color: var(--options-text-color);
background-color: var(--page-bg);
border: 1px solid var(--editor-size-border-color);
border-radius: 0.6rem;
@include mobile {
bottom: 11.5rem;
}
.editor-size-option {
display: flex;
align-items: center;
height: 40px;
user-select: none;
padding: 0.2rem 0.8rem;
&:first-of-type {
border-top-right-radius: 0.5rem;
border-top-left-radius: 0.5rem;
}
&:last-of-type {
border-bottom-left-radius: 0.5rem;
border-bottom-right-radius: 0.5rem;
}
&:hover {
background-color: var(--yellow-accent);
color: var(--btn-text-hover-color);
}
}
}

View File

@ -268,6 +268,7 @@ export default function Editor(props: EditorProps) {
isOriginalLoaded,
windowSize,
initialCentered,
drawOnCurrentRender,
])
// Zoom reset

View File

@ -1,6 +1,5 @@
import React, { useCallback, useRef, useState } from 'react'
import { useClickAway } from 'react-use'
import { ChevronUpIcon } from '@heroicons/react/outline'
import React, { useCallback, useState } from 'react'
import Selector from '../shared/Selector'
const sizes = ['720', '1080', '2000', 'Original']
@ -12,24 +11,9 @@ type SizeSelectorProps = {
export default function SizeSelector(props: SizeSelectorProps) {
const { originalHeight, originalWidth, onChange } = props
const [showOptions, setShowOptions] = useState<boolean>(false)
const sizeSelectorRef = useRef(null)
const [activeSize, setActiveSize] = useState<string>('Original')
const longSide: number = Math.max(originalWidth, originalHeight)
const getValidSizes = useCallback(() => {
const validSizes: string[] = []
for (let i = 0; i < sizes.length; i += 1) {
if (sizes[i] === 'Original') {
validSizes.push(sizes[i])
}
if (parseInt(sizes[i], 10) < longSide) {
validSizes.push(sizes[i])
}
}
return validSizes
}, [longSide])
const getSizeShowName = useCallback(
(size: string) => {
if (size === 'Original') {
@ -46,57 +30,38 @@ export default function SizeSelector(props: SizeSelectorProps) {
[originalWidth, originalHeight, longSide]
)
const showOptionsHandler = () => {
setShowOptions(currentShowOptionsState => !currentShowOptionsState)
}
const getValidSizes = useCallback(() => {
const validSizes: string[] = []
for (let i = 0; i < sizes.length; i += 1) {
if (sizes[i] === 'Original') {
validSizes.push(getSizeShowName(sizes[i]))
}
if (parseInt(sizes[i], 10) < longSide) {
validSizes.push(getSizeShowName(sizes[i]))
}
}
return validSizes
}, [longSide, getSizeShowName])
useClickAway(sizeSelectorRef, () => {
setShowOptions(false)
})
const sizeChangeHandler = (e: any) => {
const currentRes = e.target.textContent.split('x')
const sizeChangeHandler = (value: string) => {
const currentRes = value.split('x')
if (originalWidth > originalHeight) {
setActiveSize(currentRes[0])
onChange(currentRes[0])
onChange(parseInt(currentRes[0], 10))
} else {
setActiveSize(currentRes[1])
onChange(currentRes[1])
onChange(parseInt(currentRes[1], 10))
}
setShowOptions(!showOptions)
}
return (
<div className="editor-size-selector" ref={sizeSelectorRef}>
<div
className="editor-size-selector-main"
role="button"
tabIndex={0}
onClick={showOptionsHandler}
aria-hidden="true"
>
<p>{getSizeShowName(activeSize.toString())}</p>
<div className="editor-size-selector-icon">
<ChevronUpIcon />
</div>
</div>
{showOptions && (
<div className="editor-size-options">
{getValidSizes().map(size => (
<div
className="editor-size-option"
role="button"
tabIndex={0}
key={size}
onClick={sizeChangeHandler}
aria-hidden="true"
>
{getSizeShowName(size)}
</div>
))}
</div>
)}
</div>
<Selector
width={100}
autoFocusAfterClose={false}
value={getSizeShowName(activeSize.toString())}
options={getValidSizes()}
onChange={sizeChangeHandler}
chevronDirection="up"
/>
)
}

View File

@ -12,6 +12,7 @@ export enum AIModel {
function ModelSettingBlock() {
const [setting, setSettingState] = useRecoilState(settingState)
console.log(setting.model)
const onModelChange = (value: AIModel) => {
setSettingState(old => {

View File

@ -4,7 +4,7 @@ import Editor from './Editor/Editor'
import ShortcutsModal from './Shortcuts/ShortcutsModal'
import SettingModal from './Settings/SettingsModal'
import Toast from './shared/Toast'
import { Settings, settingState, toastState } from '../store/Atoms'
import { settingState, toastState } from '../store/Atoms'
import {
currentModel,
modelDownloaded,
@ -79,7 +79,7 @@ const Workspace = ({ file }: WorkspaceProps) => {
return { ...old, model: model as AIModel }
})
})
}, [])
}, [setSettingState])
return (
<>

View File

@ -1,17 +1,30 @@
.modal-mask {
z-index: 9999;
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
position: fixed;
z-index: 9998;
inset: 0;
background-color: var(--model-mask-bg);
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
animation: opacityReveal 150ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}
@keyframes contentShow {
0% {
opacity: 0;
transform: translate(-50%, -48%) scale(0.96);
}
100% {
opacity: 1;
transform: translate(-50%, -50%) scale(1);
}
}
.modal {
background-color: var(--page-bg);
z-index: 9999;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: grid;
grid-auto-rows: max-content;
row-gap: 2rem;
@ -19,6 +32,10 @@
padding: 2rem;
border-radius: 0.95rem;
&:focus {
outline: none;
}
.modal-header {
display: grid;
grid-template-columns: repeat(2, auto);
@ -28,4 +45,6 @@
justify-self: end;
}
}
animation: contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

View File

@ -1,6 +1,6 @@
import { XIcon } from '@heroicons/react/outline'
import React, { ReactNode, useRef } from 'react'
import { useClickAway, useKey, useKeyPress, useKeyPressEvent } from 'react-use'
import React, { ReactNode } from 'react'
import * as DialogPrimitive from '@radix-ui/react-dialog'
import Button from './Button'
export interface ModalProps {
@ -11,34 +11,35 @@ export interface ModalProps {
className?: string
}
export default function Modal(props: ModalProps) {
const Modal = React.forwardRef<
React.ElementRef<typeof DialogPrimitive.Root>,
ModalProps
>((props, forwardedRef) => {
const { show, children, onClose, className, title } = props
const ref = useRef(null)
useClickAway(ref, () => {
if (show) {
const onOpenChange = (open: boolean) => {
if (!open) {
onClose?.()
}
})
useKeyPressEvent('Escape', e => {
if (show) {
onClose?.()
}
})
}
return (
<div
className="modal-mask"
style={{ visibility: show === true ? 'visible' : 'hidden' }}
>
<div ref={ref} className={`modal ${className}`}>
<div className="modal-header">
<h2>{title}</h2>
<Button icon={<XIcon />} onClick={onClose} />
</div>
{children}
</div>
</div>
<DialogPrimitive.Root open={show} onOpenChange={onOpenChange}>
<DialogPrimitive.Portal>
<DialogPrimitive.Overlay className="modal-mask" />
<DialogPrimitive.Content
ref={forwardedRef}
className={`modal ${className}`}
>
<div className="modal-header">
<DialogPrimitive.Title>{title}</DialogPrimitive.Title>
<Button icon={<XIcon />} onClick={onClose} />
</div>
{children}
</DialogPrimitive.Content>
</DialogPrimitive.Portal>
</DialogPrimitive.Root>
)
}
})
export default Modal

View File

@ -2,8 +2,7 @@
all: unset;
flex: 1 0 auto;
border-radius: 0.5rem;
padding: 0.2rem 0.8rem;
line-height: 1;
padding: 0.4rem 0.8rem;
outline: 1px solid var(--border-color);
&:focus-visible {

View File

@ -1,26 +1,14 @@
@use '../../styles/Mixins' as *;
.selector {
position: relative;
display: flex;
flex-direction: column;
.select-trigger {
all: unset;
display: inline-flex;
align-items: center;
justify-content: space-between;
}
.selector-main {
@include accented-display(var(white));
width: 100%;
user-select: none;
display: flex;
justify-content: space-between;
align-items: center;
cursor: pointer;
outline: none;
border-radius: 0.5rem;
height: 38px;
gap: 8px;
padding: 0.2rem 0.8rem;
padding: 0 0.8rem;
border: 1px solid var(--border-color);
background-color: var(--page-bg);
color: var(--options-text-color);
svg {
@ -28,47 +16,52 @@
height: 1rem;
margin-top: 0.25rem;
}
&:hover {
border-color: var(--yellow-accent);
}
// &:focus-visible {
// border-color: var(--yellow-accent);
// }
}
.selector-options {
@include accented-display(var(--btn-primary-bg));
width: 100%;
padding: 0;
display: grid;
justify-self: center;
position: absolute;
cursor: pointer;
top: 3rem;
color: var(--options-text-color);
.select-content {
overflow: hidden;
background-color: var(--page-bg);
border-radius: 0.5rem;
}
.select-viewport {
border: 1px solid var(--border-color);
border-radius: 0.5rem;
padding: 5px;
}
border-radius: 0.6rem;
.select-item {
all: unset;
background-color: var(--page-bg);
color: var(--options-text-color);
display: flex;
align-items: center;
border-radius: 0.5rem;
@include mobile {
bottom: 11.5rem;
}
padding: 6px 6px 6px 25px;
position: relative;
user-select: none;
.selector-option {
display: flex;
align-items: center;
user-select: none;
padding: 0.5rem 0.8rem;
&:first-of-type {
border-top-right-radius: 0.5rem;
border-top-left-radius: 0.5rem;
}
&:last-of-type {
border-bottom-left-radius: 0.5rem;
border-bottom-right-radius: 0.5rem;
}
&:hover {
background-color: var(--yellow-accent);
color: var(--btn-text-hover-color);
}
&:focus {
color: var(--btn-text-hover-color);
background-color: var(--yellow-accent);
}
}
.select-item-indicator {
position: absolute;
left: 0;
width: 25px;
padding-right: 4px;
display: inline-flex;
align-items: center;
justify-content: center;
}

View File

@ -1,86 +1,85 @@
import React, { MutableRefObject, useCallback, useRef, useState } from 'react'
import { useClickAway, useKeyPressEvent } from 'react-use'
import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/outline'
import React, { useRef } from 'react'
import {
CheckIcon,
ChevronDownIcon,
ChevronUpIcon,
} from '@heroicons/react/outline'
import * as Select from '@radix-ui/react-select'
import { relative } from 'path'
type SelectorChevronDirection = 'up' | 'down'
type SelectorProps = {
minWidth?: number
chevronDirection?: SelectorChevronDirection
interface Props {
width?: number
value: string
options: string[]
chevronDirection?: SelectorChevronDirection
autoFocusAfterClose?: boolean
onChange: (value: string) => void
}
const selectorDefaultProps = {
minWidth: 128,
chevronDirection: 'down',
}
const Selector = (props: Props) => {
const {
width,
value,
chevronDirection,
options,
autoFocusAfterClose,
onChange,
} = props
function Selector(props: SelectorProps) {
const { minWidth, chevronDirection, value, options, onChange } = props
const [showOptions, setShowOptions] = useState<boolean>(false)
const selectorRef = useRef<HTMLDivElement | null>(null)
const contentRef = useRef<HTMLButtonElement>(null)
const showOptionsHandler = () => {
// console.log(selectorRef.current?.focus)
// selectorRef?.current?.focus()
setShowOptions(currentShowOptionsState => !currentShowOptionsState)
}
useClickAway(selectorRef, () => {
setShowOptions(false)
})
// TODO: how to prevent Modal close?
// useKeyPressEvent('Escape', (e: KeyboardEvent) => {
// if (showOptions === true) {
// console.log(`selector ${e}`)
// e.preventDefault()
// e.stopPropagation()
// setShowOptions(false)
// }
// })
const onOptionClick = (e: any, newIndex: number) => {
const currentRes = e.target.textContent.split('x')
onChange(currentRes[0])
setShowOptions(false)
const onOpenChange = (open: boolean) => {
if (!open) {
if (!autoFocusAfterClose) {
// 如果使用 Select.Content 的 onCloseAutoFocus 来取消 focus防止空格继续打开这个 select
// 会导致其它快捷键失效,原因未知
window.setTimeout(() => {
contentRef?.current?.blur()
}, 100)
}
}
}
return (
<div className="selector" ref={selectorRef} style={{ minWidth }}>
<div
className="selector-main"
role="button"
onClick={showOptionsHandler}
aria-hidden="true"
<Select.Root
value={value}
onValueChange={onChange}
onOpenChange={onOpenChange}
>
<Select.Trigger
className="select-trigger"
style={{ width }}
ref={contentRef}
>
<p>{value}</p>
<div className="selector-icon">
<Select.Value />
<Select.Icon>
{chevronDirection === 'up' ? <ChevronUpIcon /> : <ChevronDownIcon />}
</div>
</div>
</Select.Icon>
</Select.Trigger>
{showOptions && (
<div className="selector-options">
{options.map((val, _index) => (
<div
className="selector-option"
role="button"
tabIndex={0}
key={val}
onClick={e => onOptionClick(e, _index)}
aria-hidden="true"
>
{val}
</div>
<Select.Content className="select-content">
<Select.Viewport className="select-viewport">
{options.map(val => (
<Select.Item value={val} className="select-item" key={val}>
<Select.ItemText>{val}</Select.ItemText>
<Select.ItemIndicator className="select-item-indicator">
<CheckIcon />
</Select.ItemIndicator>
</Select.Item>
))}
</div>
)}
</div>
</Select.Viewport>
</Select.Content>
</Select.Root>
)
}
const selectorDefaultProps = {
chevronDirection: 'down',
autoFocusAfterClose: true,
}
Selector.defaultProps = selectorDefaultProps
export default Selector

View File

@ -1544,6 +1544,13 @@
schema-utils "^2.6.5"
source-map "^0.7.3"
"@radix-ui/number@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/number/-/number-0.1.0.tgz#73ad13d5cc5f75fa5e147d72e5d5d5e50d688256"
integrity sha512-rpf6QiOWLHAkM4FEMYu9i+5Jr8cKT893+R4mPpcdsy4LD7omr9JfdOqj/h/xPA5+EcVrpMMlU6rrRYpUB5UI8g==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/primitive@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/primitive/-/primitive-0.1.0.tgz#6206b97d379994f0d1929809db035733b337e543"
@ -1551,6 +1558,17 @@
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-collection@0.1.5-rc.7":
version "0.1.5-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-collection/-/react-collection-0.1.5-rc.7.tgz#796cfab9439430f0ac85560da89611e1dcbfa5fd"
integrity sha512-Ag5RC6k4UUP8Yfmx0iTJdfe24kJ1B/HLN+b/Ss0IRniPBAYKdROgEVXzkkFpPMIPK9oxEKAZ0FFBqr+MZL9Ckg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.1-rc.7"
"@radix-ui/react-context" "0.1.2-rc.7"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@radix-ui/react-slot" "0.1.3-rc.7"
"@radix-ui/react-compose-refs@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.0.tgz#cff6e780a0f73778b976acff2c2a5b6551caab95"
@ -1558,6 +1576,13 @@
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs@0.1.1-rc.7":
version "0.1.1-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-compose-refs/-/react-compose-refs-0.1.1-rc.7.tgz#bd923a167d3bdf1fb44539a7a0a4c290df812135"
integrity sha512-wvkRYS8jJy8vTRcNjnno0Y+y+nOQ4WjnQwNFaGEj1EX2+sSfAYTCIEuDqsKegi8LdcM6l5643yDc/LxV/wDbyg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-context@0.1.1":
version "0.1.1"
resolved "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-0.1.1.tgz#06996829ea124d9a1bc1dbe3e51f33588fab0875"
@ -1565,6 +1590,41 @@
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-context@0.1.2-rc.7":
version "0.1.2-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-context/-/react-context-0.1.2-rc.7.tgz#6a5fe5009d7dbc027cd3cc79748d1716f7a8945b"
integrity sha512-IuT4z3WU3ThSJKRuU3br7yKQjgIKMpOj4larryOPdlLgT4cwcY5Ny1hU56j6f9XQQ/IaWejwts6733YcV6gEiw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-dialog@^0.1.7":
version "0.1.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-dialog/-/react-dialog-0.1.7.tgz#285414cf66f5bbf42bc9935314e0381abe01e7d0"
integrity sha512-jXt8srGhHBRvEr9jhEAiwwJzWCWZoGRJ030aC9ja/gkRJbZdy0iD3FwXf+Ff4RtsZyLUMHW7VUwFOlz3Ixe1Vw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.1.0"
"@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-context" "0.1.1"
"@radix-ui/react-dismissable-layer" "0.1.5"
"@radix-ui/react-focus-guards" "0.1.0"
"@radix-ui/react-focus-scope" "0.1.4"
"@radix-ui/react-id" "0.1.5"
"@radix-ui/react-portal" "0.1.4"
"@radix-ui/react-presence" "0.1.2"
"@radix-ui/react-primitive" "0.1.4"
"@radix-ui/react-slot" "0.1.2"
"@radix-ui/react-use-controllable-state" "0.1.0"
aria-hidden "^1.1.1"
react-remove-scroll "^2.4.0"
"@radix-ui/react-direction@0.1.0-rc.10":
version "0.1.0-rc.10"
resolved "https://registry.npmmirror.com/@radix-ui/react-direction/-/react-direction-0.1.0-rc.10.tgz#d5b664ad48b3d7e50cad57d519d81577a689e04f"
integrity sha512-Eo9gvRtK3H6yu3EcdEtoo6z505AQIiFGYNlJvIT0H9k4LvlWD5ZiPeoZsxFKFOBFZ/T1VFFObFbwMzHedU8cnA==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-dismissable-layer@0.1.5":
version "0.1.5"
resolved "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.5.tgz#9379032351e79028d472733a5cc8ba4a0ea43314"
@ -1578,6 +1638,46 @@
"@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-escape-keydown" "0.1.0"
"@radix-ui/react-dismissable-layer@0.1.6-rc.7":
version "0.1.6-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-0.1.6-rc.7.tgz#a45cc7f8af7c68905bf31244be4c1a4cdba3d3f3"
integrity sha512-Mh+U0ZvUcfUX3oQkD48+2sXWu05ifZQ39a79tl6evsjm++UHlyi1HXvJ+A9Nec7Tr2MGZie25IUo6wKc5Sv0nw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/primitive" "0.1.0"
"@radix-ui/react-compose-refs" "0.1.1-rc.7"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@radix-ui/react-use-body-pointer-events" "0.1.2-rc.7"
"@radix-ui/react-use-callback-ref" "0.1.1-rc.7"
"@radix-ui/react-use-escape-keydown" "0.1.1-rc.7"
"@radix-ui/react-focus-guards@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/react-focus-guards/-/react-focus-guards-0.1.0.tgz#ba3b6f902cba7826569f8edc21ff8223dece7def"
integrity sha512-kRx/swAjEfBpQ3ns7J3H4uxpXuWCqN7MpALiSDOXiyo2vkWv0L9sxvbpZeTulINuE3CGMzicVMuNc/VWXjFKOg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-focus-scope@0.1.4":
version "0.1.4"
resolved "https://registry.npmmirror.com/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.4.tgz#c830724e212d42ffaaa81aee49533213d09b47df"
integrity sha512-fbA4ES3H4Wkxp+OeLhvN6SwL7mXNn/aBtUf7DRYxY9+Akrf7dRxl2ck4lgcpPsSg3zSDsEwLcY+h5cmj5yvlug==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-primitive" "0.1.4"
"@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-focus-scope@0.1.5-rc.7":
version "0.1.5-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-focus-scope/-/react-focus-scope-0.1.5-rc.7.tgz#3f7a30b1d573fc5d5f96c59ae23b38dd8fcf52a0"
integrity sha512-gdKvKlX75VHD2gvGFIFikxv+iqbpMUaaFF/YaJFbESD9Zgq//RMg+GLhk/IYmtxDAlK3o1oRkUCRpRkftG6AWg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.1-rc.7"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@radix-ui/react-use-callback-ref" "0.1.1-rc.7"
"@radix-ui/react-id@0.1.5":
version "0.1.5"
resolved "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-0.1.5.tgz#010d311bedd5a2884c1e9bb6aaaa4e6cc1d1d3b8"
@ -1586,6 +1686,14 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-id@0.1.6-rc.7":
version "0.1.6-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-id/-/react-id-0.1.6-rc.7.tgz#cc4ae5c3d66e412101d9867a5141cdfb9f609f9a"
integrity sha512-FRt/3NQdHXzPKa9xZJ1kNVhMz5WNE1WvGuJpMupXc2GXNXKc51LJiwqhTyQFYvbpo4XCoe69eo9k4J7ZLhhJcQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect" "0.1.1-rc.7"
"@radix-ui/react-label@0.1.5":
version "0.1.5"
resolved "https://registry.npmmirror.com/@radix-ui/react-label/-/react-label-0.1.5.tgz#12cd965bfc983e0148121d4c99fb8e27a917c45c"
@ -1597,6 +1705,17 @@
"@radix-ui/react-id" "0.1.5"
"@radix-ui/react-primitive" "0.1.4"
"@radix-ui/react-label@0.1.6-rc.7":
version "0.1.6-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-label/-/react-label-0.1.6-rc.7.tgz#ae10157766e22b71b4a3da78ae219f0858e3eed5"
integrity sha512-nTrLisKjfY9Z6iB1OKzlyrQrdvRCQmo93DvQTEyGQd4/7477bykjHvL9o+e8TworZIGtGdEIH/9gaktwYfvT1g==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.1-rc.7"
"@radix-ui/react-context" "0.1.2-rc.7"
"@radix-ui/react-id" "0.1.6-rc.7"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@radix-ui/react-portal@0.1.4":
version "0.1.4"
resolved "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-0.1.4.tgz#17bdce3d7f1a9a0b35cb5e935ab8bc562441a7d2"
@ -1606,6 +1725,15 @@
"@radix-ui/react-primitive" "0.1.4"
"@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-portal@0.1.5-rc.7":
version "0.1.5-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-portal/-/react-portal-0.1.5-rc.7.tgz#3810d26556f010301f18cc5c6b7dd4375c6cc595"
integrity sha512-cMnxNPeoXC8ECNSK/+sucx/zOfS44KkMhOlFy4ghFLPC41nx5WGxAhh/OcTEZxJUZQK98aMnW9ggwooLTJhDrQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@radix-ui/react-use-layout-effect" "0.1.1-rc.7"
"@radix-ui/react-presence@0.1.2":
version "0.1.2"
resolved "https://registry.npmmirror.com/@radix-ui/react-presence/-/react-presence-0.1.2.tgz#9f11cce3df73cf65bc348e8b76d891f0d54c1fe3"
@ -1623,6 +1751,40 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-slot" "0.1.2"
"@radix-ui/react-primitive@0.1.5-rc.7":
version "0.1.5-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-primitive/-/react-primitive-0.1.5-rc.7.tgz#6d15519e0f7e2ebf0e4dd9ead0b673eb4a9a21ee"
integrity sha512-yDRKxrdsjF0nsncQOHyREaPB73pdhvl+O47FgkU+5ymyTOL6pPeoN8SI2KE/am4cObvRf+BlsN8rF3nEC7CwOw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-slot" "0.1.3-rc.7"
"@radix-ui/react-select@^0.1.2-rc16":
version "0.1.2-rc.16"
resolved "https://registry.npmmirror.com/@radix-ui/react-select/-/react-select-0.1.2-rc.16.tgz#0d096df4b172e2f55c83e22ceacd4d3965780ba4"
integrity sha512-/qqPQjhc5TCKH2TEmd6b/akEbjQA1NElvFPWcQKuFTThmT0zuaxvtS3nsT6uXCiA3z3yX3blHISGwBvmYg9bxw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/number" "0.1.0"
"@radix-ui/primitive" "0.1.0"
"@radix-ui/react-collection" "0.1.5-rc.7"
"@radix-ui/react-compose-refs" "0.1.1-rc.7"
"@radix-ui/react-context" "0.1.2-rc.7"
"@radix-ui/react-direction" "0.1.0-rc.10"
"@radix-ui/react-dismissable-layer" "0.1.6-rc.7"
"@radix-ui/react-focus-scope" "0.1.5-rc.7"
"@radix-ui/react-id" "0.1.6-rc.7"
"@radix-ui/react-label" "0.1.6-rc.7"
"@radix-ui/react-portal" "0.1.5-rc.7"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@radix-ui/react-use-callback-ref" "0.1.1-rc.7"
"@radix-ui/react-use-controllable-state" "0.1.1-rc.7"
"@radix-ui/react-use-layout-effect" "0.1.1-rc.7"
"@radix-ui/react-use-previous" "0.1.2-rc.7"
"@radix-ui/react-visually-hidden" "0.1.5-rc.7"
aria-hidden "^1.1.1"
react-remove-scroll "^2.4.0"
"@radix-ui/react-slot@0.1.2":
version "0.1.2"
resolved "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-0.1.2.tgz#e6f7ad9caa8ce81cc8d532c854c56f9b8b6307c8"
@ -1631,6 +1793,14 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.0"
"@radix-ui/react-slot@0.1.3-rc.7":
version "0.1.3-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-slot/-/react-slot-0.1.3-rc.7.tgz#0b9ab0ee058533cb3ad9ad0e5e8d6b1da0bfab6e"
integrity sha512-brKCHeZHMkx2t4gWtq86nVwrGRH2FC6v0iYZNWpf/HtR3K37dOV8WkVpOpMw3d5tKudqOnJm4ooX4NnBWHNBFQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-compose-refs" "0.1.1-rc.7"
"@radix-ui/react-switch@^0.1.5":
version "0.1.5"
resolved "https://registry.npmmirror.com/@radix-ui/react-switch/-/react-switch-0.1.5.tgz#071ffa19a17a47fdc5c5e6f371bd5901c9fef2f4"
@ -1672,6 +1842,14 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect" "0.1.0"
"@radix-ui/react-use-body-pointer-events@0.1.2-rc.7":
version "0.1.2-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-body-pointer-events/-/react-use-body-pointer-events-0.1.2-rc.7.tgz#422ddfe499df5e9081cbf9d6e3c3a3b90228b2c3"
integrity sha512-0cxifuIBUc4EqSASGJCPvZbcSiNnCQ2cpzZXDWU7OuUEAeCDw80KNnutKWYH6471e9rGmXcxkx0SrY34v+VS8Q==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect" "0.1.1-rc.7"
"@radix-ui/react-use-callback-ref@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.0.tgz#934b6e123330f5b3a6b116460e6662cbc663493f"
@ -1679,6 +1857,13 @@
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref@0.1.1-rc.7":
version "0.1.1-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-0.1.1-rc.7.tgz#e5ec9402224f7eb46379ab04b31915f8b44befdf"
integrity sha512-cDuHxty1SkiRb/O2A7ZvU1/z23wamB3o7zEYWmgr/udc7+cjoRaLbdjAAy0qw1kPQJExXAwgcAcItkfuc1UcRQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-controllable-state@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.0.tgz#4fced164acfc69a4e34fb9d193afdab973a55de1"
@ -1687,6 +1872,14 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-controllable-state@0.1.1-rc.7":
version "0.1.1-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-0.1.1-rc.7.tgz#21ada7b01f4cbaf64fecb5ba9fa035f6f8fe3811"
integrity sha512-X05TeQD9wqjC8YIXGl/NCJb4gzjaEMBcr3KhtDP14VxJvusNYzGo/zZBz8Wh1hzTYV6csRjyu0efKy6KzqXrbw==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.1.1-rc.7"
"@radix-ui/react-use-escape-keydown@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.0.tgz#dc80cb3753e9d1bd992adbad9a149fb6ea941874"
@ -1695,6 +1888,14 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.1.0"
"@radix-ui/react-use-escape-keydown@0.1.1-rc.7":
version "0.1.1-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-0.1.1-rc.7.tgz#535eb08bbd6b0dce0d82675c20b63011411b1a36"
integrity sha512-I1zbxMyskSl3VtJYXnoEyz1aUld2pjFwhJIT7Y4MWDFfNnVmL0H+i9qj/JojBpo9L8Yb4z35GfwQxuyebMVppQ==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-callback-ref" "0.1.1-rc.7"
"@radix-ui/react-use-layout-effect@0.1.0":
version "0.1.0"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.0.tgz#ebf71bd6d2825de8f1fbb984abf2293823f0f223"
@ -1702,6 +1903,13 @@
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-layout-effect@0.1.1-rc.7":
version "0.1.1-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-0.1.1-rc.7.tgz#eb76911c6d2836e8cd320f689ca31b026cf48ed5"
integrity sha512-M0Lalq9ZfubHRoSgHwzyxE9HiEuUkI7RNBuoqzPAWud6KLzRCdgXe1qg9F8gV/KGe1yolxVluLEemX9B8/mB2g==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-previous@0.1.1":
version "0.1.1"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-previous/-/react-use-previous-0.1.1.tgz#0226017f72267200f6e832a7103760e96a6db5d0"
@ -1709,6 +1917,13 @@
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-previous@0.1.2-rc.7":
version "0.1.2-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-previous/-/react-use-previous-0.1.2-rc.7.tgz#942c9ba01a538d0f9703891201972be5018ec90d"
integrity sha512-1FTtn+BYFq6gk2XEPAHNx3mz0qnbRiRljyjCUmZmDfEeR1hyWF56YgRj3shYpMrJ72BhNgXNHcCLtg1O2XocXg==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-use-size@0.1.1":
version "0.1.1"
resolved "https://registry.npmmirror.com/@radix-ui/react-use-size/-/react-use-size-0.1.1.tgz#f6b75272a5d41c3089ca78c8a2e48e5f204ef90f"
@ -1724,6 +1939,14 @@
"@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "0.1.4"
"@radix-ui/react-visually-hidden@0.1.5-rc.7":
version "0.1.5-rc.7"
resolved "https://registry.npmmirror.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-0.1.5-rc.7.tgz#63fa66750a578a02c86721c6e86f40e59aeefeee"
integrity sha512-RUcUP5TSySwIISzX4zyJwcsSsW55+t7o0q4mcod1+D80eBUYif+p/iCbH8JuEX7InZFhhPaLL9qWyy6Jyl/I5A==
dependencies:
"@babel/runtime" "^7.13.10"
"@radix-ui/react-primitive" "0.1.5-rc.7"
"@rollup/plugin-node-resolve@^7.1.1":
version "7.1.3"
resolved "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz"
@ -2696,6 +2919,13 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
aria-hidden@^1.1.1:
version "1.1.3"
resolved "https://registry.npmmirror.com/aria-hidden/-/aria-hidden-1.1.3.tgz#bb48de18dc84787a3c6eee113709c473c64ec254"
integrity sha512-RhVWFtKH5BiGMycI72q2RAFMLQi8JP9bLuQXgR5a8Znp7P5KOIADSJeyfI8PCVxLEp067B2HbP5JIiI/PXIZeA==
dependencies:
tslib "^1.0.0"
aria-query@^4.2.2:
version "4.2.2"
resolved "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz"
@ -4435,6 +4665,11 @@ detect-newline@^3.0.0:
resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz"
integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
detect-node-es@^1.1.0:
version "1.1.0"
resolved "https://registry.npmmirror.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==
detect-node@^2.0.4:
version "2.1.0"
resolved "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz"
@ -5628,6 +5863,11 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
get-nonce@^1.0.0:
version "1.0.1"
resolved "https://registry.npmmirror.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3"
integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==
get-own-enumerable-property-symbols@^3.0.0:
version "3.0.2"
resolved "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz"
@ -6236,6 +6476,13 @@ internal-slot@^1.0.3:
has "^1.0.3"
side-channel "^1.0.4"
invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.npmmirror.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
dependencies:
loose-envify "^1.0.0"
ip-regex@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz"
@ -7472,7 +7719,7 @@ loglevel@^1.6.8:
resolved "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz"
integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==
loose-envify@^1.1.0, loose-envify@^1.4.0:
loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
@ -9606,6 +9853,25 @@ react-refresh@^0.8.3:
resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz"
integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
react-remove-scroll-bar@^2.3.0:
version "2.3.0"
resolved "https://registry.npmmirror.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.0.tgz#4f1c8442e4a8bbf98f0cd7ba30fdaf7bf5bcffe5"
integrity sha512-v2vf8kgrRph5FQeLVZjSOmM0g3ZiBxwMk98VXhsiJDSPeRDUaXJrzYDk2Hhoe6qLggrhWtAXJZVxUwXmRXa93g==
dependencies:
react-style-singleton "^2.2.0"
tslib "^2.0.0"
react-remove-scroll@^2.4.0:
version "2.5.1"
resolved "https://registry.npmmirror.com/react-remove-scroll/-/react-remove-scroll-2.5.1.tgz#28c318c2e076040e5d6172bf28aab2916ad89b46"
integrity sha512-Lzam+uvyTLlSCqxGeEe5fLadZQkAYYWurr7P+9kgJfgBcBhs04T181D3yqmUzML63W0FLW/oqSd6dnaE0IIisQ==
dependencies:
react-remove-scroll-bar "^2.3.0"
react-style-singleton "^2.2.0"
tslib "^2.0.0"
use-callback-ref "^1.3.0"
use-sidecar "^1.1.2"
react-scripts@4.0.3:
version "4.0.3"
resolved "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.3.tgz"
@ -9672,6 +9938,15 @@ react-scripts@4.0.3:
optionalDependencies:
fsevents "^2.1.3"
react-style-singleton@^2.2.0:
version "2.2.0"
resolved "https://registry.npmmirror.com/react-style-singleton/-/react-style-singleton-2.2.0.tgz#70f45f5fef97fdb9a52eed98d1839fa6b9032b22"
integrity sha512-nK7mN92DMYZEu3cQcAhfwE48NpzO5RpxjG4okbSqRRbfal9Pk+fG2RdQXTMp+f6all1hB9LIJSt+j7dCYrU11g==
dependencies:
get-nonce "^1.0.0"
invariant "^2.2.4"
tslib "^2.0.0"
react-universal-interface@^0.6.2:
version "0.6.2"
resolved "https://registry.npmjs.org/react-universal-interface/-/react-universal-interface-0.6.2.tgz"
@ -11237,11 +11512,16 @@ tsconfig-paths@^3.11.0:
minimist "^1.2.0"
strip-bom "^3.0.0"
tslib@^1.8.1:
tslib@^1.0.0, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
tslib@^2.0.0:
version "2.4.0"
resolved "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
tslib@^2.0.3, tslib@^2.1.0:
version "2.3.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz"
@ -11482,6 +11762,21 @@ url@^0.11.0:
punycode "1.3.2"
querystring "0.2.0"
use-callback-ref@^1.3.0:
version "1.3.0"
resolved "https://registry.npmmirror.com/use-callback-ref/-/use-callback-ref-1.3.0.tgz#772199899b9c9a50526fedc4993fc7fa1f7e32d5"
integrity sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==
dependencies:
tslib "^2.0.0"
use-sidecar@^1.1.2:
version "1.1.2"
resolved "https://registry.npmmirror.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2"
integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==
dependencies:
detect-node-es "^1.1.0"
tslib "^2.0.0"
use@^3.1.0:
version "3.1.1"
resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz"