diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index 5f2846c..48a486e 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -82,3 +82,23 @@ jobs:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }}
IS_PRE_RELEASE: ${{ needs.check_if_version_upgraded.outputs.is_pre_release }}
+
+ publish_playground:
+ runs-on: ubuntu-latest
+ needs:
+ - publish_on_npm
+ steps:
+ - uses: actions/checkout@v4
+ with:
+ ref: ${{ github.ref }}
+ - uses: actions/setup-node@v4
+ with:
+ registry-url: https://registry.npmjs.org/
+ - uses: bahmutov/npm-install@v1
+ with:
+ working-directory: demo
+ - run: |
+ cd demo
+ yarn publish-to-gh-pages
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..efd261b
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1 @@
+demo
\ No newline at end of file
diff --git a/README.md b/README.md
index 3398da2..dab843b 100644
--- a/README.md
+++ b/README.md
@@ -124,3 +124,13 @@ The following options can be set for fields of type `array`:
> "ui:hideTitle": true,
> ...
> ```
+
+## Development
+
+Launch the playground to play with the DSFR theme :
+
+```sh
+cd demo
+yarn
+yarn start
+```
diff --git a/demo/.gitignore b/demo/.gitignore
new file mode 100644
index 0000000..13118bb
--- /dev/null
+++ b/demo/.gitignore
@@ -0,0 +1,2 @@
+
+/public/dsfr/
diff --git a/demo/index.html b/demo/index.html
new file mode 100644
index 0000000..c23adf1
--- /dev/null
+++ b/demo/index.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+ rjsf-dsfr playground
+
+
+
+
+
+
+
+
+
diff --git a/demo/package.json b/demo/package.json
new file mode 100644
index 0000000..0800503
--- /dev/null
+++ b/demo/package.json
@@ -0,0 +1,79 @@
+{
+ "name": "playground",
+ "version": "1.0.0",
+ "description": "rjsf-dsfr playground",
+ "license": "Apache-2.0",
+ "private": true,
+ "scripts": {
+ "cs-check": "prettier -l \"src/**/*.ts?(x)\"",
+ "cs-format": "prettier \"src/**/*.ts?(x)\" --write",
+ "build": "rimraf build && cross-env NODE_ENV=production vite build",
+ "publish-to-gh-pages": "npm run build && gh-pages --dist dist/",
+ "start": "vite --force",
+ "preview": "vite preview",
+ "postinstall": "copy-dsfr-to-public",
+ "prestart": "only-include-used-icons",
+ "prebuild": "only-include-used-icons"
+ },
+ "lint-staged": {
+ "src/**/*.ts?(x)": [
+ "eslint --fix"
+ ]
+ },
+ "files": [
+ "dist",
+ "lib",
+ "src"
+ ],
+ "engineStrict": false,
+ "engines": {
+ "node": ">=18"
+ },
+ "dependencies": {
+ "@codegouvfr/react-dsfr": "^1.9.22",
+ "@codegouvfr/rjsf-dsfr": "^0.1.4",
+ "@rjsf/bootstrap-4": "^5.18.5",
+ "@rjsf/core": "^5.18.4",
+ "@rjsf/utils": "^5.18.4",
+ "@rjsf/validator-ajv8": "^5.18.4",
+ "ajv-i18n": "^4.2.0",
+ "atob": "^2.1.2",
+ "core-js": "^3.35.1",
+ "dayjs": "^1.11.10",
+ "deep-freeze-es6": "^1.4.1",
+ "framer-motion": "^5.6.0",
+ "jss": "^10.10.0",
+ "lodash": "^4.17.21",
+ "monaco-editor": "^0.38.0",
+ "react": "^18.3.1",
+ "react-bootstrap": "^1.6.8",
+ "react-dom": "^18.3.1",
+ "react-frame-component": "^4.1.3",
+ "react-is": "^18.2.0",
+ "react-portal": "^4.2.2"
+ },
+ "devDependencies": {
+ "@emotion/cache": "^11.11.0",
+ "@emotion/react": "^11.11.3",
+ "@emotion/styled": "^11.11.0",
+ "@monaco-editor/react": "^4.6.0",
+ "@types/lodash": "^4.14.202",
+ "@types/node": "^20.11.20",
+ "@types/react-frame-component": "^4.1.6",
+ "@vitejs/plugin-react": "^4.2.1",
+ "cross-env": "^7.0.3",
+ "esbuild": "^0.18.20",
+ "gh-pages": "^5.0.0",
+ "html": "^1.0.0",
+ "html-webpack-plugin": "^5.6.0",
+ "loader-utils": "^3.2.1",
+ "mini-css-extract-plugin": "^2.8.0",
+ "prettier": "^3.3.2",
+ "react-transform-catch-errors": "^1.0.2",
+ "react-transform-hmr": "^1.0.4",
+ "rimraf": "^5.0.5",
+ "source-map-loader": "^4.0.2",
+ "typescript": "^4.9.5",
+ "vite": "^4.5.2"
+ }
+}
diff --git a/demo/public/.gitkeep b/demo/public/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/demo/src/app.tsx b/demo/src/app.tsx
new file mode 100644
index 0000000..e713be7
--- /dev/null
+++ b/demo/src/app.tsx
@@ -0,0 +1,39 @@
+import { templatesDSFR, widgetsDSFR } from '@codegouvfr/rjsf-dsfr'
+import { customizeValidator } from '@rjsf/validator-ajv8'
+import localize_fr from 'ajv-i18n/localize/fr'
+import { Theme as Bootstrap4Theme } from '@rjsf/bootstrap-4'
+
+import Layout from './layout'
+import Playground, { PlaygroundProps } from './components'
+
+const DSFRTheme = {
+ templates: templatesDSFR,
+ widgets: widgetsDSFR,
+}
+
+const frV8Validator = customizeValidator({}, localize_fr)
+
+const validators: PlaygroundProps['validators'] = {
+ AJV8: frV8Validator,
+}
+
+const themes: PlaygroundProps['themes'] = {
+ dsfr: {
+ stylesheets: ['/dsfr/dsfr.main.css', '/dsfr/utility/icons/icons.css'],
+ theme: DSFRTheme,
+ },
+ 'bootstrap-4': {
+ stylesheets: [
+ 'https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css',
+ ],
+ theme: Bootstrap4Theme,
+ },
+}
+
+export default function App() {
+ return (
+
+
+
+ )
+}
diff --git a/demo/src/components/CopyLink.tsx b/demo/src/components/CopyLink.tsx
new file mode 100644
index 0000000..925ceda
--- /dev/null
+++ b/demo/src/components/CopyLink.tsx
@@ -0,0 +1,34 @@
+import { useRef } from 'react';
+
+interface CopyLinkProps {
+ shareURL: string | null;
+ onShare: () => void;
+}
+
+export default function CopyLink({ shareURL, onShare }: CopyLinkProps) {
+ const input = useRef(null);
+
+ function onCopyClick() {
+ input.current?.select();
+ navigator.clipboard.writeText(input.current?.value ?? '');
+ }
+
+ if (!shareURL) {
+ return (
+
+ Share
+
+ );
+ }
+
+ return (
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/demo/src/components/DemoFrame.tsx b/demo/src/components/DemoFrame.tsx
new file mode 100644
index 0000000..cae05b6
--- /dev/null
+++ b/demo/src/components/DemoFrame.tsx
@@ -0,0 +1,89 @@
+import {
+ useState,
+ useRef,
+ useCallback,
+ cloneElement,
+ ReactElement,
+ ReactNode,
+} from 'react'
+import { CacheProvider } from '@emotion/react'
+import createCache, { EmotionCache } from '@emotion/cache'
+import { create, Jss } from 'jss'
+import Frame, {
+ FrameComponentProps,
+ FrameContextConsumer,
+} from 'react-frame-component'
+
+interface DemoFrameProps extends FrameComponentProps {
+ theme: string
+ /** override children to be ReactElement to avoid Typescript issue. In this case we don't need to worry about
+ * children being of the other valid ReactNode types, undefined and string as it always contains an RJSF `Form`
+ */
+ children: ReactElement
+}
+
+export default function DemoFrame(props: DemoFrameProps) {
+ const { children, head, theme, ...frameProps } = props
+
+ const [jss, setJss] = useState()
+ const [ready, setReady] = useState(false)
+ const [sheetsManager, setSheetsManager] = useState(new Map())
+ const [emotionCache, setEmotionCache] = useState(
+ createCache({ key: 'css' })
+ )
+ const [container, setContainer] = useState()
+ const [window, setWindow] = useState()
+
+ const instanceRef = useRef()
+
+ const handleRef = useCallback(
+ (ref: any) => {
+ instanceRef.current = {
+ contentDocument: ref ? ref.node.contentDocument : null,
+ contentWindow: ref ? ref.node.contentWindow : null,
+ }
+ },
+ [instanceRef]
+ )
+
+ const onContentDidMount = useCallback(() => {
+ setReady(true)
+ setJss(
+ create({
+ //plugins: jssPreset().plugins,
+ insertionPoint: instanceRef.current.contentWindow['demo-frame-jss'],
+ })
+ )
+ setSheetsManager(new Map())
+ setEmotionCache(
+ createCache({
+ key: 'css',
+ prepend: true,
+ container: instanceRef.current.contentWindow['demo-frame-jss'],
+ })
+ )
+ setContainer(instanceRef.current.contentDocument.body)
+
+ setWindow(() => instanceRef.current.contentWindow)
+ }, [])
+
+ let body: ReactNode = children
+ if (theme === 'dsfr') {
+ body = ready ? (
+ {children}
+ ) : // TODO {children}
+ null
+ }
+
+ return (
+
+
+ {body}
+
+ )
+}
diff --git a/demo/src/components/Editors.tsx b/demo/src/components/Editors.tsx
new file mode 100644
index 0000000..12d7f08
--- /dev/null
+++ b/demo/src/components/Editors.tsx
@@ -0,0 +1,146 @@
+import { useCallback, useState } from 'react';
+import MonacoEditor from '@monaco-editor/react';
+import { ErrorSchema, RJSFSchema, UiSchema } from '@rjsf/utils';
+import isEqualWith from 'lodash/isEqualWith';
+
+const monacoEditorOptions = {
+ minimap: {
+ enabled: false,
+ },
+ automaticLayout: true,
+};
+
+type EditorProps = {
+ title: string;
+ code: string;
+ onChange: (code: string) => void;
+};
+
+function Editor({ title, code, onChange }: EditorProps) {
+ const [valid, setValid] = useState(true);
+
+ const onCodeChange = useCallback(
+ (code: string | undefined) => {
+ if (!code) {
+ return;
+ }
+
+ try {
+ const parsedCode = JSON.parse(code);
+ setValid(true);
+ onChange(parsedCode);
+ } catch (err) {
+ setValid(false);
+ }
+ },
+ [setValid, onChange]
+ );
+
+ const icon = valid ? 'ok' : 'remove';
+ const cls = valid ? 'valid' : 'invalid';
+
+ return (
+
+
+
+ {' ' + title}
+
+
+
+ );
+}
+
+const toJson = (val: unknown) => JSON.stringify(val, null, 2);
+
+type EditorsProps = {
+ schema: RJSFSchema;
+ setSchema: React.Dispatch>;
+ uiSchema: UiSchema;
+ setUiSchema: React.Dispatch>;
+ formData: any;
+ setFormData: React.Dispatch>;
+ extraErrors: ErrorSchema | undefined;
+ setExtraErrors: React.Dispatch>;
+ setShareURL: React.Dispatch>;
+};
+
+export default function Editors({
+ extraErrors,
+ formData,
+ schema,
+ uiSchema,
+ setExtraErrors,
+ setFormData,
+ setSchema,
+ setShareURL,
+ setUiSchema,
+}: EditorsProps) {
+ const onSchemaEdited = useCallback(
+ (newSchema) => {
+ setSchema(newSchema);
+ setShareURL(null);
+ },
+ [setSchema, setShareURL]
+ );
+
+ const onUISchemaEdited = useCallback(
+ (newUiSchema) => {
+ setUiSchema(newUiSchema);
+ setShareURL(null);
+ },
+ [setUiSchema, setShareURL]
+ );
+
+ const onFormDataEdited = useCallback(
+ (newFormData) => {
+ if (
+ !isEqualWith(newFormData, formData, (newValue, oldValue) => {
+ // Since this is coming from the editor which uses JSON.stringify to trim undefined values compare the values
+ // using JSON.stringify to see if the trimmed formData is the same as the untrimmed state
+ // Sometimes passing the trimmed value back into the Form causes the defaults to be improperly assigned
+ return JSON.stringify(oldValue) === JSON.stringify(newValue);
+ })
+ ) {
+ setFormData(newFormData);
+ setShareURL(null);
+ }
+ },
+ [formData, setFormData, setShareURL]
+ );
+
+ const onExtraErrorsEdited = useCallback(
+ (newExtraErrors) => {
+ setExtraErrors(newExtraErrors);
+ setShareURL(null);
+ },
+ [setExtraErrors, setShareURL]
+ );
+
+ return (
+
+
+
+ {extraErrors && (
+
+ )}
+
+ );
+}
diff --git a/demo/src/components/ErrorBoundary.tsx b/demo/src/components/ErrorBoundary.tsx
new file mode 100644
index 0000000..bfcb55a
--- /dev/null
+++ b/demo/src/components/ErrorBoundary.tsx
@@ -0,0 +1,52 @@
+import { Component, ReactNode } from 'react';
+
+type Props = {
+ children: ReactNode;
+};
+
+type State =
+ | {
+ hasError: false;
+ error: null;
+ }
+ | { hasError: true; error: Error };
+
+type Error = { message: string; [key: string]: unknown };
+
+class ErrorBoundary extends Component {
+ constructor(props: Props) {
+ super(props);
+ this.state = { hasError: false, error: null };
+ }
+
+ /** Update state so the next render will show the fallback UI. */
+ static getDerivedStateFromError(error: Error) {
+ return { hasError: true, error: error };
+ }
+
+ resetErrorBoundary = () => {
+ this.setState({ hasError: false, error: null });
+ };
+
+ /** You can render any custom fallback UI */
+ render() {
+ const { children } = this.props;
+ const { error, hasError } = this.state;
+
+ if (hasError) {
+ return (
+
+
The following error was encountered:
+
{error.message}
+
+ Refresh Form
+
+
+ );
+ }
+
+ return children;
+ }
+}
+
+export default ErrorBoundary;
diff --git a/demo/src/components/GeoPosition.tsx b/demo/src/components/GeoPosition.tsx
new file mode 100644
index 0000000..32deefe
--- /dev/null
+++ b/demo/src/components/GeoPosition.tsx
@@ -0,0 +1,38 @@
+import { useState } from 'react';
+
+export default function GeoPosition() {
+ const [lat, setLat] = useState(0);
+ const [lon, setLon] = useState(0);
+
+ return (
+
+
Hey, I'm a custom component
+
+ I'm registered as geo
and referenced in
+ uiSchema
as the ui:field
to use for this schema.
+
+
+
+ );
+}
diff --git a/demo/src/components/Header.tsx b/demo/src/components/Header.tsx
new file mode 100644
index 0000000..918676a
--- /dev/null
+++ b/demo/src/components/Header.tsx
@@ -0,0 +1,348 @@
+import { useCallback } from 'react'
+import Form, { IChangeEvent } from '@rjsf/core'
+import { RJSFSchema, UiSchema, ValidatorType } from '@rjsf/utils'
+import localValidator from '@rjsf/validator-ajv8'
+import base64 from '../utils/base64'
+
+import CopyLink from './CopyLink'
+import ThemeSelector, { ThemesType } from './ThemeSelector'
+import Selector from './Selector'
+import ValidatorSelector from './ValidatorSelector'
+import SubthemeSelector from './SubthemeSelector'
+import RawValidatorTest from './RawValidatorTest'
+
+const HeaderButton: React.FC<
+ {
+ title: string
+ onClick: () => void
+ } & React.ButtonHTMLAttributes
+> = ({ title, onClick, children, ...buttonProps }) => {
+ return (
+
+ {children}
+
+ )
+}
+
+function HeaderButtons({
+ playGroundFormRef,
+}: {
+ playGroundFormRef: React.MutableRefObject
+}) {
+ return (
+ <>
+ Programmatic
+
+ playGroundFormRef.current.submit()}
+ >
+ Submit
+
+ playGroundFormRef.current.validateForm()}
+ >
+ Validate
+
+ playGroundFormRef.current.reset()}
+ >
+ Reset
+
+
+ >
+ )
+}
+
+const liveSettingsBooleanSchema: RJSFSchema = {
+ type: 'object',
+ properties: {
+ liveValidate: { type: 'boolean', title: 'Live validation' },
+ disabled: { type: 'boolean', title: 'Disable whole form' },
+ readonly: { type: 'boolean', title: 'Readonly whole form' },
+ omitExtraData: { type: 'boolean', title: 'Omit extra data' },
+ liveOmit: { type: 'boolean', title: 'Live omit' },
+ noValidate: { type: 'boolean', title: 'Disable validation' },
+ noHtml5Validate: { type: 'boolean', title: 'Disable HTML 5 validation' },
+ focusOnFirstError: { type: 'boolean', title: 'Focus on 1st Error' },
+ },
+}
+
+const liveSettingsSelectSchema: RJSFSchema = {
+ type: 'object',
+ properties: {
+ showErrorList: {
+ type: 'string',
+ default: 'top',
+ title: 'Show Error List',
+ enum: [false, 'top', 'bottom'],
+ },
+ experimental_defaultFormStateBehavior: {
+ title: 'Default Form State Behavior (Experimental)',
+ type: 'object',
+ properties: {
+ arrayMinItems: {
+ type: 'object',
+ properties: {
+ populate: {
+ type: 'string',
+ default: 'populate',
+ title: 'Populate minItems in arrays',
+ oneOf: [
+ {
+ type: 'string',
+ title:
+ 'Populate remaining minItems with default values (legacy behavior)',
+ enum: ['all'],
+ },
+ {
+ type: 'string',
+ title:
+ 'Only populate minItems with default values when field is required',
+ enum: ['requiredOnly'],
+ },
+ {
+ type: 'string',
+ title: 'Never populate minItems with default values',
+ enum: ['never'],
+ },
+ ],
+ },
+ mergeExtraDefaults: {
+ title: 'Merge array defaults with formData',
+ type: 'boolean',
+ default: false,
+ },
+ },
+ },
+ allOf: {
+ type: 'string',
+ title: 'allOf defaults behaviour',
+ default: 'skipDefaults',
+ oneOf: [
+ {
+ type: 'string',
+ title: 'Populate defaults with allOf',
+ enum: ['populateDefaults'],
+ },
+ {
+ type: 'string',
+ title: 'Skip populating defaults with allOf',
+ enum: ['skipDefaults'],
+ },
+ ],
+ },
+ emptyObjectFields: {
+ type: 'string',
+ title: 'Object fields default behavior',
+ default: 'populateAllDefaults',
+ oneOf: [
+ {
+ type: 'string',
+ title:
+ 'Assign value to formData when default is primitive, non-empty object field, or is required (legacy behavior)',
+ enum: ['populateAllDefaults'],
+ },
+ {
+ type: 'string',
+ title:
+ 'Assign value to formData when default is an object and parent is required, or default is primitive and is required',
+ enum: ['populateRequiredDefaults'],
+ },
+ {
+ type: 'string',
+ title: 'Assign value to formData when only default is set',
+ enum: ['skipEmptyDefaults'],
+ },
+ {
+ type: 'string',
+ title: 'Does not set defaults',
+ enum: ['skipDefaults'],
+ },
+ ],
+ },
+ },
+ },
+ },
+}
+
+const liveSettingsSelectUiSchema: UiSchema = {
+ experimental_defaultFormStateBehavior: {
+ 'ui:options': {
+ label: false,
+ },
+ arrayMinItems: {
+ 'ui:options': {
+ label: false,
+ },
+ },
+ },
+}
+
+export interface LiveSettings {
+ showErrorList: false | 'top' | 'bottom'
+ [key: string]: any
+}
+
+type HeaderProps = {
+ schema: RJSFSchema
+ uiSchema: UiSchema
+ formData: any
+ shareURL: string | null
+ themes: { [themeName: string]: ThemesType }
+ theme: string
+ subtheme: string | null
+ validators: {
+ [validatorName: string]: ValidatorType
+ }
+ validator: string
+ liveSettings: LiveSettings
+ playGroundFormRef: React.MutableRefObject
+ load: (data: any) => void
+ onThemeSelected: (theme: string, themeObj: ThemesType) => void
+ setSubtheme: React.Dispatch>
+ setStylesheets: React.Dispatch>
+ setValidator: React.Dispatch>
+ setLiveSettings: React.Dispatch>
+ setShareURL: React.Dispatch>
+}
+
+export default function Header({
+ schema,
+ uiSchema,
+ formData,
+ shareURL,
+ themes,
+ theme,
+ subtheme,
+ validators,
+ validator,
+ liveSettings,
+ playGroundFormRef,
+ load,
+ onThemeSelected,
+ setSubtheme,
+ setStylesheets,
+ setValidator,
+ setLiveSettings,
+ setShareURL,
+}: HeaderProps) {
+ const onSubthemeSelected = useCallback(
+ (subtheme: any, { stylesheets }: { stylesheets: [] }) => {
+ setSubtheme(subtheme)
+ setStylesheets(stylesheets)
+ },
+ [setSubtheme, setStylesheets]
+ )
+
+ const onValidatorSelected = useCallback(
+ (validator: string) => {
+ setValidator(validator)
+ },
+ [setValidator]
+ )
+
+ const handleSetLiveSettings = useCallback(
+ ({ formData }: IChangeEvent) => {
+ setLiveSettings((previousLiveSettings) => ({
+ ...previousLiveSettings,
+ ...formData,
+ }))
+ },
+ [setLiveSettings]
+ )
+
+ const onShare = useCallback(() => {
+ const {
+ location: { origin, pathname },
+ } = document
+
+ try {
+ const hash = base64.encode(
+ JSON.stringify({
+ formData,
+ schema,
+ uiSchema,
+ theme,
+ liveSettings,
+ })
+ )
+
+ setShareURL(`${origin}${pathname}#${hash}`)
+ } catch (error) {
+ setShareURL(null)
+ console.error(error)
+ }
+ }, [formData, liveSettings, schema, theme, uiSchema, setShareURL])
+
+ return (
+
+
react-jsonschema-form
+
+
+
+
+
+
+
+
+ {themes[theme] && themes[theme].subthemes && (
+
+ )}
+
+
+
+
+
+
+
+
+
+
+ )
+}
diff --git a/demo/src/components/Playground.tsx b/demo/src/components/Playground.tsx
new file mode 100644
index 0000000..6defb12
--- /dev/null
+++ b/demo/src/components/Playground.tsx
@@ -0,0 +1,205 @@
+import { ComponentType, FormEvent, useCallback, useEffect, useRef, useState } from 'react';
+import { FormProps, IChangeEvent, withTheme } from '@rjsf/core';
+import { ErrorSchema, RJSFSchema, RJSFValidationError, UiSchema, ValidatorType } from '@rjsf/utils';
+import base64 from '../utils/base64';
+
+import { samples } from '../samples';
+import Header, { LiveSettings } from './Header';
+import DemoFrame from './DemoFrame';
+import ErrorBoundary from './ErrorBoundary';
+import GeoPosition from './GeoPosition';
+import { ThemesType } from './ThemeSelector';
+import Editors from './Editors';
+import SpecialInput from './SpecialInput';
+import { Sample } from '../samples/Sample';
+
+export interface PlaygroundProps {
+ themes: { [themeName: string]: ThemesType };
+ validators: { [validatorName: string]: ValidatorType };
+}
+
+export default function Playground({ themes, validators }: PlaygroundProps) {
+ const [loaded, setLoaded] = useState(false);
+ const [schema, setSchema] = useState(samples.Simple.schema as RJSFSchema);
+ const [uiSchema, setUiSchema] = useState(samples.Simple.uiSchema!);
+ const [formData, setFormData] = useState(samples.Simple.formData);
+ const [extraErrors, setExtraErrors] = useState();
+ const [shareURL, setShareURL] = useState(null);
+ const [theme, setTheme] = useState('dsfr');
+ const [subtheme, setSubtheme] = useState(null);
+ const [stylesheets, setStylesheets] = useState([]);
+ const [validator, setValidator] = useState('AJV8');
+ const [showForm, setShowForm] = useState(false);
+ const [liveSettings, setLiveSettings] = useState({
+ showErrorList: 'top',
+ validate: false,
+ disabled: false,
+ noHtml5Validate: false,
+ readonly: false,
+ omitExtraData: false,
+ liveOmit: false,
+ experimental_defaultFormStateBehavior: { arrayMinItems: 'populate', emptyObjectFields: 'populateAllDefaults' },
+ });
+ const [FormComponent, setFormComponent] = useState>(withTheme({}));
+ const [otherFormProps, setOtherFormProps] = useState>({});
+
+ const playGroundFormRef = useRef(null);
+
+ const onThemeSelected = useCallback(
+ (theme: string, { stylesheets, theme: themeObj }: ThemesType) => {
+ setTheme(theme);
+ setSubtheme(null);
+ setFormComponent(withTheme(themeObj));
+ if (stylesheets) setStylesheets(stylesheets);
+ },
+ [setTheme, setSubtheme, setFormComponent, setStylesheets]
+ );
+
+ const load = useCallback(
+ (data: Sample & { theme: string; liveSettings: LiveSettings }) => {
+ const {
+ schema,
+ // uiSchema is missing on some examples. Provide a default to
+ // clear the field in all cases.
+ uiSchema = {},
+ // Always reset templates and fields
+ templates = {},
+ fields = {},
+ formData,
+ theme: dataTheme = theme,
+ extraErrors,
+ liveSettings,
+ ...rest
+ } = data;
+
+ onThemeSelected(dataTheme, themes[dataTheme]);
+
+ // force resetting form component instance
+ setShowForm(false);
+ setSchema(schema);
+ setUiSchema(uiSchema);
+ setFormData(formData);
+ setExtraErrors(extraErrors);
+ setTheme(dataTheme);
+ setShowForm(true);
+ setLiveSettings(liveSettings);
+ setOtherFormProps({ fields, templates, ...rest });
+ },
+ [theme, onThemeSelected, themes]
+ );
+
+ useEffect(() => {
+ const hash = document.location.hash.match(/#(.*)/);
+
+ if (hash && typeof hash[1] === 'string' && hash[1].length > 0 && !loaded) {
+ try {
+ const decoded = base64.decode(hash[1]);
+ load(JSON.parse(decoded));
+ setLoaded(true);
+ } catch (error) {
+ alert('Unable to load form setup data.');
+ console.error(error);
+ }
+
+ return;
+ }
+
+ // initialize theme
+ onThemeSelected(theme, themes[theme]);
+
+ setShowForm(true);
+ }, [onThemeSelected, load, loaded, setShowForm, theme, themes]);
+
+ const onFormDataChange = useCallback(
+ ({ formData }: IChangeEvent, id?: string) => {
+ if (id) {
+ console.log('Field changed, id: ', id);
+ }
+
+ setFormData(formData);
+ setShareURL(null);
+ },
+ [setFormData, setShareURL]
+ );
+
+ const onFormDataSubmit = useCallback(({ formData }: IChangeEvent, event: FormEvent) => {
+ console.log('submitted formData', formData);
+ console.log('submit event', event);
+ window.alert('Form submitted');
+ }, []);
+
+ return (
+ <>
+
+
+
+
+ {showForm && (
+
+ {stylesheets?.map(s => )}
+ >
+ }
+ style={{
+ width: '100%',
+ height: 1000,
+ border: 0,
+ }}
+ theme={theme}
+ >
+ console.log(`Touched ${id} with value ${value}`)}
+ onFocus={(id: string, value: string) => console.log(`Focused ${id} with value ${value}`)}
+ onError={(errorList: RJSFValidationError[]) => console.log('errors', errorList)}
+ ref={playGroundFormRef}
+ />
+
+ )}
+
+
+ >
+ );
+}
diff --git a/demo/src/components/RawValidatorTest.tsx b/demo/src/components/RawValidatorTest.tsx
new file mode 100644
index 0000000..766b005
--- /dev/null
+++ b/demo/src/components/RawValidatorTest.tsx
@@ -0,0 +1,50 @@
+import { useState } from 'react';
+import { ValidatorType, RJSFSchema } from '@rjsf/utils';
+
+interface RawValidatorTestProps {
+ validator: ValidatorType;
+ schema: RJSFSchema;
+ formData: object;
+}
+
+export default function RawValidatorTest({ validator, schema, formData }: RawValidatorTestProps) {
+ const [rawValidation, setRawValidation] = useState<{ errors?: any[]; validationError?: Error } | undefined>();
+ const handleClearClick = () => setRawValidation(undefined);
+ const handleRawClick = () => setRawValidation(validator.rawValidation(schema, formData));
+
+ let displayErrors = 'Validation not run';
+ if (rawValidation) {
+ displayErrors =
+ rawValidation.errors || rawValidation.validationError
+ ? JSON.stringify(rawValidation, null, 2)
+ : 'No AJV errors encountered';
+ }
+ return (
+
+
+ Raw Ajv Validation
+ To determine whether a validation issue is really a BUG in Ajv use the button to trigger the raw Ajv validation.
+ This will run your schema and formData through Ajv without involving any react-jsonschema-form specific code. If
+ there is an unexpected error, then{' '}
+
+ file an issue
+ {' '}
+ with Ajv instead.
+
+
+
+ Raw Validate
+
+ {rawValidation && (
+ <>
+
+
+ Clear
+
+ >
+ )}
+
+
+
+ );
+}
diff --git a/demo/src/components/Selector.tsx b/demo/src/components/Selector.tsx
new file mode 100644
index 0000000..9e9707c
--- /dev/null
+++ b/demo/src/components/Selector.tsx
@@ -0,0 +1,32 @@
+import { useState, MouseEvent } from 'react';
+import { samples } from '../samples';
+
+interface SelectorProps {
+ onSelected: (data: any) => void;
+}
+
+export default function Selector({ onSelected }: SelectorProps) {
+ const [current, setCurrent] = useState('Simple');
+
+ function onLabelClick(label: string) {
+ return (event: MouseEvent) => {
+ event.preventDefault();
+ setCurrent(label);
+ setTimeout(() => onSelected(samples[label]), 0);
+ };
+ }
+
+ return (
+
+ {Object.keys(samples).map((label, i) => {
+ return (
+
+
+ {label}
+
+
+ );
+ })}
+
+ );
+}
diff --git a/demo/src/components/SpecialInput.tsx b/demo/src/components/SpecialInput.tsx
new file mode 100644
index 0000000..9e47ccb
--- /dev/null
+++ b/demo/src/components/SpecialInput.tsx
@@ -0,0 +1,37 @@
+import { FieldProps } from '@rjsf/utils';
+import { FC, useState } from 'react';
+
+const COLORS = ['red', 'green', 'blue'];
+
+const SpecialInput: FC> = ({ onChange, formData }) => {
+ const [text, setText] = useState(formData || '');
+
+ const inputBgColor = COLORS[text.length % COLORS.length];
+
+ return (
+
+
Hey, I'm a custom component
+
+ I'm registered as /schemas/specialString
and referenced in
+ Form
's field
prop to use for this schema anywhere this schema $id
is
+ used.
+
+
+
+ SpecialInput
+ {
+ onChange(value);
+ setText(value);
+ }}
+ />
+
+
+
+ );
+};
+
+export default SpecialInput;
diff --git a/demo/src/components/SubthemeSelector.tsx b/demo/src/components/SubthemeSelector.tsx
new file mode 100644
index 0000000..62b3a9d
--- /dev/null
+++ b/demo/src/components/SubthemeSelector.tsx
@@ -0,0 +1,58 @@
+import { useCallback, useMemo } from 'react';
+import Form, { IChangeEvent } from '@rjsf/core';
+import { RJSFSchema, UiSchema } from '@rjsf/utils';
+import localValidator from '@rjsf/validator-ajv8';
+
+const uiSchema: UiSchema = {
+ 'ui:placeholder': 'Select subtheme',
+};
+
+interface SubthemeType {
+ stylesheets: string[];
+}
+
+export interface SubthemesType {
+ [subtheme: string]: SubthemeType;
+}
+
+interface SubthemeSelectorProps {
+ subtheme: string | null;
+ subthemes: SubthemesType;
+ select: (subthemeName: string, subtheme: SubthemeType) => void;
+}
+
+export default function SubthemeSelector({ subtheme, subthemes, select }: SubthemeSelectorProps) {
+ const schema: RJSFSchema = useMemo(
+ () => ({
+ type: 'string',
+ title: 'Subtheme',
+ enum: Object.keys(subthemes),
+ }),
+ [subthemes]
+ );
+
+ const handleChange = useCallback(
+ ({ formData }: IChangeEvent) => {
+ if (!formData) {
+ return;
+ }
+
+ return select(formData, subthemes[formData]);
+ },
+ [select, subthemes]
+ );
+
+ return (
+
+ );
+}
diff --git a/demo/src/components/ThemeSelector.tsx b/demo/src/components/ThemeSelector.tsx
new file mode 100644
index 0000000..4a09e68
--- /dev/null
+++ b/demo/src/components/ThemeSelector.tsx
@@ -0,0 +1,42 @@
+import Form, { IChangeEvent } from '@rjsf/core';
+import { RJSFSchema, UiSchema } from '@rjsf/utils';
+import localValidator from '@rjsf/validator-ajv8';
+import { SubthemesType } from './SubthemeSelector';
+
+export interface ThemesType {
+ theme: any;
+ stylesheets?: string[];
+ subthemes?: SubthemesType;
+}
+
+interface ThemeSelectorProps {
+ theme: string;
+ themes: { [themeName: string]: ThemesType };
+ select: (themeName: string, theme: ThemesType) => void;
+}
+
+export default function ThemeSelector({ theme, themes, select }: ThemeSelectorProps) {
+ const schema: RJSFSchema = {
+ type: 'string',
+ title: 'Theme',
+ enum: Object.keys(themes),
+ };
+
+ const uiSchema: UiSchema = {
+ 'ui:placeholder': 'Select theme',
+ };
+
+ return (
+
+ );
+}
diff --git a/demo/src/components/ValidatorSelector.tsx b/demo/src/components/ValidatorSelector.tsx
new file mode 100644
index 0000000..923e4c2
--- /dev/null
+++ b/demo/src/components/ValidatorSelector.tsx
@@ -0,0 +1,35 @@
+import Form, { IChangeEvent } from '@rjsf/core';
+import { GenericObjectType, RJSFSchema, UiSchema } from '@rjsf/utils';
+import localValidator from '@rjsf/validator-ajv8';
+
+interface ValidatorSelectorProps {
+ validator: string;
+ validators: GenericObjectType;
+ select: (validator: string) => void;
+}
+
+export default function ValidatorSelector({ validator, validators, select }: ValidatorSelectorProps) {
+ const schema: RJSFSchema = {
+ type: 'string',
+ title: 'Validator',
+ enum: Object.keys(validators),
+ };
+
+ const uiSchema: UiSchema = {
+ 'ui:placeholder': 'Select validator',
+ };
+
+ return (
+
+ );
+}
diff --git a/demo/src/components/index.ts b/demo/src/components/index.ts
new file mode 100644
index 0000000..d56a5bf
--- /dev/null
+++ b/demo/src/components/index.ts
@@ -0,0 +1,4 @@
+import Playground, { PlaygroundProps } from './Playground';
+
+export type { PlaygroundProps };
+export default Playground;
diff --git a/demo/src/index.tsx b/demo/src/index.tsx
new file mode 100644
index 0000000..48bf400
--- /dev/null
+++ b/demo/src/index.tsx
@@ -0,0 +1,5 @@
+import { render } from 'react-dom';
+
+import App from './app';
+
+render( , document.getElementById('app'));
diff --git a/demo/src/layout/Footer.tsx b/demo/src/layout/Footer.tsx
new file mode 100644
index 0000000..4a053d3
--- /dev/null
+++ b/demo/src/layout/Footer.tsx
@@ -0,0 +1,9 @@
+export default function Footer() {
+ return (
+
+ );
+}
diff --git a/demo/src/layout/Layout.tsx b/demo/src/layout/Layout.tsx
new file mode 100644
index 0000000..29781d9
--- /dev/null
+++ b/demo/src/layout/Layout.tsx
@@ -0,0 +1,10 @@
+import Footer from './Footer';
+
+export const Layout: React.FC = ({ children }) => {
+ return (
+
+ {children}
+
+
+ );
+};
diff --git a/demo/src/layout/index.ts b/demo/src/layout/index.ts
new file mode 100644
index 0000000..f3ddcb0
--- /dev/null
+++ b/demo/src/layout/index.ts
@@ -0,0 +1 @@
+export { Layout as default } from './Layout';
diff --git a/demo/src/samples/Sample.ts b/demo/src/samples/Sample.ts
new file mode 100644
index 0000000..5c4d560
--- /dev/null
+++ b/demo/src/samples/Sample.ts
@@ -0,0 +1,3 @@
+import { FormProps } from '@rjsf/core';
+
+export type Sample = Omit;
diff --git a/demo/src/samples/additionalProperties.ts b/demo/src/samples/additionalProperties.ts
new file mode 100644
index 0000000..fd173b4
--- /dev/null
+++ b/demo/src/samples/additionalProperties.ts
@@ -0,0 +1,36 @@
+import { Sample } from './Sample';
+
+const additionalProperties: Sample = {
+ schema: {
+ title: 'A customizable registration form',
+ description: 'A simple form with additional properties example.',
+ type: 'object',
+ required: ['firstName', 'lastName'],
+ additionalProperties: {
+ type: 'string',
+ },
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'First name',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Last name',
+ },
+ },
+ },
+ uiSchema: {
+ firstName: {
+ 'ui:autofocus': true,
+ 'ui:emptyValue': '',
+ },
+ },
+ formData: {
+ firstName: 'Chuck',
+ lastName: 'Norris',
+ assKickCount: 'infinity',
+ },
+};
+
+export default additionalProperties;
diff --git a/demo/src/samples/allOf.ts b/demo/src/samples/allOf.ts
new file mode 100644
index 0000000..23c11e1
--- /dev/null
+++ b/demo/src/samples/allOf.ts
@@ -0,0 +1,30 @@
+import { Sample } from './Sample';
+
+const allOf: Sample = {
+ schema: {
+ type: 'object',
+ allOf: [
+ {
+ properties: {
+ lorem: {
+ type: ['string', 'boolean'],
+ default: true,
+ },
+ },
+ },
+ {
+ properties: {
+ lorem: {
+ type: 'boolean',
+ },
+ ipsum: {
+ type: 'string',
+ },
+ },
+ },
+ ],
+ },
+ formData: {},
+};
+
+export default allOf;
diff --git a/demo/src/samples/alternatives.ts b/demo/src/samples/alternatives.ts
new file mode 100644
index 0000000..36d42f5
--- /dev/null
+++ b/demo/src/samples/alternatives.ts
@@ -0,0 +1,96 @@
+import { Sample } from './Sample';
+
+const alternatives: Sample = {
+ schema: {
+ definitions: {
+ Color: {
+ title: 'Color',
+ type: 'string',
+ anyOf: [
+ {
+ type: 'string',
+ enum: ['#ff0000'],
+ title: 'Red',
+ },
+ {
+ type: 'string',
+ enum: ['#00ff00'],
+ title: 'Green',
+ },
+ {
+ type: 'string',
+ enum: ['#0000ff'],
+ title: 'Blue',
+ },
+ ],
+ },
+ Toggle: {
+ title: 'Toggle',
+ type: 'boolean',
+ oneOf: [
+ {
+ title: 'Enable',
+ const: true,
+ },
+ {
+ title: 'Disable',
+ const: false,
+ },
+ ],
+ },
+ },
+ title: 'Image editor',
+ type: 'object',
+ required: ['currentColor', 'colorMask', 'blendMode'],
+ properties: {
+ currentColor: {
+ $ref: '#/definitions/Color',
+ title: 'Brush color',
+ },
+ colorMask: {
+ type: 'array',
+ uniqueItems: true,
+ items: {
+ $ref: '#/definitions/Color',
+ },
+ title: 'Color mask',
+ },
+ toggleMask: {
+ title: 'Apply color mask',
+ $ref: '#/definitions/Toggle',
+ },
+ colorPalette: {
+ type: 'array',
+ title: 'Color palette',
+ items: {
+ $ref: '#/definitions/Color',
+ },
+ },
+ blendMode: {
+ title: 'Blend mode',
+ type: 'string',
+ oneOf: [
+ { const: 'screen', title: 'Screen' },
+ { const: 'multiply', title: 'Multiply' },
+ { const: 'overlay', title: 'Overlay' },
+ ],
+ },
+ },
+ },
+ uiSchema: {
+ blendMode: {
+ 'ui:enumDisabled': ['multiply'],
+ },
+ toggleMask: {
+ 'ui:widget': 'radio',
+ },
+ },
+ formData: {
+ currentColor: '#00ff00',
+ colorMask: ['#0000ff'],
+ colorPalette: ['#ff0000'],
+ blendMode: 'screen',
+ },
+};
+
+export default alternatives;
diff --git a/demo/src/samples/anyOf.ts b/demo/src/samples/anyOf.ts
new file mode 100644
index 0000000..40c41b9
--- /dev/null
+++ b/demo/src/samples/anyOf.ts
@@ -0,0 +1,63 @@
+import { Sample } from './Sample';
+
+const anyOf: Sample = {
+ schema: {
+ type: 'object',
+ properties: {
+ age: {
+ type: 'integer',
+ title: 'Age',
+ },
+ items: {
+ type: 'array',
+ items: {
+ type: 'object',
+ anyOf: [
+ {
+ properties: {
+ foo: {
+ type: 'string',
+ },
+ },
+ },
+ {
+ properties: {
+ bar: {
+ type: 'string',
+ },
+ },
+ },
+ ],
+ },
+ },
+ },
+ anyOf: [
+ {
+ title: 'First method of identification',
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'First name',
+ default: 'Chuck',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Last name',
+ },
+ },
+ },
+ {
+ title: 'Second method of identification',
+ properties: {
+ idCode: {
+ type: 'string',
+ title: 'ID code',
+ },
+ },
+ },
+ ],
+ },
+ formData: {},
+};
+
+export default anyOf;
diff --git a/demo/src/samples/arrays.ts b/demo/src/samples/arrays.ts
new file mode 100644
index 0000000..2f06d98
--- /dev/null
+++ b/demo/src/samples/arrays.ts
@@ -0,0 +1,195 @@
+import { Sample } from './Sample';
+
+const arrays: Sample = {
+ schema: {
+ definitions: {
+ Thing: {
+ type: 'object',
+ properties: {
+ name: {
+ type: 'string',
+ default: 'Default name',
+ },
+ },
+ },
+ },
+ type: 'object',
+ properties: {
+ listOfStrings: {
+ type: 'array',
+ title: 'A list of strings',
+ items: {
+ type: 'string',
+ default: 'bazinga',
+ },
+ },
+ multipleChoicesList: {
+ type: 'array',
+ title: 'A multiple choices list',
+ items: {
+ type: 'string',
+ enum: ['foo', 'bar', 'fuzz', 'qux'],
+ },
+ uniqueItems: true,
+ },
+ fixedItemsList: {
+ type: 'array',
+ title: 'A list of fixed items',
+ items: [
+ {
+ title: 'A string value',
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ {
+ title: 'a boolean value',
+ type: 'boolean',
+ },
+ ],
+ additionalItems: {
+ title: 'Additional item',
+ type: 'number',
+ },
+ },
+ minItemsList: {
+ type: 'array',
+ title: 'A list with a minimal number of items',
+ minItems: 3,
+ items: {
+ $ref: '#/definitions/Thing',
+ },
+ },
+ defaultsAndMinItems: {
+ type: 'array',
+ title: 'List and item level defaults',
+ minItems: 5,
+ default: ['carp', 'trout', 'bream'],
+ items: {
+ type: 'string',
+ default: 'unidentified',
+ },
+ },
+ nestedList: {
+ type: 'array',
+ title: 'Nested list',
+ items: {
+ type: 'array',
+ title: 'Inner list',
+ items: {
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ },
+ },
+ unorderable: {
+ title: 'Unorderable items',
+ type: 'array',
+ items: {
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ },
+ copyable: {
+ title: 'Copyable items',
+ type: 'array',
+ items: {
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ },
+ unremovable: {
+ title: 'Unremovable items',
+ type: 'array',
+ items: {
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ },
+ noToolbar: {
+ title: 'No add, remove and order buttons',
+ type: 'array',
+ items: {
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ },
+ fixedNoToolbar: {
+ title: 'Fixed array without buttons',
+ type: 'array',
+ items: [
+ {
+ title: 'A number',
+ type: 'number',
+ default: 42,
+ },
+ {
+ title: 'A boolean',
+ type: 'boolean',
+ default: false,
+ },
+ ],
+ additionalItems: {
+ title: 'A string',
+ type: 'string',
+ default: 'lorem ipsum',
+ },
+ },
+ },
+ },
+ uiSchema: {
+ listOfStrings: {
+ items: { 'ui:emptyValue': '' },
+ },
+ multipleChoicesList: {
+ 'ui:widget': 'checkboxes',
+ },
+ fixedItemsList: {
+ items: [{ 'ui:widget': 'textarea' }, { 'ui:widget': 'select' }],
+ additionalItems: {
+ 'ui:widget': 'updown',
+ },
+ },
+ unorderable: {
+ 'ui:options': {
+ orderable: false,
+ },
+ },
+ copyable: {
+ 'ui:options': {
+ copyable: true,
+ },
+ },
+ unremovable: {
+ 'ui:options': {
+ removable: false,
+ },
+ },
+ noToolbar: {
+ 'ui:options': {
+ addable: false,
+ orderable: false,
+ removable: false,
+ },
+ },
+ fixedNoToolbar: {
+ 'ui:options': {
+ addable: false,
+ orderable: false,
+ removable: false,
+ },
+ },
+ },
+ formData: {
+ listOfStrings: ['foo', 'bar'],
+ multipleChoicesList: ['foo', 'bar'],
+ fixedItemsList: ['Some text', true, 123],
+ nestedList: [['lorem', 'ipsum'], ['dolor']],
+ unorderable: ['one', 'two'],
+ copyable: ['one', 'two'],
+ unremovable: ['one', 'two'],
+ noToolbar: ['one', 'two'],
+ fixedNoToolbar: [42, true, 'additional item one', 'additional item two'],
+ },
+};
+
+export default arrays;
diff --git a/demo/src/samples/custom.ts b/demo/src/samples/custom.ts
new file mode 100644
index 0000000..48320a6
--- /dev/null
+++ b/demo/src/samples/custom.ts
@@ -0,0 +1,26 @@
+import { Sample } from './Sample';
+
+const custom: Sample = {
+ schema: {
+ title: 'A localisation form',
+ type: 'object',
+ required: ['lat', 'lon'],
+ properties: {
+ lat: {
+ type: 'number',
+ },
+ lon: {
+ type: 'number',
+ },
+ },
+ },
+ uiSchema: {
+ 'ui:field': 'geo',
+ },
+ formData: {
+ lat: 0,
+ lon: 0,
+ },
+};
+
+export default custom;
diff --git a/demo/src/samples/customArray.tsx b/demo/src/samples/customArray.tsx
new file mode 100644
index 0000000..ca4297c
--- /dev/null
+++ b/demo/src/samples/customArray.tsx
@@ -0,0 +1,48 @@
+import { Sample } from './Sample';
+import { ArrayFieldTemplateProps } from '@rjsf/utils';
+
+function ArrayFieldTemplate(props: ArrayFieldTemplateProps) {
+ const { className, items, canAdd, onAddClick } = props;
+ return (
+
+ {items &&
+ items.map((element) => (
+
+
{element.children}
+ {element.hasMoveDown && (
+
Down
+ )}
+ {element.hasMoveUp && (
+
Up
+ )}
+
Delete
+
+
+ ))}
+
+ {canAdd && (
+
+ )}
+
+ );
+}
+
+export const customArray: Sample = {
+ schema: {
+ title: 'Custom array of strings',
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ },
+ formData: ['react', 'jsonschema', 'form'],
+ templates: { ArrayFieldTemplate },
+};
+
+export default customArray;
diff --git a/demo/src/samples/customField.ts b/demo/src/samples/customField.ts
new file mode 100644
index 0000000..e2eea97
--- /dev/null
+++ b/demo/src/samples/customField.ts
@@ -0,0 +1,32 @@
+import { Sample } from './Sample';
+
+const customField: Sample = {
+ schema: {
+ title: 'A registration form',
+ description: 'A custom-field form example.',
+ type: 'object',
+ definitions: {
+ specialString: {
+ $id: '/schemas/specialString',
+ type: 'string',
+ },
+ },
+ properties: {
+ mySpecialStringField: {
+ $ref: '#/definitions/specialString',
+ },
+ mySpecialStringArray: {
+ type: 'array',
+ items: {
+ $ref: '#/definitions/specialString',
+ },
+ },
+ },
+ },
+ uiSchema: {},
+ formData: {
+ mySpecialStringField: 'special-text',
+ },
+};
+
+export default customField;
diff --git a/demo/src/samples/customFieldAnyOf.tsx b/demo/src/samples/customFieldAnyOf.tsx
new file mode 100644
index 0000000..42f4e07
--- /dev/null
+++ b/demo/src/samples/customFieldAnyOf.tsx
@@ -0,0 +1,112 @@
+import { Sample } from './Sample';
+import { FieldProps } from '@rjsf/utils';
+
+function UiField(props: FieldProps) {
+ const {
+ idSchema: { $id },
+ formData,
+ onChange,
+ } = props;
+ const changeHandlerFactory = (fieldName: string) => (event: any) => {
+ onChange(formData ? { ...formData, [fieldName]: event.target.value } : { [fieldName]: event.target.value });
+ };
+ return (
+ <>
+ Location
+
+ >
+ );
+}
+
+const customFieldAnyOf: Sample = {
+ schema: {
+ title: 'Location',
+ type: 'object',
+ anyOf: [
+ {
+ title: 'City',
+ properties: {
+ city: {
+ type: 'string',
+ },
+ },
+ required: ['city'],
+ },
+ {
+ title: 'Coordinates',
+ properties: {
+ lat: {
+ type: 'number',
+ },
+ lon: {
+ type: 'number',
+ },
+ },
+ required: ['lat', 'lon'],
+ },
+ ],
+ },
+ uiSchema: {
+ 'ui:field': UiField,
+ },
+ formData: {},
+};
+
+export default customFieldAnyOf;
diff --git a/demo/src/samples/date.ts b/demo/src/samples/date.ts
new file mode 100644
index 0000000..12185d5
--- /dev/null
+++ b/demo/src/samples/date.ts
@@ -0,0 +1,65 @@
+import { Sample } from './Sample';
+
+const date: Sample = {
+ schema: {
+ title: 'Date and time widgets',
+ type: 'object',
+ properties: {
+ native: {
+ title: 'Native',
+ description: 'May not work on some browsers, notably Firefox Desktop and IE.',
+ type: 'object',
+ properties: {
+ datetime: {
+ type: 'string',
+ format: 'date-time',
+ },
+ date: {
+ type: 'string',
+ format: 'date',
+ },
+ time: {
+ type: 'string',
+ format: 'time',
+ },
+ },
+ },
+ alternative: {
+ title: 'Alternative',
+ description: 'These work on most platforms.',
+ type: 'object',
+ properties: {
+ 'alt-datetime': {
+ type: 'string',
+ format: 'date-time',
+ },
+ 'alt-date': {
+ type: 'string',
+ format: 'date',
+ },
+ },
+ },
+ },
+ },
+ uiSchema: {
+ alternative: {
+ 'alt-datetime': {
+ 'ui:widget': 'alt-datetime',
+ 'ui:options': {
+ yearsRange: [1980, 2030],
+ format: 'YMD',
+ },
+ },
+ 'alt-date': {
+ 'ui:widget': 'alt-date',
+ 'ui:options': {
+ yearsRange: [1980, 2030],
+ format: 'MDY',
+ },
+ },
+ },
+ },
+ formData: {},
+};
+
+export default date;
diff --git a/demo/src/samples/defaults.ts b/demo/src/samples/defaults.ts
new file mode 100644
index 0000000..2d53cb9
--- /dev/null
+++ b/demo/src/samples/defaults.ts
@@ -0,0 +1,74 @@
+import { Sample } from './Sample';
+
+const defaults: Sample = {
+ schema: {
+ title: 'Schema default properties',
+ type: 'object',
+ properties: {
+ valuesInFormData: {
+ title: 'Values in form data',
+ $ref: '#/definitions/defaultsExample',
+ },
+ noValuesInFormData: {
+ title: 'No values in form data',
+ $ref: '#/definitions/defaultsExample',
+ },
+ },
+ definitions: {
+ defaultsExample: {
+ type: 'object',
+ properties: {
+ scalar: {
+ title: 'Scalar',
+ type: 'string',
+ default: 'scalar default',
+ },
+ array: {
+ title: 'Array',
+ type: 'array',
+ items: {
+ type: 'object',
+ properties: {
+ nested: {
+ title: 'Nested array',
+ type: 'string',
+ default: 'nested array default',
+ },
+ },
+ },
+ },
+ object: {
+ title: 'Object',
+ type: 'object',
+ properties: {
+ nested: {
+ title: 'Nested object',
+ type: 'string',
+ default: 'nested object default',
+ },
+ },
+ },
+ },
+ },
+ },
+ },
+ uiSchema: {},
+ formData: {
+ valuesInFormData: {
+ scalar: 'value',
+ array: [
+ {
+ nested: 'nested array value',
+ },
+ ],
+ object: {
+ nested: 'nested object value',
+ },
+ },
+ noValuesInFormData: {
+ array: [{}, {}],
+ },
+ },
+};
+
+export default defaults;
diff --git a/demo/src/samples/enumObjects.ts b/demo/src/samples/enumObjects.ts
new file mode 100644
index 0000000..8ded8bd
--- /dev/null
+++ b/demo/src/samples/enumObjects.ts
@@ -0,0 +1,73 @@
+import { Sample } from './Sample';
+
+const enumObjects: Sample = {
+ schema: {
+ definitions: {
+ locations: {
+ // @ts-expect-error -- enumNames an RJSF keyword and is not in the JSON Schema spec
+ enumNames: ['New York', 'Amsterdam', 'Hong Kong'],
+ enum: [
+ {
+ name: 'New York',
+ lat: 40,
+ lon: 74,
+ },
+ {
+ name: 'Amsterdam',
+ lat: 52,
+ lon: 5,
+ },
+ {
+ name: 'Hong Kong',
+ lat: 22,
+ lon: 114,
+ },
+ ],
+ },
+ },
+ type: 'object',
+ properties: {
+ location: {
+ title: 'Location',
+ $ref: '#/definitions/locations',
+ },
+ locationRadio: {
+ title: 'Location Radio',
+ $ref: '#/definitions/locations',
+ },
+ multiSelect: {
+ title: 'Locations',
+ type: 'array',
+ uniqueItems: true,
+ items: {
+ $ref: '#/definitions/locations',
+ },
+ },
+ checkboxes: {
+ title: 'Locations Checkboxes',
+ type: 'array',
+ uniqueItems: true,
+ items: {
+ $ref: '#/definitions/locations',
+ },
+ },
+ },
+ },
+ uiSchema: {
+ locationRadio: {
+ 'ui:widget': 'RadioWidget',
+ },
+ checkboxes: {
+ 'ui:widget': 'CheckboxesWidget',
+ },
+ },
+ formData: {
+ location: {
+ name: 'Amsterdam',
+ lat: 52,
+ lon: 5,
+ },
+ },
+};
+
+export default enumObjects;
diff --git a/demo/src/samples/errorSchema.ts b/demo/src/samples/errorSchema.ts
new file mode 100644
index 0000000..7a36493
--- /dev/null
+++ b/demo/src/samples/errorSchema.ts
@@ -0,0 +1,78 @@
+import { Sample } from './Sample';
+import { ErrorSchemaBuilder } from '@rjsf/utils';
+
+const errorSchemaBuilder = new ErrorSchemaBuilder();
+errorSchemaBuilder.addErrors('some error that got added as a prop', 'firstName');
+
+const errorSchema: Sample = {
+ schema: {
+ title: 'A registration form',
+ description: 'A simple form example.',
+ type: 'object',
+ required: ['firstName', 'lastName'],
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'First name',
+ default: 'Chuck',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Last name',
+ },
+ age: {
+ type: 'integer',
+ title: 'Age',
+ },
+ bio: {
+ type: 'string',
+ title: 'Bio',
+ },
+ password: {
+ type: 'string',
+ title: 'Password',
+ minLength: 3,
+ },
+ telephone: {
+ type: 'string',
+ title: 'Telephone',
+ minLength: 10,
+ },
+ },
+ },
+ uiSchema: {
+ firstName: {
+ 'ui:autofocus': true,
+ 'ui:emptyValue': '',
+ },
+ age: {
+ 'ui:widget': 'updown',
+ 'ui:title': 'Age of person',
+ 'ui:description': '(earthian year)',
+ },
+ bio: {
+ 'ui:widget': 'textarea',
+ },
+ password: {
+ 'ui:widget': 'password',
+ 'ui:help': 'Hint: Make it strong!',
+ },
+ date: {
+ 'ui:widget': 'alt-datetime',
+ },
+ telephone: {
+ 'ui:options': {
+ inputType: 'tel',
+ },
+ },
+ },
+ formData: {
+ lastName: 'Norris',
+ age: 75,
+ bio: 'Roundhouse kicking asses since 1940',
+ password: 'noneed',
+ },
+ extraErrors: errorSchemaBuilder.ErrorSchema,
+};
+
+export default errorSchema;
diff --git a/demo/src/samples/errors.ts b/demo/src/samples/errors.ts
new file mode 100644
index 0000000..e12dfc8
--- /dev/null
+++ b/demo/src/samples/errors.ts
@@ -0,0 +1,46 @@
+import { Sample } from './Sample';
+
+const errors: Sample = {
+ schema: {
+ title: 'Contextualized errors',
+ type: 'object',
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'First name',
+ minLength: 8,
+ pattern: '\\d+',
+ },
+ active: {
+ type: 'boolean',
+ title: 'Active',
+ },
+ skills: {
+ type: 'array',
+ items: {
+ type: 'string',
+ minLength: 5,
+ },
+ },
+ multipleChoicesList: {
+ type: 'array',
+ title: 'Pick max two items',
+ uniqueItems: true,
+ maxItems: 2,
+ items: {
+ type: 'string',
+ enum: ['foo', 'bar', 'fuzz'],
+ },
+ },
+ },
+ },
+ uiSchema: {},
+ formData: {
+ firstName: 'Chuck',
+ active: 'wrong',
+ skills: ['karate', 'budo', 'aikido'],
+ multipleChoicesList: ['foo', 'bar', 'fuzz'],
+ },
+};
+
+export default errors;
diff --git a/demo/src/samples/examples.ts b/demo/src/samples/examples.ts
new file mode 100644
index 0000000..5bcd2bc
--- /dev/null
+++ b/demo/src/samples/examples.ts
@@ -0,0 +1,18 @@
+import { Sample } from './Sample';
+
+const examples: Sample = {
+ schema: {
+ title: 'Examples',
+ description: 'A text field with example values.',
+ type: 'object',
+ properties: {
+ browser: {
+ type: 'string',
+ title: 'Browser',
+ examples: ['Firefox', 'Chrome', 'Opera', 'Vivaldi', 'Safari'],
+ },
+ },
+ },
+};
+
+export default examples;
diff --git a/demo/src/samples/files.ts b/demo/src/samples/files.ts
new file mode 100644
index 0000000..c69e61f
--- /dev/null
+++ b/demo/src/samples/files.ts
@@ -0,0 +1,36 @@
+import { Sample } from './Sample';
+
+const files: Sample = {
+ schema: {
+ title: 'Files',
+ type: 'object',
+ properties: {
+ file: {
+ type: 'string',
+ format: 'data-url',
+ title: 'Single file',
+ },
+ files: {
+ type: 'array',
+ title: 'Multiple files',
+ items: {
+ type: 'string',
+ format: 'data-url',
+ },
+ },
+ filesAccept: {
+ type: 'string',
+ format: 'data-url',
+ title: 'Single File with Accept attribute',
+ },
+ },
+ },
+ uiSchema: {
+ filesAccept: {
+ 'ui:options': { accept: '.pdf' },
+ },
+ },
+ formData: {},
+};
+
+export default files;
diff --git a/demo/src/samples/ifThenElse.ts b/demo/src/samples/ifThenElse.ts
new file mode 100644
index 0000000..8b9ced6
--- /dev/null
+++ b/demo/src/samples/ifThenElse.ts
@@ -0,0 +1,49 @@
+import { Sample } from './Sample';
+
+const ifThenElse: Sample = {
+ schema: {
+ type: 'object',
+ properties: {
+ animal: {
+ enum: ['Cat', 'Fish'],
+ },
+ },
+ allOf: [
+ {
+ if: {
+ properties: { animal: { const: 'Cat' } },
+ },
+ then: {
+ properties: {
+ food: { type: 'string', enum: ['meat', 'grass', 'fish'] },
+ },
+ required: ['food'],
+ },
+ },
+ {
+ if: {
+ properties: { animal: { const: 'Fish' } },
+ },
+ then: {
+ properties: {
+ food: {
+ type: 'string',
+ enum: ['insect', 'worms'],
+ },
+ water: {
+ type: 'string',
+ enum: ['lake', 'sea'],
+ },
+ },
+ required: ['food', 'water'],
+ },
+ },
+ {
+ required: ['animal'],
+ },
+ ],
+ },
+ formData: {},
+};
+
+export default ifThenElse;
diff --git a/demo/src/samples/index.ts b/demo/src/samples/index.ts
new file mode 100644
index 0000000..3d0dce7
--- /dev/null
+++ b/demo/src/samples/index.ts
@@ -0,0 +1,72 @@
+import arrays from './arrays'
+import anyOf from './anyOf'
+import oneOf from './oneOf'
+import allOf from './allOf'
+import enumObjects from './enumObjects'
+import nested from './nested'
+import numbers from './numbers'
+import simple from './simple'
+import widgets from './widgets'
+import ordering from './ordering'
+import references from './references'
+import custom from './custom'
+import errors from './errors'
+import examples from './examples'
+import large from './large'
+import date from './date'
+import validation from './validation'
+import files from './files'
+import single from './single'
+import customArray from './customArray'
+import customFieldAnyOf from './customFieldAnyOf'
+import alternatives from './alternatives'
+import propertyDependencies from './propertyDependencies'
+import schemaDependencies from './schemaDependencies'
+import additionalProperties from './additionalProperties'
+import nullable from './nullable'
+import nullField from './null'
+import errorSchema from './errorSchema'
+import defaults from './defaults'
+import options from './options'
+import ifThenElse from './ifThenElse'
+import customField from './customField'
+import { Sample } from './Sample'
+import deepFreeze from 'deep-freeze-es6'
+
+const _samples: Record = {
+ Blank: { schema: {}, uiSchema: {}, formData: {} },
+ Simple: simple,
+ 'UI Options': options,
+ Nested: nested,
+ Arrays: arrays,
+ Numbers: numbers,
+ Widgets: widgets,
+ Ordering: ordering,
+ References: references,
+ Custom: custom,
+ Errors: errors,
+ Examples: examples,
+ Large: large,
+ 'Date & time': date,
+ Validation: validation,
+ Files: files,
+ Single: single,
+ 'Custom Array': customArray,
+ Alternatives: alternatives,
+ 'Property dependencies': propertyDependencies,
+ 'Schema dependencies': schemaDependencies,
+ 'Additional Properties': additionalProperties,
+ 'Any Of': anyOf,
+ 'Any Of with Custom Field': customFieldAnyOf,
+ 'One Of': oneOf,
+ 'All Of': allOf,
+ 'If Then Else': ifThenElse,
+ 'Null fields': nullField,
+ 'Enumerated objects': enumObjects,
+ Nullable: nullable,
+ ErrorSchema: errorSchema,
+ Defaults: defaults,
+ 'Custom Field': customField,
+}
+
+export const samples = deepFreeze(_samples)
diff --git a/demo/src/samples/large.ts b/demo/src/samples/large.ts
new file mode 100644
index 0000000..ebcecca
--- /dev/null
+++ b/demo/src/samples/large.ts
@@ -0,0 +1,43 @@
+import { Sample } from './Sample';
+
+function largeEnum(n: number) {
+ const list = [];
+ for (let i = 0; i < n; i++) {
+ list.push('option #' + i);
+ }
+ return list;
+}
+
+const large: Sample = {
+ schema: {
+ definitions: {
+ largeEnum: { type: 'string', enum: largeEnum(100) },
+ },
+ title: 'A rather large form',
+ type: 'object',
+ properties: {
+ string: {
+ type: 'string',
+ title: 'Some string',
+ },
+ choice1: { $ref: '#/definitions/largeEnum' },
+ choice2: { $ref: '#/definitions/largeEnum' },
+ choice3: { $ref: '#/definitions/largeEnum' },
+ choice4: { $ref: '#/definitions/largeEnum' },
+ choice5: { $ref: '#/definitions/largeEnum' },
+ choice6: { $ref: '#/definitions/largeEnum' },
+ choice7: { $ref: '#/definitions/largeEnum' },
+ choice8: { $ref: '#/definitions/largeEnum' },
+ choice9: { $ref: '#/definitions/largeEnum' },
+ choice10: { $ref: '#/definitions/largeEnum' },
+ },
+ },
+ uiSchema: {
+ choice1: {
+ 'ui:placeholder': 'Choose one',
+ },
+ },
+ formData: {},
+};
+
+export default large;
diff --git a/demo/src/samples/nested.ts b/demo/src/samples/nested.ts
new file mode 100644
index 0000000..cc53494
--- /dev/null
+++ b/demo/src/samples/nested.ts
@@ -0,0 +1,68 @@
+import { Sample } from './Sample';
+
+const nested: Sample = {
+ schema: {
+ title: 'A list of tasks',
+ type: 'object',
+ required: ['title'],
+ properties: {
+ title: {
+ type: 'string',
+ title: 'Task list title',
+ },
+ tasks: {
+ type: 'array',
+ title: 'Tasks',
+ items: {
+ type: 'object',
+ required: ['title'],
+ properties: {
+ title: {
+ type: 'string',
+ title: 'Title',
+ description: 'A sample title',
+ },
+ details: {
+ type: 'string',
+ title: 'Task details',
+ description: 'Enter the task details',
+ },
+ done: {
+ type: 'boolean',
+ title: 'Done?',
+ default: false,
+ },
+ },
+ },
+ },
+ },
+ },
+ uiSchema: {
+ tasks: {
+ items: {
+ details: {
+ 'ui:widget': 'textarea',
+ },
+ },
+ },
+ },
+ formData: {
+ title: 'My current tasks',
+ tasks: [
+ {
+ title: 'My first task',
+ details:
+ 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.',
+ done: true,
+ },
+ {
+ title: 'My second task',
+ details:
+ 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur',
+ done: false,
+ },
+ ],
+ },
+};
+
+export default nested;
diff --git a/demo/src/samples/null.ts b/demo/src/samples/null.ts
new file mode 100644
index 0000000..61ca768
--- /dev/null
+++ b/demo/src/samples/null.ts
@@ -0,0 +1,31 @@
+import { Sample } from './Sample';
+
+const nullField: Sample = {
+ schema: {
+ title: 'Null field example',
+ description: 'A short form with a null field',
+ type: 'object',
+ required: ['firstName'],
+ properties: {
+ helpText: {
+ title: 'A null field',
+ description: 'Null fields like this are great for adding extra information',
+ type: 'null',
+ },
+ firstName: {
+ type: 'string',
+ title: 'A regular string field',
+ default: 'Chuck',
+ },
+ },
+ },
+ uiSchema: {
+ firstName: {
+ 'ui:autofocus': true,
+ 'ui:emptyValue': '',
+ },
+ },
+ formData: {},
+};
+
+export default nullField;
diff --git a/demo/src/samples/nullable.ts b/demo/src/samples/nullable.ts
new file mode 100644
index 0000000..d11409e
--- /dev/null
+++ b/demo/src/samples/nullable.ts
@@ -0,0 +1,76 @@
+import { Sample } from './Sample';
+
+const nullable: Sample = {
+ schema: {
+ title: 'A registration form (nullable)',
+ description: 'A simple form example using nullable types',
+ type: 'object',
+ required: ['firstName', 'lastName'],
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'First name',
+ default: 'Chuck',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Last name',
+ },
+ age: {
+ type: ['integer', 'null'],
+ title: 'Age',
+ },
+ bio: {
+ type: ['string', 'null'],
+ title: 'Bio',
+ },
+ password: {
+ type: 'string',
+ title: 'Password',
+ minLength: 3,
+ },
+ telephone: {
+ type: 'string',
+ title: 'Telephone',
+ minLength: 10,
+ },
+ },
+ },
+ uiSchema: {
+ firstName: {
+ 'ui:autofocus': true,
+ 'ui:emptyValue': '',
+ },
+ age: {
+ 'ui:widget': 'updown',
+ 'ui:title': 'Age of person',
+ 'ui:description': '(earthian year)',
+ 'ui:emptyValue': null,
+ },
+ bio: {
+ 'ui:widget': 'textarea',
+ 'ui:placeholder': 'Leaving this field empty will cause formData property to be `null`',
+ 'ui:emptyValue': null,
+ },
+ password: {
+ 'ui:widget': 'password',
+ 'ui:help': 'Hint: Make it strong!',
+ },
+ date: {
+ 'ui:widget': 'alt-datetime',
+ },
+ telephone: {
+ 'ui:options': {
+ inputType: 'tel',
+ },
+ },
+ },
+ formData: {
+ lastName: 'Norris',
+ age: 75,
+ bio: null,
+ password: 'noneed',
+ },
+};
+
+export default nullable;
diff --git a/demo/src/samples/numbers.ts b/demo/src/samples/numbers.ts
new file mode 100644
index 0000000..f7dc479
--- /dev/null
+++ b/demo/src/samples/numbers.ts
@@ -0,0 +1,67 @@
+import { Sample } from './Sample';
+
+const numbers: Sample = {
+ schema: {
+ type: 'object',
+ title: 'Number fields & widgets',
+ properties: {
+ number: {
+ title: 'Number',
+ type: 'number',
+ },
+ integer: {
+ title: 'Integer',
+ type: 'integer',
+ },
+ numberEnum: {
+ type: 'number',
+ title: 'Number enum',
+ enum: [1, 2, 3],
+ },
+ numberEnumRadio: {
+ type: 'number',
+ title: 'Number enum',
+ enum: [1, 2, 3],
+ },
+ integerRange: {
+ title: 'Integer range',
+ type: 'integer',
+ minimum: -50,
+ maximum: 50,
+ },
+ integerRangeSteps: {
+ title: 'Integer range (by 10)',
+ type: 'integer',
+ minimum: 50,
+ maximum: 100,
+ multipleOf: 10,
+ },
+ },
+ },
+ uiSchema: {
+ integer: {
+ 'ui:widget': 'updown',
+ },
+ numberEnumRadio: {
+ 'ui:widget': 'radio',
+ 'ui:options': {
+ inline: true,
+ },
+ },
+ integerRange: {
+ 'ui:widget': 'range',
+ },
+ integerRangeSteps: {
+ 'ui:widget': 'range',
+ },
+ },
+ formData: {
+ number: 3.14,
+ integer: 42,
+ numberEnum: 2,
+ integerRange: 42,
+ integerRangeSteps: 80,
+ },
+};
+
+export default numbers;
diff --git a/demo/src/samples/oneOf.ts b/demo/src/samples/oneOf.ts
new file mode 100644
index 0000000..fc1091a
--- /dev/null
+++ b/demo/src/samples/oneOf.ts
@@ -0,0 +1,28 @@
+import { Sample } from './Sample';
+
+const oneOf: Sample = {
+ schema: {
+ type: 'object',
+ oneOf: [
+ {
+ properties: {
+ lorem: {
+ type: 'string',
+ },
+ },
+ required: ['lorem'],
+ },
+ {
+ properties: {
+ ipsum: {
+ type: 'string',
+ },
+ },
+ required: ['ipsum'],
+ },
+ ],
+ },
+ formData: {},
+};
+
+export default oneOf;
diff --git a/demo/src/samples/options.ts b/demo/src/samples/options.ts
new file mode 100644
index 0000000..c726858
--- /dev/null
+++ b/demo/src/samples/options.ts
@@ -0,0 +1,56 @@
+import { fr } from '@codegouvfr/react-dsfr'
+import { Sample } from './Sample'
+
+const optionsSample: Sample = {
+ schema: {
+ title: 'Un formulaire avec des ui:options',
+ description: 'Description du formulaire',
+ type: 'object',
+ required: ['firstName', 'lastName', 'telephone'],
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'Prénom',
+ default: 'Louise',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Nom',
+ },
+ telephone: {
+ type: 'string',
+ title: 'Téléphone',
+ minLength: 10,
+ },
+ },
+ },
+ uiSchema: {
+ 'ui:submitButtonOptions': {
+ submitText: 'Confirmer les détails',
+ props: {
+ disabled: false,
+ style: { color: 'yellow' },
+ iconId: 'fr-icon-account-circle-line',
+ },
+ },
+ firstName: {
+ 'ui:autocomplete': 'family-name',
+ },
+ lastName: {
+ 'ui:autofocus': true,
+ 'ui:title': 'Override du prénom',
+ 'ui:autocomplete': 'given-name',
+ },
+ telephone: {
+ 'ui:options': {
+ inputType: 'tel',
+ },
+ },
+ },
+ formData: {
+ lastName: 'Michel',
+ age: 75,
+ },
+}
+
+export default optionsSample
diff --git a/demo/src/samples/ordering.ts b/demo/src/samples/ordering.ts
new file mode 100644
index 0000000..655e162
--- /dev/null
+++ b/demo/src/samples/ordering.ts
@@ -0,0 +1,52 @@
+import { Sample } from './Sample';
+
+const ordering: Sample = {
+ schema: {
+ title: 'A registration form',
+ type: 'object',
+ required: ['firstName', 'lastName'],
+ properties: {
+ password: {
+ type: 'string',
+ title: 'Password',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Last name',
+ },
+ bio: {
+ type: 'string',
+ title: 'Bio',
+ },
+ firstName: {
+ type: 'string',
+ title: 'First name',
+ },
+ age: {
+ type: 'integer',
+ title: 'Age',
+ },
+ },
+ },
+ uiSchema: {
+ 'ui:order': ['firstName', 'lastName', '*', 'password'],
+ age: {
+ 'ui:widget': 'updown',
+ },
+ bio: {
+ 'ui:widget': 'textarea',
+ },
+ password: {
+ 'ui:widget': 'password',
+ },
+ },
+ formData: {
+ firstName: 'Chuck',
+ lastName: 'Norris',
+ age: 75,
+ bio: 'Roundhouse kicking asses since 1940',
+ password: 'noneed',
+ },
+};
+
+export default ordering;
diff --git a/demo/src/samples/propertyDependencies.ts b/demo/src/samples/propertyDependencies.ts
new file mode 100644
index 0000000..de175b2
--- /dev/null
+++ b/demo/src/samples/propertyDependencies.ts
@@ -0,0 +1,80 @@
+import { Sample } from './Sample';
+
+const propertyDependencies: Sample = {
+ schema: {
+ title: 'Property dependencies',
+ description: 'These samples are best viewed without live validation.',
+ type: 'object',
+ properties: {
+ unidirectional: {
+ title: 'Unidirectional',
+ type: 'object',
+ properties: {
+ name: {
+ type: 'string',
+ },
+ credit_card: {
+ type: 'number',
+ },
+ billing_address: {
+ type: 'string',
+ },
+ },
+ required: ['name'],
+ dependencies: {
+ credit_card: ['billing_address'],
+ },
+ },
+ bidirectional: {
+ title: 'Bidirectional',
+ description:
+ 'Dependencies are not bidirectional, you can, of course, define the bidirectional dependencies explicitly.',
+ type: 'object',
+ properties: {
+ name: {
+ type: 'string',
+ },
+ credit_card: {
+ type: 'number',
+ },
+ billing_address: {
+ type: 'string',
+ },
+ },
+ required: ['name'],
+ dependencies: {
+ credit_card: ['billing_address'],
+ billing_address: ['credit_card'],
+ },
+ },
+ },
+ },
+ uiSchema: {
+ unidirectional: {
+ credit_card: {
+ 'ui:help': 'If you enter anything here then billing_address will become required.',
+ },
+ billing_address: {
+ 'ui:help': "It's okay to have a billing address without a credit card number.",
+ },
+ },
+ bidirectional: {
+ credit_card: {
+ 'ui:help': 'If you enter anything here then billing_address will become required.',
+ },
+ billing_address: {
+ 'ui:help': 'If you enter anything here then credit_card will become required.',
+ },
+ },
+ },
+ formData: {
+ unidirectional: {
+ name: 'Tim',
+ },
+ bidirectional: {
+ name: 'Jill',
+ },
+ },
+};
+
+export default propertyDependencies;
diff --git a/demo/src/samples/references.ts b/demo/src/samples/references.ts
new file mode 100644
index 0000000..c05ceac
--- /dev/null
+++ b/demo/src/samples/references.ts
@@ -0,0 +1,65 @@
+import { Sample } from './Sample';
+
+const references: Sample = {
+ schema: {
+ definitions: {
+ address: {
+ type: 'object',
+ properties: {
+ street_address: { type: 'string' },
+ city: { type: 'string' },
+ state: { type: 'string' },
+ },
+ required: ['street_address', 'city', 'state'],
+ },
+ node: {
+ type: 'object',
+ properties: {
+ name: { type: 'string' },
+ children: {
+ type: 'array',
+ items: {
+ $ref: '#/definitions/node',
+ },
+ },
+ },
+ },
+ },
+ type: 'object',
+ properties: {
+ billing_address: {
+ title: 'Billing address',
+ $ref: '#/definitions/address',
+ },
+ shipping_address: {
+ title: 'Shipping address',
+ $ref: '#/definitions/address',
+ },
+ tree: {
+ title: 'Recursive references',
+ $ref: '#/definitions/node',
+ },
+ },
+ },
+ uiSchema: {
+ 'ui:order': ['shipping_address', 'billing_address', 'tree'],
+ },
+ formData: {
+ billing_address: {
+ street_address: '21, Jump Street',
+ city: 'Babel',
+ state: 'Neverland',
+ },
+ shipping_address: {
+ street_address: '221B, Baker Street',
+ city: 'London',
+ state: 'N/A',
+ },
+ tree: {
+ name: 'root',
+ children: [{ name: 'leaf' }],
+ },
+ },
+};
+
+export default references;
diff --git a/demo/src/samples/schemaDependencies.ts b/demo/src/samples/schemaDependencies.ts
new file mode 100644
index 0000000..b9ddea7
--- /dev/null
+++ b/demo/src/samples/schemaDependencies.ts
@@ -0,0 +1,172 @@
+import { Sample } from './Sample';
+
+const schemaDependencies: Sample = {
+ schema: {
+ title: 'Schema dependencies',
+ description: 'These samples are best viewed without live validation.',
+ type: 'object',
+ properties: {
+ simple: {
+ title: 'Simple',
+ type: 'object',
+ properties: {
+ name: {
+ type: 'string',
+ },
+ credit_card: {
+ type: 'number',
+ },
+ },
+ required: ['name'],
+ dependencies: {
+ credit_card: {
+ properties: {
+ billing_address: {
+ type: 'string',
+ },
+ },
+ required: ['billing_address'],
+ },
+ },
+ },
+ conditional: {
+ title: 'Conditional',
+ $ref: '#/definitions/person',
+ },
+ arrayOfConditionals: {
+ title: 'Array of conditionals',
+ type: 'array',
+ items: {
+ $ref: '#/definitions/person',
+ },
+ },
+ fixedArrayOfConditionals: {
+ title: 'Fixed array of conditionals',
+ type: 'array',
+ items: [
+ {
+ title: 'Primary person',
+ $ref: '#/definitions/person',
+ },
+ ],
+ additionalItems: {
+ title: 'Additional person',
+ $ref: '#/definitions/person',
+ },
+ },
+ },
+ definitions: {
+ person: {
+ title: 'Person',
+ type: 'object',
+ properties: {
+ 'Do you have any pets?': {
+ type: 'string',
+ enum: ['No', 'Yes: One', 'Yes: More than one'],
+ default: 'No',
+ },
+ },
+ required: ['Do you have any pets?'],
+ dependencies: {
+ 'Do you have any pets?': {
+ oneOf: [
+ {
+ properties: {
+ 'Do you have any pets?': {
+ enum: ['No'],
+ },
+ },
+ },
+ {
+ properties: {
+ 'Do you have any pets?': {
+ enum: ['Yes: One'],
+ },
+ 'How old is your pet?': {
+ type: 'number',
+ },
+ },
+ required: ['How old is your pet?'],
+ },
+ {
+ properties: {
+ 'Do you have any pets?': {
+ enum: ['Yes: More than one'],
+ },
+ 'Do you want to get rid of any?': {
+ type: 'boolean',
+ },
+ },
+ required: ['Do you want to get rid of any?'],
+ },
+ ],
+ },
+ },
+ },
+ },
+ },
+ uiSchema: {
+ simple: {
+ credit_card: {
+ 'ui:help': 'If you enter anything here then billing_address will be dynamically added to the form.',
+ },
+ },
+ conditional: {
+ 'Do you want to get rid of any?': {
+ 'ui:widget': 'radio',
+ },
+ },
+ arrayOfConditionals: {
+ items: {
+ 'Do you want to get rid of any?': {
+ 'ui:widget': 'radio',
+ },
+ },
+ },
+ fixedArrayOfConditionals: {
+ items: {
+ 'Do you want to get rid of any?': {
+ 'ui:widget': 'radio',
+ },
+ },
+ additionalItems: {
+ 'Do you want to get rid of any?': {
+ 'ui:widget': 'radio',
+ },
+ },
+ },
+ },
+ formData: {
+ simple: {
+ name: 'Randy',
+ },
+ conditional: {
+ 'Do you have any pets?': 'No',
+ },
+ arrayOfConditionals: [
+ {
+ 'Do you have any pets?': 'Yes: One',
+ 'How old is your pet?': 6,
+ },
+ {
+ 'Do you have any pets?': 'Yes: More than one',
+ 'Do you want to get rid of any?': false,
+ },
+ ],
+ fixedArrayOfConditionals: [
+ {
+ 'Do you have any pets?': 'No',
+ },
+ {
+ 'Do you have any pets?': 'Yes: One',
+ 'How old is your pet?': 6,
+ },
+ {
+ 'Do you have any pets?': 'Yes: More than one',
+ 'Do you want to get rid of any?': true,
+ },
+ ],
+ },
+};
+
+export default schemaDependencies;
diff --git a/demo/src/samples/simple.ts b/demo/src/samples/simple.ts
new file mode 100644
index 0000000..f1e0133
--- /dev/null
+++ b/demo/src/samples/simple.ts
@@ -0,0 +1,79 @@
+import { Sample } from './Sample'
+
+const simple: Sample = {
+ schema: {
+ title: 'Un formulaire simple',
+ description: 'La description du formulaire.',
+ type: 'object',
+ required: ['firstName', 'lastName'],
+ properties: {
+ firstName: {
+ type: 'string',
+ title: 'Prénom',
+ default: 'Louise',
+ },
+ lastName: {
+ type: 'string',
+ title: 'Nom',
+ },
+ age: {
+ type: 'integer',
+ title: 'Age',
+ },
+ bio: {
+ type: 'string',
+ title: 'Bio',
+ },
+ password: {
+ type: 'string',
+ title: 'Mot de passe',
+ minLength: 3,
+ },
+ telephone: {
+ type: 'string',
+ title: 'Téléphone',
+ minLength: 10,
+ },
+ },
+ },
+ uiSchema: {
+ firstName: {
+ 'ui:autofocus': true,
+ 'ui:placeholder': 'Ex: Louise',
+ 'ui:autocomplete': 'family-name',
+ 'ui:enableMarkdownInDescription': true, // todo
+ 'ui:description': 'Description du champ firstName',
+ },
+ lastName: {
+ 'ui:autocomplete': 'given-name',
+ 'ui:enableMarkdownInDescription': true, // todo
+ 'ui:description': 'Description du champ lastName',
+ },
+ age: {
+ 'ui:widget': 'updown',
+ 'ui:title': 'Age de la personne',
+ 'ui:description': 'En années',
+ },
+ bio: {
+ 'ui:widget': 'textarea',
+ },
+ password: {
+ 'ui:widget': 'password',
+ 'ui:help': 'Créez un mot de passe unique pour chaque service !',
+ },
+ telephone: {
+ 'ui:options': {
+ inputType: 'tel',
+ },
+ },
+ },
+ formData: {
+ lastName: 'Michel',
+ age: 75,
+ bio: 'Roundhouse kicking asses since 1830',
+ password: 'noneed',
+ telephone: '1-800-000',
+ },
+}
+
+export default simple
diff --git a/demo/src/samples/single.ts b/demo/src/samples/single.ts
new file mode 100644
index 0000000..0a28405
--- /dev/null
+++ b/demo/src/samples/single.ts
@@ -0,0 +1,12 @@
+import { Sample } from './Sample';
+
+const single: Sample = {
+ schema: {
+ title: 'A single-field form',
+ type: 'string',
+ },
+ formData: 'initial value',
+ uiSchema: {},
+};
+
+export default single;
diff --git a/demo/src/samples/validation.ts b/demo/src/samples/validation.ts
new file mode 100644
index 0000000..c770c1f
--- /dev/null
+++ b/demo/src/samples/validation.ts
@@ -0,0 +1,62 @@
+import { Sample } from './Sample'
+import { ErrorTransformer } from '@rjsf/utils'
+
+function customValidate(
+ { pass1, pass2 }: { pass1: string; pass2: string },
+ errors: any,
+) {
+ if (pass1 !== pass2) {
+ errors.pass2.addError('Les mots de passe ne correspondent pas')
+ }
+ return errors
+}
+
+const transformErrors: ErrorTransformer = (errors) => {
+ return errors.map((error) => {
+ if (
+ error.name === 'minimum' &&
+ error.schemaPath === '#/properties/age/minimum'
+ ) {
+ return Object.assign({}, error, {
+ message: 'Vous devez avoir au moins 18 ans pour accéder à ce service',
+ })
+ }
+ return error
+ })
+}
+
+const validation: Sample = {
+ schema: {
+ title: 'Custom validation',
+ description:
+ "Ce formulaire ajoute des règles de validation sur l'age et les mots de passes qui doivent correspondre",
+ type: 'object',
+ required: ['pass1', 'pass2', 'age'],
+ properties: {
+ pass1: {
+ title: 'Mot de passe',
+ type: 'string',
+ minLength: 3,
+ },
+ pass2: {
+ title: 'Répéter le mot de passe',
+ type: 'string',
+ minLength: 3,
+ },
+ age: {
+ title: 'Age',
+ type: 'number',
+ minimum: 18,
+ },
+ },
+ },
+ uiSchema: {
+ pass1: { 'ui:widget': 'password' },
+ pass2: { 'ui:widget': 'password' },
+ },
+ formData: {},
+ customValidate,
+ transformErrors,
+}
+
+export default validation
diff --git a/demo/src/samples/widgets.tsx b/demo/src/samples/widgets.tsx
new file mode 100644
index 0000000..a93b236
--- /dev/null
+++ b/demo/src/samples/widgets.tsx
@@ -0,0 +1,218 @@
+import { Sample } from './Sample';
+
+const widgets: Sample = {
+ schema: {
+ title: 'Widgets',
+ type: 'object',
+ properties: {
+ stringFormats: {
+ type: 'object',
+ title: 'String formats',
+ properties: {
+ email: {
+ type: 'string',
+ format: 'email',
+ },
+ uri: {
+ type: 'string',
+ format: 'uri',
+ },
+ },
+ },
+ boolean: {
+ type: 'object',
+ title: 'Boolean field',
+ properties: {
+ default: {
+ type: 'boolean',
+ title: 'checkbox (default)',
+ description: 'This is the checkbox-description',
+ },
+ radio: {
+ type: 'boolean',
+ title: 'radio buttons',
+ description: 'This is the radio-description',
+ },
+ select: {
+ type: 'boolean',
+ title: 'select box',
+ description: 'This is the select-description',
+ },
+ },
+ },
+ string: {
+ type: 'object',
+ title: 'String field',
+ properties: {
+ default: {
+ type: 'string',
+ title: 'text input (default)',
+ },
+ textarea: {
+ type: 'string',
+ title: 'textarea',
+ },
+ placeholder: {
+ type: 'string',
+ },
+ color: {
+ type: 'string',
+ title: 'color picker',
+ default: '#151ce6',
+ },
+ },
+ },
+ secret: {
+ type: 'string',
+ default: "I'm a hidden string.",
+ },
+ disabled: {
+ type: 'string',
+ title: 'A disabled field',
+ default: 'I am disabled.',
+ },
+ readonly: {
+ type: 'string',
+ title: 'A readonly field',
+ default: 'I am read-only.',
+ },
+ readonly2: {
+ type: 'string',
+ title: 'Another readonly field',
+ default: 'I am also read-only.',
+ readOnly: true,
+ },
+ widgetOptions: {
+ title: 'Custom widget with options',
+ type: 'string',
+ default: 'I am yellow',
+ },
+ selectWidgetOptions: {
+ title: 'Custom select widget with options',
+ type: 'string',
+ enum: ['foo', 'bar'],
+ },
+ selectWidgetOptions2: {
+ title: 'Custom select widget with options, overriding the enum titles.',
+ type: 'string',
+ oneOf: [
+ {
+ const: 'foo',
+ title: 'Foo',
+ },
+ {
+ const: 'bar',
+ title: 'Bar',
+ },
+ ],
+ },
+ },
+ },
+ uiSchema: {
+ boolean: {
+ radio: {
+ 'ui:widget': 'radio',
+ },
+ select: {
+ 'ui:widget': 'select',
+ },
+ },
+ string: {
+ textarea: {
+ 'ui:widget': 'textarea',
+ 'ui:options': {
+ rows: 5,
+ },
+ },
+ placeholder: {
+ 'ui:placeholder': 'This is a placeholder',
+ },
+ color: {
+ 'ui:widget': 'color',
+ },
+ },
+ secret: {
+ 'ui:widget': 'hidden',
+ },
+ disabled: {
+ 'ui:disabled': true,
+ },
+ readonly: {
+ 'ui:readonly': true,
+ },
+ widgetOptions: {
+ 'ui:widget': ({
+ value,
+ onChange,
+ options,
+ }: {
+ value: any;
+ onChange: (value: any) => void;
+ options: { backgroundColor: string };
+ }) => {
+ const { backgroundColor } = options;
+ return (
+ onChange(event.target.value)}
+ style={{ backgroundColor }}
+ value={value}
+ />
+ );
+ },
+ 'ui:options': {
+ backgroundColor: 'yellow',
+ },
+ },
+ selectWidgetOptions: {
+ 'ui:widget': ({
+ value,
+ onChange,
+ options,
+ }: {
+ value: any;
+ onChange: (value: any) => void;
+ options: { enumOptions: { label: string; value: any }[]; backgroundColor: string };
+ }) => {
+ const { enumOptions, backgroundColor } = options;
+ return (
+ onChange(event.target.value)}
+ >
+ {enumOptions.map(({ label, value }, i) => {
+ return (
+
+ {label}
+
+ );
+ })}
+
+ );
+ },
+ 'ui:options': {
+ backgroundColor: 'pink',
+ },
+ },
+ },
+ formData: {
+ stringFormats: {
+ email: 'chuck@norris.net',
+ uri: 'http://chucknorris.com/',
+ },
+ boolean: {
+ default: true,
+ radio: true,
+ select: true,
+ },
+ string: {
+ default: 'Hello...',
+ textarea: '... World',
+ },
+ secret: "I'm a hidden string.",
+ },
+};
+
+export default widgets;
diff --git a/demo/src/utils/base64.ts b/demo/src/utils/base64.ts
new file mode 100644
index 0000000..23f0f3a
--- /dev/null
+++ b/demo/src/utils/base64.ts
@@ -0,0 +1,34 @@
+/**
+ * An object that provides base64 encoding and decoding functions using the utf-8 charset to support the characters
+ * outside the latin1 range. By default, btoa() and atob() only support the latin1 character range.
+ *
+ * This is built as an on-the-fly executed function to support testing the node vs browser implementations
+ */
+const base64 = (function () {
+ // If we are in the browser, we can use the built-in TextEncoder and TextDecoder
+ // Otherwise, it is assumed that we are in node.js, and we can use the util module's TextEncoder and TextDecoder
+ return {
+ encode(text: string): string {
+ let encoder: any;
+ if (typeof TextEncoder !== 'undefined') {
+ encoder = new TextEncoder();
+ } else {
+ const { TextEncoder } = require('util');
+ encoder = new TextEncoder();
+ }
+ return btoa(String.fromCharCode(...encoder.encode(text)));
+ },
+ decode(text: string): string {
+ let decoder: any;
+ if (typeof TextDecoder !== 'undefined') {
+ decoder = new TextDecoder();
+ } else {
+ const { TextDecoder } = require('util');
+ decoder = new TextDecoder();
+ }
+ return decoder.decode(Uint8Array.from(atob(text), (c) => c.charCodeAt(0)));
+ },
+ };
+})();
+
+export default base64;
diff --git a/demo/test/utils/base64.test.ts b/demo/test/utils/base64.test.ts
new file mode 100644
index 0000000..bd0e042
--- /dev/null
+++ b/demo/test/utils/base64.test.ts
@@ -0,0 +1,57 @@
+import base64 from '../../src/utils/base64'
+
+describe('base64', () => {
+ it('should successfully encode a ascii character', () => {
+ expect(base64.encode('v')).toEqual('dg==')
+ })
+ it('should successfully encode a Chinese character', () => {
+ expect(base64.encode('我')).toEqual('5oiR')
+ })
+ it('should successfully encode ascii characters', () => {
+ expect(base64.encode('vs')).toEqual('dnM=')
+ })
+ it('should successfully encode a Chinese characters', () => {
+ expect(base64.encode('我是')).toEqual('5oiR5piv')
+ })
+ it('should successfully decode a ascii character', () => {
+ expect(base64.decode('dg==')).toEqual('v')
+ })
+ it('should successfully decode a Chinese character', () => {
+ expect(base64.decode('5oiR')).toEqual('我')
+ })
+ it('should successfully decode ascii characters', () => {
+ expect(base64.decode('dnM=')).toEqual('vs')
+ })
+ it('should successfully decode a Chinese characters', () => {
+ expect(base64.decode('5oiR5piv')).toEqual('我是')
+ })
+})
+
+describe('nodejs behavior', () => {
+ it('should successfully create a base64 object and encode/decode string in node.js', () => {
+ expect(base64.encode('我是')).toEqual('5oiR5piv')
+ expect(base64.decode('5oiR5piv')).toEqual('我是')
+ })
+})
+
+describe('browser behavior', () => {
+ // capture the TextEncoder and TextDecoder from the util module and assign them to the global object (for mocking browser environment)
+ beforeAll(() => {
+ const { TextDecoder } = require('util')
+ global.TextDecoder = TextDecoder
+
+ const { TextEncoder } = require('util')
+ global.TextEncoder = TextEncoder
+ })
+ // restore the TextEncoder and TextDecoder to undefined
+ afterAll(() => {
+ // @ts-expect-error The TextEncoder type is not allowed to be undefined, but we do need to do it for tests
+ global.TextEncoder = undefined
+ // @ts-expect-error The TextDecoder type is not allowed to be undefined, but we do need to do it for tests
+ global.TextDecoder = undefined
+ })
+ it('should successfully create a base64 object and encode/decode string in browser', () => {
+ expect(base64.encode('我是')).toEqual('5oiR5piv')
+ expect(base64.decode('5oiR5piv')).toEqual('我是')
+ })
+})
diff --git a/demo/tsconfig.json b/demo/tsconfig.json
new file mode 100644
index 0000000..4cf66f2
--- /dev/null
+++ b/demo/tsconfig.json
@@ -0,0 +1,26 @@
+{
+ "include": ["./", "src", "test"],
+ "compilerOptions": {
+ "rootDir": "./",
+ "baseUrl": "./",
+ "target": "ESNext",
+ "useDefineForClassFields": true,
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
+ "allowJs": false,
+ "skipLibCheck": true,
+ "esModuleInterop": false,
+ "allowSyntheticDefaultImports": true,
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "module": "ESNext",
+ "moduleResolution": "Node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "jsx": "react-jsx",
+ "types": ["vite/client", "jest", "node"]
+ },
+ "references": [
+
+ ]
+}
diff --git a/demo/vite.config.ts b/demo/vite.config.ts
new file mode 100644
index 0000000..4eba1fd
--- /dev/null
+++ b/demo/vite.config.ts
@@ -0,0 +1,36 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+import * as path from 'path'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ // base needs to be changed for links to work in GitHub pages
+ base: process.env.NODE_ENV === 'production' ? './' : '/',
+ server: {
+ port: 8080,
+ open: process.env.NODE_ENV !== 'production',
+ }, // maintain the old webpack behavior in dev
+ plugins: [react()],
+ resolve: {
+ preserveSymlinks: true, // Fixes https://github.com/rjsf-team/react-jsonschema-form/issues/3228
+ alias: {
+ // mapping packages in monorepo to make vite use sources directly avoiding build step
+ '@codegouvfr/rjsf-dsfr': path.resolve(__dirname, '../src'),
+ // '@rjsf/bootstrap-4': path.resolve(__dirname, '../bootstrap-4/src'),
+ // '@rjsf/chakra-ui': path.resolve(__dirname, '../chakra-ui/src'),
+ // '@rjsf/core': path.resolve(__dirname, '../core/src'),
+ // '@rjsf/fluent-ui': path.resolve(__dirname, '../fluent-ui/src'),
+ // '@rjsf/fluentui-rc': path.resolve(__dirname, '../fluentui-rc/src'),
+ // '@rjsf/material-ui': path.resolve(__dirname, '../material-ui/src'),
+ // '@rjsf/mui': path.resolve(__dirname, '../mui/src'),
+ // '@rjsf/semantic-ui': path.resolve(__dirname, '../semantic-ui/src'),
+ // '@rjsf/utils': path.resolve(__dirname, '../utils/src'),
+ // '@rjsf/validator-ajv8': path.resolve(__dirname, '../validator-ajv8/src'),
+ // validator-ajv6 can not be mapped directly to the sources, because that causes wrong ajv version resolution
+ // which looks related to: https://github.com/vitejs/vite/issues/12618
+ //
+ // the difference when mapping directly vs mapping to src folder - @vitejs/plugin-react can not be applied in the 2nd case
+ // '@rjsf/validator-ajv6': '@rjsf/validator-ajv6/src',
+ },
+ },
+})
diff --git a/demo/yarn.lock b/demo/yarn.lock
new file mode 100644
index 0000000..4a0369c
--- /dev/null
+++ b/demo/yarn.lock
@@ -0,0 +1,2460 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.2.0":
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
+ integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465"
+ integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==
+ dependencies:
+ "@babel/highlight" "^7.24.7"
+ picocolors "^1.0.0"
+
+"@babel/compat-data@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed"
+ integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==
+
+"@babel/core@^7.24.5":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4"
+ integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.24.7"
+ "@babel/generator" "^7.24.7"
+ "@babel/helper-compilation-targets" "^7.24.7"
+ "@babel/helper-module-transforms" "^7.24.7"
+ "@babel/helpers" "^7.24.7"
+ "@babel/parser" "^7.24.7"
+ "@babel/template" "^7.24.7"
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
+ convert-source-map "^2.0.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
+"@babel/generator@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d"
+ integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==
+ dependencies:
+ "@babel/types" "^7.24.7"
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
+ jsesc "^2.5.1"
+
+"@babel/helper-compilation-targets@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9"
+ integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==
+ dependencies:
+ "@babel/compat-data" "^7.24.7"
+ "@babel/helper-validator-option" "^7.24.7"
+ browserslist "^4.22.2"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
+"@babel/helper-environment-visitor@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9"
+ integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==
+ dependencies:
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-function-name@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2"
+ integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==
+ dependencies:
+ "@babel/template" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-hoist-variables@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee"
+ integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==
+ dependencies:
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b"
+ integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==
+ dependencies:
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-module-transforms@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8"
+ integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.24.7"
+ "@babel/helper-module-imports" "^7.24.7"
+ "@babel/helper-simple-access" "^7.24.7"
+ "@babel/helper-split-export-declaration" "^7.24.7"
+ "@babel/helper-validator-identifier" "^7.24.7"
+
+"@babel/helper-plugin-utils@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz#98c84fe6fe3d0d3ae7bfc3a5e166a46844feb2a0"
+ integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==
+
+"@babel/helper-simple-access@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3"
+ integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==
+ dependencies:
+ "@babel/traverse" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-split-export-declaration@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856"
+ integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==
+ dependencies:
+ "@babel/types" "^7.24.7"
+
+"@babel/helper-string-parser@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2"
+ integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==
+
+"@babel/helper-validator-identifier@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db"
+ integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==
+
+"@babel/helper-validator-option@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6"
+ integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==
+
+"@babel/helpers@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416"
+ integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==
+ dependencies:
+ "@babel/template" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/highlight@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d"
+ integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.24.7"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+ picocolors "^1.0.0"
+
+"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85"
+ integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==
+
+"@babel/plugin-transform-react-jsx-self@^7.24.5":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz#66bff0248ea0b549972e733516ffad577477bdab"
+ integrity sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.7"
+
+"@babel/plugin-transform-react-jsx-source@^7.24.1":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3"
+ integrity sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.7"
+
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.14.0", "@babel/runtime@^7.18.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.24.7.tgz#f4f0d5530e8dbdf59b3451b9b3e594b6ba082e12"
+ integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+"@babel/template@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315"
+ integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==
+ dependencies:
+ "@babel/code-frame" "^7.24.7"
+ "@babel/parser" "^7.24.7"
+ "@babel/types" "^7.24.7"
+
+"@babel/traverse@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5"
+ integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==
+ dependencies:
+ "@babel/code-frame" "^7.24.7"
+ "@babel/generator" "^7.24.7"
+ "@babel/helper-environment-visitor" "^7.24.7"
+ "@babel/helper-function-name" "^7.24.7"
+ "@babel/helper-hoist-variables" "^7.24.7"
+ "@babel/helper-split-export-declaration" "^7.24.7"
+ "@babel/parser" "^7.24.7"
+ "@babel/types" "^7.24.7"
+ debug "^4.3.1"
+ globals "^11.1.0"
+
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2"
+ integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==
+ dependencies:
+ "@babel/helper-string-parser" "^7.24.7"
+ "@babel/helper-validator-identifier" "^7.24.7"
+ to-fast-properties "^2.0.0"
+
+"@codegouvfr/react-dsfr@^1.9.20":
+ version "1.9.20"
+ resolved "https://registry.yarnpkg.com/@codegouvfr/react-dsfr/-/react-dsfr-1.9.20.tgz#6c495d55140cbebf506cae983b601c846303ae61"
+ integrity sha512-Q4W4K0ZZZtC5ogVmrNXGTkbkeordoNGHVl+w1Msz3zLwk5FZNVZt+/lAaeKZ/j+4rMbVzAEB9ggQe4FohSBnag==
+ dependencies:
+ tsafe "^1.6.3"
+ yargs-parser "^21.1.1"
+
+"@codegouvfr/react-dsfr@^1.9.22":
+ version "1.9.22"
+ resolved "https://registry.yarnpkg.com/@codegouvfr/react-dsfr/-/react-dsfr-1.9.22.tgz#fed5afb0f0b6fce19b755e384a19d31627ad9ede"
+ integrity sha512-bIT/djCWcp4992Zjnl1Hr4+wl8n/FJzUiqlK1/SGJVyfpzpsKczND3Lu4iRZ9ueKJFDOp5EgWXyT8JcakHFAgg==
+ dependencies:
+ tsafe "^1.6.3"
+ yargs-parser "^21.1.1"
+
+"@codegouvfr/rjsf-dsfr@^0.1.4":
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/@codegouvfr/rjsf-dsfr/-/rjsf-dsfr-0.1.4.tgz#2e4fe81d3e5f4fb4c5b1f272cb494decdf229c98"
+ integrity sha512-vW6ozfnOlB2V/r0Q5YsHj9Rxg+9thLr2GKecb/vqXMDwVv5ejsT4wL3ZJpKcYoVMj8RGQXRXMieSGXfK1wkgJA==
+ dependencies:
+ "@codegouvfr/react-dsfr" "^1.9.20"
+ "@rjsf/core" "^5.18.4"
+ "@rjsf/utils" "^5.18.4"
+ "@rjsf/validator-ajv8" "^5.18.4"
+ react "^18.3.1"
+
+"@emotion/babel-plugin@^11.11.0":
+ version "11.11.0"
+ resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz#c2d872b6a7767a9d176d007f5b31f7d504bb5d6c"
+ integrity sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==
+ dependencies:
+ "@babel/helper-module-imports" "^7.16.7"
+ "@babel/runtime" "^7.18.3"
+ "@emotion/hash" "^0.9.1"
+ "@emotion/memoize" "^0.8.1"
+ "@emotion/serialize" "^1.1.2"
+ babel-plugin-macros "^3.1.0"
+ convert-source-map "^1.5.0"
+ escape-string-regexp "^4.0.0"
+ find-root "^1.1.0"
+ source-map "^0.5.7"
+ stylis "4.2.0"
+
+"@emotion/cache@^11.11.0":
+ version "11.11.0"
+ resolved "https://registry.yarnpkg.com/@emotion/cache/-/cache-11.11.0.tgz#809b33ee6b1cb1a625fef7a45bc568ccd9b8f3ff"
+ integrity sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==
+ dependencies:
+ "@emotion/memoize" "^0.8.1"
+ "@emotion/sheet" "^1.2.2"
+ "@emotion/utils" "^1.2.1"
+ "@emotion/weak-memoize" "^0.3.1"
+ stylis "4.2.0"
+
+"@emotion/hash@^0.9.1":
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43"
+ integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==
+
+"@emotion/is-prop-valid@^0.8.2":
+ version "0.8.8"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz#db28b1c4368a259b60a97311d6a952d4fd01ac1a"
+ integrity sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==
+ dependencies:
+ "@emotion/memoize" "0.7.4"
+
+"@emotion/is-prop-valid@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.2.tgz#d4175076679c6a26faa92b03bb786f9e52612337"
+ integrity sha512-uNsoYd37AFmaCdXlg6EYD1KaPOaRWRByMCYzbKUX4+hhMfrxdVSelShywL4JVaAeM/eHUOSprYBQls+/neX3pw==
+ dependencies:
+ "@emotion/memoize" "^0.8.1"
+
+"@emotion/memoize@0.7.4":
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.4.tgz#19bf0f5af19149111c40d98bb0cf82119f5d9eeb"
+ integrity sha512-Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==
+
+"@emotion/memoize@^0.8.1":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
+ integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==
+
+"@emotion/react@^11.11.3":
+ version "11.11.4"
+ resolved "https://registry.yarnpkg.com/@emotion/react/-/react-11.11.4.tgz#3a829cac25c1f00e126408fab7f891f00ecc3c1d"
+ integrity sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@emotion/babel-plugin" "^11.11.0"
+ "@emotion/cache" "^11.11.0"
+ "@emotion/serialize" "^1.1.3"
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1"
+ "@emotion/utils" "^1.2.1"
+ "@emotion/weak-memoize" "^0.3.1"
+ hoist-non-react-statics "^3.3.1"
+
+"@emotion/serialize@^1.1.2", "@emotion/serialize@^1.1.3", "@emotion/serialize@^1.1.4":
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.4.tgz#fc8f6d80c492cfa08801d544a05331d1cc7cd451"
+ integrity sha512-RIN04MBT8g+FnDwgvIUi8czvr1LU1alUMI05LekWB5DGyTm8cCBMCRpq3GqaiyEDRptEXOyXnvZ58GZYu4kBxQ==
+ dependencies:
+ "@emotion/hash" "^0.9.1"
+ "@emotion/memoize" "^0.8.1"
+ "@emotion/unitless" "^0.8.1"
+ "@emotion/utils" "^1.2.1"
+ csstype "^3.0.2"
+
+"@emotion/sheet@^1.2.2":
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/@emotion/sheet/-/sheet-1.2.2.tgz#d58e788ee27267a14342303e1abb3d508b6d0fec"
+ integrity sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==
+
+"@emotion/styled@^11.11.0":
+ version "11.11.5"
+ resolved "https://registry.yarnpkg.com/@emotion/styled/-/styled-11.11.5.tgz#0c5c8febef9d86e8a926e663b2e5488705545dfb"
+ integrity sha512-/ZjjnaNKvuMPxcIiUkf/9SHoG4Q196DRl1w82hQ3WCsjo1IUR8uaGWrC6a87CrYAW0Kb/pK7hk8BnLgLRi9KoQ==
+ dependencies:
+ "@babel/runtime" "^7.18.3"
+ "@emotion/babel-plugin" "^11.11.0"
+ "@emotion/is-prop-valid" "^1.2.2"
+ "@emotion/serialize" "^1.1.4"
+ "@emotion/use-insertion-effect-with-fallbacks" "^1.0.1"
+ "@emotion/utils" "^1.2.1"
+
+"@emotion/unitless@^0.8.1":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.8.1.tgz#182b5a4704ef8ad91bde93f7a860a88fd92c79a3"
+ integrity sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==
+
+"@emotion/use-insertion-effect-with-fallbacks@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963"
+ integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==
+
+"@emotion/utils@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-1.2.1.tgz#bbab58465738d31ae4cb3dbb6fc00a5991f755e4"
+ integrity sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==
+
+"@emotion/weak-memoize@^0.3.1":
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6"
+ integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==
+
+"@esbuild/android-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
+ integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
+
+"@esbuild/android-arm@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
+ integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
+
+"@esbuild/android-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
+ integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
+
+"@esbuild/darwin-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
+ integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
+
+"@esbuild/darwin-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
+ integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
+
+"@esbuild/freebsd-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
+ integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
+
+"@esbuild/freebsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
+ integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
+
+"@esbuild/linux-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
+ integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
+
+"@esbuild/linux-arm@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
+ integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
+
+"@esbuild/linux-ia32@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
+ integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
+
+"@esbuild/linux-loong64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
+ integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
+
+"@esbuild/linux-mips64el@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
+ integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
+
+"@esbuild/linux-ppc64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
+ integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
+
+"@esbuild/linux-riscv64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
+ integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
+
+"@esbuild/linux-s390x@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
+ integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
+
+"@esbuild/linux-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
+ integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
+
+"@esbuild/netbsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
+ integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
+
+"@esbuild/openbsd-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
+ integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
+
+"@esbuild/sunos-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
+ integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
+
+"@esbuild/win32-arm64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
+ integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
+
+"@esbuild/win32-ia32@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
+ integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
+
+"@esbuild/win32-x64@0.18.20":
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
+ integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
+
+"@isaacs/cliui@^8.0.2":
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
+ integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ dependencies:
+ string-width "^5.1.2"
+ string-width-cjs "npm:string-width@^4.2.0"
+ strip-ansi "^7.0.1"
+ strip-ansi-cjs "npm:strip-ansi@^6.0.1"
+ wrap-ansi "^8.1.0"
+ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+
+"@jridgewell/gen-mapping@^0.3.5":
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
+ integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
+ dependencies:
+ "@jridgewell/set-array" "^1.2.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.24"
+
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
+
+"@jridgewell/set-array@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
+ integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
+
+"@jridgewell/source-map@^0.3.3":
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a"
+ integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.5"
+ "@jridgewell/trace-mapping" "^0.3.25"
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
+ version "1.4.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
+
+"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
+ version "0.3.25"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
+ integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@monaco-editor/loader@^1.4.0":
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/@monaco-editor/loader/-/loader-1.4.0.tgz#f08227057331ec890fa1e903912a5b711a2ad558"
+ integrity sha512-00ioBig0x642hytVspPl7DbQyaSWRaolYie/UFNjoTdvoKPzo6xrXLhTk9ixgIKcLH5b5vDOjVNiGyY+uDCUlg==
+ dependencies:
+ state-local "^1.0.6"
+
+"@monaco-editor/react@^4.6.0":
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/@monaco-editor/react/-/react-4.6.0.tgz#bcc68671e358a21c3814566b865a54b191e24119"
+ integrity sha512-RFkU9/i7cN2bsq/iTkurMWOEErmYcY6JiQI3Jn+WeR/FGISH8JbHERjpS9oRuSOPvDMJI0Z8nJeKkbOs9sBYQw==
+ dependencies:
+ "@monaco-editor/loader" "^1.4.0"
+
+"@pkgjs/parseargs@^0.11.0":
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
+ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+
+"@popperjs/core@^2.11.6":
+ version "2.11.8"
+ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
+ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+
+"@react-icons/all-files@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@react-icons/all-files/-/all-files-4.1.0.tgz#477284873a0821928224b6fc84c62d2534d6650b"
+ integrity sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==
+
+"@restart/context@^2.1.4":
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/@restart/context/-/context-2.1.4.tgz#a99d87c299a34c28bd85bb489cb07bfd23149c02"
+ integrity sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q==
+
+"@restart/hooks@^0.4.7":
+ version "0.4.16"
+ resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.16.tgz#95ae8ac1cc7e2bd4fed5e39800ff85604c6d59fb"
+ integrity sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==
+ dependencies:
+ dequal "^2.0.3"
+
+"@rjsf/bootstrap-4@^5.18.5":
+ version "5.18.5"
+ resolved "https://registry.yarnpkg.com/@rjsf/bootstrap-4/-/bootstrap-4-5.18.5.tgz#9809eb1ca37bdd07d40313d85ea05c0f4ee7267a"
+ integrity sha512-Yloz8LwH4VeU0DGziau/0IXk3IXWPT+Yu4UnZk70Mi9HnlXLlwP5RPEkrAgeynPqJEVsxr9++P6YNcoZCp8NyA==
+ dependencies:
+ "@react-icons/all-files" "^4.1.0"
+
+"@rjsf/core@^5.18.4":
+ version "5.18.5"
+ resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-5.18.5.tgz#580209de5cf66fac975b0a649df9b8e921aac96a"
+ integrity sha512-TTG6zSybzfSp+ko4U/WIeyVX5dRLbl7C0ZU2lpK/f6ruuLbBji8A523iLYINOzyDQL5uBtMdmRdO6oMdCz79tw==
+ dependencies:
+ lodash "^4.17.21"
+ lodash-es "^4.17.21"
+ markdown-to-jsx "^7.4.1"
+ nanoid "^3.3.7"
+ prop-types "^15.8.1"
+
+"@rjsf/utils@^5.18.4":
+ version "5.18.5"
+ resolved "https://registry.yarnpkg.com/@rjsf/utils/-/utils-5.18.5.tgz#638724740b29784804dd244b0574213aa181469b"
+ integrity sha512-b39ZSPv2lpH+VXUKrVsPnPyOKcTa9P08h50J0A1+7xHj6dm4KG1KY/mY4QCaNavZVXsQoieHOe8kmdFDlXirzA==
+ dependencies:
+ json-schema-merge-allof "^0.8.1"
+ jsonpointer "^5.0.1"
+ lodash "^4.17.21"
+ lodash-es "^4.17.21"
+ react-is "^18.2.0"
+
+"@rjsf/validator-ajv8@^5.18.4":
+ version "5.18.5"
+ resolved "https://registry.yarnpkg.com/@rjsf/validator-ajv8/-/validator-ajv8-5.18.5.tgz#0f02f39462b3cdc15641df9dd63263600556b374"
+ integrity sha512-R1kPl86NzhbVYyRQ7Sa3GLDEmZdum7Qcvi9wKBy0GmnONM9dX6wZGikzr5/7x8mVYCIjukAd3eL129uchIv95w==
+ dependencies:
+ ajv "^8.12.0"
+ ajv-formats "^2.1.1"
+ lodash "^4.17.21"
+ lodash-es "^4.17.21"
+
+"@types/babel__core@^7.20.5":
+ version "7.20.5"
+ resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
+ integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
+ dependencies:
+ "@babel/parser" "^7.20.7"
+ "@babel/types" "^7.20.7"
+ "@types/babel__generator" "*"
+ "@types/babel__template" "*"
+ "@types/babel__traverse" "*"
+
+"@types/babel__generator@*":
+ version "7.6.8"
+ resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.8.tgz#f836c61f48b1346e7d2b0d93c6dacc5b9535d3ab"
+ integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==
+ dependencies:
+ "@babel/types" "^7.0.0"
+
+"@types/babel__template@*":
+ version "7.4.4"
+ resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.4.tgz#5672513701c1b2199bc6dad636a9d7491586766f"
+ integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==
+ dependencies:
+ "@babel/parser" "^7.1.0"
+ "@babel/types" "^7.0.0"
+
+"@types/babel__traverse@*":
+ version "7.20.6"
+ resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.6.tgz#8dc9f0ae0f202c08d8d4dab648912c8d6038e3f7"
+ integrity sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==
+ dependencies:
+ "@babel/types" "^7.20.7"
+
+"@types/html-minifier-terser@^6.0.0":
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35"
+ integrity sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==
+
+"@types/invariant@^2.2.33":
+ version "2.2.37"
+ resolved "https://registry.yarnpkg.com/@types/invariant/-/invariant-2.2.37.tgz#1709741e534364d653c87dff22fc76fa94aa7bc0"
+ integrity sha512-IwpIMieE55oGWiXkQPSBY1nw1nFs6bsKXTFskNY8sdS17K24vyEBRQZEwlRS7ZmXCWnJcQtbxWzly+cODWGs2A==
+
+"@types/json-schema@^7.0.9":
+ version "7.0.15"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
+ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+
+"@types/lodash@^4.14.202":
+ version "4.17.6"
+ resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.6.tgz#193ced6a40c8006cfc1ca3f4553444fb38f0e543"
+ integrity sha512-OpXEVoCKSS3lQqjx9GGGOapBeuW5eUboYHRlHP9urXPX25IKZ6AnP5ZRxtVf63iieUbsHxLn8NQ5Nlftc6yzAA==
+
+"@types/node@^20.11.20":
+ version "20.14.9"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420"
+ integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==
+ dependencies:
+ undici-types "~5.26.4"
+
+"@types/parse-json@^4.0.0":
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239"
+ integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==
+
+"@types/prop-types@*", "@types/prop-types@^15.7.3":
+ version "15.7.12"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
+ integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
+
+"@types/react-frame-component@^4.1.6":
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/@types/react-frame-component/-/react-frame-component-4.1.6.tgz#a683645c06bcd8fc0b05973ce0c1b24ed3f71191"
+ integrity sha512-Q99Hv1ky8sdoTIZw5YLGDbbWOcCdwRemxQ7BUU/ypLw2LZ6maov3EuztH5cyBUB4Lnd4MXF/6zwBYQhD/C+Vrg==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-transition-group@^4.4.1":
+ version "4.4.10"
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.10.tgz#6ee71127bdab1f18f11ad8fb3322c6da27c327ac"
+ integrity sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@>=16.14.8", "@types/react@>=16.9.11":
+ version "18.3.3"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f"
+ integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==
+ dependencies:
+ "@types/prop-types" "*"
+ csstype "^3.0.2"
+
+"@types/warning@^3.0.0":
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/@types/warning/-/warning-3.0.3.tgz#d1884c8cc4a426d1ac117ca2611bf333834c6798"
+ integrity sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==
+
+"@vitejs/plugin-react@^4.2.1":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz#d0be6594051ded8957df555ff07a991fb618b48e"
+ integrity sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==
+ dependencies:
+ "@babel/core" "^7.24.5"
+ "@babel/plugin-transform-react-jsx-self" "^7.24.5"
+ "@babel/plugin-transform-react-jsx-source" "^7.24.1"
+ "@types/babel__core" "^7.20.5"
+ react-refresh "^0.14.2"
+
+acorn@^8.8.2:
+ version "8.12.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c"
+ integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==
+
+ajv-formats@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+ integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
+ dependencies:
+ ajv "^8.0.0"
+
+ajv-i18n@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/ajv-i18n/-/ajv-i18n-4.2.0.tgz#d48750ba60e283b3dee31e3c22c8c9f7410e326f"
+ integrity sha512-v/ei2UkCEeuKNXh8RToiFsUclmU+G57LO1Oo22OagNMENIw+Yb8eMwvHu7Vn9fmkjJyv6XclhJ8TbuigSglPkg==
+
+ajv-keywords@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-5.1.0.tgz#69d4d385a4733cdbeab44964a1170a88f87f0e16"
+ integrity sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+
+ajv@^8.0.0, ajv@^8.12.0, ajv@^8.9.0:
+ version "8.16.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4"
+ integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.4.1"
+
+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-regex@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
+ dependencies:
+ color-convert "^1.9.0"
+
+ansi-styles@^4.0.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"
+
+ansi-styles@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+ integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==
+
+async@^3.2.4:
+ version "3.2.5"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
+ integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
+
+atob@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
+ integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+
+babel-plugin-macros@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz#9ef6dc74deb934b4db344dc973ee851d148c50c1"
+ integrity sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+ cosmiconfig "^7.0.0"
+ resolve "^1.19.0"
+
+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==
+
+boolbase@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
+ integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+brace-expansion@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
+ dependencies:
+ balanced-match "^1.0.0"
+
+browserslist@^4.22.2:
+ version "4.23.1"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96"
+ integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==
+ dependencies:
+ caniuse-lite "^1.0.30001629"
+ electron-to-chromium "^1.4.796"
+ node-releases "^2.0.14"
+ update-browserslist-db "^1.0.16"
+
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
+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==
+
+camel-case@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
+ integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+ dependencies:
+ pascal-case "^3.1.2"
+ tslib "^2.0.3"
+
+caniuse-lite@^1.0.30001629:
+ version "1.0.30001638"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001638.tgz#598e1f0c2ac36f37ebc3f5b8887a32ca558e5d56"
+ integrity sha512-5SuJUJ7cZnhPpeLHaH0c/HPAnAHZvS6ElWyHK9GSIbVOQABLzowiI2pjmpvZ1WEbkyz46iFd4UXlOHR5SqgfMQ==
+
+chalk@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
+ integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+classnames@^2.3.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b"
+ integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==
+
+clean-css@^5.2.2:
+ version "5.3.3"
+ resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd"
+ integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==
+ dependencies:
+ source-map "~0.6.0"
+
+color-convert@^1.9.0:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
+ integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
+ dependencies:
+ color-name "1.1.3"
+
+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.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+ integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
+
+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==
+
+commander@^2.18.0, commander@^2.20.0:
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
+commander@^8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+ integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+ integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==
+
+compute-gcd@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f"
+ integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==
+ dependencies:
+ validate.io-array "^1.0.3"
+ validate.io-function "^1.0.2"
+ validate.io-integer-array "^1.0.0"
+
+compute-lcm@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23"
+ integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==
+ dependencies:
+ compute-gcd "^1.2.1"
+ validate.io-array "^1.0.3"
+ validate.io-function "^1.0.2"
+ validate.io-integer-array "^1.0.0"
+
+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==
+
+concat-stream@^1.4.7:
+ version "1.6.2"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
+ integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
+ dependencies:
+ buffer-from "^1.0.0"
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+convert-source-map@^1.5.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
+ integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
+
+convert-source-map@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a"
+ integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
+
+core-js@^3.35.1:
+ version "3.37.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9"
+ integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==
+
+core-util-is@~1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+ integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+
+cosmiconfig@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6"
+ integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==
+ dependencies:
+ "@types/parse-json" "^4.0.0"
+ import-fresh "^3.2.1"
+ parse-json "^5.0.0"
+ path-type "^4.0.0"
+ yaml "^1.10.0"
+
+cross-env@^7.0.3:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf"
+ integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==
+ dependencies:
+ cross-spawn "^7.0.1"
+
+cross-spawn@^7.0.0, cross-spawn@^7.0.1:
+ version "7.0.3"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+ dependencies:
+ path-key "^3.1.0"
+ shebang-command "^2.0.0"
+ which "^2.0.1"
+
+css-select@^4.1.3:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
+ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.0.1"
+ domhandler "^4.3.1"
+ domutils "^2.8.0"
+ nth-check "^2.0.1"
+
+css-what@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
+csstype@^3.0.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+
+dayjs@^1.11.10:
+ version "1.11.11"
+ resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e"
+ integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg==
+
+debounce@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5"
+ integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==
+
+debug@^4.1.0, debug@^4.3.1:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e"
+ integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==
+ dependencies:
+ ms "2.1.2"
+
+deep-freeze-es6@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/deep-freeze-es6/-/deep-freeze-es6-1.4.1.tgz#20511df80b70e1a1b92ac3102d8ccd11363df16a"
+ integrity sha512-WnyM4ZCzpHtziy7LxnpQPGS+mfZDQvFpmH3LGqmyUfzwBLkvNTwbn+mTwSNTQoLQTHiN85qZqprRZdYwU3xN/Q==
+
+dequal@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
+ integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
+
+dom-converter@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
+ integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
+ dependencies:
+ utila "~0.4"
+
+dom-helpers@^5.0.1, dom-helpers@^5.2.0, dom-helpers@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
+ integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
+ dependencies:
+ "@babel/runtime" "^7.8.7"
+ csstype "^3.0.2"
+
+dom-serializer@^1.0.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
+ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.2.0"
+ entities "^2.0.0"
+
+dom-walk@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84"
+ integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==
+
+domelementtype@^2.0.1, domelementtype@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
+domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+ dependencies:
+ domelementtype "^2.2.0"
+
+domutils@^2.5.2, domutils@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
+ dependencies:
+ dom-serializer "^1.0.1"
+ domelementtype "^2.2.0"
+ domhandler "^4.2.0"
+
+dot-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+ integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
+electron-to-chromium@^1.4.796:
+ version "1.4.814"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.814.tgz#176535a0b899c9c473464502ab77576aa8bb1cbe"
+ integrity sha512-GVulpHjFu1Y9ZvikvbArHmAhZXtm3wHlpjTMcXNGKl4IQ4jMQjlnz8yMQYYqdLHKi/jEL2+CBC2akWVCoIGUdw==
+
+email-addresses@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/email-addresses/-/email-addresses-5.0.0.tgz#7ae9e7f58eef7d5e3e2c2c2d3ea49b78dc854fa6"
+ integrity sha512-4OIPYlA6JXqtVn8zpHpGiI7vE6EQOAg16aGnDMIAlZVinnoZ8208tW1hAbjWydgN/4PLTT9q+O1K6AH/vALJGw==
+
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.2.2:
+ version "9.2.2"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+ integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
+
+entities@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55"
+ integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
+
+error-ex@^1.3.1:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
+ dependencies:
+ is-arrayish "^0.2.1"
+
+esbuild@^0.18.10, esbuild@^0.18.20:
+ version "0.18.20"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
+ integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
+ optionalDependencies:
+ "@esbuild/android-arm" "0.18.20"
+ "@esbuild/android-arm64" "0.18.20"
+ "@esbuild/android-x64" "0.18.20"
+ "@esbuild/darwin-arm64" "0.18.20"
+ "@esbuild/darwin-x64" "0.18.20"
+ "@esbuild/freebsd-arm64" "0.18.20"
+ "@esbuild/freebsd-x64" "0.18.20"
+ "@esbuild/linux-arm" "0.18.20"
+ "@esbuild/linux-arm64" "0.18.20"
+ "@esbuild/linux-ia32" "0.18.20"
+ "@esbuild/linux-loong64" "0.18.20"
+ "@esbuild/linux-mips64el" "0.18.20"
+ "@esbuild/linux-ppc64" "0.18.20"
+ "@esbuild/linux-riscv64" "0.18.20"
+ "@esbuild/linux-s390x" "0.18.20"
+ "@esbuild/linux-x64" "0.18.20"
+ "@esbuild/netbsd-x64" "0.18.20"
+ "@esbuild/openbsd-x64" "0.18.20"
+ "@esbuild/sunos-x64" "0.18.20"
+ "@esbuild/win32-arm64" "0.18.20"
+ "@esbuild/win32-ia32" "0.18.20"
+ "@esbuild/win32-x64" "0.18.20"
+
+escalade@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
+ integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
+
+escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+ integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
+
+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==
+
+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==
+
+filename-reserved-regex@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz#abf73dfab735d045440abfea2d91f389ebbfa229"
+ integrity sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==
+
+filenamify@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/filenamify/-/filenamify-4.3.0.tgz#62391cb58f02b09971c9d4f9d63b3cf9aba03106"
+ integrity sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==
+ dependencies:
+ filename-reserved-regex "^2.0.0"
+ strip-outer "^1.0.1"
+ trim-repeated "^1.0.0"
+
+find-cache-dir@^3.3.1:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b"
+ integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==
+ dependencies:
+ commondir "^1.0.1"
+ make-dir "^3.0.2"
+ pkg-dir "^4.1.0"
+
+find-root@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+ integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==
+
+find-up@^4.0.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+foreground-child@^3.1.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7"
+ integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^4.0.1"
+
+framer-motion@^5.6.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-5.6.0.tgz#8203b5bc4e172265d43dfe67c3c41346c67a3940"
+ integrity sha512-Y4FtwUU+LUWLKSzoT6Sq538qluvhpe6izdQK8/xZeVjQZ/ORKGfZzyhzcUxNfscqnfEa3dUOA47s+dwrSipdGA==
+ dependencies:
+ framesync "6.0.1"
+ hey-listen "^1.0.8"
+ popmotion "11.0.3"
+ react-merge-refs "^1.1.0"
+ react-use-measure "^2.1.1"
+ style-value-types "5.0.0"
+ tslib "^2.1.0"
+ optionalDependencies:
+ "@emotion/is-prop-valid" "^0.8.2"
+
+framesync@6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/framesync/-/framesync-6.0.1.tgz#5e32fc01f1c42b39c654c35b16440e07a25d6f20"
+ integrity sha512-fUY88kXvGiIItgNC7wcTOl0SNRCVXMKSWW2Yzfmn7EKNc+MpCzcz9DhdHcdjbrtN3c6R4H5dTY2jiCpPdysEjA==
+ dependencies:
+ tslib "^2.1.0"
+
+fs-extra@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
+ integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^4.0.0"
+ universalify "^0.1.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:
+ 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==
+
+gensync@^1.0.0-beta.2:
+ version "1.0.0-beta.2"
+ resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0"
+ integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==
+
+gh-pages@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-5.0.0.tgz#e0893272a0e33f0453e53a3c017c33b91ddd6394"
+ integrity sha512-Nqp1SjkPIB94Xw/3yYNTUL+G2dxlhjvv1zeN/4kMC1jfViTEqhtVz/Ba1zSXHuvXCN9ADNS1dN4r5/J/nZWEQQ==
+ dependencies:
+ async "^3.2.4"
+ commander "^2.18.0"
+ email-addresses "^5.0.0"
+ filenamify "^4.3.0"
+ find-cache-dir "^3.3.1"
+ fs-extra "^8.1.0"
+ globby "^6.1.0"
+
+glob@^10.3.7:
+ version "10.4.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.2.tgz#bed6b95dade5c1f80b4434daced233aee76160e5"
+ integrity sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==
+ dependencies:
+ foreground-child "^3.1.0"
+ jackspeak "^3.1.2"
+ minimatch "^9.0.4"
+ minipass "^7.1.2"
+ package-json-from-dist "^1.0.0"
+ path-scurry "^1.11.1"
+
+glob@^7.0.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"
+
+global@^4.3.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
+ integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
+ dependencies:
+ min-document "^2.19.0"
+ process "^0.11.10"
+
+globals@^11.1.0:
+ version "11.12.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
+ integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
+
+globby@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
+ integrity sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==
+ dependencies:
+ array-union "^1.0.1"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+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==
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+ integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
+
+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==
+
+hey-listen@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68"
+ integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==
+
+hoist-non-react-statics@^3.3.1:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
+ integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
+ dependencies:
+ react-is "^16.7.0"
+
+html-minifier-terser@^6.0.2:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab"
+ integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==
+ dependencies:
+ camel-case "^4.1.2"
+ clean-css "^5.2.2"
+ commander "^8.3.0"
+ he "^1.2.0"
+ param-case "^3.0.4"
+ relateurl "^0.2.7"
+ terser "^5.10.0"
+
+html-webpack-plugin@^5.6.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz#50a8fa6709245608cb00e811eacecb8e0d7b7ea0"
+ integrity sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==
+ dependencies:
+ "@types/html-minifier-terser" "^6.0.0"
+ html-minifier-terser "^6.0.2"
+ lodash "^4.17.21"
+ pretty-error "^4.0.0"
+ tapable "^2.0.0"
+
+html@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz#a544fa9ea5492bfb3a2cca8210a10be7b5af1f61"
+ integrity sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==
+ dependencies:
+ concat-stream "^1.4.7"
+
+htmlparser2@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
+ integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
+ dependencies:
+ domelementtype "^2.0.1"
+ domhandler "^4.0.0"
+ domutils "^2.5.2"
+ entities "^2.0.0"
+
+iconv-lite@^0.6.3:
+ version "0.6.3"
+ resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
+ integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
+ dependencies:
+ safer-buffer ">= 2.1.2 < 3.0.0"
+
+import-fresh@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
+ integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
+ dependencies:
+ parent-module "^1.0.0"
+ resolve-from "^4.0.0"
+
+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, inherits@^2.0.3, inherits@~2.0.3:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
+
+invariant@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+ dependencies:
+ loose-envify "^1.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+ integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==
+
+is-core-module@^2.13.0:
+ version "2.14.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.14.0.tgz#43b8ef9f46a6a08888db67b1ffd4ec9e3dfd59d1"
+ integrity sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==
+ dependencies:
+ hasown "^2.0.2"
+
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-in-browser@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835"
+ integrity sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==
+
+isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+ integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
+
+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@^3.1.2:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a"
+ integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==
+ dependencies:
+ "@isaacs/cliui" "^8.0.2"
+ optionalDependencies:
+ "@pkgjs/parseargs" "^0.11.0"
+
+"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+json-parse-even-better-errors@^2.3.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d"
+ integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+
+json-schema-compare@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56"
+ integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==
+ dependencies:
+ lodash "^4.17.4"
+
+json-schema-merge-allof@^0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz#ed2828cdd958616ff74f932830a26291789eaaf2"
+ integrity sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==
+ dependencies:
+ compute-lcm "^1.1.2"
+ json-schema-compare "^0.2.2"
+ lodash "^4.17.20"
+
+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==
+
+json5@^2.2.3:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+
+jsonfile@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
+ integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+jsonpointer@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559"
+ integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==
+
+jss@^10.10.0:
+ version "10.10.0"
+ resolved "https://registry.yarnpkg.com/jss/-/jss-10.10.0.tgz#a75cc85b0108c7ac8c7b7d296c520a3e4fbc6ccc"
+ integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==
+ dependencies:
+ "@babel/runtime" "^7.3.1"
+ csstype "^3.0.2"
+ is-in-browser "^1.1.3"
+ tiny-warning "^1.0.2"
+
+lines-and-columns@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
+
+loader-utils@^3.2.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5"
+ integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
+
+lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.6.1:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
+
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
+ dependencies:
+ js-tokens "^3.0.0 || ^4.0.0"
+
+lower-case@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+ integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+ dependencies:
+ tslib "^2.0.3"
+
+lru-cache@^10.2.0:
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.3.0.tgz#4a4aaf10c84658ab70f79a85a9a3f1e1fb11196b"
+ integrity sha512-CQl19J/g+Hbjbv4Y3mFNNXFEL/5t/KCg8POCuUqd4rMKjGG+j1ybER83hxV58zL+dFI1PTkt3GNFSHRt+d8qEQ==
+
+lru-cache@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
+ integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
+ dependencies:
+ yallist "^3.0.2"
+
+make-dir@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
+markdown-to-jsx@^7.4.1:
+ version "7.4.7"
+ resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz#740ee7ec933865ef5cc683a0992797685a75e2ee"
+ integrity sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==
+
+min-document@^2.19.0:
+ version "2.19.0"
+ resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
+ integrity sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==
+ dependencies:
+ dom-walk "^0.1.0"
+
+mini-css-extract-plugin@^2.8.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz#c73a1327ccf466f69026ac22a8e8fd707b78a235"
+ integrity sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==
+ dependencies:
+ schema-utils "^4.0.0"
+ tapable "^2.2.1"
+
+minimatch@^3.1.1:
+ 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.4:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+ integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+
+monaco-editor@^0.38.0:
+ version "0.38.0"
+ resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.38.0.tgz#7b3cd16f89b1b8867fcd3c96e67fccee791ff05c"
+ integrity sha512-11Fkh6yzEmwx7O0YoLxeae0qEGFwmyPRlVxpg7oF9czOOCB/iCjdJrG5I67da5WiXK3YJCxoz9TJFE8Tfq/v9A==
+
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
+nanoid@^3.3.7:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
+
+no-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+ integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+ dependencies:
+ lower-case "^2.0.2"
+ tslib "^2.0.3"
+
+node-releases@^2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b"
+ integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
+
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
+ dependencies:
+ boolbase "^1.0.0"
+
+object-assign@^4.0.1, object-assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+
+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"
+
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+package-json-from-dist@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
+ integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
+
+param-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
+ integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
+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"
+
+parse-json@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
+ integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+ dependencies:
+ "@babel/code-frame" "^7.0.0"
+ error-ex "^1.3.1"
+ json-parse-even-better-errors "^2.3.0"
+ lines-and-columns "^1.1.6"
+
+pascal-case@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+ integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+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@^1.11.1:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+ integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
+ dependencies:
+ lru-cache "^10.2.0"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+path-type@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+
+picocolors@^1.0.0, picocolors@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
+ integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+ integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+ integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==
+
+pkg-dir@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3"
+ integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==
+ dependencies:
+ find-up "^4.0.0"
+
+popmotion@11.0.3:
+ version "11.0.3"
+ resolved "https://registry.yarnpkg.com/popmotion/-/popmotion-11.0.3.tgz#565c5f6590bbcddab7a33a074bb2ba97e24b0cc9"
+ integrity sha512-Y55FLdj3UxkR7Vl3s7Qr4e9m0onSnP8W7d/xQLsoJM40vs6UKHFdygs6SWryasTZYqugMjm3BepCF4CWXDiHgA==
+ dependencies:
+ framesync "6.0.1"
+ hey-listen "^1.0.8"
+ style-value-types "5.0.0"
+ tslib "^2.1.0"
+
+postcss@^8.4.27:
+ version "8.4.38"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
+ integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.0.0"
+ source-map-js "^1.2.0"
+
+prettier@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a"
+ integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==
+
+pretty-error@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-4.0.0.tgz#90a703f46dd7234adb46d0f84823e9d1cb8f10d6"
+ integrity sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==
+ dependencies:
+ lodash "^4.17.20"
+ renderkid "^3.0.0"
+
+process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
+process@^0.11.10:
+ version "0.11.10"
+ resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
+ integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==
+
+prop-types-extra@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/prop-types-extra/-/prop-types-extra-1.1.1.tgz#58c3b74cbfbb95d304625975aa2f0848329a010b"
+ integrity sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==
+ dependencies:
+ react-is "^16.3.2"
+ warning "^4.0.0"
+
+prop-types@^15.5.8, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1:
+ version "15.8.1"
+ resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
+ dependencies:
+ loose-envify "^1.4.0"
+ object-assign "^4.1.1"
+ react-is "^16.13.1"
+
+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==
+
+react-bootstrap@^1.6.8:
+ version "1.6.8"
+ resolved "https://registry.yarnpkg.com/react-bootstrap/-/react-bootstrap-1.6.8.tgz#e9380d81cdb92c433f61b37a9120b8edd49912a1"
+ integrity sha512-yD6uN78XlFOkETQp6GRuVe0s5509x3XYx8PfPbirwFTYCj5/RfmSs9YZGCwkUrhZNFzj7tZPdpb+3k50mK1E4g==
+ dependencies:
+ "@babel/runtime" "^7.14.0"
+ "@restart/context" "^2.1.4"
+ "@restart/hooks" "^0.4.7"
+ "@types/invariant" "^2.2.33"
+ "@types/prop-types" "^15.7.3"
+ "@types/react" ">=16.14.8"
+ "@types/react-transition-group" "^4.4.1"
+ "@types/warning" "^3.0.0"
+ classnames "^2.3.1"
+ dom-helpers "^5.2.1"
+ invariant "^2.2.4"
+ prop-types "^15.7.2"
+ prop-types-extra "^1.1.0"
+ react-overlays "^5.1.2"
+ react-transition-group "^4.4.1"
+ uncontrollable "^7.2.1"
+ warning "^4.0.3"
+
+react-deep-force-update@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/react-deep-force-update/-/react-deep-force-update-1.1.2.tgz#3d2ae45c2c9040cbb1772be52f8ea1ade6ca2ee1"
+ integrity sha512-WUSQJ4P/wWcusaH+zZmbECOk7H5N2pOIl0vzheeornkIMhu+qrNdGFm0bDZLCb0hSF0jf/kH1SgkNGfBdTc4wA==
+
+react-dom@^18.3.1:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.3.1.tgz#c2265d79511b57d479b3dd3fdfa51536494c5cb4"
+ integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==
+ dependencies:
+ loose-envify "^1.1.0"
+ scheduler "^0.23.2"
+
+react-frame-component@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/react-frame-component/-/react-frame-component-4.1.3.tgz#64c09dd29574720879c5f43ee36c17d8ae74d4ec"
+ integrity sha512-4PurhctiqnmC1F5prPZ+LdsalH7pZ3SFA5xoc0HBe8mSHctdLLt4Cr2WXfXOoajHBYq/yiipp9zOgx+vy8GiEA==
+
+react-is@^16.13.1, react-is@^16.3.2, react-is@^16.7.0:
+ version "16.13.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
+
+react-is@^18.2.0:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
+ integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
+
+react-lifecycles-compat@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
+ integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
+
+react-merge-refs@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/react-merge-refs/-/react-merge-refs-1.1.0.tgz#73d88b892c6c68cbb7a66e0800faa374f4c38b06"
+ integrity sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==
+
+react-overlays@^5.1.2:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/react-overlays/-/react-overlays-5.2.1.tgz#49dc007321adb6784e1f212403f0fb37a74ab86b"
+ integrity sha512-GLLSOLWr21CqtJn8geSwQfoJufdt3mfdsnIiQswouuQ2MMPns+ihZklxvsTDKD3cR2tF8ELbi5xUsvqVhR6WvA==
+ dependencies:
+ "@babel/runtime" "^7.13.8"
+ "@popperjs/core" "^2.11.6"
+ "@restart/hooks" "^0.4.7"
+ "@types/warning" "^3.0.0"
+ dom-helpers "^5.2.0"
+ prop-types "^15.7.2"
+ uncontrollable "^7.2.1"
+ warning "^4.0.3"
+
+react-portal@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/react-portal/-/react-portal-4.2.2.tgz#bff1e024147d6041ba8c530ffc99d4c8248f49fa"
+ integrity sha512-vS18idTmevQxyQpnde0Td6ZcUlv+pD8GTyR42n3CHUQq9OHi1C4jDE4ZWEbEsrbrLRhSECYiao58cvocwMtP7Q==
+ dependencies:
+ prop-types "^15.5.8"
+
+react-proxy@^1.1.7:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/react-proxy/-/react-proxy-1.1.8.tgz#9dbfd9d927528c3aa9f444e4558c37830ab8c26a"
+ integrity sha512-46GkBpZD97R/vV+iw+u6aFACzIHOst9gCl41d5K5vepPBz2i2gqHmXQJWKXsrUsSOdylKahN3sd9taswFN8Wzw==
+ dependencies:
+ lodash "^4.6.1"
+ react-deep-force-update "^1.0.0"
+
+react-refresh@^0.14.2:
+ version "0.14.2"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9"
+ integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
+
+react-transform-catch-errors@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/react-transform-catch-errors/-/react-transform-catch-errors-1.0.2.tgz#1b4d4a76e97271896fc16fe3086c793ec88a9eeb"
+ integrity sha512-FCeTXLTpRM8wMrwAlYVoEI+HXUFYEJLKdmf9zd5YtH1yc2Dq81JL1YMr0eHeUe699CCTezG4CfEB5D9RpmovEw==
+
+react-transform-hmr@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/react-transform-hmr/-/react-transform-hmr-1.0.4.tgz#e1a40bd0aaefc72e8dfd7a7cda09af85066397bb"
+ integrity sha512-8bK1DWUZynE6swD2jNPbzO5mvhB8fs9Ub5GksoVqYkc9i06FdSLC36qQYjaKOW79KBdsROq2cK0tRKITiEzmyg==
+ dependencies:
+ global "^4.3.0"
+ react-proxy "^1.1.7"
+
+react-transition-group@^4.4.1:
+ version "4.4.5"
+ resolved "https://registry.yarnpkg.com/react-transition-group/-/react-transition-group-4.4.5.tgz#e53d4e3f3344da8521489fbef8f2581d42becdd1"
+ integrity sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==
+ dependencies:
+ "@babel/runtime" "^7.5.5"
+ dom-helpers "^5.0.1"
+ loose-envify "^1.4.0"
+ prop-types "^15.6.2"
+
+react-use-measure@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/react-use-measure/-/react-use-measure-2.1.1.tgz#5824537f4ee01c9469c45d5f7a8446177c6cc4ba"
+ integrity sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==
+ dependencies:
+ debounce "^1.2.1"
+
+react@^18.3.1:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
+ integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+readable-stream@^2.2.2:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b"
+ integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
+regenerator-runtime@^0.14.0:
+ version "0.14.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f"
+ integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==
+
+relateurl@^0.2.7:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
+ integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==
+
+renderkid@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a"
+ integrity sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==
+ dependencies:
+ css-select "^4.1.3"
+ dom-converter "^0.2.0"
+ htmlparser2 "^6.1.0"
+ lodash "^4.17.21"
+ strip-ansi "^6.0.1"
+
+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.19.0:
+ version "1.22.8"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
+ integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+rimraf@^5.0.5:
+ version "5.0.7"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-5.0.7.tgz#27bddf202e7d89cb2e0381656380d1734a854a74"
+ integrity sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==
+ dependencies:
+ glob "^10.3.7"
+
+rollup@^3.27.1:
+ version "3.29.4"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
+ integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3.0.0":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
+
+scheduler@^0.23.2:
+ version "0.23.2"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.2.tgz#414ba64a3b282892e944cf2108ecc078d115cdc3"
+ integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+schema-utils@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-4.2.0.tgz#70d7c93e153a273a805801882ebd3bff20d89c8b"
+ integrity sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ ajv "^8.9.0"
+ ajv-formats "^2.1.1"
+ ajv-keywords "^5.1.0"
+
+semver@^6.0.0, semver@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
+ integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
+
+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.0.2, source-map-js@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
+ integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+
+source-map-loader@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.2.tgz#1b378721b65adb21e874928a9fb22e8a340d06a5"
+ integrity sha512-oYwAqCuL0OZhBoSgmdrLa7mv9MjommVMiQIWgcztf+eS4+8BfcUee6nenFnDhKOhzAVnk5gpZdfnz1iiBv+5sg==
+ dependencies:
+ iconv-lite "^0.6.3"
+ source-map-js "^1.0.2"
+
+source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@^0.5.7:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+ integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
+
+source-map@^0.6.0, source-map@~0.6.0:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+ integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+
+state-local@^1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/state-local/-/state-local-1.0.7.tgz#da50211d07f05748d53009bee46307a37db386d5"
+ integrity sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==
+
+"string-width-cjs@npm:string-width@^4.2.0":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^4.1.0:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
+string-width@^5.0.1, string-width@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ dependencies:
+ eastasianwidth "^0.2.0"
+ emoji-regex "^9.2.2"
+ strip-ansi "^7.0.1"
+
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
+ dependencies:
+ safe-buffer "~5.1.0"
+
+"strip-ansi-cjs@npm: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-ansi@^6.0.0, 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-ansi@^7.0.1:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ dependencies:
+ ansi-regex "^6.0.1"
+
+strip-outer@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/strip-outer/-/strip-outer-1.0.1.tgz#b2fd2abf6604b9d1e6013057195df836b8a9d631"
+ integrity sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==
+ dependencies:
+ escape-string-regexp "^1.0.2"
+
+style-value-types@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/style-value-types/-/style-value-types-5.0.0.tgz#76c35f0e579843d523187989da866729411fc8ad"
+ integrity sha512-08yq36Ikn4kx4YU6RD7jWEv27v4V+PUsOGa4n/as8Et3CuODMJQ00ENeAVXAeydX4Z2j1XHZF1K2sX4mGl18fA==
+ dependencies:
+ hey-listen "^1.0.8"
+ tslib "^2.1.0"
+
+stylis@4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
+ integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
+
+supports-color@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
+ integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
+ dependencies:
+ has-flag "^3.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==
+
+tapable@^2.0.0, tapable@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
+ integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
+
+terser@^5.10.0:
+ version "5.31.1"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.1.tgz#735de3c987dd671e95190e6b98cfe2f07f3cf0d4"
+ integrity sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==
+ dependencies:
+ "@jridgewell/source-map" "^0.3.3"
+ acorn "^8.8.2"
+ commander "^2.20.0"
+ source-map-support "~0.5.20"
+
+tiny-warning@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
+ integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
+
+to-fast-properties@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+ integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
+trim-repeated@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/trim-repeated/-/trim-repeated-1.0.0.tgz#e3646a2ea4e891312bf7eace6cfb05380bc01c21"
+ integrity sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==
+ dependencies:
+ escape-string-regexp "^1.0.2"
+
+tsafe@^1.6.3:
+ version "1.7.2"
+ resolved "https://registry.yarnpkg.com/tsafe/-/tsafe-1.7.2.tgz#0f63d414876287ad01b135f832722f93e22da374"
+ integrity sha512-dAPfQLhCfCRre5qs+Z5Q2a7s2CV7RxffZUmvj7puGaePYjECzWREJFd3w4XSFe/T5tbxgowfItA/JSSZ6Ma3dA==
+
+tslib@^2.0.3, tslib@^2.1.0:
+ version "2.6.3"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
+ integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+ integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
+
+typescript@^4.9.5:
+ version "4.9.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
+ integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
+
+uncontrollable@^7.2.1:
+ version "7.2.1"
+ resolved "https://registry.yarnpkg.com/uncontrollable/-/uncontrollable-7.2.1.tgz#1fa70ba0c57a14d5f78905d533cf63916dc75738"
+ integrity sha512-svtcfoTADIB0nT9nltgjujTi7BzVmwjZClOmskKu/E8FW9BXzg9os8OLr4f8Dlnk0rYWJIWr4wv9eKUXiQvQwQ==
+ dependencies:
+ "@babel/runtime" "^7.6.3"
+ "@types/react" ">=16.9.11"
+ invariant "^2.2.4"
+ react-lifecycles-compat "^3.0.4"
+
+undici-types@~5.26.4:
+ version "5.26.5"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
+ integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
+
+universalify@^0.1.0:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
+ integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+
+update-browserslist-db@^1.0.16:
+ version "1.0.16"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356"
+ integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==
+ dependencies:
+ escalade "^3.1.2"
+ picocolors "^1.0.1"
+
+uri-js@^4.4.1:
+ 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"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+ integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
+
+utila@~0.4:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
+ integrity sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==
+
+validate.io-array@^1.0.3:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d"
+ integrity sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==
+
+validate.io-function@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7"
+ integrity sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==
+
+validate.io-integer-array@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089"
+ integrity sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==
+ dependencies:
+ validate.io-array "^1.0.3"
+ validate.io-integer "^1.0.4"
+
+validate.io-integer@^1.0.4:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068"
+ integrity sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==
+ dependencies:
+ validate.io-number "^1.0.3"
+
+validate.io-number@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8"
+ integrity sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==
+
+vite@^4.5.2:
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.3.tgz#d88a4529ea58bae97294c7e2e6f0eab39a50fb1a"
+ integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==
+ dependencies:
+ esbuild "^0.18.10"
+ postcss "^8.4.27"
+ rollup "^3.27.1"
+ optionalDependencies:
+ fsevents "~2.3.2"
+
+warning@^4.0.0, warning@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3"
+ integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==
+ dependencies:
+ loose-envify "^1.0.0"
+
+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"
+
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
+wrap-ansi@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
+ integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ dependencies:
+ ansi-styles "^6.1.0"
+ string-width "^5.0.1"
+ strip-ansi "^7.0.1"
+
+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@^3.0.2:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
+ integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
+
+yaml@^1.10.0:
+ version "1.10.2"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
+ integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
+
+yargs-parser@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
diff --git a/package.json b/package.json
index 51a4021..391a548 100644
--- a/package.json
+++ b/package.json
@@ -54,7 +54,7 @@
"dts": true
},
"dependencies": {
- "@codegouvfr/react-dsfr": "^1.9.20",
+ "@codegouvfr/react-dsfr": "^1.9.22",
"@rjsf/core": "^5.18.4",
"@rjsf/utils": "^5.18.4",
"@rjsf/validator-ajv8": "^5.18.4"
diff --git a/src/components/ErrorList.tsx b/src/components/ErrorList.tsx
new file mode 100644
index 0000000..58d60b9
--- /dev/null
+++ b/src/components/ErrorList.tsx
@@ -0,0 +1,33 @@
+import Alert from '@codegouvfr/react-dsfr/Alert'
+
+import {
+ ErrorListProps,
+ FormContextType,
+ RJSFSchema,
+ StrictRJSFSchema,
+} from '@rjsf/utils'
+
+export default function ErrorList<
+ T = any,
+ S extends StrictRJSFSchema = RJSFSchema,
+ F extends FormContextType = any,
+>({ errors, registry }: ErrorListProps) {
+ const { translateString } = registry
+ return (
+
+ {errors.map((error, i: number) => {
+ return (
+
+ {error.stack}
+
+ )
+ })}
+
+ }
+ />
+ )
+}
diff --git a/src/components/LabelWithHelp.tsx b/src/components/LabelWithHelp.tsx
new file mode 100644
index 0000000..d800352
--- /dev/null
+++ b/src/components/LabelWithHelp.tsx
@@ -0,0 +1,46 @@
+import { fr } from '@codegouvfr/react-dsfr'
+import { ReactNode, useState } from 'react'
+
+type ElementWithHintProps = {
+ helpText: string | undefined
+ children: ReactNode
+ as?: string
+ [x: string]: any
+}
+
+export default function LabelWithHelp({
+ helpText,
+ children,
+ as = 'span',
+ ...rest
+}: ElementWithHintProps) {
+ const [showHelp, setShowHelp] = useState(false)
+ const Content = as as keyof JSX.IntrinsicElements
+ if (children == undefined) {
+ return null
+ }
+
+ return (
+
+
+
+ {children}
+ {helpText ? (
+ setShowHelp(!showHelp)}
+ />
+ ) : null}
+
+
+ {showHelp ?
{helpText}
: null}
+
+ )
+}
diff --git a/src/components/LabelWithHint.tsx b/src/components/LabelWithHint.tsx
deleted file mode 100644
index 3144b6d..0000000
--- a/src/components/LabelWithHint.tsx
+++ /dev/null
@@ -1,41 +0,0 @@
-import Button from '@codegouvfr/react-dsfr/Button'
-import React, { useState } from 'react'
-import { PropsWithChildren } from 'react'
-
-type ElementWithHintProps = {
- hintText: string | undefined
-} & PropsWithChildren
-
-export default function LabelWithHint({
- hintText,
- children,
-}: ElementWithHintProps) {
- const [showHint, setShowHint] = useState(false)
-
- if (children == undefined) {
- return null
- }
-
- return (
-
-
- {children}
- {hintText ? (
- setShowHint(!showHint)}
- // NOTE: why the children prop is required for Button with icon?
- children={null}
- />
- ) : null}
-
- {showHint ?
{hintText}
: null}
-
- )
-}
diff --git a/src/components/TemplateArrayField.tsx b/src/components/TemplateArrayField.tsx
index 427fad4..0f87208 100644
--- a/src/components/TemplateArrayField.tsx
+++ b/src/components/TemplateArrayField.tsx
@@ -34,7 +34,7 @@ export default function ({
const tabLabel = uiSchema?.['ui:tabLabel'] ?? 'Element'
const removeIcon = uiSchema?.['ui:removeIcon'] ?? 'fr-icon-delete-line'
const addIcon = uiSchema?.['ui:addIcon'] ?? 'fr-icon-add-circle-line'
-
+ console.log('items', items)
return (
@@ -47,8 +47,12 @@ export default function ({
content: (
<>
{
+ console.log('io', element)
+ element.onDropIndexClick(element.index)
+ }}
size="small"
priority="secondary"
>
@@ -65,6 +69,7 @@ export default function ({
<>
{canAdd && (
({
+ id,
placeholder,
- type,
value,
- onChange,
+ required,
+ type,
uiSchema,
label,
- id,
+ disabled,
+ autofocus,
+ readonly,
+ hideError,
+ formContext,
+ rawErrors,
+ options,
+ onBlur,
+ onFocus,
+ onChange,
...rest
-}: WidgetProps) {
+}: WidgetProps) {
if (type === 'date') {
value =
uiSchema && uiSchema['ui:currentDate']
@@ -22,16 +40,26 @@ export default function ({
onChange(value)
}
+ const uiOptions = getUiOptions(uiSchema)
+ const inputType = uiOptions.inputType || type
+ const backgroundColor = (uiOptions.backgroundColor as string) || 'auto'
+
return (
onChange(e.target.value),
min: rest.schema.minimum,
- value: value,
+ style: { backgroundColor },
}}
+ state={rawErrors && rawErrors.length ? 'error' : 'default'}
+ stateRelatedMessage={rawErrors?.length && rawErrors[0]}
// NOTE: we don't want to display the label here because it is already
// displayed in the FieldTemplate (which manages the label and hint).
label={undefined}
diff --git a/src/components/TemplateField.tsx b/src/components/TemplateField.tsx
index eda9480..9ffda64 100644
--- a/src/components/TemplateField.tsx
+++ b/src/components/TemplateField.tsx
@@ -1,7 +1,7 @@
import { FieldTemplateProps } from '@rjsf/utils'
-import React from 'react'
-import LabelWithHint from './LabelWithHint'
+import LabelWithHelp from './LabelWithHelp'
import { Alert } from '@codegouvfr/react-dsfr/Alert'
+import Button from '@codegouvfr/react-dsfr/Button'
// TODO: add to props
const schemaTypesToNotRenderTitles = ['boolean', 'array']
@@ -41,22 +41,24 @@ export default function ({
} else {
title = !schemaTypesToNotRenderTitles.includes(schema.type) ? (
!uiSchema || !uiSchema['ui:hideTitle'] ? (
-
-
- {label + (required ? '*' : '')}
-
-
+
+ {label + (required ? ' (obligatoire)' : '')}
+
) : null
) : null
}
+ const description = uiSchema && uiSchema['ui:description']
return (
{title}
+ {description &&
{description}
}
{children}
- {errors?.props?.errors != null && (
-
- )}
)
}
diff --git a/src/components/WidgetCheckBox.tsx b/src/components/WidgetCheckBox.tsx
index ddaebe2..359aee8 100644
--- a/src/components/WidgetCheckBox.tsx
+++ b/src/components/WidgetCheckBox.tsx
@@ -1,7 +1,6 @@
-import React from 'react'
import { WidgetProps } from '@rjsf/utils'
import Checkbox from '@codegouvfr/react-dsfr/Checkbox'
-import LabelWithHint from './LabelWithHint'
+import LabelWithHelp from './LabelWithHelp'
export default function (props: WidgetProps) {
return (
@@ -10,15 +9,15 @@ export default function (props: WidgetProps) {
options={[
{
label: (
-
{props.schema.title + (props.required ? '*' : '')}
-
+
),
nativeInputProps: {
checked: props.value,
diff --git a/src/components/WidgetRadio.tsx b/src/components/WidgetRadio.tsx
new file mode 100644
index 0000000..0e4bc4d
--- /dev/null
+++ b/src/components/WidgetRadio.tsx
@@ -0,0 +1,67 @@
+import { ChangeEvent, FocusEvent } from 'react'
+import {
+ enumOptionsValueForIndex,
+ FormContextType,
+ RJSFSchema,
+ StrictRJSFSchema,
+ WidgetProps,
+} from '@rjsf/utils'
+
+import React from 'react'
+import RadioButtons from '@codegouvfr/react-dsfr/RadioButtons'
+import LabelWithHelp from './LabelWithHelp'
+
+export default function RadioWidget<
+ T = any,
+ S extends StrictRJSFSchema = RJSFSchema,
+ F extends FormContextType = any,
+>({
+ id,
+ options,
+ value,
+ required,
+ disabled,
+ readonly,
+ onChange,
+ onBlur,
+ onFocus,
+ uiSchema,
+ schema,
+}: WidgetProps) {
+ const { enumOptions, enumDisabled, emptyValue } = options
+
+ const _onChange = ({ target: { value } }: ChangeEvent) =>
+ onChange(enumOptionsValueForIndex(value, enumOptions, emptyValue))
+ const _onBlur = ({ target: { value } }: FocusEvent) =>
+ onBlur(id, enumOptionsValueForIndex(value, enumOptions, emptyValue))
+ const _onFocus = ({ target: { value } }: FocusEvent) =>
+ onFocus(id, enumOptionsValueForIndex(value, enumOptions, emptyValue))
+
+ const inline = Boolean(options && options.inline)
+
+ return (
+
+ ({
+ label: (
+
+ {option.label}
+
+ ),
+ nativeInputProps: {
+ checked: value === option.value,
+ onChange: (e) => onChange(option.value),
+ },
+ }))) ||
+ []
+ }
+ />
+
+ )
+}
diff --git a/src/components/WidgetSelect.tsx b/src/components/WidgetSelect.tsx
index 60d1ec0..8833675 100644
--- a/src/components/WidgetSelect.tsx
+++ b/src/components/WidgetSelect.tsx
@@ -1,14 +1,30 @@
import Select from '@codegouvfr/react-dsfr/Select'
import {
+ FormContextType,
RJSFSchema,
+ StrictRJSFSchema,
WidgetProps,
enumOptionsIndexForValue,
enumOptionsValueForIndex,
+ getUiOptions,
} from '@rjsf/utils'
-import React from 'react'
import { SyntheticEvent, useCallback } from 'react'
-export default function ({ label, ...props }: WidgetProps) {
+export default function <
+ T = any,
+ S extends StrictRJSFSchema = RJSFSchema,
+ F extends FormContextType = any,
+>({
+ label,
+ rawErrors,
+ autofocus,
+ readonly,
+ formContext,
+ hideError,
+ hideLabel,
+ uiSchema,
+ ...props
+}: WidgetProps) {
const { enumOptions, emptyValue: optEmptyVal } = props.options
const handleChange = useCallback(
@@ -40,6 +56,9 @@ export default function ({ label, ...props }: WidgetProps) {
const value =
typeof selectedIndexes === 'undefined' ? defaultIndex : selectedIndexes
+ const uiOptions = getUiOptions(uiSchema)
+ const backgroundColor = (uiOptions.backgroundColor as string) || 'auto'
+
return (
- {!props.multiple && props.schema.default === undefined && (
- {props.placeholder}
- )}
+ {!props.multiple &&
+ props.schema.default === undefined &&
+ props.options.placeholder && (
+
+ {props.options.placeholder}
+
+ )}
{props.options.enumOptions?.map((item, index) => (
{item.label}
))}
+ state={rawErrors && rawErrors.length ? 'error' : 'default'}
+ stateRelatedMessage={rawErrors?.length && rawErrors[0]}
)
}
diff --git a/src/components/WidgetTextarea.tsx b/src/components/WidgetTextarea.tsx
new file mode 100644
index 0000000..1a95764
--- /dev/null
+++ b/src/components/WidgetTextarea.tsx
@@ -0,0 +1,68 @@
+import {
+ FormContextType,
+ getUiOptions,
+ RJSFSchema,
+ StrictRJSFSchema,
+ WidgetProps,
+} from '@rjsf/utils'
+import Input from '@codegouvfr/react-dsfr/Input'
+
+type CustomWidgetProps<
+ T = any,
+ S extends StrictRJSFSchema = RJSFSchema,
+ F extends FormContextType = any,
+> = WidgetProps & {
+ options: any
+}
+
+export default function WidgetTextarea<
+ T = any,
+ S extends StrictRJSFSchema = RJSFSchema,
+ F extends FormContextType = any,
+>({
+ id,
+ placeholder,
+ value,
+ required,
+ type,
+ uiSchema,
+ label,
+ disabled,
+ autofocus,
+ readonly,
+ hideError,
+ formContext,
+ rawErrors,
+ options,
+ onBlur,
+ onFocus,
+ onChange,
+ ...rest
+}: CustomWidgetProps) {
+ const uiOptions = getUiOptions(uiSchema)
+ const rows = uiOptions.rows || 3
+ const backgroundColor = (uiOptions.backgroundColor as string) || 'auto'
+
+ return (
+ onChange(e.target.value),
+ style: { backgroundColor },
+ }}
+ state={rawErrors && rawErrors.length ? 'error' : 'default'}
+ stateRelatedMessage={rawErrors?.length && rawErrors[0]}
+ disabled={disabled}
+ // NOTE: we don't want to display the label here because it is already
+ // displayed in the FieldTemplate (which manages the label and hint).
+ label={undefined}
+ {...rest}
+ />
+ )
+}
diff --git a/src/index.tsx b/src/index.tsx
index 6189b26..6636011 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -11,13 +11,17 @@ import defaultValidator from '@rjsf/validator-ajv8'
import { Button } from '@codegouvfr/react-dsfr/Button'
import WidgetCheckBox from './components/WidgetCheckBox'
+import WidgetRadio from './components/WidgetRadio'
import WidgetSelect from './components/WidgetSelect'
+import WidgetTextarea from './components/WidgetTextarea'
+
import TemplateArrayField, {
ArrayFieldUiOptionsDSFR,
} from './components/TemplateArrayField'
import TemplateBaseInput from './components/TemplateBaseInput'
import TemplateField from './components/TemplateField'
import TemplateTitleField from './components/TemplateTitleField'
+import ErrorList from './components/ErrorList'
export type UiSchemaDSFR<
T = any,
@@ -25,12 +29,20 @@ export type UiSchemaDSFR<
F extends FormContextType = any,
> = UiSchema & FieldUiOptionsDSFR & ArrayFieldUiOptionsDSFR
-/** Custom UI options for all fields */
+/** Custom UI options for all fields.
+ * see https://rjsf-team.github.io/react-jsonschema-form/docs/api-reference/uiSchema
+ *
+ */
+
export type FieldUiOptionsDSFR = {
/** Set the heading level for the title */
'ui:heading'?: 'h2' | 'h3' | 'h4' | 'h5' | 'h6'
/** To hide the title */
'ui:hideTitle'?: boolean
+ /** Add description */
+ 'ui:description'?: string
+ /** Add help icon text after label */
+ 'ui:help'?: string
}
export type FormPropsDSFR<
@@ -79,7 +91,9 @@ export default function FormDSFR<
export const widgetsDSFR = {
CheckboxWidget: WidgetCheckBox,
+ RadioWidget: WidgetRadio,
SelectWidget: WidgetSelect,
+ TextareaWidget: WidgetTextarea,
}
export const templatesDSFR = {
@@ -88,16 +102,16 @@ export const templatesDSFR = {
FieldTemplate: TemplateField,
ButtonTemplates: { SubmitButton },
TitleFieldTemplate: TemplateTitleField,
+ ErrorListTemplate: ErrorList,
}
function SubmitButton({ uiSchema }: SubmitButtonProps) {
const buttonOptions = uiSchema?.['ui:options']?.submitButtonOptions
+ const buttonProps = uiSchema?.['ui:options']?.submitButtonOptions?.props || {}
return (
// NOTE: should the div stay here? Probably not.
-
- {buttonOptions?.submitText ?? 'Envoyer'}
-
+ {buttonOptions?.submitText ?? 'Envoyer'}
)
}
diff --git a/yarn.lock b/yarn.lock
index bbfa9d4..79a16f9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@codegouvfr/react-dsfr@^1.9.20":
- version "1.9.20"
- resolved "https://registry.yarnpkg.com/@codegouvfr/react-dsfr/-/react-dsfr-1.9.20.tgz#6c495d55140cbebf506cae983b601c846303ae61"
- integrity sha512-Q4W4K0ZZZtC5ogVmrNXGTkbkeordoNGHVl+w1Msz3zLwk5FZNVZt+/lAaeKZ/j+4rMbVzAEB9ggQe4FohSBnag==
+"@codegouvfr/react-dsfr@^1.9.22":
+ version "1.9.22"
+ resolved "https://registry.yarnpkg.com/@codegouvfr/react-dsfr/-/react-dsfr-1.9.22.tgz#fed5afb0f0b6fce19b755e384a19d31627ad9ede"
+ integrity sha512-bIT/djCWcp4992Zjnl1Hr4+wl8n/FJzUiqlK1/SGJVyfpzpsKczND3Lu4iRZ9ueKJFDOp5EgWXyT8JcakHFAgg==
dependencies:
tsafe "^1.6.3"
yargs-parser "^21.1.1"
@@ -32,7 +32,7 @@
"@esbuild/darwin-arm64@0.21.5":
version "0.21.5"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
+ resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz"
integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
"@esbuild/darwin-x64@0.21.5":
@@ -127,7 +127,7 @@
"@isaacs/cliui@^8.0.2":
version "8.0.2"
- resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
+ resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz"
integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
dependencies:
string-width "^5.1.2"
@@ -139,7 +139,7 @@
"@jridgewell/gen-mapping@^0.3.2":
version "0.3.5"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
+ resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
dependencies:
"@jridgewell/set-array" "^1.2.1"
@@ -148,22 +148,22 @@
"@jridgewell/resolve-uri@^3.1.0":
version "3.1.2"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
+ resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz"
integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
"@jridgewell/set-array@^1.2.1":
version "1.2.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280"
+ resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz"
integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
version "1.4.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
+ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@^0.3.24":
version "0.3.25"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
+ resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
dependencies:
"@jridgewell/resolve-uri" "^3.1.0"
@@ -171,7 +171,7 @@
"@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"
+ resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
dependencies:
"@nodelib/fs.stat" "2.0.5"
@@ -179,12 +179,12 @@
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
"@nodelib/fs.walk@^1.2.3":
version "1.2.8"
- resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+ resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
dependencies:
"@nodelib/fs.scandir" "2.1.5"
@@ -192,12 +192,12 @@
"@pkgjs/parseargs@^0.11.0":
version "0.11.0"
- resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
+ resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz"
integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
"@rjsf/core@^5.18.4":
version "5.18.4"
- resolved "https://registry.yarnpkg.com/@rjsf/core/-/core-5.18.4.tgz#a0e5a77a54dd07bcd40dd287db7002b8973421f4"
+ resolved "https://registry.npmjs.org/@rjsf/core/-/core-5.18.4.tgz"
integrity sha512-OUPC+l44X1geYT9sSsmQC2pakvFWCQB+5Iy/ITfLMJq3MIjJn0gakCwYHXMMBGUAKM1SSMIyKWyCazt3kY9fhg==
dependencies:
lodash "^4.17.21"
@@ -208,7 +208,7 @@
"@rjsf/utils@^5.18.4":
version "5.18.4"
- resolved "https://registry.yarnpkg.com/@rjsf/utils/-/utils-5.18.4.tgz#098c767f6bfbbf660f201d864bf8bba247453dfd"
+ resolved "https://registry.npmjs.org/@rjsf/utils/-/utils-5.18.4.tgz"
integrity sha512-svLMk5aW6q3JQRYVTJradFc9tLeQ1vX5/k6fPwxf+08eweqPbINq7aokLBSStUNr8FfYgThTl8IfehLoVP2dvw==
dependencies:
json-schema-merge-allof "^0.8.1"
@@ -219,7 +219,7 @@
"@rjsf/validator-ajv8@^5.18.4":
version "5.18.4"
- resolved "https://registry.yarnpkg.com/@rjsf/validator-ajv8/-/validator-ajv8-5.18.4.tgz#ffdf91f0641affc0b40b3259d07528cc5b147753"
+ resolved "https://registry.npmjs.org/@rjsf/validator-ajv8/-/validator-ajv8-5.18.4.tgz"
integrity sha512-D0bUtruWbUmXG8z3VBbCky0Cx65rmcdG/QypB9ri5YTSNTQIxuq28StBpZUZn84CO/oMOtociGy4afW1aj5C0g==
dependencies:
ajv "^8.12.0"
@@ -239,7 +239,7 @@
"@rollup/rollup-darwin-arm64@4.18.0":
version "4.18.0"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz#b6dd74e117510dfe94541646067b0545b42ff096"
+ resolved "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz"
integrity sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==
"@rollup/rollup-darwin-x64@4.18.0":
@@ -309,17 +309,17 @@
"@types/estree@1.0.5":
version "1.0.5"
- resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
+ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
"@types/prop-types@*":
version "15.7.12"
- resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
+ resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz"
integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
"@types/react@^18.3.3":
version "18.3.3"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.3.tgz#9679020895318b0915d7a3ab004d92d33375c45f"
+ resolved "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz"
integrity sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==
dependencies:
"@types/prop-types" "*"
@@ -327,14 +327,14 @@
ajv-formats@^2.1.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520"
+ resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz"
integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==
dependencies:
ajv "^8.0.0"
ajv@^8.0.0, ajv@^8.12.0:
version "8.16.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4"
+ resolved "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz"
integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==
dependencies:
fast-deep-equal "^3.1.3"
@@ -344,34 +344,34 @@ ajv@^8.0.0, ajv@^8.12.0:
ansi-regex@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-regex@^6.0.1:
version "6.0.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a"
+ resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz"
integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==
ansi-styles@^4.0.0:
version "4.3.0"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
dependencies:
color-convert "^2.0.1"
ansi-styles@^6.1.0:
version "6.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz"
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
any-promise@^1.0.0:
version "1.3.0"
- resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
anymatch@~3.1.2:
version "3.1.3"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
@@ -379,48 +379,48 @@ anymatch@~3.1.2:
array-union@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
+ resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
balanced-match@^1.0.0:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
+ resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
binary-extensions@^2.0.0:
version "2.3.0"
- resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522"
+ resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
brace-expansion@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
+ resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz"
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
dependencies:
balanced-match "^1.0.0"
braces@^3.0.3, braces@~3.0.2:
version "3.0.3"
- resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
+ resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz"
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
dependencies:
fill-range "^7.1.1"
bundle-require@^4.0.0:
version "4.2.1"
- resolved "https://registry.yarnpkg.com/bundle-require/-/bundle-require-4.2.1.tgz#4c450a5807381d20ade987bde8ac391544257919"
+ resolved "https://registry.npmjs.org/bundle-require/-/bundle-require-4.2.1.tgz"
integrity sha512-7Q/6vkyYAwOmQNRw75x+4yRtZCZJXUDmHHlFdkiV0wgv/reNjtJwpu1jPJ0w2kbEpIM0uoKI3S4/f39dU7AjSA==
dependencies:
load-tsconfig "^0.2.3"
cac@^6.7.12:
version "6.7.14"
- resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
+ resolved "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz"
integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
chokidar@^3.5.1:
version "3.6.0"
- resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
+ resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
dependencies:
anymatch "~3.1.2"
@@ -435,24 +435,24 @@ chokidar@^3.5.1:
color-convert@^2.0.1:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
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"
+ resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
commander@^4.0.0:
version "4.1.1"
- resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+ resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz"
integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
compute-gcd@^1.2.1:
version "1.2.1"
- resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f"
+ resolved "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz"
integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==
dependencies:
validate.io-array "^1.0.3"
@@ -461,7 +461,7 @@ compute-gcd@^1.2.1:
compute-lcm@^1.1.2:
version "1.1.2"
- resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23"
+ resolved "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz"
integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==
dependencies:
compute-gcd "^1.2.1"
@@ -471,7 +471,7 @@ compute-lcm@^1.1.2:
cross-spawn@^7.0.0, cross-spawn@^7.0.3:
version "7.0.3"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
+ resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
dependencies:
path-key "^3.1.0"
@@ -480,41 +480,41 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.3:
csstype@^3.0.2:
version "3.1.3"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+ resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz"
integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
debug@^4.3.1:
version "4.3.5"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e"
+ resolved "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz"
integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==
dependencies:
ms "2.1.2"
dir-glob@^3.0.1:
version "3.0.1"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
+ resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
dependencies:
path-type "^4.0.0"
eastasianwidth@^0.2.0:
version "0.2.0"
- resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
emoji-regex@^8.0.0:
version "8.0.0"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
emoji-regex@^9.2.2:
version "9.2.2"
- resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
+ resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
esbuild@^0.21.4:
version "0.21.5"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
+ resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz"
integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
optionalDependencies:
"@esbuild/aix-ppc64" "0.21.5"
@@ -543,7 +543,7 @@ esbuild@^0.21.4:
execa@^5.0.0:
version "5.1.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
+ resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
dependencies:
cross-spawn "^7.0.3"
@@ -558,12 +558,12 @@ execa@^5.0.0:
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"
+ resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-glob@^3.2.9:
version "3.3.2"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
+ resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
@@ -574,21 +574,21 @@ fast-glob@^3.2.9:
fastq@^1.6.0:
version "1.17.1"
- resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47"
+ resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz"
integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==
dependencies:
reusify "^1.0.4"
fill-range@^7.1.1:
version "7.1.1"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
+ resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz"
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
dependencies:
to-regex-range "^5.0.1"
foreground-child@^3.1.0:
version "3.2.1"
- resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7"
+ resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz"
integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==
dependencies:
cross-spawn "^7.0.0"
@@ -596,24 +596,24 @@ foreground-child@^3.1.0:
fsevents@~2.3.2:
version "2.3.3"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
+ resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
get-stream@^6.0.0:
version "6.0.1"
- resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
+ resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2"
- resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
+ resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
dependencies:
is-glob "^4.0.1"
glob@^10.3.10:
version "10.4.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.2.tgz#bed6b95dade5c1f80b4434daced233aee76160e5"
+ resolved "https://registry.npmjs.org/glob/-/glob-10.4.2.tgz"
integrity sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==
dependencies:
foreground-child "^3.1.0"
@@ -625,7 +625,7 @@ glob@^10.3.10:
globby@^11.0.3:
version "11.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+ resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
dependencies:
array-union "^2.1.0"
@@ -637,56 +637,56 @@ globby@^11.0.3:
human-signals@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
+ resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
ignore@^5.2.0:
version "5.3.1"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef"
+ resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz"
integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==
is-binary-path@~2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
+ resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz"
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
dependencies:
binary-extensions "^2.0.0"
is-extglob@^2.1.1:
version "2.1.1"
- resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
+ resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
is-glob@^4.0.1, is-glob@~4.0.1:
version "4.0.3"
- resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+ resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
dependencies:
is-extglob "^2.1.1"
is-number@^7.0.0:
version "7.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
is-stream@^2.0.0:
version "2.0.1"
- resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
+ resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
isexe@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+ resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
jackspeak@^3.1.2:
version "3.4.0"
- resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a"
+ resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.0.tgz"
integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==
dependencies:
"@isaacs/cliui" "^8.0.2"
@@ -695,24 +695,24 @@ jackspeak@^3.1.2:
joycon@^3.0.1:
version "3.1.1"
- resolved "https://registry.yarnpkg.com/joycon/-/joycon-3.1.1.tgz#bce8596d6ae808f8b68168f5fc69280996894f03"
+ resolved "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz"
integrity sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==
"js-tokens@^3.0.0 || ^4.0.0":
version "4.0.0"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
+ resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
json-schema-compare@^0.2.2:
version "0.2.2"
- resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56"
+ resolved "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz"
integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==
dependencies:
lodash "^4.17.4"
json-schema-merge-allof@^0.8.1:
version "0.8.1"
- resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz#ed2828cdd958616ff74f932830a26291789eaaf2"
+ resolved "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz"
integrity sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w==
dependencies:
compute-lcm "^1.1.2"
@@ -721,74 +721,74 @@ json-schema-merge-allof@^0.8.1:
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"
+ resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
jsonpointer@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559"
+ resolved "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz"
integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==
lilconfig@^3.0.0:
version "3.1.2"
- resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb"
+ resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz"
integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==
lines-and-columns@^1.1.6:
version "1.2.4"
- resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
+ resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
load-tsconfig@^0.2.3:
version "0.2.5"
- resolved "https://registry.yarnpkg.com/load-tsconfig/-/load-tsconfig-0.2.5.tgz#453b8cd8961bfb912dea77eb6c168fe8cca3d3a1"
+ resolved "https://registry.npmjs.org/load-tsconfig/-/load-tsconfig-0.2.5.tgz"
integrity sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==
lodash-es@^4.17.21:
version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ resolved "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz"
integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash.sortby@^4.7.0:
version "4.7.0"
- resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz"
integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==
lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4:
version "4.17.21"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
+ resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
- resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
+ resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
lru-cache@^10.2.0:
version "10.2.2"
- resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878"
+ resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz"
integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==
markdown-to-jsx@^7.4.1:
version "7.4.7"
- resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz#740ee7ec933865ef5cc683a0992797685a75e2ee"
+ resolved "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.4.7.tgz"
integrity sha512-0+ls1IQZdU6cwM1yu0ZjjiVWYtkbExSyUIFU2ZeDIFuZM1W42Mh4OlJ4nb4apX4H8smxDHRdFaoIVJGwfv5hkg==
merge-stream@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
+ resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
- resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+ resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
micromatch@^4.0.4:
version "4.0.7"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
+ resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz"
integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
dependencies:
braces "^3.0.3"
@@ -796,29 +796,29 @@ micromatch@^4.0.4:
mimic-fn@^2.1.0:
version "2.1.0"
- resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
+ resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
minimatch@^9.0.4:
version "9.0.4"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51"
+ resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz"
integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==
dependencies:
brace-expansion "^2.0.1"
"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
version "7.1.2"
- resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+ resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
ms@2.1.2:
version "2.1.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
mz@^2.7.0:
version "2.7.0"
- resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"
integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
dependencies:
any-promise "^1.0.0"
@@ -827,46 +827,46 @@ mz@^2.7.0:
nanoid@^3.3.7:
version "3.3.7"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
+ resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
normalize-path@^3.0.0, normalize-path@~3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
+ resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
npm-run-path@^4.0.1:
version "4.0.1"
- resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
+ resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
path-key "^3.0.0"
object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+ resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
onetime@^5.1.2:
version "5.1.2"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
+ resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies:
mimic-fn "^2.1.0"
package-json-from-dist@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
+ resolved "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz"
integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
path-key@^3.0.0, path-key@^3.1.0:
version "3.1.1"
- resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
+ resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-scurry@^1.11.1:
version "1.11.1"
- resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+ resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz"
integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
dependencies:
lru-cache "^10.2.0"
@@ -874,22 +874,22 @@ path-scurry@^1.11.1:
path-type@^4.0.0:
version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
+ resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
pirates@^4.0.1:
version "4.0.6"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz"
integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
postcss-load-config@^4.0.1:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3"
+ resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz"
integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==
dependencies:
lilconfig "^3.0.0"
@@ -897,12 +897,12 @@ postcss-load-config@^4.0.1:
prettier@^3.3.2:
version "3.3.2"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a"
+ resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.2.tgz"
integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA==
prop-types@^15.8.1:
version "15.8.1"
- resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
+ resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
dependencies:
loose-envify "^1.4.0"
@@ -911,56 +911,56 @@ prop-types@^15.8.1:
punycode@^2.1.0:
version "2.3.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
+ resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
queue-microtask@^1.2.2:
version "1.2.3"
- resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+ resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
react-is@^16.13.1:
version "16.13.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
react-is@^18.2.0:
version "18.3.1"
- resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
+ resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz"
integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
react@^18.3.1:
version "18.3.1"
- resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891"
+ resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz"
integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==
dependencies:
loose-envify "^1.1.0"
readdirp@~3.6.0:
version "3.6.0"
- resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
+ resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz"
integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
dependencies:
picomatch "^2.2.1"
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"
+ resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
resolve-from@^5.0.0:
version "5.0.0"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
+ resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
reusify@^1.0.4:
version "1.0.4"
- resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+ resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
rollup@^4.0.2:
version "4.18.0"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.18.0.tgz#497f60f0c5308e4602cf41136339fbf87d5f5dda"
+ resolved "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz"
integrity sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==
dependencies:
"@types/estree" "1.0.5"
@@ -985,48 +985,48 @@ rollup@^4.0.2:
run-parallel@^1.1.9:
version "1.2.0"
- resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+ resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
dependencies:
queue-microtask "^1.2.2"
shebang-command@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
+ resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
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"
+ resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
signal-exit@^3.0.3:
version "3.0.7"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
signal-exit@^4.0.1:
version "4.1.0"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
slash@^3.0.0:
version "3.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
+ resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
source-map@0.8.0-beta.0:
version "0.8.0-beta.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
+ resolved "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz"
integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
dependencies:
whatwg-url "^7.0.0"
"string-width-cjs@npm:string-width@^4.2.0":
version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
@@ -1035,7 +1035,7 @@ source-map@0.8.0-beta.0:
string-width@^4.1.0:
version "4.2.3"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
dependencies:
emoji-regex "^8.0.0"
@@ -1044,7 +1044,7 @@ string-width@^4.1.0:
string-width@^5.0.1, string-width@^5.1.2:
version "5.1.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz"
integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
dependencies:
eastasianwidth "^0.2.0"
@@ -1053,33 +1053,33 @@ string-width@^5.0.1, string-width@^5.1.2:
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
ansi-regex "^5.0.1"
strip-ansi@^7.0.1:
version "7.1.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz"
integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
dependencies:
ansi-regex "^6.0.1"
strip-final-newline@^2.0.0:
version "2.0.0"
- resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
+ resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
sucrase@^3.20.3:
version "3.35.0"
- resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
+ resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz"
integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==
dependencies:
"@jridgewell/gen-mapping" "^0.3.2"
@@ -1092,55 +1092,55 @@ sucrase@^3.20.3:
thenify-all@^1.0.0:
version "1.6.0"
- resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz"
integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
dependencies:
thenify ">= 3.1.0 < 4"
"thenify@>= 3.1.0 < 4":
version "3.3.1"
- resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
+ resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz"
integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
dependencies:
any-promise "^1.0.0"
to-regex-range@^5.0.1:
version "5.0.1"
- resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
dependencies:
is-number "^7.0.0"
tr46@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz"
integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==
dependencies:
punycode "^2.1.0"
tree-kill@^1.2.2:
version "1.2.2"
- resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc"
+ resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz"
integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==
ts-interface-checker@^0.1.9:
version "0.1.13"
- resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
+ resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz"
integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
tsafe@^1.6.3:
version "1.7.2"
- resolved "https://registry.yarnpkg.com/tsafe/-/tsafe-1.7.2.tgz#0f63d414876287ad01b135f832722f93e22da374"
+ resolved "https://registry.npmjs.org/tsafe/-/tsafe-1.7.2.tgz"
integrity sha512-dAPfQLhCfCRre5qs+Z5Q2a7s2CV7RxffZUmvj7puGaePYjECzWREJFd3w4XSFe/T5tbxgowfItA/JSSZ6Ma3dA==
tsc@^2.0.4:
version "2.0.4"
- resolved "https://registry.yarnpkg.com/tsc/-/tsc-2.0.4.tgz#5f6499146abea5dca4420b451fa4f2f9345238f5"
+ resolved "https://registry.npmjs.org/tsc/-/tsc-2.0.4.tgz"
integrity sha512-fzoSieZI5KKJVBYGvwbVZs/J5za84f2lSTLPYf6AGiIf43tZ3GNrI1QzTLcjtyDDP4aLxd46RTZq1nQxe7+k5Q==
tsup@^8.1.0:
version "8.1.0"
- resolved "https://registry.yarnpkg.com/tsup/-/tsup-8.1.0.tgz#354ce9def1721f5029564382ea2a42dc67fbb489"
+ resolved "https://registry.npmjs.org/tsup/-/tsup-8.1.0.tgz"
integrity sha512-UFdfCAXukax+U6KzeTNO2kAARHcWxmKsnvSPXUcfA1D+kU05XDccCrkffCQpFaWDsZfV0jMyTsxU39VfCp6EOg==
dependencies:
bundle-require "^4.0.0"
@@ -1160,29 +1160,29 @@ tsup@^8.1.0:
typescript@^5.4.5:
version "5.4.5"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611"
+ resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz"
integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==
uri-js@^4.4.1:
version "4.4.1"
- resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
+ resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
dependencies:
punycode "^2.1.0"
validate.io-array@^1.0.3:
version "1.0.6"
- resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d"
+ resolved "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz"
integrity sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==
validate.io-function@^1.0.2:
version "1.0.2"
- resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7"
+ resolved "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz"
integrity sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==
validate.io-integer-array@^1.0.0:
version "1.0.0"
- resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089"
+ resolved "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz"
integrity sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==
dependencies:
validate.io-array "^1.0.3"
@@ -1190,24 +1190,24 @@ validate.io-integer-array@^1.0.0:
validate.io-integer@^1.0.4:
version "1.0.5"
- resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068"
+ resolved "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz"
integrity sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==
dependencies:
validate.io-number "^1.0.3"
validate.io-number@^1.0.3:
version "1.0.3"
- resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8"
+ resolved "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz"
integrity sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==
webidl-conversions@^4.0.2:
version "4.0.2"
- resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+ resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz"
integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
whatwg-url@^7.0.0:
version "7.1.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz"
integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
dependencies:
lodash.sortby "^4.7.0"
@@ -1216,14 +1216,14 @@ whatwg-url@^7.0.0:
which@^2.0.1:
version "2.0.2"
- resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
+ resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
version "7.0.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
dependencies:
ansi-styles "^4.0.0"
@@ -1232,7 +1232,7 @@ which@^2.0.1:
wrap-ansi@^8.1.0:
version "8.1.0"
- resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
+ resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"
integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
dependencies:
ansi-styles "^6.1.0"
@@ -1241,10 +1241,10 @@ wrap-ansi@^8.1.0:
yaml@^2.3.4:
version "2.4.5"
- resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e"
+ resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.5.tgz"
integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==
yargs-parser@^21.1.1:
version "21.1.1"
- resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
+ resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==