mirror of
https://github.com/supabase/supabase.git
synced 2026-10-18 15:49:09 +03:00
moved to ID pages for table editor
This commit is contained in:
1 parent
065fd934e0
commit
72b71c8a94
11 files changed
+452
-17
No files matched your search
@@ -16,6 +16,7 @@
|
||||
"next-themes": "^0.3.0",
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"react-hotkeys-hook": "^4.5.0",
|
||||
"ui": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -25,13 +25,7 @@ export default function SideNavMenuIcon({ product }: { product: any }) {
|
||||
<Link
|
||||
key={product.name}
|
||||
href={overrideHref || `/${org}${product.href}`}
|
||||
className={cn(
|
||||
'relative',
|
||||
'w-full',
|
||||
'group/nav-item-anchor',
|
||||
'flex flex-col items-center'
|
||||
// isActive ? 'text-foreground' : 'text-foreground-50'
|
||||
)}
|
||||
className={cn('relative', 'w-full', 'group/nav-item-anchor', 'flex flex-col items-center')}
|
||||
aria-current={isActive ? 'page' : undefined}
|
||||
>
|
||||
<div
|
||||
@@ -39,7 +33,6 @@ export default function SideNavMenuIcon({ product }: { product: any }) {
|
||||
'absolute top-1/2 transform -translate-y-1/2 h-2 w-[3px] rounded-r-full duration-500',
|
||||
'group-hover/nav-item-anchor:bg-foreground-muted group-hover/nav-item-anchor:left-0',
|
||||
isActive ? '!bg-foreground left-0 w-[5px] duration-100' : '-left-1',
|
||||
|
||||
'transition-all'
|
||||
)}
|
||||
></div>
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
'use client'
|
||||
|
||||
export default function EditorIdRender() {
|
||||
return <div className="flex flex-col grow h-full"></div>
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
import TabHeader from './tab-header'
|
||||
import TableEditorItemsPanel from './table-editor-items-panel'
|
||||
|
||||
export default function TableEditorLayout({
|
||||
@@ -8,7 +9,10 @@ export default function TableEditorLayout({
|
||||
return (
|
||||
<div className="flex h-full w-full">
|
||||
<TableEditorItemsPanel />
|
||||
{children}
|
||||
<div className="grow">
|
||||
<TabHeader />
|
||||
{children}
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
import TabHeader from './tab-header'
|
||||
|
||||
export default function TableEditorPage() {
|
||||
return (
|
||||
<div className="flex flex-col grow">
|
||||
<div className="w-full bg-surface-100 h-8 border-b"></div>
|
||||
<span>table editor</span>
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
'use client'
|
||||
|
||||
import { useConfig } from '@/src/hooks/use-config'
|
||||
import { PanelLeftClose, PanelLeftOpen } from 'lucide-react'
|
||||
import { cn } from 'ui'
|
||||
|
||||
export default function TabHeader() {
|
||||
const [config, setConfig] = useConfig()
|
||||
return (
|
||||
<div className="w-full bg-surface-100 h-8 border-b items-center flex px-3">
|
||||
{config.tableEditor.sidePanelOpen ? (
|
||||
<PanelLeftClose
|
||||
size={16}
|
||||
strokeWidth={1.5}
|
||||
className={cn(
|
||||
'text-foreground-muted hover:text-foreground-light transition-colors cursor-pointer'
|
||||
)}
|
||||
onClick={() =>
|
||||
setConfig({
|
||||
...config,
|
||||
tableEditor: {
|
||||
...config.tableEditor,
|
||||
sidePanelOpen: false,
|
||||
},
|
||||
})
|
||||
}
|
||||
/>
|
||||
) : (
|
||||
<PanelLeftOpen
|
||||
size={16}
|
||||
strokeWidth={1.5}
|
||||
className={cn(
|
||||
'text-foreground-muted hover:text-foreground-light transition-colors cursor-pointer'
|
||||
)}
|
||||
onClick={() =>
|
||||
setConfig({
|
||||
...config,
|
||||
tableEditor: {
|
||||
...config.tableEditor,
|
||||
sidePanelOpen: true,
|
||||
},
|
||||
})
|
||||
}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
@@ -1,24 +1,42 @@
|
||||
'use client'
|
||||
|
||||
import { useConfig } from '@/src/hooks/use-config'
|
||||
import useShortcut from '@/src/hooks/use-shortcut'
|
||||
import { useParams, usePathname } from 'next/navigation'
|
||||
import { cn } from 'ui'
|
||||
import { useHotkeys } from 'react-hotkeys-hook'
|
||||
|
||||
export default function TableEditorItemsPanel() {
|
||||
const { org } = useParams()
|
||||
const pathname = usePathname()
|
||||
const isActive = pathname === `/${org}/table-editor`
|
||||
const [config, setConfig] = useConfig()
|
||||
const isActive = config.tableEditor.sidePanelOpen
|
||||
|
||||
useHotkeys(
|
||||
'meta+b',
|
||||
() =>
|
||||
setConfig((prev) => ({
|
||||
...prev,
|
||||
tableEditor: {
|
||||
...prev.tableEditor,
|
||||
sidePanelOpen: !prev.tableEditor.sidePanelOpen,
|
||||
},
|
||||
})),
|
||||
[config.tableEditor.sidePanelOpen]
|
||||
)
|
||||
|
||||
return (
|
||||
<div
|
||||
className={cn(
|
||||
'h-full',
|
||||
'bg-dash-sidebar',
|
||||
//
|
||||
isActive ? 'w-[300px]' : 'w-[0px]',
|
||||
isActive &&
|
||||
`
|
||||
border-r
|
||||
`,
|
||||
'duration-500',
|
||||
'duration-200',
|
||||
'ease-out',
|
||||
'transition-all'
|
||||
)}
|
||||
|
||||
@@ -5,12 +5,18 @@ type Config = {
|
||||
radius: number
|
||||
organization?: string
|
||||
project?: string
|
||||
tableEditor: {
|
||||
sidePanelOpen: boolean
|
||||
}
|
||||
}
|
||||
|
||||
const configAtom = atomWithStorage<Config>('config', {
|
||||
radius: 0.5,
|
||||
organization: 'Summers-Muir',
|
||||
project: 'Sonsing',
|
||||
tableEditor: {
|
||||
sidePanelOpen: true,
|
||||
},
|
||||
})
|
||||
|
||||
export function useConfig() {
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import { useEffect, useState } from 'react'
|
||||
|
||||
const useShortcut = (shortcutKeys: string[], callback: (event: KeyboardEvent) => void) => {
|
||||
const [pressedKeys, setPressedKeys] = useState(new Set<string>())
|
||||
|
||||
useEffect(() => {
|
||||
const handleKeyDown = (event: KeyboardEvent) => {
|
||||
const key = event.key.toLowerCase()
|
||||
const keys = shortcutKeys.map((key) => key.toLowerCase())
|
||||
|
||||
// Add key to pressedKeys
|
||||
setPressedKeys((prevKeys) => new Set(prevKeys).add(key))
|
||||
|
||||
// Check if all keys are pressed
|
||||
const allKeysPressed = keys.every((key) => {
|
||||
if (key === 'meta') return event.metaKey
|
||||
if (key === 'control') return event.ctrlKey
|
||||
if (key === 'shift') return event.shiftKey
|
||||
if (key === 'alt') return event.altKey
|
||||
return pressedKeys.has(key)
|
||||
})
|
||||
|
||||
if (allKeysPressed) {
|
||||
event.preventDefault()
|
||||
callback(event)
|
||||
}
|
||||
}
|
||||
|
||||
const handleKeyUp = (event: KeyboardEvent) => {
|
||||
const key = event.key.toLowerCase()
|
||||
setPressedKeys((prevKeys) => {
|
||||
const newKeys = new Set(prevKeys)
|
||||
newKeys.delete(key)
|
||||
return newKeys
|
||||
})
|
||||
}
|
||||
|
||||
window.addEventListener('keydown', handleKeyDown)
|
||||
window.addEventListener('keyup', handleKeyUp)
|
||||
|
||||
return () => {
|
||||
window.removeEventListener('keydown', handleKeyDown)
|
||||
window.removeEventListener('keyup', handleKeyUp)
|
||||
}
|
||||
}, [shortcutKeys, callback, pressedKeys])
|
||||
|
||||
return null
|
||||
}
|
||||
|
||||
export default useShortcut
|
||||
@@ -6,6 +6,7 @@ module.exports = config({
|
||||
'./src/pages/**/*.{js,ts,jsx,tsx,mdx}',
|
||||
'./src/components/**/*.{js,ts,jsx,tsx,mdx}',
|
||||
'./src/app/**/*.{js,ts,jsx,tsx,mdx}',
|
||||
'./src/config/**/*.{js,ts,jsx,tsx,mdx}',
|
||||
'./components/**/*.{js,ts,jsx,tsx}',
|
||||
'./registry/**/*.{js,ts,jsx,tsx}',
|
||||
// purge styles from grid library
|
||||
|
||||
Generated
+313
-5
@@ -1363,13 +1363,18 @@
|
||||
"apps/studio-prototype": {
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"@glideapps/glide-data-grid": "^6.0.3",
|
||||
"icons": "*",
|
||||
"jotai": "^2.8.0",
|
||||
"lodash": "^4.17.21",
|
||||
"lucide-react": "^0.338.0",
|
||||
"marked": "^13.0.0",
|
||||
"next": "14.2.4",
|
||||
"next-themes": "^0.3.0",
|
||||
"react": "^18",
|
||||
"react-dom": "^18",
|
||||
"react-hotkeys-hook": "^4.5.0",
|
||||
"react-responsive-carousel": "^3.2.23",
|
||||
"ui": "*"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -1384,6 +1389,17 @@
|
||||
"typescript": "^5"
|
||||
}
|
||||
},
|
||||
"apps/studio-prototype/node_modules/marked": {
|
||||
"version": "13.0.0",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-13.0.0.tgz",
|
||||
"integrity": "sha512-VTeDCd9txf4KLLljUZ0nljE/Incb9SrWuueE44QVuU0pkOdh4sfCeW1Z6lPcxyDRSVY6rm8db/0OPaN75RNUmw==",
|
||||
"bin": {
|
||||
"marked": "bin/marked.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 18"
|
||||
}
|
||||
},
|
||||
"apps/studio/node_modules/@heroicons/react": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.3.tgz",
|
||||
@@ -4131,6 +4147,22 @@
|
||||
"@babel/core": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-proposal-export-namespace-from": {
|
||||
"version": "7.18.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
|
||||
"integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
|
||||
"deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.18.9",
|
||||
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-proposal-private-property-in-object": {
|
||||
"version": "7.21.0-placeholder-for-preset-env.2",
|
||||
"dev": true,
|
||||
@@ -4194,7 +4226,6 @@
|
||||
"version": "7.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
|
||||
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
},
|
||||
@@ -4206,7 +4237,6 @@
|
||||
"version": "7.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
|
||||
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.8.3"
|
||||
},
|
||||
@@ -4795,7 +4825,6 @@
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz",
|
||||
"integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-module-transforms": "^7.24.7",
|
||||
"@babel/helper-plugin-utils": "^7.24.7",
|
||||
@@ -6297,6 +6326,23 @@
|
||||
"integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@glideapps/glide-data-grid": {
|
||||
"version": "6.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@glideapps/glide-data-grid/-/glide-data-grid-6.0.3.tgz",
|
||||
"integrity": "sha512-YXKggiNOaEemf0jP0jORq2EQKz+zXms+6mGzZc+q0mLMjmgzzoGLOQC1uYcynXSj1R61bd27JcPFsoH+Gj37Vg==",
|
||||
"dependencies": {
|
||||
"@linaria/react": "^4.5.3",
|
||||
"canvas-hypertxt": "^1.0.3",
|
||||
"react-number-format": "^5.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"lodash": "^4.17.19",
|
||||
"marked": "^4.0.10",
|
||||
"react": "^16.12.0 || 17.x || 18.x",
|
||||
"react-dom": "^16.12.0 || 17.x || 18.x",
|
||||
"react-responsive-carousel": "^3.2.7"
|
||||
}
|
||||
},
|
||||
"node_modules/@graphiql/react": {
|
||||
"version": "0.19.4",
|
||||
"license": "MIT",
|
||||
@@ -7599,6 +7645,143 @@
|
||||
"@lezer/common": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/core": {
|
||||
"version": "4.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@linaria/core/-/core-4.5.4.tgz",
|
||||
"integrity": "sha512-vMs/5iU0stxjfbBCxobIgY+wSQx4G8ukNwrhjPVD+6bF9QrTwi5rl0mKaCMxaGMjnfsLRiiM3i+hnWLIEYLdSg==",
|
||||
"dependencies": {
|
||||
"@linaria/logger": "^4.5.0",
|
||||
"@linaria/tags": "^4.5.4",
|
||||
"@linaria/utils": "^4.5.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.16.0 || >=13.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/logger": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@linaria/logger/-/logger-4.5.0.tgz",
|
||||
"integrity": "sha512-XdQLk242Cpcsc9a3Cz1ktOE5ysTo2TpxdeFQEPwMm8Z/+F/S6ZxBDdHYJL09srXWz3hkJr3oS2FPuMZNH1HIxw==",
|
||||
"dependencies": {
|
||||
"debug": "^4.1.1",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.16.0 || >=13.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/react": {
|
||||
"version": "4.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@linaria/react/-/react-4.5.4.tgz",
|
||||
"integrity": "sha512-/dhCVCsfdGPfQCPV0q5yy+DDlFXepvfXrw/os2fC+Xo1v9J/9gyiaBBWHzcumauvNNFj8aN6vRkj89fMujPHew==",
|
||||
"dependencies": {
|
||||
"@emotion/is-prop-valid": "^1.2.0",
|
||||
"@linaria/core": "^4.5.4",
|
||||
"@linaria/tags": "^4.5.4",
|
||||
"@linaria/utils": "^4.5.3",
|
||||
"minimatch": "^9.0.3",
|
||||
"react-html-attributes": "^1.4.6",
|
||||
"ts-invariant": "^0.10.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.16.0 || >=13.7.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/react/node_modules/@emotion/is-prop-valid": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz",
|
||||
"integrity": "sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==",
|
||||
"dependencies": {
|
||||
"@emotion/memoize": "^0.8.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/react/node_modules/@emotion/memoize": {
|
||||
"version": "0.8.1",
|
||||
"resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz",
|
||||
"integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA=="
|
||||
},
|
||||
"node_modules/@linaria/react/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/react/node_modules/minimatch": {
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
|
||||
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/tags": {
|
||||
"version": "4.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@linaria/tags/-/tags-4.5.4.tgz",
|
||||
"integrity": "sha512-HPxLB6HlJWLi6o8+8lTLegOmDnbMbuzEE+zzunaPZEGSoIIYx8HAv5VbY/sG/zNyxDElk6laiAwEVWN8h5/zxg==",
|
||||
"dependencies": {
|
||||
"@babel/generator": "^7.22.9",
|
||||
"@linaria/logger": "^4.5.0",
|
||||
"@linaria/utils": "^4.5.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.16.0 || >=13.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/utils": {
|
||||
"version": "4.5.3",
|
||||
"resolved": "https://registry.npmjs.org/@linaria/utils/-/utils-4.5.3.tgz",
|
||||
"integrity": "sha512-tSpxA3Zn0DKJ2n/YBnYAgiDY+MNvkmzAHrD8R9PKrpGaZ+wz1jQEmE1vGn1cqh8dJyWK0NzPAA8sf1cqa+RmAg==",
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.22.9",
|
||||
"@babel/generator": "^7.22.9",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.22.5",
|
||||
"@babel/template": "^7.22.5",
|
||||
"@babel/traverse": "^7.22.8",
|
||||
"@babel/types": "^7.22.5",
|
||||
"@linaria/logger": "^4.5.0",
|
||||
"babel-merge": "^3.0.0",
|
||||
"find-up": "^5.0.0",
|
||||
"minimatch": "^9.0.3"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^12.16.0 || >=13.7.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/utils/node_modules/brace-expansion": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
||||
"dependencies": {
|
||||
"balanced-match": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@linaria/utils/node_modules/minimatch": {
|
||||
"version": "9.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
|
||||
"integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
|
||||
"dependencies": {
|
||||
"brace-expansion": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16 || 14 >=14.17"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/@mapbox/node-pre-gyp": {
|
||||
"version": "1.0.11",
|
||||
"license": "BSD-3-Clause",
|
||||
@@ -16652,6 +16835,27 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-merge": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-merge/-/babel-merge-3.0.0.tgz",
|
||||
"integrity": "sha512-eBOBtHnzt9xvnjpYNI5HmaPp/b2vMveE5XggzqHnQeHJ8mFIBrBv6WZEVIj5jJ2uwTItkqKo9gWzEEcBxEq0yw==",
|
||||
"deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
|
||||
"dependencies": {
|
||||
"deepmerge": "^2.2.1",
|
||||
"object.omit": "^3.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-merge/node_modules/deepmerge": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz",
|
||||
"integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/babel-plugin-istanbul": {
|
||||
"version": "6.1.1",
|
||||
"dev": true,
|
||||
@@ -17193,6 +17397,11 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"node_modules/canvas-hypertxt": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/canvas-hypertxt/-/canvas-hypertxt-1.0.3.tgz",
|
||||
"integrity": "sha512-+VsMpRr64jYgKq2IeFUNel3vCZH/IzS+iXSHxmUV3IUH5dXlC9xHz4AwtPZisDxZ5MWcuK0V+TXgPKFPiZnxzg=="
|
||||
},
|
||||
"node_modules/capital-case": {
|
||||
"version": "1.0.4",
|
||||
"dev": true,
|
||||
@@ -23042,6 +23251,11 @@
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/html-element-attributes": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.1.tgz",
|
||||
"integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA=="
|
||||
},
|
||||
"node_modules/html-encoding-sniffer": {
|
||||
"version": "3.0.0",
|
||||
"devOptional": true,
|
||||
@@ -26406,7 +26620,8 @@
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"license": "MIT"
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"node_modules/lodash-es": {
|
||||
"version": "4.17.21",
|
||||
@@ -26758,7 +26973,6 @@
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz",
|
||||
"integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"marked": "bin/marked.js"
|
||||
},
|
||||
@@ -32206,6 +32420,39 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/object.omit": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz",
|
||||
"integrity": "sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==",
|
||||
"dependencies": {
|
||||
"is-extendable": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/object.omit/node_modules/is-extendable": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
|
||||
"integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
|
||||
"dependencies": {
|
||||
"is-plain-object": "^2.0.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/object.omit/node_modules/is-plain-object": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
|
||||
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
|
||||
"dependencies": {
|
||||
"isobject": "^3.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/object.pick": {
|
||||
"version": "1.3.0",
|
||||
"license": "MIT",
|
||||
@@ -34216,6 +34463,17 @@
|
||||
"react-dom": ">= 16.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-easy-swipe": {
|
||||
"version": "0.0.21",
|
||||
"resolved": "https://registry.npmjs.org/react-easy-swipe/-/react-easy-swipe-0.0.21.tgz",
|
||||
"integrity": "sha512-OeR2jAxdoqUMHIn/nS9fgreI5hSpgGoL5ezdal4+oO7YSSgJR8ga+PkYGJrSrJ9MKlPcQjMQXnketrD7WNmNsg==",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.5.8"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/react-element-to-jsx-string": {
|
||||
"version": "15.0.0",
|
||||
"dev": true,
|
||||
@@ -34327,6 +34585,23 @@
|
||||
"react-dom": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/react-hotkeys-hook": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/react-hotkeys-hook/-/react-hotkeys-hook-4.5.0.tgz",
|
||||
"integrity": "sha512-Samb85GSgAWFQNvVt3PS90LPPGSf9mkH/r4au81ZP1yOIFayLC3QAvqTgGtJ8YEDMXtPmaVBs6NgipHO6h4Mug==",
|
||||
"peerDependencies": {
|
||||
"react": ">=16.8.1",
|
||||
"react-dom": ">=16.8.1"
|
||||
}
|
||||
},
|
||||
"node_modules/react-html-attributes": {
|
||||
"version": "1.4.6",
|
||||
"resolved": "https://registry.npmjs.org/react-html-attributes/-/react-html-attributes-1.4.6.tgz",
|
||||
"integrity": "sha512-uS3MmThNKFH2EZUQQw4k5pIcU7XIr208UE5dktrj/GOH1CMagqxDl4DCLpt3o2l9x+IB5nVYBeN3Cr4IutBXAg==",
|
||||
"dependencies": {
|
||||
"html-element-attributes": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-inlinesvg": {
|
||||
"version": "4.0.4",
|
||||
"license": "MIT",
|
||||
@@ -34414,6 +34689,18 @@
|
||||
"url": "https://github.com/sponsors/gregberge"
|
||||
}
|
||||
},
|
||||
"node_modules/react-number-format": {
|
||||
"version": "5.4.0",
|
||||
"resolved": "https://registry.npmjs.org/react-number-format/-/react-number-format-5.4.0.tgz",
|
||||
"integrity": "sha512-NWdICrqLhI7rAS8yUeLVd6Wr4cN7UjJ9IBTS0f/a9i7UB4x4Ti70kGnksBtZ7o4Z7YRbvCMMR/jQmkoOBa/4fg==",
|
||||
"dependencies": {
|
||||
"prop-types": "^15.7.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0",
|
||||
"react-dom": "^0.14 || ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-onclickoutside": {
|
||||
"version": "6.13.0",
|
||||
"license": "MIT",
|
||||
@@ -34552,6 +34839,16 @@
|
||||
"react-dom": "^16.0.0 || ^17.0.0 || ^18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-responsive-carousel": {
|
||||
"version": "3.2.23",
|
||||
"resolved": "https://registry.npmjs.org/react-responsive-carousel/-/react-responsive-carousel-3.2.23.tgz",
|
||||
"integrity": "sha512-pqJLsBaKHWJhw/ItODgbVoziR2z4lpcJg+YwmRlSk4rKH32VE633mAtZZ9kDXjy4wFO+pgUZmDKPsPe1fPmHCg==",
|
||||
"dependencies": {
|
||||
"classnames": "^2.2.5",
|
||||
"prop-types": "^15.5.8",
|
||||
"react-easy-swipe": "^0.0.21"
|
||||
}
|
||||
},
|
||||
"node_modules/react-simple-maps": {
|
||||
"version": "4.0.0-beta.6",
|
||||
"resolved": "https://registry.npmjs.org/react-simple-maps/-/react-simple-maps-4.0.0-beta.6.tgz",
|
||||
@@ -39671,6 +39968,17 @@
|
||||
"version": "0.1.13",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/ts-invariant": {
|
||||
"version": "0.10.3",
|
||||
"resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz",
|
||||
"integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==",
|
||||
"dependencies": {
|
||||
"tslib": "^2.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/ts-jest": {
|
||||
"version": "29.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz",
|
||||
|
||||
Reference in new issue
Block a user