mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-21 18:48:36 +00:00
delete react package
This commit is contained in:
parent
014303b0d5
commit
f477273d8a
23
packages/react/.gitignore
vendored
23
packages/react/.gitignore
vendored
@ -1,23 +0,0 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
pnpm-debug.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
|
|
||||||
node_modules
|
|
||||||
dist-ssr
|
|
||||||
*.local
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/extensions.json
|
|
||||||
.idea
|
|
||||||
.DS_Store
|
|
||||||
*.suo
|
|
||||||
*.ntvs*
|
|
||||||
*.njsproj
|
|
||||||
*.sln
|
|
||||||
*.sw?
|
|
||||||
@ -1 +0,0 @@
|
|||||||
examples
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
# @strudel.cycles/react
|
|
||||||
|
|
||||||
This package contains react hooks and components for strudel. It is used internally by the Strudel REPL.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
```js
|
|
||||||
npm i @strudel.cycles/react
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
Here is a minimal example of how to set up a MiniRepl:
|
|
||||||
|
|
||||||
```jsx
|
|
||||||
import * as React from 'react';
|
|
||||||
import '@strudel.cycles/react/dist/style.css';
|
|
||||||
import { MiniRepl } from '@strudel.cycles/react';
|
|
||||||
import { evalScope, controls } from '@strudel.cycles/core';
|
|
||||||
import { samples, initAudioOnFirstClick } from '@strudel.cycles/webaudio';
|
|
||||||
|
|
||||||
async function prebake() {
|
|
||||||
await samples(
|
|
||||||
'https://strudel.cc/tidal-drum-machines.json',
|
|
||||||
'github:ritchse/tidal-drum-machines/main/machines/'
|
|
||||||
);
|
|
||||||
await samples(
|
|
||||||
'https://strudel.cc/EmuSP12.json',
|
|
||||||
'https://strudel.cc/EmuSP12/'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
async function init() {
|
|
||||||
await evalScope(
|
|
||||||
controls,
|
|
||||||
import('@strudel.cycles/core'),
|
|
||||||
import('@strudel.cycles/mini'),
|
|
||||||
import('@strudel.cycles/webaudio'),
|
|
||||||
import('@strudel.cycles/tonal')
|
|
||||||
);
|
|
||||||
await prebake();
|
|
||||||
initAudioOnFirstClick();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof window !== 'undefined') {
|
|
||||||
init();
|
|
||||||
}
|
|
||||||
|
|
||||||
export default function App() {
|
|
||||||
return <MiniRepl tune={`s("bd sd,hh*4")`} />;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
- Open [example on stackblitz](https://stackblitz.com/edit/react-ts-saaair?file=tune.tsx,App.tsx)
|
|
||||||
- Also check out the [nano-repl](./examples/nano-repl/) for a more sophisticated example
|
|
||||||
24
packages/react/examples/nano-repl/.gitignore
vendored
24
packages/react/examples/nano-repl/.gitignore
vendored
@ -1,24 +0,0 @@
|
|||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
pnpm-debug.log*
|
|
||||||
lerna-debug.log*
|
|
||||||
|
|
||||||
node_modules
|
|
||||||
dist
|
|
||||||
dist-ssr
|
|
||||||
*.local
|
|
||||||
|
|
||||||
# Editor directories and files
|
|
||||||
.vscode/*
|
|
||||||
!.vscode/extensions.json
|
|
||||||
.idea
|
|
||||||
.DS_Store
|
|
||||||
*.suo
|
|
||||||
*.ntvs*
|
|
||||||
*.njsproj
|
|
||||||
*.sln
|
|
||||||
*.sw?
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
# nano-repl
|
|
||||||
|
|
||||||
this is an example of how to create a repl with strudel and react.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
after cloning the strudel repo:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pnpm i
|
|
||||||
cd packages/react/examples/nano-repl
|
|
||||||
pnpm dev
|
|
||||||
```
|
|
||||||
|
|
||||||
you should now have a repl running at `http://localhost:5173/`
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Strudel Nano REPL</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="root"></div>
|
|
||||||
<script type="module" src="/src/main.jsx"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@strudel.cycles/nano-repl",
|
|
||||||
"private": true,
|
|
||||||
"version": "0.6.0",
|
|
||||||
"type": "module",
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vite",
|
|
||||||
"build": "vite build",
|
|
||||||
"preview": "vite preview"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"react": "^18.2.0",
|
|
||||||
"react-dom": "^18.2.0",
|
|
||||||
"@strudel.cycles/core": "workspace:*",
|
|
||||||
"@strudel.cycles/osc": "workspace:*",
|
|
||||||
"@strudel.cycles/mini": "workspace:*",
|
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
|
||||||
"@strudel.cycles/soundfonts": "workspace:*",
|
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
|
||||||
"@strudel.cycles/tonal": "workspace:*",
|
|
||||||
"@strudel.cycles/react": "workspace:*"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/react": "^18.2.0",
|
|
||||||
"@types/react-dom": "^18.2.1",
|
|
||||||
"@vitejs/plugin-react": "^4.0.0",
|
|
||||||
"autoprefixer": "^10.4.14",
|
|
||||||
"postcss": "^8.4.23",
|
|
||||||
"tailwindcss": "^3.3.2",
|
|
||||||
"vite": "^4.3.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,144 +0,0 @@
|
|||||||
import { controls, evalScope } from '@strudel.cycles/core';
|
|
||||||
import { CodeMirror, useHighlighting, useKeydown, useStrudel, flash } from '@strudel.cycles/react';
|
|
||||||
import {
|
|
||||||
getAudioContext,
|
|
||||||
initAudioOnFirstClick,
|
|
||||||
panic,
|
|
||||||
webaudioOutput,
|
|
||||||
registerSynthSounds,
|
|
||||||
} from '@strudel.cycles/webaudio';
|
|
||||||
import { registerSoundfonts } from '@strudel.cycles/soundfonts';
|
|
||||||
import { useCallback, useState } from 'react';
|
|
||||||
import './style.css';
|
|
||||||
// import { prebake } from '../../../../../repl/src/prebake.mjs';
|
|
||||||
|
|
||||||
initAudioOnFirstClick();
|
|
||||||
|
|
||||||
async function init() {
|
|
||||||
// TODO: only import stuff when play is pressed?
|
|
||||||
const loadModules = evalScope(
|
|
||||||
controls,
|
|
||||||
import('@strudel.cycles/core'),
|
|
||||||
import('@strudel.cycles/tonal'),
|
|
||||||
import('@strudel.cycles/mini'),
|
|
||||||
import('@strudel.cycles/xen'),
|
|
||||||
import('@strudel.cycles/webaudio'),
|
|
||||||
import('@strudel.cycles/osc'),
|
|
||||||
);
|
|
||||||
|
|
||||||
await Promise.all([loadModules, registerSynthSounds(), registerSoundfonts()]);
|
|
||||||
}
|
|
||||||
init();
|
|
||||||
|
|
||||||
const defaultTune = `samples({
|
|
||||||
bd: ['bd/BT0AADA.wav','bd/BT0AAD0.wav','bd/BT0A0DA.wav','bd/BT0A0D3.wav','bd/BT0A0D0.wav','bd/BT0A0A7.wav'],
|
|
||||||
sd: ['sd/rytm-01-classic.wav','sd/rytm-00-hard.wav'],
|
|
||||||
hh: ['hh27/000_hh27closedhh.wav','hh/000_hh3closedhh.wav'],
|
|
||||||
}, 'github:tidalcycles/Dirt-Samples/master/');
|
|
||||||
stack(
|
|
||||||
s("bd,[~ <sd!3 sd(3,4,2)>],hh*8") // drums
|
|
||||||
.speed(perlin.range(.7,.9)) // random sample speed variation
|
|
||||||
//.hush()
|
|
||||||
,"<a1 b1*2 a1(3,8) e2>" // bassline
|
|
||||||
.off(1/8,x=>x.add(12).degradeBy(.5)) // random octave jumps
|
|
||||||
.add(perlin.range(0,.5)) // random pitch variation
|
|
||||||
.superimpose(add(.05)) // add second, slightly detuned voice
|
|
||||||
.note() // wrap in "note"
|
|
||||||
.decay(.15).sustain(0) // make each note of equal length
|
|
||||||
.s('sawtooth') // waveform
|
|
||||||
.gain(.4) // turn down
|
|
||||||
.cutoff(sine.slow(7).range(300,5000)) // automate cutoff
|
|
||||||
//.hush()
|
|
||||||
,"<Am7!3 <Em7 E7b13 Em7 Ebm7b5>>".voicings('lefthand') // chords
|
|
||||||
.superimpose(x=>x.add(.04)) // add second, slightly detuned voice
|
|
||||||
.add(perlin.range(0,.5)) // random pitch variation
|
|
||||||
.note() // wrap in "n"
|
|
||||||
.s('square') // waveform
|
|
||||||
.gain(.16) // turn down
|
|
||||||
.cutoff(500) // fixed cutoff
|
|
||||||
.attack(1) // slowly fade in
|
|
||||||
//.hush()
|
|
||||||
,"a4 c5 <e6 a6>".struct("x(5,8)")
|
|
||||||
.superimpose(x=>x.add(.04)) // add second, slightly detuned voice
|
|
||||||
.add(perlin.range(0,.5)) // random pitch variation
|
|
||||||
.note() // wrap in "note"
|
|
||||||
.decay(.1).sustain(0) // make notes short
|
|
||||||
.s('triangle') // waveform
|
|
||||||
.degradeBy(perlin.range(0,.5)) // randomly controlled random removal :)
|
|
||||||
.echoWith(4,.125,(x,n)=>x.gain(.15*1/(n+1))) // echo notes
|
|
||||||
//.hush()
|
|
||||||
)
|
|
||||||
.fast(2/3)`;
|
|
||||||
|
|
||||||
// await prebake();
|
|
||||||
|
|
||||||
const ctx = getAudioContext();
|
|
||||||
const getTime = () => ctx.currentTime;
|
|
||||||
function App() {
|
|
||||||
const [code, setCode] = useState(defaultTune);
|
|
||||||
const [view, setView] = useState();
|
|
||||||
// const [code, setCode] = useState(`"c3".note().slow(2)`);
|
|
||||||
const { scheduler, evaluate, schedulerError, evalError, isDirty, activeCode, pattern, started } = useStrudel({
|
|
||||||
code,
|
|
||||||
defaultOutput: webaudioOutput,
|
|
||||||
getTime,
|
|
||||||
afterEval: ({ meta }) => setMiniLocations(meta.miniLocations),
|
|
||||||
});
|
|
||||||
|
|
||||||
const { setMiniLocations } = useHighlighting({
|
|
||||||
view,
|
|
||||||
pattern,
|
|
||||||
active: started && !activeCode?.includes('strudel disable-highlighting'),
|
|
||||||
getTime: () => scheduler.now(),
|
|
||||||
});
|
|
||||||
|
|
||||||
const error = evalError || schedulerError;
|
|
||||||
useKeydown(
|
|
||||||
useCallback(
|
|
||||||
async (e) => {
|
|
||||||
if (e.ctrlKey || e.altKey) {
|
|
||||||
if (e.code === 'Enter') {
|
|
||||||
e.preventDefault();
|
|
||||||
flash(view);
|
|
||||||
await evaluate(code);
|
|
||||||
if (e.shiftKey) {
|
|
||||||
panic();
|
|
||||||
scheduler.stop();
|
|
||||||
scheduler.start();
|
|
||||||
}
|
|
||||||
if (!scheduler.started) {
|
|
||||||
scheduler.start();
|
|
||||||
}
|
|
||||||
} else if (e.code === 'Period') {
|
|
||||||
scheduler.stop();
|
|
||||||
panic();
|
|
||||||
e.preventDefault();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[scheduler, evaluate, view, code],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<nav className="z-[12] w-full flex justify-center fixed bottom-0">
|
|
||||||
<div className="bg-slate-500 space-x-2 px-2 rounded-t-md">
|
|
||||||
<button
|
|
||||||
onClick={async () => {
|
|
||||||
await evaluate(code);
|
|
||||||
scheduler.start();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
start
|
|
||||||
</button>
|
|
||||||
<button onClick={() => scheduler.stop()}>stop</button>
|
|
||||||
{isDirty && <button onClick={() => evaluate(code)}>eval</button>}
|
|
||||||
</div>
|
|
||||||
{error && <p>error {error.message}</p>}
|
|
||||||
</nav>
|
|
||||||
<CodeMirror value={code} onChange={setCode} onViewChanged={setView} />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default App;
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import ReactDOM from 'react-dom/client';
|
|
||||||
import App from './App';
|
|
||||||
|
|
||||||
ReactDOM.createRoot(document.getElementById('root')).render(
|
|
||||||
<React.StrictMode>
|
|
||||||
<App />
|
|
||||||
</React.StrictMode>,
|
|
||||||
);
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
@tailwind base;
|
|
||||||
@tailwind components;
|
|
||||||
@tailwind utilities;
|
|
||||||
|
|
||||||
:root {
|
|
||||||
--background: #222;
|
|
||||||
--lineBackground: #22222250;
|
|
||||||
--foreground: #fff;
|
|
||||||
--caret: #ffcc00;
|
|
||||||
--selection: rgba(128, 203, 196, 0.5);
|
|
||||||
--selectionMatch: #036dd626;
|
|
||||||
--lineHighlight: #00000050;
|
|
||||||
--gutterBackground: transparent;
|
|
||||||
--gutterForeground: #8a919966;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
background: #123;
|
|
||||||
}
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
tailwind.config.js - <short description TODO>
|
|
||||||
Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/strudel/blob/main/repl/tailwind.config.js>
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
// TODO: find out if leaving out tutorial path works now
|
|
||||||
content: ['./src/**/*.{js,jsx,ts,tsx}', '../../src/**/*.{html,js,jsx,md,mdx,ts,tsx}'],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
colors: {
|
|
||||||
// codemirror-theme settings
|
|
||||||
background: 'var(--background)',
|
|
||||||
lineBackground: 'var(--lineBackground)',
|
|
||||||
foreground: 'var(--foreground)',
|
|
||||||
caret: 'var(--caret)',
|
|
||||||
selection: 'var(--selection)',
|
|
||||||
selectionMatch: 'var(--selectionMatch)',
|
|
||||||
gutterBackground: 'var(--gutterBackground)',
|
|
||||||
gutterForeground: 'var(--gutterForeground)',
|
|
||||||
gutterBorder: 'var(--gutterBorder)',
|
|
||||||
lineHighlight: 'var(--lineHighlight)',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [],
|
|
||||||
};
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
import { defineConfig } from 'vite';
|
|
||||||
import react from '@vitejs/plugin-react';
|
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
|
||||||
export default defineConfig({
|
|
||||||
plugins: [react()],
|
|
||||||
});
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<!-- <link rel="icon" type="image/svg+xml" href="/src/favicon.svg" /> -->
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Strudel React Components</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="root"></div>
|
|
||||||
<script type="module" src="/src/main.jsx"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@ -1,70 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@strudel.cycles/react",
|
|
||||||
"version": "0.9.0",
|
|
||||||
"description": "React components for strudel",
|
|
||||||
"main": "src/index.js",
|
|
||||||
"publishConfig": {
|
|
||||||
"main": "dist/index.js",
|
|
||||||
"module": "dist/index.mjs"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"dev": "vite",
|
|
||||||
"build": "vite build",
|
|
||||||
"watch": "vite build --watch",
|
|
||||||
"preview": "vite preview",
|
|
||||||
"prepublishOnly": "npm run build"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/tidalcycles/strudel.git"
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"tidalcycles",
|
|
||||||
"strudel",
|
|
||||||
"pattern",
|
|
||||||
"livecoding",
|
|
||||||
"algorave"
|
|
||||||
],
|
|
||||||
"author": "Felix Roos <flix91@gmail.com>",
|
|
||||||
"license": "AGPL-3.0-or-later",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/tidalcycles/strudel/issues"
|
|
||||||
},
|
|
||||||
"homepage": "https://github.com/tidalcycles/strudel#readme",
|
|
||||||
"dependencies": {
|
|
||||||
"@codemirror/autocomplete": "^6.6.0",
|
|
||||||
"@codemirror/commands": "^6.0.0",
|
|
||||||
"@codemirror/lang-javascript": "^6.1.7",
|
|
||||||
"@codemirror/language": "^6.0.0",
|
|
||||||
"@codemirror/lint": "^6.0.0",
|
|
||||||
"@codemirror/search": "^6.0.0",
|
|
||||||
"@codemirror/state": "^6.2.0",
|
|
||||||
"@codemirror/view": "^6.10.0",
|
|
||||||
"@lezer/highlight": "^1.1.4",
|
|
||||||
"@replit/codemirror-emacs": "^6.0.1",
|
|
||||||
"@replit/codemirror-vim": "^6.0.14",
|
|
||||||
"@replit/codemirror-vscode-keymap": "^6.0.2",
|
|
||||||
"@strudel.cycles/core": "workspace:*",
|
|
||||||
"@strudel.cycles/transpiler": "workspace:*",
|
|
||||||
"@strudel.cycles/webaudio": "workspace:*",
|
|
||||||
"@strudel/codemirror": "workspace:*",
|
|
||||||
"@uiw/codemirror-themes": "^4.19.16",
|
|
||||||
"@uiw/react-codemirror": "^4.19.16",
|
|
||||||
"react-hook-inview": "^4.5.0"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"react": "^18.2.0",
|
|
||||||
"react-dom": "^18.2.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"@types/react": "^18.2.0",
|
|
||||||
"@types/react-dom": "^18.2.1",
|
|
||||||
"@vitejs/plugin-react": "^4.0.0",
|
|
||||||
"autoprefixer": "^10.4.14",
|
|
||||||
"postcss": "^8.4.23",
|
|
||||||
"react": "^18.2.0",
|
|
||||||
"react-dom": "^18.2.0",
|
|
||||||
"tailwindcss": "^3.3.2",
|
|
||||||
"vite": "^4.3.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
/*
|
|
||||||
postcss.config.js - <short description TODO>
|
|
||||||
Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/strudel/blob/main/repl/postcss.config.js>
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
plugins: {
|
|
||||||
tailwindcss: {},
|
|
||||||
autoprefixer: {},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import { MiniRepl } from './components/MiniRepl';
|
|
||||||
import 'tailwindcss/tailwind.css';
|
|
||||||
import { controls, evalScope } from '@strudel.cycles/core';
|
|
||||||
|
|
||||||
evalScope(
|
|
||||||
controls,
|
|
||||||
import('@strudel.cycles/core'),
|
|
||||||
import('@strudel.cycles/tonal'),
|
|
||||||
import('@strudel.cycles/mini'),
|
|
||||||
import('@strudel.cycles/webaudio'),
|
|
||||||
);
|
|
||||||
|
|
||||||
function App() {
|
|
||||||
return (
|
|
||||||
<div>
|
|
||||||
<MiniRepl tune={`note("c3")`} />
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default App;
|
|
||||||
@ -1,89 +0,0 @@
|
|||||||
import { createRoot } from 'react-dom/client';
|
|
||||||
import jsdoc from '../../../../doc.json';
|
|
||||||
|
|
||||||
const getDocLabel = (doc) => doc.name || doc.longname;
|
|
||||||
const getDocSynonyms = (doc) => [getDocLabel(doc), ...(doc.synonyms || [])];
|
|
||||||
const getInnerText = (html) => {
|
|
||||||
var div = document.createElement('div');
|
|
||||||
div.innerHTML = html;
|
|
||||||
return div.textContent || div.innerText || '';
|
|
||||||
};
|
|
||||||
|
|
||||||
export function Autocomplete({ doc, label = getDocLabel(doc) }) {
|
|
||||||
const synonyms = getDocSynonyms(doc).filter((a) => a !== label);
|
|
||||||
return (
|
|
||||||
<div className="prose dark:prose-invert max-h-[400px] overflow-auto">
|
|
||||||
<h3 className="pt-0 mt-0">{label}</h3>{' '}
|
|
||||||
{!!synonyms.length && (
|
|
||||||
<span>
|
|
||||||
Synonyms: <code>{synonyms.join(', ')}</code>
|
|
||||||
</span>
|
|
||||||
)}
|
|
||||||
<div dangerouslySetInnerHTML={{ __html: doc.description }} />
|
|
||||||
<ul>
|
|
||||||
{doc.params?.map(({ name, type, description }, i) => (
|
|
||||||
<li key={i}>
|
|
||||||
{name} : {type.names?.join(' | ')} {description ? <> - {getInnerText(description)}</> : ''}
|
|
||||||
</li>
|
|
||||||
))}
|
|
||||||
</ul>
|
|
||||||
<div>
|
|
||||||
{doc.examples?.map((example, i) => (
|
|
||||||
<div key={i}>
|
|
||||||
<pre
|
|
||||||
className="cursor-pointer"
|
|
||||||
onMouseDown={(e) => {
|
|
||||||
navigator.clipboard.writeText(example);
|
|
||||||
e.stopPropagation();
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{example}
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
const jsdocCompletions = jsdoc.docs
|
|
||||||
.filter(
|
|
||||||
(doc) =>
|
|
||||||
getDocLabel(doc) &&
|
|
||||||
!getDocLabel(doc).startsWith('_') &&
|
|
||||||
!['package'].includes(doc.kind) &&
|
|
||||||
!['superdirtOnly', 'noAutocomplete'].some((tag) => doc.tags?.find((t) => t.originalTitle === tag)),
|
|
||||||
)
|
|
||||||
// https://codemirror.net/docs/ref/#autocomplete.Completion
|
|
||||||
.reduce(
|
|
||||||
(acc, doc) /*: Completion */ =>
|
|
||||||
acc.concat(
|
|
||||||
[getDocLabel(doc), ...(doc.synonyms || [])].map((label) => ({
|
|
||||||
label,
|
|
||||||
// detail: 'xxx', // An optional short piece of information to show (with a different style) after the label.
|
|
||||||
info: () => {
|
|
||||||
const node = document.createElement('div');
|
|
||||||
// if Autocomplete is non-interactive, it could also be rendered at build time..
|
|
||||||
// .. using renderToStaticMarkup
|
|
||||||
createRoot(node).render(<Autocomplete doc={doc} label={label} />);
|
|
||||||
return node;
|
|
||||||
},
|
|
||||||
type: 'function', // https://codemirror.net/docs/ref/#autocomplete.Completion.type
|
|
||||||
})),
|
|
||||||
),
|
|
||||||
[],
|
|
||||||
);
|
|
||||||
|
|
||||||
export const strudelAutocomplete = (context /* : CompletionContext */) => {
|
|
||||||
let word = context.matchBefore(/\w*/);
|
|
||||||
if (word.from == word.to && !context.explicit) return null;
|
|
||||||
return {
|
|
||||||
from: word.from,
|
|
||||||
options: jsdocCompletions,
|
|
||||||
/* options: [
|
|
||||||
{ label: 'match', type: 'keyword' },
|
|
||||||
{ label: 'hello', type: 'variable', info: '(World)' },
|
|
||||||
{ label: 'magic', type: 'text', apply: '⠁⭒*.✩.*⭒⠁', detail: 'macro' },
|
|
||||||
], */
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@ -1,134 +0,0 @@
|
|||||||
import { autocompletion } from '@codemirror/autocomplete';
|
|
||||||
import { Prec } from '@codemirror/state';
|
|
||||||
import { javascript, javascriptLanguage } from '@codemirror/lang-javascript';
|
|
||||||
import { ViewPlugin, EditorView, keymap } from '@codemirror/view';
|
|
||||||
import { emacs } from '@replit/codemirror-emacs';
|
|
||||||
import { vim } from '@replit/codemirror-vim';
|
|
||||||
import { vscodeKeymap } from '@replit/codemirror-vscode-keymap';
|
|
||||||
import _CodeMirror from '@uiw/react-codemirror';
|
|
||||||
import React, { useCallback, useMemo } from 'react';
|
|
||||||
import strudelTheme from '../themes/strudel-theme';
|
|
||||||
import { strudelAutocomplete } from './Autocomplete';
|
|
||||||
import { strudelTooltip } from './Tooltip';
|
|
||||||
import {
|
|
||||||
highlightExtension,
|
|
||||||
flashField,
|
|
||||||
flash,
|
|
||||||
highlightMiniLocations,
|
|
||||||
updateMiniLocations,
|
|
||||||
} from '@strudel/codemirror';
|
|
||||||
import './style.css';
|
|
||||||
import { sliderPlugin } from '@strudel/codemirror/slider.mjs';
|
|
||||||
|
|
||||||
export { flash, highlightMiniLocations, updateMiniLocations };
|
|
||||||
|
|
||||||
const staticExtensions = [javascript(), flashField, highlightExtension, sliderPlugin];
|
|
||||||
|
|
||||||
export default function CodeMirror({
|
|
||||||
value,
|
|
||||||
onChange,
|
|
||||||
onViewChanged,
|
|
||||||
onSelectionChange,
|
|
||||||
onDocChange,
|
|
||||||
theme,
|
|
||||||
keybindings,
|
|
||||||
isLineNumbersDisplayed,
|
|
||||||
isActiveLineHighlighted,
|
|
||||||
isAutoCompletionEnabled,
|
|
||||||
isTooltipEnabled,
|
|
||||||
isLineWrappingEnabled,
|
|
||||||
fontSize = 18,
|
|
||||||
fontFamily = 'monospace',
|
|
||||||
}) {
|
|
||||||
const handleOnChange = useCallback(
|
|
||||||
(value) => {
|
|
||||||
onChange?.(value);
|
|
||||||
},
|
|
||||||
[onChange],
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleOnCreateEditor = useCallback(
|
|
||||||
(view) => {
|
|
||||||
onViewChanged?.(view);
|
|
||||||
},
|
|
||||||
[onViewChanged],
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleOnUpdate = useCallback(
|
|
||||||
(viewUpdate) => {
|
|
||||||
if (viewUpdate.docChanged && onDocChange) {
|
|
||||||
onDocChange?.(viewUpdate);
|
|
||||||
}
|
|
||||||
if (viewUpdate.selectionSet && onSelectionChange) {
|
|
||||||
onSelectionChange?.(viewUpdate.state.selection);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[onSelectionChange],
|
|
||||||
);
|
|
||||||
|
|
||||||
const vscodePlugin = ViewPlugin.fromClass(
|
|
||||||
class {
|
|
||||||
constructor(view) {}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
provide: (plugin) => {
|
|
||||||
return Prec.highest(keymap.of([...vscodeKeymap]));
|
|
||||||
},
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
const vscodeExtension = (options) => [vscodePlugin].concat(options ?? []);
|
|
||||||
|
|
||||||
const extensions = useMemo(() => {
|
|
||||||
let _extensions = [...staticExtensions];
|
|
||||||
let bindings = {
|
|
||||||
vim,
|
|
||||||
emacs,
|
|
||||||
vscode: vscodeExtension,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (bindings[keybindings]) {
|
|
||||||
_extensions.push(bindings[keybindings]());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isAutoCompletionEnabled) {
|
|
||||||
_extensions.push(javascriptLanguage.data.of({ autocomplete: strudelAutocomplete }));
|
|
||||||
} else {
|
|
||||||
_extensions.push(autocompletion({ override: [] }));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isTooltipEnabled) {
|
|
||||||
_extensions.push(strudelTooltip);
|
|
||||||
}
|
|
||||||
|
|
||||||
_extensions.push([keymap.of({})]);
|
|
||||||
|
|
||||||
if (isLineWrappingEnabled) {
|
|
||||||
_extensions.push(EditorView.lineWrapping);
|
|
||||||
}
|
|
||||||
|
|
||||||
return _extensions;
|
|
||||||
}, [keybindings, isAutoCompletionEnabled, isTooltipEnabled, isLineWrappingEnabled]);
|
|
||||||
|
|
||||||
const basicSetup = useMemo(
|
|
||||||
() => ({
|
|
||||||
lineNumbers: isLineNumbersDisplayed,
|
|
||||||
highlightActiveLine: isActiveLineHighlighted,
|
|
||||||
}),
|
|
||||||
[isLineNumbersDisplayed, isActiveLineHighlighted],
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div style={{ fontSize, fontFamily }} className="w-full">
|
|
||||||
<_CodeMirror
|
|
||||||
value={value}
|
|
||||||
theme={theme || strudelTheme}
|
|
||||||
onChange={handleOnChange}
|
|
||||||
onCreateEditor={handleOnCreateEditor}
|
|
||||||
onUpdate={handleOnUpdate}
|
|
||||||
extensions={extensions}
|
|
||||||
basicSetup={basicSetup}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
|
|
||||||
export function Icon({ type }) {
|
|
||||||
return (
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" className="h-5 w-5" viewBox="0 0 20 20" fill="currentColor">
|
|
||||||
{
|
|
||||||
{
|
|
||||||
refresh: (
|
|
||||||
<path
|
|
||||||
fillRule="evenodd"
|
|
||||||
d="M4 2a1 1 0 011 1v2.101a7.002 7.002 0 0111.601 2.566 1 1 0 11-1.885.666A5.002 5.002 0 005.999 7H9a1 1 0 010 2H4a1 1 0 01-1-1V3a1 1 0 011-1zm.008 9.057a1 1 0 011.276.61A5.002 5.002 0 0014.001 13H11a1 1 0 110-2h5a1 1 0 011 1v5a1 1 0 11-2 0v-2.101a7.002 7.002 0 01-11.601-2.566 1 1 0 01.61-1.276z"
|
|
||||||
clipRule="evenodd"
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
play: (
|
|
||||||
<path
|
|
||||||
fillRule="evenodd"
|
|
||||||
d="M10 18a8 8 0 100-16 8 8 0 000 16zM9.555 7.168A1 1 0 008 8v4a1 1 0 001.555.832l3-2a1 1 0 000-1.664l-3-2z"
|
|
||||||
clipRule="evenodd"
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
pause: (
|
|
||||||
<path
|
|
||||||
fillRule="evenodd"
|
|
||||||
d="M18 10a8 8 0 11-16 0 8 8 0 0116 0zM7 8a1 1 0 012 0v4a1 1 0 11-2 0V8zm5-1a1 1 0 00-1 1v4a1 1 0 102 0V8a1 1 0 00-1-1z"
|
|
||||||
clipRule="evenodd"
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
stop: (
|
|
||||||
<path
|
|
||||||
fillRule="evenodd"
|
|
||||||
d="M2 10a8 8 0 1116 0 8 8 0 01-16 0zm5-2.25A.75.75 0 017.75 7h4.5a.75.75 0 01.75.75v4.5a.75.75 0 01-.75.75h-4.5a.75.75 0 01-.75-.75v-4.5z"
|
|
||||||
clipRule="evenodd"
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
}[type]
|
|
||||||
}
|
|
||||||
</svg>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@ -1,199 +0,0 @@
|
|||||||
import { getAudioContext, webaudioOutput } from '@strudel.cycles/webaudio';
|
|
||||||
import React, { useLayoutEffect, useMemo, useRef, useState, useCallback, useEffect } from 'react';
|
|
||||||
import { useInView } from 'react-hook-inview';
|
|
||||||
import 'tailwindcss/tailwind.css';
|
|
||||||
import cx from '../cx';
|
|
||||||
import useHighlighting from '../hooks/useHighlighting.mjs';
|
|
||||||
import useStrudel from '../hooks/useStrudel.mjs';
|
|
||||||
import CodeMirror6, { flash } from './CodeMirror6';
|
|
||||||
import { Icon } from './Icon';
|
|
||||||
import './style.css';
|
|
||||||
import { logger } from '@strudel.cycles/core';
|
|
||||||
import useEvent from '../hooks/useEvent.mjs';
|
|
||||||
import useKeydown from '../hooks/useKeydown.mjs';
|
|
||||||
|
|
||||||
const getTime = () => getAudioContext().currentTime;
|
|
||||||
|
|
||||||
export function MiniRepl({
|
|
||||||
tune,
|
|
||||||
hideOutsideView = false,
|
|
||||||
enableKeyboard,
|
|
||||||
onTrigger,
|
|
||||||
drawTime,
|
|
||||||
punchcard,
|
|
||||||
punchcardLabels,
|
|
||||||
onPaint,
|
|
||||||
canvasHeight = 200,
|
|
||||||
fontSize = 18,
|
|
||||||
fontFamily,
|
|
||||||
hideHeader = false,
|
|
||||||
theme,
|
|
||||||
keybindings,
|
|
||||||
isLineNumbersDisplayed,
|
|
||||||
isActiveLineHighlighted,
|
|
||||||
}) {
|
|
||||||
drawTime = drawTime || (punchcard ? [0, 4] : undefined);
|
|
||||||
const evalOnMount = !!drawTime;
|
|
||||||
const drawContext = useCallback(
|
|
||||||
punchcard ? (canvasId) => document.querySelector('#' + canvasId)?.getContext('2d') : null,
|
|
||||||
[punchcard],
|
|
||||||
);
|
|
||||||
const {
|
|
||||||
code,
|
|
||||||
setCode,
|
|
||||||
evaluate,
|
|
||||||
activateCode,
|
|
||||||
error,
|
|
||||||
isDirty,
|
|
||||||
activeCode,
|
|
||||||
pattern,
|
|
||||||
started,
|
|
||||||
scheduler,
|
|
||||||
togglePlay,
|
|
||||||
stop,
|
|
||||||
canvasId,
|
|
||||||
id: replId,
|
|
||||||
} = useStrudel({
|
|
||||||
initialCode: tune,
|
|
||||||
defaultOutput: webaudioOutput,
|
|
||||||
editPattern: (pat, id) => {
|
|
||||||
//pat = pat.withContext((ctx) => ({ ...ctx, id }));
|
|
||||||
if (onTrigger) {
|
|
||||||
pat = pat.onTrigger(onTrigger, false);
|
|
||||||
}
|
|
||||||
if (onPaint) {
|
|
||||||
pat = pat.onPaint(onPaint);
|
|
||||||
} else if (punchcard) {
|
|
||||||
pat = pat.punchcard({ labels: punchcardLabels });
|
|
||||||
}
|
|
||||||
return pat;
|
|
||||||
},
|
|
||||||
getTime,
|
|
||||||
evalOnMount,
|
|
||||||
drawContext,
|
|
||||||
drawTime,
|
|
||||||
afterEval: ({ meta }) => setMiniLocations(meta.miniLocations),
|
|
||||||
});
|
|
||||||
|
|
||||||
const [view, setView] = useState();
|
|
||||||
const [ref, isVisible] = useInView({
|
|
||||||
threshold: 0.01,
|
|
||||||
});
|
|
||||||
const wasVisible = useRef();
|
|
||||||
const show = useMemo(() => {
|
|
||||||
if (isVisible || !hideOutsideView) {
|
|
||||||
wasVisible.current = true;
|
|
||||||
}
|
|
||||||
return isVisible || wasVisible.current;
|
|
||||||
}, [isVisible, hideOutsideView]);
|
|
||||||
const { setMiniLocations } = useHighlighting({
|
|
||||||
view,
|
|
||||||
pattern,
|
|
||||||
active: started && !activeCode?.includes('strudel disable-highlighting'),
|
|
||||||
getTime: () => scheduler.now(),
|
|
||||||
});
|
|
||||||
|
|
||||||
// keyboard shortcuts
|
|
||||||
useKeydown(
|
|
||||||
useCallback(
|
|
||||||
async (e) => {
|
|
||||||
if (view?.hasFocus) {
|
|
||||||
if (e.ctrlKey || e.altKey) {
|
|
||||||
if (e.code === 'Enter') {
|
|
||||||
e.preventDefault();
|
|
||||||
flash(view);
|
|
||||||
await activateCode();
|
|
||||||
} else if (e.key === '.' || e.code === 'Period') {
|
|
||||||
stop();
|
|
||||||
e.preventDefault();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[activateCode, stop, view],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
|
|
||||||
const [log, setLog] = useState([]);
|
|
||||||
useLogger(
|
|
||||||
useCallback((e) => {
|
|
||||||
const { data } = e.detail;
|
|
||||||
const logId = data?.hap?.context?.id;
|
|
||||||
// const logId = data?.pattern?.meta?.id;
|
|
||||||
if (logId === replId) {
|
|
||||||
setLog((l) => {
|
|
||||||
return l.concat([e.detail]).slice(-8);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, []),
|
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="overflow-hidden rounded-t-md bg-background border border-lineHighlight" ref={ref}>
|
|
||||||
{!hideHeader && (
|
|
||||||
<div className="flex justify-between bg-lineHighlight">
|
|
||||||
<div className="flex">
|
|
||||||
<button
|
|
||||||
className={cx(
|
|
||||||
'cursor-pointer w-16 flex items-center justify-center p-1 border-r border-lineHighlight text-foreground bg-lineHighlight hover:bg-background',
|
|
||||||
started ? 'animate-pulse' : '',
|
|
||||||
)}
|
|
||||||
onClick={() => togglePlay()}
|
|
||||||
>
|
|
||||||
<Icon type={started ? 'stop' : 'play'} />
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
className={cx(
|
|
||||||
'w-16 flex items-center justify-center p-1 text-foreground border-lineHighlight bg-lineHighlight',
|
|
||||||
isDirty ? 'text-foreground hover:bg-background cursor-pointer' : 'opacity-50 cursor-not-allowed',
|
|
||||||
)}
|
|
||||||
onClick={() => activateCode()}
|
|
||||||
>
|
|
||||||
<Icon type="refresh" />
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
<div className="overflow-auto relative">
|
|
||||||
{show && (
|
|
||||||
<CodeMirror6
|
|
||||||
value={code}
|
|
||||||
onChange={setCode}
|
|
||||||
onViewChanged={setView}
|
|
||||||
theme={theme}
|
|
||||||
fontFamily={fontFamily}
|
|
||||||
fontSize={fontSize}
|
|
||||||
keybindings={keybindings}
|
|
||||||
isLineNumbersDisplayed={isLineNumbersDisplayed}
|
|
||||||
isActiveLineHighlighted={isActiveLineHighlighted}
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
{error && <div className="text-right p-1 text-md text-red-200">{error.message}</div>}
|
|
||||||
</div>
|
|
||||||
{punchcard && (
|
|
||||||
<canvas
|
|
||||||
id={canvasId}
|
|
||||||
className="w-full pointer-events-none"
|
|
||||||
height={canvasHeight}
|
|
||||||
ref={(el) => {
|
|
||||||
if (el && el.width !== el.clientWidth) {
|
|
||||||
el.width = el.clientWidth;
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
></canvas>
|
|
||||||
)}
|
|
||||||
{!!log.length && (
|
|
||||||
<div className="bg-gray-800 rounded-md p-2">
|
|
||||||
{log.map(({ message }, i) => (
|
|
||||||
<div key={i}>{message}</div>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO: dedupe
|
|
||||||
function useLogger(onTrigger) {
|
|
||||||
useEvent(logger.key, onTrigger);
|
|
||||||
}
|
|
||||||
@ -1,74 +0,0 @@
|
|||||||
import { createRoot } from 'react-dom/client';
|
|
||||||
import { hoverTooltip } from '@codemirror/view';
|
|
||||||
import jsdoc from '../../../../doc.json';
|
|
||||||
import { Autocomplete } from './Autocomplete';
|
|
||||||
|
|
||||||
const getDocLabel = (doc) => doc.name || doc.longname;
|
|
||||||
|
|
||||||
let ctrlDown = false;
|
|
||||||
|
|
||||||
// Record Control key event to trigger or block the tooltip depending on the state
|
|
||||||
window.addEventListener(
|
|
||||||
'keyup',
|
|
||||||
function (e) {
|
|
||||||
if (e.key == 'Control') {
|
|
||||||
ctrlDown = false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
|
|
||||||
window.addEventListener(
|
|
||||||
'keydown',
|
|
||||||
function (e) {
|
|
||||||
if (e.key == 'Control') {
|
|
||||||
ctrlDown = true;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
|
|
||||||
export const strudelTooltip = hoverTooltip(
|
|
||||||
(view, pos, side) => {
|
|
||||||
// Word selection from CodeMirror Hover Tooltip example https://codemirror.net/examples/tooltip/#hover-tooltips
|
|
||||||
if (!ctrlDown) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
let { from, to, text } = view.state.doc.lineAt(pos);
|
|
||||||
let start = pos,
|
|
||||||
end = pos;
|
|
||||||
while (start > from && /\w/.test(text[start - from - 1])) {
|
|
||||||
start--;
|
|
||||||
}
|
|
||||||
while (end < to && /\w/.test(text[end - from])) {
|
|
||||||
end++;
|
|
||||||
}
|
|
||||||
if ((start == pos && side < 0) || (end == pos && side > 0)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
let word = text.slice(start - from, end - from);
|
|
||||||
// Get entry from Strudel documentation
|
|
||||||
let entry = jsdoc.docs.filter((doc) => getDocLabel(doc) === word)[0];
|
|
||||||
if (!entry) {
|
|
||||||
// Try for synonyms
|
|
||||||
entry = jsdoc.docs.filter((doc) => doc.synonyms && doc.synonyms.includes(word))[0];
|
|
||||||
if (!entry) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
|
||||||
pos: start,
|
|
||||||
end,
|
|
||||||
above: false,
|
|
||||||
arrow: true,
|
|
||||||
create(view) {
|
|
||||||
let dom = document.createElement('div');
|
|
||||||
dom.className = 'strudel-tooltip';
|
|
||||||
createRoot(dom).render(<Autocomplete doc={entry} label={word} />);
|
|
||||||
return { dom };
|
|
||||||
},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
{ hoverTime: 10 },
|
|
||||||
);
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
:root {
|
|
||||||
--background: #222;
|
|
||||||
--lineBackground: #22222299;
|
|
||||||
--foreground: #fff;
|
|
||||||
--caret: #ffcc00;
|
|
||||||
--selection: rgba(128, 203, 196, 0.5);
|
|
||||||
--selectionMatch: #036dd626;
|
|
||||||
--lineHighlight: #00000050;
|
|
||||||
--gutterBackground: transparent;
|
|
||||||
--gutterForeground: #8a919966;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-editor {
|
|
||||||
background-color: transparent !important;
|
|
||||||
height: 100%;
|
|
||||||
z-index: 11;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-theme {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cm-theme-light {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
footer {
|
|
||||||
z-index: 0 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.strudel-tooltip {
|
|
||||||
padding: 5px;
|
|
||||||
}
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
/*
|
|
||||||
cx.js - <short description TODO>
|
|
||||||
Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/strudel/blob/main/repl/src/cx.js>
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
export default function cx(...classes) {
|
|
||||||
// : Array<string | undefined>
|
|
||||||
return classes.filter(Boolean).join(' ');
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
import { useEffect } from 'react';
|
|
||||||
|
|
||||||
function useEvent(name, onTrigger, useCapture = false) {
|
|
||||||
useEffect(() => {
|
|
||||||
document.addEventListener(name, onTrigger, useCapture);
|
|
||||||
return () => {
|
|
||||||
document.removeEventListener(name, onTrigger, useCapture);
|
|
||||||
};
|
|
||||||
}, [onTrigger]);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default useEvent;
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
import { useEffect, useRef } from 'react';
|
|
||||||
|
|
||||||
function useFrame(callback, autostart = false) {
|
|
||||||
const requestRef = useRef();
|
|
||||||
const previousTimeRef = useRef();
|
|
||||||
|
|
||||||
const animate = (time) => {
|
|
||||||
if (previousTimeRef.current !== undefined) {
|
|
||||||
const deltaTime = time - previousTimeRef.current;
|
|
||||||
callback(time, deltaTime);
|
|
||||||
}
|
|
||||||
previousTimeRef.current = time;
|
|
||||||
requestRef.current = requestAnimationFrame(animate);
|
|
||||||
};
|
|
||||||
|
|
||||||
const start = () => {
|
|
||||||
requestRef.current = requestAnimationFrame(animate);
|
|
||||||
};
|
|
||||||
const stop = () => {
|
|
||||||
requestRef.current && cancelAnimationFrame(requestRef.current);
|
|
||||||
delete requestRef.current;
|
|
||||||
};
|
|
||||||
useEffect(() => {
|
|
||||||
if (requestRef.current) {
|
|
||||||
stop();
|
|
||||||
start();
|
|
||||||
}
|
|
||||||
}, [callback]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (autostart) {
|
|
||||||
start();
|
|
||||||
}
|
|
||||||
return stop;
|
|
||||||
}, []); // Make sure the effect only runs once
|
|
||||||
|
|
||||||
return {
|
|
||||||
start,
|
|
||||||
stop,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export default useFrame;
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
import { useEffect, useRef, useState } from 'react';
|
|
||||||
import { highlightMiniLocations, updateMiniLocations } from '../components/CodeMirror6';
|
|
||||||
const round = (x) => Math.round(x * 1000) / 1000;
|
|
||||||
|
|
||||||
function useHighlighting({ view, pattern, active, getTime }) {
|
|
||||||
const highlights = useRef([]);
|
|
||||||
const lastEnd = useRef(0);
|
|
||||||
|
|
||||||
const [miniLocations, setMiniLocations] = useState([]);
|
|
||||||
useEffect(() => {
|
|
||||||
if (view) {
|
|
||||||
updateMiniLocations(view, miniLocations);
|
|
||||||
}
|
|
||||||
}, [view, miniLocations]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (view) {
|
|
||||||
if (pattern && active) {
|
|
||||||
lastEnd.current = 0;
|
|
||||||
let frame = requestAnimationFrame(function updateHighlights() {
|
|
||||||
try {
|
|
||||||
const audioTime = getTime();
|
|
||||||
// force min framerate of 10 fps => fixes crash on tab refocus, where lastEnd could be far away
|
|
||||||
// see https://github.com/tidalcycles/strudel/issues/108
|
|
||||||
const begin = Math.max(lastEnd.current ?? audioTime, audioTime - 1 / 10, -0.01); // negative time seems buggy
|
|
||||||
const span = [round(begin), round(audioTime + 1 / 60)];
|
|
||||||
lastEnd.current = span[1];
|
|
||||||
highlights.current = highlights.current.filter((hap) => hap.endClipped > audioTime); // keep only highlights that are still active
|
|
||||||
const haps = pattern.queryArc(...span).filter((hap) => hap.hasOnset());
|
|
||||||
highlights.current = highlights.current.concat(haps); // add potential new onsets
|
|
||||||
highlightMiniLocations(view, begin, highlights.current);
|
|
||||||
} catch (err) {
|
|
||||||
highlightMiniLocations(view, 0, []);
|
|
||||||
}
|
|
||||||
frame = requestAnimationFrame(updateHighlights);
|
|
||||||
});
|
|
||||||
return () => {
|
|
||||||
cancelAnimationFrame(frame);
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
highlights.current = [];
|
|
||||||
highlightMiniLocations(view, 0, highlights.current);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, [pattern, active, view]);
|
|
||||||
|
|
||||||
return { setMiniLocations };
|
|
||||||
}
|
|
||||||
|
|
||||||
export default useHighlighting;
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
import { useLayoutEffect } from 'react';
|
|
||||||
|
|
||||||
// set active pattern on ctrl+enter
|
|
||||||
const useKeydown = (callback) =>
|
|
||||||
useLayoutEffect(() => {
|
|
||||||
window.addEventListener('keydown', callback, true);
|
|
||||||
return () => window.removeEventListener('keydown', callback, true);
|
|
||||||
}, [callback]);
|
|
||||||
|
|
||||||
export default useKeydown;
|
|
||||||
@ -1,48 +0,0 @@
|
|||||||
import { useCallback, useEffect, useRef } from 'react';
|
|
||||||
import 'tailwindcss/tailwind.css';
|
|
||||||
import useFrame from '../hooks/useFrame.mjs';
|
|
||||||
|
|
||||||
function usePatternFrame({ pattern, started, getTime, onDraw, drawTime = [-2, 2] }) {
|
|
||||||
let [lookbehind, lookahead] = drawTime;
|
|
||||||
lookbehind = Math.abs(lookbehind);
|
|
||||||
let visibleHaps = useRef([]);
|
|
||||||
let lastFrame = useRef(null);
|
|
||||||
useEffect(() => {
|
|
||||||
if (pattern && started) {
|
|
||||||
const t = getTime();
|
|
||||||
const futureHaps = pattern.queryArc(Math.max(t, 0), t + lookahead + 0.1); // +0.1 = workaround for weird holes in query..
|
|
||||||
visibleHaps.current = visibleHaps.current.filter((h) => h.whole.begin < t);
|
|
||||||
visibleHaps.current = visibleHaps.current.concat(futureHaps);
|
|
||||||
}
|
|
||||||
}, [pattern, started]);
|
|
||||||
const { start: startFrame, stop: stopFrame } = useFrame(
|
|
||||||
useCallback(() => {
|
|
||||||
const phase = getTime() + lookahead;
|
|
||||||
if (lastFrame.current === null) {
|
|
||||||
lastFrame.current = phase;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const haps = pattern.queryArc(Math.max(lastFrame.current, phase - 1 / 10), phase);
|
|
||||||
lastFrame.current = phase;
|
|
||||||
visibleHaps.current = (visibleHaps.current || [])
|
|
||||||
.filter((h) => h.endClipped >= phase - lookbehind - lookahead) // in frame
|
|
||||||
.concat(haps.filter((h) => h.hasOnset()));
|
|
||||||
onDraw(pattern, phase - lookahead, visibleHaps.current, drawTime);
|
|
||||||
}, [pattern, onDraw]),
|
|
||||||
);
|
|
||||||
useEffect(() => {
|
|
||||||
if (started) {
|
|
||||||
startFrame();
|
|
||||||
} else {
|
|
||||||
visibleHaps.current = [];
|
|
||||||
stopFrame();
|
|
||||||
}
|
|
||||||
}, [started]);
|
|
||||||
return {
|
|
||||||
clear: () => {
|
|
||||||
visibleHaps.current = [];
|
|
||||||
},
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export default usePatternFrame;
|
|
||||||
@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
usePostMessage.mjs - <short description TODO>
|
|
||||||
Copyright (C) 2022 Strudel contributors - see <https://github.com/tidalcycles/strudel/blob/main/repl/src/usePostMessage.mjs>
|
|
||||||
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { useEffect, useCallback } from 'react';
|
|
||||||
|
|
||||||
function usePostMessage(listener) {
|
|
||||||
useEffect(() => {
|
|
||||||
window.addEventListener('message', listener);
|
|
||||||
return () => window.removeEventListener('message', listener);
|
|
||||||
}, [listener]);
|
|
||||||
return useCallback((data) => window.postMessage(data, '*'), []);
|
|
||||||
}
|
|
||||||
|
|
||||||
export default usePostMessage;
|
|
||||||
@ -1,171 +0,0 @@
|
|||||||
import { useRef, useCallback, useEffect, useMemo, useState } from 'react';
|
|
||||||
import { repl } from '@strudel.cycles/core';
|
|
||||||
import { transpiler } from '@strudel.cycles/transpiler';
|
|
||||||
import usePatternFrame from './usePatternFrame';
|
|
||||||
import usePostMessage from './usePostMessage.mjs';
|
|
||||||
|
|
||||||
function useStrudel({
|
|
||||||
defaultOutput,
|
|
||||||
interval,
|
|
||||||
getTime,
|
|
||||||
evalOnMount = false,
|
|
||||||
initialCode = '',
|
|
||||||
beforeEval,
|
|
||||||
afterEval,
|
|
||||||
editPattern,
|
|
||||||
onEvalError,
|
|
||||||
onToggle,
|
|
||||||
canvasId,
|
|
||||||
drawContext,
|
|
||||||
drawTime = [-2, 2],
|
|
||||||
paintOptions = {},
|
|
||||||
}) {
|
|
||||||
const id = useMemo(() => s4(), []);
|
|
||||||
canvasId = canvasId || `canvas-${id}`;
|
|
||||||
// scheduler
|
|
||||||
const [schedulerError, setSchedulerError] = useState();
|
|
||||||
const [evalError, setEvalError] = useState();
|
|
||||||
const [code, setCode] = useState(initialCode);
|
|
||||||
const [activeCode, setActiveCode] = useState();
|
|
||||||
const [pattern, setPattern] = useState();
|
|
||||||
const [started, setStarted] = useState(false);
|
|
||||||
const isDirty = code !== activeCode;
|
|
||||||
//const shouldPaint = useCallback((pat) => !!(pat?.context?.onPaint && drawContext), [drawContext]);
|
|
||||||
const shouldPaint = useCallback((pat) => !!pat?.context?.onPaint, []);
|
|
||||||
|
|
||||||
// TODO: make sure this hook reruns when scheduler.started changes
|
|
||||||
const { scheduler, evaluate, start, stop, pause, setCps } = useMemo(
|
|
||||||
() =>
|
|
||||||
repl({
|
|
||||||
interval,
|
|
||||||
defaultOutput,
|
|
||||||
onSchedulerError: setSchedulerError,
|
|
||||||
onEvalError: (err) => {
|
|
||||||
setEvalError(err);
|
|
||||||
onEvalError?.(err);
|
|
||||||
},
|
|
||||||
getTime,
|
|
||||||
drawContext,
|
|
||||||
transpiler,
|
|
||||||
editPattern,
|
|
||||||
beforeEval: async ({ code }) => {
|
|
||||||
setCode(code);
|
|
||||||
await beforeEval?.();
|
|
||||||
},
|
|
||||||
afterEval: (res) => {
|
|
||||||
const { pattern: _pattern, code } = res;
|
|
||||||
setActiveCode(code);
|
|
||||||
setPattern(_pattern);
|
|
||||||
setEvalError();
|
|
||||||
setSchedulerError();
|
|
||||||
afterEval?.(res);
|
|
||||||
},
|
|
||||||
onToggle: (v) => {
|
|
||||||
setStarted(v);
|
|
||||||
onToggle?.(v);
|
|
||||||
},
|
|
||||||
}),
|
|
||||||
[defaultOutput, interval, getTime],
|
|
||||||
);
|
|
||||||
const broadcast = usePostMessage(({ data: { from, type } }) => {
|
|
||||||
if (type === 'start' && from !== id) {
|
|
||||||
// console.log('message', from, type);
|
|
||||||
stop();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
const activateCode = useCallback(
|
|
||||||
async (newCode, autostart = true) => {
|
|
||||||
if (newCode) {
|
|
||||||
setCode(code);
|
|
||||||
}
|
|
||||||
const res = await evaluate(newCode || code, autostart);
|
|
||||||
broadcast({ type: 'start', from: id });
|
|
||||||
return res;
|
|
||||||
},
|
|
||||||
[evaluate, code],
|
|
||||||
);
|
|
||||||
|
|
||||||
const onDraw = useCallback(
|
|
||||||
(pattern, time, haps, drawTime) => {
|
|
||||||
const { onPaint } = pattern.context || {};
|
|
||||||
const ctx = typeof drawContext === 'function' ? drawContext(canvasId) : drawContext;
|
|
||||||
onPaint?.(ctx, time, haps, drawTime, paintOptions);
|
|
||||||
},
|
|
||||||
[drawContext, canvasId, paintOptions],
|
|
||||||
);
|
|
||||||
|
|
||||||
const drawFirstFrame = useCallback(
|
|
||||||
(pat) => {
|
|
||||||
if (shouldPaint(pat)) {
|
|
||||||
const [_, lookahead] = drawTime;
|
|
||||||
const haps = pat.queryArc(0, lookahead);
|
|
||||||
// draw at -0.001 to avoid activating haps at 0
|
|
||||||
onDraw(pat, -0.001, haps, drawTime);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[drawTime, onDraw, shouldPaint],
|
|
||||||
);
|
|
||||||
|
|
||||||
const inited = useRef();
|
|
||||||
useEffect(() => {
|
|
||||||
if (!inited.current && evalOnMount && code) {
|
|
||||||
inited.current = true;
|
|
||||||
evaluate(code, false).then((pat) => drawFirstFrame(pat));
|
|
||||||
}
|
|
||||||
}, [evalOnMount, code, evaluate, drawFirstFrame]);
|
|
||||||
|
|
||||||
// this will stop the scheduler when hot reloading in development
|
|
||||||
useEffect(() => {
|
|
||||||
return () => {
|
|
||||||
scheduler.stop();
|
|
||||||
};
|
|
||||||
}, [scheduler]);
|
|
||||||
|
|
||||||
const togglePlay = async () => {
|
|
||||||
if (started) {
|
|
||||||
scheduler.stop();
|
|
||||||
drawFirstFrame(pattern);
|
|
||||||
} else {
|
|
||||||
await activateCode();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
const error = schedulerError || evalError;
|
|
||||||
|
|
||||||
usePatternFrame({
|
|
||||||
pattern,
|
|
||||||
started: shouldPaint(pattern) && started,
|
|
||||||
getTime: () => scheduler.now(),
|
|
||||||
drawTime,
|
|
||||||
onDraw,
|
|
||||||
});
|
|
||||||
|
|
||||||
return {
|
|
||||||
id,
|
|
||||||
canvasId,
|
|
||||||
code,
|
|
||||||
setCode,
|
|
||||||
error,
|
|
||||||
schedulerError,
|
|
||||||
scheduler,
|
|
||||||
evalError,
|
|
||||||
evaluate,
|
|
||||||
activateCode,
|
|
||||||
activeCode,
|
|
||||||
isDirty,
|
|
||||||
pattern,
|
|
||||||
started,
|
|
||||||
start,
|
|
||||||
stop,
|
|
||||||
pause,
|
|
||||||
togglePlay,
|
|
||||||
setCps,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export default useStrudel;
|
|
||||||
|
|
||||||
function s4() {
|
|
||||||
return Math.floor((1 + Math.random()) * 0x10000)
|
|
||||||
.toString(16)
|
|
||||||
.substring(1);
|
|
||||||
}
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
import { useEffect, useState } from 'react';
|
|
||||||
import { updateWidgets } from '@strudel/codemirror';
|
|
||||||
|
|
||||||
// i know this is ugly.. in the future, repl needs to run without react
|
|
||||||
export function useWidgets(view) {
|
|
||||||
const [widgets, setWidgets] = useState([]);
|
|
||||||
useEffect(() => {
|
|
||||||
if (view) {
|
|
||||||
updateWidgets(view, widgets);
|
|
||||||
}
|
|
||||||
}, [view, widgets]);
|
|
||||||
return { widgets, setWidgets };
|
|
||||||
}
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
// import 'tailwindcss/tailwind.css';
|
|
||||||
|
|
||||||
export { default as CodeMirror, flash, updateMiniLocations, highlightMiniLocations } from './components/CodeMirror6'; // !SSR
|
|
||||||
export * from './components/MiniRepl'; // !SSR
|
|
||||||
export { default as useHighlighting } from './hooks/useHighlighting'; // !SSR
|
|
||||||
export { default as useStrudel } from './hooks/useStrudel'; // !SSR
|
|
||||||
export { default as usePostMessage } from './hooks/usePostMessage';
|
|
||||||
export { default as useKeydown } from './hooks/useKeydown';
|
|
||||||
export { default as useEvent } from './hooks/useEvent';
|
|
||||||
export { default as strudelTheme } from './themes/strudel-theme';
|
|
||||||
export { default as teletext } from './themes/teletext';
|
|
||||||
export { default as cx } from './cx';
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
import React from 'react';
|
|
||||||
import App from './App';
|
|
||||||
import { createRoot } from 'react-dom/client';
|
|
||||||
|
|
||||||
createRoot(document.getElementById('root')).render(
|
|
||||||
<React.StrictMode>
|
|
||||||
<App />
|
|
||||||
</React.StrictMode>,
|
|
||||||
);
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
export const settings = {
|
|
||||||
background: '#9bbc0f',
|
|
||||||
foreground: '#0f380f', // whats that?
|
|
||||||
caret: '#0f380f',
|
|
||||||
selection: '#306230',
|
|
||||||
selectionMatch: '#ffffff26',
|
|
||||||
lineHighlight: '#8bac0f',
|
|
||||||
lineBackground: '#9bbc0f50',
|
|
||||||
//lineBackground: 'transparent',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
gutterForeground: '#0f380f',
|
|
||||||
light: true,
|
|
||||||
customStyle: '.cm-line { line-height: 1 }',
|
|
||||||
};
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'light',
|
|
||||||
settings,
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: '#0f380f' },
|
|
||||||
{ tag: t.operator, color: '#0f380f' },
|
|
||||||
{ tag: t.special(t.variableName), color: '#0f380f' },
|
|
||||||
{ tag: t.typeName, color: '#0f380f' },
|
|
||||||
{ tag: t.atom, color: '#0f380f' },
|
|
||||||
{ tag: t.number, color: '#0f380f' },
|
|
||||||
{ tag: t.definition(t.variableName), color: '#0f380f' },
|
|
||||||
{ tag: t.string, color: '#0f380f' },
|
|
||||||
{ tag: t.special(t.string), color: '#0f380f' },
|
|
||||||
{ tag: t.comment, color: '#0f380f' },
|
|
||||||
{ tag: t.variableName, color: '#0f380f' },
|
|
||||||
{ tag: t.tagName, color: '#0f380f' },
|
|
||||||
{ tag: t.bracket, color: '#0f380f' },
|
|
||||||
{ tag: t.meta, color: '#0f380f' },
|
|
||||||
{ tag: t.attributeName, color: '#0f380f' },
|
|
||||||
{ tag: t.propertyName, color: '#0f380f' },
|
|
||||||
{ tag: t.className, color: '#0f380f' },
|
|
||||||
{ tag: t.invalid, color: '#0f380f' },
|
|
||||||
{ tag: [t.unit, t.punctuation], color: '#0f380f' },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
export const settings = {
|
|
||||||
background: 'black',
|
|
||||||
foreground: 'white', // whats that?
|
|
||||||
caret: 'white',
|
|
||||||
selection: '#ffffff20',
|
|
||||||
selectionMatch: '#036dd626',
|
|
||||||
lineHighlight: '#ffffff10',
|
|
||||||
lineBackground: '#00000050',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
gutterForeground: '#8a919966',
|
|
||||||
};
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'dark',
|
|
||||||
settings,
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: 'white' },
|
|
||||||
{ tag: t.operator, color: 'white' },
|
|
||||||
{ tag: t.special(t.variableName), color: 'white' },
|
|
||||||
{ tag: t.typeName, color: 'white' },
|
|
||||||
{ tag: t.atom, color: 'white' },
|
|
||||||
{ tag: t.number, color: 'white' },
|
|
||||||
{ tag: t.definition(t.variableName), color: 'white' },
|
|
||||||
{ tag: t.string, color: 'white' },
|
|
||||||
{ tag: t.special(t.string), color: 'white' },
|
|
||||||
{ tag: t.comment, color: 'white' },
|
|
||||||
{ tag: t.variableName, color: 'white' },
|
|
||||||
{ tag: t.tagName, color: 'white' },
|
|
||||||
{ tag: t.bracket, color: 'white' },
|
|
||||||
{ tag: t.meta, color: 'white' },
|
|
||||||
{ tag: t.attributeName, color: 'white' },
|
|
||||||
{ tag: t.propertyName, color: 'white' },
|
|
||||||
{ tag: t.className, color: 'white' },
|
|
||||||
{ tag: t.invalid, color: 'white' },
|
|
||||||
{ tag: [t.unit, t.punctuation], color: 'white' },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
export const settings = {
|
|
||||||
background: '#051DB5',
|
|
||||||
lineBackground: '#051DB550',
|
|
||||||
foreground: 'white', // whats that?
|
|
||||||
caret: 'white',
|
|
||||||
selection: 'rgba(128, 203, 196, 0.5)',
|
|
||||||
selectionMatch: '#036dd626',
|
|
||||||
// lineHighlight: '#8a91991a', // original
|
|
||||||
lineHighlight: '#00000050',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
// gutterForeground: '#8a919966',
|
|
||||||
gutterForeground: '#8a919966',
|
|
||||||
};
|
|
||||||
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'dark',
|
|
||||||
settings,
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: 'white' },
|
|
||||||
{ tag: t.operator, color: 'white' },
|
|
||||||
{ tag: t.special(t.variableName), color: 'white' },
|
|
||||||
{ tag: t.typeName, color: 'white' },
|
|
||||||
{ tag: t.atom, color: 'white' },
|
|
||||||
{ tag: t.number, color: 'white' },
|
|
||||||
{ tag: t.definition(t.variableName), color: 'white' },
|
|
||||||
{ tag: t.string, color: 'white' },
|
|
||||||
{ tag: t.special(t.string), color: 'white' },
|
|
||||||
{ tag: t.comment, color: 'white' },
|
|
||||||
{ tag: t.variableName, color: 'white' },
|
|
||||||
{ tag: t.tagName, color: 'white' },
|
|
||||||
{ tag: t.bracket, color: 'white' },
|
|
||||||
{ tag: t.meta, color: 'white' },
|
|
||||||
{ tag: t.attributeName, color: 'white' },
|
|
||||||
{ tag: t.propertyName, color: 'white' },
|
|
||||||
{ tag: t.className, color: 'white' },
|
|
||||||
{ tag: t.invalid, color: 'white' },
|
|
||||||
{ tag: [t.unit, t.punctuation], color: 'white' },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,45 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'dark',
|
|
||||||
settings: {
|
|
||||||
background: '#222',
|
|
||||||
foreground: '#75baff', // whats that?
|
|
||||||
caret: '#ffcc00',
|
|
||||||
selection: 'rgba(128, 203, 196, 0.5)',
|
|
||||||
selectionMatch: '#036dd626',
|
|
||||||
// lineHighlight: '#8a91991a', // original
|
|
||||||
lineHighlight: '#00000050',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
// gutterForeground: '#8a919966',
|
|
||||||
gutterForeground: '#8a919966',
|
|
||||||
},
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: '#c792ea' },
|
|
||||||
{ tag: t.operator, color: '#89ddff' },
|
|
||||||
{ tag: t.special(t.variableName), color: '#eeffff' },
|
|
||||||
// { tag: t.typeName, color: '#f07178' }, // original
|
|
||||||
{ tag: t.typeName, color: '#c3e88d' },
|
|
||||||
{ tag: t.atom, color: '#f78c6c' },
|
|
||||||
// { tag: t.number, color: '#ff5370' }, // original
|
|
||||||
{ tag: t.number, color: '#c3e88d' },
|
|
||||||
{ tag: t.definition(t.variableName), color: '#82aaff' },
|
|
||||||
{ tag: t.string, color: '#c3e88d' },
|
|
||||||
// { tag: t.special(t.string), color: '#f07178' }, // original
|
|
||||||
{ tag: t.special(t.string), color: '#c3e88d' },
|
|
||||||
{ tag: t.comment, color: '#7d8799' },
|
|
||||||
// { tag: t.variableName, color: '#f07178' }, // original
|
|
||||||
{ tag: t.variableName, color: '#c792ea' },
|
|
||||||
// { tag: t.tagName, color: '#ff5370' }, // original
|
|
||||||
{ tag: t.tagName, color: '#c3e88d' },
|
|
||||||
{ tag: t.bracket, color: '#525154' },
|
|
||||||
// { tag: t.bracket, color: '#a2a1a4' }, // original
|
|
||||||
{ tag: t.meta, color: '#ffcb6b' },
|
|
||||||
{ tag: t.attributeName, color: '#c792ea' },
|
|
||||||
{ tag: t.propertyName, color: '#c792ea' },
|
|
||||||
|
|
||||||
{ tag: t.className, color: '#decb6b' },
|
|
||||||
{ tag: t.invalid, color: '#ffffff' },
|
|
||||||
{ tag: [t.unit, t.punctuation], color: '#82aaff' },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,50 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
|
|
||||||
let colorA = '#6edee4';
|
|
||||||
//let colorB = 'magenta';
|
|
||||||
let colorB = 'white';
|
|
||||||
let colorC = 'red';
|
|
||||||
let colorD = '#f8fc55';
|
|
||||||
|
|
||||||
export const settings = {
|
|
||||||
background: '#000000',
|
|
||||||
foreground: colorA, // whats that?
|
|
||||||
caret: colorC,
|
|
||||||
selection: colorD,
|
|
||||||
selectionMatch: colorA,
|
|
||||||
lineHighlight: '#6edee440', // panel bg
|
|
||||||
lineBackground: '#00000040',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
gutterForeground: '#8a919966',
|
|
||||||
customStyle: '.cm-line { line-height: 1 }',
|
|
||||||
};
|
|
||||||
|
|
||||||
let punctuation = colorD;
|
|
||||||
let mini = colorB;
|
|
||||||
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'dark',
|
|
||||||
settings,
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: colorA },
|
|
||||||
{ tag: t.operator, color: mini },
|
|
||||||
{ tag: t.special(t.variableName), color: colorA },
|
|
||||||
{ tag: t.typeName, color: colorA },
|
|
||||||
{ tag: t.atom, color: colorA },
|
|
||||||
{ tag: t.number, color: mini },
|
|
||||||
{ tag: t.definition(t.variableName), color: colorA },
|
|
||||||
{ tag: t.string, color: mini },
|
|
||||||
{ tag: t.special(t.string), color: mini },
|
|
||||||
{ tag: t.comment, color: punctuation },
|
|
||||||
{ tag: t.variableName, color: colorA },
|
|
||||||
{ tag: t.tagName, color: colorA },
|
|
||||||
{ tag: t.bracket, color: punctuation },
|
|
||||||
{ tag: t.meta, color: colorA },
|
|
||||||
{ tag: t.attributeName, color: colorA },
|
|
||||||
{ tag: t.propertyName, color: colorA }, // methods
|
|
||||||
{ tag: t.className, color: colorA },
|
|
||||||
{ tag: t.invalid, color: colorC },
|
|
||||||
{ tag: [t.unit, t.punctuation], color: punctuation },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
export const settings = {
|
|
||||||
background: 'black',
|
|
||||||
foreground: '#41FF00', // whats that?
|
|
||||||
caret: '#41FF00',
|
|
||||||
selection: '#ffffff20',
|
|
||||||
selectionMatch: '#036dd626',
|
|
||||||
lineHighlight: '#ffffff10',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
gutterForeground: '#8a919966',
|
|
||||||
};
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'dark',
|
|
||||||
settings,
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: '#41FF00' },
|
|
||||||
{ tag: t.operator, color: '#41FF00' },
|
|
||||||
{ tag: t.special(t.variableName), color: '#41FF00' },
|
|
||||||
{ tag: t.typeName, color: '#41FF00' },
|
|
||||||
{ tag: t.atom, color: '#41FF00' },
|
|
||||||
{ tag: t.number, color: '#41FF00' },
|
|
||||||
{ tag: t.definition(t.variableName), color: '#41FF00' },
|
|
||||||
{ tag: t.string, color: '#41FF00' },
|
|
||||||
{ tag: t.special(t.string), color: '#41FF00' },
|
|
||||||
{ tag: t.comment, color: '#41FF00' },
|
|
||||||
{ tag: t.variableName, color: '#41FF00' },
|
|
||||||
{ tag: t.tagName, color: '#41FF00' },
|
|
||||||
{ tag: t.bracket, color: '#41FF00' },
|
|
||||||
{ tag: t.meta, color: '#41FF00' },
|
|
||||||
{ tag: t.attributeName, color: '#41FF00' },
|
|
||||||
{ tag: t.propertyName, color: '#41FF00' },
|
|
||||||
{ tag: t.className, color: '#41FF00' },
|
|
||||||
{ tag: t.invalid, color: '#41FF00' },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
import { tags as t } from '@lezer/highlight';
|
|
||||||
import { createTheme } from '@uiw/codemirror-themes';
|
|
||||||
export const settings = {
|
|
||||||
background: 'white',
|
|
||||||
foreground: 'black', // whats that?
|
|
||||||
caret: 'black',
|
|
||||||
selection: 'rgba(128, 203, 196, 0.5)',
|
|
||||||
selectionMatch: '#ffffff26',
|
|
||||||
lineHighlight: '#cccccc50',
|
|
||||||
lineBackground: '#ffffff50',
|
|
||||||
gutterBackground: 'transparent',
|
|
||||||
gutterForeground: 'black',
|
|
||||||
light: true,
|
|
||||||
};
|
|
||||||
export default createTheme({
|
|
||||||
theme: 'light',
|
|
||||||
settings,
|
|
||||||
styles: [
|
|
||||||
{ tag: t.keyword, color: 'black' },
|
|
||||||
{ tag: t.operator, color: 'black' },
|
|
||||||
{ tag: t.special(t.variableName), color: 'black' },
|
|
||||||
{ tag: t.typeName, color: 'black' },
|
|
||||||
{ tag: t.atom, color: 'black' },
|
|
||||||
{ tag: t.number, color: 'black' },
|
|
||||||
{ tag: t.definition(t.variableName), color: 'black' },
|
|
||||||
{ tag: t.string, color: 'black' },
|
|
||||||
{ tag: t.special(t.string), color: 'black' },
|
|
||||||
{ tag: t.comment, color: 'black' },
|
|
||||||
{ tag: t.variableName, color: 'black' },
|
|
||||||
{ tag: t.tagName, color: 'black' },
|
|
||||||
{ tag: t.bracket, color: 'black' },
|
|
||||||
{ tag: t.meta, color: 'black' },
|
|
||||||
{ tag: t.attributeName, color: 'black' },
|
|
||||||
{ tag: t.propertyName, color: 'black' },
|
|
||||||
{ tag: t.className, color: 'black' },
|
|
||||||
{ tag: t.invalid, color: 'black' },
|
|
||||||
],
|
|
||||||
});
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
module.exports = {
|
|
||||||
content: ['./src/**/*.{js,jsx,ts,tsx}'],
|
|
||||||
theme: {
|
|
||||||
extend: {
|
|
||||||
colors: {
|
|
||||||
// codemirror-theme settings
|
|
||||||
background: 'var(--background)',
|
|
||||||
lineBackground: 'var(--lineBackground)',
|
|
||||||
foreground: 'var(--foreground)',
|
|
||||||
caret: 'var(--caret)',
|
|
||||||
selection: 'var(--selection)',
|
|
||||||
selectionMatch: 'var(--selectionMatch)',
|
|
||||||
gutterBackground: 'var(--gutterBackground)',
|
|
||||||
gutterForeground: 'var(--gutterForeground)',
|
|
||||||
gutterBorder: 'var(--gutterBorder)',
|
|
||||||
lineHighlight: 'var(--lineHighlight)',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
plugins: [],
|
|
||||||
corePlugins: {
|
|
||||||
preflight: false,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@ -1,47 +0,0 @@
|
|||||||
import { defineConfig } from 'vite';
|
|
||||||
import react from '@vitejs/plugin-react';
|
|
||||||
import { peerDependencies, dependencies } from './package.json';
|
|
||||||
import { resolve } from 'path';
|
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
|
||||||
export default defineConfig({
|
|
||||||
plugins: [
|
|
||||||
react({
|
|
||||||
jsxRuntime: 'classic',
|
|
||||||
}),
|
|
||||||
],
|
|
||||||
build: {
|
|
||||||
lib: {
|
|
||||||
entry: resolve(__dirname, 'src', 'index.js'),
|
|
||||||
formats: ['es', 'cjs'],
|
|
||||||
fileName: (ext) => ({ es: 'index.mjs', cjs: 'index.js' }[ext]),
|
|
||||||
// for UMD name: 'GlobalName'
|
|
||||||
},
|
|
||||||
rollupOptions: {
|
|
||||||
external: [
|
|
||||||
...Object.keys(peerDependencies),
|
|
||||||
...Object.keys(dependencies),
|
|
||||||
// TODO: find out which of below names are obsolete now
|
|
||||||
'@strudel.cycles/transpiler',
|
|
||||||
'acorn',
|
|
||||||
'@strudel.cycles/core',
|
|
||||||
'@strudel.cycles/mini',
|
|
||||||
'@strudel.cycles/tonal',
|
|
||||||
'@strudel.cycles/midi',
|
|
||||||
'@strudel.cycles/xen',
|
|
||||||
'@strudel.cycles/serial',
|
|
||||||
'@strudel.cycles/webaudio',
|
|
||||||
'@codemirror/view',
|
|
||||||
'@codemirror/lang-javascript',
|
|
||||||
'@codemirror/state',
|
|
||||||
'@codemirror/commands',
|
|
||||||
'@lezer/highlight',
|
|
||||||
'@codemirror/language',
|
|
||||||
'@uiw/codemirror-themes',
|
|
||||||
'@uiw/react-codemirror',
|
|
||||||
'@lezer/highlight',
|
|
||||||
],
|
|
||||||
},
|
|
||||||
target: 'esnext',
|
|
||||||
},
|
|
||||||
});
|
|
||||||
497
pnpm-lock.yaml
generated
497
pnpm-lock.yaml
generated
@ -282,149 +282,6 @@ importers:
|
|||||||
specifier: ^4.3.3
|
specifier: ^4.3.3
|
||||||
version: 4.3.3
|
version: 4.3.3
|
||||||
|
|
||||||
packages/react:
|
|
||||||
dependencies:
|
|
||||||
'@codemirror/autocomplete':
|
|
||||||
specifier: ^6.6.0
|
|
||||||
version: 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2)
|
|
||||||
'@codemirror/commands':
|
|
||||||
specifier: ^6.0.0
|
|
||||||
version: 6.2.4
|
|
||||||
'@codemirror/lang-javascript':
|
|
||||||
specifier: ^6.1.7
|
|
||||||
version: 6.1.7
|
|
||||||
'@codemirror/language':
|
|
||||||
specifier: ^6.0.0
|
|
||||||
version: 6.6.0
|
|
||||||
'@codemirror/lint':
|
|
||||||
specifier: ^6.0.0
|
|
||||||
version: 6.1.0
|
|
||||||
'@codemirror/search':
|
|
||||||
specifier: ^6.0.0
|
|
||||||
version: 6.2.3
|
|
||||||
'@codemirror/state':
|
|
||||||
specifier: ^6.2.0
|
|
||||||
version: 6.2.0
|
|
||||||
'@codemirror/view':
|
|
||||||
specifier: ^6.10.0
|
|
||||||
version: 6.10.0
|
|
||||||
'@lezer/highlight':
|
|
||||||
specifier: ^1.1.4
|
|
||||||
version: 1.1.4
|
|
||||||
'@replit/codemirror-emacs':
|
|
||||||
specifier: ^6.0.1
|
|
||||||
version: 6.0.1(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)
|
|
||||||
'@replit/codemirror-vim':
|
|
||||||
specifier: ^6.0.14
|
|
||||||
version: 6.0.14(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)
|
|
||||||
'@replit/codemirror-vscode-keymap':
|
|
||||||
specifier: ^6.0.2
|
|
||||||
version: 6.0.2(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)
|
|
||||||
'@strudel.cycles/core':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../core
|
|
||||||
'@strudel.cycles/transpiler':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../transpiler
|
|
||||||
'@strudel.cycles/webaudio':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../webaudio
|
|
||||||
'@strudel/codemirror':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../codemirror
|
|
||||||
'@uiw/codemirror-themes':
|
|
||||||
specifier: ^4.19.16
|
|
||||||
version: 4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)
|
|
||||||
'@uiw/react-codemirror':
|
|
||||||
specifier: ^4.19.16
|
|
||||||
version: 4.19.16(@babel/runtime@7.20.13)(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.0)(@codemirror/view@6.10.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0)
|
|
||||||
react-hook-inview:
|
|
||||||
specifier: ^4.5.0
|
|
||||||
version: 4.5.0(react-dom@18.2.0)(react@18.2.0)
|
|
||||||
devDependencies:
|
|
||||||
'@types/react':
|
|
||||||
specifier: ^18.2.0
|
|
||||||
version: 18.2.0
|
|
||||||
'@types/react-dom':
|
|
||||||
specifier: ^18.2.1
|
|
||||||
version: 18.2.1
|
|
||||||
'@vitejs/plugin-react':
|
|
||||||
specifier: ^4.0.0
|
|
||||||
version: 4.0.0(vite@4.3.3)
|
|
||||||
autoprefixer:
|
|
||||||
specifier: ^10.4.14
|
|
||||||
version: 10.4.14(postcss@8.4.23)
|
|
||||||
postcss:
|
|
||||||
specifier: ^8.4.23
|
|
||||||
version: 8.4.23
|
|
||||||
react:
|
|
||||||
specifier: ^18.2.0
|
|
||||||
version: 18.2.0
|
|
||||||
react-dom:
|
|
||||||
specifier: ^18.2.0
|
|
||||||
version: 18.2.0(react@18.2.0)
|
|
||||||
tailwindcss:
|
|
||||||
specifier: ^3.3.2
|
|
||||||
version: 3.3.2
|
|
||||||
vite:
|
|
||||||
specifier: ^4.3.3
|
|
||||||
version: 4.3.3
|
|
||||||
|
|
||||||
packages/react/examples/nano-repl:
|
|
||||||
dependencies:
|
|
||||||
'@strudel.cycles/core':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../core
|
|
||||||
'@strudel.cycles/mini':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../mini
|
|
||||||
'@strudel.cycles/osc':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../osc
|
|
||||||
'@strudel.cycles/react':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../..
|
|
||||||
'@strudel.cycles/soundfonts':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../soundfonts
|
|
||||||
'@strudel.cycles/tonal':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../tonal
|
|
||||||
'@strudel.cycles/transpiler':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../transpiler
|
|
||||||
'@strudel.cycles/webaudio':
|
|
||||||
specifier: workspace:*
|
|
||||||
version: link:../../../webaudio
|
|
||||||
react:
|
|
||||||
specifier: ^18.2.0
|
|
||||||
version: 18.2.0
|
|
||||||
react-dom:
|
|
||||||
specifier: ^18.2.0
|
|
||||||
version: 18.2.0(react@18.2.0)
|
|
||||||
devDependencies:
|
|
||||||
'@types/react':
|
|
||||||
specifier: ^18.2.0
|
|
||||||
version: 18.2.0
|
|
||||||
'@types/react-dom':
|
|
||||||
specifier: ^18.2.1
|
|
||||||
version: 18.2.1
|
|
||||||
'@vitejs/plugin-react':
|
|
||||||
specifier: ^4.0.0
|
|
||||||
version: 4.0.0(vite@4.3.3)
|
|
||||||
autoprefixer:
|
|
||||||
specifier: ^10.4.14
|
|
||||||
version: 10.4.14(postcss@8.4.23)
|
|
||||||
postcss:
|
|
||||||
specifier: ^8.4.23
|
|
||||||
version: 8.4.23
|
|
||||||
tailwindcss:
|
|
||||||
specifier: ^3.3.2
|
|
||||||
version: 3.3.2
|
|
||||||
vite:
|
|
||||||
specifier: ^4.3.3
|
|
||||||
version: 4.3.3
|
|
||||||
|
|
||||||
packages/repl:
|
packages/repl:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rollup/plugin-replace':
|
'@rollup/plugin-replace':
|
||||||
@ -930,6 +787,7 @@ packages:
|
|||||||
/@alloc/quick-lru@5.2.0:
|
/@alloc/quick-lru@5.2.0:
|
||||||
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
|
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@ampproject/remapping@2.2.0:
|
/@ampproject/remapping@2.2.0:
|
||||||
resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
|
resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
|
||||||
@ -1074,38 +932,10 @@ packages:
|
|||||||
'@babel/highlight': 7.22.20
|
'@babel/highlight': 7.22.20
|
||||||
chalk: 2.4.2
|
chalk: 2.4.2
|
||||||
|
|
||||||
/@babel/compat-data@7.21.5:
|
|
||||||
resolution: {integrity: sha512-M+XAiQ7GzQ3FDPf0KOLkugzptnIypt0X0ma0wmlTKPR3IchgNFdx2JXxZdvd18JY5s7QkaFD/qyX0dsMpog/Ug==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/compat-data@7.23.2:
|
/@babel/compat-data@7.23.2:
|
||||||
resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==}
|
resolution: {integrity: sha512-0S9TQMmDHlqAZ2ITT95irXKfxN9bncq8ZCoJhun3nHL/lLUxd2NKBJYoNGWH7S0hz6fRQwWlAWn/ILM0C70KZQ==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
|
|
||||||
/@babel/core@7.21.5:
|
|
||||||
resolution: {integrity: sha512-9M398B/QH5DlfCOTKDZT1ozXr0x8uBEeFd+dJraGUZGiaNpGCDVGCc14hZexsMblw3XxltJ+6kSvogp9J+5a9g==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@ampproject/remapping': 2.2.0
|
|
||||||
'@babel/code-frame': 7.21.4
|
|
||||||
'@babel/generator': 7.21.5
|
|
||||||
'@babel/helper-compilation-targets': 7.21.5(@babel/core@7.21.5)
|
|
||||||
'@babel/helper-module-transforms': 7.21.5
|
|
||||||
'@babel/helpers': 7.21.5
|
|
||||||
'@babel/parser': 7.21.5
|
|
||||||
'@babel/template': 7.20.7
|
|
||||||
'@babel/traverse': 7.21.5
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
convert-source-map: 1.9.0
|
|
||||||
debug: 4.3.4
|
|
||||||
gensync: 1.0.0-beta.2
|
|
||||||
json5: 2.2.3
|
|
||||||
semver: 6.3.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/core@7.23.2:
|
/@babel/core@7.23.2:
|
||||||
resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==}
|
resolution: {integrity: sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1137,16 +967,6 @@ packages:
|
|||||||
jsesc: 2.5.2
|
jsesc: 2.5.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/generator@7.21.5:
|
|
||||||
resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
'@jridgewell/gen-mapping': 0.3.2
|
|
||||||
'@jridgewell/trace-mapping': 0.3.17
|
|
||||||
jsesc: 2.5.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/generator@7.23.0:
|
/@babel/generator@7.23.0:
|
||||||
resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==}
|
resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1170,20 +990,6 @@ packages:
|
|||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-compilation-targets@7.21.5(@babel/core@7.21.5):
|
|
||||||
resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
peerDependencies:
|
|
||||||
'@babel/core': ^7.0.0
|
|
||||||
dependencies:
|
|
||||||
'@babel/compat-data': 7.21.5
|
|
||||||
'@babel/core': 7.21.5
|
|
||||||
'@babel/helper-validator-option': 7.21.0
|
|
||||||
browserslist: 4.21.5
|
|
||||||
lru-cache: 5.1.1
|
|
||||||
semver: 6.3.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-compilation-targets@7.22.15:
|
/@babel/helper-compilation-targets@7.22.15:
|
||||||
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
|
resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1240,11 +1046,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-environment-visitor@7.21.5:
|
|
||||||
resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-environment-visitor@7.22.20:
|
/@babel/helper-environment-visitor@7.22.20:
|
||||||
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
|
resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1256,14 +1057,6 @@ packages:
|
|||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-function-name@7.21.0:
|
|
||||||
resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/template': 7.20.7
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-function-name@7.23.0:
|
/@babel/helper-function-name@7.23.0:
|
||||||
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
|
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1271,13 +1064,6 @@ packages:
|
|||||||
'@babel/template': 7.22.15
|
'@babel/template': 7.22.15
|
||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
|
|
||||||
/@babel/helper-hoist-variables@7.18.6:
|
|
||||||
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-hoist-variables@7.22.5:
|
/@babel/helper-hoist-variables@7.22.5:
|
||||||
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
|
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1291,35 +1077,12 @@ packages:
|
|||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-module-imports@7.21.4:
|
|
||||||
resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-module-imports@7.22.15:
|
/@babel/helper-module-imports@7.22.15:
|
||||||
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
|
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
|
|
||||||
/@babel/helper-module-transforms@7.21.5:
|
|
||||||
resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/helper-environment-visitor': 7.21.5
|
|
||||||
'@babel/helper-module-imports': 7.21.4
|
|
||||||
'@babel/helper-simple-access': 7.21.5
|
|
||||||
'@babel/helper-split-export-declaration': 7.18.6
|
|
||||||
'@babel/helper-validator-identifier': 7.19.1
|
|
||||||
'@babel/template': 7.20.7
|
|
||||||
'@babel/traverse': 7.21.5
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2):
|
/@babel/helper-module-transforms@7.23.0(@babel/core@7.23.2):
|
||||||
resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==}
|
resolution: {integrity: sha512-WhDWw1tdrlT0gMgUJSlX0IQvoO1eN279zrAUbVB+KpV2c3Tylz8+GnKOLllCS6Z/iZQEyVYxhZVUdPTqs2YYPw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1340,11 +1103,6 @@ packages:
|
|||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-plugin-utils@7.20.2:
|
|
||||||
resolution: {integrity: sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-plugin-utils@7.22.5:
|
/@babel/helper-plugin-utils@7.22.5:
|
||||||
resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
|
resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1378,13 +1136,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-simple-access@7.21.5:
|
|
||||||
resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-simple-access@7.22.5:
|
/@babel/helper-simple-access@7.22.5:
|
||||||
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
|
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1398,13 +1149,6 @@ packages:
|
|||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helper-split-export-declaration@7.18.6:
|
|
||||||
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-split-export-declaration@7.22.6:
|
/@babel/helper-split-export-declaration@7.22.6:
|
||||||
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
|
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1432,11 +1176,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
|
resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
|
|
||||||
/@babel/helper-validator-option@7.21.0:
|
|
||||||
resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helper-validator-option@7.22.15:
|
/@babel/helper-validator-option@7.22.15:
|
||||||
resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
|
resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1453,17 +1192,6 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/helpers@7.21.5:
|
|
||||||
resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/template': 7.20.7
|
|
||||||
'@babel/traverse': 7.21.5
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/helpers@7.23.2:
|
/@babel/helpers@7.23.2:
|
||||||
resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==}
|
resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -1513,6 +1241,7 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/types': 7.21.5
|
'@babel/types': 7.21.5
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@babel/parser@7.23.0:
|
/@babel/parser@7.23.0:
|
||||||
resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==}
|
resolution: {integrity: sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==}
|
||||||
@ -2150,16 +1879,6 @@ packages:
|
|||||||
'@babel/helper-plugin-utils': 7.22.5
|
'@babel/helper-plugin-utils': 7.22.5
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@babel/plugin-transform-react-jsx-self@7.21.0(@babel/core@7.21.5):
|
|
||||||
resolution: {integrity: sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
peerDependencies:
|
|
||||||
'@babel/core': ^7.0.0-0
|
|
||||||
dependencies:
|
|
||||||
'@babel/core': 7.21.5
|
|
||||||
'@babel/helper-plugin-utils': 7.20.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2):
|
/@babel/plugin-transform-react-jsx-self@7.22.5(@babel/core@7.23.2):
|
||||||
resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==}
|
resolution: {integrity: sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -2170,16 +1889,6 @@ packages:
|
|||||||
'@babel/helper-plugin-utils': 7.22.5
|
'@babel/helper-plugin-utils': 7.22.5
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@babel/plugin-transform-react-jsx-source@7.19.6(@babel/core@7.21.5):
|
|
||||||
resolution: {integrity: sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
peerDependencies:
|
|
||||||
'@babel/core': ^7.0.0-0
|
|
||||||
dependencies:
|
|
||||||
'@babel/core': 7.21.5
|
|
||||||
'@babel/helper-plugin-utils': 7.20.2
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2):
|
/@babel/plugin-transform-react-jsx-source@7.22.5(@babel/core@7.23.2):
|
||||||
resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==}
|
resolution: {integrity: sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -2401,15 +2110,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime: 0.13.11
|
regenerator-runtime: 0.13.11
|
||||||
|
|
||||||
/@babel/template@7.20.7:
|
|
||||||
resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/code-frame': 7.21.4
|
|
||||||
'@babel/parser': 7.21.5
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/template@7.22.15:
|
/@babel/template@7.22.15:
|
||||||
resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
|
resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -2418,24 +2118,6 @@ packages:
|
|||||||
'@babel/parser': 7.23.0
|
'@babel/parser': 7.23.0
|
||||||
'@babel/types': 7.23.0
|
'@babel/types': 7.23.0
|
||||||
|
|
||||||
/@babel/traverse@7.21.5:
|
|
||||||
resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==}
|
|
||||||
engines: {node: '>=6.9.0'}
|
|
||||||
dependencies:
|
|
||||||
'@babel/code-frame': 7.21.4
|
|
||||||
'@babel/generator': 7.21.5
|
|
||||||
'@babel/helper-environment-visitor': 7.21.5
|
|
||||||
'@babel/helper-function-name': 7.21.0
|
|
||||||
'@babel/helper-hoist-variables': 7.18.6
|
|
||||||
'@babel/helper-split-export-declaration': 7.18.6
|
|
||||||
'@babel/parser': 7.21.5
|
|
||||||
'@babel/types': 7.21.5
|
|
||||||
debug: 4.3.4
|
|
||||||
globals: 11.12.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@babel/traverse@7.23.2:
|
/@babel/traverse@7.23.2:
|
||||||
resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
|
resolution: {integrity: sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
@ -2553,15 +2235,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==}
|
resolution: {integrity: sha512-69QXtcrsc3RYtOtd+GsvczJ319udtBf1PTrr2KbLWM/e2CXUPnh0Nz9AUo8WfhSQ7GeL8dPVNUmhQVgpmuaNGA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@codemirror/theme-one-dark@6.1.0:
|
|
||||||
resolution: {integrity: sha512-AiTHtFRu8+vWT9wWUWDM+cog6ZwgivJogB1Tm/g40NIpLwph7AnmxrSzWfvJN5fBVufsuwBxecQCNmdcR5D7Aw==}
|
|
||||||
dependencies:
|
|
||||||
'@codemirror/language': 6.6.0
|
|
||||||
'@codemirror/state': 6.2.0
|
|
||||||
'@codemirror/view': 6.10.0
|
|
||||||
'@lezer/highlight': 1.1.4
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@codemirror/view@6.10.0:
|
/@codemirror/view@6.10.0:
|
||||||
resolution: {integrity: sha512-Oea3rvE4JQLMmLsy2b54yxXQJgJM9xKpUQIpF/LGgKUTH2lA06GAmEtKKWn5OUnbW3jrH1hHeUd8DJEgePMOeQ==}
|
resolution: {integrity: sha512-Oea3rvE4JQLMmLsy2b54yxXQJgJM9xKpUQIpF/LGgKUTH2lA06GAmEtKKWn5OUnbW3jrH1hHeUd8DJEgePMOeQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -4685,11 +4358,13 @@ packages:
|
|||||||
|
|
||||||
/@types/prop-types@15.7.5:
|
/@types/prop-types@15.7.5:
|
||||||
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/react-dom@18.2.1:
|
/@types/react-dom@18.2.1:
|
||||||
resolution: {integrity: sha512-8QZEV9+Kwy7tXFmjJrp3XUKQSs9LTnE0KnoUb0YCguWBiNW0Yfb2iBMYZ08WPg35IR6P3Z0s00B15SwZnO26+w==}
|
resolution: {integrity: sha512-8QZEV9+Kwy7tXFmjJrp3XUKQSs9LTnE0KnoUb0YCguWBiNW0Yfb2iBMYZ08WPg35IR6P3Z0s00B15SwZnO26+w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/react': 18.2.0
|
'@types/react': 18.2.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/react@18.2.0:
|
/@types/react@18.2.0:
|
||||||
resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==}
|
resolution: {integrity: sha512-0FLj93y5USLHdnhIhABk83rm8XEGA7kH3cr+YUlvxoUGp1xNt/DINUMvqPxLyOQMzLmZe8i4RTHbvb8MC7NmrA==}
|
||||||
@ -4697,6 +4372,7 @@ packages:
|
|||||||
'@types/prop-types': 15.7.5
|
'@types/prop-types': 15.7.5
|
||||||
'@types/scheduler': 0.16.2
|
'@types/scheduler': 0.16.2
|
||||||
csstype: 3.1.1
|
csstype: 3.1.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/resolve@1.17.1:
|
/@types/resolve@1.17.1:
|
||||||
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
|
resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==}
|
||||||
@ -4706,6 +4382,7 @@ packages:
|
|||||||
|
|
||||||
/@types/scheduler@0.16.2:
|
/@types/scheduler@0.16.2:
|
||||||
resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
|
resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@types/trusted-types@2.0.2:
|
/@types/trusted-types@2.0.2:
|
||||||
resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==}
|
resolution: {integrity: sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==}
|
||||||
@ -4761,26 +4438,6 @@ packages:
|
|||||||
eslint-visitor-keys: 3.3.0
|
eslint-visitor-keys: 3.3.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@uiw/codemirror-extensions-basic-setup@4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0):
|
|
||||||
resolution: {integrity: sha512-Xm0RDpyYVZ/8hWqaBs3+wZwi4uLwZUBwp/uCt89X80FeR6mr3BFuC+a+gcDO4dBu3l+WQE3jJdhjKjB2TCY/PQ==}
|
|
||||||
peerDependencies:
|
|
||||||
'@codemirror/autocomplete': '>=6.0.0'
|
|
||||||
'@codemirror/commands': '>=6.0.0'
|
|
||||||
'@codemirror/language': '>=6.0.0'
|
|
||||||
'@codemirror/lint': '>=6.0.0'
|
|
||||||
'@codemirror/search': '>=6.0.0'
|
|
||||||
'@codemirror/state': '>=6.0.0'
|
|
||||||
'@codemirror/view': '>=6.0.0'
|
|
||||||
dependencies:
|
|
||||||
'@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2)
|
|
||||||
'@codemirror/commands': 6.2.4
|
|
||||||
'@codemirror/language': 6.6.0
|
|
||||||
'@codemirror/lint': 6.1.0
|
|
||||||
'@codemirror/search': 6.2.3
|
|
||||||
'@codemirror/state': 6.2.0
|
|
||||||
'@codemirror/view': 6.10.0
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@uiw/codemirror-theme-abcdef@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0):
|
/@uiw/codemirror-theme-abcdef@4.19.16(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0):
|
||||||
resolution: {integrity: sha512-vZHLg35Rhz39FF3HgAeHSZxIOV3/PG8q8v/0dcywCvt1FG9J6OuAifXzePo2nrT/P/qkienbehxzF+DyHHzV5g==}
|
resolution: {integrity: sha512-vZHLg35Rhz39FF3HgAeHSZxIOV3/PG8q8v/0dcywCvt1FG9J6OuAifXzePo2nrT/P/qkienbehxzF+DyHHzV5g==}
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -5056,33 +4713,6 @@ packages:
|
|||||||
'@codemirror/view': 6.10.0
|
'@codemirror/view': 6.10.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@uiw/react-codemirror@4.19.16(@babel/runtime@7.20.13)(@codemirror/autocomplete@6.6.0)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/theme-one-dark@6.1.0)(@codemirror/view@6.10.0)(codemirror@6.0.1)(react-dom@18.2.0)(react@18.2.0):
|
|
||||||
resolution: {integrity: sha512-uElraR7Mvwz2oZKrmtF5hmIB8dAlIiU65nfg484e/V9k4PV6/5KtPUQL3JPO4clH2pcd+TQqRTQrFFkP/D25ew==}
|
|
||||||
peerDependencies:
|
|
||||||
'@babel/runtime': '>=7.11.0'
|
|
||||||
'@codemirror/state': '>=6.0.0'
|
|
||||||
'@codemirror/theme-one-dark': '>=6.0.0'
|
|
||||||
'@codemirror/view': '>=6.0.0'
|
|
||||||
codemirror: '>=6.0.0'
|
|
||||||
react: '>=16.8.0'
|
|
||||||
react-dom: '>=16.8.0'
|
|
||||||
dependencies:
|
|
||||||
'@babel/runtime': 7.20.13
|
|
||||||
'@codemirror/commands': 6.2.4
|
|
||||||
'@codemirror/state': 6.2.0
|
|
||||||
'@codemirror/theme-one-dark': 6.1.0
|
|
||||||
'@codemirror/view': 6.10.0
|
|
||||||
'@uiw/codemirror-extensions-basic-setup': 4.19.16(@codemirror/autocomplete@6.6.0)(@codemirror/commands@6.2.4)(@codemirror/language@6.6.0)(@codemirror/lint@6.1.0)(@codemirror/search@6.2.3)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)
|
|
||||||
codemirror: 6.0.1(@lezer/common@1.0.2)
|
|
||||||
react: 18.2.0
|
|
||||||
react-dom: 18.2.0(react@18.2.0)
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@codemirror/autocomplete'
|
|
||||||
- '@codemirror/language'
|
|
||||||
- '@codemirror/lint'
|
|
||||||
- '@codemirror/search'
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/@ungap/structured-clone@1.2.0:
|
/@ungap/structured-clone@1.2.0:
|
||||||
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
|
||||||
|
|
||||||
@ -5096,21 +4726,6 @@ packages:
|
|||||||
vite-plugin-pwa: 0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0)
|
vite-plugin-pwa: 0.16.5(vite@4.5.0)(workbox-build@7.0.0)(workbox-window@7.0.0)
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@vitejs/plugin-react@4.0.0(vite@4.3.3):
|
|
||||||
resolution: {integrity: sha512-HX0XzMjL3hhOYm+0s95pb0Z7F8O81G7joUHgfDd/9J/ZZf5k4xX6QAMFkKsHFxaHlf6X7GD7+XuaZ66ULiJuhQ==}
|
|
||||||
engines: {node: ^14.18.0 || >=16.0.0}
|
|
||||||
peerDependencies:
|
|
||||||
vite: ^4.2.0
|
|
||||||
dependencies:
|
|
||||||
'@babel/core': 7.21.5
|
|
||||||
'@babel/plugin-transform-react-jsx-self': 7.21.0(@babel/core@7.21.5)
|
|
||||||
'@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.5)
|
|
||||||
react-refresh: 0.14.0
|
|
||||||
vite: 4.3.3
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- supports-color
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/@vitejs/plugin-react@4.1.0(vite@4.5.0):
|
/@vitejs/plugin-react@4.1.0(vite@4.5.0):
|
||||||
resolution: {integrity: sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==}
|
resolution: {integrity: sha512-rM0SqazU9iqPUraQ2JlIvReeaxOoRj6n+PzB1C0cBzIbd8qP336nC39/R9yPi3wVcah7E7j/kdU1uCUqMEU4OQ==}
|
||||||
engines: {node: ^14.18.0 || >=16.0.0}
|
engines: {node: ^14.18.0 || >=16.0.0}
|
||||||
@ -5373,6 +4988,7 @@ packages:
|
|||||||
|
|
||||||
/any-promise@1.3.0:
|
/any-promise@1.3.0:
|
||||||
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
|
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/anymatch@3.1.3:
|
/anymatch@3.1.3:
|
||||||
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
|
||||||
@ -5413,6 +5029,7 @@ packages:
|
|||||||
|
|
||||||
/arg@5.0.2:
|
/arg@5.0.2:
|
||||||
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/argparse@1.0.10:
|
/argparse@1.0.10:
|
||||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||||
@ -5624,22 +5241,6 @@ packages:
|
|||||||
tslib: 2.5.0
|
tslib: 2.5.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/autoprefixer@10.4.14(postcss@8.4.23):
|
|
||||||
resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
|
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
postcss: ^8.1.0
|
|
||||||
dependencies:
|
|
||||||
browserslist: 4.21.5
|
|
||||||
caniuse-lite: 1.0.30001481
|
|
||||||
fraction.js: 4.2.0
|
|
||||||
normalize-range: 0.1.2
|
|
||||||
picocolors: 1.0.0
|
|
||||||
postcss: 8.4.23
|
|
||||||
postcss-value-parser: 4.2.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/autoprefixer@10.4.16(postcss@8.4.31):
|
/autoprefixer@10.4.16(postcss@8.4.31):
|
||||||
resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
|
resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==}
|
||||||
engines: {node: ^10 || ^12 || >=14}
|
engines: {node: ^10 || ^12 || >=14}
|
||||||
@ -5792,17 +5393,6 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
fill-range: 7.0.1
|
fill-range: 7.0.1
|
||||||
|
|
||||||
/browserslist@4.21.5:
|
|
||||||
resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
|
|
||||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
|
||||||
hasBin: true
|
|
||||||
dependencies:
|
|
||||||
caniuse-lite: 1.0.30001481
|
|
||||||
electron-to-chromium: 1.4.284
|
|
||||||
node-releases: 2.0.8
|
|
||||||
update-browserslist-db: 1.0.10(browserslist@4.21.5)
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/browserslist@4.22.1:
|
/browserslist@4.22.1:
|
||||||
resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
|
resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
|
||||||
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
|
||||||
@ -5945,6 +5535,7 @@ packages:
|
|||||||
/camelcase-css@2.0.1:
|
/camelcase-css@2.0.1:
|
||||||
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/camelcase-keys@6.2.2:
|
/camelcase-keys@6.2.2:
|
||||||
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
|
resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
|
||||||
@ -5964,10 +5555,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
|
resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==}
|
||||||
engines: {node: '>=14.16'}
|
engines: {node: '>=14.16'}
|
||||||
|
|
||||||
/caniuse-lite@1.0.30001481:
|
|
||||||
resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/caniuse-lite@1.0.30001559:
|
/caniuse-lite@1.0.30001559:
|
||||||
resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==}
|
resolution: {integrity: sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==}
|
||||||
|
|
||||||
@ -6214,20 +5801,6 @@ packages:
|
|||||||
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
|
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
/codemirror@6.0.1(@lezer/common@1.0.2):
|
|
||||||
resolution: {integrity: sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==}
|
|
||||||
dependencies:
|
|
||||||
'@codemirror/autocomplete': 6.6.0(@codemirror/language@6.6.0)(@codemirror/state@6.2.0)(@codemirror/view@6.10.0)(@lezer/common@1.0.2)
|
|
||||||
'@codemirror/commands': 6.2.4
|
|
||||||
'@codemirror/language': 6.6.0
|
|
||||||
'@codemirror/lint': 6.1.0
|
|
||||||
'@codemirror/search': 6.2.3
|
|
||||||
'@codemirror/state': 6.2.0
|
|
||||||
'@codemirror/view': 6.10.0
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@lezer/common'
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/collect-all@1.0.4:
|
/collect-all@1.0.4:
|
||||||
resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==}
|
resolution: {integrity: sha512-RKZhRwJtJEP5FWul+gkSMEnaK6H3AGPTTWOiRimCcs+rc/OmQE3Yhy1Q7A7KsdkG3ZXVdZq68Y6ONSdvkeEcKA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@ -6338,6 +5911,7 @@ packages:
|
|||||||
/commander@4.1.1:
|
/commander@4.1.1:
|
||||||
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
|
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/commander@9.5.0:
|
/commander@9.5.0:
|
||||||
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
|
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
|
||||||
@ -6478,10 +6052,6 @@ packages:
|
|||||||
q: 1.5.1
|
q: 1.5.1
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/convert-source-map@1.9.0:
|
|
||||||
resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/convert-source-map@2.0.0:
|
/convert-source-map@2.0.0:
|
||||||
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
|
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
|
||||||
|
|
||||||
@ -6541,6 +6111,7 @@ packages:
|
|||||||
|
|
||||||
/csstype@3.1.1:
|
/csstype@3.1.1:
|
||||||
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
|
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/d@1.0.1:
|
/d@1.0.1:
|
||||||
resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
|
resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
|
||||||
@ -6826,6 +6397,7 @@ packages:
|
|||||||
|
|
||||||
/didyoumean@1.2.2:
|
/didyoumean@1.2.2:
|
||||||
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
|
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/diff-sequences@29.4.3:
|
/diff-sequences@29.4.3:
|
||||||
resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==}
|
resolution: {integrity: sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA==}
|
||||||
@ -6920,10 +6492,6 @@ packages:
|
|||||||
jake: 10.8.5
|
jake: 10.8.5
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/electron-to-chromium@1.4.284:
|
|
||||||
resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/electron-to-chromium@1.4.574:
|
/electron-to-chromium@1.4.574:
|
||||||
resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==}
|
resolution: {integrity: sha512-bg1m8L0n02xRzx4LsTTMbBPiUd9yIR+74iPtS/Ao65CuXvhVZHP0ym1kSdDG3yHFDXqHQQBKujlN1AQ8qZnyFg==}
|
||||||
|
|
||||||
@ -7789,6 +7357,7 @@ packages:
|
|||||||
|
|
||||||
/fraction.js@4.2.0:
|
/fraction.js@4.2.0:
|
||||||
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
|
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/fraction.js@4.3.7:
|
/fraction.js@4.3.7:
|
||||||
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
|
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
|
||||||
@ -8080,6 +7649,7 @@ packages:
|
|||||||
minimatch: 3.1.2
|
minimatch: 3.1.2
|
||||||
once: 1.4.0
|
once: 1.4.0
|
||||||
path-is-absolute: 1.0.1
|
path-is-absolute: 1.0.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/glob@7.2.3:
|
/glob@7.2.3:
|
||||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
@ -9107,6 +8677,7 @@ packages:
|
|||||||
/jiti@1.18.2:
|
/jiti@1.18.2:
|
||||||
resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==}
|
resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
dev: false
|
||||||
|
|
||||||
/js-sdsl@4.3.0:
|
/js-sdsl@4.3.0:
|
||||||
resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
|
resolution: {integrity: sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ==}
|
||||||
@ -9452,10 +9023,12 @@ packages:
|
|||||||
/lilconfig@2.0.6:
|
/lilconfig@2.0.6:
|
||||||
resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
|
resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/lilconfig@2.1.0:
|
/lilconfig@2.1.0:
|
||||||
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
|
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/lines-and-columns@1.2.4:
|
/lines-and-columns@1.2.4:
|
||||||
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
|
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
|
||||||
@ -9591,6 +9164,7 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
js-tokens: 4.0.0
|
js-tokens: 4.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/loupe@2.3.6:
|
/loupe@2.3.6:
|
||||||
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
|
resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==}
|
||||||
@ -10617,6 +10191,7 @@ packages:
|
|||||||
any-promise: 1.3.0
|
any-promise: 1.3.0
|
||||||
object-assign: 4.1.1
|
object-assign: 4.1.1
|
||||||
thenify-all: 1.6.0
|
thenify-all: 1.6.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/nan@2.17.0:
|
/nan@2.17.0:
|
||||||
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
|
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
|
||||||
@ -10761,10 +10336,6 @@ packages:
|
|||||||
/node-releases@2.0.13:
|
/node-releases@2.0.13:
|
||||||
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
|
resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
|
||||||
|
|
||||||
/node-releases@2.0.8:
|
|
||||||
resolution: {integrity: sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==}
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/node-source-walk@4.3.0:
|
/node-source-walk@4.3.0:
|
||||||
resolution: {integrity: sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==}
|
resolution: {integrity: sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==}
|
||||||
engines: {node: '>=6.0'}
|
engines: {node: '>=6.0'}
|
||||||
@ -10848,6 +10419,7 @@ packages:
|
|||||||
/normalize-range@0.1.2:
|
/normalize-range@0.1.2:
|
||||||
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
|
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/npm-bundled@1.1.2:
|
/npm-bundled@1.1.2:
|
||||||
resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
|
resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==}
|
||||||
@ -11123,6 +10695,7 @@ packages:
|
|||||||
/object-hash@3.0.0:
|
/object-hash@3.0.0:
|
||||||
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
|
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/object-inspect@1.12.3:
|
/object-inspect@1.12.3:
|
||||||
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
|
resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
|
||||||
@ -11609,6 +11182,7 @@ packages:
|
|||||||
/pirates@4.0.5:
|
/pirates@4.0.5:
|
||||||
resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
|
resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/pkg-dir@4.2.0:
|
/pkg-dir@4.2.0:
|
||||||
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
|
||||||
@ -11679,6 +11253,7 @@ packages:
|
|||||||
postcss-value-parser: 4.2.0
|
postcss-value-parser: 4.2.0
|
||||||
read-cache: 1.0.0
|
read-cache: 1.0.0
|
||||||
resolve: 1.22.2
|
resolve: 1.22.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/postcss-js@4.0.1(postcss@8.4.23):
|
/postcss-js@4.0.1(postcss@8.4.23):
|
||||||
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
|
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
|
||||||
@ -11688,6 +11263,7 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
camelcase-css: 2.0.1
|
camelcase-css: 2.0.1
|
||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
|
dev: false
|
||||||
|
|
||||||
/postcss-load-config@4.0.1(postcss@8.4.23):
|
/postcss-load-config@4.0.1(postcss@8.4.23):
|
||||||
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
|
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
|
||||||
@ -11704,6 +11280,7 @@ packages:
|
|||||||
lilconfig: 2.0.6
|
lilconfig: 2.0.6
|
||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
yaml: 2.2.2
|
yaml: 2.2.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
/postcss-load-config@4.0.1(postcss@8.4.31):
|
/postcss-load-config@4.0.1(postcss@8.4.31):
|
||||||
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
|
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
|
||||||
@ -11730,6 +11307,7 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
postcss: 8.4.23
|
postcss: 8.4.23
|
||||||
postcss-selector-parser: 6.0.11
|
postcss-selector-parser: 6.0.11
|
||||||
|
dev: false
|
||||||
|
|
||||||
/postcss-selector-parser@6.0.10:
|
/postcss-selector-parser@6.0.10:
|
||||||
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
|
resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==}
|
||||||
@ -11748,6 +11326,7 @@ packages:
|
|||||||
|
|
||||||
/postcss-value-parser@4.2.0:
|
/postcss-value-parser@4.2.0:
|
||||||
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
|
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/postcss-values-parser@6.0.2(postcss@8.4.23):
|
/postcss-values-parser@6.0.2(postcss@8.4.23):
|
||||||
resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==}
|
resolution: {integrity: sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==}
|
||||||
@ -12049,6 +11628,7 @@ packages:
|
|||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
react: 18.2.0
|
react: 18.2.0
|
||||||
scheduler: 0.23.0
|
scheduler: 0.23.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/react-hook-inview@4.5.0(react-dom@18.2.0)(react@18.2.0):
|
/react-hook-inview@4.5.0(react-dom@18.2.0)(react@18.2.0):
|
||||||
resolution: {integrity: sha512-Hm61BK32/K2Cc3bjBe2bQkndHbQP6NhHvWVX7zYitaitB6T28uUV+wlgxbXU9twxUt7+17HyHq6aezpMUCijQQ==}
|
resolution: {integrity: sha512-Hm61BK32/K2Cc3bjBe2bQkndHbQP6NhHvWVX7zYitaitB6T28uUV+wlgxbXU9twxUt7+17HyHq6aezpMUCijQQ==}
|
||||||
@ -12067,17 +11647,20 @@ packages:
|
|||||||
/react-refresh@0.14.0:
|
/react-refresh@0.14.0:
|
||||||
resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
|
resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/react@18.2.0:
|
/react@18.2.0:
|
||||||
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
|
resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/read-cache@1.0.0:
|
/read-cache@1.0.0:
|
||||||
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
pify: 2.3.0
|
pify: 2.3.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/read-cmd-shim@3.0.0:
|
/read-cmd-shim@3.0.0:
|
||||||
resolution: {integrity: sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==}
|
resolution: {integrity: sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog==}
|
||||||
@ -12695,6 +12278,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
|
resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
loose-envify: 1.4.0
|
loose-envify: 1.4.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/section-matter@1.0.0:
|
/section-matter@1.0.0:
|
||||||
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
|
resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
|
||||||
@ -13267,6 +12851,7 @@ packages:
|
|||||||
mz: 2.7.0
|
mz: 2.7.0
|
||||||
pirates: 4.0.5
|
pirates: 4.0.5
|
||||||
ts-interface-checker: 0.1.13
|
ts-interface-checker: 0.1.13
|
||||||
|
dev: false
|
||||||
|
|
||||||
/supports-color@5.5.0:
|
/supports-color@5.5.0:
|
||||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||||
@ -13325,6 +12910,7 @@ packages:
|
|||||||
sucrase: 3.32.0
|
sucrase: 3.32.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- ts-node
|
- ts-node
|
||||||
|
dev: false
|
||||||
|
|
||||||
/tapable@2.2.1:
|
/tapable@2.2.1:
|
||||||
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
|
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
|
||||||
@ -13477,11 +13063,13 @@ packages:
|
|||||||
engines: {node: '>=0.8'}
|
engines: {node: '>=0.8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
thenify: 3.3.1
|
thenify: 3.3.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
/thenify@3.3.1:
|
/thenify@3.3.1:
|
||||||
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
|
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
any-promise: 1.3.0
|
any-promise: 1.3.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
/through2@2.0.5:
|
/through2@2.0.5:
|
||||||
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
|
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
|
||||||
@ -13570,6 +13158,7 @@ packages:
|
|||||||
|
|
||||||
/ts-interface-checker@0.1.13:
|
/ts-interface-checker@0.1.13:
|
||||||
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/tsconfck@3.0.0(typescript@4.9.4):
|
/tsconfck@3.0.0(typescript@4.9.4):
|
||||||
resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==}
|
resolution: {integrity: sha512-w3wnsIrJNi7avf4Zb0VjOoodoO0woEqGgZGQm+LHH9przdUI+XDKsWAXwxHA1DaRTjeuZNcregSzr7RaA8zG9A==}
|
||||||
@ -13965,17 +13554,6 @@ packages:
|
|||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/update-browserslist-db@1.0.10(browserslist@4.21.5):
|
|
||||||
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
|
|
||||||
hasBin: true
|
|
||||||
peerDependencies:
|
|
||||||
browserslist: '>= 4.21.0'
|
|
||||||
dependencies:
|
|
||||||
browserslist: 4.21.5
|
|
||||||
escalade: 3.1.1
|
|
||||||
picocolors: 1.0.0
|
|
||||||
dev: true
|
|
||||||
|
|
||||||
/update-browserslist-db@1.0.13(browserslist@4.22.1):
|
/update-browserslist-db@1.0.13(browserslist@4.22.1):
|
||||||
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
|
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@ -14815,6 +14393,7 @@ packages:
|
|||||||
/yaml@2.2.2:
|
/yaml@2.2.2:
|
||||||
resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==}
|
resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==}
|
||||||
engines: {node: '>= 14'}
|
engines: {node: '>= 14'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/yargs-parser@20.2.4:
|
/yargs-parser@20.2.4:
|
||||||
resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
|
resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user