diff --git a/.eslintrc.cjs b/.eslintrc.cjs deleted file mode 100644 index fbb956a..0000000 --- a/.eslintrc.cjs +++ /dev/null @@ -1,18 +0,0 @@ -module.exports = { - root: true, - env: { browser: true, es2020: true }, - extends: [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:react-hooks/recommended", - ], - ignorePatterns: ["dist", "docs", ".eslintrc.cjs"], - parser: "@typescript-eslint/parser", - plugins: ["react-refresh"], - rules: { - "react-refresh/only-export-components": [ - "warn", - { allowConstantExport: true }, - ], - }, -} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index cfd47fb..0000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: CI - -on: - push: - branches: [main] - pull_request: - branches: [main] - -env: - NODE_VERSION: "22" - -jobs: - full-code-check: - runs-on: ubuntu-latest - steps: - - name: Full-check repository - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - check-latest: true - - name: Install dependecies - run: | - yarn install - - name: Lint code - run: | - yarn lint - - name: Build React - env: - CI: false - run: | - yarn build diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 08cd93e..0000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Docs build and deploy -on: push - -env: - NODE_VERSION: "22" - -jobs: - build-and-deploy: - runs-on: ubuntu-latest - steps: - - name: Checkout 🛎️ - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: Setup Node.js 📦 - uses: actions/setup-node@v4 - with: - node-version: ${{ env.NODE_VERSION }} - check-latest: true - - name: Install and Build 🔧 - run: | # Install packages and build the demo project - yarn install - yarn build-docs - - name: Get commit info - shell: bash - run: | - echo "sha_short=$(git rev-parse --short "$GITHUB_SHA")" >> "$GITHUB_ENV" - - name: Deploy 🚀 - uses: crazy-max/ghaction-github-pages@v4 - with: - target_branch: docs - build_dir: docs - commit_message: "Deploying to docs from ${{ env.sha_short }}" - keep_history: false - jekyll: false - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore deleted file mode 100644 index cb33b0d..0000000 --- a/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -docs -dist -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/LICENSE b/LICENSE deleted file mode 100644 index c0c1f00..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2024 Cristiano Raimondi - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md deleted file mode 100644 index 9d93542..0000000 --- a/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# React Basic Contenteditable - -![React Basic Content Editable](readme-header-img.png) - -A React component that allows you to create an editable area in your application. It's perfect for situations where you need to provide a user-friendly, in-place editing functionality. - -## Installation - -Install via npm - -```sh -npm install --save react-basic-contenteditable -``` - -or yarn - -```sh -yarn add react-basic-contenteditable -``` - -## Usage - -Live **demo** at [https://chrisuser.github.io/react-basic-contenteditable/](https://chrisuser.github.io/react-basic-contenteditable/) - -### Example - -```javascript -import ContentEditable from "react-basic-contenteditable" - -const App = () => { - const [content, setContent] = useState("") - - return ( -
-
{content}
- setContent(content)} - /> -
- ) -} - -export default App -``` - -### Ref & Imperative API - -The component supports `forwardRef` to expose an imperative handle for programmatic control. - -```typescript -import { useRef } from "react" -import ContentEditable from "react-basic-contenteditable" -import type { ContentEditableHandle } from "react-basic-contenteditable" - -const App = () => { - const editorRef = useRef(null) - - return ( - <> - - - - - - ) -} -``` - -**Available methods:** - -| Method | Return | Description | -| ------------------ | -------- | ---------------------------------------- | -| `focus()` | `void` | Focuses the editable element | -| `blur()` | `void` | Removes focus from the editable element | -| `insertAtCaret(text)` | `void` | Inserts text at the current cursor position | -| `clear()` | `void` | Clears all content | -| `getCaretPosition()` | `number` | Returns the current cursor offset | - -### Props - -> All props are optional, that's how you can **fully customize** it! - -| Name | Optional | Type | Description | -| ------------------------ | -------- | --------------------------------- | --------------------------------------------------------------------------- | -| containerClassName | ✔️ | `string` | Custom classes for the wrapper div | -| contentEditableClassName | ✔️ | `string` | Custom classes for the input element | -| placeholderClassName | ✔️ | `string` | Custom classes for the placeholder text | -| charsCounterClassName | ✔️ | `string` | Custom classes for the character counter text (if `maxLength` is specified) | -| placeholder | ✔️ | `string` | Input placeholder text | -| disabled | ✔️ | `boolean` | Flag that disables the input element | -| maxLength | ✔️ | `number` | Indicates the maximum number of characters a user can enter | -| autoFocus | ✔️ | `boolean` | Flag to automatically focus the input element on mount | -| tagName | ✔️ | `string` | HTML tag for the editable element (default: `"div"`) | -| multiLine | ✔️ | `boolean` | Allow multi-line input (default: `true`). Set to `false` for single-line | -| sanitize | ✔️ | `(content: string) => string` | Callback to sanitize content before `onChange` fires | -| updatedContent | ✔️ | `string` | Text injected from parent element into the input as the current value | -| onContentExternalUpdate | ✔️ | `(content) => void` | Method that emits the injected content by the `updatedContent` prop | -| onChange | ✔️ | `(content, meta?) => void` | Emits current content and optional `{ caretPosition }` metadata | -| onKeyUp | ✔️ | `(e) => void` | Method that emits the keyUp keyboard event | -| onKeyDown | ✔️ | `(e) => void` | Method that emits the keyDown keyboard event | -| onFocus | ✔️ | `(e) => void` | Method that emits the focus event | -| onBlur | ✔️ | `(e) => void` | Method that emits the blur event | -| onPaste | ✔️ | `(e) => void` | Method that emits the paste event | - -The component also accepts any standard HTML attribute (`id`, `data-*`, `tabIndex`, `spellCheck`, `style`, `className`, etc.) which will be forwarded to the editable element. - -### Types - -The package exports the following TypeScript types: - -```typescript -import type { ContentEditableHandle, ContentEditableProps } from "react-basic-contenteditable" -``` - -### Keyboard shortcuts - -- Undo: `Ctrl + Z` (Windows/Linux) / `Cmd + Z` (macOS) -- Redo: `Ctrl + Y` / `Ctrl + Shift + Z` (Windows/Linux) / `Cmd + Shift + Z` (macOS) - -## Contribution - -If you have a suggestion that would make this component better feel free to fork the project and open a pull request or create an issue for any idea or bug you find.\ -Remeber to follow the [Contributing Guidelines](https://github.com/ChrisUser/.github/blob/main/CONTRIBUTING.md). - -## Licence - -React Basic Contenteditable is [MIT licensed](https://github.com/ChrisUser/react-basic-contenteditable/blob/master/LICENSE). diff --git a/assets/index-BClZxY80.js b/assets/index-BClZxY80.js new file mode 100644 index 0000000..8ca89e5 --- /dev/null +++ b/assets/index-BClZxY80.js @@ -0,0 +1,49 @@ +(function(){const fl=document.createElement("link").relList;if(fl&&fl.supports&&fl.supports("modulepreload"))return;for(const L of document.querySelectorAll('link[rel="modulepreload"]'))h(L);new MutationObserver(L=>{for(const K of L)if(K.type==="childList")for(const P of K.addedNodes)P.tagName==="LINK"&&P.rel==="modulepreload"&&h(P)}).observe(document,{childList:!0,subtree:!0});function tl(L){const K={};return L.integrity&&(K.integrity=L.integrity),L.referrerPolicy&&(K.referrerPolicy=L.referrerPolicy),L.crossOrigin==="use-credentials"?K.credentials="include":L.crossOrigin==="anonymous"?K.credentials="omit":K.credentials="same-origin",K}function h(L){if(L.ep)return;L.ep=!0;const K=tl(L);fetch(L.href,K)}})();function M0(M){return M&&M.__esModule&&Object.prototype.hasOwnProperty.call(M,"default")?M.default:M}var si={exports:{}},Mu={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var r0;function Fy(){if(r0)return Mu;r0=1;var M=Symbol.for("react.transitional.element"),fl=Symbol.for("react.fragment");function tl(h,L,K){var P=null;if(K!==void 0&&(P=""+K),L.key!==void 0&&(P=""+L.key),"key"in L){K={};for(var vl in L)vl!=="key"&&(K[vl]=L[vl])}else K=L;return L=K.ref,{$$typeof:M,type:h,key:P,ref:L!==void 0?L:null,props:K}}return Mu.Fragment=fl,Mu.jsx=tl,Mu.jsxs=tl,Mu}var g0;function ky(){return g0||(g0=1,si.exports=Fy()),si.exports}var D=ky(),di={exports:{}},Z={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var S0;function Iy(){if(S0)return Z;S0=1;var M=Symbol.for("react.transitional.element"),fl=Symbol.for("react.portal"),tl=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),L=Symbol.for("react.profiler"),K=Symbol.for("react.consumer"),P=Symbol.for("react.context"),vl=Symbol.for("react.forward_ref"),j=Symbol.for("react.suspense"),A=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),nl=Symbol.iterator;function xl(d){return d===null||typeof d!="object"?null:(d=nl&&d[nl]||d["@@iterator"],typeof d=="function"?d:null)}var jl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Nl=Object.assign,Il={};function Yl(d,T,p){this.props=d,this.context=T,this.refs=Il,this.updater=p||jl}Yl.prototype.isReactComponent={},Yl.prototype.setState=function(d,T){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,T,"setState")},Yl.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function Wl(){}Wl.prototype=Yl.prototype;function x(d,T,p){this.props=d,this.context=T,this.refs=Il,this.updater=p||jl}var El=x.prototype=new Wl;El.constructor=x,Nl(El,Yl.prototype),El.isPureReactComponent=!0;var at=Array.isArray;function $l(){}var V={H:null,A:null,T:null,S:null},Tl=Object.prototype.hasOwnProperty;function N(d,T,p){var C=p.ref;return{$$typeof:M,type:d,key:T,ref:C!==void 0?C:null,props:p}}function Pl(d,T){return N(d.type,T,d.props)}function et(d){return typeof d=="object"&&d!==null&&d.$$typeof===M}function rl(d){var T={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(p){return T[p]})}var lt=/\/+/g;function ql(d,T){return typeof d=="object"&&d!==null&&d.key!=null?rl(""+d.key):T.toString(36)}function ot(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then($l,$l):(d.status="pending",d.then(function(T){d.status==="pending"&&(d.status="fulfilled",d.value=T)},function(T){d.status==="pending"&&(d.status="rejected",d.reason=T)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function g(d,T,p,C,Q){var E=typeof d;(E==="undefined"||E==="boolean")&&(d=null);var O=!1;if(d===null)O=!0;else switch(E){case"bigint":case"string":case"number":O=!0;break;case"object":switch(d.$$typeof){case M:case fl:O=!0;break;case W:return O=d._init,g(O(d._payload),T,p,C,Q)}}if(O)return Q=Q(d),O=C===""?"."+ql(d,0):C,at(Q)?(p="",O!=null&&(p=O.replace(lt,"$&/")+"/"),g(Q,T,p,"",function(Zl){return Zl})):Q!=null&&(et(Q)&&(Q=Pl(Q,p+(Q.key==null||d&&d.key===Q.key?"":(""+Q.key).replace(lt,"$&/")+"/")+O)),T.push(Q)),1;O=0;var H=C===""?".":C+":";if(at(d))for(var X=0;X>>1,il=g[cl];if(0>>1;clL(p,G))CL(Q,p)?(g[cl]=Q,g[C]=G,cl=C):(g[cl]=p,g[T]=G,cl=T);else if(CL(Q,G))g[cl]=Q,g[C]=G,cl=C;else break l}}return _}function L(g,_){var G=g.sortIndex-_.sortIndex;return G!==0?G:g.id-_.id}if(M.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var K=performance;M.unstable_now=function(){return K.now()}}else{var P=Date,vl=P.now();M.unstable_now=function(){return P.now()-vl}}var j=[],A=[],W=1,q=null,nl=3,xl=!1,jl=!1,Nl=!1,Il=!1,Yl=typeof setTimeout=="function"?setTimeout:null,Wl=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;function El(g){for(var _=tl(A);_!==null;){if(_.callback===null)h(A);else if(_.startTime<=g)h(A),_.sortIndex=_.expirationTime,fl(j,_);else break;_=tl(A)}}function at(g){if(Nl=!1,El(g),!jl)if(tl(j)!==null)jl=!0,$l||($l=!0,rl());else{var _=tl(A);_!==null&&ot(at,_.startTime-g)}}var $l=!1,V=-1,Tl=5,N=-1;function Pl(){return Il?!0:!(M.unstable_now()-Ng&&Pl());){var cl=q.callback;if(typeof cl=="function"){q.callback=null,nl=q.priorityLevel;var il=cl(q.expirationTime<=g);if(g=M.unstable_now(),typeof il=="function"){q.callback=il,El(g),_=!0;break t}q===tl(j)&&h(j),El(g)}else h(j);q=tl(j)}if(q!==null)_=!0;else{var d=tl(A);d!==null&&ot(at,d.startTime-g),_=!1}}break l}finally{q=null,nl=G,xl=!1}_=void 0}}finally{_?rl():$l=!1}}}var rl;if(typeof x=="function")rl=function(){x(et)};else if(typeof MessageChannel<"u"){var lt=new MessageChannel,ql=lt.port2;lt.port1.onmessage=et,rl=function(){ql.postMessage(null)}}else rl=function(){Yl(et,0)};function ot(g,_){V=Yl(function(){g(M.unstable_now())},_)}M.unstable_IdlePriority=5,M.unstable_ImmediatePriority=1,M.unstable_LowPriority=4,M.unstable_NormalPriority=3,M.unstable_Profiling=null,M.unstable_UserBlockingPriority=2,M.unstable_cancelCallback=function(g){g.callback=null},M.unstable_forceFrameRate=function(g){0>g||125cl?(g.sortIndex=G,fl(A,g),tl(j)===null&&g===tl(A)&&(Nl?(Wl(V),V=-1):Nl=!0,ot(at,G-cl))):(g.sortIndex=il,fl(j,g),jl||xl||(jl=!0,$l||($l=!0,rl()))),g},M.unstable_shouldYield=Pl,M.unstable_wrapCallback=function(g){var _=nl;return function(){var G=nl;nl=_;try{return g.apply(this,arguments)}finally{nl=G}}}})(yi)),yi}var T0;function tv(){return T0||(T0=1,mi.exports=lv()),mi.exports}var vi={exports:{}},kl={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var E0;function av(){if(E0)return kl;E0=1;var M=hi();function fl(j){var A="https://react.dev/errors/"+j;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(M)}catch(fl){console.error(fl)}}return M(),vi.exports=av(),vi.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var _0;function uv(){if(_0)return Du;_0=1;var M=tv(),fl=hi(),tl=ev();function h(l){var t="https://react.dev/errors/"+l;if(1il||(l.current=cl[il],cl[il]=null,il--)}function p(l,t){il++,cl[il]=l.current,l.current=t}var C=d(null),Q=d(null),E=d(null),O=d(null);function H(l,t){switch(p(E,t),p(Q,l),p(C,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Go(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Go(t),l=Xo(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}T(C),p(C,l)}function X(){T(C),T(Q),T(E)}function Zl(l){l.memoizedState!==null&&p(O,l);var t=C.current,a=Xo(t,l.type);t!==a&&(p(Q,l),p(C,a))}function gl(l){Q.current===l&&(T(C),T(Q)),O.current===l&&(T(O),Au._currentValue=G)}var Al,Gl;function Fl(l){if(Al===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Al=t&&t[1]||"",Gl=-1)":-1u||i[e]!==y[u]){var S=` +`+i[e].replace(" at new "," at ");return l.displayName&&S.includes("")&&(S=S.replace("",l.displayName)),S}while(1<=e&&0<=u);break}}}finally{He=!1,Error.prepareStackTrace=a}return(a=l?l.displayName||l.name:"")?Fl(a):""}function Nu(l,t){switch(l.tag){case 26:case 27:case 5:return Fl(l.type);case 16:return Fl("Lazy");case 13:return l.child!==t&&t!==null?Fl("Suspense Fallback"):Fl("Suspense");case 19:return Fl("SuspenseList");case 0:case 15:return ea(l.type,!1);case 11:return ea(l.type.render,!1);case 1:return ea(l.type,!0);case 31:return Fl("Activity");default:return""}}function je(l){try{var t="",a=null;do t+=Nu(l,a),a=l,l=l.return;while(l);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var Wa=Object.prototype.hasOwnProperty,Wn=M.unstable_scheduleCallback,$n=M.unstable_cancelCallback,D0=M.unstable_shouldYield,N0=M.unstable_requestPaint,mt=M.unstable_now,U0=M.unstable_getCurrentPriorityLevel,ri=M.unstable_ImmediatePriority,gi=M.unstable_UserBlockingPriority,Uu=M.unstable_NormalPriority,C0=M.unstable_LowPriority,Si=M.unstable_IdlePriority,R0=M.log,H0=M.unstable_setDisableYieldValue,qe=null,yt=null;function ua(l){if(typeof R0=="function"&&H0(l),yt&&typeof yt.setStrictMode=="function")try{yt.setStrictMode(qe,l)}catch{}}var vt=Math.clz32?Math.clz32:B0,j0=Math.log,q0=Math.LN2;function B0(l){return l>>>=0,l===0?32:31-(j0(l)/q0|0)|0}var Cu=256,Ru=262144,Hu=4194304;function Na(l){var t=l&42;if(t!==0)return t;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function ju(l,t,a){var e=l.pendingLanes;if(e===0)return 0;var u=0,n=l.suspendedLanes,c=l.pingedLanes;l=l.warmLanes;var f=e&134217727;return f!==0?(e=f&~n,e!==0?u=Na(e):(c&=f,c!==0?u=Na(c):a||(a=f&~l,a!==0&&(u=Na(a))))):(f=e&~n,f!==0?u=Na(f):c!==0?u=Na(c):a||(a=e&~l,a!==0&&(u=Na(a)))),u===0?0:t!==0&&t!==u&&(t&n)===0&&(n=u&-u,a=t&-t,n>=a||n===32&&(a&4194048)!==0)?t:u}function Be(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function x0(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function bi(){var l=Hu;return Hu<<=1,(Hu&62914560)===0&&(Hu=4194304),l}function Fn(l){for(var t=[],a=0;31>a;a++)t.push(l);return t}function xe(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Y0(l,t,a,e,u,n){var c=l.pendingLanes;l.pendingLanes=a,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=a,l.entangledLanes&=a,l.errorRecoveryDisabledLanes&=a,l.shellSuspendCounter=0;var f=l.entanglements,i=l.expirationTimes,y=l.hiddenUpdates;for(a=c&~a;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var L0=/[\n"\\]/g;function At(l){return l.replace(L0,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function ac(l,t,a,e,u,n,c,f){l.name="",c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.type=c:l.removeAttribute("type"),t!=null?c==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+Et(t)):l.value!==""+Et(t)&&(l.value=""+Et(t)):c!=="submit"&&c!=="reset"||l.removeAttribute("value"),t!=null?ec(l,c,Et(t)):a!=null?ec(l,c,Et(a)):e!=null&&l.removeAttribute("value"),u==null&&n!=null&&(l.defaultChecked=!!n),u!=null&&(l.checked=u&&typeof u!="function"&&typeof u!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?l.name=""+Et(f):l.removeAttribute("name")}function Ri(l,t,a,e,u,n,c,f){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(l.type=n),t!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||t!=null)){tc(l);return}a=a!=null?""+Et(a):"",t=t!=null?""+Et(t):a,f||t===l.value||(l.value=t),l.defaultValue=t}e=e??u,e=typeof e!="function"&&typeof e!="symbol"&&!!e,l.checked=f?l.checked:!!e,l.defaultChecked=!!e,c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"&&(l.name=c),tc(l)}function ec(l,t,a){t==="number"&&xu(l.ownerDocument)===l||l.defaultValue===""+a||(l.defaultValue=""+a)}function le(l,t,a,e){if(l=l.options,t){t={};for(var u=0;u"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ic=!1;if(Qt)try{var Qe={};Object.defineProperty(Qe,"passive",{get:function(){ic=!0}}),window.addEventListener("test",Qe,Qe),window.removeEventListener("test",Qe,Qe)}catch{ic=!1}var ca=null,sc=null,Gu=null;function Gi(){if(Gu)return Gu;var l,t=sc,a=t.length,e,u="value"in ca?ca.value:ca.textContent,n=u.length;for(l=0;l=Le),Ki=" ",Ji=!1;function wi(l,t){switch(l){case"keyup":return Sm.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Wi(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var ue=!1;function zm(l,t){switch(l){case"compositionend":return Wi(t);case"keypress":return t.which!==32?null:(Ji=!0,Ki);case"textInput":return l=t.data,l===Ki&&Ji?null:l;default:return null}}function Tm(l,t){if(ue)return l==="compositionend"||!vc&&wi(l,t)?(l=Gi(),Gu=sc=ca=null,ue=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-l};l=e}l:{for(;a;){if(a.nextSibling){a=a.nextSibling;break l}a=a.parentNode}a=void 0}a=as(a)}}function us(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?us(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function ns(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=xu(l.document);t instanceof l.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)l=t.contentWindow;else break;t=xu(l.document)}return t}function gc(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var Nm=Qt&&"documentMode"in document&&11>=document.documentMode,ne=null,Sc=null,We=null,bc=!1;function cs(l,t,a){var e=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;bc||ne==null||ne!==xu(e)||(e=ne,"selectionStart"in e&&gc(e)?e={start:e.selectionStart,end:e.selectionEnd}:(e=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}),We&&we(We,e)||(We=e,e=Hn(Sc,"onSelect"),0>=c,u-=c,qt=1<<32-vt(t)+u|a<w?(I=R,R=null):I=R.sibling;var el=v(o,R,m[w],b);if(el===null){R===null&&(R=I);break}l&&R&&el.alternate===null&&t(o,R),s=n(el,s,w),al===null?B=el:al.sibling=el,al=el,R=I}if(w===m.length)return a(o,R),ll&&Vt(o,w),B;if(R===null){for(;ww?(I=R,R=null):I=R.sibling;var Da=v(o,R,el.value,b);if(Da===null){R===null&&(R=I);break}l&&R&&Da.alternate===null&&t(o,R),s=n(Da,s,w),al===null?B=Da:al.sibling=Da,al=Da,R=I}if(el.done)return a(o,R),ll&&Vt(o,w),B;if(R===null){for(;!el.done;w++,el=m.next())el=z(o,el.value,b),el!==null&&(s=n(el,s,w),al===null?B=el:al.sibling=el,al=el);return ll&&Vt(o,w),B}for(R=e(R);!el.done;w++,el=m.next())el=r(R,o,w,el.value,b),el!==null&&(l&&el.alternate!==null&&R.delete(el.key===null?w:el.key),s=n(el,s,w),al===null?B=el:al.sibling=el,al=el);return l&&R.forEach(function($y){return t(o,$y)}),ll&&Vt(o,w),B}function yl(o,s,m,b){if(typeof m=="object"&&m!==null&&m.type===Nl&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case xl:l:{for(var B=m.key;s!==null;){if(s.key===B){if(B=m.type,B===Nl){if(s.tag===7){a(o,s.sibling),b=u(s,m.props.children),b.return=o,o=b;break l}}else if(s.elementType===B||typeof B=="object"&&B!==null&&B.$$typeof===Tl&&Xa(B)===s.type){a(o,s.sibling),b=u(s,m.props),lu(b,m),b.return=o,o=b;break l}a(o,s);break}else t(o,s);s=s.sibling}m.type===Nl?(b=qa(m.props.children,o.mode,b,m.key),b.return=o,o=b):(b=$u(m.type,m.key,m.props,null,o.mode,b),lu(b,m),b.return=o,o=b)}return c(o);case jl:l:{for(B=m.key;s!==null;){if(s.key===B)if(s.tag===4&&s.stateNode.containerInfo===m.containerInfo&&s.stateNode.implementation===m.implementation){a(o,s.sibling),b=u(s,m.children||[]),b.return=o,o=b;break l}else{a(o,s);break}else t(o,s);s=s.sibling}b=Oc(m,o.mode,b),b.return=o,o=b}return c(o);case Tl:return m=Xa(m),yl(o,s,m,b)}if(ot(m))return U(o,s,m,b);if(rl(m)){if(B=rl(m),typeof B!="function")throw Error(h(150));return m=B.call(m),Y(o,s,m,b)}if(typeof m.then=="function")return yl(o,s,an(m),b);if(m.$$typeof===x)return yl(o,s,Iu(o,m),b);en(o,m)}return typeof m=="string"&&m!==""||typeof m=="number"||typeof m=="bigint"?(m=""+m,s!==null&&s.tag===6?(a(o,s.sibling),b=u(s,m),b.return=o,o=b):(a(o,s),b=pc(m,o.mode,b),b.return=o,o=b),c(o)):a(o,s)}return function(o,s,m,b){try{Pe=0;var B=yl(o,s,m,b);return re=null,B}catch(R){if(R===he||R===ln)throw R;var al=rt(29,R,null,o.mode);return al.lanes=b,al.return=o,al}finally{}}}var Za=Ns(!0),Us=Ns(!1),oa=!1;function Yc(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Gc(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ma(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function ya(l,t,a){var e=l.updateQueue;if(e===null)return null;if(e=e.shared,(ul&2)!==0){var u=e.pending;return u===null?t.next=t:(t.next=u.next,u.next=t),e.pending=t,t=Wu(l),ys(l,null,a),t}return wu(l,e,t,a),Wu(l)}function tu(l,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,Ti(l,a)}}function Xc(l,t){var a=l.updateQueue,e=l.alternate;if(e!==null&&(e=e.updateQueue,a===e)){var u=null,n=null;if(a=a.firstBaseUpdate,a!==null){do{var c={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};n===null?u=n=c:n=n.next=c,a=a.next}while(a!==null);n===null?u=n=t:n=n.next=t}else u=n=t;a={baseState:e.baseState,firstBaseUpdate:u,lastBaseUpdate:n,shared:e.shared,callbacks:e.callbacks},l.updateQueue=a;return}l=a.lastBaseUpdate,l===null?a.firstBaseUpdate=t:l.next=t,a.lastBaseUpdate=t}var Qc=!1;function au(){if(Qc){var l=ve;if(l!==null)throw l}}function eu(l,t,a,e){Qc=!1;var u=l.updateQueue;oa=!1;var n=u.firstBaseUpdate,c=u.lastBaseUpdate,f=u.shared.pending;if(f!==null){u.shared.pending=null;var i=f,y=i.next;i.next=null,c===null?n=y:c.next=y,c=i;var S=l.alternate;S!==null&&(S=S.updateQueue,f=S.lastBaseUpdate,f!==c&&(f===null?S.firstBaseUpdate=y:f.next=y,S.lastBaseUpdate=i))}if(n!==null){var z=u.baseState;c=0,S=y=i=null,f=n;do{var v=f.lane&-536870913,r=v!==f.lane;if(r?(k&v)===v:(e&v)===v){v!==0&&v===ye&&(Qc=!0),S!==null&&(S=S.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});l:{var U=l,Y=f;v=t;var yl=a;switch(Y.tag){case 1:if(U=Y.payload,typeof U=="function"){z=U.call(yl,z,v);break l}z=U;break l;case 3:U.flags=U.flags&-65537|128;case 0:if(U=Y.payload,v=typeof U=="function"?U.call(yl,z,v):U,v==null)break l;z=q({},z,v);break l;case 2:oa=!0}}v=f.callback,v!==null&&(l.flags|=64,r&&(l.flags|=8192),r=u.callbacks,r===null?u.callbacks=[v]:r.push(v))}else r={lane:v,tag:f.tag,payload:f.payload,callback:f.callback,next:null},S===null?(y=S=r,i=z):S=S.next=r,c|=v;if(f=f.next,f===null){if(f=u.shared.pending,f===null)break;r=f,f=r.next,r.next=null,u.lastBaseUpdate=r,u.shared.pending=null}}while(!0);S===null&&(i=z),u.baseState=i,u.firstBaseUpdate=y,u.lastBaseUpdate=S,n===null&&(u.shared.lanes=0),Sa|=c,l.lanes=c,l.memoizedState=z}}function Cs(l,t){if(typeof l!="function")throw Error(h(191,l));l.call(t)}function Rs(l,t){var a=l.callbacks;if(a!==null)for(l.callbacks=null,l=0;ln?n:8;var c=g.T,f={};g.T=f,cf(l,!1,t,a);try{var i=u(),y=g.S;if(y!==null&&y(f,i),i!==null&&typeof i=="object"&&typeof i.then=="function"){var S=Ym(i,e);cu(l,t,S,Tt(l))}else cu(l,t,e,Tt(l))}catch(z){cu(l,t,{then:function(){},status:"rejected",reason:z},Tt())}finally{_.p=n,c!==null&&f.types!==null&&(c.types=f.types),g.T=c}}function Lm(){}function uf(l,t,a,e){if(l.tag!==5)throw Error(h(476));var u=dd(l).queue;sd(l,u,t,G,a===null?Lm:function(){return od(l),a(e)})}function dd(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:G,baseState:G,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:wt,lastRenderedState:G},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:wt,lastRenderedState:a},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function od(l){var t=dd(l);t.next===null&&(t=l.alternate.memoizedState),cu(l,t.next.queue,{},Tt())}function nf(){return Kl(Au)}function md(){return Dl().memoizedState}function yd(){return Dl().memoizedState}function Km(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var a=Tt();l=ma(a);var e=ya(t,l,a);e!==null&&(dt(e,t,a),tu(e,t,a)),t={cache:jc()},l.payload=t;return}t=t.return}}function Jm(l,t,a){var e=Tt();a={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},vn(l)?hd(t,a):(a=Ac(l,t,a,e),a!==null&&(dt(a,l,e),rd(a,t,e)))}function vd(l,t,a){var e=Tt();cu(l,t,a,e)}function cu(l,t,a,e){var u={lane:e,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(vn(l))hd(t,u);else{var n=l.alternate;if(l.lanes===0&&(n===null||n.lanes===0)&&(n=t.lastRenderedReducer,n!==null))try{var c=t.lastRenderedState,f=n(c,a);if(u.hasEagerState=!0,u.eagerState=f,ht(f,c))return wu(l,t,u,0),hl===null&&Ju(),!1}catch{}finally{}if(a=Ac(l,t,u,e),a!==null)return dt(a,l,e),rd(a,t,e),!0}return!1}function cf(l,t,a,e){if(e={lane:2,revertLane:Gf(),gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},vn(l)){if(t)throw Error(h(479))}else t=Ac(l,a,e,2),t!==null&&dt(t,l,2)}function vn(l){var t=l.alternate;return l===J||t!==null&&t===J}function hd(l,t){Se=cn=!0;var a=l.pending;a===null?t.next=t:(t.next=a.next,a.next=t),l.pending=t}function rd(l,t,a){if((a&4194048)!==0){var e=t.lanes;e&=l.pendingLanes,a|=e,t.lanes=a,Ti(l,a)}}var fu={readContext:Kl,use:dn,useCallback:_l,useContext:_l,useEffect:_l,useImperativeHandle:_l,useLayoutEffect:_l,useInsertionEffect:_l,useMemo:_l,useReducer:_l,useRef:_l,useState:_l,useDebugValue:_l,useDeferredValue:_l,useTransition:_l,useSyncExternalStore:_l,useId:_l,useHostTransitionStatus:_l,useFormState:_l,useActionState:_l,useOptimistic:_l,useMemoCache:_l,useCacheRefresh:_l};fu.useEffectEvent=_l;var gd={readContext:Kl,use:dn,useCallback:function(l,t){return tt().memoizedState=[l,t===void 0?null:t],l},useContext:Kl,useEffect:ld,useImperativeHandle:function(l,t,a){a=a!=null?a.concat([l]):null,mn(4194308,4,ud.bind(null,t,l),a)},useLayoutEffect:function(l,t){return mn(4194308,4,l,t)},useInsertionEffect:function(l,t){mn(4,2,l,t)},useMemo:function(l,t){var a=tt();t=t===void 0?null:t;var e=l();if(Va){ua(!0);try{l()}finally{ua(!1)}}return a.memoizedState=[e,t],e},useReducer:function(l,t,a){var e=tt();if(a!==void 0){var u=a(t);if(Va){ua(!0);try{a(t)}finally{ua(!1)}}}else u=t;return e.memoizedState=e.baseState=u,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:u},e.queue=l,l=l.dispatch=Jm.bind(null,J,l),[e.memoizedState,l]},useRef:function(l){var t=tt();return l={current:l},t.memoizedState=l},useState:function(l){l=Pc(l);var t=l.queue,a=vd.bind(null,J,t);return t.dispatch=a,[l.memoizedState,a]},useDebugValue:af,useDeferredValue:function(l,t){var a=tt();return ef(a,l,t)},useTransition:function(){var l=Pc(!1);return l=sd.bind(null,J,l.queue,!0,!1),tt().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,a){var e=J,u=tt();if(ll){if(a===void 0)throw Error(h(407));a=a()}else{if(a=t(),hl===null)throw Error(h(349));(k&127)!==0||Ys(e,t,a)}u.memoizedState=a;var n={value:a,getSnapshot:t};return u.queue=n,ld(Xs.bind(null,e,n,l),[l]),e.flags|=2048,ze(9,{destroy:void 0},Gs.bind(null,e,n,a,t),null),a},useId:function(){var l=tt(),t=hl.identifierPrefix;if(ll){var a=Bt,e=qt;a=(e&~(1<<32-vt(e)-1)).toString(32)+a,t="_"+t+"R_"+a,a=fn++,0<\/script>",n=n.removeChild(n.firstChild);break;case"select":n=typeof e.is=="string"?c.createElement("select",{is:e.is}):c.createElement("select"),e.multiple?n.multiple=!0:e.size&&(n.size=e.size);break;default:n=typeof e.is=="string"?c.createElement(u,{is:e.is}):c.createElement(u)}}n[Vl]=t,n[ut]=e;l:for(c=t.child;c!==null;){if(c.tag===5||c.tag===6)n.appendChild(c.stateNode);else if(c.tag!==4&&c.tag!==27&&c.child!==null){c.child.return=c,c=c.child;continue}if(c===t)break l;for(;c.sibling===null;){if(c.return===null||c.return===t)break l;c=c.return}c.sibling.return=c.return,c=c.sibling}t.stateNode=n;l:switch(wl(n,u,e),u){case"button":case"input":case"select":case"textarea":e=!!e.autoFocus;break l;case"img":e=!0;break l;default:e=!1}e&&$t(t)}}return bl(t),Tf(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,a),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==e&&$t(t);else{if(typeof e!="string"&&t.stateNode===null)throw Error(h(166));if(l=E.current,oe(t)){if(l=t.stateNode,a=t.memoizedProps,e=null,u=Ll,u!==null)switch(u.tag){case 27:case 5:e=u.memoizedProps}l[Vl]=t,l=!!(l.nodeValue===a||e!==null&&e.suppressHydrationWarning===!0||xo(l.nodeValue,a)),l||sa(t,!0)}else l=jn(l).createTextNode(e),l[Vl]=t,t.stateNode=l}return bl(t),null;case 31:if(a=t.memoizedState,l===null||l.memoizedState!==null){if(e=oe(t),a!==null){if(l===null){if(!e)throw Error(h(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Vl]=t}else Ba(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;bl(t),l=!1}else a=Uc(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=a),l=!0;if(!l)return t.flags&256?(St(t),t):(St(t),null);if((t.flags&128)!==0)throw Error(h(558))}return bl(t),null;case 13:if(e=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(u=oe(t),e!==null&&e.dehydrated!==null){if(l===null){if(!u)throw Error(h(318));if(u=t.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(h(317));u[Vl]=t}else Ba(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;bl(t),u=!1}else u=Uc(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=u),u=!0;if(!u)return t.flags&256?(St(t),t):(St(t),null)}return St(t),(t.flags&128)!==0?(t.lanes=a,t):(a=e!==null,l=l!==null&&l.memoizedState!==null,a&&(e=t.child,u=null,e.alternate!==null&&e.alternate.memoizedState!==null&&e.alternate.memoizedState.cachePool!==null&&(u=e.alternate.memoizedState.cachePool.pool),n=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==u&&(e.flags|=2048)),a!==l&&a&&(t.child.flags|=8192),bn(t,t.updateQueue),bl(t),null);case 4:return X(),l===null&&Vf(t.stateNode.containerInfo),bl(t),null;case 10:return Kt(t.type),bl(t),null;case 19:if(T(Ml),e=t.memoizedState,e===null)return bl(t),null;if(u=(t.flags&128)!==0,n=e.rendering,n===null)if(u)su(e,!1);else{if(pl!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(n=nn(l),n!==null){for(t.flags|=128,su(e,!1),l=n.updateQueue,t.updateQueue=l,bn(t,l),t.subtreeFlags=0,l=a,a=t.child;a!==null;)vs(a,l),a=a.sibling;return p(Ml,Ml.current&1|2),ll&&Vt(t,e.treeForkCount),t.child}l=l.sibling}e.tail!==null&&mt()>_n&&(t.flags|=128,u=!0,su(e,!1),t.lanes=4194304)}else{if(!u)if(l=nn(n),l!==null){if(t.flags|=128,u=!0,l=l.updateQueue,t.updateQueue=l,bn(t,l),su(e,!0),e.tail===null&&e.tailMode==="hidden"&&!n.alternate&&!ll)return bl(t),null}else 2*mt()-e.renderingStartTime>_n&&a!==536870912&&(t.flags|=128,u=!0,su(e,!1),t.lanes=4194304);e.isBackwards?(n.sibling=t.child,t.child=n):(l=e.last,l!==null?l.sibling=n:t.child=n,e.last=n)}return e.tail!==null?(l=e.tail,e.rendering=l,e.tail=l.sibling,e.renderingStartTime=mt(),l.sibling=null,a=Ml.current,p(Ml,u?a&1|2:a&1),ll&&Vt(t,e.treeForkCount),l):(bl(t),null);case 22:case 23:return St(t),Vc(),e=t.memoizedState!==null,l!==null?l.memoizedState!==null!==e&&(t.flags|=8192):e&&(t.flags|=8192),e?(a&536870912)!==0&&(t.flags&128)===0&&(bl(t),t.subtreeFlags&6&&(t.flags|=8192)):bl(t),a=t.updateQueue,a!==null&&bn(t,a.retryQueue),a=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(a=l.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==a&&(t.flags|=2048),l!==null&&T(Ga),null;case 24:return a=null,l!==null&&(a=l.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Kt(Ul),bl(t),null;case 25:return null;case 30:return null}throw Error(h(156,t.tag))}function km(l,t){switch(Dc(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return Kt(Ul),X(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return gl(t),null;case 31:if(t.memoizedState!==null){if(St(t),t.alternate===null)throw Error(h(340));Ba()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(St(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(h(340));Ba()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return T(Ml),null;case 4:return X(),null;case 10:return Kt(t.type),null;case 22:case 23:return St(t),Vc(),l!==null&&T(Ga),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return Kt(Ul),null;case 25:return null;default:return null}}function Qd(l,t){switch(Dc(t),t.tag){case 3:Kt(Ul),X();break;case 26:case 27:case 5:gl(t);break;case 4:X();break;case 31:t.memoizedState!==null&&St(t);break;case 13:St(t);break;case 19:T(Ml);break;case 10:Kt(t.type);break;case 22:case 23:St(t),Vc(),l!==null&&T(Ga);break;case 24:Kt(Ul)}}function du(l,t){try{var a=t.updateQueue,e=a!==null?a.lastEffect:null;if(e!==null){var u=e.next;a=u;do{if((a.tag&l)===l){e=void 0;var n=a.create,c=a.inst;e=n(),c.destroy=e}a=a.next}while(a!==u)}}catch(f){dl(t,t.return,f)}}function ra(l,t,a){try{var e=t.updateQueue,u=e!==null?e.lastEffect:null;if(u!==null){var n=u.next;e=n;do{if((e.tag&l)===l){var c=e.inst,f=c.destroy;if(f!==void 0){c.destroy=void 0,u=t;var i=a,y=f;try{y()}catch(S){dl(u,i,S)}}}e=e.next}while(e!==n)}}catch(S){dl(t,t.return,S)}}function Zd(l){var t=l.updateQueue;if(t!==null){var a=l.stateNode;try{Rs(t,a)}catch(e){dl(l,l.return,e)}}}function Vd(l,t,a){a.props=La(l.type,l.memoizedProps),a.state=l.memoizedState;try{a.componentWillUnmount()}catch(e){dl(l,t,e)}}function ou(l,t){try{var a=l.ref;if(a!==null){switch(l.tag){case 26:case 27:case 5:var e=l.stateNode;break;case 30:e=l.stateNode;break;default:e=l.stateNode}typeof a=="function"?l.refCleanup=a(e):a.current=e}}catch(u){dl(l,t,u)}}function xt(l,t){var a=l.ref,e=l.refCleanup;if(a!==null)if(typeof e=="function")try{e()}catch(u){dl(l,t,u)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(u){dl(l,t,u)}else a.current=null}function Ld(l){var t=l.type,a=l.memoizedProps,e=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&e.focus();break l;case"img":a.src?e.src=a.src:a.srcSet&&(e.srcset=a.srcSet)}}catch(u){dl(l,l.return,u)}}function Ef(l,t,a){try{var e=l.stateNode;by(e,l.type,a,t),e[ut]=t}catch(u){dl(l,l.return,u)}}function Kd(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&Aa(l.type)||l.tag===4}function Af(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Kd(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&Aa(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function _f(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(l,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(l),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=Xt));else if(e!==4&&(e===27&&Aa(l.type)&&(a=l.stateNode,t=null),l=l.child,l!==null))for(_f(l,t,a),l=l.sibling;l!==null;)_f(l,t,a),l=l.sibling}function zn(l,t,a){var e=l.tag;if(e===5||e===6)l=l.stateNode,t?a.insertBefore(l,t):a.appendChild(l);else if(e!==4&&(e===27&&Aa(l.type)&&(a=l.stateNode),l=l.child,l!==null))for(zn(l,t,a),l=l.sibling;l!==null;)zn(l,t,a),l=l.sibling}function Jd(l){var t=l.stateNode,a=l.memoizedProps;try{for(var e=l.type,u=t.attributes;u.length;)t.removeAttributeNode(u[0]);wl(t,e,a),t[Vl]=l,t[ut]=a}catch(n){dl(l,l.return,n)}}var Ft=!1,Hl=!1,pf=!1,wd=typeof WeakSet=="function"?WeakSet:Set,Ql=null;function Im(l,t){if(l=l.containerInfo,Jf=Qn,l=ns(l),gc(l)){if("selectionStart"in l)var a={start:l.selectionStart,end:l.selectionEnd};else l:{a=(a=l.ownerDocument)&&a.defaultView||window;var e=a.getSelection&&a.getSelection();if(e&&e.rangeCount!==0){a=e.anchorNode;var u=e.anchorOffset,n=e.focusNode;e=e.focusOffset;try{a.nodeType,n.nodeType}catch{a=null;break l}var c=0,f=-1,i=-1,y=0,S=0,z=l,v=null;t:for(;;){for(var r;z!==a||u!==0&&z.nodeType!==3||(f=c+u),z!==n||e!==0&&z.nodeType!==3||(i=c+e),z.nodeType===3&&(c+=z.nodeValue.length),(r=z.firstChild)!==null;)v=z,z=r;for(;;){if(z===l)break t;if(v===a&&++y===u&&(f=c),v===n&&++S===e&&(i=c),(r=z.nextSibling)!==null)break;z=v,v=z.parentNode}z=r}a=f===-1||i===-1?null:{start:f,end:i}}else a=null}a=a||{start:0,end:0}}else a=null;for(wf={focusedElem:l,selectionRange:a},Qn=!1,Ql=t;Ql!==null;)if(t=Ql,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,Ql=l;else for(;Ql!==null;){switch(t=Ql,n=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(a=0;a title"))),wl(n,e,a),n[Vl]=l,Xl(n),e=n;break l;case"link":var c=l0("link","href",u).get(e+(a.href||""));if(c){for(var f=0;fyl&&(c=yl,yl=Y,Y=c);var o=es(f,Y),s=es(f,yl);if(o&&s&&(r.rangeCount!==1||r.anchorNode!==o.node||r.anchorOffset!==o.offset||r.focusNode!==s.node||r.focusOffset!==s.offset)){var m=z.createRange();m.setStart(o.node,o.offset),r.removeAllRanges(),Y>yl?(r.addRange(m),r.extend(s.node,s.offset)):(m.setEnd(s.node,s.offset),r.addRange(m))}}}}for(z=[],r=f;r=r.parentNode;)r.nodeType===1&&z.push({element:r,left:r.scrollLeft,top:r.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;fa?32:a,g.T=null,a=Rf,Rf=null;var n=za,c=ta;if(Bl=0,pe=za=null,ta=0,(ul&6)!==0)throw Error(h(331));var f=ul;if(ul|=4,uo(n.current),to(n,n.current,c,a),ul=f,gu(0,!1),yt&&typeof yt.onPostCommitFiberRoot=="function")try{yt.onPostCommitFiberRoot(qe,n)}catch{}return!0}finally{_.p=u,g.T=e,Ao(l,t)}}function po(l,t,a){t=pt(a,t),t=of(l.stateNode,t,2),l=ya(l,t,2),l!==null&&(xe(l,2),Yt(l))}function dl(l,t,a){if(l.tag===3)po(l,l,a);else for(;t!==null;){if(t.tag===3){po(t,l,a);break}else if(t.tag===1){var e=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof e.componentDidCatch=="function"&&(ba===null||!ba.has(e))){l=pt(a,l),a=pd(2),e=ya(t,a,2),e!==null&&(Od(a,e,t,l),xe(e,2),Yt(e));break}}t=t.return}}function Bf(l,t,a){var e=l.pingCache;if(e===null){e=l.pingCache=new ty;var u=new Set;e.set(t,u)}else u=e.get(t),u===void 0&&(u=new Set,e.set(t,u));u.has(a)||(Df=!0,u.add(a),l=cy.bind(null,l,t,a),t.then(l,l))}function cy(l,t,a){var e=l.pingCache;e!==null&&e.delete(t),l.pingedLanes|=l.suspendedLanes&a,l.warmLanes&=~a,hl===l&&(k&a)===a&&(pl===4||pl===3&&(k&62914560)===k&&300>mt()-An?(ul&2)===0&&Oe(l,0):Nf|=a,_e===k&&(_e=0)),Yt(l)}function Oo(l,t){t===0&&(t=bi()),l=ja(l,t),l!==null&&(xe(l,t),Yt(l))}function fy(l){var t=l.memoizedState,a=0;t!==null&&(a=t.retryLane),Oo(l,a)}function iy(l,t){var a=0;switch(l.tag){case 31:case 13:var e=l.stateNode,u=l.memoizedState;u!==null&&(a=u.retryLane);break;case 19:e=l.stateNode;break;case 22:e=l.stateNode._retryCache;break;default:throw Error(h(314))}e!==null&&e.delete(t),Oo(l,a)}function sy(l,t){return Wn(l,t)}var Un=null,De=null,xf=!1,Cn=!1,Yf=!1,Ea=0;function Yt(l){l!==De&&l.next===null&&(De===null?Un=De=l:De=De.next=l),Cn=!0,xf||(xf=!0,oy())}function gu(l,t){if(!Yf&&Cn){Yf=!0;do for(var a=!1,e=Un;e!==null;){if(l!==0){var u=e.pendingLanes;if(u===0)var n=0;else{var c=e.suspendedLanes,f=e.pingedLanes;n=(1<<31-vt(42|l)+1)-1,n&=u&~(c&~f),n=n&201326741?n&201326741|1:n?n|2:0}n!==0&&(a=!0,Uo(e,n))}else n=k,n=ju(e,e===hl?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),(n&3)===0||Be(e,n)||(a=!0,Uo(e,n));e=e.next}while(a);Yf=!1}}function dy(){Mo()}function Mo(){Cn=xf=!1;var l=0;Ea!==0&&Ty()&&(l=Ea);for(var t=mt(),a=null,e=Un;e!==null;){var u=e.next,n=Do(e,t);n===0?(e.next=null,a===null?Un=u:a.next=u,u===null&&(De=a)):(a=e,(l!==0||(n&3)!==0)&&(Cn=!0)),e=u}Bl!==0&&Bl!==5||gu(l),Ea!==0&&(Ea=0)}function Do(l,t){for(var a=l.suspendedLanes,e=l.pingedLanes,u=l.expirationTimes,n=l.pendingLanes&-62914561;0f)break;var S=i.transferSize,z=i.initiatorType;S&&Yo(z)&&(i=i.responseEnd,c+=S*(i"u"?null:document;function Fo(l,t,a){var e=Ne;if(e&&typeof t=="string"&&t){var u=At(t);u='link[rel="'+l+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),$o.has(u)||($o.add(u),l={rel:l,crossOrigin:a,href:t},e.querySelector(u)===null&&(t=e.createElement("link"),wl(t,"link",l),Xl(t),e.head.appendChild(t)))}}function Uy(l){aa.D(l),Fo("dns-prefetch",l,null)}function Cy(l,t){aa.C(l,t),Fo("preconnect",l,t)}function Ry(l,t,a){aa.L(l,t,a);var e=Ne;if(e&&l&&t){var u='link[rel="preload"][as="'+At(t)+'"]';t==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+At(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+At(a.imageSizes)+'"]')):u+='[href="'+At(l)+'"]';var n=u;switch(t){case"style":n=Ue(l);break;case"script":n=Ce(l)}Ct.has(n)||(l=q({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:l,as:t},a),Ct.set(n,l),e.querySelector(u)!==null||t==="style"&&e.querySelector(Tu(n))||t==="script"&&e.querySelector(Eu(n))||(t=e.createElement("link"),wl(t,"link",l),Xl(t),e.head.appendChild(t)))}}function Hy(l,t){aa.m(l,t);var a=Ne;if(a&&l){var e=t&&typeof t.as=="string"?t.as:"script",u='link[rel="modulepreload"][as="'+At(e)+'"][href="'+At(l)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Ce(l)}if(!Ct.has(n)&&(l=q({rel:"modulepreload",href:l},t),Ct.set(n,l),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Eu(n)))return}e=a.createElement("link"),wl(e,"link",l),Xl(e),a.head.appendChild(e)}}}function jy(l,t,a){aa.S(l,t,a);var e=Ne;if(e&&l){var u=Ia(e).hoistableStyles,n=Ue(l);t=t||"default";var c=u.get(n);if(!c){var f={loading:0,preload:null};if(c=e.querySelector(Tu(n)))f.loading=5;else{l=q({rel:"stylesheet",href:l,"data-precedence":t},a),(a=Ct.get(n))&&li(l,a);var i=c=e.createElement("link");Xl(i),wl(i,"link",l),i._p=new Promise(function(y,S){i.onload=y,i.onerror=S}),i.addEventListener("load",function(){f.loading|=1}),i.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Bn(c,t,e)}c={type:"stylesheet",instance:c,count:1,state:f},u.set(n,c)}}}function qy(l,t){aa.X(l,t);var a=Ne;if(a&&l){var e=Ia(a).hoistableScripts,u=Ce(l),n=e.get(u);n||(n=a.querySelector(Eu(u)),n||(l=q({src:l,async:!0},t),(t=Ct.get(u))&&ti(l,t),n=a.createElement("script"),Xl(n),wl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function By(l,t){aa.M(l,t);var a=Ne;if(a&&l){var e=Ia(a).hoistableScripts,u=Ce(l),n=e.get(u);n||(n=a.querySelector(Eu(u)),n||(l=q({src:l,async:!0,type:"module"},t),(t=Ct.get(u))&&ti(l,t),n=a.createElement("script"),Xl(n),wl(n,"link",l),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function ko(l,t,a,e){var u=(u=E.current)?qn(u):null;if(!u)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Ue(a.href),a=Ia(u).hoistableStyles,e=a.get(t),e||(e={type:"style",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){l=Ue(a.href);var n=Ia(u).hoistableStyles,c=n.get(l);if(c||(u=u.ownerDocument||u,c={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(l,c),(n=u.querySelector(Tu(l)))&&!n._p&&(c.instance=n,c.state.loading=5),Ct.has(l)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},Ct.set(l,a),n||xy(u,l,a,c.state))),t&&e===null)throw Error(h(528,""));return c}if(t&&e!==null)throw Error(h(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Ce(a),a=Ia(u).hoistableScripts,e=a.get(t),e||(e={type:"script",instance:null,count:0,state:null},a.set(t,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function Ue(l){return'href="'+At(l)+'"'}function Tu(l){return'link[rel="stylesheet"]['+l+"]"}function Io(l){return q({},l,{"data-precedence":l.precedence,precedence:null})}function xy(l,t,a,e){l.querySelector('link[rel="preload"][as="style"]['+t+"]")?e.loading=1:(t=l.createElement("link"),e.preload=t,t.addEventListener("load",function(){return e.loading|=1}),t.addEventListener("error",function(){return e.loading|=2}),wl(t,"link",a),Xl(t),l.head.appendChild(t))}function Ce(l){return'[src="'+At(l)+'"]'}function Eu(l){return"script[async]"+l}function Po(l,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var e=l.querySelector('style[data-href~="'+At(a.href)+'"]');if(e)return t.instance=e,Xl(e),e;var u=q({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(l.ownerDocument||l).createElement("style"),Xl(e),wl(e,"style",u),Bn(e,a.precedence,l),t.instance=e;case"stylesheet":u=Ue(a.href);var n=l.querySelector(Tu(u));if(n)return t.state.loading|=4,t.instance=n,Xl(n),n;e=Io(a),(u=Ct.get(u))&&li(e,u),n=(l.ownerDocument||l).createElement("link"),Xl(n);var c=n;return c._p=new Promise(function(f,i){c.onload=f,c.onerror=i}),wl(n,"link",e),t.state.loading|=4,Bn(n,a.precedence,l),t.instance=n;case"script":return n=Ce(a.src),(u=l.querySelector(Eu(n)))?(t.instance=u,Xl(u),u):(e=a,(u=Ct.get(n))&&(e=q({},a),ti(e,u)),l=l.ownerDocument||l,u=l.createElement("script"),Xl(u),wl(u,"link",e),l.head.appendChild(u),t.instance=u);case"void":return null;default:throw Error(h(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(e=t.instance,t.state.loading|=4,Bn(e,a.precedence,l));return t.instance}function Bn(l,t,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,c=0;c title"):null)}function Yy(l,t,a){if(a===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function a0(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Gy(l,t,a,e){if(a.type==="stylesheet"&&(typeof e.media!="string"||matchMedia(e.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=Ue(e.href),n=t.querySelector(Tu(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Yn.bind(l),t.then(l,l)),a.state.loading|=4,a.instance=n,Xl(n);return}n=t.ownerDocument||t,e=Io(e),(u=Ct.get(u))&&li(e,u),n=n.createElement("link"),Xl(n);var c=n;c._p=new Promise(function(f,i){c.onload=f,c.onerror=i}),wl(n,"link",e),a.instance=n}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(l.count++,a=Yn.bind(l),t.addEventListener("load",a),t.addEventListener("error",a))}}var ai=0;function Xy(l,t){return l.stylesheets&&l.count===0&&Xn(l,l.stylesheets),0ai?50:800)+t);return l.unsuspend=a,function(){l.unsuspend=null,clearTimeout(e),clearTimeout(u)}}:null}function Yn(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Xn(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Gn=null;function Xn(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Gn=new Map,t.forEach(Qy,l),Gn=null,Yn.call(l))}function Qy(l,t){if(!(t.state.loading&4)){var a=Gn.get(l);if(a)var e=a.get(null);else{a=new Map,Gn.set(l,a);for(var u=l.querySelectorAll("link[data-precedence],style[data-precedence]"),n=0;n"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(M)}catch(fl){console.error(fl)}}return M(),oi.exports=uv(),oi.exports}var cv=nv();const fv=M0(cv),iv=100,sv=(()=>{if(typeof document>"u")return!1;try{const M=document.createElement("div");return M.contentEditable="plaintext-only",M.contentEditable==="plaintext-only"}catch{return!1}})(),O0=(M,fl)=>fl?M.length<=fl:!0,wa=Ol.forwardRef(({containerClassName:M,contentEditableClassName:fl,placeholderClassName:tl,charsCounterClassName:h,placeholder:L,disabled:K,updatedContent:P,maxLength:vl,autoFocus:j,tagName:A="div",multiLine:W=!0,sanitize:q,onChange:nl,onKeyUp:xl,onKeyDown:jl,onFocus:Nl,onBlur:Il,onPaste:Yl,onContentExternalUpdate:Wl,style:x,className:El,...at},$l)=>{const[V,Tl]=Ol.useState(""),N=Ol.useRef(null),Pl=Ol.useRef([]),et=Ol.useRef([]),rl=Ol.useRef(0);Ol.useImperativeHandle($l,()=>({focus:()=>{var E;return(E=N.current)==null?void 0:E.focus()},blur:()=>{var E;return(E=N.current)==null?void 0:E.blur()},insertAtCaret:E=>{N.current&&(N.current.focus(),_(E,rl.current))},clear:()=>{N.current&&(N.current.innerText="",Tl(""),lt("",0))},getCaretPosition:()=>{if(!N.current)return 0;const E=ql(N.current);return E>=0?E:rl.current}})),Ol.useEffect(()=>{P!=null&&(Tl(E=>E===P?E:P),N.current&&N.current.innerText!==P&&(N.current.innerText=P),Wl&&Wl(P))},[P,Wl]),Ol.useEffect(()=>{N.current&&j&&N.current.focus()},[j]),Ol.useEffect(()=>{Pl.current.push(V),Pl.current.length>iv&&Pl.current.shift()},[V]),Ol.useEffect(()=>{N.current&&!K&&sv&&(N.current.contentEditable="plaintext-only")},[K]);function lt(E,O){nl&&O0(E,vl)&&nl(E,{caretPosition:O??rl.current})}function ql(E){const O=window.getSelection();if(!O||O.rangeCount===0)return-1;const H=O.getRangeAt(0);if(!E.contains(H.endContainer))return-1;const X=document.createRange();return X.selectNodeContents(E),X.setEnd(H.endContainer,H.endOffset),X.toString().length}function ot(E,O){const H=window.getSelection();if(!H)return;const X=document.createTreeWalker(E,NodeFilter.SHOW_TEXT);let Zl=O,gl=null;for(;gl=X.nextNode();){const Al=gl.length;if(Zl<=Al){const Gl=document.createRange();Gl.setStart(gl,Zl),Gl.collapse(!0),H.removeAllRanges(),H.addRange(Gl);return}Zl-=Al}g(E)}function g(E){const O=document.createRange(),H=window.getSelection();H&&(O.selectNodeContents(E),O.collapse(!1),H.removeAllRanges(),H.addRange(O))}function _(E,O){if(!N.current)return;let H;if(O!==void 0)H=O;else{const gl=ql(N.current);H=gl>=0?gl:rl.current}ot(N.current,H);const X=window.getSelection();if(X&&X.rangeCount>0){const gl=X.getRangeAt(0);gl.deleteContents();const Al=document.createTextNode(E);gl.insertNode(Al),gl.setStartAfter(Al),gl.collapse(!0),X.removeAllRanges(),X.addRange(gl)}Tl(N.current.innerText),N.current.scrollTop=N.current.scrollHeight;const Zl=H+E.length;rl.current=Zl,lt(N.current.innerText,Zl)}function G(E){if(E.ownerDocument.activeElement!==E)return!1;const O=E.ownerDocument.defaultView;if(!O)return!1;const H=O.getSelection();if(!H||H.rangeCount===0)return!1;const X=H.getRangeAt(0);if(X.toString().length>0)return!1;const Zl=X.getBoundingClientRect(),gl=document.createRange();gl.selectNodeContents(E);let Al=gl.endContainer,Gl=0;for(;Al.hasChildNodes()&&!(Al instanceof Text);)Al.lastChild&&(Al=Al.lastChild,Gl=Al instanceof Text?Al.length:0);gl.setEnd(Al,Gl),gl.setStart(Al,Gl);const Fl=gl.getBoundingClientRect();return Zl.bottom===Fl.bottom}function cl(){var H,X;const E=window.getSelection(),O=(((H=N.current)==null?void 0:H.innerText.match(/\n(\n|$)/g))||[]).length;return E?E.toString().length+O===((X=N.current)==null?void 0:X.innerText.length):!1}function il(E){var gl,Al;E.preventDefault(),Yl&&Yl(E);const O=E.clipboardData.getData("text/plain"),H=W?O:O.replace(/\n/g," "),X=window.getSelection(),Zl=((gl=N.current)==null?void 0:gl.innerText)||"";if(X&&X.rangeCount){const Gl=X.getRangeAt(0),Fl=Gl.toString(),He=vl?vl-(Zl.length-Fl.length):H.length;let ea=H.slice(0,He);if(q&&(ea=q(ea)),ea.length>0){Gl.deleteContents();const Nu=document.createTextNode(ea);Gl.insertNode(Nu),Gl.setStartAfter(Nu),X.removeAllRanges(),X.addRange(Gl);const je=((Al=N.current)==null?void 0:Al.innerText)??"";if(Tl(je),N.current){const Wa=ql(N.current);Wa>=0&&(rl.current=Wa)}lt(je)}}else{const Gl=vl?vl-Zl.length:H.length;let Fl=H.slice(0,Gl);q&&(Fl=q(Fl)),Fl.length>0&&_(Fl)}}function d(E){if(!N.current)return;const O=N.current;switch(E.key){case"ArrowUp":ql(O)<=0&&(O.scrollTop=0);break;case"Enter":case"ArrowDown":G(O)&&(O.scrollTop=O.scrollHeight);break}}function T(E){if(jl&&jl(E),!N.current)return;const O=E.ctrlKey||E.metaKey;if(O&&E.key==="z"&&!E.shiftKey){if(E.preventDefault(),Pl.current.length>1){et.current.push(Pl.current.pop());const H=Pl.current[Pl.current.length-1];Tl(H),N.current&&(N.current.innerText=H,g(N.current)),lt(H)}return}if(O&&E.key==="y"||O&&E.shiftKey&&(E.key==="z"||E.key==="Z")){if(E.preventDefault(),et.current.length>0){const H=et.current.pop();Pl.current.push(H),Tl(H),N.current&&(N.current.innerText=H,g(N.current)),lt(H)}return}if(!W&&E.key==="Enter"){E.preventDefault();return}(["Delete","Backspace"].includes(E.key)&&cl()||E.key==="Backspace"&&V.length===1||E.key==="Delete"&&ql(N.current)===0&&V.length===1)&&(E.preventDefault(),N.current.innerText="",Tl(""),lt("",0))}const p=A,C=[fl,El].filter(Boolean).join(" ")||void 0,Q={padding:"0.85rem",overflow:"auto",height:"auto",textAlign:"initial",wordBreak:"break-word",unicodeBidi:"plaintext",flex:1,minWidth:0,...x};return D.jsxs("div",{className:M,style:{display:"flex",alignItems:"center",position:"relative"},children:[D.jsx(p,{dir:"auto",role:"textbox","aria-label":L??"","aria-multiline":W,"aria-disabled":K,...at,ref:N,className:C,style:Q,contentEditable:!K,onInput:E=>{const O=E.currentTarget.innerText;if(K||!O0(O,vl)){N.current&&(N.current.innerText=V,g(N.current));return}const H=q?q(O):O;if(H!==O&&N.current&&(N.current.innerText=H,g(N.current)),Tl(H),N.current)if(H!==O)rl.current=H.length;else{const X=ql(N.current);X>=0&&(rl.current=X)}lt(H)},onPaste:E=>{K||il(E)},onFocus:E=>{Nl&&Nl(E)},onBlur:E=>{if(N.current){const O=ql(N.current);O>=0&&(rl.current=O)}Il&&Il(E)},onClick:()=>{if(N.current){const E=ql(N.current);E>=0&&(rl.current=E)}},onKeyUp:E=>{if(!K){if(N.current){const O=ql(N.current);O>=0&&(rl.current=O)}xl&&xl(E),d(E)}},onKeyDown:E=>{K||T(E)}}),!V&&D.jsx("span",{dir:"auto",className:tl,style:{position:"absolute",pointerEvents:"none",textAlign:"initial"},children:L??""}),!!vl&&D.jsx("span",{dir:"auto",className:h,style:{marginLeft:"1rem"},children:`${V.length??0}/${vl}`})]})});wa.displayName="ContentEditable";const dv=["👋","🔥","💡","🚀","✨","🎉","❤️","👍"],ov=()=>{const[M,fl]=Ol.useState(void 0),[tl,h]=Ol.useState(""),[L,K]=Ol.useState(["Welcome! This demo showcases every feature of react-basic-contenteditable.","Try typing, pasting, using undo/redo, and the controls below."]),P=Ol.useRef(null);Ol.useEffect(()=>{fl(void 0)},[M]);const vl=()=>{tl.trim()&&(K(x=>[...x,tl]),h(""),fl(""))},[j,A]=Ol.useState(""),[W,q]=Ol.useState(!0),[nl,xl]=Ol.useState(""),[jl,Nl]=Ol.useState(""),[Il,Yl]=Ol.useState([]),Wl=(x,El)=>{Yl(at=>[`${x}`,...at].slice(0,8))};return D.jsxs("div",{className:"demo-root",children:[D.jsxs("header",{className:"demo-header",children:[D.jsx("h1",{children:"react-basic-contenteditable"}),D.jsx("p",{className:"demo-subtitle",children:"Interactive feature showcase"})]}),D.jsxs("div",{className:"demo-grid",children:[D.jsxs("section",{className:"demo-card demo-card--wide",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Chat input"}),D.jsx("span",{className:"badge",children:"multiLine + maxLength + ref API"})]}),D.jsx("div",{className:"chat-messages",children:L.map((x,El)=>D.jsx("div",{className:"chat-bubble",children:x},El))}),D.jsx("div",{className:"chat-input-row",children:D.jsx(wa,{ref:P,placeholder:"Type a message...",containerClassName:"chat-input-container",contentEditableClassName:"chat-input",placeholderClassName:"chat-placeholder",charsCounterClassName:"chat-counter",updatedContent:M,maxLength:200,autoFocus:!0,onChange:x=>h(x),onKeyDown:x=>{x.key==="Enter"&&!x.shiftKey&&(x.preventDefault(),vl())},onPaste:()=>Wl("onPaste"),onFocus:()=>Wl("onFocus"),onBlur:()=>Wl("onBlur"),spellCheck:!1,"data-testid":"chat-editor"})}),D.jsxs("div",{className:"chat-toolbar",children:[D.jsx("div",{className:"emoji-row",children:dv.map(x=>D.jsx("button",{className:"btn btn--emoji",title:`Insert ${x}`,onClick:()=>{var El;return(El=P.current)==null?void 0:El.insertAtCaret(x)},children:x},x))}),D.jsxs("div",{className:"chat-actions",children:[D.jsx("button",{className:"btn btn--ghost",onClick:()=>{var x;return(x=P.current)==null?void 0:x.clear()},children:"Clear"}),D.jsx("button",{className:"btn btn--ghost",onClick:()=>{var x;return(x=P.current)==null?void 0:x.focus()},children:"Focus"}),D.jsx("button",{className:"btn btn--primary",onClick:vl,children:"Send"})]})]})]}),D.jsxs("section",{className:"demo-card",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Single-line input"}),D.jsx("span",{className:"badge",children:"multiLine=false"})]}),D.jsx(wa,{placeholder:"Editable title...",containerClassName:"single-container",contentEditableClassName:"single-input",placeholderClassName:"single-placeholder",multiLine:!1,onChange:x=>A(x)}),D.jsx("p",{className:"demo-hint",children:"Enter key is blocked. Pasted newlines become spaces."}),j&&D.jsxs("div",{className:"output-preview",children:[D.jsx("span",{className:"output-label",children:"Value:"})," ",j]})]}),D.jsxs("section",{className:"demo-card",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Custom tagName"}),D.jsx("span",{className:"badge",children:'tagName="blockquote"'})]}),D.jsx(wa,{tagName:"blockquote",placeholder:"Write a quote...",containerClassName:"quote-container",contentEditableClassName:"quote-input",placeholderClassName:"quote-placeholder",onChange:x=>Nl(x),style:{fontStyle:"italic",borderLeft:"3px solid #6366f1",padding:"0.75rem 1rem",margin:0,background:"#f0f0ff",borderRadius:"0 0.35rem 0.35rem 0"}}),jl&&D.jsxs("div",{className:"output-preview",children:[D.jsx("span",{className:"output-label",children:"Rendered as:"})," ","
"]})]}),D.jsxs("section",{className:"demo-card",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Disabled state"}),D.jsx("span",{className:"badge",children:"disabled prop"})]}),D.jsx(wa,{placeholder:"Cannot type here",containerClassName:"disabled-container",contentEditableClassName:`disabled-input ${W?"disabled-input--off":""}`,placeholderClassName:"disabled-placeholder",disabled:W}),D.jsx("button",{className:"btn btn--outline toggle-btn",onClick:()=>q(x=>!x),children:W?"Enable editing":"Disable editing"})]}),D.jsxs("section",{className:"demo-card",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Sanitize callback"}),D.jsx("span",{className:"badge",children:"sanitize prop"})]}),D.jsx(wa,{placeholder:"Try typing numbers...",containerClassName:"sanitize-container",contentEditableClassName:"sanitize-input",placeholderClassName:"sanitize-placeholder",sanitize:x=>x.replace(/[0-9]/g,""),onChange:x=>xl(x)}),D.jsxs("p",{className:"demo-hint",children:["Numbers are stripped in real time via"," ",D.jsxs("code",{children:["sanitize=","{(t) => t.replace(/[0-9]/g, '')}"]})]}),nl&&D.jsxs("div",{className:"output-preview",children:[D.jsx("span",{className:"output-label",children:"Output:"})," ",nl]})]}),D.jsxs("section",{className:"demo-card",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Inline style override"}),D.jsx("span",{className:"badge",children:"style prop"})]}),D.jsx(wa,{placeholder:"Styled via props...",containerClassName:"styled-container",placeholderClassName:"styled-placeholder",style:{background:"linear-gradient(135deg, #667eea 0%, #764ba2 100%)",color:"#fff",borderRadius:"1rem",padding:"1rem 1.25rem",fontSize:"1.05rem",minHeight:"3rem"}}),D.jsxs("p",{className:"demo-hint",children:["Internal defaults are merged with your ",D.jsx("code",{children:"style"})," object. Your values take precedence."]})]}),D.jsxs("section",{className:"demo-card",children:[D.jsxs("div",{className:"card-header",children:[D.jsx("h2",{children:"Event log"}),D.jsx("span",{className:"badge",children:"onFocus / onBlur / onPaste"})]}),D.jsxs("div",{className:"event-log",children:[Il.length===0&&D.jsx("span",{className:"event-log__empty",children:"Interact with the chat input above..."}),Il.map((x,El)=>D.jsx("div",{className:"event-log__entry",children:x},El))]})]})]}),D.jsx("footer",{className:"demo-footer",children:D.jsxs("span",{children:["Undo ",D.jsx("kbd",{children:"Ctrl/Cmd+Z"})," · Redo"," ",D.jsx("kbd",{children:"Ctrl/Cmd+Shift+Z"})]})})]})};fv.createRoot(document.getElementById("root")).render(D.jsx(Py.StrictMode,{children:D.jsx(ov,{})})); diff --git a/assets/index-CKjui8St.css b/assets/index-CKjui8St.css new file mode 100644 index 0000000..44e2d4f --- /dev/null +++ b/assets/index-CKjui8St.css @@ -0,0 +1 @@ +:root{--color-bg: #f8f9fb;--color-surface: #ffffff;--color-border: #e2e4e9;--color-text: #1a1a2e;--color-muted: #71717a;--color-primary: #6366f1;--color-primary-hover: #4f46e5;--radius: .5rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;color:var(--color-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);min-height:100vh}#root{width:100%}.demo-root{max-width:960px;margin:0 auto;padding:2rem 1.5rem 3rem}.demo-header{text-align:center;margin-bottom:2rem}.demo-header h1{font-size:1.75rem;font-weight:700;margin:0 0 .25rem;letter-spacing:-.02em}.demo-subtitle{color:var(--color-muted);font-size:.95rem;margin:0}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media(max-width:680px){.demo-grid{grid-template-columns:1fr}}.demo-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;box-shadow:var(--shadow-sm)}.demo-card--wide{grid-column:1 / -1}.card-header{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.card-header h2{font-size:1rem;font-weight:600;margin:0}.badge{font-size:.7rem;font-family:SF Mono,Fira Code,monospace;background:#eef2ff;color:var(--color-primary);padding:.15rem .5rem;border-radius:999px;white-space:nowrap}.demo-hint{color:var(--color-muted);font-size:.8rem;margin:0;line-height:1.4}.demo-hint code{background:#f4f4f5;padding:.1rem .3rem;border-radius:.2rem;font-size:.75rem}.output-preview{font-size:.8rem;font-family:SF Mono,Fira Code,monospace;background:#f9fafb;border:1px dashed var(--color-border);border-radius:var(--radius);padding:.5rem .75rem;word-break:break-word}.output-label{color:var(--color-muted)}.btn{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;font-size:.82rem;font-weight:500;padding:.45rem .9rem;border-radius:var(--radius);transition:background .15s,color .15s,box-shadow .15s;line-height:1.4}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-hover)}.btn--ghost{background:transparent;color:var(--color-muted)}.btn--ghost:hover{background:#f4f4f5;color:var(--color-text)}.btn--outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn--outline:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn--emoji{background:transparent;font-size:1.15rem;padding:.25rem .35rem;border-radius:.35rem;line-height:1}.btn--emoji:hover{background:#f4f4f5;transform:scale(1.15)}.toggle-btn{align-self:flex-start}.chat-messages{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto;padding-right:.25rem}.chat-bubble{align-self:flex-start;background:#f4f4f5;border:1px solid var(--color-border);padding:.55rem .85rem;border-radius:var(--radius);font-size:.88rem;line-height:1.4;white-space:pre-wrap;word-break:break-word;max-width:85%}.chat-input-row{position:relative}.chat-input-container{width:100%;position:relative}.chat-input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius);line-height:1.4;min-height:2.6rem;max-height:8rem;font-size:.88rem;transition:border-color .15s,box-shadow .15s}.chat-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11f}.chat-placeholder{color:var(--color-muted);font-size:.88rem;margin-left:.85rem}.chat-counter{font-size:.72rem;color:var(--color-muted);font-family:SF Mono,Fira Code,monospace;flex-shrink:0}.chat-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.emoji-row{display:flex;gap:.15rem}.chat-actions{display:flex;gap:.35rem}.single-container{width:100%;position:relative}.single-input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius);font-size:1.1rem;font-weight:600;line-height:1.4;min-height:2.4rem;transition:border-color .15s,box-shadow .15s}.single-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11f}.single-placeholder{color:var(--color-muted);font-size:1.1rem;font-weight:600;margin-left:.85rem}.quote-container{width:100%;position:relative}.quote-input{width:100%;min-height:2.4rem;line-height:1.5;font-size:.92rem}.quote-input:focus{outline:none;box-shadow:0 0 0 3px #6366f11a}.quote-placeholder{color:#8b8bc7;font-style:italic;margin-left:1rem}.disabled-container{width:100%;position:relative}.disabled-input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.88rem;min-height:2.4rem;line-height:1.4;transition:background .2s,opacity .2s}.disabled-input--off{background:#f9fafb;opacity:.6;cursor:not-allowed}.disabled-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11f}.disabled-placeholder{color:var(--color-muted);font-size:.88rem;margin-left:.85rem}.sanitize-container{width:100%;position:relative}.sanitize-input{width:100%;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.88rem;min-height:2.4rem;line-height:1.4;transition:border-color .15s,box-shadow .15s}.sanitize-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6366f11f}.sanitize-placeholder{color:var(--color-muted);font-size:.88rem;margin-left:.85rem}.styled-container{width:100%;position:relative}.styled-placeholder{color:#ffffffa6;margin-left:1.25rem}.event-log{display:flex;flex-direction:column;gap:.3rem;font-family:SF Mono,Fira Code,monospace;font-size:.78rem;min-height:5rem}.event-log__empty{color:var(--color-muted);font-style:italic}.event-log__entry{background:#f9fafb;padding:.3rem .6rem;border-radius:.25rem;color:var(--color-text);animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.demo-footer{text-align:center;margin-top:2rem;color:var(--color-muted);font-size:.82rem}kbd{background:#f4f4f5;border:1px solid var(--color-border);border-radius:.25rem;padding:.1rem .35rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem} diff --git a/index.html b/index.html index 1aa17ac..2570b45 100644 --- a/index.html +++ b/index.html @@ -4,9 +4,10 @@ react-basic-contenteditable + +
- diff --git a/lib/ContentEditable.tsx b/lib/ContentEditable.tsx deleted file mode 100644 index e6d9c5f..0000000 --- a/lib/ContentEditable.tsx +++ /dev/null @@ -1,534 +0,0 @@ -import React, { - useState, - useEffect, - useRef, - useImperativeHandle, - forwardRef, -} from "react" - -const MAX_UNDO_STACK_SIZE = 100 - -// Feature detection for contenteditable="plaintext-only" (SSR-safe) -const supportsPlaintextOnly = (() => { - if (typeof document === "undefined") return false - try { - const div = document.createElement("div") - div.contentEditable = "plaintext-only" - return div.contentEditable === "plaintext-only" - } catch { - return false - } -})() - -const isContentWithinMaxLength = ( - content: string, - maxLength?: number -): boolean => { - if (!maxLength) return true - return content.length <= maxLength -} - -export interface ContentEditableHandle { - focus: () => void - blur: () => void - insertAtCaret: (text: string) => void - clear: () => void - getCaretPosition: () => number -} - -interface ContentEditableOwnProps { - containerClassName?: string - contentEditableClassName?: string - placeholderClassName?: string - charsCounterClassName?: string - placeholder?: string - disabled?: boolean - updatedContent?: string - maxLength?: number - autoFocus?: boolean - tagName?: string - multiLine?: boolean - sanitize?: (content: string) => string - onChange?: (content: string, meta?: { caretPosition: number }) => void - onKeyUp?: (e: React.KeyboardEvent) => void - onKeyDown?: (e: React.KeyboardEvent) => void - onFocus?: (e: React.FocusEvent) => void - onBlur?: (e: React.FocusEvent) => void - onPaste?: (e: React.ClipboardEvent) => void - onContentExternalUpdate?: (content: string) => void -} - -export type ContentEditableProps = ContentEditableOwnProps & - Omit< - React.HTMLAttributes, - keyof ContentEditableOwnProps | "contentEditable" - > - -const ContentEditable = forwardRef( - ( - { - containerClassName, - contentEditableClassName, - placeholderClassName, - charsCounterClassName, - placeholder, - disabled, - updatedContent, - maxLength, - autoFocus, - tagName = "div", - multiLine = true, - sanitize, - onChange, - onKeyUp, - onKeyDown, - onFocus, - onBlur, - onPaste, - onContentExternalUpdate, - style, - className, - ...rest - }, - ref - ) => { - const [content, setContent] = useState("") - const divRef = useRef(null) - const undoStack = useRef([]) - const redoStack = useRef([]) - const lastCaretPosition = useRef(0) - - useImperativeHandle(ref, () => ({ - focus: () => divRef.current?.focus(), - blur: () => divRef.current?.blur(), - insertAtCaret: (text: string) => { - if (!divRef.current) return - divRef.current.focus() - insertTextAtCaret(text, lastCaretPosition.current) - }, - clear: () => { - if (!divRef.current) return - divRef.current.innerText = "" - setContent("") - fireOnChange("", 0) - }, - getCaretPosition: () => { - if (!divRef.current) return 0 - const pos = getCaretPositionFromElement(divRef.current) - return pos >= 0 ? pos : lastCaretPosition.current - }, - })) - - useEffect(() => { - if (updatedContent !== null && updatedContent !== undefined) { - setContent((prev) => prev === updatedContent ? prev : updatedContent) - if (divRef.current && divRef.current.innerText !== updatedContent) { - divRef.current.innerText = updatedContent - } - if (onContentExternalUpdate) onContentExternalUpdate(updatedContent) - } - }, [updatedContent, onContentExternalUpdate]) - - useEffect(() => { - if (divRef.current && autoFocus) { - divRef.current.focus() - } - }, [autoFocus]) - - useEffect(() => { - undoStack.current.push(content) - if (undoStack.current.length > MAX_UNDO_STACK_SIZE) { - undoStack.current.shift() - } - }, [content]) - - // Enable contenteditable="plaintext-only" when supported (via DOM for React 18 compat) - useEffect(() => { - if (divRef.current && !disabled && supportsPlaintextOnly) { - divRef.current.contentEditable = "plaintext-only" - } - }, [disabled]) - - // --- Helper functions --- - - function fireOnChange(newContent: string, caretPos?: number) { - if (onChange && isContentWithinMaxLength(newContent, maxLength)) { - onChange(newContent, { caretPosition: caretPos ?? lastCaretPosition.current }) - } - } - - function getCaretPositionFromElement(editableDiv: HTMLElement): number { - const sel = window.getSelection() - if (!sel || sel.rangeCount === 0) return -1 - const range = sel.getRangeAt(0) - if (!editableDiv.contains(range.endContainer)) return -1 - const preCaretRange = document.createRange() - preCaretRange.selectNodeContents(editableDiv) - preCaretRange.setEnd(range.endContainer, range.endOffset) - return preCaretRange.toString().length - } - - function setCaretPosition(elem: HTMLElement, pos: number) { - const sel = window.getSelection() - if (!sel) return - - const walker = document.createTreeWalker(elem, NodeFilter.SHOW_TEXT) - let remaining = pos - let node: Node | null = null - - while ((node = walker.nextNode())) { - const len = (node as Text).length - if (remaining <= len) { - const range = document.createRange() - range.setStart(node, remaining) - range.collapse(true) - sel.removeAllRanges() - sel.addRange(range) - return - } - remaining -= len - } - - // Offset exceeds content — place caret at the end - setCaretAtTheEnd(elem) - } - - function setCaretAtTheEnd(editableDiv: HTMLElement) { - const range = document.createRange() - const sel = window.getSelection() - if (sel) { - range.selectNodeContents(editableDiv) - range.collapse(false) - sel.removeAllRanges() - sel.addRange(range) - } - } - - function insertTextAtCaret(text: string, position?: number) { - if (!divRef.current) return - let currentCaretPos: number - if (position !== undefined) { - currentCaretPos = position - } else { - const pos = getCaretPositionFromElement(divRef.current) - currentCaretPos = pos >= 0 ? pos : lastCaretPosition.current - } - - // Place caret at the target position, then insert via Range API - // This preserves the DOM structure (text nodes,
,
lines) - setCaretPosition(divRef.current, currentCaretPos) - - const sel = window.getSelection() - if (sel && sel.rangeCount > 0) { - const range = sel.getRangeAt(0) - range.deleteContents() - const textNode = document.createTextNode(text) - range.insertNode(textNode) - range.setStartAfter(textNode) - range.collapse(true) - sel.removeAllRanges() - sel.addRange(range) - } - - setContent(divRef.current.innerText) - divRef.current.scrollTop = divRef.current.scrollHeight - - const newPos = currentCaretPos + text.length - lastCaretPosition.current = newPos - fireOnChange(divRef.current.innerText, newPos) - } - - function isCaretOnLastLine(element: HTMLElement): boolean { - if (element.ownerDocument.activeElement !== element) return false - const win = element.ownerDocument.defaultView - if (!win) return false - const selection = win.getSelection() - if (!selection || selection.rangeCount === 0) return false - - const originalCaretRange = selection.getRangeAt(0) - if (originalCaretRange.toString().length > 0) return false - const originalCaretRect = originalCaretRange.getBoundingClientRect() - - const endOfElementRange = document.createRange() - endOfElementRange.selectNodeContents(element) - let endContainer = endOfElementRange.endContainer - let endOffset = 0 - while (endContainer.hasChildNodes() && !(endContainer instanceof Text)) { - if (!endContainer.lastChild) continue - endContainer = endContainer.lastChild - endOffset = endContainer instanceof Text ? endContainer.length : 0 - } - endOfElementRange.setEnd(endContainer, endOffset) - endOfElementRange.setStart(endContainer, endOffset) - const endOfElementRect = endOfElementRange.getBoundingClientRect() - - return originalCaretRect.bottom === endOfElementRect.bottom - } - - function isAllTextSelected(): boolean { - const sel = window.getSelection() - const newlineCount = (divRef.current?.innerText.match(/\n(\n|$)/g) || []) - .length - return sel - ? sel.toString().length + newlineCount === - divRef.current?.innerText.length - : false - } - - // --- Event handlers --- - - function handlePasteEvent(e: React.ClipboardEvent) { - e.preventDefault() - if (onPaste) onPaste(e) - - const plainText = e.clipboardData.getData("text/plain") - const processedPaste = multiLine - ? plainText - : plainText.replace(/\n/g, " ") - - const sel = window.getSelection() - const currentContent = divRef.current?.innerText || "" - - if (sel && sel.rangeCount) { - const range = sel.getRangeAt(0) - const selectedText = range.toString() - - const availableSpace = maxLength - ? maxLength - (currentContent.length - selectedText.length) - : processedPaste.length - let truncatedText = processedPaste.slice(0, availableSpace) - if (sanitize) truncatedText = sanitize(truncatedText) - - if (truncatedText.length > 0) { - range.deleteContents() - const textNode = document.createTextNode(truncatedText) - range.insertNode(textNode) - range.setStartAfter(textNode) - sel.removeAllRanges() - sel.addRange(range) - - const newContent = divRef.current?.innerText ?? "" - setContent(newContent) - if (divRef.current) { - const pos = getCaretPositionFromElement(divRef.current) - if (pos >= 0) lastCaretPosition.current = pos - } - fireOnChange(newContent) - } - } else { - const availableSpace = maxLength - ? maxLength - currentContent.length - : processedPaste.length - let truncatedText = processedPaste.slice(0, availableSpace) - if (sanitize) truncatedText = sanitize(truncatedText) - - if (truncatedText.length > 0) { - insertTextAtCaret(truncatedText) - } - } - } - - function handleCaretScroll(e: React.KeyboardEvent) { - if (!divRef.current) return - const focus = divRef.current - switch (e.key) { - case "ArrowUp": - if (getCaretPositionFromElement(focus) <= 0) focus.scrollTop = 0 - break - case "Enter": - case "ArrowDown": - if (isCaretOnLastLine(focus)) focus.scrollTop = focus.scrollHeight - break - } - } - - function handleKeyDown(e: React.KeyboardEvent) { - if (onKeyDown) onKeyDown(e) - if (!divRef.current) return - - const isModifier = e.ctrlKey || e.metaKey - - // Undo - if (isModifier && e.key === "z" && !e.shiftKey) { - e.preventDefault() - if (undoStack.current.length > 1) { - redoStack.current.push(undoStack.current.pop() as string) - const previousContent = - undoStack.current[undoStack.current.length - 1] - setContent(previousContent) - if (divRef.current) { - divRef.current.innerText = previousContent - setCaretAtTheEnd(divRef.current) - } - fireOnChange(previousContent) - } - return - } - - // Redo - if ( - (isModifier && e.key === "y") || - (isModifier && e.shiftKey && (e.key === "z" || e.key === "Z")) - ) { - e.preventDefault() - if (redoStack.current.length > 0) { - const nextContent = redoStack.current.pop() as string - undoStack.current.push(nextContent) - setContent(nextContent) - if (divRef.current) { - divRef.current.innerText = nextContent - setCaretAtTheEnd(divRef.current) - } - fireOnChange(nextContent) - } - return - } - - // Prevent Enter in single-line mode - if (!multiLine && e.key === "Enter") { - e.preventDefault() - return - } - - // Handle Delete/Backspace edge cases - if ( - (["Delete", "Backspace"].includes(e.key) && isAllTextSelected()) || - (e.key === "Backspace" && content.length === 1) || - (e.key === "Delete" && - getCaretPositionFromElement(divRef.current) === 0 && - content.length === 1) - ) { - e.preventDefault() - divRef.current.innerText = "" - setContent("") - fireOnChange("", 0) - } - } - - // --- Render --- - - const EditableTag = tagName as React.ElementType - - const mergedClassName = - [contentEditableClassName, className].filter(Boolean).join(" ") || - undefined - - const mergedStyle: React.CSSProperties = { - padding: "0.85rem", - overflow: "auto", - height: "auto", - textAlign: "initial", - wordBreak: "break-word", - unicodeBidi: "plaintext", - flex: 1, - minWidth: 0, - ...style, - } - - return ( -
- ) => { - const raw = e.currentTarget.innerText - if (disabled || !isContentWithinMaxLength(raw, maxLength)) { - if (divRef.current) { - divRef.current.innerText = content - setCaretAtTheEnd(divRef.current) - } - return - } - const processed = sanitize ? sanitize(raw) : raw - if (processed !== raw && divRef.current) { - divRef.current.innerText = processed - setCaretAtTheEnd(divRef.current) - } - setContent(processed) - if (divRef.current) { - if (processed !== raw) { - lastCaretPosition.current = processed.length - } else { - const pos = getCaretPositionFromElement(divRef.current) - if (pos >= 0) lastCaretPosition.current = pos - } - } - fireOnChange(processed) - }} - onPaste={(e: React.ClipboardEvent) => { - if (disabled) return - handlePasteEvent(e) - }} - onFocus={(e: React.FocusEvent) => { - if (onFocus) onFocus(e) - }} - onBlur={(e: React.FocusEvent) => { - if (divRef.current) { - const pos = getCaretPositionFromElement(divRef.current) - if (pos >= 0) lastCaretPosition.current = pos - } - if (onBlur) onBlur(e) - }} - onClick={() => { - if (divRef.current) { - const pos = getCaretPositionFromElement(divRef.current) - if (pos >= 0) lastCaretPosition.current = pos - } - }} - onKeyUp={(e: React.KeyboardEvent) => { - if (disabled) return - if (divRef.current) { - const pos = getCaretPositionFromElement(divRef.current) - if (pos >= 0) lastCaretPosition.current = pos - } - if (onKeyUp) onKeyUp(e) - handleCaretScroll(e) - }} - onKeyDown={(e: React.KeyboardEvent) => { - if (disabled) return - handleKeyDown(e) - }} - /> - {!content && ( - - {placeholder ?? ""} - - )} - {!!maxLength && ( - - {`${content.length ?? 0}/${maxLength}`} - - )} -
- ) - } -) - -ContentEditable.displayName = "ContentEditable" - -export default ContentEditable diff --git a/lib/main.ts b/lib/main.ts deleted file mode 100644 index 1eb39d8..0000000 --- a/lib/main.ts +++ /dev/null @@ -1,3 +0,0 @@ -import ContentEditable from "./ContentEditable" -export type { ContentEditableHandle, ContentEditableProps } from "./ContentEditable" -export default ContentEditable diff --git a/package.json b/package.json deleted file mode 100644 index 13869f7..0000000 --- a/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "name": "react-basic-contenteditable", - "description": "React contenteditable component. Super-customizable!", - "version": "1.2.1", - "type": "module", - "main": "dist/main.js", - "types": "dist/main.d.ts", - "exports": { - ".": { - "types": "./dist/main.d.ts", - "import": "./dist/main.js" - } - }, - "files": [ - "dist" - ], - "sideEffects": [ - "**/*.css" - ], - "author": "ChrisUser (https://github.com/ChrisUser)", - "repository": { - "type": "git", - "url": "https://github.com/ChrisUser/react-basic-contenteditable.git" - }, - "license": "MIT", - "keywords": [ - "react", - "contenteditable", - "chat-component" - ], - "release": { - "branches": [ - "main" - ] - }, - "scripts": { - "start": "vite", - "build": "tsc --p ./tsconfig-build.json && vite build --mode production", - "build-docs": "tsc --p ./tsconfig-build-docs.json && vite build --mode docs", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview", - "prepublishOnly": "yarn build" - }, - "peerDependencies": { - "react": "^18.2.0 || ^19.0.0", - "react-dom": "^18.2.0 || ^19.0.0" - }, - "devDependencies": { - "@types/node": "^22.13.4", - "@types/react": "^19.0.8", - "@types/react-dom": "^19.0.3", - "@typescript-eslint/eslint-plugin": "^8.24.0", - "@typescript-eslint/parser": "^8.24.0", - "@vitejs/plugin-react-swc": "^3", - "eslint": "^8.56.0", - "eslint-plugin-react-hooks": "^4.6.0", - "eslint-plugin-react-refresh": "^0.4", - "glob": "^11.0.1", - "react": "^19.0.0", - "react-dom": "^19.0.0", - "typescript": "^5", - "vite": "^6", - "vite-plugin-dts": "^4.5.0" - }, - "bugs": { - "url": "https://github.com/ChrisUser/react-basic-contenteditable/issues" - }, - "homepage": "https://github.com/ChrisUser/react-basic-contenteditable#readme" -} diff --git a/readme-header-img.png b/readme-header-img.png deleted file mode 100644 index 81b6198..0000000 Binary files a/readme-header-img.png and /dev/null differ diff --git a/src/App.css b/src/App.css deleted file mode 100644 index e433d7c..0000000 --- a/src/App.css +++ /dev/null @@ -1,456 +0,0 @@ -/* ── Reset & Base ──────────────────────────────────────── */ -:root { - --color-bg: #f8f9fb; - --color-surface: #ffffff; - --color-border: #e2e4e9; - --color-text: #1a1a2e; - --color-muted: #71717a; - --color-primary: #6366f1; - --color-primary-hover: #4f46e5; - --radius: 0.5rem; - --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); - --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.08); - font-family: "Inter", system-ui, -apple-system, sans-serif; - font-weight: 400; - color: var(--color-text); - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -* { - box-sizing: border-box; -} - -body { - margin: 0; - background: var(--color-bg); - min-height: 100vh; -} - -#root { - width: 100%; -} - -/* ── Layout ────────────────────────────────────────────── */ -.demo-root { - max-width: 960px; - margin: 0 auto; - padding: 2rem 1.5rem 3rem; -} - -.demo-header { - text-align: center; - margin-bottom: 2rem; -} - -.demo-header h1 { - font-size: 1.75rem; - font-weight: 700; - margin: 0 0 0.25rem; - letter-spacing: -0.02em; -} - -.demo-subtitle { - color: var(--color-muted); - font-size: 0.95rem; - margin: 0; -} - -.demo-grid { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 1.25rem; -} - -@media (max-width: 680px) { - .demo-grid { - grid-template-columns: 1fr; - } -} - -/* ── Card ──────────────────────────────────────────────── */ -.demo-card { - background: var(--color-surface); - border: 1px solid var(--color-border); - border-radius: var(--radius); - padding: 1.25rem; - display: flex; - flex-direction: column; - gap: 0.75rem; - box-shadow: var(--shadow-sm); -} - -.demo-card--wide { - grid-column: 1 / -1; -} - -.card-header { - display: flex; - align-items: center; - gap: 0.5rem; - flex-wrap: wrap; -} - -.card-header h2 { - font-size: 1rem; - font-weight: 600; - margin: 0; -} - -.badge { - font-size: 0.7rem; - font-family: "SF Mono", "Fira Code", monospace; - background: #eef2ff; - color: var(--color-primary); - padding: 0.15rem 0.5rem; - border-radius: 999px; - white-space: nowrap; -} - -.demo-hint { - color: var(--color-muted); - font-size: 0.8rem; - margin: 0; - line-height: 1.4; -} - -.demo-hint code { - background: #f4f4f5; - padding: 0.1rem 0.3rem; - border-radius: 0.2rem; - font-size: 0.75rem; -} - -.output-preview { - font-size: 0.8rem; - font-family: "SF Mono", "Fira Code", monospace; - background: #f9fafb; - border: 1px dashed var(--color-border); - border-radius: var(--radius); - padding: 0.5rem 0.75rem; - word-break: break-word; -} - -.output-label { - color: var(--color-muted); -} - -/* ── Buttons ───────────────────────────────────────────── */ -.btn { - cursor: pointer; - appearance: none; - border: none; - font-size: 0.82rem; - font-weight: 500; - padding: 0.45rem 0.9rem; - border-radius: var(--radius); - transition: background 0.15s, color 0.15s, box-shadow 0.15s; - line-height: 1.4; -} - -.btn--primary { - background: var(--color-primary); - color: #fff; -} - -.btn--primary:hover { - background: var(--color-primary-hover); -} - -.btn--ghost { - background: transparent; - color: var(--color-muted); -} - -.btn--ghost:hover { - background: #f4f4f5; - color: var(--color-text); -} - -.btn--outline { - background: transparent; - border: 1px solid var(--color-border); - color: var(--color-text); -} - -.btn--outline:hover { - border-color: var(--color-primary); - color: var(--color-primary); -} - -.btn--emoji { - background: transparent; - font-size: 1.15rem; - padding: 0.25rem 0.35rem; - border-radius: 0.35rem; - line-height: 1; -} - -.btn--emoji:hover { - background: #f4f4f5; - transform: scale(1.15); -} - -.toggle-btn { - align-self: flex-start; -} - -/* ── Chat demo ─────────────────────────────────────────── */ -.chat-messages { - display: flex; - flex-direction: column; - gap: 0.5rem; - max-height: 200px; - overflow-y: auto; - padding-right: 0.25rem; -} - -.chat-bubble { - align-self: flex-start; - background: #f4f4f5; - border: 1px solid var(--color-border); - padding: 0.55rem 0.85rem; - border-radius: var(--radius); - font-size: 0.88rem; - line-height: 1.4; - white-space: pre-wrap; - word-break: break-word; - max-width: 85%; -} - -.chat-input-row { - position: relative; -} - -.chat-input-container { - width: 100%; - position: relative; -} - -.chat-input { - width: 100%; - border: 1px solid var(--color-border); - border-radius: var(--radius); - line-height: 1.4; - min-height: 2.6rem; - max-height: 8rem; - font-size: 0.88rem; - transition: border-color 0.15s, box-shadow 0.15s; -} - -.chat-input:focus { - outline: none; - border-color: var(--color-primary); - box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12); -} - -.chat-placeholder { - color: var(--color-muted); - font-size: 0.88rem; - margin-left: 0.85rem; -} - -.chat-counter { - font-size: 0.72rem; - color: var(--color-muted); - font-family: "SF Mono", "Fira Code", monospace; - flex-shrink: 0; -} - -.chat-toolbar { - display: flex; - align-items: center; - justify-content: space-between; - gap: 0.5rem; - flex-wrap: wrap; -} - -.emoji-row { - display: flex; - gap: 0.15rem; -} - -.chat-actions { - display: flex; - gap: 0.35rem; -} - -/* ── Single-line demo ──────────────────────────────────── */ -.single-container { - width: 100%; - position: relative; -} - -.single-input { - width: 100%; - border: 1px solid var(--color-border); - border-radius: var(--radius); - font-size: 1.1rem; - font-weight: 600; - line-height: 1.4; - min-height: 2.4rem; - transition: border-color 0.15s, box-shadow 0.15s; -} - -.single-input:focus { - outline: none; - border-color: var(--color-primary); - box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12); -} - -.single-placeholder { - color: var(--color-muted); - font-size: 1.1rem; - font-weight: 600; - margin-left: 0.85rem; -} - -/* ── Quote / custom tag demo ───────────────────────────── */ -.quote-container { - width: 100%; - position: relative; -} - -.quote-input { - width: 100%; - min-height: 2.4rem; - line-height: 1.5; - font-size: 0.92rem; -} - -.quote-input:focus { - outline: none; - box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1); -} - -.quote-placeholder { - color: #8b8bc7; - font-style: italic; - margin-left: 1rem; -} - -/* ── Disabled demo ─────────────────────────────────────── */ -.disabled-container { - width: 100%; - position: relative; -} - -.disabled-input { - width: 100%; - border: 1px solid var(--color-border); - border-radius: var(--radius); - font-size: 0.88rem; - min-height: 2.4rem; - line-height: 1.4; - transition: background 0.2s, opacity 0.2s; -} - -.disabled-input--off { - background: #f9fafb; - opacity: 0.6; - cursor: not-allowed; -} - -.disabled-input:focus { - outline: none; - border-color: var(--color-primary); - box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12); -} - -.disabled-placeholder { - color: var(--color-muted); - font-size: 0.88rem; - margin-left: 0.85rem; -} - -/* ── Sanitize demo ─────────────────────────────────────── */ -.sanitize-container { - width: 100%; - position: relative; -} - -.sanitize-input { - width: 100%; - border: 1px solid var(--color-border); - border-radius: var(--radius); - font-size: 0.88rem; - min-height: 2.4rem; - line-height: 1.4; - transition: border-color 0.15s, box-shadow 0.15s; -} - -.sanitize-input:focus { - outline: none; - border-color: var(--color-primary); - box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.12); -} - -.sanitize-placeholder { - color: var(--color-muted); - font-size: 0.88rem; - margin-left: 0.85rem; -} - -/* ── Style override demo ───────────────────────────────── */ -.styled-container { - width: 100%; - position: relative; -} - -.styled-placeholder { - color: rgba(255, 255, 255, 0.65); - margin-left: 1.25rem; -} - -/* ── Event log ─────────────────────────────────────────── */ -.event-log { - display: flex; - flex-direction: column; - gap: 0.3rem; - font-family: "SF Mono", "Fira Code", monospace; - font-size: 0.78rem; - min-height: 5rem; -} - -.event-log__empty { - color: var(--color-muted); - font-style: italic; -} - -.event-log__entry { - background: #f9fafb; - padding: 0.3rem 0.6rem; - border-radius: 0.25rem; - color: var(--color-text); - animation: fadeIn 0.15s ease-out; -} - -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(-4px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -/* ── Footer ────────────────────────────────────────────── */ -.demo-footer { - text-align: center; - margin-top: 2rem; - color: var(--color-muted); - font-size: 0.82rem; -} - -kbd { - background: #f4f4f5; - border: 1px solid var(--color-border); - border-radius: 0.25rem; - padding: 0.1rem 0.35rem; - font-family: "SF Mono", "Fira Code", monospace; - font-size: 0.75rem; -} diff --git a/src/App.tsx b/src/App.tsx deleted file mode 100644 index a89fa32..0000000 --- a/src/App.tsx +++ /dev/null @@ -1,289 +0,0 @@ -import ContentEditable from "../lib/ContentEditable" -import type { ContentEditableHandle } from "../lib/ContentEditable" -import "./App.css" -import { useEffect, useRef, useState } from "react" - -const EMOJIS = ["👋", "🔥", "💡", "🚀", "✨", "🎉", "❤️", "👍"] - -const App = () => { - // --- Chat demo state --- - const [emptyContent, setEmptyContent] = useState( - undefined - ) - const [content, setContent] = useState("") - const [messageHistory, setMessageHistory] = useState([ - "Welcome! This demo showcases every feature of react-basic-contenteditable.", - "Try typing, pasting, using undo/redo, and the controls below.", - ]) - const chatRef = useRef(null) - - useEffect(() => { - setEmptyContent(undefined) - }, [emptyContent]) - - const sendMessage = () => { - if (!content.trim()) return - setMessageHistory((prev) => [...prev, content]) - setContent("") - setEmptyContent("") - } - - // --- Single-line demo state --- - const [titleText, setTitleText] = useState("") - - // --- Disabled demo state --- - const [isDisabled, setIsDisabled] = useState(true) - - // --- Sanitize demo state --- - const [sanitizedText, setSanitizedText] = useState("") - - // --- Custom tag demo state --- - const [quoteText, setQuoteText] = useState("") - - // --- Event log state --- - const [events, setEvents] = useState([]) - const logEvent = (name: string, detail?: string) => { - setEvents((prev) => - [`${name}${detail ? ": " + detail : ""}`, ...prev].slice(0, 8) - ) - } - - return ( -
-
-

react-basic-contenteditable

-

Interactive feature showcase

-
- -
- {/* ── Chat / Multi-line ─────────────────────────── */} -
-
-

Chat input

- multiLine + maxLength + ref API -
- -
- {messageHistory.map((msg, i) => ( -
- {msg} -
- ))} -
- -
- setContent(c)} - onKeyDown={(e) => { - if (e.key === "Enter" && !e.shiftKey) { - e.preventDefault() - sendMessage() - } - }} - onPaste={() => logEvent("onPaste")} - onFocus={() => logEvent("onFocus")} - onBlur={() => logEvent("onBlur")} - spellCheck={false} - data-testid="chat-editor" - /> -
- -
-
- {EMOJIS.map((e) => ( - - ))} -
-
- - - -
-
-
- - {/* ── Single-line ──────────────────────────────── */} -
-
-

Single-line input

- multiLine=false -
- setTitleText(c)} - /> -

- Enter key is blocked. Pasted newlines become spaces. -

- {titleText && ( -
- Value: {titleText} -
- )} -
- - {/* ── Custom tag ───────────────────────────────── */} -
-
-

Custom tagName

- tagName="blockquote" -
- setQuoteText(c)} - style={{ - fontStyle: "italic", - borderLeft: "3px solid #6366f1", - padding: "0.75rem 1rem", - margin: 0, - background: "#f0f0ff", - borderRadius: "0 0.35rem 0.35rem 0", - }} - /> - {quoteText && ( -
- Rendered as:{" "} - {"
"} -
- )} -
- - {/* ── Disabled ─────────────────────────────────── */} -
-
-

Disabled state

- disabled prop -
- - -
- - {/* ── Sanitize ─────────────────────────────────── */} -
-
-

Sanitize callback

- sanitize prop -
- text.replace(/[0-9]/g, "")} - onChange={(c) => setSanitizedText(c)} - /> -

- Numbers are stripped in real time via{" "} - sanitize={"{(t) => t.replace(/[0-9]/g, '')}"} -

- {sanitizedText && ( -
- Output: {sanitizedText} -
- )} -
- - {/* ── Custom style ─────────────────────────────── */} -
-
-

Inline style override

- style prop -
- -

- Internal defaults are merged with your style object. - Your values take precedence. -

-
- - {/* ── Event log ────────────────────────────────── */} -
-
-

Event log

- onFocus / onBlur / onPaste -
-
- {events.length === 0 && ( - - Interact with the chat input above... - - )} - {events.map((ev, i) => ( -
- {ev} -
- ))} -
-
-
- -
- - Undo Ctrl/Cmd+Z · Redo{" "} - Ctrl/Cmd+Shift+Z - -
-
- ) -} - -export default App diff --git a/src/main.tsx b/src/main.tsx deleted file mode 100644 index 1f17221..0000000 --- a/src/main.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import React from "react" -import ReactDOM from "react-dom/client" -import App from "./App.tsx" - -ReactDOM.createRoot(document.getElementById("root")!).render( - - - -) diff --git a/src/vite-env.d.ts b/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/tsconfig-build-docs.json b/tsconfig-build-docs.json deleted file mode 100644 index 4ee8b07..0000000 --- a/tsconfig-build-docs.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "exclude": ["lib"] -} \ No newline at end of file diff --git a/tsconfig-build.json b/tsconfig-build.json deleted file mode 100644 index 30314c0..0000000 --- a/tsconfig-build.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": ["lib"] -} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json deleted file mode 100644 index efa4736..0000000 --- a/tsconfig.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "target": "ES2020", - "useDefineForClassFields": true, - "lib": ["ES2020", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "resolveJsonModule": true, - "isolatedModules": true, - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true - }, - "include": ["src", "lib"], - "references": [{ "path": "./tsconfig.node.json" }] -} diff --git a/tsconfig.node.json b/tsconfig.node.json deleted file mode 100644 index 3222e9e..0000000 --- a/tsconfig.node.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "composite": true, - "skipLibCheck": true, - "module": "ESNext", - "moduleResolution": "bundler", - "allowSyntheticDefaultImports": true, - }, - "include": ["vite.config.ts"], - "exclude": [] -} diff --git a/vite.config.ts b/vite.config.ts deleted file mode 100644 index eb471f2..0000000 --- a/vite.config.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { defineConfig } from "vite" -import { extname, relative, resolve } from "path" -import { fileURLToPath } from "node:url" -import { glob } from "glob" -import react from "@vitejs/plugin-react-swc" -import dts from "vite-plugin-dts" - -// https://vitejs.dev/config/ -export default defineConfig(({ mode }) => { - if (mode === "docs") { - return { - build: { outDir: "docs" }, - base: "/react-basic-contenteditable/", - } - } - if (mode === "production") { - return { - plugins: [react(), dts({ include: ["lib"] })], - build: { - lib: { - entry: resolve(__dirname, "lib/main.ts"), - formats: ["es"], - }, - rollupOptions: { - external: ["react", "react/jsx-runtime", "react-dom"], - input: Object.fromEntries( - glob.sync("lib/**/*.{ts,tsx}").map((file) => [ - relative( - "lib", - file.slice(0, file.length - extname(file).length) - ), - fileURLToPath(new URL(file, import.meta.url)), - ]) - ), - output: { - assetFileNames: (assetInfo) => { - const assetName = assetInfo.name?.split(".").at(0) - return `${assetName === "style" ? "index" : "[name]"}[extname]` - }, - entryFileNames: "[name].js", - }, - }, - }, - } - } - return {} -}) diff --git a/yarn.lock b/yarn.lock deleted file mode 100644 index 48018f1..0000000 --- a/yarn.lock +++ /dev/null @@ -1,1976 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@babel/helper-string-parser@^7.27.1": - version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" - integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== - -"@babel/helper-validator-identifier@^7.28.5": - version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" - integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== - -"@babel/parser@^7.29.2": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.2.tgz#58bd50b9a7951d134988a1ae177a35ef9a703ba1" - integrity sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA== - dependencies: - "@babel/types" "^7.29.0" - -"@babel/types@^7.29.0": - version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" - integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== - dependencies: - "@babel/helper-string-parser" "^7.27.1" - "@babel/helper-validator-identifier" "^7.28.5" - -"@esbuild/aix-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" - integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== - -"@esbuild/android-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752" - integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== - -"@esbuild/android-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a" - integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== - -"@esbuild/android-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16" - integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== - -"@esbuild/darwin-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd" - integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== - -"@esbuild/darwin-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e" - integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== - -"@esbuild/freebsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe" - integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== - -"@esbuild/freebsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3" - integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== - -"@esbuild/linux-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977" - integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== - -"@esbuild/linux-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9" - integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== - -"@esbuild/linux-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0" - integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== - -"@esbuild/linux-loong64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0" - integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== - -"@esbuild/linux-mips64el@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd" - integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== - -"@esbuild/linux-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869" - integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== - -"@esbuild/linux-riscv64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6" - integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== - -"@esbuild/linux-s390x@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663" - integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== - -"@esbuild/linux-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306" - integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== - -"@esbuild/netbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4" - integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== - -"@esbuild/netbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076" - integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== - -"@esbuild/openbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd" - integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== - -"@esbuild/openbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679" - integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== - -"@esbuild/openharmony-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" - integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== - -"@esbuild/sunos-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" - integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== - -"@esbuild/win32-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323" - integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== - -"@esbuild/win32-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267" - integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== - -"@esbuild/win32-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" - integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== - -"@eslint-community/eslint-utils@^4.2.0": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz#d1145bf2c20132d6400495d6df4bf59362fd9d56" - integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/eslint-utils@^4.9.1": - version "4.9.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" - integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== - dependencies: - eslint-visitor-keys "^3.4.3" - -"@eslint-community/regexpp@^4.12.2": - version "4.12.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" - integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== - -"@eslint-community/regexpp@^4.6.1": - version "4.12.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" - integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== - -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== - dependencies: - ajv "^6.12.4" - debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" - ignore "^5.2.0" - import-fresh "^3.2.1" - js-yaml "^4.1.0" - minimatch "^3.1.2" - strip-json-comments "^3.1.1" - -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== - -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== - dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" - -"@humanwhocodes/module-importer@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" - integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== - -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== - -"@isaacs/cliui@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-9.0.0.tgz#4d0a3f127058043bf2e7ee169eaf30ed901302f3" - integrity sha512-AokJm4tuBHillT+FpMtxQ60n8ObyXBatq7jD2/JA9dxbDDokKQm8KMht5ibGzLVU9IJDIKK4TPKgMHEYMn3lMg== - -"@jridgewell/sourcemap-codec@^1.5.5": - version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" - integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== - -"@microsoft/api-extractor-model@7.33.6": - version "7.33.6" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.33.6.tgz#7bef639b673c96e4273cc5cd91b628b5a95c56e6" - integrity sha512-E9iI4yGEVVusbTAqSLetVFxDuBVCVqCigcoQwdJuOjsLq5Hry3MkBgUQhSZNzLCu17pgjk58MI80GRDJLht/1A== - dependencies: - "@microsoft/tsdoc" "~0.16.0" - "@microsoft/tsdoc-config" "~0.18.1" - "@rushstack/node-core-library" "5.22.0" - -"@microsoft/api-extractor@^7.50.1": - version "7.58.2" - resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.58.2.tgz#5914eca7b7b45488bd6a8a53d793749f953cfd25" - integrity sha512-qmqWa0Fx1xn3irQy8MyuAKUs8e3CdwMJOujaPkM8gx5v/V7RcLhTjBU0/uL2kdhmROpW+5WG1FD98O441kkvQQ== - dependencies: - "@microsoft/api-extractor-model" "7.33.6" - "@microsoft/tsdoc" "~0.16.0" - "@microsoft/tsdoc-config" "~0.18.1" - "@rushstack/node-core-library" "5.22.0" - "@rushstack/rig-package" "0.7.2" - "@rushstack/terminal" "0.22.5" - "@rushstack/ts-command-line" "5.3.5" - diff "~8.0.2" - lodash "~4.18.1" - minimatch "10.2.3" - resolve "~1.22.1" - semver "~7.5.4" - source-map "~0.6.1" - typescript "5.9.3" - -"@microsoft/tsdoc-config@~0.18.1": - version "0.18.1" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.18.1.tgz#7c560bce62abb5f9681e4d231b9ac35553b7e86b" - integrity sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg== - dependencies: - "@microsoft/tsdoc" "0.16.0" - ajv "~8.18.0" - jju "~1.4.0" - resolve "~1.22.2" - -"@microsoft/tsdoc@0.16.0", "@microsoft/tsdoc@~0.16.0": - version "0.16.0" - resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.16.0.tgz#2249090633e04063176863a050c8f0808d2b6d2b" - integrity sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.8": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@rolldown/pluginutils@1.0.0-beta.27": - version "1.0.0-beta.27" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz#47d2bf4cef6d470b22f5831b420f8964e0bf755f" - integrity sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA== - -"@rollup/pluginutils@^5.1.4": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.3.0.tgz#57ba1b0cbda8e7a3c597a4853c807b156e21a7b4" - integrity sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^4.0.2" - -"@rollup/rollup-android-arm-eabi@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.60.1.tgz#043f145716234529052ef9e1ce1d847ffbe9e674" - integrity sha512-d6FinEBLdIiK+1uACUttJKfgZREXrF0Qc2SmLII7W2AD8FfiZ9Wjd+rD/iRuf5s5dWrr1GgwXCvPqOuDquOowA== - -"@rollup/rollup-android-arm64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.60.1.tgz#023e1bd146e7519087dfd9e8b29e4cf9f8ecd35c" - integrity sha512-YjG/EwIDvvYI1YvYbHvDz/BYHtkY4ygUIXHnTdLhG+hKIQFBiosfWiACWortsKPKU/+dUwQQCKQM3qrDe8c9BA== - -"@rollup/rollup-darwin-arm64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.60.1.tgz#55ccb5487c02419954c57a7a80602885d616e1ee" - integrity sha512-mjCpF7GmkRtSJwon+Rq1N8+pI+8l7w5g9Z3vWj4T7abguC4Czwi3Yu/pFaLvA3TTeMVjnu3ctigusqWUfjZzvw== - -"@rollup/rollup-darwin-x64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.60.1.tgz#254b65404b14488c83225e88b8819376ad71a784" - integrity sha512-haZ7hJ1JT4e9hqkoT9R/19XW2QKqjfJVv+i5AGg57S+nLk9lQnJ1F/eZloRO3o9Scy9CM3wQ9l+dkXtcBgN5Ew== - -"@rollup/rollup-freebsd-arm64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.60.1.tgz#6377ff38c052c76fcaffb7b2728d3172fe676fe6" - integrity sha512-czw90wpQq3ZsAVBlinZjAYTKduOjTywlG7fEeWKUA7oCmpA8xdTkxZZlwNJKWqILlq0wehoZcJYfBvOyhPTQ6w== - -"@rollup/rollup-freebsd-x64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.60.1.tgz#ba3902309d088eaf7139b916f09b7140b28b406d" - integrity sha512-KVB2rqsxTHuBtfOeySEyzEOB7ltlB/ux38iu2rBQzkjbwRVlkhAGIEDiiYnO2kFOkJp+Z7pUXKyrRRFuFUKt+g== - -"@rollup/rollup-linux-arm-gnueabihf@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.60.1.tgz#e011b9a14638267e53b446286e838dbdaf53f167" - integrity sha512-L+34Qqil+v5uC0zEubW7uByo78WOCIrBvci69E7sFASRl0X7b/MB6Cqd1lky/CtcSVTydWa2WZwFuWexjS5o6g== - -"@rollup/rollup-linux-arm-musleabihf@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.60.1.tgz#0bce9ce9a009490abd28fd922dd97ed521311afe" - integrity sha512-n83O8rt4v34hgFzlkb1ycniJh7IR5RCIqt6mz1VRJD6pmhRi0CXdmfnLu9dIUS6buzh60IvACM842Ffb3xd6Gg== - -"@rollup/rollup-linux-arm64-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.60.1.tgz#6f6cfbbf324fbb4ceff213abdf7f322fd45d25ff" - integrity sha512-Nql7sTeAzhTAja3QXeAI48+/+GjBJ+QmAH13snn0AJSNL50JsDqotyudHyMbO2RbJkskbMbFJfIJKWA6R1LCJQ== - -"@rollup/rollup-linux-arm64-musl@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.60.1.tgz#f7cb3eecaea9c151ef77342af05f38ae924bf795" - integrity sha512-+pUymDhd0ys9GcKZPPWlFiZ67sTWV5UU6zOJat02M1+PiuSGDziyRuI/pPue3hoUwm2uGfxdL+trT6Z9rxnlMA== - -"@rollup/rollup-linux-loong64-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.60.1.tgz#499bfac6bb669fd88bb664357bf6be996a28b92f" - integrity sha512-VSvgvQeIcsEvY4bKDHEDWcpW4Yw7BtlKG1GUT4FzBUlEKQK0rWHYBqQt6Fm2taXS+1bXvJT6kICu5ZwqKCnvlQ== - -"@rollup/rollup-linux-loong64-musl@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.60.1.tgz#127dfac08764764396bbe04453c545d38a3ab518" - integrity sha512-4LqhUomJqwe641gsPp6xLfhqWMbQV04KtPp7/dIp0nzPxAkNY1AbwL5W0MQpcalLYk07vaW9Kp1PBhdpZYYcEw== - -"@rollup/rollup-linux-ppc64-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.60.1.tgz#6a72f4d95852aac18326c5bf708393e8f3a41b70" - integrity sha512-tLQQ9aPvkBxOc/EUT6j3pyeMD6Hb8QF2BTBnCQWP/uu1lhc9AIrIjKnLYMEroIz/JvtGYgI9dF3AxHZNaEH0rw== - -"@rollup/rollup-linux-ppc64-musl@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.60.1.tgz#ba8674666b00d6f9066cb9a5771a8430c34d2de6" - integrity sha512-RMxFhJwc9fSXP6PqmAz4cbv3kAyvD1etJFjTx4ONqFP9DkTkXsAMU4v3Vyc5BgzC+anz7nS/9tp4obsKfqkDHg== - -"@rollup/rollup-linux-riscv64-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.60.1.tgz#17cc38b2a71e302547cad29bcf78d0db2618c922" - integrity sha512-QKgFl+Yc1eEk6MmOBfRHYF6lTxiiiV3/z/BRrbSiW2I7AFTXoBFvdMEyglohPj//2mZS4hDOqeB0H1ACh3sBbg== - -"@rollup/rollup-linux-riscv64-musl@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.60.1.tgz#e36a41e2d8bd247331bd5cfc13b8c951d33454a2" - integrity sha512-RAjXjP/8c6ZtzatZcA1RaQr6O1TRhzC+adn8YZDnChliZHviqIjmvFwHcxi4JKPSDAt6Uhf/7vqcBzQJy0PDJg== - -"@rollup/rollup-linux-s390x-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.60.1.tgz#1687265f1f4bdea0726c761a58c2db9933609d68" - integrity sha512-wcuocpaOlaL1COBYiA89O6yfjlp3RwKDeTIA0hM7OpmhR1Bjo9j31G1uQVpDlTvwxGn2nQs65fBFL5UFd76FcQ== - -"@rollup/rollup-linux-x64-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.60.1.tgz#56a6a0d9076f2a05a976031493b24a20ddcc0e77" - integrity sha512-77PpsFQUCOiZR9+LQEFg9GClyfkNXj1MP6wRnzYs0EeWbPcHs02AXu4xuUbM1zhwn3wqaizle3AEYg5aeoohhg== - -"@rollup/rollup-linux-x64-musl@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.60.1.tgz#bc240ebb5b9fd8d41ca8a80cb458452e8c187e0f" - integrity sha512-5cIATbk5vynAjqqmyBjlciMJl1+R/CwX9oLk/EyiFXDWd95KpHdrOJT//rnUl4cUcskrd0jCCw3wpZnhIHdD9w== - -"@rollup/rollup-openbsd-x64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.60.1.tgz#6f80d48a006c4b2ffa7724e95a3e33f6975872af" - integrity sha512-cl0w09WsCi17mcmWqqglez9Gk8isgeWvoUZ3WiJFYSR3zjBQc2J5/ihSjpl+VLjPqjQ/1hJRcqBfLjssREQILw== - -"@rollup/rollup-openharmony-arm64@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.60.1.tgz#8f6db6f70d0a48abd833b263cd6dd3e7199c4c0e" - integrity sha512-4Cv23ZrONRbNtbZa37mLSueXUCtN7MXccChtKpUnQNgF010rjrjfHx3QxkS2PI7LqGT5xXyYs1a7LbzAwT0iCA== - -"@rollup/rollup-win32-arm64-msvc@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.60.1.tgz#b68989bfa815d0b3d4e302ecd90bda744438b177" - integrity sha512-i1okWYkA4FJICtr7KpYzFpRTHgy5jdDbZiWfvny21iIKky5YExiDXP+zbXzm3dUcFpkEeYNHgQ5fuG236JPq0g== - -"@rollup/rollup-win32-ia32-msvc@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.60.1.tgz#c098e45338c50f22f1b288476354f025b746285b" - integrity sha512-u09m3CuwLzShA0EYKMNiFgcjjzwqtUMLmuCJLeZWjjOYA3IT2Di09KaxGBTP9xVztWyIWjVdsB2E9goMjZvTQg== - -"@rollup/rollup-win32-x64-gnu@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.60.1.tgz#2c9e15be155b79d05999953b1737b2903842e903" - integrity sha512-k+600V9Zl1CM7eZxJgMyTUzmrmhB/0XZnF4pRypKAlAgxmedUA+1v9R+XOFv56W4SlHEzfeMtzujLJD22Uz5zg== - -"@rollup/rollup-win32-x64-msvc@4.60.1": - version "4.60.1" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.60.1.tgz#23b860113e9f87eea015d1fa3a4240a52b42fcd4" - integrity sha512-lWMnixq/QzxyhTV6NjQJ4SFo1J6PvOX8vUx5Wb4bBPsEb+8xZ89Bz6kOXpfXj9ak9AHTQVQzlgzBEc1SyM27xQ== - -"@rushstack/node-core-library@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-5.22.0.tgz#2435199443b64329dafb14dcdb78c3d3966630e8" - integrity sha512-S/Dm/N+8tkbasS6yM5cF6q4iDFt14mQQniiVIwk1fd0zpPwWESspO4qtPyIl8szEaN86XOYC1HRRzZrOowxjtw== - dependencies: - ajv "~8.18.0" - ajv-draft-04 "~1.0.0" - ajv-formats "~3.0.1" - fs-extra "~11.3.0" - import-lazy "~4.0.0" - jju "~1.4.0" - resolve "~1.22.1" - semver "~7.5.4" - -"@rushstack/problem-matcher@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz#e9f6cac2dd6a882d60e76a8d4462b7d24b4f17e5" - integrity sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog== - -"@rushstack/rig-package@0.7.2": - version "0.7.2" - resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.7.2.tgz#1ab5b3b5f59a753385b78dd89c077b9b8776987b" - integrity sha512-9XbFWuqMYcHUso4mnETfhGVUSaADBRj6HUAAEYk50nMPn8WRICmBuCphycQGNB3duIR6EEZX3Xj3SYc2XiP+9A== - dependencies: - resolve "~1.22.1" - strip-json-comments "~3.1.1" - -"@rushstack/terminal@0.22.5": - version "0.22.5" - resolved "https://registry.yarnpkg.com/@rushstack/terminal/-/terminal-0.22.5.tgz#98cbc0271b583c38b59ddeea1d68bbce311951d1" - integrity sha512-umej8J6A+WRbfQV1G/uNfnz4bMa8CzFU9IJzQb/ZcH4j7Ybg3BQ8UBKOCF3o5U3/2yah1TDU/zE71ugg2JJv+Q== - dependencies: - "@rushstack/node-core-library" "5.22.0" - "@rushstack/problem-matcher" "0.2.1" - supports-color "~8.1.1" - -"@rushstack/ts-command-line@5.3.5": - version "5.3.5" - resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-5.3.5.tgz#9670430917d77cfde0f16c9b7787996175660d1e" - integrity sha512-ToJQu3+o6aEdDoApGrwb/RsbwDi/NSC7jIEaAezzWM470TRrsXfSHoYAm1eWkhh34xJ+kZxU1ZzKSHiOMlOFPA== - dependencies: - "@rushstack/terminal" "0.22.5" - "@types/argparse" "1.0.38" - argparse "~1.0.9" - string-argv "~0.3.1" - -"@swc/core-darwin-arm64@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.15.24.tgz#e812659bb23c5a078c05c8b18aad25e9d3a12e39" - integrity sha512-uM5ZGfFXjtvtJ+fe448PVBEbn/CSxS3UAyLj3O9xOqKIWy3S6hPTXSPbszxkSsGDYKi+YFhzAsR4r/eXLxEQ0g== - -"@swc/core-darwin-x64@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.15.24.tgz#99e38bdb00a6975d54471f77c345b4ee9bbb4502" - integrity sha512-fMIb/Zfn929pw25VMBhV7Ji2Dl+lCWtUPNdYJQYOke+00E5fcQ9ynxtP8+qhUo/HZc+mYQb1gJxwHM9vty+lXg== - -"@swc/core-linux-arm-gnueabihf@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.15.24.tgz#3555ef64268825e4975409b7ed3e9f614e2f9759" - integrity sha512-vOkjsyjjxnoYx3hMEWcGxQrMgnNrRm6WAegBXrN8foHtDAR+zpdhpGF5a4lj1bNPgXAvmysjui8cM1ov/Clkaw== - -"@swc/core-linux-arm64-gnu@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.15.24.tgz#15677103362e56826bb8bc4e15090228f81ef448" - integrity sha512-h/oNu+upkXJ6Cicnq7YGVj9PkdfarLCdQa8l/FlHYvfv8CEiMaeeTnpLU7gSBH/rGxosM6Qkfa/J9mThGF9CLA== - -"@swc/core-linux-arm64-musl@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.15.24.tgz#d1655edac4d0101b9c21193770fb8642ced7ef37" - integrity sha512-ZpF/pRe1guk6sKzQI9D1jAORtjTdNlyeXn9GDz8ophof/w2WhojRblvSDJaGe7rJjcPN8AaOkhwdRUh7q8oYIg== - -"@swc/core-linux-ppc64-gnu@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-ppc64-gnu/-/core-linux-ppc64-gnu-1.15.24.tgz#65dc9265686cc24a63d5d8a41a01efe432993181" - integrity sha512-QZEsZfisHTSJlmyChgDFNmKPb3W6Lhbfo/O76HhIngfEdnQNmukS38/VSe1feho+xkV5A5hETyCbx3sALBZKAQ== - -"@swc/core-linux-s390x-gnu@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-s390x-gnu/-/core-linux-s390x-gnu-1.15.24.tgz#89c575dbfa39fde1d83033bf4d13e1bf93c93f45" - integrity sha512-DLdJKVsJgglqQrJBuoUYNmzm3leI7kUZhLbZGHv42onfKsGf6JDS3+bzCUQfte/XOqDjh/tmmn1DR/CF/tCJFw== - -"@swc/core-linux-x64-gnu@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.15.24.tgz#5275c0b24b01b26fdb7a1b5da6bd062d94f9581f" - integrity sha512-IpLYfposPA/XLxYOKpRfeccl1p5dDa3+okZDHHTchBkXEaVCnq5MADPmIWwIYj1tudt7hORsEHccG5no6IUQRw== - -"@swc/core-linux-x64-musl@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.15.24.tgz#e65e6f0d7215ded63c0711c2284fe13127772209" - integrity sha512-JHy3fMSc0t/EPWgo74+OK5TGr51aElnzqfUPaiRf2qJ/BfX5CUCfMiWVBuhI7qmVMBnk1jTRnL/xZnOSHDPLYg== - -"@swc/core-win32-arm64-msvc@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.15.24.tgz#12dff91f148bc4e2e48d7990f175f108199f6f0d" - integrity sha512-Txj+qUH1z2bUd1P3JvwByfjKFti3cptlAxhWgmunBUUxy/IW3CXLZ6l6Gk4liANadKkU71nIU1X30Z5vpMT3BA== - -"@swc/core-win32-ia32-msvc@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.15.24.tgz#eb3747533a3c078bfee5d857b086774647506a4a" - integrity sha512-15D/nl3XwrhFpMv+MADFOiVwv3FvH9j8c6Rf8EXBT3Q5LoMh8YnDnSgPYqw1JzPnksvsBX6QPXLiPqmcR/Z4qQ== - -"@swc/core-win32-x64-msvc@1.15.24": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.15.24.tgz#a0ad3bb9b8755093efe656299aa167138a589708" - integrity sha512-PR0PlTlPra2JbaDphrOAzm6s0v9rA0F17YzB+XbWD95B4g2cWcZY9LAeTa4xll70VLw9Jr7xBrlohqlQmelMFQ== - -"@swc/core@^1.12.11": - version "1.15.24" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.15.24.tgz#258dd1f74c662d9a2535fcfa2aa8ff30fd23883d" - integrity sha512-5Hj8aNasue7yusUt8LGCUe/AjM7RMAce8ZoyDyiFwx7Al+GbYKL+yE7g4sJk8vEr1dKIkTRARkNIJENc4CjkBQ== - dependencies: - "@swc/counter" "^0.1.3" - "@swc/types" "^0.1.26" - optionalDependencies: - "@swc/core-darwin-arm64" "1.15.24" - "@swc/core-darwin-x64" "1.15.24" - "@swc/core-linux-arm-gnueabihf" "1.15.24" - "@swc/core-linux-arm64-gnu" "1.15.24" - "@swc/core-linux-arm64-musl" "1.15.24" - "@swc/core-linux-ppc64-gnu" "1.15.24" - "@swc/core-linux-s390x-gnu" "1.15.24" - "@swc/core-linux-x64-gnu" "1.15.24" - "@swc/core-linux-x64-musl" "1.15.24" - "@swc/core-win32-arm64-msvc" "1.15.24" - "@swc/core-win32-ia32-msvc" "1.15.24" - "@swc/core-win32-x64-msvc" "1.15.24" - -"@swc/counter@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" - integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== - -"@swc/types@^0.1.26": - version "0.1.26" - resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.26.tgz#2a976a1870caef1992316dda1464150ee36968b5" - integrity sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw== - dependencies: - "@swc/counter" "^0.1.3" - -"@types/argparse@1.0.38": - version "1.0.38" - resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" - integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== - -"@types/estree@1.0.8", "@types/estree@^1.0.0": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== - -"@types/node@^22.13.4": - version "22.19.17" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.17.tgz#09c71fb34ba2510f8ac865361b1fcb9552b8a581" - integrity sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q== - dependencies: - undici-types "~6.21.0" - -"@types/react-dom@^19.0.3": - version "19.2.3" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-19.2.3.tgz#c1e305d15a52a3e508d54dca770d202cb63abf2c" - integrity sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ== - -"@types/react@^19.0.8": - version "19.2.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz#39604929b5e3957e3a6fa0001dafb17c7af70bad" - integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w== - dependencies: - csstype "^3.2.2" - -"@typescript-eslint/eslint-plugin@^8.24.0": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.58.1.tgz#cb53038b83d165ca0ef96d67d875efbd56c50fa8" - integrity sha512-eSkwoemjo76bdXl2MYqtxg51HNwUSkWfODUOQ3PaTLZGh9uIWWFZIjyjaJnex7wXDu+TRx+ATsnSxdN9YWfRTQ== - dependencies: - "@eslint-community/regexpp" "^4.12.2" - "@typescript-eslint/scope-manager" "8.58.1" - "@typescript-eslint/type-utils" "8.58.1" - "@typescript-eslint/utils" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" - ignore "^7.0.5" - natural-compare "^1.4.0" - ts-api-utils "^2.5.0" - -"@typescript-eslint/parser@^8.24.0": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.58.1.tgz#0943eca522ac408bcdd649882c3d95b10ff00f62" - integrity sha512-gGkiNMPqerb2cJSVcruigx9eHBlLG14fSdPdqMoOcBfh+vvn4iCq2C8MzUB89PrxOXk0y3GZ1yIWb9aOzL93bw== - dependencies: - "@typescript-eslint/scope-manager" "8.58.1" - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/typescript-estree" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" - debug "^4.4.3" - -"@typescript-eslint/project-service@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.58.1.tgz#c78781b1ca1ec1e7bc6522efba89318c6d249feb" - integrity sha512-gfQ8fk6cxhtptek+/8ZIqw8YrRW5048Gug8Ts5IYcMLCw18iUgrZAEY/D7s4hkI0FxEfGakKuPK/XUMPzPxi5g== - dependencies: - "@typescript-eslint/tsconfig-utils" "^8.58.1" - "@typescript-eslint/types" "^8.58.1" - debug "^4.4.3" - -"@typescript-eslint/scope-manager@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.58.1.tgz#35168f561bab4e3fd10dd6b03e8b83c157479211" - integrity sha512-TPYUEqJK6avLcEjumWsIuTpuYODTTDAtoMdt8ZZa93uWMTX13Nb8L5leSje1NluammvU+oI3QRr5lLXPgihX3w== - dependencies: - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" - -"@typescript-eslint/tsconfig-utils@8.58.1", "@typescript-eslint/tsconfig-utils@^8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.58.1.tgz#eb16792c579300c7bfb3c74b0f5e1dfbb0a2454d" - integrity sha512-JAr2hOIct2Q+qk3G+8YFfqkqi7sC86uNryT+2i5HzMa2MPjw4qNFvtjnw1IiA1rP7QhNKVe21mSSLaSjwA1Olw== - -"@typescript-eslint/type-utils@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.58.1.tgz#b21085a233087bde94c92ba6f5b4dfb77ca56730" - integrity sha512-HUFxvTJVroT+0rXVJC7eD5zol6ID+Sn5npVPWoFuHGg9Ncq5Q4EYstqR+UOqaNRFXi5TYkpXXkLhoCHe3G0+7w== - dependencies: - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/typescript-estree" "8.58.1" - "@typescript-eslint/utils" "8.58.1" - debug "^4.4.3" - ts-api-utils "^2.5.0" - -"@typescript-eslint/types@8.58.1", "@typescript-eslint/types@^8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.58.1.tgz#9dfb4723fcd2b13737d8b03d941354cf73190313" - integrity sha512-io/dV5Aw5ezwzfPBBWLoT+5QfVtP8O7q4Kftjn5azJ88bYyp/ZMCsyW1lpKK46EXJcaYMZ1JtYj+s/7TdzmQMw== - -"@typescript-eslint/typescript-estree@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.58.1.tgz#8230cc9628d2cffef101e298c62807c4b9bf2fe9" - integrity sha512-w4w7WR7GHOjqqPnvAYbazq+Y5oS68b9CzasGtnd6jIeOIeKUzYzupGTB2T4LTPSv4d+WPeccbxuneTFHYgAAWg== - dependencies: - "@typescript-eslint/project-service" "8.58.1" - "@typescript-eslint/tsconfig-utils" "8.58.1" - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/visitor-keys" "8.58.1" - debug "^4.4.3" - minimatch "^10.2.2" - semver "^7.7.3" - tinyglobby "^0.2.15" - ts-api-utils "^2.5.0" - -"@typescript-eslint/utils@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.58.1.tgz#099a327b04ed921e6ee3988cde9ef34bc4b5435a" - integrity sha512-Ln8R0tmWC7pTtLOzgJzYTXSCjJ9rDNHAqTaVONF4FEi2qwce8mD9iSOxOpLFFvWp/wBFlew0mjM1L1ihYWfBdQ== - dependencies: - "@eslint-community/eslint-utils" "^4.9.1" - "@typescript-eslint/scope-manager" "8.58.1" - "@typescript-eslint/types" "8.58.1" - "@typescript-eslint/typescript-estree" "8.58.1" - -"@typescript-eslint/visitor-keys@8.58.1": - version "8.58.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.58.1.tgz#7c197533177f1ba9b8249f55f7f685e32bb6f204" - integrity sha512-y+vH7QE8ycjoa0bWciFg7OpFcipUuem1ujhrdLtq1gByKwfbC7bPeKsiny9e0urg93DqwGcHey+bGRKCnF1nZQ== - dependencies: - "@typescript-eslint/types" "8.58.1" - eslint-visitor-keys "^5.0.0" - -"@ungap/structured-clone@^1.2.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" - integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== - -"@vitejs/plugin-react-swc@^3": - version "3.11.0" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.11.0.tgz#d82cc307d530197a77b50238860cf319890ffc17" - integrity sha512-YTJCGFdNMHCMfjODYtxRNVAYmTWQ1Lb8PulP/2/f/oEEtglw8oKxKIZmmRkyXrVrHfsKOaVkAc3NT9/dMutO5w== - dependencies: - "@rolldown/pluginutils" "1.0.0-beta.27" - "@swc/core" "^1.12.11" - -"@volar/language-core@2.4.28", "@volar/language-core@~2.4.11": - version "2.4.28" - resolved "https://registry.yarnpkg.com/@volar/language-core/-/language-core-2.4.28.tgz#c21f365a91c1dffe8bd7264fd491770c8d74fef3" - integrity sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ== - dependencies: - "@volar/source-map" "2.4.28" - -"@volar/source-map@2.4.28": - version "2.4.28" - resolved "https://registry.yarnpkg.com/@volar/source-map/-/source-map-2.4.28.tgz#b40254e8c96199e5f1e0796777c593c617ad270e" - integrity sha512-yX2BDBqJkRXfKw8my8VarTyjv48QwxdJtvRgUpNE5erCsgEUdI2DsLbpa+rOQVAJYshY99szEcRDmyHbF10ggQ== - -"@volar/typescript@^2.4.11": - version "2.4.28" - resolved "https://registry.yarnpkg.com/@volar/typescript/-/typescript-2.4.28.tgz#83f86356e84eb101b8081a44c104f2f2ced8411f" - integrity sha512-Ja6yvWrbis2QtN4ClAKreeUZPVYMARDYZl9LMEv1iQ1QdepB6wn0jTRxA9MftYmYa4DQ4k/DaSZpFPUfxl8giw== - dependencies: - "@volar/language-core" "2.4.28" - path-browserify "^1.0.1" - vscode-uri "^3.0.8" - -"@vue/compiler-core@3.5.32": - version "3.5.32" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.32.tgz#5115ca099b04fedd8f623f93b522d914c376cbeb" - integrity sha512-4x74Tbtqnda8s/NSD6e1Dr5p1c8HdMU5RWSjMSUzb8RTcUQqevDCxVAitcLBKT+ie3o0Dl9crc/S/opJM7qBGQ== - dependencies: - "@babel/parser" "^7.29.2" - "@vue/shared" "3.5.32" - entities "^7.0.1" - estree-walker "^2.0.2" - source-map-js "^1.2.1" - -"@vue/compiler-dom@^3.5.0": - version "3.5.32" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.32.tgz#6069eae2f0d1a38263e9445f3c1da1a06e5f6534" - integrity sha512-ybHAu70NtiEI1fvAUz3oXZqkUYEe5J98GjMDpTGl5iHb0T15wQYLR4wE3h9xfuTNA+Cm2f4czfe8B4s+CCH57Q== - dependencies: - "@vue/compiler-core" "3.5.32" - "@vue/shared" "3.5.32" - -"@vue/compiler-vue2@^2.7.16": - version "2.7.16" - resolved "https://registry.yarnpkg.com/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz#2ba837cbd3f1b33c2bc865fbe1a3b53fb611e249" - integrity sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A== - dependencies: - de-indent "^1.0.2" - he "^1.2.0" - -"@vue/language-core@2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@vue/language-core/-/language-core-2.2.0.tgz#e48c54584f889f78b120ce10a050dfb316c7fcdf" - integrity sha512-O1ZZFaaBGkKbsRfnVH1ifOK1/1BUkyK+3SQsfnh6PmMmD4qJcTU8godCeA96jjDRTL6zgnK7YzCHfaUlH2r0Mw== - dependencies: - "@volar/language-core" "~2.4.11" - "@vue/compiler-dom" "^3.5.0" - "@vue/compiler-vue2" "^2.7.16" - "@vue/shared" "^3.5.0" - alien-signals "^0.4.9" - minimatch "^9.0.3" - muggle-string "^0.4.1" - path-browserify "^1.0.1" - -"@vue/shared@3.5.32", "@vue/shared@^3.5.0": - version "3.5.32" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.32.tgz#dd8ba0d709bf3f758c324a81c8897bad5e1540cf" - integrity sha512-ksNyrmRQzWJJ8n3cRDuSF7zNNontuJg1YHnmWRJd2AMu8Ij2bqwiiri2lH5rHtYPZjj4STkNcgcmiQqlOjiYGg== - -acorn-jsx@^5.3.2: - version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" - integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== - -acorn@^8.16.0: - version "8.16.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" - integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== - -acorn@^8.9.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" - integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== - -ajv-draft-04@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8" - integrity sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw== - -ajv-formats@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-3.0.1.tgz#3d5dc762bca17679c3c2ea7e90ad6b7532309578" - integrity sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ== - dependencies: - ajv "^8.0.0" - -ajv@^6.12.4: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^8.0.0, ajv@~8.18.0: - version "8.18.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.18.0.tgz#8864186b6738d003eb3a933172bb3833e10cefbc" - integrity sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A== - dependencies: - fast-deep-equal "^3.1.3" - fast-uri "^3.0.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - -alien-signals@^0.4.9: - version "0.4.14" - resolved "https://registry.yarnpkg.com/alien-signals/-/alien-signals-0.4.14.tgz#9ff8f72a272300a51692f54bd9bbbada78fbf539" - integrity sha512-itUAVzhczTmP2U5yX67xVpsbbOiquusbWVyA9N+sy6+r6YVbFkahXvNCeEPWEOMhwDYwbVbGHFkVL03N9I5g+Q== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -argparse@~1.0.9: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -balanced-match@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" - integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== - -brace-expansion@^1.1.7: - version "1.1.14" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.14.tgz#d9de602370d91347cd9ddad1224d4fd701eb348b" - integrity sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.2: - version "2.1.0" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.1.0.tgz#4f41a41190216ee36067ec381526fe9539c4f0ae" - integrity sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w== - dependencies: - balanced-match "^1.0.0" - -brace-expansion@^5.0.2, brace-expansion@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb" - integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ== - dependencies: - balanced-match "^4.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -chalk@^4.0.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -compare-versions@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.1.tgz#7af3cc1099ba37d244b3145a9af5201b629148a9" - integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -confbox@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.8.tgz#820d73d3b3c82d9bd910652c5d4d599ef8ff8b06" - integrity sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w== - -confbox@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.2.4.tgz#592e7be71f882a4a874e3c88f0ac1ef6f7da1ce5" - integrity sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ== - -cross-spawn@^7.0.2, cross-spawn@^7.0.6: - version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" - integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -csstype@^3.2.2: - version "3.2.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" - integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== - -de-indent@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d" - integrity sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - -debug@^4.3.1, debug@^4.3.2: - version "4.4.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" - integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== - dependencies: - ms "^2.1.3" - -debug@^4.4.0, debug@^4.4.3: - version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" - integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== - dependencies: - ms "^2.1.3" - -deep-is@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -diff@~8.0.2: - version "8.0.4" - resolved "https://registry.yarnpkg.com/diff/-/diff-8.0.4.tgz#4f5baf3188b9b2431117b962eb20ba330fadf696" - integrity sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw== - -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - -entities@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.1.tgz#26e8a88889db63417dcb9a1e79a3f1bc92b5976b" - integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== - -es-errors@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" - integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - -esbuild@^0.25.0: - version "0.25.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5" - integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== - optionalDependencies: - "@esbuild/aix-ppc64" "0.25.12" - "@esbuild/android-arm" "0.25.12" - "@esbuild/android-arm64" "0.25.12" - "@esbuild/android-x64" "0.25.12" - "@esbuild/darwin-arm64" "0.25.12" - "@esbuild/darwin-x64" "0.25.12" - "@esbuild/freebsd-arm64" "0.25.12" - "@esbuild/freebsd-x64" "0.25.12" - "@esbuild/linux-arm" "0.25.12" - "@esbuild/linux-arm64" "0.25.12" - "@esbuild/linux-ia32" "0.25.12" - "@esbuild/linux-loong64" "0.25.12" - "@esbuild/linux-mips64el" "0.25.12" - "@esbuild/linux-ppc64" "0.25.12" - "@esbuild/linux-riscv64" "0.25.12" - "@esbuild/linux-s390x" "0.25.12" - "@esbuild/linux-x64" "0.25.12" - "@esbuild/netbsd-arm64" "0.25.12" - "@esbuild/netbsd-x64" "0.25.12" - "@esbuild/openbsd-arm64" "0.25.12" - "@esbuild/openbsd-x64" "0.25.12" - "@esbuild/openharmony-arm64" "0.25.12" - "@esbuild/sunos-x64" "0.25.12" - "@esbuild/win32-arm64" "0.25.12" - "@esbuild/win32-ia32" "0.25.12" - "@esbuild/win32-x64" "0.25.12" - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -eslint-plugin-react-hooks@^4.6.0: - version "4.6.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596" - integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ== - -eslint-plugin-react-refresh@^0.4: - version "0.4.26" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.26.tgz#2bcdd109ea9fb4e0b56bb1b5146cf8841b21b626" - integrity sha512-1RETEylht2O6FM/MvgnyvT+8K21wLqDNg4qD51Zj3guhjt433XbnnkVttHMyaVyAFD03QSV4LPS5iE3VQmO7XQ== - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== - dependencies: - esrecurse "^4.3.0" - estraverse "^5.2.0" - -eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: - version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" - integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== - -eslint-visitor-keys@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" - integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== - -eslint@^8.56.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" - "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" - ajv "^6.12.4" - chalk "^4.0.0" - cross-spawn "^7.0.2" - debug "^4.3.2" - doctrine "^3.0.0" - escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" - esutils "^2.0.2" - fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" - find-up "^5.0.0" - glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" - ignore "^5.2.0" - imurmurhash "^0.1.4" - is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" - lodash.merge "^4.6.2" - minimatch "^3.1.2" - natural-compare "^1.4.0" - optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" - -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== - dependencies: - acorn "^8.9.0" - acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" - -esquery@^1.4.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" - integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== - dependencies: - estraverse "^5.1.0" - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^5.1.0, estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -exsolve@^1.0.7: - version "1.0.8" - resolved "https://registry.yarnpkg.com/exsolve/-/exsolve-1.0.8.tgz#7f5e34da61cd1116deda5136e62292c096f50613" - integrity sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA== - -fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-uri@^3.0.1: - version "3.1.0" - resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" - integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== - -fastq@^1.6.0: - version "1.20.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" - integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== - dependencies: - reusify "^1.0.4" - -fdir@^6.4.4, fdir@^6.5.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" - integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== - -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== - dependencies: - flat-cache "^3.0.4" - -find-up@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" - integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== - dependencies: - locate-path "^6.0.0" - path-exists "^4.0.0" - -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== - dependencies: - flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" - -flatted@^3.2.9: - version "3.3.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.2.tgz#adba1448a9841bec72b42c532ea23dbbedef1a27" - integrity sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA== - -foreground-child@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" - integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== - dependencies: - cross-spawn "^7.0.6" - signal-exit "^4.0.1" - -fs-extra@~11.3.0: - version "11.3.4" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.4.tgz#ab6934eca8bcf6f7f6b82742e33591f86301d6fc" - integrity sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@~2.3.2, fsevents@~2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" - integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^11.0.1: - version "11.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-11.1.0.tgz#4f826576e4eb99c7dad383793d2f9f08f67e50a6" - integrity sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw== - dependencies: - foreground-child "^3.3.1" - jackspeak "^4.1.1" - minimatch "^10.1.1" - minipass "^7.1.2" - package-json-from-dist "^1.0.0" - path-scurry "^2.0.0" - -glob@^7.1.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" - integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -hasown@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" - integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - dependencies: - function-bind "^1.1.2" - -he@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -ignore@^5.2.0: - version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" - integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== - -ignore@^7.0.5: - version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" - integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== - -import-fresh@^3.2.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" - integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== - dependencies: - parent-module "^1.0.0" - resolve-from "^4.0.0" - -import-lazy@~4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" - integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -is-core-module@^2.16.1: - version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" - integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== - dependencies: - hasown "^2.0.2" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.0, is-glob@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -jackspeak@^4.1.1: - version "4.2.3" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.2.3.tgz#27ef80f33b93412037c3bea4f8eddf80e1931483" - integrity sha512-ykkVRwrYvFm1nb2AJfKKYPr0emF6IiXDYUaFx4Zn9ZuIH7MrzEZ3sD5RlqGXNRpHtvUHJyOnCEFxOlNDtGo7wg== - dependencies: - "@isaacs/cliui" "^9.0.0" - -jju@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" - integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - -jsonfile@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" - integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -keyv@^4.5.3: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - -kolorist@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/kolorist/-/kolorist-1.8.0.tgz#edddbbbc7894bc13302cdf740af6374d4a04743c" - integrity sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== - -levn@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" - integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== - dependencies: - prelude-ls "^1.2.1" - type-check "~0.4.0" - -local-pkg@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-1.1.2.tgz#c03d208787126445303f8161619dc701afa4abb5" - integrity sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A== - dependencies: - mlly "^1.7.4" - pkg-types "^2.3.0" - quansync "^0.2.11" - -locate-path@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" - integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - dependencies: - p-locate "^5.0.0" - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lodash@~4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" - integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== - -lru-cache@^11.0.0: - version "11.3.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.3.3.tgz#d6c633c2a9657760fd30594d8d98da65330d9d78" - integrity sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.30.17: - version "0.30.21" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" - integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== - dependencies: - "@jridgewell/sourcemap-codec" "^1.5.5" - -minimatch@10.2.3: - version "10.2.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.3.tgz#c0ef582f21071b0123a5bbf275252ebda921fbf6" - integrity sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg== - dependencies: - brace-expansion "^5.0.2" - -minimatch@^10.1.1, minimatch@^10.2.2: - version "10.2.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.5.tgz#bd48687a0be38ed2961399105600f832095861d1" - integrity sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg== - dependencies: - brace-expansion "^5.0.5" - -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^9.0.3: - version "9.0.9" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.9.tgz#9b0cb9fcb78087f6fd7eababe2511c4d3d60574e" - integrity sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg== - dependencies: - brace-expansion "^2.0.2" - -minipass@^7.1.2: - version "7.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.3.tgz#79389b4eb1bb2d003a9bba87d492f2bd37bdc65b" - integrity sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A== - -mlly@^1.7.4: - version "1.8.2" - resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.8.2.tgz#e7f7919a82d13b174405613117249a3f449d78bb" - integrity sha512-d+ObxMQFmbt10sretNDytwt85VrbkhhUA/JBGm1MPaWJ65Cl4wOgLaB1NYvJSZ0Ef03MMEU/0xpPMXUIQ29UfA== - dependencies: - acorn "^8.16.0" - pathe "^2.0.3" - pkg-types "^1.3.1" - ufo "^1.6.3" - -ms@^2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -muggle-string@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/muggle-string/-/muggle-string-0.4.1.tgz#3b366bd43b32f809dc20659534dd30e7c8a0d328" - integrity sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ== - -nanoid@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" - integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -optionator@^0.9.3: - version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" - integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== - dependencies: - deep-is "^0.1.3" - fast-levenshtein "^2.0.6" - levn "^0.4.1" - prelude-ls "^1.2.1" - type-check "^0.4.0" - word-wrap "^1.2.5" - -p-limit@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - dependencies: - yocto-queue "^0.1.0" - -p-locate@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" - integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== - dependencies: - p-limit "^3.0.2" - -package-json-from-dist@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" - integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== - -parent-module@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== - dependencies: - callsites "^3.0.0" - -path-browserify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-scurry@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.2.tgz#6be0d0ee02a10d9e0de7a98bae65e182c9061f85" - integrity sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg== - dependencies: - lru-cache "^11.0.0" - minipass "^7.1.2" - -pathe@^2.0.1, pathe@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" - integrity sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w== - -picocolors@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" - integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== - -picomatch@^4.0.2, picomatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.4.tgz#fd6f5e00a143086e074dffe4c924b8fb293b0589" - integrity sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A== - -pkg-types@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.3.1.tgz#bd7cc70881192777eef5326c19deb46e890917df" - integrity sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ== - dependencies: - confbox "^0.1.8" - mlly "^1.7.4" - pathe "^2.0.1" - -pkg-types@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-2.3.0.tgz#037f2c19bd5402966ff6810e32706558cb5b5726" - integrity sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig== - dependencies: - confbox "^0.2.2" - exsolve "^1.0.7" - pathe "^2.0.3" - -postcss@^8.5.3: - version "8.5.9" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.9.tgz#f6ee9e0b94f0f19c97d2f172bfbd7fc71fe1cca4" - integrity sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw== - dependencies: - nanoid "^3.3.11" - picocolors "^1.1.1" - source-map-js "^1.2.1" - -prelude-ls@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" - integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== - -punycode@^2.1.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" - integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - -quansync@^0.2.11: - version "0.2.11" - resolved "https://registry.yarnpkg.com/quansync/-/quansync-0.2.11.tgz#f9c3adda2e1272e4f8cf3f1457b04cbdb4ee692a" - integrity sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -react-dom@^19.0.0: - version "19.2.5" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.2.5.tgz#b8768b10837d0b8e9ca5b9e2d58dff3d880ea25e" - integrity sha512-J5bAZz+DXMMwW/wV3xzKke59Af6CHY7G4uYLN1OvBcKEsWOs4pQExj86BBKamxl/Ik5bx9whOrvBlSDfWzgSag== - dependencies: - scheduler "^0.27.0" - -react@^19.0.0: - version "19.2.5" - resolved "https://registry.yarnpkg.com/react/-/react-19.2.5.tgz#c888ab8b8ef33e2597fae8bdb2d77edbdb42858b" - integrity sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -resolve-from@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== - -resolve@~1.22.1, resolve@~1.22.2: - version "1.22.12" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.12.tgz#f5b2a680897c69c238a13cd16b15671f8b73549f" - integrity sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA== - dependencies: - es-errors "^1.3.0" - is-core-module "^2.16.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" - integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rollup@^4.34.9: - version "4.60.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.60.1.tgz#b4aa2bcb3a5e1437b5fad40d43fe42d4bde7a42d" - integrity sha512-VmtB2rFU/GroZ4oL8+ZqXgSA38O6GR8KSIvWmEFv63pQ0G6KaBH9s07PO8XTXP4vI+3UJUEypOfjkGfmSBBR0w== - dependencies: - "@types/estree" "1.0.8" - optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.60.1" - "@rollup/rollup-android-arm64" "4.60.1" - "@rollup/rollup-darwin-arm64" "4.60.1" - "@rollup/rollup-darwin-x64" "4.60.1" - "@rollup/rollup-freebsd-arm64" "4.60.1" - "@rollup/rollup-freebsd-x64" "4.60.1" - "@rollup/rollup-linux-arm-gnueabihf" "4.60.1" - "@rollup/rollup-linux-arm-musleabihf" "4.60.1" - "@rollup/rollup-linux-arm64-gnu" "4.60.1" - "@rollup/rollup-linux-arm64-musl" "4.60.1" - "@rollup/rollup-linux-loong64-gnu" "4.60.1" - "@rollup/rollup-linux-loong64-musl" "4.60.1" - "@rollup/rollup-linux-ppc64-gnu" "4.60.1" - "@rollup/rollup-linux-ppc64-musl" "4.60.1" - "@rollup/rollup-linux-riscv64-gnu" "4.60.1" - "@rollup/rollup-linux-riscv64-musl" "4.60.1" - "@rollup/rollup-linux-s390x-gnu" "4.60.1" - "@rollup/rollup-linux-x64-gnu" "4.60.1" - "@rollup/rollup-linux-x64-musl" "4.60.1" - "@rollup/rollup-openbsd-x64" "4.60.1" - "@rollup/rollup-openharmony-arm64" "4.60.1" - "@rollup/rollup-win32-arm64-msvc" "4.60.1" - "@rollup/rollup-win32-ia32-msvc" "4.60.1" - "@rollup/rollup-win32-x64-gnu" "4.60.1" - "@rollup/rollup-win32-x64-msvc" "4.60.1" - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -scheduler@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.27.0.tgz#0c4ef82d67d1e5c1e359e8fc76d3a87f045fe5bd" - integrity sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q== - -semver@^7.7.3: - version "7.7.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" - integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== - -semver@~7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -signal-exit@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" - integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - -source-map-js@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" - integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -string-argv@~0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" - integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@~8.1.1: - version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - -tinyglobby@^0.2.13, tinyglobby@^0.2.15: - version "0.2.16" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.16.tgz#1c3b7eb953fce42b226bc5a1ee06428281aff3d6" - integrity sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg== - dependencies: - fdir "^6.5.0" - picomatch "^4.0.4" - -ts-api-utils@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.5.0.tgz#4acd4a155e22734990a5ed1fe9e97f113bcb37c1" - integrity sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA== - -type-check@^0.4.0, type-check@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" - integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== - dependencies: - prelude-ls "^1.2.1" - -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - -typescript@5.9.3, typescript@^5: - version "5.9.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" - integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== - -ufo@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.6.3.tgz#799666e4e88c122a9659805e30b9dc071c3aed4f" - integrity sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q== - -undici-types@~6.21.0: - version "6.21.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" - integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== - -universalify@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" - integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -vite-plugin-dts@^4.5.0: - version "4.5.4" - resolved "https://registry.yarnpkg.com/vite-plugin-dts/-/vite-plugin-dts-4.5.4.tgz#51b60aaaa760d9cf5c2bb3676c69d81910d6b08c" - integrity sha512-d4sOM8M/8z7vRXHHq/ebbblfaxENjogAAekcfcDCCwAyvGqnPrc7f4NZbvItS+g4WTgerW0xDwSz5qz11JT3vg== - dependencies: - "@microsoft/api-extractor" "^7.50.1" - "@rollup/pluginutils" "^5.1.4" - "@volar/typescript" "^2.4.11" - "@vue/language-core" "2.2.0" - compare-versions "^6.1.1" - debug "^4.4.0" - kolorist "^1.8.0" - local-pkg "^1.0.0" - magic-string "^0.30.17" - -vite@^6: - version "6.4.2" - resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.2.tgz#a4e548ca3a90ca9f3724582cab35e1ba15efc6f2" - integrity sha512-2N/55r4JDJ4gdrCvGgINMy+HH3iRpNIz8K6SFwVsA+JbQScLiC+clmAxBgwiSPgcG9U15QmvqCGWzMbqda5zGQ== - dependencies: - esbuild "^0.25.0" - fdir "^6.4.4" - picomatch "^4.0.2" - postcss "^8.5.3" - rollup "^4.34.9" - tinyglobby "^0.2.13" - optionalDependencies: - fsevents "~2.3.3" - -vscode-uri@^3.0.8: - version "3.1.0" - resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.1.0.tgz#dd09ec5a66a38b5c3fffc774015713496d14e09c" - integrity sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -word-wrap@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==