diff --git a/.eslintrc.js b/.eslintrc.js
index bdace1247ab77d..e15c9c6197d333 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -67,13 +67,6 @@ module.exports = {
{
patterns: [
'@mui/*/*/*',
- // Begin block: Packages with files instead of packages in the top level
- // Importing from the top level pulls in CommonJS instead of ES modules
- // Allowing /icons as to reduce cold-start of dev builds significantly.
- // There's nothing to tree-shake when importing from /icons this way:
- // '@mui/icons-material/*/',
- '@mui/utils/*',
- // End block
// Macros are fine since their import path is transpiled away
'!@mui/utils/macros',
'@mui/utils/macros/*',
@@ -333,7 +326,7 @@ module.exports = {
'error',
{
patterns: [
- // Allow deeper imports for TypeScript types. TODO?
+ // Allow deeper imports for TypeScript types. TODO remove
'@mui/*/*/*/*',
// Macros are fine since they're transpiled into something else
'!@mui/utils/macros/*.macro',
diff --git a/CHANGELOG.md b/CHANGELOG.md
index b44ff828936714..0d5719526e40c5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,60 @@
# [Versions](https://mui.com/versions/)
+## 5.14.10
+
+
+
+_Sep 18, 2023_
+
+A big thanks to the 16 contributors who made this release possible. This release was mostly about 🐛 bug fixes and 📚 documentation improvements.
+
+### `@mui/material@5.14.10`
+
+- [Chip] Add cursor CSS property reset (#38984) @DiegoAndai
+
+### `@mui/utils@5.14.10`
+
+- [utils] Move @types/prop-types back to dependencies (#39030) @Methuselah96
+
+### `@mui/base@5.0.0-beta.16`
+
+- [NumberInput][base-ui] Warn when changing control mode with `useControlled` (#38757) @sai6855
+- [Select][base-ui] Fix Select button layout shift, add placeholder prop (#38796) @mj12albert
+- [useList][base-ui] Accept arbitrary external props and forward to root (#38848) @mj12albert
+- [Autocomplete][base-ui] Added ref to getInputProps return value (#38919) @DarhkVoyd
+
+### `@mui/joy@5.0.0-beta.7`
+
+- [AccordionGroup][joy-ui] Fix console warning when using custom color (#38950) @sai6855
+- [GlobalStyles][joy-ui] Ensure compatibility with RSC (#38955) @mateuseap
+
+### Docs
+
+- [docs][base] Add Tailwind CSS + plain CSS demo on the NumberInput page (#38928) @alisasanib
+- [docs][Dialog] Add non-modal dialog docs & demo (#38684) @mnajdova
+- [docs] Fix number input wrong demo @oliviertassinari
+- [docs] Exclude joy-ui LinearProgressCountup from visual regression (#38969) @siriwatknp
+- [docs][joy-ui] Revise the Overview page (#38842) @danilo-leal
+- [docs][material-ui][Pagination] Add `TablePagination` to the API components list (#38486) @MonstraG
+
+### Core
+
+- [core] Add more context about useEventCallback @oliviertassinari
+- [core] Allow deeper import of @mui/utils (#38806) @oliviertassinari
+- [core] Remove react-dom from @mui/utils peerDependencies (#38974) @michaldudak
+- [core] Remove react from styled-engine dependencies (#38971) @michaldudak
+- [core] Fix image loading bug on Safari @oliviertassinari
+- [core] Fix bundle size upload to S3 job (#38956) @Janpot
+- [core] Move eslint to peer dependencies of eslint-plugin-material-ui (#39033) @michaldudak
+- [docs-infra] Display markdown lists correctly in docs for props description (#38973) @ZeeshanTamboli
+- [website] Improve lighthouse score (#39011) @oliviertassinari
+- [website] Fix lighthouse issues @oliviertassinari
+- [website] Create the `InfoCard` component (#38987) @danilo-leal
+- [website] Small tweaks for performance @oliviertassinari
+- [zero][next] Setup nextjs plugin package (#38852) @brijeshb42
+
+All contributors of this release in alphabetical order: @alisasanib, @brijeshb42, @danilo-leal, @DarhkVoyd, @DiegoAndai, @Janpot, @mateuseap, @Methuselah96, @michaldudak, @mj12albert, @mnajdova, @MonstraG, @oliviertassinari, @sai6855, @siriwatknp, @ZeeshanTamboli
+
## 5.14.9
diff --git a/apps/zero-runtime-next-app/.eslintrc.json b/apps/zero-runtime-next-app/.eslintrc.json
new file mode 100644
index 00000000000000..68004cb09cc653
--- /dev/null
+++ b/apps/zero-runtime-next-app/.eslintrc.json
@@ -0,0 +1,5 @@
+{
+ "rules": {
+ "react/react-in-jsx-scope": "off"
+ }
+}
diff --git a/apps/zero-runtime-next-app/.gitignore b/apps/zero-runtime-next-app/.gitignore
new file mode 100644
index 00000000000000..8f322f0d8f4957
--- /dev/null
+++ b/apps/zero-runtime-next-app/.gitignore
@@ -0,0 +1,35 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# next.js
+/.next/
+/out/
+
+# production
+/build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
+.env*.local
+
+# vercel
+.vercel
+
+# typescript
+*.tsbuildinfo
+next-env.d.ts
diff --git a/apps/zero-runtime-next-app/README.md b/apps/zero-runtime-next-app/README.md
new file mode 100644
index 00000000000000..4e9e05140aa95d
--- /dev/null
+++ b/apps/zero-runtime-next-app/README.md
@@ -0,0 +1,26 @@
+# Next App
+
+A sample vite application to test the working of zero runtime library.
+This project is not part of the workspace yet.
+
+## How to run
+
+You can either `yarn build` command to build all the packages, or you need to build, the the minimum -
+
+1. `@mui/zero-runtime`
+2. `@mui/zero-tag-processor`
+3. `@mui/zero-next-plugin`
+
+Make sure you have also run `yarn build` at least once because we also use `@mui/material` and `@mui/system` packages. On subsequent runs, you can only build the above packages using -
+
+```bash
+yarn build
+```
+
+After building, you can run the project by changing into the directory and then
+
+1. Install dependencies using `yarn install`
+2. Start the dev server using `yarn dev`
+3. Build the code using `yarn build`
+
+Optionally, before running the dev server, you can run `yarn vite optimize --force` if it logged some error during `yarn vite`.
diff --git a/apps/zero-runtime-next-app/next.config.js b/apps/zero-runtime-next-app/next.config.js
new file mode 100644
index 00000000000000..c91a53f9a87e53
--- /dev/null
+++ b/apps/zero-runtime-next-app/next.config.js
@@ -0,0 +1,38 @@
+const { createTheme } = require('@mui/material/styles');
+const withZero = require('@mui/zero-next-plugin').default;
+
+const theme = createTheme({
+ typography: {
+ fontFamilyCode: 'Menlo,Consolas,"Droid Sans Mono",monospace',
+ },
+});
+// @TODO - Make this part of the main package
+// @ts-ignore
+theme.applyDarkStyles = function applyDarkStyles(obj) {
+ return {
+ // @TODO - Use custom stylis plugin as in docs/src/createEmotionCache.ts
+ // so that we don't need to use *
+ '* :where([data-mui-color-scheme="dark"]) &': obj,
+ };
+};
+
+/** @type {import('@mui/zero-webpack-plugin').ZeroPluginOptions} */
+const zeroPluginConfig = {
+ theme,
+ cssVariablesPrefix: 'app',
+ displayName: true,
+ // sourceMap: true,
+};
+
+/** @type {import('next').NextConfig} */
+const nextConfig = {
+ // linaria: zeroPluginConfig,
+ eslint: {
+ ignoreDuringBuilds: true,
+ },
+ typescript: {
+ ignoreBuildErrors: true,
+ },
+};
+
+module.exports = withZero(nextConfig, zeroPluginConfig);
diff --git a/apps/zero-runtime-next-app/package.json b/apps/zero-runtime-next-app/package.json
new file mode 100644
index 00000000000000..d78f2c56c7d4ea
--- /dev/null
+++ b/apps/zero-runtime-next-app/package.json
@@ -0,0 +1,31 @@
+{
+ "name": "@app/zero-runtime-next-app",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint"
+ },
+ "dependencies": {
+ "@mui/base": "file:../../packages/mui-base/build",
+ "@mui/material": "file:../../packages/mui-material/build",
+ "@mui/utils": "file:../../packages/mui-utils/build",
+ "@mui/zero-runtime": "file:../../packages/zero-runtime/build",
+ "next": "13.4.19",
+ "react": "18.2.0",
+ "react-dom": "18.2.0"
+ },
+ "devDependencies": {
+ "@mui/zero-tag-processor": "file:../../packages/zero-tag-processor/build",
+ "@mui/zero-next-plugin": "file:../../packages/zero-next-plugin/build",
+ "@types/node": "20.5.7",
+ "@types/react": "18.2.21",
+ "@types/react-dom": "18.2.7",
+ "typescript": "5.1.6"
+ },
+ "resolutions": {
+ "@mui/zero-tag-processor": "file:../../packages/zero-tag-processor/build"
+ }
+}
diff --git a/apps/zero-runtime-next-app/public/next.svg b/apps/zero-runtime-next-app/public/next.svg
new file mode 100644
index 00000000000000..5174b28c565c28
--- /dev/null
+++ b/apps/zero-runtime-next-app/public/next.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/zero-runtime-next-app/public/vercel.svg b/apps/zero-runtime-next-app/public/vercel.svg
new file mode 100644
index 00000000000000..d2f84222734f27
--- /dev/null
+++ b/apps/zero-runtime-next-app/public/vercel.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/zero-runtime-next-app/src/app/favicon.ico b/apps/zero-runtime-next-app/src/app/favicon.ico
new file mode 100644
index 00000000000000..718d6fea4835ec
Binary files /dev/null and b/apps/zero-runtime-next-app/src/app/favicon.ico differ
diff --git a/apps/zero-runtime-next-app/src/app/globals.css b/apps/zero-runtime-next-app/src/app/globals.css
new file mode 100644
index 00000000000000..60ab0f7768c88c
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/app/globals.css
@@ -0,0 +1,102 @@
+@import '~@mui/zero-runtime/styles.css';
+
+:root {
+ --max-width: 1100px;
+ --border-radius: 12px;
+ --font-mono: ui-monospace, Menlo, Monaco, 'Cascadia Mono', 'Segoe UI Mono', 'Roboto Mono',
+ 'Oxygen Mono', 'Ubuntu Monospace', 'Source Code Pro', 'Fira Mono', 'Droid Sans Mono',
+ 'Courier New', monospace;
+
+ --foreground-rgb: 0, 0, 0;
+ --background-start-rgb: 214, 219, 220;
+ --background-end-rgb: 255, 255, 255;
+
+ --primary-glow: conic-gradient(
+ from 180deg at 50% 50%,
+ #16abff33 0deg,
+ #0885ff33 55deg,
+ #54d6ff33 120deg,
+ #0071ff33 160deg,
+ transparent 360deg
+ );
+ --secondary-glow: radial-gradient(rgba(255, 255, 255, 1), rgba(255, 255, 255, 0));
+
+ --tile-start-rgb: 239, 245, 249;
+ --tile-end-rgb: 228, 232, 233;
+ --tile-border: conic-gradient(
+ #00000080,
+ #00000040,
+ #00000030,
+ #00000020,
+ #00000010,
+ #00000010,
+ #00000080
+ );
+
+ --callout-rgb: 238, 240, 241;
+ --callout-border-rgb: 172, 175, 176;
+ --card-rgb: 180, 185, 188;
+ --card-border-rgb: 131, 134, 135;
+}
+
+@media (prefers-color-scheme: dark) {
+ :root {
+ --foreground-rgb: 255, 255, 255;
+ --background-start-rgb: 0, 0, 0;
+ --background-end-rgb: 0, 0, 0;
+
+ --primary-glow: radial-gradient(rgba(1, 65, 255, 0.4), rgba(1, 65, 255, 0));
+ --secondary-glow: linear-gradient(
+ to bottom right,
+ rgba(1, 65, 255, 0),
+ rgba(1, 65, 255, 0),
+ rgba(1, 65, 255, 0.3)
+ );
+
+ --tile-start-rgb: 2, 13, 46;
+ --tile-end-rgb: 2, 5, 19;
+ --tile-border: conic-gradient(
+ #ffffff80,
+ #ffffff40,
+ #ffffff30,
+ #ffffff20,
+ #ffffff10,
+ #ffffff10,
+ #ffffff80
+ );
+
+ --callout-rgb: 20, 20, 20;
+ --callout-border-rgb: 108, 108, 108;
+ --card-rgb: 100, 100, 100;
+ --card-border-rgb: 200, 200, 200;
+ }
+}
+
+* {
+ box-sizing: border-box;
+ padding: 0;
+ margin: 0;
+}
+
+html,
+body {
+ max-width: 100vw;
+ overflow-x: hidden;
+}
+
+body {
+ color: rgb(var(--foreground-rgb));
+ background: linear-gradient(to bottom, transparent, rgb(var(--background-end-rgb)))
+ rgb(var(--background-start-rgb));
+}
+
+a {
+ color: inherit;
+ text-decoration: none;
+}
+
+@media (prefers-color-scheme: dark) {
+ html {
+ color-scheme: dark;
+ }
+}
diff --git a/apps/zero-runtime-next-app/src/app/layout.tsx b/apps/zero-runtime-next-app/src/app/layout.tsx
new file mode 100644
index 00000000000000..ab0434f3465b12
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/app/layout.tsx
@@ -0,0 +1,18 @@
+import './globals.css';
+import type { Metadata } from 'next';
+import { Inter } from 'next/font/google';
+
+const inter = Inter({ subsets: ['latin'] });
+
+export const metadata: Metadata = {
+ title: 'Create Next App',
+ description: 'Generated by create next app',
+};
+
+export default function RootLayout({ children }: { children: React.ReactNode }) {
+ return (
+
+
{children}
+
+ );
+}
diff --git a/apps/zero-runtime-next-app/src/app/page.module.css b/apps/zero-runtime-next-app/src/app/page.module.css
new file mode 100644
index 00000000000000..f77d83e753ddd5
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/app/page.module.css
@@ -0,0 +1,22 @@
+.logo {
+ position: relative;
+}
+
+@media (prefers-color-scheme: dark) {
+ .vercelLogo {
+ filter: invert(1);
+ }
+
+ .logo {
+ filter: invert(1) drop-shadow(0 0 0.3rem #ffffff70);
+ }
+}
+
+@keyframes rotate {
+ from {
+ transform: rotate(360deg);
+ }
+ to {
+ transform: rotate(0deg);
+ }
+}
diff --git a/apps/zero-runtime-next-app/src/app/page.tsx b/apps/zero-runtime-next-app/src/app/page.tsx
new file mode 100644
index 00000000000000..d02a3bac74e770
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/app/page.tsx
@@ -0,0 +1,241 @@
+import Image from 'next/image';
+import { styled } from '@mui/zero-runtime';
+import Link from 'next/link';
+import styles from './page.module.css';
+import Grid from '../components/Grid';
+
+export const Main = styled('main')({
+ display: 'flex',
+ flexDirection: 'column',
+ justifyContent: 'space-between',
+ alignItems: 'center',
+ padding: '6rem',
+ minHeight: '100vh',
+});
+
+const Description = styled.div(({ theme }: any) => ({
+ display: 'inherit',
+ justifyContent: 'inherit',
+ alignItems: 'inherit',
+ fontSize: '0.85rem',
+ maxWidth: 'var(--max-width)',
+ width: '100%',
+ zIndex: 2,
+ fontFamily: theme.typography.fontFamilyCode,
+ '& a': {
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ gap: '0.5rem',
+ },
+ '& p': {
+ position: 'relative',
+ margin: '0',
+ padding: '1rem',
+ backgroundColor: 'rgba(var(--callout-rgb), 0.5)',
+ border: '1px solid rgba(var(--callout-border-rgb), 0.3)',
+ borderRadius: 'var(--border-radius)',
+ },
+
+ [theme.breakpoints.down(700.05)]: {
+ fontSize: '0.8rem',
+ '& a': {
+ padding: '1rem',
+ },
+ '& p': {
+ alignItems: 'center',
+ inset: '0 0 auto',
+ padding: '2rem 1rem 1.4rem',
+ borderRadius: '0',
+ border: 'none',
+ borderBottom: '1px solid rgba(var(--callout-border-rgb), 0.25)',
+ background:
+ 'linear-gradient(to bottom,rgba(var(--background-start-rgb), 1),rgba(var(--callout-rgb), 0.5))',
+ backgroundClip: 'padding-box',
+ backdropFilter: 'blur(24px)',
+ },
+ '& div': {
+ alignItems: 'flex-end',
+ pointerEvents: 'none',
+ inset: 'auto 0 0',
+ padding: '2rem',
+ height: '200px',
+ background: 'linear-gradient(to bottom,transparent 0%,rgb(var(--background-end-rgb)) 40%)',
+ zIndex: 1,
+ },
+ '& p, & div': {
+ display: 'flex',
+ justifyContent: 'center',
+ position: 'fixed',
+ width: '100%',
+ },
+ },
+}));
+
+const Code = styled('code')(({ theme }: any) => ({
+ fontWeight: 700,
+ fontFamily: theme.typography.fontFamilyCode,
+}));
+
+const Card = styled('a')(({ theme }: any) => ({
+ padding: '1rem 1.2rem',
+ borderRadius: 'var(--border-radius)',
+ background: 'rgba(var(--card-rgb), 0)',
+ border: '1px solid rgba(var(--card-border-rgb), 0)',
+ transition: 'background 200ms, border 200ms',
+
+ '& span': {
+ display: 'inline-block',
+ transition: 'transform 200ms',
+ },
+
+ '& h2': {
+ fontWeight: 600,
+ marginBottom: '0.7rem',
+ },
+
+ '& p': {
+ margin: '0',
+ opacity: 0.6,
+ fontSize: '0.9rem',
+ lineHeight: 1.5,
+ maxWidth: '30ch',
+ },
+ '@media (hover: hover) and (pointer: fine)': {
+ '&:hover': {
+ background: 'rgba(var(--card-rgb), 0.1)',
+ border: '1px solid rgba(var(--card-border-rgb), 0.15)',
+ },
+ '&:hover span': {
+ transform: 'translateX(4px)',
+ },
+ },
+
+ '@media (prefers-reduced-motion)': {
+ '&:hover span': {
+ transform: 'none',
+ },
+ },
+
+ [theme.breakpoints.down(700.05)]: {
+ padding: '1rem 2.5rem',
+
+ '& h2': {
+ marginBottom: '0.5rem',
+ },
+ },
+}));
+
+const Center = styled('div')(() => ({
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ position: 'relative',
+ padding: '4rem 0',
+ '&::before': {
+ background: 'var(--secondary-glow)',
+ borderRadius: '50%',
+ width: '480px',
+ height: '360px',
+ marginLeft: '-400px',
+ },
+ '&::after': {
+ background: 'var(--primary-glow)',
+ width: '240px',
+ height: '180px',
+ zIndex: -1,
+ },
+ '&::before,&::after': {
+ content: "''",
+ left: '50%',
+ position: 'absolute',
+ filter: 'blur(45px)',
+ transform: 'translateZ(0)',
+ },
+ '@media (max-width: 700px)': {
+ padding: '8rem 0 6rem',
+ '&::before': { transform: 'none', height: '300px' },
+ },
+}));
+
+export default function Home() {
+ return (
+
+
+
+ Get started by editing
+ src/app/page.tsx
+
+
+
+
+
+
+
+
+
+
+
+ Docs ->
+
+ Find in-depth information about Next.js features and API.
+
+
+
+
+ Learn ->
+
+ Learn about Next.js in an interactive course with quizzes!
+
+
+
+
+ Templates ->
+
+ Explore the Next.js 13 playground.
+
+
+
+
+ Checkout Slider ->
+
+
+
+
+ );
+}
diff --git a/apps/zero-runtime-next-app/src/app/slider/page.tsx b/apps/zero-runtime-next-app/src/app/slider/page.tsx
new file mode 100644
index 00000000000000..9b6f7b8903e14c
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/app/slider/page.tsx
@@ -0,0 +1,17 @@
+import { styled } from '@mui/zero-runtime';
+import { Main as BaseMain } from '../page';
+import SliderWrapper from '../../components/SliderWrapper';
+
+const Main = styled(BaseMain)({
+ padding: '1rem',
+});
+
+export default function Slider() {
+ return (
+
+
+
+
+
+ );
+}
diff --git a/apps/zero-runtime-next-app/src/components/Grid.tsx b/apps/zero-runtime-next-app/src/components/Grid.tsx
new file mode 100644
index 00000000000000..9df72c452da4c2
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/components/Grid.tsx
@@ -0,0 +1,27 @@
+import { styled } from '@mui/zero-runtime';
+
+const Grid = styled('div')(({ theme }: any) => ({
+ display: 'grid',
+ gridTemplateColumns: 'repeat(4, minmax(25%, auto))',
+ maxWidth: '100%',
+ width: 'var(--max-width)',
+ [theme.breakpoints.down(700.05)]: {
+ gridTemplateColumns: '1fr',
+ marginBottom: '120px',
+ maxWidth: '320px',
+ textAlign: 'center',
+ },
+ [theme.breakpoints.between(701, 1120.05)]: {
+ gridTemplateColumns: 'repeat(2, 50%)',
+ },
+}));
+
+export const HalfWidth = styled.div({
+ marginLeft: 20,
+ width: '50%',
+ maxHeight: 100,
+ padding: 20,
+ border: '1px solid #ccc',
+});
+
+export default Grid;
diff --git a/apps/zero-runtime-next-app/src/components/Slider/ZeroSlider.jsx b/apps/zero-runtime-next-app/src/components/Slider/ZeroSlider.jsx
new file mode 100644
index 00000000000000..4006d8750cf85d
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/components/Slider/ZeroSlider.jsx
@@ -0,0 +1,934 @@
+'use client';
+/* eslint-disable react/prop-types */
+import * as React from 'react';
+import clsx from 'clsx';
+import { isHostComponent, useSlotProps } from '@mui/base/utils';
+import { unstable_composeClasses as composeClasses } from '@mui/utils';
+import { useSlider, valueToPercent } from '@mui/base/useSlider';
+import { styled } from '@mui/zero-runtime';
+// eslint-disable-next-line no-restricted-imports
+import { slotShouldForwardProp } from '@mui/material/styles/styled';
+import { capitalize } from '@mui/material/utils';
+import { sliderClasses, getSliderUtilityClass } from '@mui/material/Slider';
+// eslint-disable-next-line no-restricted-imports
+import SliderValueLabel from '@mui/material/Slider/SliderValueLabel';
+import { alpha, lighten, darken } from '../utils/colorManipulator';
+
+const shouldSpreadAdditionalProps = (Slot) => {
+ return !Slot || !isHostComponent(Slot);
+};
+
+function Identity(x) {
+ return x;
+}
+
+const SliderRoot = styled('span', {
+ name: 'MuiSlider',
+ slot: 'Root',
+ overridesResolver: (props, styles) => {
+ const { ownerState } = props;
+
+ return [
+ styles.root,
+ styles[`color${capitalize(ownerState.color)}`],
+ ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`],
+ ownerState.marked && styles.marked,
+ ownerState.orientation === 'vertical' && styles.vertical,
+ ownerState.track === 'inverted' && styles.trackInverted,
+ ownerState.track === false && styles.trackFalse,
+ ];
+ },
+})(({ theme }) => ({
+ borderRadius: '12px',
+ boxSizing: 'content-box',
+ display: 'inline-block',
+ position: 'relative',
+ cursor: 'pointer',
+ touchAction: 'none',
+ WebkitTapHighlightColor: 'transparent',
+ '@media print': {
+ printColorAdjust: 'exact',
+ },
+ [`&.${sliderClasses.disabled}`]: {
+ pointerEvents: 'none',
+ cursor: 'default',
+ color: theme.palette.grey[400],
+ },
+ [`&.${sliderClasses.dragging}`]: {
+ [`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]: {
+ transition: 'none',
+ },
+ },
+ variants: [
+ {
+ props: {
+ color: 'primary',
+ },
+ style: {
+ color: theme.palette.primary.main,
+ },
+ },
+ {
+ props: {
+ color: 'secondary',
+ },
+ style: {
+ color: theme.palette.secondary.main,
+ },
+ },
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ height: 4,
+ width: '100%',
+ padding: '13px 0',
+ // The primary input mechanism of the device includes a pointing device of limited accuracy.
+ '@media (pointer: coarse)': {
+ // Reach 42px touch target, about ~8mm on screen.
+ padding: '20px 0',
+ },
+ },
+ },
+ {
+ props: {
+ orientation: 'horizontal',
+ size: 'small',
+ },
+ style: {
+ height: 2,
+ },
+ },
+ {
+ props: {
+ orientation: 'horizontal',
+ marked: true,
+ },
+ style: {
+ marginBottom: 20,
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ height: '100%',
+ width: 4,
+ padding: '0 13px',
+ // The primary input mechanism of the device includes a pointing device of limited accuracy.
+ '@media (pointer: coarse)': {
+ // Reach 42px touch target, about ~8mm on screen.
+ padding: '0 20px',
+ },
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ size: 'small',
+ },
+ style: {
+ width: 2,
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ marked: true,
+ },
+ style: {
+ marginRight: 44,
+ },
+ },
+ ],
+}));
+
+export { SliderRoot };
+
+const SliderRail = styled('span', {
+ name: 'MuiSlider',
+ slot: 'Rail',
+ overridesResolver: (props, styles) => styles.rail,
+})({
+ display: 'block',
+ position: 'absolute',
+ borderRadius: 'inherit',
+ backgroundColor: 'currentColor',
+ opacity: 0.38,
+ variants: [
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ width: '100%',
+ height: 'inherit',
+ top: '50%',
+ transform: 'translateY(-50%)',
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ height: '100%',
+ width: 'inherit',
+ left: '50%',
+ transform: 'translateX(-50%)',
+ },
+ },
+ {
+ props: {
+ track: 'inverted',
+ },
+ style: {
+ opacity: 1,
+ },
+ },
+ ],
+});
+
+export { SliderRail };
+
+const SliderTrack = styled('span', {
+ name: 'MuiSlider',
+ slot: 'Track',
+ overridesResolver: (props, styles) => styles.track,
+})(({ theme }) => {
+ const lightPrimaryColor = lighten(theme.palette.primary.main, 0.62);
+ const lightSecondaryColor = lighten(theme.palette.secondary.main, 0.62);
+ const darkPrimaryColor = darken(theme.palette.primary.main, 0.5);
+ const darkSecondaryColor = darken(theme.palette.secondary.main, 0.5);
+
+ return {
+ display: 'block',
+ position: 'absolute',
+ borderRadius: 'inherit',
+ border: '1px solid currentColor',
+ backgroundColor: 'currentColor',
+ transition: theme.transitions.create(['left', 'width', 'bottom', 'height'], {
+ duration: theme.transitions.duration.shortest,
+ }),
+ variants: [
+ {
+ props: {
+ color: 'primary',
+ },
+ style: {
+ '--slider-track-color': lightPrimaryColor,
+ ...theme.applyDarkStyles({
+ '--slider-track-color': darkPrimaryColor,
+ }),
+ },
+ },
+ {
+ props: {
+ color: 'secondary',
+ },
+ style: {
+ '--slider-track-color': lightSecondaryColor,
+ ...theme.applyDarkStyles({
+ '--slider-track-color': darkSecondaryColor,
+ }),
+ },
+ },
+ {
+ props: {
+ size: 'small',
+ },
+ style: {
+ border: 'none',
+ },
+ },
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ height: 'inherit',
+ top: '50%',
+ transform: 'translateY(-50%)',
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ width: 'inherit',
+ left: '50%',
+ transform: 'translateX(-50%)',
+ },
+ },
+ {
+ props: {
+ track: false,
+ },
+ style: {
+ display: 'none',
+ },
+ },
+ {
+ props: {
+ track: 'inverted',
+ color: 'primary',
+ },
+ style: {
+ backgroundColor: theme.vars ? theme.vars.palette.Slider.primaryTrack : undefined,
+ borderColor: theme.vars ? theme.vars.palette.Slider.primaryTrack : undefined,
+ },
+ },
+ {
+ props: {
+ track: 'inverted',
+ color: 'secondary',
+ },
+ style: {
+ backgroundColor: theme.vars ? theme.vars.palette.Slider.secondaryTrack : undefined,
+ borderColor: theme.vars ? theme.vars.palette.Slider.secondaryTrack : undefined,
+ },
+ },
+ ],
+ };
+});
+
+export { SliderTrack };
+
+const SliderThumb = styled('span', {
+ name: 'MuiSlider',
+ slot: 'Thumb',
+ overridesResolver: (props, styles) => {
+ const { ownerState } = props;
+ return [
+ styles.thumb,
+ styles[`thumbColor${capitalize(ownerState.color)}`],
+ ownerState.size !== 'medium' && styles[`thumbSize${capitalize(ownerState.size)}`],
+ ];
+ },
+})(({ theme }) => ({
+ position: 'absolute',
+ width: 20,
+ height: 20,
+ boxSizing: 'border-box',
+ borderRadius: '50%',
+ outline: 0,
+ backgroundColor: 'currentColor',
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ transition: theme.transitions.create(['box-shadow', 'left', 'bottom'], {
+ duration: theme.transitions.duration.shortest,
+ }),
+ '&:before': {
+ position: 'absolute',
+ content: '""',
+ borderRadius: 'inherit',
+ width: '100%',
+ height: '100%',
+ boxShadow: (theme.vars || theme).shadows[2],
+ },
+ '&::after': {
+ position: 'absolute',
+ content: '""',
+ borderRadius: '50%',
+ // 42px is the hit target
+ width: 42,
+ height: 42,
+ top: '50%',
+ left: '50%',
+ transform: 'translate(-50%, -50%)',
+ },
+ [`&:hover, &.${sliderClasses.focusVisible}`]: {
+ boxShadow: `0px 0px 0px 8px var(--slider-thumb-shadow-color)`,
+ '@media (hover: none)': {
+ boxShadow: 'none',
+ },
+ },
+ [`&.${sliderClasses.active}`]: {
+ boxShadow: `0px 0px 0px 14px var(--slider-thumb-shadow-color)`,
+ },
+ [`&.${sliderClasses.disabled}`]: {
+ '&:hover': {
+ boxShadow: 'none',
+ },
+ },
+ variants: [
+ {
+ props: {
+ color: 'primary',
+ },
+ style: {
+ '--slider-thumb-shadow-color': theme.vars
+ ? `rgba(${theme.vars.palette.primary.mainChannel} / 0.16)`
+ : alpha(theme.palette.primary.main, 0.16),
+ },
+ },
+ {
+ props: {
+ color: 'secondary',
+ },
+ style: {
+ '--slider-thumb-shadow-color': theme.vars
+ ? `rgba(${theme.vars.palette.secondary.mainChannel} / 0.16)`
+ : alpha(theme.palette.secondary.main, 0.16),
+ },
+ },
+ {
+ props: {
+ size: 'small',
+ },
+ style: {
+ width: 12,
+ height: 12,
+ '&:before': {
+ boxShadow: 'none',
+ },
+ },
+ },
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ top: '50%',
+ transform: 'translate(-50%, -50%)',
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ left: '50%',
+ transform: 'translate(-50%, 50%)',
+ },
+ },
+ ],
+}));
+
+export { SliderThumb };
+
+const StyledSliderValueLabel = styled(SliderValueLabel, {
+ name: 'MuiSlider',
+ slot: 'ValueLabel',
+ overridesResolver: (props, styles) => styles.valueLabel,
+})(({ theme }) => ({
+ zIndex: 1,
+ whiteSpace: 'nowrap',
+ ...theme.typography.body2,
+ fontWeight: 500,
+ transition: theme.transitions.create(['transform'], {
+ duration: theme.transitions.duration.shortest,
+ }),
+ position: 'absolute',
+ backgroundColor: (theme.vars || theme).palette.grey[600],
+ borderRadius: '2px',
+ color: (theme.vars || theme).palette.common.white,
+ display: 'flex',
+ alignItems: 'center',
+ justifyContent: 'center',
+ padding: '0.25rem 0.75rem',
+ variants: [
+ {
+ props: {
+ size: 'small',
+ },
+ style: {
+ fontSize: theme.typography.pxToRem(12),
+ padding: '0.25rem 0.5rem',
+ },
+ },
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ top: '-10px',
+ transformOrigin: 'bottom center',
+ transform: 'translateY(-100%) scale(0)',
+ '&:before': {
+ position: 'absolute',
+ content: '""',
+ width: 8,
+ height: 8,
+ transform: 'translate(-50%, 50%) rotate(45deg)',
+ backgroundColor: 'inherit',
+ bottom: 0,
+ left: '50%',
+ },
+ [`&.${sliderClasses.valueLabelOpen}`]: {
+ transform: 'translateY(-100%) scale(1)',
+ },
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ top: '50%',
+ right: '30px',
+ transform: 'translateY(-50%) scale(0)',
+ transformOrigin: 'right center',
+ '&:before': {
+ position: 'absolute',
+ content: '""',
+ width: 8,
+ height: 8,
+ transform: 'translate(-50%, -50%) rotate(45deg)',
+ backgroundColor: 'inherit',
+ right: -8,
+ top: '50%',
+ },
+ [`&.${sliderClasses.valueLabelOpen}`]: {
+ transform: 'translateY(-50%) scale(1)',
+ },
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ size: 'small',
+ },
+ style: {
+ right: '20px',
+ },
+ },
+ ],
+}));
+
+export { StyledSliderValueLabel as SliderValueLabel };
+
+const SliderMark = styled('span', {
+ name: 'MuiSlider',
+ slot: 'Mark',
+ shouldForwardProp: (prop) => slotShouldForwardProp(prop) && prop !== 'markActive',
+ overridesResolver: (props, styles) => {
+ const { markActive } = props;
+
+ return [styles.mark, markActive && styles.markActive];
+ },
+})(({ theme }) => ({
+ position: 'absolute',
+ width: 2,
+ height: 2,
+ borderRadius: 1,
+ backgroundColor: 'currentColor',
+ variants: [
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ top: '50%',
+ transform: 'translate(-1px, -50%)',
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ left: '50%',
+ transform: 'translate(-50%, 1px)',
+ },
+ },
+ {
+ props: {
+ markActive: true,
+ },
+ style: {
+ backgroundColor: (theme.vars || theme).palette.background.paper,
+ opacity: 0.8,
+ },
+ },
+ ],
+}));
+
+export { SliderMark };
+
+const SliderMarkLabel = styled('span', {
+ name: 'MuiSlider',
+ slot: 'MarkLabel',
+ shouldForwardProp: (prop) => slotShouldForwardProp(prop) && prop !== 'markLabelActive',
+ overridesResolver: (props, styles) => styles.markLabel,
+})(({ theme }) => ({
+ ...theme.typography.body2,
+ color: (theme.vars || theme).palette.text.secondary,
+ position: 'absolute',
+ whiteSpace: 'nowrap',
+ variants: [
+ {
+ props: {
+ orientation: 'horizontal',
+ },
+ style: {
+ top: 30,
+ transform: 'translateX(-50%)',
+ '@media (pointer: coarse)': {
+ top: 40,
+ },
+ },
+ },
+ {
+ props: {
+ orientation: 'vertical',
+ },
+ style: {
+ left: 36,
+ transform: 'translateY(50%)',
+ '@media (pointer: coarse)': {
+ left: 44,
+ },
+ },
+ },
+ {
+ props: {
+ markLabelActive: true,
+ },
+ style: {
+ color: (theme.vars || theme).palette.text.primary,
+ },
+ },
+ ],
+}));
+
+export { SliderMarkLabel };
+
+const useUtilityClasses = (ownerState) => {
+ const { disabled, dragging, marked, orientation, track, classes, color, size } = ownerState;
+
+ const slots = {
+ root: [
+ 'root',
+ disabled && 'disabled',
+ dragging && 'dragging',
+ marked && 'marked',
+ orientation === 'vertical' && 'vertical',
+ track === 'inverted' && 'trackInverted',
+ track === false && 'trackFalse',
+ color && `color${capitalize(color)}`,
+ size && `size${capitalize(size)}`,
+ ],
+ rail: ['rail'],
+ track: ['track'],
+ mark: ['mark'],
+ markActive: ['markActive'],
+ markLabel: ['markLabel'],
+ markLabelActive: ['markLabelActive'],
+ valueLabel: ['valueLabel'],
+ thumb: [
+ 'thumb',
+ disabled && 'disabled',
+ size && `thumbSize${capitalize(size)}`,
+ color && `thumbColor${capitalize(color)}`,
+ ],
+ active: ['active'],
+ disabled: ['disabled'],
+ focusVisible: ['focusVisible'],
+ };
+
+ return composeClasses(slots, getSliderUtilityClass, classes);
+};
+
+const Forward = ({ children }) => children;
+
+const Slider = React.forwardRef(function Slider(props, ref) {
+ // @TODO - Figure out how to persist this information
+ const isRtl = false; // theme.direction === 'rtl';
+
+ const {
+ 'aria-label': ariaLabel,
+ 'aria-valuetext': ariaValuetext,
+ 'aria-labelledby': ariaLabelledby,
+ component = 'span',
+ components = {},
+ componentsProps = {},
+ color = 'primary',
+ classes: classesProp,
+ className,
+ disableSwap = false,
+ disabled = false,
+ getAriaLabel,
+ getAriaValueText,
+ marks: marksProp = false,
+ max = 100,
+ min = 0,
+ name,
+ onChange,
+ onChangeCommitted,
+ orientation = 'horizontal',
+ size = 'medium',
+ step = 1,
+ scale = Identity,
+ slotProps,
+ slots,
+ tabIndex,
+ track = 'normal',
+ value: valueProp,
+ valueLabelDisplay = 'off',
+ valueLabelFormat = Identity,
+ ...other
+ } = props;
+
+ const ownerState = {
+ ...props,
+ isRtl,
+ max,
+ min,
+ classes: classesProp,
+ disabled,
+ disableSwap,
+ orientation,
+ marks: marksProp,
+ color,
+ size,
+ step,
+ scale,
+ track,
+ valueLabelDisplay,
+ valueLabelFormat,
+ };
+
+ const {
+ axisProps,
+ getRootProps,
+ getHiddenInputProps,
+ getThumbProps,
+ open,
+ active,
+ axis,
+ focusedThumbIndex,
+ range,
+ dragging,
+ marks,
+ values,
+ trackOffset,
+ trackLeap,
+ getThumbStyle,
+ } = useSlider({ ...ownerState, rootRef: ref });
+
+ ownerState.marked = marks.length > 0 && marks.some((mark) => mark.label);
+ ownerState.dragging = dragging;
+ ownerState.focusedThumbIndex = focusedThumbIndex;
+
+ const classes = useUtilityClasses(ownerState);
+
+ // support both `slots` and `components` for backward compatibility
+ const RootSlot = slots?.root ?? components.Root ?? SliderRoot;
+ const RailSlot = slots?.rail ?? components.Rail ?? SliderRail;
+ const TrackSlot = slots?.track ?? components.Track ?? SliderTrack;
+ const ThumbSlot = slots?.thumb ?? components.Thumb ?? SliderThumb;
+ const ValueLabelSlot = slots?.valueLabel ?? components.ValueLabel ?? StyledSliderValueLabel;
+ const MarkSlot = slots?.mark ?? components.Mark ?? SliderMark;
+ const MarkLabelSlot = slots?.markLabel ?? components.MarkLabel ?? SliderMarkLabel;
+ const InputSlot = slots?.input ?? components.Input ?? 'input';
+
+ const rootSlotProps = slotProps?.root ?? componentsProps.root;
+ const railSlotProps = slotProps?.rail ?? componentsProps.rail;
+ const trackSlotProps = slotProps?.track ?? componentsProps.track;
+ const thumbSlotProps = slotProps?.thumb ?? componentsProps.thumb;
+ const valueLabelSlotProps = slotProps?.valueLabel ?? componentsProps.valueLabel;
+ const markSlotProps = slotProps?.mark ?? componentsProps.mark;
+ const markLabelSlotProps = slotProps?.markLabel ?? componentsProps.markLabel;
+ const inputSlotProps = slotProps?.input ?? componentsProps.input;
+
+ const rootProps = useSlotProps({
+ elementType: RootSlot,
+ getSlotProps: getRootProps,
+ externalSlotProps: rootSlotProps,
+ externalForwardedProps: other,
+ additionalProps: {
+ ...(shouldSpreadAdditionalProps(RootSlot) && {
+ as: component,
+ }),
+ },
+ ownerState: {
+ ...ownerState,
+ ...rootSlotProps?.ownerState,
+ },
+ className: [classes.root, className],
+ });
+
+ const railProps = useSlotProps({
+ elementType: RailSlot,
+ externalSlotProps: railSlotProps,
+ ownerState,
+ className: classes.rail,
+ });
+
+ const trackProps = useSlotProps({
+ elementType: TrackSlot,
+ externalSlotProps: trackSlotProps,
+ additionalProps: {
+ style: {
+ ...axisProps[axis].offset(trackOffset),
+ ...axisProps[axis].leap(trackLeap),
+ },
+ },
+ ownerState: {
+ ...ownerState,
+ ...trackSlotProps?.ownerState,
+ },
+ className: classes.track,
+ });
+
+ const thumbProps = useSlotProps({
+ elementType: ThumbSlot,
+ getSlotProps: getThumbProps,
+ externalSlotProps: thumbSlotProps,
+ ownerState: {
+ ...ownerState,
+ ...thumbSlotProps?.ownerState,
+ },
+ className: classes.thumb,
+ });
+
+ const valueLabelProps = useSlotProps({
+ elementType: ValueLabelSlot,
+ externalSlotProps: valueLabelSlotProps,
+ ownerState: {
+ ...ownerState,
+ ...valueLabelSlotProps?.ownerState,
+ },
+ className: classes.valueLabel,
+ });
+
+ const markProps = useSlotProps({
+ elementType: MarkSlot,
+ externalSlotProps: markSlotProps,
+ ownerState,
+ className: classes.mark,
+ });
+
+ const markLabelProps = useSlotProps({
+ elementType: MarkLabelSlot,
+ externalSlotProps: markLabelSlotProps,
+ ownerState,
+ className: classes.markLabel,
+ });
+
+ const inputSliderProps = useSlotProps({
+ elementType: InputSlot,
+ getSlotProps: getHiddenInputProps,
+ externalSlotProps: inputSlotProps,
+ ownerState,
+ });
+
+ return (
+ // eslint-disable-next-line react/jsx-filename-extension
+
+
+
+ {marks
+ .filter((mark) => mark.value >= min && mark.value <= max)
+ .map((mark, index) => {
+ const percent = valueToPercent(mark.value, min, max);
+ const style = axisProps[axis].offset(percent);
+
+ let markActive;
+ if (track === false) {
+ markActive = values.indexOf(mark.value) !== -1;
+ } else {
+ markActive =
+ (track === 'normal' &&
+ (range
+ ? mark.value >= values[0] && mark.value <= values[values.length - 1]
+ : mark.value <= values[0])) ||
+ (track === 'inverted' &&
+ (range
+ ? mark.value <= values[0] || mark.value >= values[values.length - 1]
+ : mark.value >= values[0]));
+ }
+
+ return (
+
+
+ {mark.label != null ? (
+
+ {mark.label}
+
+ ) : null}
+
+ );
+ })}
+ {values.map((value, index) => {
+ const percent = valueToPercent(value, min, max);
+ const style = axisProps[axis].offset(percent);
+
+ const ValueLabelComponent = valueLabelDisplay === 'off' ? Forward : ValueLabelSlot;
+
+ return (
+ /* TODO v6: Change component structure. It will help in avoiding the complicated React.cloneElement API added in SliderValueLabel component. Should be: Thumb -> Input, ValueLabel. Follow Joy UI's Slider structure. */
+
+
+
+
+
+ );
+ })}
+
+ );
+});
+
+export default Slider;
diff --git a/apps/zero-runtime-next-app/src/components/SliderWrapper.tsx b/apps/zero-runtime-next-app/src/components/SliderWrapper.tsx
new file mode 100644
index 00000000000000..ec7e0d5f8fe641
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/components/SliderWrapper.tsx
@@ -0,0 +1,136 @@
+'use client';
+import * as React from 'react';
+import { styled } from '@mui/zero-runtime';
+import Slider from './Slider/ZeroSlider';
+import { HalfWidth } from './Grid';
+
+const Button = styled('button', {
+ name: 'MuiButton',
+ slot: 'Root',
+})(
+ 'color:red',
+ ({ theme }: any) => ({
+ fontFamily: 'sans-serif',
+ backgroundColor: [theme.palette.primary.main, 'text.primary', 'background.paper'],
+ }),
+ {
+ fontFamily: 'sans-serif',
+ // p: (props: any) => (props.isRed ? 10 : 20),
+ color: (props: any) => (props.isRed ? 'primary.main' : 'secondary.main'),
+ },
+);
+
+const ShowCaseDiv = styled('div')({
+ [`.${Button}`]: {
+ color: '#f94564',
+ },
+});
+
+export default function SliderWrapper() {
+ const [count, setCount] = React.useState(0);
+ const [value, setValue] = React.useState(50);
+ const [isColorPrimary, setIsColorPrimary] = React.useState(true);
+ const [size, setSize] = React.useState('medium');
+ const [showMarks, setShowMarks] = React.useState(true);
+ const [isTrackInverted, setIsTrackInverted] = React.useState(false);
+ const [disabled, setDisabled] = React.useState(false);
+ const [isHorizontal, setIsHorizontal] = React.useState(true);
+
+ return (
+
+ setCount(count + 1)}>
+ Click Count {count}
+
+
+ This button's text color has been overridden.
+
+
+
+ ({
+ // color: theme.palette.primary.main,
+ // fontSize: isRed ? 'h1.fontSize' : 'h2.fontSize',
+ // ':hover': {
+ // backgroundColor: ['primary.dark', 'secondary.main'],
+ // color: {
+ // sm: 'primary.dark',
+ // md: 'secondary.main',
+ // },
+ // },
+ // })}
+ >
+ setValue(val as number)}
+ />
+
+
+
+ );
+}
diff --git a/apps/zero-runtime-next-app/src/components/utils/colorManipulator.js b/apps/zero-runtime-next-app/src/components/utils/colorManipulator.js
new file mode 100644
index 00000000000000..aaea25ca505c0e
--- /dev/null
+++ b/apps/zero-runtime-next-app/src/components/utils/colorManipulator.js
@@ -0,0 +1,351 @@
+/**
+ * Returns a number whose value is limited to the given range.
+ * @param {number} value The value to be clamped
+ * @param {number} min The lower boundary of the output range
+ * @param {number} max The upper boundary of the output range
+ * @returns {number} A number in the range [min, max]
+ */
+function clamp(value, min = 0, max = 1) {
+ if (process.env.NODE_ENV !== 'production') {
+ if (value < min || value > max) {
+ console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);
+ }
+ }
+
+ return Math.min(Math.max(min, value), max);
+}
+
+/**
+ * Converts a color from CSS hex format to CSS rgb format.
+ * @param {string} color - Hex color, i.e. #nnn or #nnnnnn
+ * @returns {string} A CSS rgb color string
+ */
+export function hexToRgb(color) {
+ color = color.slice(1);
+
+ const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');
+ let colors = color.match(re);
+
+ if (colors && colors[0].length === 1) {
+ colors = colors.map((n) => n + n);
+ }
+
+ return colors
+ ? `rgb${colors.length === 4 ? 'a' : ''}(${colors
+ .map((n, index) => {
+ return index < 3 ? parseInt(n, 16) : Math.round((parseInt(n, 16) / 255) * 1000) / 1000;
+ })
+ .join(', ')})`
+ : '';
+}
+
+function intToHex(int) {
+ const hex = int.toString(16);
+ return hex.length === 1 ? `0${hex}` : hex;
+}
+
+/**
+ * Returns an object with the type and values of a color.
+ *
+ * Note: Does not support rgb % values.
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @returns {object} - A MUI color object: {type: string, values: number[]}
+ */
+export function decomposeColor(color) {
+ // Idempotent
+ if (color.type) {
+ return color;
+ }
+
+ if (color.charAt(0) === '#') {
+ return decomposeColor(hexToRgb(color));
+ }
+
+ const marker = color.indexOf('(');
+ const type = color.substring(0, marker);
+
+ if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {
+ throw new Error(
+ 'MUI: Unsupported `%s` color.\n' +
+ 'The following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().',
+ color,
+ );
+ }
+
+ let values = color.substring(marker + 1, color.length - 1);
+ let colorSpace;
+
+ if (type === 'color') {
+ values = values.split(' ');
+ colorSpace = values.shift();
+ if (values.length === 4 && values[3].charAt(0) === '/') {
+ values[3] = values[3].slice(1);
+ }
+ if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {
+ throw new Error(
+ 'MUI: unsupported `%s` color space.\n' +
+ 'The following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.',
+ colorSpace,
+ );
+ }
+ } else {
+ values = values.split(',');
+ }
+ values = values.map((value) => parseFloat(value));
+
+ return { type, values, colorSpace };
+}
+
+/**
+ * Returns a channel created from the input color.
+ *
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @returns {string} - The channel for the color, that can be used in rgba or hsla colors
+ */
+export const colorChannel = (color) => {
+ const decomposedColor = decomposeColor(color);
+ return decomposedColor.values
+ .slice(0, 3)
+ .map((val, idx) => (decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val))
+ .join(' ');
+};
+// eslint-disable-next-line @typescript-eslint/naming-convention
+export const private_safeColorChannel = (color, warning) => {
+ try {
+ return colorChannel(color);
+ } catch (error) {
+ if (warning && process.env.NODE_ENV !== 'production') {
+ console.warn(warning);
+ }
+ return color;
+ }
+};
+
+/**
+ * Converts a color object with type and values to a string.
+ * @param {object} color - Decomposed color
+ * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'
+ * @param {array} color.values - [n,n,n] or [n,n,n,n]
+ * @returns {string} A CSS color string
+ */
+export function recomposeColor(color) {
+ const { type, colorSpace } = color;
+ let { values } = color;
+
+ if (type.indexOf('rgb') !== -1) {
+ // Only convert the first 3 values to int (i.e. not alpha)
+ values = values.map((n, i) => (i < 3 ? parseInt(n, 10) : n));
+ } else if (type.indexOf('hsl') !== -1) {
+ values[1] = `${values[1]}%`;
+ values[2] = `${values[2]}%`;
+ }
+ if (type.indexOf('color') !== -1) {
+ values = `${colorSpace} ${values.join(' ')}`;
+ } else {
+ values = `${values.join(', ')}`;
+ }
+
+ return `${type}(${values})`;
+}
+
+/**
+ * Converts a color from CSS rgb format to CSS hex format.
+ * @param {string} color - RGB color, i.e. rgb(n, n, n)
+ * @returns {string} A CSS rgb color string, i.e. #nnnnnn
+ */
+export function rgbToHex(color) {
+ // Idempotent
+ if (color.indexOf('#') === 0) {
+ return color;
+ }
+
+ const { values } = decomposeColor(color);
+ return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;
+}
+
+/**
+ * Converts a color from hsl format to rgb format.
+ * @param {string} color - HSL color values
+ * @returns {string} rgb color values
+ */
+export function hslToRgb(color) {
+ color = decomposeColor(color);
+ const { values } = color;
+ const h = values[0];
+ const s = values[1] / 100;
+ const l = values[2] / 100;
+ const a = s * Math.min(l, 1 - l);
+ const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
+
+ let type = 'rgb';
+ const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];
+
+ if (color.type === 'hsla') {
+ type += 'a';
+ rgb.push(values[3]);
+ }
+
+ return recomposeColor({ type, values: rgb });
+}
+/**
+ * The relative brightness of any point in a color space,
+ * normalized to 0 for darkest black and 1 for lightest white.
+ *
+ * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @returns {number} The relative brightness of the color in the range 0 - 1
+ */
+export function getLuminance(color) {
+ color = decomposeColor(color);
+
+ let rgb =
+ color.type === 'hsl' || color.type === 'hsla'
+ ? decomposeColor(hslToRgb(color)).values
+ : color.values;
+ rgb = rgb.map((val) => {
+ if (color.type !== 'color') {
+ val /= 255; // normalized
+ }
+ return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;
+ });
+
+ // Truncate at 3 digits
+ return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));
+}
+
+/**
+ * Calculates the contrast ratio between two colors.
+ *
+ * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
+ * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
+ * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()
+ * @returns {number} A contrast ratio value in the range 0 - 21.
+ */
+export function getContrastRatio(foreground, background) {
+ const lumA = getLuminance(foreground);
+ const lumB = getLuminance(background);
+ return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);
+}
+
+/**
+ * Sets the absolute transparency of a color.
+ * Any existing alpha values are overwritten.
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @param {number} value - value to set the alpha channel to in the range 0 - 1
+ * @returns {string} A CSS color string. Hex input values are returned as rgb
+ */
+export function alpha(color, value) {
+ color = decomposeColor(color);
+ value = clamp(value);
+
+ if (color.type === 'rgb' || color.type === 'hsl') {
+ color.type += 'a';
+ }
+ if (color.type === 'color') {
+ color.values[3] = `/${value}`;
+ } else {
+ color.values[3] = value;
+ }
+
+ return recomposeColor(color);
+}
+// eslint-disable-next-line @typescript-eslint/naming-convention
+export function private_safeAlpha(color, value, warning) {
+ try {
+ return alpha(color, value);
+ } catch (error) {
+ if (warning && process.env.NODE_ENV !== 'production') {
+ console.warn(warning);
+ }
+ return color;
+ }
+}
+
+/**
+ * Darkens a color.
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @param {number} coefficient - multiplier in the range 0 - 1
+ * @returns {string} A CSS color string. Hex input values are returned as rgb
+ */
+export function darken(color, coefficient) {
+ color = decomposeColor(color);
+ coefficient = clamp(coefficient);
+
+ if (color.type.indexOf('hsl') !== -1) {
+ color.values[2] *= 1 - coefficient;
+ } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {
+ for (let i = 0; i < 3; i += 1) {
+ color.values[i] *= 1 - coefficient;
+ }
+ }
+ return recomposeColor(color);
+}
+// eslint-disable-next-line @typescript-eslint/naming-convention
+export function private_safeDarken(color, coefficient, warning) {
+ try {
+ return darken(color, coefficient);
+ } catch (error) {
+ if (warning && process.env.NODE_ENV !== 'production') {
+ console.warn(warning);
+ }
+ return color;
+ }
+}
+
+/**
+ * Lightens a color.
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @param {number} coefficient - multiplier in the range 0 - 1
+ * @returns {string} A CSS color string. Hex input values are returned as rgb
+ */
+export function lighten(color, coefficient) {
+ color = decomposeColor(color);
+ coefficient = clamp(coefficient);
+
+ if (color.type.indexOf('hsl') !== -1) {
+ color.values[2] += (100 - color.values[2]) * coefficient;
+ } else if (color.type.indexOf('rgb') !== -1) {
+ for (let i = 0; i < 3; i += 1) {
+ color.values[i] += (255 - color.values[i]) * coefficient;
+ }
+ } else if (color.type.indexOf('color') !== -1) {
+ for (let i = 0; i < 3; i += 1) {
+ color.values[i] += (1 - color.values[i]) * coefficient;
+ }
+ }
+
+ return recomposeColor(color);
+}
+// eslint-disable-next-line @typescript-eslint/naming-convention
+export function private_safeLighten(color, coefficient, warning) {
+ try {
+ return lighten(color, coefficient);
+ } catch (error) {
+ if (warning && process.env.NODE_ENV !== 'production') {
+ console.warn(warning);
+ }
+ return color;
+ }
+}
+
+/**
+ * Darken or lighten a color, depending on its luminance.
+ * Light colors are darkened, dark colors are lightened.
+ * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()
+ * @param {number} coefficient=0.15 - multiplier in the range 0 - 1
+ * @returns {string} A CSS color string. Hex input values are returned as rgb
+ */
+export function emphasize(color, coefficient = 0.15) {
+ return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);
+}
+// eslint-disable-next-line @typescript-eslint/naming-convention
+export function private_safeEmphasize(color, coefficient, warning) {
+ try {
+ return private_safeEmphasize(color, coefficient);
+ } catch (error) {
+ if (warning && process.env.NODE_ENV !== 'production') {
+ console.warn(warning);
+ }
+ return color;
+ }
+}
diff --git a/apps/zero-runtime-next-app/tsconfig.json b/apps/zero-runtime-next-app/tsconfig.json
new file mode 100644
index 00000000000000..e59724b283f9cb
--- /dev/null
+++ b/apps/zero-runtime-next-app/tsconfig.json
@@ -0,0 +1,27 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": ["dom", "dom.iterable", "esnext"],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "noEmit": true,
+ "esModuleInterop": true,
+ "module": "esnext",
+ "moduleResolution": "bundler",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "jsx": "preserve",
+ "incremental": true,
+ "plugins": [
+ {
+ "name": "next"
+ }
+ ],
+ "paths": {
+ "@/*": ["./src/*"]
+ }
+ },
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
+ "exclude": ["node_modules"]
+}
diff --git a/apps/zero-runtime-next-app/yarn.lock b/apps/zero-runtime-next-app/yarn.lock
new file mode 100644
index 00000000000000..658ef912922411
--- /dev/null
+++ b/apps/zero-runtime-next-app/yarn.lock
@@ -0,0 +1,2202 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@ampproject/remapping@^2.2.0":
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
+ integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13":
+ version "7.22.13"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
+ integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
+ dependencies:
+ "@babel/highlight" "^7.22.13"
+ chalk "^2.4.2"
+
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
+ integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
+
+"@babel/core@^7.22.17", "@babel/core@^7.22.9":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.17.tgz#2f9b0b395985967203514b24ee50f9fd0639c866"
+ integrity sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==
+ dependencies:
+ "@ampproject/remapping" "^2.2.0"
+ "@babel/code-frame" "^7.22.13"
+ "@babel/generator" "^7.22.15"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-module-transforms" "^7.22.17"
+ "@babel/helpers" "^7.22.15"
+ "@babel/parser" "^7.22.16"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.22.17"
+ "@babel/types" "^7.22.17"
+ convert-source-map "^1.7.0"
+ debug "^4.1.0"
+ gensync "^1.0.0-beta.2"
+ json5 "^2.2.3"
+ semver "^6.3.1"
+
+"@babel/generator@^7.22.15", "@babel/generator@^7.22.9":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339"
+ integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==
+ dependencies:
+ "@babel/types" "^7.22.15"
+ "@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
+ jsesc "^2.5.1"
+
+"@babel/helper-annotate-as-pure@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
+ integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956"
+ integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==
+ dependencies:
+ "@babel/types" "^7.22.15"
+
+"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52"
+ integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==
+ dependencies:
+ "@babel/compat-data" "^7.22.9"
+ "@babel/helper-validator-option" "^7.22.15"
+ browserslist "^4.21.9"
+ lru-cache "^5.1.1"
+ semver "^6.3.1"
+
+"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4"
+ integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ semver "^6.3.1"
+
+"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1"
+ integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ regexpu-core "^5.3.1"
+ semver "^6.3.1"
+
+"@babel/helper-define-polyfill-provider@^0.4.2":
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7"
+ integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.22.6"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ debug "^4.1.1"
+ lodash.debounce "^4.0.8"
+ resolve "^1.14.2"
+
+"@babel/helper-environment-visitor@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
+ integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
+
+"@babel/helper-function-name@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
+ integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
+ dependencies:
+ "@babel/template" "^7.22.5"
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-hoist-variables@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
+ integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz#b95a144896f6d491ca7863576f820f3628818621"
+ integrity sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==
+ dependencies:
+ "@babel/types" "^7.22.15"
+
+"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+ integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
+ dependencies:
+ "@babel/types" "^7.22.15"
+
+"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.17", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693"
+ integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-simple-access" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/helper-validator-identifier" "^7.22.15"
+
+"@babel/helper-optimise-call-expression@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e"
+ integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
+ integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
+
+"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz#dabaa50622b3b4670bd6546fc8db23eb12d89da0"
+ integrity sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-wrap-function" "^7.22.17"
+
+"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9":
+ version "7.22.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.9.tgz#cbdc27d6d8d18cd22c81ae4293765a5d9afd0779"
+ integrity sha512-LJIKvvpgPOPUThdYqcX6IXRuIcTkcAub0IaDRGCZH0p5GPUp7PhRU9QVgFcDDd51BaPkk77ZjqFwh6DZTAEmGg==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-member-expression-to-functions" "^7.22.5"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+
+"@babel/helper-simple-access@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de"
+ integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847"
+ integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-split-export-declaration@^7.22.6":
+ version "7.22.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
+ integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
+ dependencies:
+ "@babel/types" "^7.22.5"
+
+"@babel/helper-string-parser@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
+ integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
+
+"@babel/helper-validator-identifier@^7.22.15", "@babel/helper-validator-identifier@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044"
+ integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==
+
+"@babel/helper-validator-option@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
+ integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==
+
+"@babel/helper-wrap-function@^7.22.17":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz#222ac3ff9cc8f9b617cc1e5db75c0b538e722801"
+ integrity sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q==
+ dependencies:
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.22.17"
+
+"@babel/helpers@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1"
+ integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==
+ dependencies:
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.22.15"
+ "@babel/types" "^7.22.15"
+
+"@babel/highlight@^7.22.13":
+ version "7.22.13"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16"
+ integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==
+ dependencies:
+ "@babel/helper-validator-identifier" "^7.22.5"
+ chalk "^2.4.2"
+ js-tokens "^4.0.0"
+
+"@babel/parser@^7.22.15", "@babel/parser@^7.22.16":
+ version "7.22.16"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95"
+ integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==
+
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962"
+ integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f"
+ integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/plugin-transform-optional-chaining" "^7.22.15"
+
+"@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
+ integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2":
+ version "7.21.0-placeholder-for-preset-env.2"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703"
+ integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==
+
+"@babel/plugin-syntax-async-generators@^7.8.4":
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d"
+ integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-class-properties@^7.12.13":
+ version "7.12.13"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10"
+ integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.12.13"
+
+"@babel/plugin-syntax-class-static-block@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406"
+ integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-dynamic-import@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
+ integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-export-namespace-from@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a"
+ integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.3"
+
+"@babel/plugin-syntax-import-assertions@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.22.5.tgz#07d252e2aa0bc6125567f742cd58619cb14dce98"
+ integrity sha512-rdV97N7KqsRzeNGoWUOK6yUsWarLjE5Su/Snk9IYPU9CwkWHs4t+rTGOvffTR8XGkJMTAdLfO0xVnXm8wugIJg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-attributes@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.22.5.tgz#ab840248d834410b829f569f5262b9e517555ecb"
+ integrity sha512-KwvoWDeNKPETmozyFE0P2rOLqh39EoQHNjqizrI5B8Vt0ZNS7M56s7dAiAqbYfiAYOuIzIh96z3iR2ktgu3tEg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-import-meta@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51"
+ integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-json-strings@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a"
+ integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-jsx@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
+ integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699"
+ integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9"
+ integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-numeric-separator@^7.10.4":
+ version "7.10.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97"
+ integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.10.4"
+
+"@babel/plugin-syntax-object-rest-spread@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871"
+ integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-catch-binding@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1"
+ integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-optional-chaining@^7.8.3":
+ version "7.8.3"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a"
+ integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.8.0"
+
+"@babel/plugin-syntax-private-property-in-object@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad"
+ integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-top-level-await@^7.14.5":
+ version "7.14.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c"
+ integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.14.5"
+
+"@babel/plugin-syntax-typescript@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.22.5.tgz#aac8d383b062c5072c647a31ef990c1d0af90272"
+ integrity sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-syntax-unicode-sets-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357"
+ integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-arrow-functions@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.22.5.tgz#e5ba566d0c58a5b2ba2a8b795450641950b71958"
+ integrity sha512-26lTNXoVRdAnsaDXPpvCNUq+OVWEVC6bx7Vvz9rC53F2bagUWW4u4ii2+h8Fejfh7RYqPxn+libeFBBck9muEw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-async-generator-functions@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3"
+ integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.9"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+
+"@babel/plugin-transform-async-to-generator@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775"
+ integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ==
+ dependencies:
+ "@babel/helper-module-imports" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-remap-async-to-generator" "^7.22.5"
+
+"@babel/plugin-transform-block-scoped-functions@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024"
+ integrity sha512-tdXZ2UdknEKQWKJP1KMNmuF5Lx3MymtMN/pvA+p/VEkhK8jVcQ1fzSy8KM9qRYhAf2/lV33hoMPKI/xaI9sADA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-block-scoping@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz#494eb82b87b5f8b1d8f6f28ea74078ec0a10a841"
+ integrity sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-properties@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.22.5.tgz#97a56e31ad8c9dc06a0b3710ce7803d5a48cca77"
+ integrity sha512-nDkQ0NfkOhPTq8YCLiWNxp1+f9fCobEjCb0n8WdbNUBc4IB5V7P1QnX9IjpSoquKrXF5SKojHleVNs2vGeHCHQ==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-class-static-block@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974"
+ integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.11"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+
+"@babel/plugin-transform-classes@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b"
+ integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-optimise-call-expression" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.9"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ globals "^11.1.0"
+
+"@babel/plugin-transform-computed-properties@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.22.5.tgz#cd1e994bf9f316bd1c2dafcd02063ec261bb3869"
+ integrity sha512-4GHWBgRf0krxPX+AaPtgBAlTgTeZmqDynokHOX7aqqAB4tHs3U2Y02zH6ETFdLZGcg9UQSD1WCmkVrE9ErHeOg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/template" "^7.22.5"
+
+"@babel/plugin-transform-destructuring@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz#e7404ea5bb3387073b9754be654eecb578324694"
+ integrity sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-dotall-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165"
+ integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-duplicate-keys@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.22.5.tgz#b6e6428d9416f5f0bba19c70d1e6e7e0b88ab285"
+ integrity sha512-dEnYD+9BBgld5VBXHnF/DbYGp3fqGMsyxKbtD1mDyIA7AkTSpKXFhCVuj/oQVOoALfBs77DudA0BE4d5mcpmqw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-dynamic-import@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa"
+ integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+
+"@babel/plugin-transform-exponentiation-operator@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.22.5.tgz#402432ad544a1f9a480da865fda26be653e48f6a"
+ integrity sha512-vIpJFNM/FjZ4rh1myqIya9jXwrwwgFRHPjT3DkUA9ZLHuzox8jiXkOLvwm1H+PQIP3CqfC++WPKeuDi0Sjdj1g==
+ dependencies:
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-export-namespace-from@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c"
+ integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+
+"@babel/plugin-transform-for-of@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29"
+ integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-function-name@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.22.5.tgz#935189af68b01898e0d6d99658db6b164205c143"
+ integrity sha512-UIzQNMS0p0HHiQm3oelztj+ECwFnj+ZRV4KnguvlsD2of1whUeM6o7wGNj6oLwcDoAXQ8gEqfgC24D+VdIcevg==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-json-strings@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835"
+ integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+
+"@babel/plugin-transform-literals@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.22.5.tgz#e9341f4b5a167952576e23db8d435849b1dd7920"
+ integrity sha512-fTLj4D79M+mepcw3dgFBTIDYpbcB9Sm0bpm4ppXPaO+U+PKFFyV9MGRvS0gvGw62sd10kT5lRMKXAADb9pWy8g==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-logical-assignment-operators@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c"
+ integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+
+"@babel/plugin-transform-member-expression-literals@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.22.5.tgz#4fcc9050eded981a468347dd374539ed3e058def"
+ integrity sha512-RZEdkNtzzYCFl9SE9ATaUMTj2hqMb4StarOJLrZRbqqU4HSBE7UlBw9WBWQiDzrJZJdUWiMTVDI6Gv/8DPvfew==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-modules-amd@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.22.5.tgz#4e045f55dcf98afd00f85691a68fc0780704f526"
+ integrity sha512-R+PTfLTcYEmb1+kK7FNkhQ1gP4KgjpSO6HfH9+f8/yfp2Nt3ggBjiVpRwmwTlfqZLafYKJACy36yDXlEmI9HjQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-modules-commonjs@^7.22.15", "@babel/plugin-transform-modules-commonjs@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz#b11810117ed4ee7691b29bd29fd9f3f98276034f"
+ integrity sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-simple-access" "^7.22.5"
+
+"@babel/plugin-transform-modules-systemjs@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1"
+ integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==
+ dependencies:
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.22.9"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.5"
+
+"@babel/plugin-transform-modules-umd@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.22.5.tgz#4694ae40a87b1745e3775b6a7fe96400315d4f98"
+ integrity sha512-+S6kzefN/E1vkSsKx8kmQuqeQsvCKCd1fraCM7zXm4SFoggI099Tr4G8U81+5gtMdUeMQ4ipdQffbKLX0/7dBQ==
+ dependencies:
+ "@babel/helper-module-transforms" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f"
+ integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-new-target@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.22.5.tgz#1b248acea54ce44ea06dfd37247ba089fcf9758d"
+ integrity sha512-AsF7K0Fx/cNKVyk3a+DW0JLo+Ua598/NxMRvxDnkpCIGFh43+h/v2xyhRUYf6oD8gE4QtL83C7zZVghMjHd+iw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc"
+ integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+
+"@babel/plugin-transform-numeric-separator@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd"
+ integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+
+"@babel/plugin-transform-object-rest-spread@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f"
+ integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==
+ dependencies:
+ "@babel/compat-data" "^7.22.9"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-transform-parameters" "^7.22.15"
+
+"@babel/plugin-transform-object-super@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.22.5.tgz#794a8d2fcb5d0835af722173c1a9d704f44e218c"
+ integrity sha512-klXqyaT9trSjIUrcsYIfETAzmOEZL3cBYqOYLJxBHfMFFggmXOv+NYSX/Jbs9mzMVESw/WycLFPRx8ba/b2Ipw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.5"
+
+"@babel/plugin-transform-optional-catch-binding@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0"
+ integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+
+"@babel/plugin-transform-optional-chaining@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz#d7a5996c2f7ca4ad2ad16dbb74444e5c4385b1ba"
+ integrity sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+
+"@babel/plugin-transform-parameters@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114"
+ integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-private-methods@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.22.5.tgz#21c8af791f76674420a147ae62e9935d790f8722"
+ integrity sha512-PPjh4gyrQnGe97JTalgRGMuU4icsZFnWkzicB/fUtzlKUqvsWBKEpPPfr5a2JiyirZkHxnAqkQMO5Z5B2kK3fA==
+ dependencies:
+ "@babel/helper-create-class-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-private-property-in-object@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1"
+ integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.11"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+
+"@babel/plugin-transform-property-literals@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.22.5.tgz#b5ddabd73a4f7f26cd0e20f5db48290b88732766"
+ integrity sha512-TiOArgddK3mK/x1Qwf5hay2pxI6wCZnvQqrFSqbtg1GLl2JcNMitVH/YnqjP+M31pLUeTfzY1HAXFDnUBV30rQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-regenerator@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca"
+ integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ regenerator-transform "^0.15.2"
+
+"@babel/plugin-transform-reserved-words@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.22.5.tgz#832cd35b81c287c4bcd09ce03e22199641f964fb"
+ integrity sha512-DTtGKFRQUDm8svigJzZHzb/2xatPc6TzNvAIJ5GqOKDsGFYgAskjRulbR/vGsPKq3OPqtexnz327qYpP57RFyA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-runtime@^7.22.9":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9"
+ integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==
+ dependencies:
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ babel-plugin-polyfill-corejs2 "^0.4.5"
+ babel-plugin-polyfill-corejs3 "^0.8.3"
+ babel-plugin-polyfill-regenerator "^0.5.2"
+ semver "^6.3.1"
+
+"@babel/plugin-transform-shorthand-properties@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.22.5.tgz#6e277654be82b5559fc4b9f58088507c24f0c624"
+ integrity sha512-vM4fq9IXHscXVKzDv5itkO1X52SmdFBFcMIBZ2FRn2nqVYqw6dBexUgMvAjHW+KXpPPViD/Yo3GrDEBaRC0QYA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-spread@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.22.5.tgz#6487fd29f229c95e284ba6c98d65eafb893fea6b"
+ integrity sha512-5ZzDQIGyvN4w8+dMmpohL6MBo+l2G7tfC/O2Dg7/hjpgeWvUx8FzfeOKxGog9IimPa4YekaQ9PlDqTLOljkcxg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
+
+"@babel/plugin-transform-sticky-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.22.5.tgz#295aba1595bfc8197abd02eae5fc288c0deb26aa"
+ integrity sha512-zf7LuNpHG0iEeiyCNwX4j3gDg1jgt1k3ZdXBKbZSoA3BbGQGvMiSvfbZRR3Dr3aeJe3ooWFZxOOG3IRStYp2Bw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-template-literals@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.22.5.tgz#8f38cf291e5f7a8e60e9f733193f0bcc10909bff"
+ integrity sha512-5ciOehRNf+EyUeewo8NkbQiUs4d6ZxiHo6BcBcnFlgiJfu16q0bQUw9Jvo0b0gBKFG1SMhDSjeKXSYuJLeFSMA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-typeof-symbol@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.22.5.tgz#5e2ba478da4b603af8673ff7c54f75a97b716b34"
+ integrity sha512-bYkI5lMzL4kPii4HHEEChkD0rkc+nvnlR6+o/qdqR6zrm0Sv/nodmyLhlq2DO0YKLUNd2VePmPRjJXSBh9OIdA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-typescript@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.22.15.tgz#15adef906451d86349eb4b8764865c960eb54127"
+ integrity sha512-1uirS0TnijxvQLnlv5wQBwOX3E1wCFX7ITv+9pBV2wKEk4K+M5tqDaoNXnTH8tjEIYHLO98MwiTWO04Ggz4XuA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/plugin-syntax-typescript" "^7.22.5"
+
+"@babel/plugin-transform-unicode-escapes@^7.22.10":
+ version "7.22.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9"
+ integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-property-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.22.5.tgz#098898f74d5c1e86660dc112057b2d11227f1c81"
+ integrity sha512-HCCIb+CbJIAE6sXn5CjFQXMwkCClcOfPCzTlilJ8cUatfzwHlWQkbtV0zD338u9dZskwvuOYTuuaMaA8J5EI5A==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.22.5.tgz#ce7e7bb3ef208c4ff67e02a22816656256d7a183"
+ integrity sha512-028laaOKptN5vHJf9/Arr/HiJekMd41hOEZYvNsrsXqJ7YPYuX2bQxh31fkZzGmq3YqHRJzYFFAVYvKfMPKqyg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/plugin-transform-unicode-sets-regex@^7.22.5":
+ version "7.22.5"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.22.5.tgz#77788060e511b708ffc7d42fdfbc5b37c3004e91"
+ integrity sha512-lhMfi4FC15j13eKrh3DnYHjpGj6UKQHtNKTbtc1igvAhRy4+kLhV07OpLcsN0VgDEw/MjAvJO4BdMJsHwMhzCg==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.22.5"
+ "@babel/helper-plugin-utils" "^7.22.5"
+
+"@babel/preset-env@^7.22.9":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.15.tgz#142716f8e00bc030dae5b2ac6a46fbd8b3e18ff8"
+ integrity sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag==
+ dependencies:
+ "@babel/compat-data" "^7.22.9"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.15"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15"
+ "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
+ "@babel/plugin-syntax-async-generators" "^7.8.4"
+ "@babel/plugin-syntax-class-properties" "^7.12.13"
+ "@babel/plugin-syntax-class-static-block" "^7.14.5"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-syntax-export-namespace-from" "^7.8.3"
+ "@babel/plugin-syntax-import-assertions" "^7.22.5"
+ "@babel/plugin-syntax-import-attributes" "^7.22.5"
+ "@babel/plugin-syntax-import-meta" "^7.10.4"
+ "@babel/plugin-syntax-json-strings" "^7.8.3"
+ "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
+ "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
+ "@babel/plugin-syntax-numeric-separator" "^7.10.4"
+ "@babel/plugin-syntax-object-rest-spread" "^7.8.3"
+ "@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
+ "@babel/plugin-syntax-optional-chaining" "^7.8.3"
+ "@babel/plugin-syntax-private-property-in-object" "^7.14.5"
+ "@babel/plugin-syntax-top-level-await" "^7.14.5"
+ "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
+ "@babel/plugin-transform-arrow-functions" "^7.22.5"
+ "@babel/plugin-transform-async-generator-functions" "^7.22.15"
+ "@babel/plugin-transform-async-to-generator" "^7.22.5"
+ "@babel/plugin-transform-block-scoped-functions" "^7.22.5"
+ "@babel/plugin-transform-block-scoping" "^7.22.15"
+ "@babel/plugin-transform-class-properties" "^7.22.5"
+ "@babel/plugin-transform-class-static-block" "^7.22.11"
+ "@babel/plugin-transform-classes" "^7.22.15"
+ "@babel/plugin-transform-computed-properties" "^7.22.5"
+ "@babel/plugin-transform-destructuring" "^7.22.15"
+ "@babel/plugin-transform-dotall-regex" "^7.22.5"
+ "@babel/plugin-transform-duplicate-keys" "^7.22.5"
+ "@babel/plugin-transform-dynamic-import" "^7.22.11"
+ "@babel/plugin-transform-exponentiation-operator" "^7.22.5"
+ "@babel/plugin-transform-export-namespace-from" "^7.22.11"
+ "@babel/plugin-transform-for-of" "^7.22.15"
+ "@babel/plugin-transform-function-name" "^7.22.5"
+ "@babel/plugin-transform-json-strings" "^7.22.11"
+ "@babel/plugin-transform-literals" "^7.22.5"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.22.11"
+ "@babel/plugin-transform-member-expression-literals" "^7.22.5"
+ "@babel/plugin-transform-modules-amd" "^7.22.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.22.15"
+ "@babel/plugin-transform-modules-systemjs" "^7.22.11"
+ "@babel/plugin-transform-modules-umd" "^7.22.5"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
+ "@babel/plugin-transform-new-target" "^7.22.5"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11"
+ "@babel/plugin-transform-numeric-separator" "^7.22.11"
+ "@babel/plugin-transform-object-rest-spread" "^7.22.15"
+ "@babel/plugin-transform-object-super" "^7.22.5"
+ "@babel/plugin-transform-optional-catch-binding" "^7.22.11"
+ "@babel/plugin-transform-optional-chaining" "^7.22.15"
+ "@babel/plugin-transform-parameters" "^7.22.15"
+ "@babel/plugin-transform-private-methods" "^7.22.5"
+ "@babel/plugin-transform-private-property-in-object" "^7.22.11"
+ "@babel/plugin-transform-property-literals" "^7.22.5"
+ "@babel/plugin-transform-regenerator" "^7.22.10"
+ "@babel/plugin-transform-reserved-words" "^7.22.5"
+ "@babel/plugin-transform-shorthand-properties" "^7.22.5"
+ "@babel/plugin-transform-spread" "^7.22.5"
+ "@babel/plugin-transform-sticky-regex" "^7.22.5"
+ "@babel/plugin-transform-template-literals" "^7.22.5"
+ "@babel/plugin-transform-typeof-symbol" "^7.22.5"
+ "@babel/plugin-transform-unicode-escapes" "^7.22.10"
+ "@babel/plugin-transform-unicode-property-regex" "^7.22.5"
+ "@babel/plugin-transform-unicode-regex" "^7.22.5"
+ "@babel/plugin-transform-unicode-sets-regex" "^7.22.5"
+ "@babel/preset-modules" "0.1.6-no-external-plugins"
+ "@babel/types" "^7.22.15"
+ babel-plugin-polyfill-corejs2 "^0.4.5"
+ babel-plugin-polyfill-corejs3 "^0.8.3"
+ babel-plugin-polyfill-regenerator "^0.5.2"
+ core-js-compat "^3.31.0"
+ semver "^6.3.1"
+
+"@babel/preset-modules@0.1.6-no-external-plugins":
+ version "0.1.6-no-external-plugins"
+ resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a"
+ integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.0.0"
+ "@babel/types" "^7.4.4"
+ esutils "^2.0.2"
+
+"@babel/preset-typescript@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.22.15.tgz#43db30516fae1d417d748105a0bc95f637239d48"
+ integrity sha512-HblhNmh6yM+cU4VwbBRpxFhxsTdfS1zsvH9W+gEjD0ARV9+8B4sNfpI6GuhePti84nuvhiwKS539jKPFHskA9A==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.15"
+ "@babel/plugin-syntax-jsx" "^7.22.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.22.15"
+ "@babel/plugin-transform-typescript" "^7.22.15"
+
+"@babel/regjsgen@^0.8.0":
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
+ integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
+
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.22.15", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8"
+ integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
+"@babel/template@^7.22.15", "@babel/template@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/parser" "^7.22.15"
+ "@babel/types" "^7.22.15"
+
+"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.22.8":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44"
+ integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==
+ dependencies:
+ "@babel/code-frame" "^7.22.13"
+ "@babel/generator" "^7.22.15"
+ "@babel/helper-environment-visitor" "^7.22.5"
+ "@babel/helper-function-name" "^7.22.5"
+ "@babel/helper-hoist-variables" "^7.22.5"
+ "@babel/helper-split-export-declaration" "^7.22.6"
+ "@babel/parser" "^7.22.16"
+ "@babel/types" "^7.22.17"
+ debug "^4.1.0"
+ globals "^11.1.0"
+
+"@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.4.4":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee"
+ integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==
+ dependencies:
+ "@babel/helper-string-parser" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.15"
+ to-fast-properties "^2.0.0"
+
+"@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/css@^11.11.2":
+ version "11.11.2"
+ resolved "https://registry.yarnpkg.com/@emotion/css/-/css-11.11.2.tgz#e5fa081d0c6e335352e1bc2b05953b61832dca5a"
+ integrity sha512-VJxe1ucoMYMS7DkiMdC2T7PWNbrEI0a39YRiyDvK2qq4lXwjRbVP/z4lpG+odCsRzadlR+1ywwrTzhdm5HNdew==
+ dependencies:
+ "@emotion/babel-plugin" "^11.11.0"
+ "@emotion/cache" "^11.11.0"
+ "@emotion/serialize" "^1.1.2"
+ "@emotion/sheet" "^1.2.2"
+ "@emotion/utils" "^1.2.1"
+
+"@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/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/serialize@^1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-1.1.2.tgz#017a6e4c9b8a803bd576ff3d52a0ea6fa5a62b51"
+ integrity sha512-zR6a/fkFP4EAcCMQtLOhIgpprZOwNmCldtpaISpvz348+DP4Mz8ZoKaGGCQpbzepNIUWbq4w6hNZkwDyKoS+HA==
+ 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/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/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==
+
+"@floating-ui/core@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.4.1.tgz#0d633f4b76052668afb932492ac452f7ebe97f17"
+ integrity sha512-jk3WqquEJRlcyu7997NtR5PibI+y5bi+LS3hPmguVClypenMsCY3CBa3LAQnozRCtCrYWSEtAdiskpamuJRFOQ==
+ dependencies:
+ "@floating-ui/utils" "^0.1.1"
+
+"@floating-ui/dom@^1.5.1":
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.2.tgz#6812e89d1d4d4ea32f10d15c3b81feb7f9836d89"
+ integrity sha512-6ArmenS6qJEWmwzczWyhvrXRdI/rI78poBcW0h/456+onlabit+2G+QxHx5xTOX60NBJQXjsCLFbW2CmsXpUog==
+ dependencies:
+ "@floating-ui/core" "^1.4.1"
+ "@floating-ui/utils" "^0.1.1"
+
+"@floating-ui/react-dom@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20"
+ integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==
+ dependencies:
+ "@floating-ui/dom" "^1.5.1"
+
+"@floating-ui/utils@^0.1.1":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.2.tgz#b7e9309ccce5a0a40ac482cb894f120dba2b357f"
+ integrity sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==
+
+"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
+ integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.1"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+ "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
+
+"@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+
+"@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.17", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
+ integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
+
+"@linaria/babel-preset@^4.5.4":
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/@linaria/babel-preset/-/babel-preset-4.5.4.tgz#2b449cd518c9bb3b26a934ea98f5288fb9d5d675"
+ integrity sha512-AbOTqCb7XbQGAUNQkt8YxysXsek3qTEfXwj46bYLyFu/ADZ+ypmAUcmNJRJSjI0qAoS+ZFuK2dEpuwFVYeiveQ==
+ dependencies:
+ "@babel/core" "^7.22.9"
+ "@babel/generator" "^7.22.9"
+ "@babel/helper-module-imports" "^7.22.5"
+ "@babel/template" "^7.22.5"
+ "@babel/traverse" "^7.22.8"
+ "@babel/types" "^7.22.5"
+ "@linaria/core" "^4.5.4"
+ "@linaria/logger" "^4.5.0"
+ "@linaria/shaker" "^4.5.3"
+ "@linaria/tags" "^4.5.4"
+ "@linaria/utils" "^4.5.3"
+ cosmiconfig "^8.0.0"
+ source-map "^0.7.3"
+ stylis "^3.5.4"
+
+"@linaria/core@^4.5.4":
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/@linaria/core/-/core-4.5.4.tgz#1bc989199e786da9cf21b0d26e1213687f886c96"
+ integrity sha512-vMs/5iU0stxjfbBCxobIgY+wSQx4G8ukNwrhjPVD+6bF9QrTwi5rl0mKaCMxaGMjnfsLRiiM3i+hnWLIEYLdSg==
+ dependencies:
+ "@linaria/logger" "^4.5.0"
+ "@linaria/tags" "^4.5.4"
+ "@linaria/utils" "^4.5.3"
+
+"@linaria/logger@^4.5.0":
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/@linaria/logger/-/logger-4.5.0.tgz#e5de815ffe7806822f47a559a512b98f66acea13"
+ integrity sha512-XdQLk242Cpcsc9a3Cz1ktOE5ysTo2TpxdeFQEPwMm8Z/+F/S6ZxBDdHYJL09srXWz3hkJr3oS2FPuMZNH1HIxw==
+ dependencies:
+ debug "^4.1.1"
+ picocolors "^1.0.0"
+
+"@linaria/shaker@^4.5.3":
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/@linaria/shaker/-/shaker-4.5.3.tgz#0f6b588f61f2f3d425287a939256acbb64269a95"
+ integrity sha512-UeNw8HtY43pm+D0B+kq8BrW9GsRxm11zT7Lq3Qry8sX2mapvFqXaQ7VpTFHWEdkcbv7JOxBAMial2fu+ce/zqA==
+ dependencies:
+ "@babel/core" "^7.22.9"
+ "@babel/generator" "^7.22.9"
+ "@babel/plugin-transform-modules-commonjs" "^7.22.5"
+ "@babel/plugin-transform-runtime" "^7.22.9"
+ "@babel/plugin-transform-template-literals" "^7.22.5"
+ "@babel/preset-env" "^7.22.9"
+ "@linaria/logger" "^4.5.0"
+ "@linaria/utils" "^4.5.3"
+ babel-plugin-transform-react-remove-prop-types "^0.4.24"
+ ts-invariant "^0.10.3"
+
+"@linaria/tags@^4.5.4":
+ version "4.5.4"
+ resolved "https://registry.yarnpkg.com/@linaria/tags/-/tags-4.5.4.tgz#071ab024227433f783ea2d948904fc164731a912"
+ integrity sha512-HPxLB6HlJWLi6o8+8lTLegOmDnbMbuzEE+zzunaPZEGSoIIYx8HAv5VbY/sG/zNyxDElk6laiAwEVWN8h5/zxg==
+ dependencies:
+ "@babel/generator" "^7.22.9"
+ "@linaria/logger" "^4.5.0"
+ "@linaria/utils" "^4.5.3"
+
+"@linaria/utils@^4.5.3":
+ version "4.5.3"
+ resolved "https://registry.yarnpkg.com/@linaria/utils/-/utils-4.5.3.tgz#cf54f4096927ea347d01e814c1fb7aca7cf4063a"
+ integrity sha512-tSpxA3Zn0DKJ2n/YBnYAgiDY+MNvkmzAHrD8R9PKrpGaZ+wz1jQEmE1vGn1cqh8dJyWK0NzPAA8sf1cqa+RmAg==
+ dependencies:
+ "@babel/core" "^7.22.9"
+ "@babel/generator" "^7.22.9"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
+ "@babel/plugin-syntax-dynamic-import" "^7.8.3"
+ "@babel/plugin-transform-modules-commonjs" "^7.22.5"
+ "@babel/template" "^7.22.5"
+ "@babel/traverse" "^7.22.8"
+ "@babel/types" "^7.22.5"
+ "@linaria/logger" "^4.5.0"
+ babel-merge "^3.0.0"
+ find-up "^5.0.0"
+ minimatch "^9.0.3"
+
+"@mui/base@5.0.0-beta.15", "@mui/base@file:../../packages/mui-base/build":
+ version "5.0.0-beta.15"
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ "@floating-ui/react-dom" "^2.0.2"
+ "@mui/types" "^7.2.4"
+ "@mui/utils" "^5.14.9"
+ "@popperjs/core" "^2.11.8"
+ clsx "^2.0.0"
+ prop-types "^15.8.1"
+
+"@mui/core-downloads-tracker@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.9.tgz#97a4e2decce1583983b4a0cded8bcb2be1b1cb31"
+ integrity sha512-JAU/R5hM3l2zP1Q4KnioDRhq5V3vZ4mmjEZ+TwARDb2xFhg3p59McacQuzkSu0sUHJnH9aJos36+hU5sPQBcFQ==
+
+"@mui/material@file:../../packages/mui-material/build":
+ version "5.14.9"
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ "@mui/base" "5.0.0-beta.15"
+ "@mui/core-downloads-tracker" "^5.14.9"
+ "@mui/system" "^5.14.9"
+ "@mui/types" "^7.2.4"
+ "@mui/utils" "^5.14.9"
+ "@types/react-transition-group" "^4.4.6"
+ clsx "^2.0.0"
+ csstype "^3.1.2"
+ prop-types "^15.8.1"
+ react-is "^18.2.0"
+ react-transition-group "^4.4.5"
+
+"@mui/private-theming@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.9.tgz#085041c44cc28c25f3431a293339922ec3d9b5f8"
+ integrity sha512-0PzoUFqFXTXiNchhR7K4b7kZunasPOjx6Qf7AagCmfZDNASHedA0x6evHVhnST918x/AHY9xykYNKfB0Z4xMBg==
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ "@mui/utils" "^5.14.9"
+ prop-types "^15.8.1"
+
+"@mui/styled-engine@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.9.tgz#bc2121db1399bb84ea5390b40beac742b6be7023"
+ integrity sha512-LEQxLrW9oWvea33pge08+oyNeTz704jb6Nhe26xEJKojXWd34Rr327Zzx3dmo70AcS4h0b99vQjEpUzm6ASqUw==
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ "@emotion/cache" "^11.11.0"
+ csstype "^3.1.2"
+ prop-types "^15.8.1"
+ react "^18.2.0"
+
+"@mui/system@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.9.tgz#90a20473a85622ddabf5a2409de1980fad98f38d"
+ integrity sha512-Z00Wj590QXk5+SIxmxayBo7SWrao+y433LKGChneJxO4QcT/caSCeEWtyeoLs1Q8ys0zOzl2kkKee6n8TaKzhQ==
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ "@mui/private-theming" "^5.14.9"
+ "@mui/styled-engine" "^5.14.9"
+ "@mui/types" "^7.2.4"
+ "@mui/utils" "^5.14.9"
+ clsx "^2.0.0"
+ csstype "^3.1.2"
+ prop-types "^15.8.1"
+
+"@mui/types@^7.2.4":
+ version "7.2.4"
+ resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.4.tgz#b6fade19323b754c5c6de679a38f068fd50b9328"
+ integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==
+
+"@mui/utils@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.9.tgz#eeefef88dbee687ac90e8972c63f0d41f19348a3"
+ integrity sha512-9ysB5e+RwS7ofn0n3nwAg1/3c81vBTmSvauD3EuK9LmqMzhmF//BFDaC44U4yITvB/0m1kWyDqg924Ll3VHCcg==
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ prop-types "^15.8.1"
+ react-is "^18.2.0"
+
+"@mui/utils@file:../../packages/mui-utils/build":
+ version "5.14.9"
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ prop-types "^15.8.1"
+ react-is "^18.2.0"
+
+"@mui/zero-next-plugin@file:../../packages/zero-next-plugin/build":
+ version "0.0.1-alpha.3"
+ dependencies:
+ "@babel/core" "^7.22.17"
+ "@babel/plugin-syntax-jsx" "^7.22.5"
+ "@babel/preset-typescript" "^7.22.15"
+ "@linaria/babel-preset" "^4.5.4"
+ "@mui/zero-tag-processor" "0.0.1-alpha.3"
+ file-system-cache "2.0.2"
+
+"@mui/zero-runtime@file:../../packages/zero-runtime/build":
+ version "0.0.1-alpha.3"
+ dependencies:
+ clsx "^2.0.0"
+
+"@mui/zero-tag-processor@0.0.1-alpha.3", "@mui/zero-tag-processor@file:../../packages/zero-tag-processor/build":
+ version "0.0.1-alpha.3"
+ dependencies:
+ "@babel/core" "^7.22.17"
+ "@babel/helper-module-imports" "^7.22.15"
+ "@babel/helper-plugin-utils" "^7.22.5"
+ "@babel/parser" "^7.22.16"
+ "@babel/types" "^7.22.17"
+ "@emotion/css" "^11.11.2"
+ "@linaria/tags" "^4.5.4"
+ "@linaria/utils" "^4.5.3"
+ "@mui/system" "^5.14.9"
+ lodash.get "^4.4.2"
+
+"@next/env@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.19.tgz#46905b4e6f62da825b040343cbc233144e9578d3"
+ integrity sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==
+
+"@next/swc-darwin-arm64@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz#77ad462b5ced4efdc26cb5a0053968d2c7dac1b6"
+ integrity sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==
+
+"@next/swc-darwin-x64@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz#aebe38713a4ce536ee5f2a291673e14b715e633a"
+ integrity sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==
+
+"@next/swc-linux-arm64-gnu@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.19.tgz#ec54db65b587939c7b94f9a84800f003a380f5a6"
+ integrity sha512-vdlnIlaAEh6H+G6HrKZB9c2zJKnpPVKnA6LBwjwT2BTjxI7e0Hx30+FoWCgi50e+YO49p6oPOtesP9mXDRiiUg==
+
+"@next/swc-linux-arm64-musl@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.19.tgz#1f5e2c1ea6941e7d530d9f185d5d64be04279d86"
+ integrity sha512-aU0HkH2XPgxqrbNRBFb3si9Ahu/CpaR5RPmN2s9GiM9qJCiBBlZtRTiEca+DC+xRPyCThTtWYgxjWHgU7ZkyvA==
+
+"@next/swc-linux-x64-gnu@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.19.tgz#96b0882492a2f7ffcce747846d3680730f69f4d1"
+ integrity sha512-htwOEagMa/CXNykFFeAHHvMJeqZfNQEoQvHfsA4wgg5QqGNqD5soeCer4oGlCol6NGUxknrQO6VEustcv+Md+g==
+
+"@next/swc-linux-x64-musl@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.19.tgz#f276b618afa321d2f7b17c81fc83f429fb0fd9d8"
+ integrity sha512-4Gj4vvtbK1JH8ApWTT214b3GwUh9EKKQjY41hH/t+u55Knxi/0wesMzwQRhppK6Ddalhu0TEttbiJ+wRcoEj5Q==
+
+"@next/swc-win32-arm64-msvc@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.19.tgz#1599ae0d401da5ffca0947823dac577697cce577"
+ integrity sha512-bUfDevQK4NsIAHXs3/JNgnvEY+LRyneDN788W2NYiRIIzmILjba7LaQTfihuFawZDhRtkYCv3JDC3B4TwnmRJw==
+
+"@next/swc-win32-ia32-msvc@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.19.tgz#55cdd7da90818f03e4da16d976f0cb22045d16fd"
+ integrity sha512-Y5kikILFAr81LYIFaw6j/NrOtmiM4Sf3GtOc0pn50ez2GCkr+oejYuKGcwAwq3jiTKuzF6OF4iT2INPoxRycEA==
+
+"@next/swc-win32-x64-msvc@13.4.19":
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.19.tgz#648f79c4e09279212ac90d871646ae12d80cdfce"
+ integrity sha512-YzA78jBDXMYiINdPdJJwGgPNT3YqBNNGhsthsDoWHL9p24tEJn9ViQf/ZqTbwSpX/RrkPupLfuuTH2sf73JBAw==
+
+"@popperjs/core@^2.11.8":
+ version "2.11.8"
+ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f"
+ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==
+
+"@swc/helpers@0.5.1":
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a"
+ integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==
+ dependencies:
+ tslib "^2.4.0"
+
+"@types/node@20.5.7":
+ version "20.5.7"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.7.tgz#4b8ecac87fbefbc92f431d09c30e176fc0a7c377"
+ integrity sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==
+
+"@types/parse-json@^4.0.0":
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
+ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+
+"@types/prop-types@*":
+ version "15.7.5"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
+ integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
+
+"@types/react-dom@18.2.7":
+ version "18.2.7"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63"
+ integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react-transition-group@^4.4.6":
+ version "4.4.6"
+ resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e"
+ integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@18.2.21":
+ version "18.2.21"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9"
+ integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==
+ dependencies:
+ "@types/prop-types" "*"
+ "@types/scheduler" "*"
+ csstype "^3.0.2"
+
+"@types/scheduler@*":
+ version "0.16.3"
+ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"
+ integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==
+
+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"
+
+argparse@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+ integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
+babel-merge@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/babel-merge/-/babel-merge-3.0.0.tgz#9bd368d48116dab18b8f3e8022835479d80f3b50"
+ integrity sha512-eBOBtHnzt9xvnjpYNI5HmaPp/b2vMveE5XggzqHnQeHJ8mFIBrBv6WZEVIj5jJ2uwTItkqKo9gWzEEcBxEq0yw==
+ dependencies:
+ deepmerge "^2.2.1"
+ object.omit "^3.0.0"
+
+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"
+
+babel-plugin-polyfill-corejs2@^0.4.5:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c"
+ integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg==
+ dependencies:
+ "@babel/compat-data" "^7.22.6"
+ "@babel/helper-define-polyfill-provider" "^0.4.2"
+ semver "^6.3.1"
+
+babel-plugin-polyfill-corejs3@^0.8.3:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52"
+ integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.4.2"
+ core-js-compat "^3.31.0"
+
+babel-plugin-polyfill-regenerator@^0.5.2:
+ version "0.5.2"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326"
+ integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA==
+ dependencies:
+ "@babel/helper-define-polyfill-provider" "^0.4.2"
+
+babel-plugin-transform-react-remove-prop-types@^0.4.24:
+ version "0.4.24"
+ resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
+ integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
+
+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==
+
+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.21.10, browserslist@^4.21.9:
+ version "4.21.10"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
+ integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
+ dependencies:
+ caniuse-lite "^1.0.30001517"
+ electron-to-chromium "^1.4.477"
+ node-releases "^2.0.13"
+ update-browserslist-db "^1.0.11"
+
+busboy@1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
+ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
+ dependencies:
+ streamsearch "^1.1.0"
+
+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==
+
+caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001517:
+ version "1.0.30001534"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz#f24a9b2a6d39630bac5c132b5dff89b39a12e7dd"
+ integrity sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==
+
+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"
+
+client-only@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
+ integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
+
+clsx@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/clsx/-/clsx-2.0.0.tgz#12658f3fd98fafe62075595a5c30e43d18f3d00b"
+ integrity sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==
+
+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-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==
+
+convert-source-map@^1.5.0, convert-source-map@^1.7.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==
+
+core-js-compat@^3.31.0:
+ version "3.32.2"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c"
+ integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==
+ dependencies:
+ browserslist "^4.21.10"
+
+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"
+
+cosmiconfig@^8.0.0:
+ version "8.3.6"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
+ integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==
+ dependencies:
+ import-fresh "^3.3.0"
+ js-yaml "^4.1.0"
+ parse-json "^5.2.0"
+ path-type "^4.0.0"
+
+csstype@^3.0.2, csstype@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+
+debug@^4.1.0, debug@^4.1.1:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
+deepmerge@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-2.2.1.tgz#5d3ff22a01c00f645405a2fbc17d0778a1801170"
+ integrity sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==
+
+dom-helpers@^5.0.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"
+
+electron-to-chromium@^1.4.477:
+ version "1.4.520"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.520.tgz#c19c25a10d87bd88a9aae2b76cae9235a50c2994"
+ integrity sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==
+
+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"
+
+escalade@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+ integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
+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==
+
+esutils@^2.0.2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
+ integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
+
+file-system-cache@2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.0.2.tgz#6b51d58c5786302146fa883529e0d7f88896e948"
+ integrity sha512-lp4BHO4CWqvRyx88Tt3quZic9ZMf4cJyquYq7UI8sH42Bm2ArlBBjKQAalZOo+UfaBassb7X123Lik5qZ/tSAA==
+ dependencies:
+ fs-extra "^11.1.0"
+ ramda "^0.28.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@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
+ integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
+ dependencies:
+ locate-path "^6.0.0"
+ path-exists "^4.0.0"
+
+fs-extra@^11.1.0:
+ version "11.1.1"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d"
+ integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==
+ dependencies:
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+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==
+
+glob-to-regexp@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
+ integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+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==
+
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
+ version "4.2.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
+ integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
+
+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==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
+import-fresh@^3.2.1, import-fresh@^3.3.0:
+ 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"
+
+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.13.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db"
+ integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==
+ dependencies:
+ has "^1.0.3"
+
+is-extendable@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
+ dependencies:
+ isobject "^3.0.1"
+
+isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+ integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
+
+"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==
+
+js-yaml@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+ integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+ dependencies:
+ argparse "^2.0.1"
+
+jsesc@^2.5.1:
+ version "2.5.2"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
+ integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
+
+jsesc@~0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
+ integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==
+
+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==
+
+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@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
+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==
+
+locate-path@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
+ integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
+ dependencies:
+ p-locate "^5.0.0"
+
+lodash.debounce@^4.0.8:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
+ integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+
+lodash.get@^4.4.2:
+ version "4.4.2"
+ resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
+ integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==
+
+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"
+
+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"
+
+minimatch@^9.0.3:
+ version "9.0.3"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
+ integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==
+ dependencies:
+ brace-expansion "^2.0.1"
+
+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.4:
+ version "3.3.6"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
+ integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
+
+next@13.4.19:
+ version "13.4.19"
+ resolved "https://registry.yarnpkg.com/next/-/next-13.4.19.tgz#2326e02aeedee2c693d4f37b90e4f0ed6882b35f"
+ integrity sha512-HuPSzzAbJ1T4BD8e0bs6B9C1kWQ6gv8ykZoRWs5AQoiIuqbGHHdQO7Ljuvg05Q0Z24E2ABozHe6FxDvI6HfyAw==
+ dependencies:
+ "@next/env" "13.4.19"
+ "@swc/helpers" "0.5.1"
+ busboy "1.6.0"
+ caniuse-lite "^1.0.30001406"
+ postcss "8.4.14"
+ styled-jsx "5.1.1"
+ watchpack "2.4.0"
+ zod "3.21.4"
+ optionalDependencies:
+ "@next/swc-darwin-arm64" "13.4.19"
+ "@next/swc-darwin-x64" "13.4.19"
+ "@next/swc-linux-arm64-gnu" "13.4.19"
+ "@next/swc-linux-arm64-musl" "13.4.19"
+ "@next/swc-linux-x64-gnu" "13.4.19"
+ "@next/swc-linux-x64-musl" "13.4.19"
+ "@next/swc-win32-arm64-msvc" "13.4.19"
+ "@next/swc-win32-ia32-msvc" "13.4.19"
+ "@next/swc-win32-x64-msvc" "13.4.19"
+
+node-releases@^2.0.13:
+ version "2.0.13"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
+ integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
+
+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==
+
+object.omit@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af"
+ integrity sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==
+ dependencies:
+ is-extendable "^1.0.0"
+
+p-limit@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
+p-locate@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
+ integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
+ dependencies:
+ p-limit "^3.0.2"
+
+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, parse-json@^5.2.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"
+
+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-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-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:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
+ integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
+
+postcss@8.4.14:
+ version "8.4.14"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
+ integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+prop-types@^15.6.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"
+
+ramda@^0.28.0:
+ version "0.28.0"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97"
+ integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==
+
+react-dom@18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
+ integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
+ dependencies:
+ loose-envify "^1.1.0"
+ scheduler "^0.23.0"
+
+react-is@^16.13.1:
+ 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.2.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
+ integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
+react-transition-group@^4.4.5:
+ 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@18.2.0, react@^18.2.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
+ integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
+ dependencies:
+ loose-envify "^1.1.0"
+
+regenerate-unicode-properties@^10.1.0:
+ version "10.1.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz#7c3192cab6dd24e21cb4461e5ddd7dd24fa8374c"
+ integrity sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==
+ dependencies:
+ regenerate "^1.4.2"
+
+regenerate@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
+ integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==
+
+regenerator-runtime@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
+ integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
+
+regenerator-transform@^0.15.2:
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4"
+ integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==
+ dependencies:
+ "@babel/runtime" "^7.8.4"
+
+regexpu-core@^5.3.1:
+ version "5.3.2"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b"
+ integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==
+ dependencies:
+ "@babel/regjsgen" "^0.8.0"
+ regenerate "^1.4.2"
+ regenerate-unicode-properties "^10.1.0"
+ regjsparser "^0.9.1"
+ unicode-match-property-ecmascript "^2.0.0"
+ unicode-match-property-value-ecmascript "^2.1.0"
+
+regjsparser@^0.9.1:
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709"
+ integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==
+ dependencies:
+ jsesc "~0.5.0"
+
+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.14.2, resolve@^1.19.0:
+ version "1.22.4"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34"
+ integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==
+ dependencies:
+ is-core-module "^2.13.0"
+ path-parse "^1.0.7"
+ supports-preserve-symlinks-flag "^1.0.0"
+
+scheduler@^0.23.0:
+ version "0.23.0"
+ resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
+ integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
+ dependencies:
+ loose-envify "^1.1.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==
+
+source-map-js@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
+ integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
+
+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.7.3:
+ version "0.7.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
+ integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
+
+streamsearch@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
+ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
+
+styled-jsx@5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
+ integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==
+ dependencies:
+ client-only "0.0.1"
+
+stylis@4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
+ integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
+
+stylis@^3.5.4:
+ version "3.5.4"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz#f665f25f5e299cf3d64654ab949a57c768b73fbe"
+ integrity sha512-8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==
+
+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==
+
+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==
+
+ts-invariant@^0.10.3:
+ version "0.10.3"
+ resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c"
+ integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==
+ dependencies:
+ tslib "^2.1.0"
+
+tslib@^2.1.0, tslib@^2.4.0:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
+
+typescript@5.1.6:
+ version "5.1.6"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
+ integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
+
+unicode-canonical-property-names-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
+ integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+
+unicode-match-property-ecmascript@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
+ integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==
+ dependencies:
+ unicode-canonical-property-names-ecmascript "^2.0.0"
+ unicode-property-aliases-ecmascript "^2.0.0"
+
+unicode-match-property-value-ecmascript@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
+ integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
+
+unicode-property-aliases-ecmascript@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd"
+ integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==
+
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
+update-browserslist-db@^1.0.11:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
+ integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+watchpack@2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
+ integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
+ dependencies:
+ glob-to-regexp "^0.4.1"
+ graceful-fs "^4.1.2"
+
+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==
+
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+zod@3.21.4:
+ version "3.21.4"
+ resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"
+ integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==
diff --git a/apps/zero-runtime-vite-app/README.md b/apps/zero-runtime-vite-app/README.md
index 5b2a039de9e679..74df961a96f6a9 100644
--- a/apps/zero-runtime-vite-app/README.md
+++ b/apps/zero-runtime-vite-app/README.md
@@ -9,8 +9,9 @@ You can either run `yarn release:build` command to build all the packages, or yo
1. `@mui/zero-runtime`
2. `@mui/zero-tag-processor`
+3. `@mui/zero-vite-plugin`
-Make sure you have also run `yarn release:build` at least once because we also use `@mui/material` and `@mui/system` packages. On subsequent runs, you can only build the above 2 packages using -
+Make sure you have also run `yarn release:build` at least once because we also use `@mui/material` and `@mui/system` packages. On subsequent runs, you can only build the above packages using -
```bash
yarn build
@@ -19,7 +20,7 @@ yarn build
After building, you can run the project by changing into the directory and then
1. Install dependencies using `yarn install`
-2. Start the dev server using `yarn vite`
-3. Build the code using `yarn vite build`
+2. Start the dev server using `yarn dev`
+3. Build the code using `yarn build`
Optionally, before running the dev server, you can run `yarn vite optimize --force` if it logged some error during `yarn vite`.
diff --git a/apps/zero-runtime-vite-app/package.json b/apps/zero-runtime-vite-app/package.json
index 786102223aff7e..3712e705359955 100644
--- a/apps/zero-runtime-vite-app/package.json
+++ b/apps/zero-runtime-vite-app/package.json
@@ -1,5 +1,5 @@
{
- "name": "zero-runtime-vite-app",
+ "name": "@app/zero-runtime-vite-app",
"version": "0.0.0",
"private": true,
"type": "module",
@@ -13,8 +13,8 @@
"react-dom": "^18.2.0"
},
"devDependencies": {
- "@mui/utils": "^5.14.8",
- "@mui/material": "^5.14.8",
+ "@mui/utils": "file:../../packages/mui-utils/build",
+ "@mui/material": "file:../../packages/mui-material/build",
"@mui/zero-vite-plugin": "file:../../packages/zero-vite-plugin/build",
"@vitejs/plugin-react": "^4.0.4",
"vite": "4.4.9"
diff --git a/apps/zero-runtime-vite-app/yarn.lock b/apps/zero-runtime-vite-app/yarn.lock
index 8b11f9f9212e04..81e6d7676a95bf 100644
--- a/apps/zero-runtime-vite-app/yarn.lock
+++ b/apps/zero-runtime-vite-app/yarn.lock
@@ -10,46 +10,46 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3"
- integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13":
+ version "7.22.13"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
+ integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
dependencies:
- "@babel/highlight" "^7.22.10"
+ "@babel/highlight" "^7.22.13"
chalk "^2.4.2"
-"@babel/compat-data@^7.22.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
+"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9":
version "7.22.9"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.9.tgz#71cdb00a1ce3a329ce4cbec3a44f9fef35669730"
integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
-"@babel/core@^7.22.10", "@babel/core@^7.22.9":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35"
- integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw==
+"@babel/core@^7.22.17", "@babel/core@^7.22.9":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.17.tgz#2f9b0b395985967203514b24ee50f9fd0639c866"
+ integrity sha512-2EENLmhpwplDux5PSsZnSbnSkB3tZ6QTksgO25xwEL7pIDcNOMhF5v/s6RzwjMZzZzw9Ofc30gHv5ChCC8pifQ==
dependencies:
"@ampproject/remapping" "^2.2.0"
- "@babel/code-frame" "^7.22.10"
- "@babel/generator" "^7.22.10"
- "@babel/helper-compilation-targets" "^7.22.10"
- "@babel/helper-module-transforms" "^7.22.9"
- "@babel/helpers" "^7.22.10"
- "@babel/parser" "^7.22.10"
- "@babel/template" "^7.22.5"
- "@babel/traverse" "^7.22.10"
- "@babel/types" "^7.22.10"
+ "@babel/code-frame" "^7.22.13"
+ "@babel/generator" "^7.22.15"
+ "@babel/helper-compilation-targets" "^7.22.15"
+ "@babel/helper-module-transforms" "^7.22.17"
+ "@babel/helpers" "^7.22.15"
+ "@babel/parser" "^7.22.16"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.22.17"
+ "@babel/types" "^7.22.17"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
- json5 "^2.2.2"
+ json5 "^2.2.3"
semver "^6.3.1"
-"@babel/generator@^7.22.10", "@babel/generator@^7.22.9":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722"
- integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==
+"@babel/generator@^7.22.15", "@babel/generator@^7.22.9":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.15.tgz#1564189c7ec94cb8f77b5e8a90c4d200d21b2339"
+ integrity sha512-Zu9oWARBqeVOW0dZOjXc3JObrzuqothQ3y/n1kUtrjCoCPLkXUwMvOo/F/TCfoHMbWIFlWwpZtkZVb9ga4U2pA==
dependencies:
- "@babel/types" "^7.22.10"
+ "@babel/types" "^7.22.15"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
@@ -62,32 +62,32 @@
"@babel/types" "^7.22.5"
"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9"
- integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ==
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956"
+ integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==
dependencies:
- "@babel/types" "^7.22.10"
+ "@babel/types" "^7.22.15"
-"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024"
- integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q==
+"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52"
+ integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==
dependencies:
"@babel/compat-data" "^7.22.9"
- "@babel/helper-validator-option" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.15"
browserslist "^4.21.9"
lru-cache "^5.1.1"
semver "^6.3.1"
-"@babel/helper-create-class-features-plugin@^7.22.5":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3"
- integrity sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA==
+"@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4"
+ integrity sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-function-name" "^7.22.5"
- "@babel/helper-member-expression-to-functions" "^7.22.5"
+ "@babel/helper-member-expression-to-functions" "^7.22.15"
"@babel/helper-optimise-call-expression" "^7.22.5"
"@babel/helper-replace-supers" "^7.22.9"
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
@@ -95,9 +95,9 @@
semver "^6.3.1"
"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.5":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.9.tgz#9d8e61a8d9366fe66198f57c40565663de0825f6"
- integrity sha512-+svjVa/tFwsNSG4NEy1h85+HQ5imbT92Q5/bgtS7P0GTQlP8WuFdqsiABmQouhiFGyV66oGxZFpeYHza1rNsKw==
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1"
+ integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
regexpu-core "^5.3.1"
@@ -134,30 +134,30 @@
dependencies:
"@babel/types" "^7.22.5"
-"@babel/helper-member-expression-to-functions@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.5.tgz#0a7c56117cad3372fbf8d2fb4bf8f8d64a1e76b2"
- integrity sha512-aBiH1NKMG0H2cGZqspNvsaBe6wNGjbJjuLy29aU+eDZjSbbN53BaxlpB02xm9v34pLTZ1nIQPFYn2qMZoa5BQQ==
+"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.22.15.tgz#b95a144896f6d491ca7863576f820f3628818621"
+ integrity sha512-qLNsZbgrNh0fDQBCPocSL8guki1hcPvltGDv/NxvUoABwFq7GkKSu1nRXeJkVZc+wJvne2E0RKQz+2SQrz6eAA==
dependencies:
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.22.15"
-"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
- integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
+"@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0"
+ integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==
dependencies:
- "@babel/types" "^7.22.5"
+ "@babel/types" "^7.22.15"
-"@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.9.tgz#92dfcb1fbbb2bc62529024f72d942a8c97142129"
- integrity sha512-t+WA2Xn5K+rTeGtC8jCsdAH52bjggG5TKRuRrAGNM/mjIbO4GxvlLMFOEz9wXY5I2XQ60PMFsAG2WIcG82dQMQ==
+"@babel/helper-module-transforms@^7.22.15", "@babel/helper-module-transforms@^7.22.17", "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.22.9":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.22.17.tgz#7edf129097a51ccc12443adbc6320e90eab76693"
+ integrity sha512-XouDDhQESrLHTpnBtCKExJdyY4gJCdrvH2Pyv8r8kovX2U8G0dRUOT45T9XlbLtuu9CLXP15eusnkprhoPV5iQ==
dependencies:
"@babel/helper-environment-visitor" "^7.22.5"
- "@babel/helper-module-imports" "^7.22.5"
+ "@babel/helper-module-imports" "^7.22.15"
"@babel/helper-simple-access" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/helper-validator-identifier" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.15"
"@babel/helper-optimise-call-expression@^7.22.5":
version "7.22.5"
@@ -172,13 +172,13 @@
integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9":
- version "7.22.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82"
- integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ==
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.17.tgz#dabaa50622b3b4670bd6546fc8db23eb12d89da0"
+ integrity sha512-bxH77R5gjH3Nkde6/LuncQoLaP16THYPscurp1S8z7S9ZgezCyV3G8Hc+TZiCmY8pz4fp8CvKSgtJMW0FkLAxA==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
"@babel/helper-environment-visitor" "^7.22.5"
- "@babel/helper-wrap-function" "^7.22.9"
+ "@babel/helper-wrap-function" "^7.22.17"
"@babel/helper-replace-supers@^7.22.5", "@babel/helper-replace-supers@^7.22.9":
version "7.22.9"
@@ -215,63 +215,63 @@
resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
-"@babel/helper-validator-identifier@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
- integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
+"@babel/helper-validator-identifier@^7.22.15", "@babel/helper-validator-identifier@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz#601fa28e4cc06786c18912dca138cec73b882044"
+ integrity sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==
-"@babel/helper-validator-option@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.5.tgz#de52000a15a177413c8234fa3a8af4ee8102d0ac"
- integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw==
+"@babel/helper-validator-option@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040"
+ integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==
-"@babel/helper-wrap-function@^7.22.9":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614"
- integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ==
+"@babel/helper-wrap-function@^7.22.17":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.17.tgz#222ac3ff9cc8f9b617cc1e5db75c0b538e722801"
+ integrity sha512-nAhoheCMlrqU41tAojw9GpVEKDlTS8r3lzFmF0lP52LwblCPbuFSO7nGIZoIcoU5NIm1ABrna0cJExE4Ay6l2Q==
dependencies:
"@babel/helper-function-name" "^7.22.5"
- "@babel/template" "^7.22.5"
- "@babel/types" "^7.22.10"
+ "@babel/template" "^7.22.15"
+ "@babel/types" "^7.22.17"
-"@babel/helpers@^7.22.10":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a"
- integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw==
+"@babel/helpers@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.15.tgz#f09c3df31e86e3ea0b7ff7556d85cdebd47ea6f1"
+ integrity sha512-7pAjK0aSdxOwR+CcYAqgWOGy5dcfvzsTIfFTb2odQqW47MDfv14UaJDY6eng8ylM2EaeKXdxaSWESbkmaQHTmw==
dependencies:
- "@babel/template" "^7.22.5"
- "@babel/traverse" "^7.22.10"
- "@babel/types" "^7.22.10"
+ "@babel/template" "^7.22.15"
+ "@babel/traverse" "^7.22.15"
+ "@babel/types" "^7.22.15"
-"@babel/highlight@^7.22.10":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7"
- integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==
+"@babel/highlight@^7.22.13":
+ version "7.22.13"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16"
+ integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==
dependencies:
"@babel/helper-validator-identifier" "^7.22.5"
chalk "^2.4.2"
js-tokens "^4.0.0"
-"@babel/parser@^7.22.10", "@babel/parser@^7.22.5":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55"
- integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ==
+"@babel/parser@^7.22.15", "@babel/parser@^7.22.16":
+ version "7.22.16"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.16.tgz#180aead7f247305cce6551bea2720934e2fa2c95"
+ integrity sha512-+gPfKv8UWeKKeJTUxe59+OobVcrYHETCsORl61EmSkmgymguYk/X5bp7GuUIXaFsc6y++v8ZxPsLSSuujqDphA==
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.5.tgz#87245a21cd69a73b0b81bcda98d443d6df08f05e"
- integrity sha512-NP1M5Rf+u2Gw9qfSO4ihjcTGW5zXTi36ITLd4/EoAcEhIZ0yjMqmftDNl3QC19CX7olhrjpyU454g/2W7X0jvQ==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962"
+ integrity sha512-FB9iYlz7rURmRJyXRKEnalYPPdn87H5no108cyuQQyMwlpJ2SJtpIUBI27kdTin956pz+LPypkPVPUTlxOmrsg==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.5.tgz#fef09f9499b1f1c930da8a0c419db42167d792ca"
- integrity sha512-31Bb65aZaUwqCbWMnZPduIZxCBngHFlzyN6Dq6KAJjtx+lx6ohKHubc61OomYi7XwVD4Ol0XCVz4h+pYFR048g==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.22.15.tgz#2aeb91d337d4e1a1e7ce85b76a37f5301781200f"
+ integrity sha512-Hyph9LseGvAeeXzikV88bczhsrLrIZqDPxO+sSmAunMPaGrBGhfMWzCPYTtiW9t+HzSE2wtV8e5cc5P6r1xMDQ==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
- "@babel/plugin-transform-optional-chaining" "^7.22.5"
+ "@babel/plugin-transform-optional-chaining" "^7.22.15"
"@babel/plugin-proposal-export-namespace-from@^7.18.9":
version "7.18.9"
@@ -420,10 +420,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-async-generator-functions@^7.22.10":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz#45946cd17f915b10e65c29b8ed18a0a50fc648c8"
- integrity sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g==
+"@babel/plugin-transform-async-generator-functions@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.15.tgz#3b153af4a6b779f340d5b80d3f634f55820aefa3"
+ integrity sha512-jBm1Es25Y+tVoTi5rfd5t1KLmL8ogLKpXszboWOTTtGFGz2RKnQe2yn7HbZ+kb/B8N0FVSGQo874NSlOU1T4+w==
dependencies:
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
@@ -446,10 +446,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-block-scoping@^7.22.10":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa"
- integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg==
+"@babel/plugin-transform-block-scoping@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.15.tgz#494eb82b87b5f8b1d8f6f28ea74078ec0a10a841"
+ integrity sha512-G1czpdJBZCtngoK1sJgloLiOHUnkb/bLZwqVZD8kXmq0ZnVfTTWUcs9OWtp0mBtYJ+4LQY1fllqBkOIPhXmFmw==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -461,27 +461,27 @@
"@babel/helper-create-class-features-plugin" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-class-static-block@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.5.tgz#3e40c46f048403472d6f4183116d5e46b1bff5ba"
- integrity sha512-SPToJ5eYZLxlnp1UzdARpOGeC2GbHvr9d/UV0EukuVx8atktg194oe+C5BqQ8jRTkgLRVOPYeXRSBg1IlMoVRA==
+"@babel/plugin-transform-class-static-block@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.22.11.tgz#dc8cc6e498f55692ac6b4b89e56d87cec766c974"
+ integrity sha512-GMM8gGmqI7guS/llMFk1bJDkKfn3v3C4KHK9Yg1ey5qcHcOlKb0QvcMrgzvxo+T03/4szNh5lghY+fEC98Kq9g==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.11"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-transform-classes@^7.22.6":
- version "7.22.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.6.tgz#e04d7d804ed5b8501311293d1a0e6d43e94c3363"
- integrity sha512-58EgM6nuPNG6Py4Z3zSuu0xWu2VfodiMi72Jt5Kj2FECmaYk1RrTXA45z6KBFsu9tRgwQDwIiY4FXTt+YsSFAQ==
+"@babel/plugin-transform-classes@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.22.15.tgz#aaf4753aee262a232bbc95451b4bdf9599c65a0b"
+ integrity sha512-VbbC3PGjBdE0wAWDdHM9G8Gm977pnYI0XpqMd6LrKISj8/DJXEsWqgRuTYaNE9Bv0JGhTZUzHDlMk18IpOuoqw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-compilation-targets" "^7.22.6"
+ "@babel/helper-compilation-targets" "^7.22.15"
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-function-name" "^7.22.5"
"@babel/helper-optimise-call-expression" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-replace-supers" "^7.22.5"
+ "@babel/helper-replace-supers" "^7.22.9"
"@babel/helper-split-export-declaration" "^7.22.6"
globals "^11.1.0"
@@ -493,10 +493,10 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/template" "^7.22.5"
-"@babel/plugin-transform-destructuring@^7.22.10":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2"
- integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw==
+"@babel/plugin-transform-destructuring@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.15.tgz#e7404ea5bb3387073b9754be654eecb578324694"
+ integrity sha512-HzG8sFl1ZVGTme74Nw+X01XsUTqERVQ6/RLHo3XjGRzm7XD6QTtfS3NJotVgCGy8BzkDqRjRBD8dAyJn5TuvSQ==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -515,10 +515,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-dynamic-import@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.5.tgz#d6908a8916a810468c4edff73b5b75bda6ad393e"
- integrity sha512-0MC3ppTB1AMxd8fXjSrbPa7LT9hrImt+/fcj+Pg5YMD7UQyWp/02+JWpdnCymmsXwIx5Z+sYn1bwCn4ZJNvhqQ==
+"@babel/plugin-transform-dynamic-import@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.22.11.tgz#2c7722d2a5c01839eaf31518c6ff96d408e447aa"
+ integrity sha512-g/21plo58sfteWjaO0ZNVb+uEOkJNjAaHhbejrnBmu011l/eNDScmkbjCC3l4FKb10ViaGU4aOkFznSu2zRHgA==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
@@ -531,18 +531,18 @@
"@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-export-namespace-from@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.5.tgz#57c41cb1d0613d22f548fddd8b288eedb9973a5b"
- integrity sha512-X4hhm7FRnPgd4nDA4b/5V280xCx6oL7Oob5+9qVS5C13Zq4bh1qq7LU0GgRU6b5dBWBvhGaXYVB4AcN6+ol6vg==
+"@babel/plugin-transform-export-namespace-from@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.22.11.tgz#b3c84c8f19880b6c7440108f8929caf6056db26c"
+ integrity sha512-xa7aad7q7OiT8oNZ1mU7NrISjlSkVdMbNxn9IuLZyL9AJEhs1Apba3I+u5riX1dIkdptP5EKDG5XDPByWxtehw==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-transform-for-of@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.5.tgz#ab1b8a200a8f990137aff9a084f8de4099ab173f"
- integrity sha512-3kxQjX1dU9uudwSshyLeEipvrLjBCVthCgeTp6CzE/9JYrlAIaeekVxRpCWsDDfYTfRZRoCeZatCQvwo+wvK8A==
+"@babel/plugin-transform-for-of@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.22.15.tgz#f64b4ccc3a4f131a996388fae7680b472b306b29"
+ integrity sha512-me6VGeHsx30+xh9fbDLLPi0J1HzmeIIyenoOQHuw2D4m2SAU3NrspX5XxJLBpqn5yrLzrlw2Iy3RA//Bx27iOA==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -555,10 +555,10 @@
"@babel/helper-function-name" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-json-strings@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.5.tgz#14b64352fdf7e1f737eed68de1a1468bd2a77ec0"
- integrity sha512-DuCRB7fu8MyTLbEQd1ew3R85nx/88yMoqo2uPSjevMj3yoN7CDM8jkgrY0wmVxfJZyJ/B9fE1iq7EQppWQmR5A==
+"@babel/plugin-transform-json-strings@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.22.11.tgz#689a34e1eed1928a40954e37f74509f48af67835"
+ integrity sha512-CxT5tCqpA9/jXFlme9xIBCc5RPtdDq3JpkkhgHQqtDdiTnTI0jtZ0QzXhr5DILeYifDPp2wvY2ad+7+hLMW5Pw==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-json-strings" "^7.8.3"
@@ -570,10 +570,10 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-logical-assignment-operators@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.5.tgz#66ae5f068fd5a9a5dc570df16f56c2a8462a9d6c"
- integrity sha512-MQQOUW1KL8X0cDWfbwYP+TbVbZm16QmQXJQ+vndPtH/BoO0lOKpVoEDMI7+PskYxH+IiE0tS8xZye0qr1lGzSA==
+"@babel/plugin-transform-logical-assignment-operators@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.22.11.tgz#24c522a61688bde045b7d9bc3c2597a4d948fc9c"
+ integrity sha512-qQwRTP4+6xFCDV5k7gZBF3C31K34ut0tbEcTKxlX/0KXxm9GLcO14p570aWxFvVzx6QAfPgq7gaeIHXJC8LswQ==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
@@ -593,22 +593,22 @@
"@babel/helper-module-transforms" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-modules-commonjs@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.5.tgz#7d9875908d19b8c0536085af7b053fd5bd651bfa"
- integrity sha512-B4pzOXj+ONRmuaQTg05b3y/4DuFz3WcCNAXPLb2Q0GT0TrGKGxNKV4jwsXts+StaM0LQczZbOpj8o1DLPDJIiA==
+"@babel/plugin-transform-modules-commonjs@^7.22.15", "@babel/plugin-transform-modules-commonjs@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.22.15.tgz#b11810117ed4ee7691b29bd29fd9f3f98276034f"
+ integrity sha512-jWL4eh90w0HQOTKP2MoXXUpVxilxsB2Vl4ji69rSjS3EcZ/v4sBmn+A3NpepuJzBhOaEBbR7udonlHHn5DWidg==
dependencies:
- "@babel/helper-module-transforms" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.22.15"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-simple-access" "^7.22.5"
-"@babel/plugin-transform-modules-systemjs@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.5.tgz#18c31410b5e579a0092638f95c896c2a98a5d496"
- integrity sha512-emtEpoaTMsOs6Tzz+nbmcePl6AKVtS1yC4YNAeMun9U8YCsgadPNxnOPQ8GhHFB2qdx+LZu9LgoC0Lthuu05DQ==
+"@babel/plugin-transform-modules-systemjs@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.22.11.tgz#3386be5875d316493b517207e8f1931d93154bb1"
+ integrity sha512-rIqHmHoMEOhI3VkVf5jQ15l539KrwhzqcBO6wdCNWPWc/JWt9ILNYNUssbRpeq0qWns8svuw8LnMNCvWBIJ8wA==
dependencies:
"@babel/helper-hoist-variables" "^7.22.5"
- "@babel/helper-module-transforms" "^7.22.5"
+ "@babel/helper-module-transforms" "^7.22.9"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-validator-identifier" "^7.22.5"
@@ -635,32 +635,32 @@
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-nullish-coalescing-operator@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.5.tgz#f8872c65776e0b552e0849d7596cddd416c3e381"
- integrity sha512-6CF8g6z1dNYZ/VXok5uYkkBBICHZPiGEl7oDnAx2Mt1hlHVHOSIKWJaXHjQJA5VB43KZnXZDIexMchY4y2PGdA==
+"@babel/plugin-transform-nullish-coalescing-operator@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.22.11.tgz#debef6c8ba795f5ac67cd861a81b744c5d38d9fc"
+ integrity sha512-YZWOw4HxXrotb5xsjMJUDlLgcDXSfO9eCmdl1bgW4+/lAGdkjaEvOnQ4p5WKKdUgSzO39dgPl0pTnfxm0OAXcg==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-transform-numeric-separator@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.5.tgz#57226a2ed9e512b9b446517ab6fa2d17abb83f58"
- integrity sha512-NbslED1/6M+sXiwwtcAB/nieypGw02Ejf4KtDeMkCEpP6gWFMX1wI9WKYua+4oBneCCEmulOkRpwywypVZzs/g==
+"@babel/plugin-transform-numeric-separator@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.22.11.tgz#498d77dc45a6c6db74bb829c02a01c1d719cbfbd"
+ integrity sha512-3dzU4QGPsILdJbASKhF/V2TVP+gJya1PsueQCxIPCEcerqF21oEcrob4mzjsp2Py/1nLfF5m+xYNMDpmA8vffg==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-transform-object-rest-spread@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.5.tgz#9686dc3447df4753b0b2a2fae7e8bc33cdc1f2e1"
- integrity sha512-Kk3lyDmEslH9DnvCDA1s1kkd3YWQITiBOHngOtDL9Pt6BZjzqb6hiOlb8VfjiiQJ2unmegBqZu0rx5RxJb5vmQ==
+"@babel/plugin-transform-object-rest-spread@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.22.15.tgz#21a95db166be59b91cde48775310c0df6e1da56f"
+ integrity sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==
dependencies:
- "@babel/compat-data" "^7.22.5"
- "@babel/helper-compilation-targets" "^7.22.5"
+ "@babel/compat-data" "^7.22.9"
+ "@babel/helper-compilation-targets" "^7.22.15"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.22.5"
+ "@babel/plugin-transform-parameters" "^7.22.15"
"@babel/plugin-transform-object-super@^7.22.5":
version "7.22.5"
@@ -670,27 +670,27 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-replace-supers" "^7.22.5"
-"@babel/plugin-transform-optional-catch-binding@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.5.tgz#842080be3076703be0eaf32ead6ac8174edee333"
- integrity sha512-pH8orJahy+hzZje5b8e2QIlBWQvGpelS76C63Z+jhZKsmzfNaPQ+LaW6dcJ9bxTpo1mtXbgHwy765Ro3jftmUg==
+"@babel/plugin-transform-optional-catch-binding@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.22.11.tgz#461cc4f578a127bb055527b3e77404cad38c08e0"
+ integrity sha512-rli0WxesXUeCJnMYhzAglEjLWVDF6ahb45HuprcmQuLidBJFWjNnOzssk2kuc6e33FlLaiZhG/kUIzUMWdBKaQ==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz#076d28a7e074392e840d4ae587d83445bac0372a"
- integrity sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g==
+"@babel/plugin-transform-optional-chaining@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.15.tgz#d7a5996c2f7ca4ad2ad16dbb74444e5c4385b1ba"
+ integrity sha512-ngQ2tBhq5vvSJw2Q2Z9i7ealNkpDMU0rGWnHPKqRZO0tzZ5tlaoz4hDvhXioOoaE0X2vfNss1djwg0DXlfu30A==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/helper-skip-transparent-expression-wrappers" "^7.22.5"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-transform-parameters@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.5.tgz#c3542dd3c39b42c8069936e48717a8d179d63a18"
- integrity sha512-AVkFUBurORBREOmHRKo06FjHYgjrabpdqRSwq6+C7R5iTCZOsM4QbcB27St0a4U6fffyAOqh3s/qEfybAhfivg==
+"@babel/plugin-transform-parameters@^7.22.15":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.22.15.tgz#719ca82a01d177af358df64a514d64c2e3edb114"
+ integrity sha512-hjk7qKIqhyzhhUvRT683TYQOFa/4cQKwQy7ALvTpODswN40MljzNDa0YldevS6tGbxwaEKVn502JmY0dP7qEtQ==
dependencies:
"@babel/helper-plugin-utils" "^7.22.5"
@@ -702,13 +702,13 @@
"@babel/helper-create-class-features-plugin" "^7.22.5"
"@babel/helper-plugin-utils" "^7.22.5"
-"@babel/plugin-transform-private-property-in-object@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.5.tgz#07a77f28cbb251546a43d175a1dda4cf3ef83e32"
- integrity sha512-/9xnaTTJcVoBtSSmrVyhtSvO3kbqS2ODoh2juEU72c3aYonNF0OMGiaz2gjukyKM2wBBYJP38S4JiE0Wfb5VMQ==
+"@babel/plugin-transform-private-property-in-object@^7.22.11":
+ version "7.22.11"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.22.11.tgz#ad45c4fc440e9cb84c718ed0906d96cf40f9a4e1"
+ integrity sha512-sSCbqZDBKHetvjSwpyWzhuHkmW5RummxJBVbYLkGkaiTOWGxml7SXt0iWa03bzxFIx7wOj3g/ILRd0RcJKBeSQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.22.5"
- "@babel/helper-create-class-features-plugin" "^7.22.5"
+ "@babel/helper-create-class-features-plugin" "^7.22.11"
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
@@ -749,11 +749,11 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/plugin-transform-runtime@^7.22.9":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46"
- integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA==
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.15.tgz#3a625c4c05a39e932d7d34f5d4895cdd0172fdc9"
+ integrity sha512-tEVLhk8NRZSmwQ0DJtxxhTrCht1HVo8VaMzYT4w6lwyKBuHsgoioAUA7/6eT2fRfc5/23fuGdlwIxXhRVgWr4g==
dependencies:
- "@babel/helper-module-imports" "^7.22.5"
+ "@babel/helper-module-imports" "^7.22.15"
"@babel/helper-plugin-utils" "^7.22.5"
babel-plugin-polyfill-corejs2 "^0.4.5"
babel-plugin-polyfill-corejs3 "^0.8.3"
@@ -828,16 +828,16 @@
"@babel/helper-plugin-utils" "^7.22.5"
"@babel/preset-env@^7.22.9":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f"
- integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A==
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.15.tgz#142716f8e00bc030dae5b2ac6a46fbd8b3e18ff8"
+ integrity sha512-tZFHr54GBkHk6hQuVA8w4Fmq+MSPsfvMG0vPnOYyTnJpyfMqybL8/MbNCPRT9zc2KBO2pe4tq15g6Uno4Jpoag==
dependencies:
"@babel/compat-data" "^7.22.9"
- "@babel/helper-compilation-targets" "^7.22.10"
+ "@babel/helper-compilation-targets" "^7.22.15"
"@babel/helper-plugin-utils" "^7.22.5"
- "@babel/helper-validator-option" "^7.22.5"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.5"
+ "@babel/helper-validator-option" "^7.22.15"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.15"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.22.15"
"@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
@@ -858,41 +858,41 @@
"@babel/plugin-syntax-top-level-await" "^7.14.5"
"@babel/plugin-syntax-unicode-sets-regex" "^7.18.6"
"@babel/plugin-transform-arrow-functions" "^7.22.5"
- "@babel/plugin-transform-async-generator-functions" "^7.22.10"
+ "@babel/plugin-transform-async-generator-functions" "^7.22.15"
"@babel/plugin-transform-async-to-generator" "^7.22.5"
"@babel/plugin-transform-block-scoped-functions" "^7.22.5"
- "@babel/plugin-transform-block-scoping" "^7.22.10"
+ "@babel/plugin-transform-block-scoping" "^7.22.15"
"@babel/plugin-transform-class-properties" "^7.22.5"
- "@babel/plugin-transform-class-static-block" "^7.22.5"
- "@babel/plugin-transform-classes" "^7.22.6"
+ "@babel/plugin-transform-class-static-block" "^7.22.11"
+ "@babel/plugin-transform-classes" "^7.22.15"
"@babel/plugin-transform-computed-properties" "^7.22.5"
- "@babel/plugin-transform-destructuring" "^7.22.10"
+ "@babel/plugin-transform-destructuring" "^7.22.15"
"@babel/plugin-transform-dotall-regex" "^7.22.5"
"@babel/plugin-transform-duplicate-keys" "^7.22.5"
- "@babel/plugin-transform-dynamic-import" "^7.22.5"
+ "@babel/plugin-transform-dynamic-import" "^7.22.11"
"@babel/plugin-transform-exponentiation-operator" "^7.22.5"
- "@babel/plugin-transform-export-namespace-from" "^7.22.5"
- "@babel/plugin-transform-for-of" "^7.22.5"
+ "@babel/plugin-transform-export-namespace-from" "^7.22.11"
+ "@babel/plugin-transform-for-of" "^7.22.15"
"@babel/plugin-transform-function-name" "^7.22.5"
- "@babel/plugin-transform-json-strings" "^7.22.5"
+ "@babel/plugin-transform-json-strings" "^7.22.11"
"@babel/plugin-transform-literals" "^7.22.5"
- "@babel/plugin-transform-logical-assignment-operators" "^7.22.5"
+ "@babel/plugin-transform-logical-assignment-operators" "^7.22.11"
"@babel/plugin-transform-member-expression-literals" "^7.22.5"
"@babel/plugin-transform-modules-amd" "^7.22.5"
- "@babel/plugin-transform-modules-commonjs" "^7.22.5"
- "@babel/plugin-transform-modules-systemjs" "^7.22.5"
+ "@babel/plugin-transform-modules-commonjs" "^7.22.15"
+ "@babel/plugin-transform-modules-systemjs" "^7.22.11"
"@babel/plugin-transform-modules-umd" "^7.22.5"
"@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5"
"@babel/plugin-transform-new-target" "^7.22.5"
- "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.5"
- "@babel/plugin-transform-numeric-separator" "^7.22.5"
- "@babel/plugin-transform-object-rest-spread" "^7.22.5"
+ "@babel/plugin-transform-nullish-coalescing-operator" "^7.22.11"
+ "@babel/plugin-transform-numeric-separator" "^7.22.11"
+ "@babel/plugin-transform-object-rest-spread" "^7.22.15"
"@babel/plugin-transform-object-super" "^7.22.5"
- "@babel/plugin-transform-optional-catch-binding" "^7.22.5"
- "@babel/plugin-transform-optional-chaining" "^7.22.10"
- "@babel/plugin-transform-parameters" "^7.22.5"
+ "@babel/plugin-transform-optional-catch-binding" "^7.22.11"
+ "@babel/plugin-transform-optional-chaining" "^7.22.15"
+ "@babel/plugin-transform-parameters" "^7.22.15"
"@babel/plugin-transform-private-methods" "^7.22.5"
- "@babel/plugin-transform-private-property-in-object" "^7.22.5"
+ "@babel/plugin-transform-private-property-in-object" "^7.22.11"
"@babel/plugin-transform-property-literals" "^7.22.5"
"@babel/plugin-transform-regenerator" "^7.22.10"
"@babel/plugin-transform-reserved-words" "^7.22.5"
@@ -906,7 +906,7 @@
"@babel/plugin-transform-unicode-regex" "^7.22.5"
"@babel/plugin-transform-unicode-sets-regex" "^7.22.5"
"@babel/preset-modules" "0.1.6-no-external-plugins"
- "@babel/types" "^7.22.10"
+ "@babel/types" "^7.22.15"
babel-plugin-polyfill-corejs2 "^0.4.5"
babel-plugin-polyfill-corejs3 "^0.8.3"
babel-plugin-polyfill-regenerator "^0.5.2"
@@ -927,52 +927,45 @@
resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310"
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
-"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.22.10":
- version "7.22.11"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4"
- integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.18.3", "@babel/runtime@^7.22.15", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.15.tgz#38f46494ccf6cf020bd4eed7124b425e83e523b8"
+ integrity sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==
dependencies:
regenerator-runtime "^0.14.0"
-"@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682"
- integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==
+"@babel/template@^7.22.15", "@babel/template@^7.22.5":
+ version "7.22.15"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38"
+ integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==
dependencies:
- regenerator-runtime "^0.14.0"
+ "@babel/code-frame" "^7.22.13"
+ "@babel/parser" "^7.22.15"
+ "@babel/types" "^7.22.15"
-"@babel/template@^7.22.5":
- version "7.22.5"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
- integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
+"@babel/traverse@^7.22.15", "@babel/traverse@^7.22.17", "@babel/traverse@^7.22.8":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.17.tgz#b23c203ab3707e3be816043081b4a994fcacec44"
+ integrity sha512-xK4Uwm0JnAMvxYZxOVecss85WxTEIbTa7bnGyf/+EgCL5Zt3U7htUpEOWv9detPlamGKuRzCqw74xVglDWpPdg==
dependencies:
- "@babel/code-frame" "^7.22.5"
- "@babel/parser" "^7.22.5"
- "@babel/types" "^7.22.5"
-
-"@babel/traverse@^7.22.10", "@babel/traverse@^7.22.8":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa"
- integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig==
- dependencies:
- "@babel/code-frame" "^7.22.10"
- "@babel/generator" "^7.22.10"
+ "@babel/code-frame" "^7.22.13"
+ "@babel/generator" "^7.22.15"
"@babel/helper-environment-visitor" "^7.22.5"
"@babel/helper-function-name" "^7.22.5"
"@babel/helper-hoist-variables" "^7.22.5"
"@babel/helper-split-export-declaration" "^7.22.6"
- "@babel/parser" "^7.22.10"
- "@babel/types" "^7.22.10"
+ "@babel/parser" "^7.22.16"
+ "@babel/types" "^7.22.17"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.4.4":
- version "7.22.10"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03"
- integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg==
+"@babel/types@^7.22.15", "@babel/types@^7.22.17", "@babel/types@^7.22.5", "@babel/types@^7.4.4":
+ version "7.22.17"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.17.tgz#f753352c4610ffddf9c8bc6823f9ff03e2303eee"
+ integrity sha512-YSQPHLFtQNE5xN9tHuZnzu8vPr61wVTBZdfv1meex1NBosa4iT05k/Jw06ddJugi4bk7The/oSwQGFcksmEJQg==
dependencies:
"@babel/helper-string-parser" "^7.22.5"
- "@babel/helper-validator-identifier" "^7.22.5"
+ "@babel/helper-validator-identifier" "^7.22.15"
to-fast-properties "^2.0.0"
"@emotion/babel-plugin@^11.11.0":
@@ -1019,13 +1012,6 @@
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@^1.2.1":
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc"
- integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==
- dependencies:
- "@emotion/memoize" "^0.8.1"
-
"@emotion/memoize@^0.8.1":
version "0.8.1"
resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
@@ -1062,115 +1048,115 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6"
integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==
-"@esbuild/android-arm64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.19.tgz#8735b552b8e0b9a943460d37fbc976b9d9cd4b4e"
- integrity sha512-4+jkUFQxZkQfQOOxfGVZB38YUWHMJX2ihZwF+2nh8m7bHdWXpixiurgGRN3c/KMSwlltbYI0/i929jwBRMFzbA==
-
-"@esbuild/android-arm@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.19.tgz#efd1f33583a893c0cc57f25b1d081af8cdc6bfd9"
- integrity sha512-1uOoDurJYh5MNqPqpj3l/TQCI1V25BXgChEldCB7D6iryBYqYKrbZIhYO5AI9fulf66sM8UJpc3UcCly2Tv28w==
-
-"@esbuild/android-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.19.tgz#d9f35722701a97a2ef69c7a84f1ee2aef2a306a7"
- integrity sha512-ae5sHYiP/Ogj2YNrLZbWkBmyHIDOhPgpkGvFnke7XFGQldBDWvc/AyYwSLpNuKw9UNkgnLlB/jPpnBmlF3G9Bg==
-
-"@esbuild/darwin-arm64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.19.tgz#8cb81b971ee5231acc7de07225f6e18562c359e4"
- integrity sha512-HIpQvNQWFYROmWDANMRL+jZvvTQGOiTuwWBIuAsMaQrnStedM+nEKJBzKQ6bfT9RFKH2wZ+ej+DY7+9xHBTFPg==
-
-"@esbuild/darwin-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.19.tgz#81024ab64232dd323f03796d449f018b59f04ca9"
- integrity sha512-m6JdvXJQt0thNLIcWOeG079h2ivhYH4B5sVCgqb/B29zTcFd7EE8/J1nIUHhdtwGeItdUeqKaqqb4towwxvglQ==
-
-"@esbuild/freebsd-arm64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.19.tgz#9fa91e3b08d10c0adfa71b37372a7627b26e9686"
- integrity sha512-G0p4EFMPZhGn/xVNspUyMQbORH3nlKTV0bFNHPIwLraBuAkTeMyxNviTe0ZXUbIXQrR1lrwniFjNFU4s+x7veQ==
-
-"@esbuild/freebsd-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.19.tgz#ef6f5a85c1bb029fb0076da5b223e50b353e615c"
- integrity sha512-hBxgRlG42+W+j/1/cvlnSa+3+OBKeDCyO7OG2ICya1YJaSCYfSpuG30KfOnQHI7Ytgu4bRqCgrYXxQEzy0zM5Q==
-
-"@esbuild/linux-arm64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.19.tgz#0cef913dcdc1efb1bb04406a8e5f5668b721d89e"
- integrity sha512-X8g33tczY0GsJq3lhyBrjnFtaKjWVpp1gMq5IlF9BQJ3TUfSK74nQnz9mRIEejmcV+OIYn6bkOJeUaU1Knrljg==
-
-"@esbuild/linux-arm@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.19.tgz#39ea874c8e5177b83903bec1883a43f3c163627a"
- integrity sha512-qtWyoQskfJlb9MD45mvzCEKeO4uCnDZ7lPFeNqbfaaJHqBiH9qA5Vu2EuckqYZuFMJWy1l4dxTf9NOulCVfUjg==
-
-"@esbuild/linux-ia32@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.19.tgz#283cd3c3d8380e8fab90583fa86ca1fcc9b9ec57"
- integrity sha512-SAkRWJgb+KN+gOhmbiE6/wu23D6HRcGQi15cB13IVtBZZgXxygTV5GJlUAKLQ5Gcx0gtlmt+XIxEmSqA6sZTOw==
-
-"@esbuild/linux-loong64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.19.tgz#1c69d7928a55b26326398d31d2ac9c82d2297f1b"
- integrity sha512-YLAslaO8NsB9UOxBchos82AOMRDbIAWChwDKfjlGrHSzS3v1kxce7dGlSTsrb0PJwo1KYccypN3VNjQVLtz7LA==
-
-"@esbuild/linux-mips64el@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.19.tgz#b25b352e7645885fa1d01182116c506a78fe4733"
- integrity sha512-vSYFtlYds/oTI8aflEP65xo3MXChMwBOG1eWPGGKs/ev9zkTeXVvciU+nifq8J1JYMz+eQ4J9JDN0O2RKF8+1Q==
-
-"@esbuild/linux-ppc64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.19.tgz#568b5a051f47af732c4314e697bb559a14b3d811"
- integrity sha512-tgG41lRVwlzqO9tv9l7aXYVw35BxKXLtPam1qALScwSqPivI8hjkZLNH0deaaSCYCFT9cBIdB+hUjWFlFFLL9A==
-
-"@esbuild/linux-riscv64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.19.tgz#020729b47ca63321667297d1610bab81cd08a65c"
- integrity sha512-EgBZFLoN1S5RuB4cCJI31pBPsjE1nZ+3+fHRjguq9Ibrzo29bOLSBcH1KZJvRNh5qtd+fcYIGiIUia8Jw5r1lQ==
-
-"@esbuild/linux-s390x@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.19.tgz#ed5cca8dac130d2f736914f9efad5fa15c238c20"
- integrity sha512-q1V1rtHRojAzjSigZEqrcLkpfh5K09ShCoIsdTakozVBnM5rgV58PLFticqDp5UJ9uE0HScov9QNbbl8HBo6QQ==
-
-"@esbuild/linux-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.19.tgz#f8023a38ae02b46c60a134ccbc7ae377b3bec66f"
- integrity sha512-D0IiYjpZRXxGZLQfsydeAD7ZWqdGyFLBj5f2UshJpy09WPs3qizDCsEr8zyzcym6Woj/UI9ZzMIXwvoXVtyt0A==
-
-"@esbuild/netbsd-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.19.tgz#8fd667c535db0a5b346afa2d74ff1fb53477427f"
- integrity sha512-3tt3SOS8L3D54R8oER41UdDshlBIAjYhdWRPiZCTZ1E41+shIZBpTjaW5UaN/jD1ENE/Ok5lkeqhoNMbxstyxw==
-
-"@esbuild/openbsd-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.19.tgz#354d5b54a6bffa381cb513e878880192e07004be"
- integrity sha512-MxbhcuAYQPlfln1EMc4T26OUoeg/YQc6wNoEV8xvktDKZhLtBxjkoeESSo9BbPaGKhAPzusXYj5n8n5A8iZSrA==
-
-"@esbuild/sunos-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.19.tgz#e2de98bd961e04f76f6acf5970263efc7051def5"
- integrity sha512-m0/UOq1wj25JpWqOJxoWBRM9VWc3c32xiNzd+ERlYstUZ6uwx5SZsQUtkiFHaYmcaoj+f6+Tfcl7atuAz3idwQ==
-
-"@esbuild/win32-arm64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.19.tgz#9dca55f0dcbbdb50bf36353d1114f5f71c269275"
- integrity sha512-L4vb6pcoB1cEcXUHU6EPnUhUc4+/tcz4OqlXTWPcSQWxegfmcOprhmIleKKwmMNQVc4wrx/+jB7tGkjjDmiupg==
-
-"@esbuild/win32-ia32@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.19.tgz#db6ea4467e87e6d3fc2177dea35e81f26f7a061d"
- integrity sha512-rQng7LXSKdrDlNDb7/v0fujob6X0GAazoK/IPd9C3oShr642ri8uIBkgM37/l8B3Rd5sBQcqUXoDdEy75XC/jg==
-
-"@esbuild/win32-x64@0.18.19":
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.19.tgz#6105755d7097e0d7e22f893c3e62f143d8137bd0"
- integrity sha512-z69jhyG20Gq4QL5JKPLqUT+eREuqnDAFItLbza4JCmpvUnIlY73YNjd5djlO7kBiiZnvTnJuAbOjIoZIOa1GjA==
+"@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==
"@floating-ui/core@^1.4.1":
version "1.4.1"
@@ -1179,25 +1165,25 @@
dependencies:
"@floating-ui/utils" "^0.1.1"
-"@floating-ui/dom@^1.3.0":
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.1.tgz#88b70defd002fe851f17b4a25efb2d3c04d7a8d7"
- integrity sha512-KwvVcPSXg6mQygvA1TjbN/gh///36kKtllIF8SUm0qpFj8+rvYrpvlYdL1JoA71SHpDqgSSdGOSoQ0Mp3uY5aw==
+"@floating-ui/dom@^1.5.1":
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.2.tgz#6812e89d1d4d4ea32f10d15c3b81feb7f9836d89"
+ integrity sha512-6ArmenS6qJEWmwzczWyhvrXRdI/rI78poBcW0h/456+onlabit+2G+QxHx5xTOX60NBJQXjsCLFbW2CmsXpUog==
dependencies:
"@floating-ui/core" "^1.4.1"
"@floating-ui/utils" "^0.1.1"
-"@floating-ui/react-dom@^2.0.1":
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.1.tgz#7972a4fc488a8c746cded3cfe603b6057c308a91"
- integrity sha512-rZtAmSht4Lry6gdhAJDrCp/6rKN7++JnL1/Anbr/DdeyYXQPxvg/ivrbYvJulbRf4vL8b212suwMM2lxbv+RQA==
+"@floating-ui/react-dom@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20"
+ integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==
dependencies:
- "@floating-ui/dom" "^1.3.0"
+ "@floating-ui/dom" "^1.5.1"
"@floating-ui/utils@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.1.tgz#1a5b1959a528e374e8037c4396c3e825d6cf4a83"
- integrity sha512-m0G6wlnhm/AX0H12IOWtK8gASEMffnX08RtKkCgTdHb9JpHKGloI7icFfLg9ZmQeavcvR0PKmzxClyuFPSjKWw==
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.2.tgz#b7e9309ccce5a0a40ac482cb894f120dba2b357f"
+ integrity sha512-ou3elfqG/hZsbmF4bxeJhPHIf3G2pm0ujc39hYEZrfVqt7Vk/Zji6CXc3W0pmYM8BW1g40U+akTl9DKZhFhInQ==
"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2":
version "0.3.3"
@@ -1321,37 +1307,33 @@
"@linaria/utils" "^4.5.3"
"@rollup/pluginutils" "^4.1.0"
-"@mui/base@5.0.0-beta.14":
- version "5.0.0-beta.14"
- resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.14.tgz#315b67b0fd231cbd47e8d54f8f92be23122e4d66"
- integrity sha512-Je/9JzzYObsuLCIClgE8XvXNFb55IEz8n2NtStUfASfNiVrwiR8t6VVFFuhofehkyTIN34tq1qbBaOjCnOovBw==
+"@mui/base@5.0.0-beta.15":
+ version "5.0.0-beta.15"
+ resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.15.tgz#76bebd377cc3b7fdc80924759a4100e5319ed0f9"
+ integrity sha512-Xtom3YSdi0iwYPtyVRFUEGoRwi6IHWixPwifDKaK+4PkEPtUWMU5YOIJfTsmC59ri+dFvA3oBNSiTPUGGrklZw==
dependencies:
- "@babel/runtime" "^7.22.10"
- "@emotion/is-prop-valid" "^1.2.1"
- "@floating-ui/react-dom" "^2.0.1"
+ "@babel/runtime" "^7.22.15"
+ "@floating-ui/react-dom" "^2.0.2"
"@mui/types" "^7.2.4"
- "@mui/utils" "^5.14.8"
+ "@mui/utils" "^5.14.9"
"@popperjs/core" "^2.11.8"
clsx "^2.0.0"
prop-types "^15.8.1"
- react-is "^18.2.0"
-"@mui/core-downloads-tracker@^5.14.8":
- version "5.14.8"
- resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.8.tgz#9117bd29e94e96dc376f93a28e024666a2456696"
- integrity sha512-8V7ZOC/lKkM03TRHqaThQFIq6bWPnj7L/ZWPh0ymldYFFyh8XdF0ywTgafsofDNYT4StlNknbaTjVHBma3SNjQ==
+"@mui/core-downloads-tracker@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.9.tgz#97a4e2decce1583983b4a0cded8bcb2be1b1cb31"
+ integrity sha512-JAU/R5hM3l2zP1Q4KnioDRhq5V3vZ4mmjEZ+TwARDb2xFhg3p59McacQuzkSu0sUHJnH9aJos36+hU5sPQBcFQ==
-"@mui/material@^5.14.8":
- version "5.14.8"
- resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.8.tgz#1cad40f106f7c983639376589c3f21485fb1d166"
- integrity sha512-fqvDGGF1pXwOOL/f0Gw+KHo/67hasRpf2ApTIJkbuONOk9AUb2jnYMEqCWmL2sUcbbE3ShMbHl8N7HPSsRv1/A==
+"@mui/material@file:../../packages/mui-material/build":
+ version "5.14.9"
dependencies:
- "@babel/runtime" "^7.22.10"
- "@mui/base" "5.0.0-beta.14"
- "@mui/core-downloads-tracker" "^5.14.8"
- "@mui/system" "^5.14.8"
+ "@babel/runtime" "^7.22.15"
+ "@mui/base" "5.0.0-beta.15"
+ "@mui/core-downloads-tracker" "^5.14.9"
+ "@mui/system" "^5.14.9"
"@mui/types" "^7.2.4"
- "@mui/utils" "^5.14.8"
+ "@mui/utils" "^5.14.9"
"@types/react-transition-group" "^4.4.6"
clsx "^2.0.0"
csstype "^3.1.2"
@@ -1359,35 +1341,36 @@
react-is "^18.2.0"
react-transition-group "^4.4.5"
-"@mui/private-theming@^5.14.8":
- version "5.14.8"
- resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.8.tgz#8e224cd10c531d12b871dc59b1f9376028dd13bb"
- integrity sha512-iBzpcl3Mh92XaYpYPdgzzRxNGkjpoDz8rf8/q5m+EBPowFEHV+CCS9hC0Q2pOKLW3VFFikA7w/GHt7n++40JGQ==
+"@mui/private-theming@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.9.tgz#085041c44cc28c25f3431a293339922ec3d9b5f8"
+ integrity sha512-0PzoUFqFXTXiNchhR7K4b7kZunasPOjx6Qf7AagCmfZDNASHedA0x6evHVhnST918x/AHY9xykYNKfB0Z4xMBg==
dependencies:
- "@babel/runtime" "^7.22.10"
- "@mui/utils" "^5.14.8"
+ "@babel/runtime" "^7.22.15"
+ "@mui/utils" "^5.14.9"
prop-types "^15.8.1"
-"@mui/styled-engine@^5.14.8":
- version "5.14.8"
- resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.8.tgz#b7a4d5dc6cbe3ecaa5af5189eb5ad90a62a255eb"
- integrity sha512-LGwOav/Y40PZWZ2yDk4beUoRlc57Vg+Vpxi9V9BBtT2ESAucCgFobkt+T8eVLMWF9huUou5pwKgLSU5pF90hBg==
+"@mui/styled-engine@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.9.tgz#bc2121db1399bb84ea5390b40beac742b6be7023"
+ integrity sha512-LEQxLrW9oWvea33pge08+oyNeTz704jb6Nhe26xEJKojXWd34Rr327Zzx3dmo70AcS4h0b99vQjEpUzm6ASqUw==
dependencies:
- "@babel/runtime" "^7.22.10"
+ "@babel/runtime" "^7.22.15"
"@emotion/cache" "^11.11.0"
csstype "^3.1.2"
prop-types "^15.8.1"
+ react "^18.2.0"
-"@mui/system@^5.14.8":
- version "5.14.8"
- resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.8.tgz#1ca201b948310083e670352bae2d7963ad6f971e"
- integrity sha512-Dxnasv7Pj5hYe4ZZFKJZu4ufKm6cxpitWt3A+qMPps22YhqyeEqgDBq/HsAB3GOjqDP40fTAvQvS/Hguf4SJuw==
+"@mui/system@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.9.tgz#90a20473a85622ddabf5a2409de1980fad98f38d"
+ integrity sha512-Z00Wj590QXk5+SIxmxayBo7SWrao+y433LKGChneJxO4QcT/caSCeEWtyeoLs1Q8ys0zOzl2kkKee6n8TaKzhQ==
dependencies:
- "@babel/runtime" "^7.22.10"
- "@mui/private-theming" "^5.14.8"
- "@mui/styled-engine" "^5.14.8"
+ "@babel/runtime" "^7.22.15"
+ "@mui/private-theming" "^5.14.9"
+ "@mui/styled-engine" "^5.14.9"
"@mui/types" "^7.2.4"
- "@mui/utils" "^5.14.8"
+ "@mui/utils" "^5.14.9"
clsx "^2.0.0"
csstype "^3.1.2"
prop-types "^15.8.1"
@@ -1397,41 +1380,47 @@
resolved "https://registry.yarnpkg.com/@mui/types/-/types-7.2.4.tgz#b6fade19323b754c5c6de679a38f068fd50b9328"
integrity sha512-LBcwa8rN84bKF+f5sDyku42w1NTxaPgPyYKODsh01U1fVstTClbUoSA96oyRBnSNyEiAVjKm6Gwx9vjR+xyqHA==
-"@mui/utils@^5.14.8":
- version "5.14.8"
- resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.8.tgz#e1737d5fcd54aa413d6b1aaea3ea670af2919402"
- integrity sha512-1Ls2FfyY2yVSz9NEqedh3J8JAbbZAnUWkOWLE2f4/Hc4T5UWHMfzBLLrCqExfqyfyU+uXYJPGeNIsky6f8Gh5Q==
+"@mui/utils@^5.14.9":
+ version "5.14.9"
+ resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.9.tgz#eeefef88dbee687ac90e8972c63f0d41f19348a3"
+ integrity sha512-9ysB5e+RwS7ofn0n3nwAg1/3c81vBTmSvauD3EuK9LmqMzhmF//BFDaC44U4yITvB/0m1kWyDqg924Ll3VHCcg==
+ dependencies:
+ "@babel/runtime" "^7.22.15"
+ prop-types "^15.8.1"
+ react-is "^18.2.0"
+
+"@mui/utils@file:../../packages/mui-utils/build":
+ version "5.14.9"
dependencies:
- "@babel/runtime" "^7.22.10"
- "@types/prop-types" "^15.7.5"
- "@types/react-is" "^18.2.1"
+ "@babel/runtime" "^7.22.15"
prop-types "^15.8.1"
react-is "^18.2.0"
"@mui/zero-runtime@file:../../packages/zero-runtime/build":
- version "0.0.1-alpha.1"
+ version "0.0.1-alpha.3"
dependencies:
clsx "^2.0.0"
-"@mui/zero-tag-processor@0.0.1-alpha.2", "@mui/zero-tag-processor@file:../../packages/zero-tag-processor/build":
- version "0.0.1-alpha.2"
+"@mui/zero-tag-processor@0.0.1-alpha.3", "@mui/zero-tag-processor@file:../../packages/zero-tag-processor/build":
+ version "0.0.1-alpha.3"
dependencies:
- "@babel/core" "^7.22.10"
- "@babel/helper-module-imports" "^7.22.5"
+ "@babel/core" "^7.22.17"
+ "@babel/helper-module-imports" "^7.22.15"
"@babel/helper-plugin-utils" "^7.22.5"
- "@babel/parser" "^7.22.10"
+ "@babel/parser" "^7.22.16"
+ "@babel/types" "^7.22.17"
"@emotion/css" "^11.11.2"
"@linaria/tags" "^4.5.4"
"@linaria/utils" "^4.5.3"
- "@mui/system" "^5.14.8"
+ "@mui/system" "^5.14.9"
lodash.get "^4.4.2"
"@mui/zero-vite-plugin@file:../../packages/zero-vite-plugin/build":
- version "0.0.1-alpha.0"
+ version "0.0.1-alpha.3"
dependencies:
- "@babel/core" "^7.22.10"
+ "@babel/core" "^7.22.17"
"@linaria/vite" "^4.5.4"
- "@mui/zero-tag-processor" "0.0.1-alpha.2"
+ "@mui/zero-tag-processor" "0.0.1-alpha.3"
"@popperjs/core@^2.11.8":
version "2.11.8"
@@ -1451,18 +1440,11 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
-"@types/prop-types@*", "@types/prop-types@^15.7.5":
+"@types/prop-types@*":
version "15.7.5"
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf"
integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==
-"@types/react-is@^18.2.1":
- version "18.2.1"
- resolved "https://registry.yarnpkg.com/@types/react-is/-/react-is-18.2.1.tgz#61d01c2a6fc089a53520c0b66996d458fdc46863"
- integrity sha512-wyUkmaaSZEzFZivD8F2ftSyAfk6L+DfFliVj/mYdOXbVjRcS87fQJLTnhk6dRZPuJjI+9g6RZJO4PNCngUrmyw==
- dependencies:
- "@types/react" "*"
-
"@types/react-transition-group@^4.4.6":
version "4.4.6"
resolved "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.6.tgz#18187bcda5281f8e10dfc48f0943e2fdf4f75e2e"
@@ -1471,9 +1453,9 @@
"@types/react" "*"
"@types/react@*":
- version "18.2.18"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.18.tgz#c8b233919eef1bdc294f6f34b37f9727ad677516"
- integrity sha512-da4NTSeBv/P34xoZPhtcLkmZuJ+oYaCxHmyHzwaDQo9RQPBeXV+06gEk2FpqEcsX9XrnNLvRpVh6bdavDSjtiQ==
+ version "18.2.21"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.21.tgz#774c37fd01b522d0b91aed04811b58e4e0514ed9"
+ integrity sha512-neFKG/sBAwGxHgXiIxnbm3/AAVQ/cMRS93hvBpg8xYRbeQSPVABp9U2bRnPf0iI4+Ucdv3plSxKK+3CW2ENJxA==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -1564,7 +1546,7 @@ brace-expansion@^2.0.1:
dependencies:
balanced-match "^1.0.0"
-browserslist@^4.21.9:
+browserslist@^4.21.10, browserslist@^4.21.9:
version "4.21.10"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0"
integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ==
@@ -1580,9 +1562,9 @@ callsites@^3.0.0:
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
caniuse-lite@^1.0.30001517:
- version "1.0.30001519"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601"
- integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg==
+ version "1.0.30001534"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001534.tgz#f24a9b2a6d39630bac5c132b5dff89b39a12e7dd"
+ integrity sha512-vlPVrhsCS7XaSh2VvWluIQEzVhefrUQcEsQWSS5A5V+dM07uv1qHeQzAOTGIMy9i3e9bH15+muvI/UHojVgS/Q==
chalk@^2.4.2:
version "2.4.2"
@@ -1616,11 +1598,11 @@ convert-source-map@^1.5.0, convert-source-map@^1.7.0:
integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==
core-js-compat@^3.31.0:
- version "3.32.0"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90"
- integrity sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw==
+ version "3.32.2"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.2.tgz#8047d1a8b3ac4e639f0d4f66d4431aa3b16e004c"
+ integrity sha512-+GjlguTDINOijtVRUxrQOv3kfu9rl+qPNdX2LTbJ/ZyVTuxK+ksVSAGX1nHstu4hrv1En/uPTtWgq2gI5wt4AQ==
dependencies:
- browserslist "^4.21.9"
+ browserslist "^4.21.10"
cosmiconfig@^7.0.0:
version "7.1.0"
@@ -1634,13 +1616,13 @@ cosmiconfig@^7.0.0:
yaml "^1.10.0"
cosmiconfig@^8.0.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd"
- integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ==
+ version "8.3.6"
+ resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3"
+ integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==
dependencies:
- import-fresh "^3.2.1"
+ import-fresh "^3.3.0"
js-yaml "^4.1.0"
- parse-json "^5.0.0"
+ parse-json "^5.2.0"
path-type "^4.0.0"
csstype@^3.0.2, csstype@^3.1.2:
@@ -1669,9 +1651,9 @@ dom-helpers@^5.0.1:
csstype "^3.0.2"
electron-to-chromium@^1.4.477:
- version "1.4.486"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.486.tgz#11bc573ecf245c183f55cfe32ba209a22a96237a"
- integrity sha512-9zn9/2lbMGY/mFhoUymD9ODYdLY3zjUW/IW9ihU/sJVeIlD70m2aAb86S35aRGF+iwqLuQP25epruayZjKNjBw==
+ version "1.4.520"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.520.tgz#c19c25a10d87bd88a9aae2b76cae9235a50c2994"
+ integrity sha512-Frfus2VpYADsrh1lB3v/ft/WVFlVzOIm+Q0p7U7VqHI6qr7NWHYKe+Wif3W50n7JAFoBsWVsoU0+qDks6WQ60g==
error-ex@^1.3.1:
version "1.3.2"
@@ -1681,32 +1663,32 @@ error-ex@^1.3.1:
is-arrayish "^0.2.1"
esbuild@^0.18.10:
- version "0.18.19"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.19.tgz#c763ccfd50b7b1322d13232cd91f2bd36ffde56b"
- integrity sha512-ra3CaIKCzJp5bU5BDfrCc0FRqKj71fQi+gbld0aj6lN0ifuX2fWJYPgLVLGwPfA+ruKna+OWwOvf/yHj6n+i0g==
+ 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.19"
- "@esbuild/android-arm64" "0.18.19"
- "@esbuild/android-x64" "0.18.19"
- "@esbuild/darwin-arm64" "0.18.19"
- "@esbuild/darwin-x64" "0.18.19"
- "@esbuild/freebsd-arm64" "0.18.19"
- "@esbuild/freebsd-x64" "0.18.19"
- "@esbuild/linux-arm" "0.18.19"
- "@esbuild/linux-arm64" "0.18.19"
- "@esbuild/linux-ia32" "0.18.19"
- "@esbuild/linux-loong64" "0.18.19"
- "@esbuild/linux-mips64el" "0.18.19"
- "@esbuild/linux-ppc64" "0.18.19"
- "@esbuild/linux-riscv64" "0.18.19"
- "@esbuild/linux-s390x" "0.18.19"
- "@esbuild/linux-x64" "0.18.19"
- "@esbuild/netbsd-x64" "0.18.19"
- "@esbuild/openbsd-x64" "0.18.19"
- "@esbuild/sunos-x64" "0.18.19"
- "@esbuild/win32-arm64" "0.18.19"
- "@esbuild/win32-ia32" "0.18.19"
- "@esbuild/win32-x64" "0.18.19"
+ "@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.1:
version "3.1.1"
@@ -1747,9 +1729,9 @@ find-up@^5.0.0:
path-exists "^4.0.0"
fsevents@~2.3.2:
- version "2.3.2"
- resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
- integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+ 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.1:
version "1.1.1"
@@ -1778,7 +1760,7 @@ has@^1.0.3:
dependencies:
function-bind "^1.1.1"
-import-fresh@^3.2.1:
+import-fresh@^3.2.1, import-fresh@^3.3.0:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
@@ -1844,7 +1826,7 @@ json-parse-even-better-errors@^2.3.0:
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==
-json5@^2.2.2:
+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==
@@ -1940,7 +1922,7 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-json@^5.0.0:
+parse-json@^5.0.0, parse-json@^5.2.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==
@@ -1976,9 +1958,9 @@ picomatch@^2.2.2:
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
postcss@^8.4.27:
- version "8.4.27"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
- integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==
+ version "8.4.29"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.29.tgz#33bc121cf3b3688d4ddef50be869b2a54185a1dd"
+ integrity sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==
dependencies:
nanoid "^3.3.6"
picocolors "^1.0.0"
@@ -2091,9 +2073,9 @@ resolve@^1.14.2, resolve@^1.19.0:
supports-preserve-symlinks-flag "^1.0.0"
rollup@^3.27.1:
- version "3.27.2"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.27.2.tgz#59adc973504408289be89e5978e938ce852c9520"
- integrity sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ==
+ version "3.29.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.1.tgz#ba53a179d46ac3cd79e162dca6ab70d93cd26f78"
+ integrity sha512-c+ebvQz0VIH4KhhCpDsI+Bik0eT8ZFEVZEYw0cGMVqIP8zc+gnwl7iXCamTw7vzv2MeuZFZfdx5JJIq+ehzDlg==
optionalDependencies:
fsevents "~2.3.2"
@@ -2159,9 +2141,9 @@ ts-invariant@^0.10.3:
tslib "^2.1.0"
tslib@^2.1.0:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410"
- integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
+ integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
diff --git a/benchmark/package.json b/benchmark/package.json
index 5b48fbcab00029..b3d04a28e8998f 100644
--- a/benchmark/package.json
+++ b/benchmark/package.json
@@ -15,9 +15,9 @@
"@emotion/react": "^11.11.1",
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0",
- "@mui/material": "^5.14.9",
- "@mui/styles": "^5.14.9",
- "@mui/system": "^5.14.9",
+ "@mui/material": "^5.14.10",
+ "@mui/styles": "^5.14.10",
+ "@mui/system": "^5.14.10",
"@styled-system/css": "^5.1.5",
"benchmark": "^2.1.4",
"docs": "^5.0.0",
diff --git a/docs/data/base/components/autocomplete/UseAutocompletePopper.js b/docs/data/base/components/autocomplete/UseAutocompletePopper.js
index b6512af0934b97..1953f2a977ee5c 100644
--- a/docs/data/base/components/autocomplete/UseAutocompletePopper.js
+++ b/docs/data/base/components/autocomplete/UseAutocompletePopper.js
@@ -2,7 +2,7 @@ import * as React from 'react';
import { useAutocomplete } from '@mui/base/useAutocomplete';
import { Popper } from '@mui/base/Popper';
import { styled } from '@mui/system';
-import { unstable_useForkRef as useForkRef } from '@mui/utils';
+import useForkRef from '@mui/utils/useForkRef';
const Autocomplete = React.forwardRef(function Autocomplete(props, ref) {
const {
diff --git a/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx b/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx
index 3b2d59777f5396..64a624887ccdf0 100644
--- a/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx
+++ b/docs/data/base/components/autocomplete/UseAutocompletePopper.tsx
@@ -2,7 +2,7 @@ import * as React from 'react';
import { useAutocomplete, UseAutocompleteProps } from '@mui/base/useAutocomplete';
import { Popper } from '@mui/base/Popper';
import { styled } from '@mui/system';
-import { unstable_useForkRef as useForkRef } from '@mui/utils';
+import useForkRef from '@mui/utils/useForkRef';
const Autocomplete = React.forwardRef(function Autocomplete(
props: UseAutocompleteProps<(typeof top100Films)[number], false, false, false>,
diff --git a/docs/data/base/components/number-input/NumberInputAdornments.js b/docs/data/base/components/number-input/NumberInputAdornments.js
new file mode 100644
index 00000000000000..9968fb8d79420b
--- /dev/null
+++ b/docs/data/base/components/number-input/NumberInputAdornments.js
@@ -0,0 +1,185 @@
+import * as React from 'react';
+import {
+ Unstable_NumberInput as NumberInput,
+ numberInputClasses,
+} from '@mui/base/Unstable_NumberInput';
+import Box from '@mui/material/Box';
+import { styled } from '@mui/system';
+
+const CustomNumberInput = React.forwardRef(function CustomNumberInput(props, ref) {
+ return (
+ ▴,
+ },
+ decrementButton: {
+ children: ▾ ,
+ },
+ }}
+ {...props}
+ ref={ref}
+ />
+ );
+});
+
+export default function NumberInputAdornments() {
+ return (
+
+
+
+
+
+
+ }
+ />
+ kg} />
+
+ );
+}
+
+const InputAdornment = styled('div')(
+ ({ theme }) => `
+ margin: 8px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ grid-row: 1/3;
+ color: ${theme.palette.mode === 'dark' ? grey[500] : grey[700]};
+`,
+);
+
+const blue = {
+ 100: '#DAECFF',
+ 200: '#b6daff',
+ 400: '#3399FF',
+ 500: '#007FFF',
+ 600: '#0072E5',
+ 900: '#003A75',
+};
+
+const grey = {
+ 50: '#f6f8fa',
+ 100: '#eaeef2',
+ 200: '#d0d7de',
+ 300: '#afb8c1',
+ 400: '#8c959f',
+ 500: '#6e7781',
+ 600: '#57606a',
+ 700: '#424a53',
+ 800: '#32383f',
+ 900: '#24292f',
+};
+
+const StyledInputRoot = styled('div')(
+ ({ theme }) => `
+ font-family: IBM Plex Sans, sans-serif;
+ font-weight: 400;
+ border-radius: 8px;
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
+ border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]};
+ display: grid;
+ grid-template-columns: auto 1fr auto 19px;
+ grid-template-rows: 1fr 1fr;
+ overflow: hidden;
+
+
+ &.${numberInputClasses.focused} {
+ border-color: ${blue[400]};
+ box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[600] : blue[200]};
+ }
+
+ &:hover {
+ border-color: ${blue[400]};
+ }
+
+ // firefox
+ &:focus-visible {
+ outline: 0;
+ }
+`,
+);
+
+const StyledInputElement = styled('input')`
+ font-size: 0.875rem;
+ font-family: inherit;
+ font-weight: 400;
+ line-height: 1.5;
+ grid-row: 1/3;
+ color: inherit;
+ background: inherit;
+ border: none;
+ border-radius: inherit;
+ padding: 8px 12px;
+ outline: 0;
+`;
+
+const StyledButton = styled('button')(
+ ({ theme }) => `
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: center;
+ align-items: center;
+ appearance: none;
+ padding: 0;
+ width: 19px;
+ height: 19px;
+ font-family: system-ui, sans-serif;
+ font-size: 0.875rem;
+ line-height: 1;
+ box-sizing: border-box;
+ background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
+ border: 0;
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+
+ transition-property: all;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 120ms;
+
+ &:hover {
+ background: ${theme.palette.mode === 'dark' ? grey[800] : grey[50]};
+ border-color: ${theme.palette.mode === 'dark' ? grey[600] : grey[300]};
+ cursor: pointer;
+ }
+
+ &.${numberInputClasses.incrementButton} {
+ grid-column: 4/5;
+ grid-row: 1/2;
+ }
+
+ &.${numberInputClasses.decrementButton} {
+ grid-column: 4/5;
+ grid-row: 2/3;
+ }
+
+ & .arrow {
+ transform: translateY(-1px);
+ }
+`,
+);
diff --git a/docs/data/base/components/number-input/NumberInputAdornments.tsx b/docs/data/base/components/number-input/NumberInputAdornments.tsx
new file mode 100644
index 00000000000000..05194d9422d6de
--- /dev/null
+++ b/docs/data/base/components/number-input/NumberInputAdornments.tsx
@@ -0,0 +1,189 @@
+import * as React from 'react';
+import {
+ Unstable_NumberInput as NumberInput,
+ NumberInputProps,
+ numberInputClasses,
+} from '@mui/base/Unstable_NumberInput';
+import Box from '@mui/material/Box';
+import { styled } from '@mui/system';
+
+const CustomNumberInput = React.forwardRef(function CustomNumberInput(
+ props: NumberInputProps,
+ ref: React.ForwardedRef,
+) {
+ return (
+ ▴,
+ },
+ decrementButton: {
+ children: ▾ ,
+ },
+ }}
+ {...props}
+ ref={ref}
+ />
+ );
+});
+
+export default function NumberInputAdornments() {
+ return (
+
+
+
+
+
+
+ }
+ />
+ kg} />
+
+ );
+}
+
+const InputAdornment = styled('div')(
+ ({ theme }) => `
+ margin: 8px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ grid-row: 1/3;
+ color: ${theme.palette.mode === 'dark' ? grey[500] : grey[700]};
+`,
+);
+
+const blue = {
+ 100: '#DAECFF',
+ 200: '#b6daff',
+ 400: '#3399FF',
+ 500: '#007FFF',
+ 600: '#0072E5',
+ 900: '#003A75',
+};
+
+const grey = {
+ 50: '#f6f8fa',
+ 100: '#eaeef2',
+ 200: '#d0d7de',
+ 300: '#afb8c1',
+ 400: '#8c959f',
+ 500: '#6e7781',
+ 600: '#57606a',
+ 700: '#424a53',
+ 800: '#32383f',
+ 900: '#24292f',
+};
+
+const StyledInputRoot = styled('div')(
+ ({ theme }) => `
+ font-family: IBM Plex Sans, sans-serif;
+ font-weight: 400;
+ border-radius: 8px;
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+ background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
+ border: 1px solid ${theme.palette.mode === 'dark' ? grey[700] : grey[200]};
+ display: grid;
+ grid-template-columns: auto 1fr auto 19px;
+ grid-template-rows: 1fr 1fr;
+ overflow: hidden;
+
+
+ &.${numberInputClasses.focused} {
+ border-color: ${blue[400]};
+ box-shadow: 0 0 0 3px ${theme.palette.mode === 'dark' ? blue[600] : blue[200]};
+ }
+
+ &:hover {
+ border-color: ${blue[400]};
+ }
+
+ // firefox
+ &:focus-visible {
+ outline: 0;
+ }
+`,
+);
+
+const StyledInputElement = styled('input')`
+ font-size: 0.875rem;
+ font-family: inherit;
+ font-weight: 400;
+ line-height: 1.5;
+ grid-row: 1/3;
+ color: inherit;
+ background: inherit;
+ border: none;
+ border-radius: inherit;
+ padding: 8px 12px;
+ outline: 0;
+`;
+
+const StyledButton = styled('button')(
+ ({ theme }) => `
+ display: flex;
+ flex-flow: row nowrap;
+ justify-content: center;
+ align-items: center;
+ appearance: none;
+ padding: 0;
+ width: 19px;
+ height: 19px;
+ font-family: system-ui, sans-serif;
+ font-size: 0.875rem;
+ line-height: 1;
+ box-sizing: border-box;
+ background: ${theme.palette.mode === 'dark' ? grey[900] : '#fff'};
+ border: 0;
+ color: ${theme.palette.mode === 'dark' ? grey[300] : grey[900]};
+
+ transition-property: all;
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
+ transition-duration: 120ms;
+
+ &:hover {
+ background: ${theme.palette.mode === 'dark' ? grey[800] : grey[50]};
+ border-color: ${theme.palette.mode === 'dark' ? grey[600] : grey[300]};
+ cursor: pointer;
+ }
+
+ &.${numberInputClasses.incrementButton} {
+ grid-column: 4/5;
+ grid-row: 1/2;
+ }
+
+ &.${numberInputClasses.decrementButton} {
+ grid-column: 4/5;
+ grid-row: 2/3;
+ }
+
+ & .arrow {
+ transform: translateY(-1px);
+ }
+`,
+);
diff --git a/docs/data/base/components/number-input/NumberInputBasic/css/index.js b/docs/data/base/components/number-input/NumberInputBasic/css/index.js
index aa79a9bee7f62f..3d92189881e739 100644
--- a/docs/data/base/components/number-input/NumberInputBasic/css/index.js
+++ b/docs/data/base/components/number-input/NumberInputBasic/css/index.js
@@ -11,9 +11,15 @@ export default function NumberInputBasic() {
-
-
-
\ No newline at end of file
diff --git a/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.js b/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.js
index 42d8eb3e8465be..154538e99c5363 100644
--- a/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.js
+++ b/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.js
@@ -1,48 +1,99 @@
import * as React from 'react';
-import { Unstable_NumberInput as NumberInput } from '@mui/base/Unstable_NumberInput';
+import PropTypes from 'prop-types';
+import { Unstable_NumberInput as BaseNumberInput } from '@mui/base/Unstable_NumberInput';
import clsx from 'clsx';
-const CustomNumberInput = React.forwardRef(function CustomNumberInput(props, ref) {
+export default function NumberInputBasic() {
+ const [value, setValue] = React.useState();
return (
setValue(val)}
+ />
+ );
+}
+
+const resolveSlotProps = (fn, args) => (typeof fn === 'function' ? fn(args) : fn);
+
+const NumberInput = React.forwardRef(function NumberInput(props, ref) {
+ return (
+ ({
- className: clsx(
- 'grid grid-cols-[1fr_19px] grid-rows-2 overflow-hidden font-sans rounded-lg text-slate-900 dark:text-slate-300 border border-solid bg-white dark:bg-slate-900 hover:border-violet-400 dark:hover:border-violet-400 focus-visible:outline-0 ',
- ownerState.focused
- ? 'border-violet-400 dark:border-violet-400 shadow-lg shadow-outline-purple dark:shadow-outline-purple'
- : 'border-slate-300 dark:border-slate-600 shadow-md shadow-slate-100 dark:shadow-slate-900',
- ),
- }),
- input: {
- className:
- 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-slate-900 bg-inherit border-0 rounded-[inherit] dark:text-slate-300 px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none',
+ root: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.root,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'grid grid-cols-[1fr_19px] grid-rows-2 overflow-hidden font-sans rounded-lg text-slate-900 dark:text-slate-300 border border-solid bg-white dark:bg-slate-900 hover:border-violet-400 dark:hover:border-violet-400 focus-visible:outline-0 ',
+ ownerState.focused
+ ? 'border-violet-400 dark:border-violet-400 shadow-lg shadow-outline-purple dark:shadow-outline-purple'
+ : 'border-slate-300 dark:border-slate-600 shadow-md shadow-slate-100 dark:shadow-slate-900',
+ resolvedSlotProps?.className,
+ ),
+ };
},
- incrementButton: {
- children: '▴',
- className:
- 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-1 row-end-2',
+ input: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.input,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-slate-900 bg-inherit border-0 rounded-[inherit] dark:text-slate-300 px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none',
+ resolvedSlotProps?.className,
+ ),
+ };
},
- decrementButton: {
- children: '▾',
- className:
- 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-2 row-end-3',
+ incrementButton: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.incrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▴',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-1 row-end-2',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ decrementButton: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.decrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▾',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-2 row-end-3',
+ resolvedSlotProps?.className,
+ ),
+ };
},
}}
- {...props}
- ref={ref}
/>
);
});
-export default function NumberInputBasic() {
- const [value, setValue] = React.useState();
- return (
- setValue(val)}
- />
- );
-}
+NumberInput.propTypes = {
+ /**
+ * The props used for each slot inside the NumberInput.
+ * @default {}
+ */
+ slotProps: PropTypes.shape({
+ decrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ incrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ }),
+};
diff --git a/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx b/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx
index ec326a946793bb..082b0b257505be 100644
--- a/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx
+++ b/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx
@@ -1,55 +1,93 @@
import * as React from 'react';
import {
- Unstable_NumberInput as NumberInput,
+ Unstable_NumberInput as BaseNumberInput,
NumberInputProps,
NumberInputOwnerState,
} from '@mui/base/Unstable_NumberInput';
import clsx from 'clsx';
-const CustomNumberInput = React.forwardRef(function CustomNumberInput(
+export default function NumberInputBasic() {
+ const [value, setValue] = React.useState();
+ return (
+ setValue(val)}
+ />
+ );
+}
+
+const resolveSlotProps = (fn: any, args: any) =>
+ typeof fn === 'function' ? fn(args) : fn;
+
+const NumberInput = React.forwardRef(function NumberInput(
props: NumberInputProps,
ref: React.ForwardedRef,
) {
return (
- ({
- className: clsx(
- 'grid grid-cols-[1fr_19px] grid-rows-2 overflow-hidden font-sans rounded-lg text-slate-900 dark:text-slate-300 border border-solid bg-white dark:bg-slate-900 hover:border-violet-400 dark:hover:border-violet-400 focus-visible:outline-0 ',
- ownerState.focused
- ? 'border-violet-400 dark:border-violet-400 shadow-lg shadow-outline-purple dark:shadow-outline-purple'
- : 'border-slate-300 dark:border-slate-600 shadow-md shadow-slate-100 dark:shadow-slate-900',
- ),
- }),
- input: {
- className:
- 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-slate-900 bg-inherit border-0 rounded-[inherit] dark:text-slate-300 px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none',
+ root: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.root,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'grid grid-cols-[1fr_19px] grid-rows-2 overflow-hidden font-sans rounded-lg text-slate-900 dark:text-slate-300 border border-solid bg-white dark:bg-slate-900 hover:border-violet-400 dark:hover:border-violet-400 focus-visible:outline-0 ',
+ ownerState.focused
+ ? 'border-violet-400 dark:border-violet-400 shadow-lg shadow-outline-purple dark:shadow-outline-purple'
+ : 'border-slate-300 dark:border-slate-600 shadow-md shadow-slate-100 dark:shadow-slate-900',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ input: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.input,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-slate-900 bg-inherit border-0 rounded-[inherit] dark:text-slate-300 px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none',
+ resolvedSlotProps?.className,
+ ),
+ };
},
- incrementButton: {
- children: '▴',
- className:
- 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-1 row-end-2',
+ incrementButton: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.incrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▴',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-1 row-end-2',
+ resolvedSlotProps?.className,
+ ),
+ };
},
- decrementButton: {
- children: '▾',
- className:
- 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-2 row-end-3',
+ decrementButton: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.decrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▾',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-2 row-end-3',
+ resolvedSlotProps?.className,
+ ),
+ };
},
}}
- {...props}
- ref={ref}
/>
);
});
-
-export default function NumberInputBasic() {
- const [value, setValue] = React.useState();
- return (
- setValue(val)}
- />
- );
-}
diff --git a/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx.preview b/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx.preview
index a2ecd626c6645c..387ab94b94158e 100644
--- a/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx.preview
+++ b/docs/data/base/components/number-input/NumberInputBasic/tailwind/index.tsx.preview
@@ -1,4 +1,4 @@
-
+ ▾,
+ },
+ incrementButton: {
+ className: 'CustomNumberInput-button CustomNumberInput-incrementButton',
+ children: ▴ ,
+ },
+ }}
+ aria-label="Demo number input"
+ placeholder="Type a number…"
+ />
+
+
+ );
+}
+
+const cyan = {
+ 50: '#E9F8FC',
+ 100: '#BDEBF4',
+ 200: '#99D8E5',
+ 300: '#66BACC',
+ 400: '#1F94AD',
+ 500: '#0D5463',
+ 600: '#094855',
+ 700: '#063C47',
+ 800: '#043039',
+ 900: '#022127',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E7EBF0',
+ 200: '#E0E3E7',
+ 300: '#CDD2D7',
+ 400: '#B2BAC2',
+ 500: '#A0AAB4',
+ 600: '#6F7E8C',
+ 700: '#3E5060',
+ 800: '#2D3843',
+ 900: '#1A2027',
+};
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+function Styles() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+
+ return (
+
+ );
+}
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction/css/index.tsx b/docs/data/base/components/number-input/NumberInputIntroduction/css/index.tsx
new file mode 100644
index 00000000000000..e277fbecc169b8
--- /dev/null
+++ b/docs/data/base/components/number-input/NumberInputIntroduction/css/index.tsx
@@ -0,0 +1,157 @@
+import * as React from 'react';
+import {
+ Unstable_NumberInput as NumberInput,
+ numberInputClasses,
+} from '@mui/base/Unstable_NumberInput';
+import { useTheme } from '@mui/system';
+
+export default function NumberInputIntroduction() {
+ return (
+
+ ▾,
+ },
+ incrementButton: {
+ className: 'CustomNumberInput-button CustomNumberInput-incrementButton',
+ children: ▴ ,
+ },
+ }}
+ aria-label="Demo number input"
+ placeholder="Type a number…"
+ />
+
+
+ );
+}
+
+const cyan = {
+ 50: '#E9F8FC',
+ 100: '#BDEBF4',
+ 200: '#99D8E5',
+ 300: '#66BACC',
+ 400: '#1F94AD',
+ 500: '#0D5463',
+ 600: '#094855',
+ 700: '#063C47',
+ 800: '#043039',
+ 900: '#022127',
+};
+
+const grey = {
+ 50: '#F3F6F9',
+ 100: '#E7EBF0',
+ 200: '#E0E3E7',
+ 300: '#CDD2D7',
+ 400: '#B2BAC2',
+ 500: '#A0AAB4',
+ 600: '#6F7E8C',
+ 700: '#3E5060',
+ 800: '#2D3843',
+ 900: '#1A2027',
+};
+
+function useIsDarkMode() {
+ const theme = useTheme();
+ return theme.palette.mode === 'dark';
+}
+
+function Styles() {
+ // Replace this with your app logic for determining dark mode
+ const isDarkMode = useIsDarkMode();
+
+ return (
+
+ );
+}
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction.js b/docs/data/base/components/number-input/NumberInputIntroduction/system/index.js
similarity index 100%
rename from docs/data/base/components/number-input/NumberInputIntroduction.js
rename to docs/data/base/components/number-input/NumberInputIntroduction/system/index.js
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction.tsx b/docs/data/base/components/number-input/NumberInputIntroduction/system/index.tsx
similarity index 100%
rename from docs/data/base/components/number-input/NumberInputIntroduction.tsx
rename to docs/data/base/components/number-input/NumberInputIntroduction/system/index.tsx
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction.tsx.preview b/docs/data/base/components/number-input/NumberInputIntroduction/system/index.tsx.preview
similarity index 100%
rename from docs/data/base/components/number-input/NumberInputIntroduction.tsx.preview
rename to docs/data/base/components/number-input/NumberInputIntroduction/system/index.tsx.preview
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.js b/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.js
new file mode 100644
index 00000000000000..65dbad2750b421
--- /dev/null
+++ b/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.js
@@ -0,0 +1,99 @@
+import * as React from 'react';
+import PropTypes from 'prop-types';
+import { Unstable_NumberInput as BaseNumberInput } from '@mui/base/Unstable_NumberInput';
+import clsx from 'clsx';
+
+export default function NumberInputIntroduction() {
+ const [value, setValue] = React.useState();
+ return (
+ setValue(val)}
+ />
+ );
+}
+
+const resolveSlotProps = (fn, args) => (typeof fn === 'function' ? fn(args) : fn);
+
+const NumberInput = React.forwardRef(function NumberInput(props, ref) {
+ return (
+ {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.root,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'grid grid-cols-[1fr_19px] grid-rows-2 overflow-hidden font-sans rounded-lg text-slate-900 dark:text-slate-300 border border-solid bg-white dark:bg-slate-900 hover:border-violet-400 dark:hover:border-violet-400 focus-visible:outline-0 ',
+ ownerState.focused
+ ? 'border-violet-400 dark:border-violet-400 shadow-lg shadow-outline-purple dark:shadow-outline-purple'
+ : 'border-slate-300 dark:border-slate-600 shadow-md shadow-slate-100 dark:shadow-slate-900',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ input: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.input,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-slate-900 bg-inherit border-0 rounded-[inherit] dark:text-slate-300 px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ incrementButton: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.incrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▴',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-1 row-end-2',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ decrementButton: (ownerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.decrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▾',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-2 row-end-3',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ }}
+ />
+ );
+});
+
+NumberInput.propTypes = {
+ /**
+ * The props used for each slot inside the NumberInput.
+ * @default {}
+ */
+ slotProps: PropTypes.shape({
+ decrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ incrementButton: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
+ }),
+};
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.tsx b/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.tsx
new file mode 100644
index 00000000000000..51f54e45ff6700
--- /dev/null
+++ b/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.tsx
@@ -0,0 +1,93 @@
+import * as React from 'react';
+import {
+ Unstable_NumberInput as BaseNumberInput,
+ NumberInputProps,
+ NumberInputOwnerState,
+} from '@mui/base/Unstable_NumberInput';
+import clsx from 'clsx';
+
+export default function NumberInputIntroduction() {
+ const [value, setValue] = React.useState();
+ return (
+ setValue(val)}
+ />
+ );
+}
+
+const resolveSlotProps = (fn: any, args: any) =>
+ typeof fn === 'function' ? fn(args) : fn;
+
+const NumberInput = React.forwardRef(function NumberInput(
+ props: NumberInputProps,
+ ref: React.ForwardedRef,
+) {
+ return (
+ {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.root,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'grid grid-cols-[1fr_19px] grid-rows-2 overflow-hidden font-sans rounded-lg text-slate-900 dark:text-slate-300 border border-solid bg-white dark:bg-slate-900 hover:border-violet-400 dark:hover:border-violet-400 focus-visible:outline-0 ',
+ ownerState.focused
+ ? 'border-violet-400 dark:border-violet-400 shadow-lg shadow-outline-purple dark:shadow-outline-purple'
+ : 'border-slate-300 dark:border-slate-600 shadow-md shadow-slate-100 dark:shadow-slate-900',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ input: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.input,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ className: clsx(
+ 'col-start-1 col-end-2 row-start-1 row-end-3 text-sm font-sans leading-normal text-slate-900 bg-inherit border-0 rounded-[inherit] dark:text-slate-300 px-3 py-2 outline-0 focus-visible:outline-0 focus-visible:outline-none',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ incrementButton: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.incrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▴',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-1 row-end-2',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ decrementButton: (ownerState: NumberInputOwnerState) => {
+ const resolvedSlotProps = resolveSlotProps(
+ props.slotProps?.decrementButton,
+ ownerState,
+ );
+ return {
+ ...resolvedSlotProps,
+ children: '▾',
+ className: clsx(
+ 'font-[system-ui] flex flex-row flex-nowrap justify-center items-center appearance-none p-0 w-[19px] h-[19px] text-sm box-border leading-[1.2] border-0 bg-white dark:bg-slate-900 text-slate-900 dark:text-slate-300 transition-all duration-[120ms] hover:cursor-pointer hover:bg-slate-50 dark:hover:bg-slate-800 border-slate-300 dark:border-slate-600 col-start-2 col-end-3 row-start-2 row-end-3',
+ resolvedSlotProps?.className,
+ ),
+ };
+ },
+ }}
+ />
+ );
+});
diff --git a/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.tsx.preview b/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.tsx.preview
new file mode 100644
index 00000000000000..387ab94b94158e
--- /dev/null
+++ b/docs/data/base/components/number-input/NumberInputIntroduction/tailwind/index.tsx.preview
@@ -0,0 +1,6 @@
+ setValue(val)}
+/>
\ No newline at end of file
diff --git a/docs/data/base/components/number-input/number-input.md b/docs/data/base/components/number-input/number-input.md
index 35bb09759b7397..08eb68c6327c17 100644
--- a/docs/data/base/components/number-input/number-input.md
+++ b/docs/data/base/components/number-input/number-input.md
@@ -27,7 +27,7 @@ Base UI's Number Input component is a customizable replacement for the native HT
See [_Why the GOV.UK Design System team changed the input type for numbers_](https://technology.blog.gov.uk/2020/02/24/why-the-gov-uk-design-system-team-changed-the-input-type-for-numbers/) for a more detailed explanation of the limitations of ` `.
:::
-{{"demo": "NumberInputIntroduction.js", "defaultCodeOpen": false, "bg": "gradient"}}
+{{"demo": "NumberInputIntroduction", "defaultCodeOpen": false, "bg": "gradient"}}
## Component
@@ -94,7 +94,7 @@ The following code snippet:
## Hook
```js
-import useNumberInput from '@mui/base/unstable_useNumberInput';
+import { unstable_useNumberInput as useNumberInput } from '@mui/base/unstable_useNumberInput';
```
The `useNumberInput` hook lets you apply the functionality of a Number Input to a fully custom component.
@@ -168,3 +168,10 @@ In the following snippet, if Shift is held when clicking the incremen
```jsx
```
+
+### Adornments
+
+You can use the `startAdornment` and `endAdornment` props to add a prefix or suffix, respectively, to a Number Input.
+Adornments can be useful for displaying units of measure, like weight or currency, alongside values.
+
+{{"demo": "NumberInputAdornments.js", "defaultCodeOpen": false}}
diff --git a/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.js b/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.js
index 05cd2ca21960ce..b34b4e6c75f3db 100644
--- a/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.js
+++ b/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.js
@@ -86,7 +86,6 @@ export default function BaseButtonPlainCss() {
Create Repository
-
Create Repository
diff --git a/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx b/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx
index 05cd2ca21960ce..b34b4e6c75f3db 100644
--- a/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx
+++ b/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx
@@ -86,7 +86,6 @@ export default function BaseButtonPlainCss() {
Create Repository
-
Create Repository
diff --git a/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx.preview b/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx.preview
index 7235640e360d3d..57ba0be3dc5ef8 100644
--- a/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx.preview
+++ b/docs/data/base/getting-started/quickstart/BaseButtonPlainCss.tsx.preview
@@ -2,7 +2,6 @@
Create Repository
-
Create Repository
diff --git a/docs/data/joy/components/autocomplete/Asynchronous.js b/docs/data/joy/components/autocomplete/Asynchronous.js
index a449988fc78e95..82c987f77d8ea6 100644
--- a/docs/data/joy/components/autocomplete/Asynchronous.js
+++ b/docs/data/joy/components/autocomplete/Asynchronous.js
@@ -4,9 +4,11 @@ import FormLabel from '@mui/joy/FormLabel';
import Autocomplete from '@mui/joy/Autocomplete';
import CircularProgress from '@mui/joy/CircularProgress';
-function sleep(delay = 0) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(resolve, delay);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/docs/data/joy/components/autocomplete/Asynchronous.tsx b/docs/data/joy/components/autocomplete/Asynchronous.tsx
index e1379748d3c5bc..36c52369e77e78 100644
--- a/docs/data/joy/components/autocomplete/Asynchronous.tsx
+++ b/docs/data/joy/components/autocomplete/Asynchronous.tsx
@@ -4,9 +4,11 @@ import FormLabel from '@mui/joy/FormLabel';
import Autocomplete from '@mui/joy/Autocomplete';
import CircularProgress from '@mui/joy/CircularProgress';
-function sleep(delay = 0) {
- return new Promise((resolve) => {
- setTimeout(resolve, delay);
+function sleep(duration: number): Promise {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/docs/data/joy/components/circular-progress/CircularProgressCountUp.js b/docs/data/joy/components/circular-progress/CircularProgressCountUp.js
new file mode 100644
index 00000000000000..9c4b1e8de9616f
--- /dev/null
+++ b/docs/data/joy/components/circular-progress/CircularProgressCountUp.js
@@ -0,0 +1,69 @@
+import * as React from 'react';
+import Stack from '@mui/joy/Stack';
+import Button from '@mui/joy/Button';
+import Typography from '@mui/joy/Typography';
+import CircularProgress from '@mui/joy/CircularProgress';
+import { useCountUp } from 'use-count-up';
+
+export default function CircularProgressCountUp() {
+ const [isLoading, setIsLoading] = React.useState(false);
+ const [buttonLabel, setButtonLabel] = React.useState('Start');
+
+ const { value: value1, reset: resetValue1 } = useCountUp({
+ isCounting: isLoading,
+ duration: 1,
+ start: 0,
+ end: 25,
+ onComplete: () => {
+ setIsLoading(false);
+ setButtonLabel('Reset');
+ },
+ });
+
+ const { value: value2, reset } = useCountUp({
+ isCounting: true,
+ duration: 1,
+ start: 0,
+ end: 75,
+ });
+
+ const handleButtonClick = () => {
+ if (isLoading) {
+ setIsLoading(false);
+ setButtonLabel('Start');
+ resetValue1();
+ } else if (buttonLabel === 'Reset') {
+ setButtonLabel('Start');
+ resetValue1();
+ } else {
+ setIsLoading(true);
+ setButtonLabel('Reset');
+ }
+ };
+
+ return (
+
+
+
+ {value1}%
+
+
+ {buttonLabel}
+
+
+
+
+ {value2}%
+
+
+ Reload
+
+
+
+ );
+}
diff --git a/docs/data/joy/components/circular-progress/CircularProgressCountUp.tsx b/docs/data/joy/components/circular-progress/CircularProgressCountUp.tsx
new file mode 100644
index 00000000000000..d6a01fc813a42f
--- /dev/null
+++ b/docs/data/joy/components/circular-progress/CircularProgressCountUp.tsx
@@ -0,0 +1,69 @@
+import * as React from 'react';
+import Stack from '@mui/joy/Stack';
+import Button from '@mui/joy/Button';
+import Typography from '@mui/joy/Typography';
+import CircularProgress from '@mui/joy/CircularProgress';
+import { useCountUp } from 'use-count-up';
+
+export default function CircularProgressCountUp() {
+ const [isLoading, setIsLoading] = React.useState(false);
+ const [buttonLabel, setButtonLabel] = React.useState('Start');
+
+ const { value: value1, reset: resetValue1 } = useCountUp({
+ isCounting: isLoading,
+ duration: 1,
+ start: 0,
+ end: 25,
+ onComplete: () => {
+ setIsLoading(false);
+ setButtonLabel('Reset');
+ },
+ });
+
+ const { value: value2, reset } = useCountUp({
+ isCounting: true,
+ duration: 1,
+ start: 0,
+ end: 75,
+ });
+
+ const handleButtonClick = () => {
+ if (isLoading) {
+ setIsLoading(false);
+ setButtonLabel('Start');
+ resetValue1();
+ } else if (buttonLabel === 'Reset') {
+ setButtonLabel('Start');
+ resetValue1();
+ } else {
+ setIsLoading(true);
+ setButtonLabel('Reset');
+ }
+ };
+
+ return (
+
+
+
+ {value1}%
+
+
+ {buttonLabel}
+
+
+
+
+ {value2}%
+
+
+ Reload
+
+
+
+ );
+}
diff --git a/docs/data/joy/components/circular-progress/circular-progress.md b/docs/data/joy/components/circular-progress/circular-progress.md
index 1e3d4e7113575d..a764b83defe3d6 100644
--- a/docs/data/joy/components/circular-progress/circular-progress.md
+++ b/docs/data/joy/components/circular-progress/circular-progress.md
@@ -86,6 +86,14 @@ The size of the Circular Progress is controlled by a button, an icon button, or
{{"demo": "CircularProgressButton.js"}}
+## Third-party integrations
+
+### use-count-up
+
+Use the `useCountUp` hook from the [use-count-up](https://www.npmjs.com/package/use-count-up) package to create a counting animation by providing `start`, `end`, and `duration` values.
+
+{{"demo": "CircularProgressCountUp.js"}}
+
## CSS variables playground
Play around with all the CSS variables available on the component to see how the design changes.
diff --git a/docs/data/joy/customization/dark-mode/dark-mode-pt.md b/docs/data/joy/customization/dark-mode/dark-mode-pt.md
deleted file mode 100644
index 030974a641d946..00000000000000
--- a/docs/data/joy/customization/dark-mode/dark-mode-pt.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# Applying dark mode
-
-A how-to-guide for applying dark mode to your application with Joy UI.
-
-## The mode-toggle component
-
-In the example below, we're using a `Button` component that calls `setMode` from the `useColorSchemes()` hook to handle the mode toggling.
-
-```js
-import { useColorScheme } from '@mui/joy/styles';
-import Button from '@mui/joy/Button';
-
-function ModeToggle() {
- const { mode, setMode } = useColorScheme();
- return (
- setMode(mode === 'dark' ? 'light' : 'dark')}
- >
- {mode === 'dark' ? 'Turn light' : 'Turn dark'}
-
- );
-}
-```
-
-{{"demo": "ModeToggle.js"}}
-
-:::warning
-**Note:** Make sure to use `useColorScheme()` in a component that's inside ``, otherwise it will throw an error.
-:::
-
-## Server-side rendering
-
-### Avoid hydration mismatch
-
-Make sure to render the UI when the page is mounted on the client.
-
-This is because the `mode` will only be available to the client-side (it is `undefined` on the server). If you try to render your UI based on the server, before mounting on the client, you'll see a hydration mismatch error.
-
-```diff
- function ModeToggle() {
- const { mode, setMode } = useColorScheme();
- const [mounted, setMounted] = React.useState(false);
-
-+ React.useEffect(() => {
-+ setMounted(true);
-+ }, []);
-+
-+ if (!mounted) {
-+ // to avoid layout shift, render a placeholder button
-+ return ;
-+ }
-
- return (
- setMode(mode === 'dark' ? 'light' : 'dark')}
- >
- {mode === 'dark' ? 'Turn light' : 'Turn dark'}
-
- );
- };
-```
-
-### Avoiding screen flickering
-
-To prevent [the UI of flickering](/joy-ui/main-features/perfect-dark-mode/#the-current-flickering-problem), apply `getInitColorSchemeScript()` before the main application script-it varies across frameworks:
-
-### Next.js
-
-To use the Joy UI API with a Next.js project, add the following code to the custom [`pages/_document.js`](https://nextjs.org/docs/advanced-features/custom-document) file:
-
-```jsx
-import Document, { Html, Head, Main, NextScript } from 'next/document';
-import { getInitColorSchemeScript } from '@mui/joy/styles';
-
-export default class MyDocument extends Document {
- render() {
- return (
-
- ...
-
- {getInitColorSchemeScript()}
-
-
-
-
- );
- }
-}
-```
-
-### Gatsby
-
-To use the Joy UI API with a Next.js project, add the following code to the custom [`gatsby-ssr.js`](https://www.gatsbyjs.com/docs/reference/config-files/gatsby-ssr/) file:
-
-```jsx
-import * as React from 'react';
-import { getInitColorSchemeScript } from '@mui/joy/styles';
-
-export function onRenderBody({ setPreBodyComponents }) {
- setPreBodyComponents([getInitColorSchemeScript()]);
-}
-```
diff --git a/docs/data/joy/customization/dark-mode/dark-mode-zh.md b/docs/data/joy/customization/dark-mode/dark-mode-zh.md
deleted file mode 100644
index 030974a641d946..00000000000000
--- a/docs/data/joy/customization/dark-mode/dark-mode-zh.md
+++ /dev/null
@@ -1,106 +0,0 @@
-# Applying dark mode
-
-A how-to-guide for applying dark mode to your application with Joy UI.
-
-## The mode-toggle component
-
-In the example below, we're using a `Button` component that calls `setMode` from the `useColorSchemes()` hook to handle the mode toggling.
-
-```js
-import { useColorScheme } from '@mui/joy/styles';
-import Button from '@mui/joy/Button';
-
-function ModeToggle() {
- const { mode, setMode } = useColorScheme();
- return (
- setMode(mode === 'dark' ? 'light' : 'dark')}
- >
- {mode === 'dark' ? 'Turn light' : 'Turn dark'}
-
- );
-}
-```
-
-{{"demo": "ModeToggle.js"}}
-
-:::warning
-**Note:** Make sure to use `useColorScheme()` in a component that's inside ``, otherwise it will throw an error.
-:::
-
-## Server-side rendering
-
-### Avoid hydration mismatch
-
-Make sure to render the UI when the page is mounted on the client.
-
-This is because the `mode` will only be available to the client-side (it is `undefined` on the server). If you try to render your UI based on the server, before mounting on the client, you'll see a hydration mismatch error.
-
-```diff
- function ModeToggle() {
- const { mode, setMode } = useColorScheme();
- const [mounted, setMounted] = React.useState(false);
-
-+ React.useEffect(() => {
-+ setMounted(true);
-+ }, []);
-+
-+ if (!mounted) {
-+ // to avoid layout shift, render a placeholder button
-+ return ;
-+ }
-
- return (
- setMode(mode === 'dark' ? 'light' : 'dark')}
- >
- {mode === 'dark' ? 'Turn light' : 'Turn dark'}
-
- );
- };
-```
-
-### Avoiding screen flickering
-
-To prevent [the UI of flickering](/joy-ui/main-features/perfect-dark-mode/#the-current-flickering-problem), apply `getInitColorSchemeScript()` before the main application script-it varies across frameworks:
-
-### Next.js
-
-To use the Joy UI API with a Next.js project, add the following code to the custom [`pages/_document.js`](https://nextjs.org/docs/advanced-features/custom-document) file:
-
-```jsx
-import Document, { Html, Head, Main, NextScript } from 'next/document';
-import { getInitColorSchemeScript } from '@mui/joy/styles';
-
-export default class MyDocument extends Document {
- render() {
- return (
-
- ...
-
- {getInitColorSchemeScript()}
-
-
-
-
- );
- }
-}
-```
-
-### Gatsby
-
-To use the Joy UI API with a Next.js project, add the following code to the custom [`gatsby-ssr.js`](https://www.gatsbyjs.com/docs/reference/config-files/gatsby-ssr/) file:
-
-```jsx
-import * as React from 'react';
-import { getInitColorSchemeScript } from '@mui/joy/styles';
-
-export function onRenderBody({ setPreBodyComponents }) {
- setPreBodyComponents([getInitColorSchemeScript()]);
-}
-```
diff --git a/docs/data/joy/customization/dark-mode/dark-mode.md b/docs/data/joy/customization/dark-mode/dark-mode.md
index 586e7fce0713bb..f5f081179cd6bc 100644
--- a/docs/data/joy/customization/dark-mode/dark-mode.md
+++ b/docs/data/joy/customization/dark-mode/dark-mode.md
@@ -134,7 +134,7 @@ import { getInitColorSchemeScript } from '@mui/joy/styles';
export default class MyDocument extends Document {
render() {
return (
-
+
...
{getInitColorSchemeScript()}
diff --git a/docs/data/joy/getting-started/overview/overview.md b/docs/data/joy/getting-started/overview/overview.md
index 0ad9733b242b85..75ea7a8fc142ca 100644
--- a/docs/data/joy/getting-started/overview/overview.md
+++ b/docs/data/joy/getting-started/overview/overview.md
@@ -8,11 +8,7 @@ title: Overview
## Introduction
-Joy UI is an open-source React component library that implements MUI's own in-house design [principles](#principles).
-
-It includes foundational pre-built components that look beautiful by default, and give you plenty of room to customize their look and feel.
-
-Use Joy UI to spark joy in the creative process of building your next app.
+Joy UI is an open-source React component library that follows a lightly opinionated design direction, for a clean and modern UI that gives you plenty of room to customize the look and feel.
:::warning
Joy UI is currently in active development, and breaking changes are to be expected.
@@ -22,44 +18,53 @@ We're adding new components and features regularly, and you're welcome to contri
Look for the [`package: joy-ui`](https://github.com/mui/material-ui/labels/package%3A%20joy-ui) label on open issues and pull requests in the `mui/material-ui` repository on GitHub to see what other community members are working on, and feel free to submit your own.
:::
-## Advantages of Joy UI
+## Why use Joy UI
+
+Maintained by MUI, **Joy UI is an alternative to Material UI** for projects that **don't adhere to Material Design** guidelines as a design system starting point.
+
+These two sister libraries feature many of the same components, with similarly designed component APIs and customization features.
+Joy UI applies the decade of lessons learned in building and maintaining Material UI, for developers looking for sleek design, next-gen DX, and extensible components.
+
+Learn more about why you should use Joy UI for your next project below.
+
+### Beautiful out of the box
+
+Joy UI follows a lightly opinionated design direction called Joy Design.
+Simple and functional, it offers a thoughtfully crafted set of defaults to ensure that your next project looks and feels great before you even begin customizing.
+
+For example, the [Order Dashboard template](/joy-ui/getting-started/templates/order-dashboard/) (pictured below) is minimally customized beyond defaults, to demonstrate how meticulously we've designed each component for consistency and cohesion across the UI:
+
+
-- **Ship faster:** Joy UI gives you pre-built components with a sleek and carefully designed look and feel, so you don't need design skills to ship beautiful UIs rapidly.
-- **Extensive customization options:** you can customize each and every tiny piece of Joy UI's components to match your own unique design.
-- **Accessibility in mind:** Joy UI components are built on top of [Base UI's unstyled components and low-level hooks](/base-ui/getting-started/), giving you support for many accessibility features out of the box.
- We do our best to make all components screen reader-friendly, and also offer suggestions for optimizing accessibility throughout our documentation.
+### Highly customizable
-## Joy UI vs. Material UI
+You should feel inspired and empowered to change, extend, and revamp Joy UI's appearance and behavior with ease.
+Drawing from many years of experience maintaining Material UI, Joy UI applies new approaches to customization, enabling you to customize every piece of the components to match your unique design.
-Joy UI is intended to serve as an alternative to Material UI for designs that don't adhere to Material Design specifications.
-These two sister libraries feature many of the same components, and similarly designed component APIs, so you can quickly start building with one if you've used the other before.
+For example, the demo below shows how to customize the [List](/joy-ui/react-list/) component using built-in CSS variables to match the design of the [Gatsby documentation side nav](https://www.gatsbyjs.com/docs/):
-Try Joy UI if you appreciate the comprehensiveness and reliability of Material UI, but don't need all of the additional baggage that comes along with Material Design.
+{{"demo": "../../components/list/ExampleCollapsibleList.js"}}
-## Principles
+### Developer experience
-### Include only what's essential
+Joy UI draws its name from the idea that it should spark joy in the creative process of building apps.
+Providing an unrivaled developer experience is at the heart of this.
-Joy UI should work with the least amount of effort possible.
-We're striving for the essential only, both in the component API and design (look and feel).
+For example, observe how each element of the [Input](/joy-ui/react-input/) component automatically calculates and adjusts its own dimensions relative to the border radius, saving you from the tedium of doing it yourself:
-Components should have only what they need to do the job.
-What is considered essential is drawn from MUI's experience over the years developing component libraries, as well as from benchmarks of modern API and design guidelines—especially when it comes to developing web apps.
+{{"demo": "../../main-features/automatic-adjustment/InputVariables.js"}}
-### Make it beautiful out of the box
+### Accessibility
-Joy UI needs to be simple yet characteristic.
-Visual attributes such as scale, size, and density should be consistent across all of the components so they live together nicely.
+Joy UI components are built on top of [Base UI's unstyled components and low-level hooks](/base-ui/getting-started/), giving you many accessibility features out of the box.
+We strive to make all components accessible to end users who require assistive technology, and offer suggestions for optimizing accessibility throughout our documentation.
-We aim to spark delight with simplicity and attention to detail.
-You should feel like your UI looks great from the start.
+Joy UI's Form Control component automatically generates a unique ID that links the Input that it wraps with the Form Label and Form Helper Text components, ensuring that your app complies with this guideline:
-### Encourage creativity
+{{"demo": "../../components/input/InputField.js"}}
-Working with Joy UI shouldn't feel stiff or rigid—you should feel inspired and empowered to change, extend, and revamp Joy UI's appearance and behavior with ease.
-We want it to become your go-to starting point for building UIs.
+## Start now
-### Prioritize developer experience
+Get started with Joy UI today through some of these useful resources:
-A great developer experience is not only about the quality of the code we ship, but also about how clear the documentation is, and what learning resources are available for developers.
-We hope that every step of the experience brings you joy.
+{{"component": "modules/components/JoyStartingLinksCollection.js"}}
diff --git a/docs/data/joy/getting-started/templates/sign-in-side/App.tsx b/docs/data/joy/getting-started/templates/sign-in-side/App.tsx
index 6348e1c013a851..77865e8a5c8522 100644
--- a/docs/data/joy/getting-started/templates/sign-in-side/App.tsx
+++ b/docs/data/joy/getting-started/templates/sign-in-side/App.tsx
@@ -5,14 +5,17 @@ import CssBaseline from '@mui/joy/CssBaseline';
import Box from '@mui/joy/Box';
import Button from '@mui/joy/Button';
import Checkbox from '@mui/joy/Checkbox';
+import Divider from '@mui/joy/Divider';
import FormControl from '@mui/joy/FormControl';
import FormLabel, { formLabelClasses } from '@mui/joy/FormLabel';
import IconButton, { IconButtonProps } from '@mui/joy/IconButton';
import Link from '@mui/joy/Link';
import Input from '@mui/joy/Input';
import Typography from '@mui/joy/Typography';
+import Stack from '@mui/joy/Stack';
import DarkModeRoundedIcon from '@mui/icons-material/DarkModeRounded';
import LightModeRoundedIcon from '@mui/icons-material/LightModeRounded';
+import BadgeRoundedIcon from '@mui/icons-material/BadgeRounded';
import GoogleIcon from './GoogleIcon';
interface FormElements extends HTMLFormControlsCollection {
@@ -31,13 +34,13 @@ function ColorSchemeToggle({ onClick, ...props }: IconButtonProps) {
setMounted(true);
}, []);
if (!mounted) {
- return ;
+ return ;
}
return (
@@ -66,8 +66,8 @@ export default function JoySignInSideTemplate() {
styles={{
':root': {
'--Collapsed-breakpoint': '769px', // form will stretch when viewport is below `769px`
- '--Cover-width': '40vw', // must be `vw` only
- '--Form-maxWidth': '700px',
+ '--Cover-width': '50vw', // must be `vw` only
+ '--Form-maxWidth': '800px',
'--Transition-duration': '0.4s', // set to `none` to disable transition
},
}}
@@ -82,8 +82,8 @@ export default function JoySignInSideTemplate() {
zIndex: 1,
display: 'flex',
justifyContent: 'flex-end',
- backdropFilter: 'blur(4px)',
- backgroundColor: 'rgba(255 255 255 / 0.6)',
+ backdropFilter: 'blur(12px)',
+ backgroundColor: 'rgba(255 255 255 / 0.2)',
[theme.getColorSchemeSelector('dark')]: {
backgroundColor: 'rgba(19 19 24 / 0.4)',
},
@@ -105,30 +105,22 @@ export default function JoySignInSideTemplate() {
sx={{
py: 3,
display: 'flex',
- alignItems: 'center',
+ alignItems: 'left',
justifyContent: 'space-between',
}}
>
-
- `linear-gradient(45deg, ${theme.vars.palette.primary.solidBg}, ${theme.vars.palette.primary.solidBg} 30%, ${theme.vars.palette.primary.softBg})`,
- borderRadius: '50%',
- boxShadow: (theme) => theme.shadow.md,
- '--joy-shadowChannel': (theme) =>
- theme.vars.palette.primary.mainChannel,
- }}
- />
- }
+
- Logo
-
+
+
+
+ Company logo
+
-
-
- Sign in to your account
-
-
- Welcome back
-
-
-
- }
+
+ ({
+ [theme.getColorSchemeSelector('light')]: {
+ color: { xs: '#FFF', md: 'text.tertiary' },
+ '--Divider-lineColor': {
+ xs: '#FFF',
+ md: 'var(--joy-palette-divider)',
+ },
+ },
+ })}
>
- Sign in with Google
-
+ or
+
+
+
+
diff --git a/docs/data/joy/main-features/dark-mode-optimization/dark-mode-optimization.md b/docs/data/joy/main-features/dark-mode-optimization/dark-mode-optimization.md
index 290122373edb9f..55fd3ae03d4948 100644
--- a/docs/data/joy/main-features/dark-mode-optimization/dark-mode-optimization.md
+++ b/docs/data/joy/main-features/dark-mode-optimization/dark-mode-optimization.md
@@ -39,7 +39,7 @@ import { getInitColorSchemeScript } from '@mui/joy/styles';
export default class MyDocument extends Document {
render() {
return (
-
+
...
{getInitColorSchemeScript()}
diff --git a/docs/data/material/components/app-bar/ResponsiveAppBar.js b/docs/data/material/components/app-bar/ResponsiveAppBar.js
index c641779874aa23..8c435ab912edc5 100644
--- a/docs/data/material/components/app-bar/ResponsiveAppBar.js
+++ b/docs/data/material/components/app-bar/ResponsiveAppBar.js
@@ -44,7 +44,7 @@ function ResponsiveAppBar() {
variant="h6"
noWrap
component="a"
- href="/"
+ href="#app-bar-with-responsive-menu"
sx={{
mr: 2,
display: { xs: 'none', md: 'flex' },
@@ -99,7 +99,7 @@ function ResponsiveAppBar() {
variant="h5"
noWrap
component="a"
- href="/"
+ href="#app-bar-with-responsive-menu"
sx={{
mr: 2,
display: { xs: 'flex', md: 'none' },
diff --git a/docs/data/material/components/app-bar/ResponsiveAppBar.tsx b/docs/data/material/components/app-bar/ResponsiveAppBar.tsx
index 68e5e02e460587..d74900b12dee92 100644
--- a/docs/data/material/components/app-bar/ResponsiveAppBar.tsx
+++ b/docs/data/material/components/app-bar/ResponsiveAppBar.tsx
@@ -44,7 +44,7 @@ function ResponsiveAppBar() {
variant="h6"
noWrap
component="a"
- href="/"
+ href="#app-bar-with-responsive-menu"
sx={{
mr: 2,
display: { xs: 'none', md: 'flex' },
@@ -99,7 +99,7 @@ function ResponsiveAppBar() {
variant="h5"
noWrap
component="a"
- href="/"
+ href="#app-bar-with-responsive-menu"
sx={{
mr: 2,
display: { xs: 'flex', md: 'none' },
diff --git a/docs/data/material/components/autocomplete/Asynchronous.js b/docs/data/material/components/autocomplete/Asynchronous.js
index beb9c03846ee17..ada8153aa99fd6 100644
--- a/docs/data/material/components/autocomplete/Asynchronous.js
+++ b/docs/data/material/components/autocomplete/Asynchronous.js
@@ -3,9 +3,11 @@ import TextField from '@mui/material/TextField';
import Autocomplete from '@mui/material/Autocomplete';
import CircularProgress from '@mui/material/CircularProgress';
-function sleep(delay = 0) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(resolve, delay);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/docs/data/material/components/autocomplete/Asynchronous.tsx b/docs/data/material/components/autocomplete/Asynchronous.tsx
index 7fbbd7e62684cd..c2c4e4720ed519 100644
--- a/docs/data/material/components/autocomplete/Asynchronous.tsx
+++ b/docs/data/material/components/autocomplete/Asynchronous.tsx
@@ -8,9 +8,11 @@ interface Film {
year: number;
}
-function sleep(delay = 0) {
- return new Promise((resolve) => {
- setTimeout(resolve, delay);
+function sleep(duration: number): Promise {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/docs/data/material/components/dialogs/CookiesBanner.js b/docs/data/material/components/dialogs/CookiesBanner.js
new file mode 100644
index 00000000000000..93b32a2e461b05
--- /dev/null
+++ b/docs/data/material/components/dialogs/CookiesBanner.js
@@ -0,0 +1,108 @@
+import * as React from 'react';
+import Stack from '@mui/material/Stack';
+import TrapFocus from '@mui/material/Unstable_TrapFocus';
+import CssBaseline from '@mui/material/CssBaseline';
+import AppBar from '@mui/material/AppBar';
+import Toolbar from '@mui/material/Toolbar';
+import Container from '@mui/material/Container';
+import IconButton from '@mui/material/IconButton';
+import MenuIcon from '@mui/icons-material/Menu';
+import Paper from '@mui/material/Paper';
+import Fade from '@mui/material/Fade';
+import Button from '@mui/material/Button';
+import Box from '@mui/material/Box';
+import Typography from '@mui/material/Typography';
+
+export default function CookiesBanner() {
+ const [bannerOpen, setBannerOpen] = React.useState(true);
+
+ const closeBanner = () => {
+ setBannerOpen(false);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Rhoncus dolor purus non
+ enim praesent elementum facilisis leo vel. Risus at ultrices mi tempus
+ imperdiet.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Rhoncus dolor purus non
+ enim praesent elementum facilisis leo vel. Risus at ultrices mi tempus
+ imperdiet.
+
+
+
+
+
+
+
+ This website uses cookies
+
+ example.com relies on cookies to improve your experience.
+
+
+
+
+ Allow all
+
+
+ Reject all
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/data/material/components/dialogs/CookiesBanner.tsx b/docs/data/material/components/dialogs/CookiesBanner.tsx
new file mode 100644
index 00000000000000..93b32a2e461b05
--- /dev/null
+++ b/docs/data/material/components/dialogs/CookiesBanner.tsx
@@ -0,0 +1,108 @@
+import * as React from 'react';
+import Stack from '@mui/material/Stack';
+import TrapFocus from '@mui/material/Unstable_TrapFocus';
+import CssBaseline from '@mui/material/CssBaseline';
+import AppBar from '@mui/material/AppBar';
+import Toolbar from '@mui/material/Toolbar';
+import Container from '@mui/material/Container';
+import IconButton from '@mui/material/IconButton';
+import MenuIcon from '@mui/icons-material/Menu';
+import Paper from '@mui/material/Paper';
+import Fade from '@mui/material/Fade';
+import Button from '@mui/material/Button';
+import Box from '@mui/material/Box';
+import Typography from '@mui/material/Typography';
+
+export default function CookiesBanner() {
+ const [bannerOpen, setBannerOpen] = React.useState(true);
+
+ const closeBanner = () => {
+ setBannerOpen(false);
+ };
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Rhoncus dolor purus non
+ enim praesent elementum facilisis leo vel. Risus at ultrices mi tempus
+ imperdiet.
+
+
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Rhoncus dolor purus non
+ enim praesent elementum facilisis leo vel. Risus at ultrices mi tempus
+ imperdiet.
+
+
+
+
+
+
+
+ This website uses cookies
+
+ example.com relies on cookies to improve your experience.
+
+
+
+
+ Allow all
+
+
+ Reject all
+
+
+
+
+
+
+
+ );
+}
diff --git a/docs/data/material/components/dialogs/dialogs.md b/docs/data/material/components/dialogs/dialogs.md
index 914cfeb72f5f42..cbf62b794778ed 100644
--- a/docs/data/material/components/dialogs/dialogs.md
+++ b/docs/data/material/components/dialogs/dialogs.md
@@ -108,6 +108,15 @@ Touching "Cancel" in a confirmation dialog, or pressing Back, cancels the action
{{"demo": "ConfirmationDialog.js"}}
+## Non-modal dialog
+
+Dialogs can also be non-modal, meaning they don't interrupt user interaction behind it.
+Visit [the Nielsen Norman Group article](https://www.nngroup.com/articles/modal-nonmodal-dialog/) for more in-depth guidance about modal vs. non-modal dialog usage.
+
+The demo below shows a persistent cookie banner, a common non-modal dialog use case.
+
+{{"demo": "CookiesBanner.js", "iframe": true}}
+
## Draggable dialog
You can create a draggable dialog by using [react-draggable](https://github.com/react-grid-layout/react-draggable).
diff --git a/docs/data/material/components/pagination/pagination.md b/docs/data/material/components/pagination/pagination.md
index 93d45f33c76e33..dd50567a33336b 100644
--- a/docs/data/material/components/pagination/pagination.md
+++ b/docs/data/material/components/pagination/pagination.md
@@ -1,7 +1,7 @@
---
productId: material-ui
title: React Pagination component
-components: Pagination, PaginationItem
+components: Pagination, PaginationItem, TablePagination
githubLabel: 'component: pagination'
---
diff --git a/docs/data/material/experimental-api/css-theme-variables/migration.md b/docs/data/material/experimental-api/css-theme-variables/migration.md
index 9d7bf243912f0d..e3b3c9e8a5bb53 100644
--- a/docs/data/material/experimental-api/css-theme-variables/migration.md
+++ b/docs/data/material/experimental-api/css-theme-variables/migration.md
@@ -193,7 +193,7 @@ import { getInitColorSchemeScript } from '@mui/material/styles';
export default class MyDocument extends Document {
render() {
return (
-
+
...
{getInitColorSchemeScript()}
diff --git a/docs/data/material/experimental-api/css-theme-variables/overview.md b/docs/data/material/experimental-api/css-theme-variables/overview.md
index 20af073e857ccc..319b88daaf169f 100644
--- a/docs/data/material/experimental-api/css-theme-variables/overview.md
+++ b/docs/data/material/experimental-api/css-theme-variables/overview.md
@@ -27,11 +27,11 @@ With these variables, you can inject a theme into your app's stylesheet _at buil
For server-side applications, there are some trade-offs to consider:
-| | Compare to the default method | Reason |
-| :--------------------------------------------------- | :---------------------------- | :----------------------------------------------------------------------------------------------------------- |
-| HTML size | Bigger | CSS variables are generated for both light and dark mode at build time. |
-| [First Contentful Paint (FCP)](https://web.dev/fcp/) | Larger | Since the HTML size is generally bigger, the time to download the HTML before showing the content is longer. |
-| [Time to Interactive (TTI)](https://web.dev/tti/) | Smaller (for dark mode) | Stylesheets are not regenerated between light and dark mode, so it takes less time for JavaScript to run. |
+| | Compare to the default method | Reason |
+| :--------------------------------------------------- | :---------------------------- | :------------------------------------------------------------------------------------------------------------- |
+| HTML size | Bigger | CSS variables are generated for both light and dark mode at build time. |
+| [First Contentful Paint (FCP)](https://web.dev/fcp/) | Longer | Since the HTML size is bigger, the time to download the HTML before showing the content is a bit longer. |
+| [Time to Interactive (TTI)](https://web.dev/tti/) | Shorter (for dark mode) | Stylesheets are not regenerated between light and dark mode, a lot less time is spent running JavaScript code. |
:::warning
The comparison described in the table above may not be applicable to large and complex applications since there are so many factors that can impact performance metrics.
@@ -46,6 +46,8 @@ Adopting CSS variables requires some shifts in your mental model of theming and
**[Default approach](/material-ui/customization/dark-mode/)**: Light and dark colors are created separately.
```js
+import { createTheme } from '@mui/material/styles';
+
const lightTheme = createTheme();
const darkTheme = createTheme({
@@ -58,6 +60,8 @@ const darkTheme = createTheme({
**CSS theme variables**: Light and dark colors are consolidated into a theme.
```js
+import { experimental_extendTheme as extendTheme } from '@mui/material/styles';
+
// `extendTheme` is a new API
const theme = extendTheme({
colorSchemes: {
diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.js b/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.js
new file mode 100644
index 00000000000000..cbbdc835b12d7c
--- /dev/null
+++ b/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.js
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import {
+ experimental_extendTheme as extendTheme,
+ Experimental_CssVarsProvider as CssVarsProvider,
+} from '@mui/material/styles';
+import Button from '@mui/material/Button';
+
+const theme = extendTheme({
+ cssVarPrefix: 'md-demo',
+});
+
+export default function CssVarsBasic() {
+ return (
+
+ Hello world
+
+ );
+}
diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx b/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx
new file mode 100644
index 00000000000000..cbbdc835b12d7c
--- /dev/null
+++ b/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx
@@ -0,0 +1,18 @@
+import * as React from 'react';
+import {
+ experimental_extendTheme as extendTheme,
+ Experimental_CssVarsProvider as CssVarsProvider,
+} from '@mui/material/styles';
+import Button from '@mui/material/Button';
+
+const theme = extendTheme({
+ cssVarPrefix: 'md-demo',
+});
+
+export default function CssVarsBasic() {
+ return (
+
+ Hello world
+
+ );
+}
diff --git a/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx.preview b/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx.preview
new file mode 100644
index 00000000000000..511e5c2381dd78
--- /dev/null
+++ b/docs/data/material/experimental-api/css-theme-variables/usage/CssVarsBasic.tsx.preview
@@ -0,0 +1,3 @@
+
+ Hello world
+
\ No newline at end of file
diff --git a/docs/data/material/experimental-api/css-theme-variables/usage.md b/docs/data/material/experimental-api/css-theme-variables/usage/usage.md
similarity index 96%
rename from docs/data/material/experimental-api/css-theme-variables/usage.md
rename to docs/data/material/experimental-api/css-theme-variables/usage/usage.md
index 86a8b708c41fb6..f6bd3f239a5fe5 100644
--- a/docs/data/material/experimental-api/css-theme-variables/usage.md
+++ b/docs/data/material/experimental-api/css-theme-variables/usage/usage.md
@@ -7,14 +7,6 @@
The CSS variables API relies on a new experimental provider for the theme called `Experimental_CssVarsProvider` to inject styles into Material UI components.
In addition to providing the theme in the inner React context, this new provider also generates CSS variables out of all tokens in the theme that are not functions, and makes them available in the context as well.
-```js
-import { Experimental_CssVarsProvider as CssVarsProvider } from '@mui/material/styles';
-
-function App() {
- return ... ;
-}
-```
-
Once the `App` renders on the screen, you will see the CSS theme variables in the html `:root` stylesheet.
The variables are flattened and prefixed with `--mui` by default:
@@ -29,6 +21,10 @@ The variables are flattened and prefixed with `--mui` by default:
}
```
+The following demo uses `--md-demo` as a prefix for the variables:
+
+{{"demo": "CssVarsBasic.js", "defaultCodeOpen": true}}
+
:::info
The `CssVarsProvider` is built on top of the [`ThemeProvider`](/material-ui/customization/theming/#themeprovider) with extra features like CSS variable generation, storage synchronization, unlimited color schemes, and more.
:::
@@ -133,7 +129,7 @@ import { getInitColorSchemeScript } from '@mui/material/styles';
export default class MyDocument extends Document {
render() {
return (
-
+
...
{getInitColorSchemeScript()}
@@ -167,7 +163,6 @@ const StyledComponent = styled('button')(({ theme }) => ({
- `defaultMode?: 'light' | 'dark' | 'system'` - Application's default mode (`light` by default)
- `disableTransitionOnChange : boolean` - Disable CSS transitions when switching between modes
-- `prefix: string` - CSS variable prefix
- `theme: ThemeInput` - the theme provided to React's context
- `modeStorageKey?: string` - localStorage key used to store application `mode`
- `attribute?: string` - DOM attribute for applying color scheme
diff --git a/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md b/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md
index 32f12482f900e1..ee5db55177a68a 100644
--- a/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md
+++ b/docs/data/system/experimental-api/css-theme-variables/css-theme-variables.md
@@ -27,11 +27,11 @@ You can checkout the [advantages](https://mui.com/material-ui/experimental-api/c
For server-side applications, there are some trade-offs to consider:
-| | Compare to the default method | Reason |
-| :--------------------------------------------------- | :---------------------------- | :----------------------------------------------------------------------------------------------------------- |
-| HTML size | Bigger | CSS variables are generated for both light and dark mode at build time. |
-| [First Contentful Paint (FCP)](https://web.dev/fcp/) | Larger | Since the HTML size is generally bigger, the time to download the HTML before showing the content is longer. |
-| [Time to Interactive (TTI)](https://web.dev/tti/) | Smaller (for dark mode) | Stylesheets are not regenerated between light and dark mode, so it takes less time for JavaScript to run. |
+| | Compare to the default method | Reason |
+| :--------------------------------------------------- | :---------------------------- | :------------------------------------------------------------------------------------------------------------- |
+| HTML size | Bigger | CSS variables are generated for both light and dark mode at build time. |
+| [First Contentful Paint (FCP)](https://web.dev/fcp/) | Longer | Since the HTML size is bigger, the time to download the HTML before showing the content is bit longer. |
+| [Time to Interactive (TTI)](https://web.dev/tti/) | Shorter (for dark mode) | Stylesheets are not regenerated between light and dark mode, a lot less time is spent running JavaScript code. |
:::warning
The comparison described in the table above may not be applicable to large and complex applications since there are so many factors that can impact performance metrics.
@@ -209,7 +209,6 @@ See the complete usage of `createVssVarsProvider` in [Material UI](https://githu
- `defaultMode?: 'light' | 'dark' | 'system'` - Application's default mode (`light` by default)
- `disableTransitionOnChange : boolean` - Disable CSS transitions when switching between modes
-- `prefix: string` - CSS variable prefix
- `theme: ThemeInput` - the theme provided to React's context
- `modeStorageKey?: string` - localStorage key used to store application `mode`
- `attribute?: string` - DOM attribute for applying color scheme
diff --git a/docs/package.json b/docs/package.json
index 0099c4152a77fe..f193821ecae8d1 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -32,20 +32,20 @@
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
"@fortawesome/react-fontawesome": "^0.2.0",
- "@mui/base": "5.0.0-beta.15",
- "@mui/docs": "^5.14.9",
+ "@mui/base": "5.0.0-beta.16",
+ "@mui/docs": "^5.14.10",
"@mui/icons-material": "^5.14.9",
- "@mui/joy": "5.0.0-beta.6",
- "@mui/lab": "5.0.0-alpha.144",
+ "@mui/joy": "5.0.0-beta.7",
+ "@mui/lab": "5.0.0-alpha.145",
"@mui/markdown": "^5.0.0",
- "@mui/material": "^5.14.9",
- "@mui/material-next": "6.0.0-alpha.101",
- "@mui/styled-engine": "^5.14.9",
- "@mui/styled-engine-sc": "^5.14.9",
- "@mui/styles": "^5.14.9",
- "@mui/system": "^5.14.9",
+ "@mui/material": "^5.14.10",
+ "@mui/material-next": "6.0.0-alpha.102",
+ "@mui/styled-engine": "^5.14.10",
+ "@mui/styled-engine-sc": "^5.14.10",
+ "@mui/styles": "^5.14.10",
+ "@mui/system": "^5.14.10",
"@mui/types": "^7.2.4",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"@mui/x-charts": "^6.0.0-alpha.9",
"@mui/x-data-grid": "6.12.1",
"@mui/x-data-grid-generator": "6.12.1",
diff --git a/docs/pages/_document.js b/docs/pages/_document.js
index c64520eac1c394..9d74dc2a55b3b5 100644
--- a/docs/pages/_document.js
+++ b/docs/pages/_document.js
@@ -41,7 +41,7 @@ export default class MyDocument extends Document {
const { canonicalAsServer, userLanguage } = this.props;
return (
-
+
{/*
manifest.json provides metadata used when your web app is added to the
@@ -146,6 +146,13 @@ export default class MyDocument extends Document {
'.mode-dark .only-dark-mode': {
display: 'block',
},
+ // TODO migrate to .only-dark-mode to .only-dark-mode-v2
+ '[data-mui-color-scheme="light"] .only-dark-mode-v2': {
+ display: 'none',
+ },
+ '[data-mui-color-scheme="dark"] .only-light-mode-v2': {
+ display: 'none',
+ },
'.plan-pro, .plan-premium': {
display: 'inline-block',
height: '1em',
diff --git a/docs/pages/about.tsx b/docs/pages/about.tsx
index 0b256fabf43f76..bbd7b21bb005cd 100644
--- a/docs/pages/about.tsx
+++ b/docs/pages/about.tsx
@@ -457,7 +457,7 @@ function AboutContent() {
"Excellence. We're aiming high, and we know it.",
].map((text) => (
-
+
{text}
diff --git a/docs/pages/base-ui/api/number-input.json b/docs/pages/base-ui/api/number-input.json
index edbfc4de395594..c3d5691a4e999f 100644
--- a/docs/pages/base-ui/api/number-input.json
+++ b/docs/pages/base-ui/api/number-input.json
@@ -2,6 +2,7 @@
"props": {
"defaultValue": { "type": { "name": "any" } },
"disabled": { "type": { "name": "bool" } },
+ "endAdornment": { "type": { "name": "node" } },
"error": { "type": { "name": "bool" } },
"id": { "type": { "name": "string" } },
"max": { "type": { "name": "number" } },
@@ -38,6 +39,7 @@
"default": "{}",
"additionalInfo": { "slotsApi": true }
},
+ "startAdornment": { "type": { "name": "node" } },
"step": { "type": { "name": "number" } },
"value": { "type": { "name": "any" } }
},
@@ -74,7 +76,15 @@
}
],
"classes": {
- "classes": ["disabled", "error", "focused", "formControl", "readOnly"],
+ "classes": [
+ "adornedEnd",
+ "adornedStart",
+ "disabled",
+ "error",
+ "focused",
+ "formControl",
+ "readOnly"
+ ],
"globalClasses": {
"focused": "Mui-focused",
"disabled": "Mui-disabled",
diff --git a/docs/pages/base-ui/api/use-option.json b/docs/pages/base-ui/api/use-option.json
index e71313c454812e..0db56f9c19f981 100644
--- a/docs/pages/base-ui/api/use-option.json
+++ b/docs/pages/base-ui/api/use-option.json
@@ -14,8 +14,8 @@
"returnValue": {
"getRootProps": {
"type": {
- "name": "<Other extends EventHandlers>(otherHandlers?: Other) => UseOptionRootSlotProps<Other>",
- "description": "<Other extends EventHandlers>(otherHandlers?: Other) => UseOptionRootSlotProps<Other>"
+ "name": "<ExternalProps extends Record<string, unknown>>(externalProps?: ExternalProps) => UseOptionRootSlotProps<ExternalProps>",
+ "description": "<ExternalProps extends Record<string, unknown>>(externalProps?: ExternalProps) => UseOptionRootSlotProps<ExternalProps>"
},
"required": true
},
diff --git a/docs/pages/base-ui/api/use-select.json b/docs/pages/base-ui/api/use-select.json
index e930c7a6758041..20af4c0a2f7de0 100644
--- a/docs/pages/base-ui/api/use-select.json
+++ b/docs/pages/base-ui/api/use-select.json
@@ -96,22 +96,22 @@
},
"getButtonProps": {
"type": {
- "name": "<OtherHandlers extends EventHandlers = {}>(otherHandlers?: OtherHandlers) => UseSelectButtonSlotProps<OtherHandlers>",
- "description": "<OtherHandlers extends EventHandlers = {}>(otherHandlers?: OtherHandlers) => UseSelectButtonSlotProps<OtherHandlers>"
+ "name": "<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseSelectButtonSlotProps<ExternalProps>",
+ "description": "<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseSelectButtonSlotProps<ExternalProps>"
},
"required": true
},
"getHiddenInputProps": {
"type": {
- "name": "<OtherHandlers extends EventHandlers = {}>(otherHandlers?: OtherHandlers) => UseSelectHiddenInputSlotProps<OtherHandlers>",
- "description": "<OtherHandlers extends EventHandlers = {}>(otherHandlers?: OtherHandlers) => UseSelectHiddenInputSlotProps<OtherHandlers>"
+ "name": "<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseSelectHiddenInputSlotProps<ExternalProps>",
+ "description": "<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseSelectHiddenInputSlotProps<ExternalProps>"
},
"required": true
},
"getListboxProps": {
"type": {
- "name": "<OtherHandlers extends EventHandlers = {}>(otherHandlers?: OtherHandlers) => UseSelectListboxSlotProps<OtherHandlers>",
- "description": "<OtherHandlers extends EventHandlers = {}>(otherHandlers?: OtherHandlers) => UseSelectListboxSlotProps<OtherHandlers>"
+ "name": "<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseSelectListboxSlotProps<ExternalProps>",
+ "description": "<ExternalProps extends Record<string, unknown> = {}>(externalProps?: ExternalProps) => UseSelectListboxSlotProps<ExternalProps>"
},
"required": true
},
diff --git a/docs/pages/blog/first-look-at-joy.md b/docs/pages/blog/first-look-at-joy.md
index 1e2ff5c23e8f1d..bc5a205248ddf6 100644
--- a/docs/pages/blog/first-look-at-joy.md
+++ b/docs/pages/blog/first-look-at-joy.md
@@ -103,7 +103,7 @@ import { getInitColorSchemeScript } from '@mui/joy/styles';
export default class MyDocument extends Document {
render() {
return (
-
+
...
{getInitColorSchemeScript()}
diff --git a/docs/pages/careers.tsx b/docs/pages/careers.tsx
index 0b5a04f54f10c2..97a32575e1d465 100644
--- a/docs/pages/careers.tsx
+++ b/docs/pages/careers.tsx
@@ -346,7 +346,7 @@ function CareersContent() {
'Autonomy. We want to create a safe, high-trust team.',
].map((text) => (
-
+
{text}
@@ -381,7 +381,7 @@ function CareersContent() {
['Time off:', 'We provide 33 days of paid time off globally.'],
].map((textArray) => (
-
+
{`${textArray[0]} `}
{textArray[1]}
diff --git a/docs/pages/joy-ui/api/accordion-group.json b/docs/pages/joy-ui/api/accordion-group.json
index 762cb6a3ddf8c7..da61d4e5823c9d 100644
--- a/docs/pages/joy-ui/api/accordion-group.json
+++ b/docs/pages/joy-ui/api/accordion-group.json
@@ -3,8 +3,8 @@
"children": { "type": { "name": "node" } },
"color": {
"type": {
- "name": "enum",
- "description": "'danger' | 'neutral' | 'primary' | 'success' | 'warning'"
+ "name": "union",
+ "description": "'danger' | 'neutral' | 'primary' | 'success' | 'warning' | string"
},
"default": "'neutral'",
"additionalInfo": { "joy-color": true }
@@ -12,7 +12,10 @@
"component": { "type": { "name": "elementType" } },
"disableDivider": { "type": { "name": "bool" }, "default": "false" },
"size": {
- "type": { "name": "enum", "description": "'sm' | 'md' | 'lg'" },
+ "type": {
+ "name": "union",
+ "description": "'sm' | 'md' | 'lg' | string"
+ },
"default": "'md'",
"additionalInfo": { "joy-size": true }
},
@@ -41,8 +44,8 @@
},
"variant": {
"type": {
- "name": "enum",
- "description": "'outlined' | 'plain' | 'soft' | 'solid'"
+ "name": "union",
+ "description": "'outlined' | 'plain' | 'soft' | 'solid' | string"
},
"default": "'plain'",
"additionalInfo": { "joy-variant": true }
diff --git a/docs/pages/material-ui/api/table-pagination.json b/docs/pages/material-ui/api/table-pagination.json
index f47303035ad4d5..0fe0e042df85bb 100644
--- a/docs/pages/material-ui/api/table-pagination.json
+++ b/docs/pages/material-ui/api/table-pagination.json
@@ -79,6 +79,6 @@
"forwardsRefTo": "HTMLTableCellElement",
"filename": "/packages/mui-material/src/TablePagination/TablePagination.js",
"inheritance": { "component": "TableCell", "pathname": "/material-ui/api/table-cell/" },
- "demos": "",
+ "demos": "",
"cssComponent": false
}
diff --git a/docs/pages/material-ui/experimental-api/css-theme-variables/usage.js b/docs/pages/material-ui/experimental-api/css-theme-variables/usage.js
index 182c27e2d146bd..50811f2f187adf 100644
--- a/docs/pages/material-ui/experimental-api/css-theme-variables/usage.js
+++ b/docs/pages/material-ui/experimental-api/css-theme-variables/usage.js
@@ -4,7 +4,7 @@ import {
demos,
docs,
demoComponents,
-} from 'docs/data/material/experimental-api/css-theme-variables/usage.md?@mui/markdown';
+} from 'docs/data/material/experimental-api/css-theme-variables/usage/usage.md?@mui/markdown';
export default function Page() {
return ;
diff --git a/docs/public/static/branding/companies/nasa-light.svg b/docs/public/static/branding/companies/nasa-light.svg
deleted file mode 100644
index e2f7c84bbf9c88..00000000000000
--- a/docs/public/static/branding/companies/nasa-light.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/public/static/branding/companies/nasa-dark.svg b/docs/public/static/branding/companies/nasa.svg
similarity index 100%
rename from docs/public/static/branding/companies/nasa-dark.svg
rename to docs/public/static/branding/companies/nasa.svg
diff --git a/docs/public/static/branding/companies/netflix-light.svg b/docs/public/static/branding/companies/netflix-light.svg
deleted file mode 100644
index 400c3d74d6434d..00000000000000
--- a/docs/public/static/branding/companies/netflix-light.svg
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/public/static/branding/companies/netflix-dark.svg b/docs/public/static/branding/companies/netflix.svg
similarity index 100%
rename from docs/public/static/branding/companies/netflix-dark.svg
rename to docs/public/static/branding/companies/netflix.svg
diff --git a/docs/public/static/branding/companies/salesforce-light.svg b/docs/public/static/branding/companies/salesforce-light.svg
deleted file mode 100644
index e2738cf286f860..00000000000000
--- a/docs/public/static/branding/companies/salesforce-light.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/docs/public/static/branding/companies/salesforce-dark.svg b/docs/public/static/branding/companies/salesforce.svg
similarity index 100%
rename from docs/public/static/branding/companies/salesforce-dark.svg
rename to docs/public/static/branding/companies/salesforce.svg
diff --git a/docs/public/static/branding/companies/samsung-light.svg b/docs/public/static/branding/companies/samsung-light.svg
deleted file mode 100644
index ef13739bb1f35a..00000000000000
--- a/docs/public/static/branding/companies/samsung-light.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/docs/public/static/branding/companies/samsung-dark.svg b/docs/public/static/branding/companies/samsung.svg
similarity index 99%
rename from docs/public/static/branding/companies/samsung-dark.svg
rename to docs/public/static/branding/companies/samsung.svg
index ef13739bb1f35a..7a373423e0e920 100644
--- a/docs/public/static/branding/companies/samsung-dark.svg
+++ b/docs/public/static/branding/companies/samsung.svg
@@ -1,4 +1,4 @@
-
\ No newline at end of file
+
diff --git a/docs/public/static/branding/companies/siemens-light.svg b/docs/public/static/branding/companies/siemens-light.svg
deleted file mode 100644
index 81322130f31f7d..00000000000000
--- a/docs/public/static/branding/companies/siemens-light.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
diff --git a/docs/public/static/branding/companies/siemens-dark.svg b/docs/public/static/branding/companies/siemens.svg
similarity index 100%
rename from docs/public/static/branding/companies/siemens-dark.svg
rename to docs/public/static/branding/companies/siemens.svg
diff --git a/docs/public/static/branding/companies/twitter-light.svg b/docs/public/static/branding/companies/twitter-light.svg
deleted file mode 100644
index 3fb727fc738d31..00000000000000
--- a/docs/public/static/branding/companies/twitter-light.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/docs/public/static/branding/companies/twitter-dark.svg b/docs/public/static/branding/companies/twitter.svg
similarity index 100%
rename from docs/public/static/branding/companies/twitter-dark.svg
rename to docs/public/static/branding/companies/twitter.svg
diff --git a/docs/public/static/joy-ui/overview/order-dashboard.png b/docs/public/static/joy-ui/overview/order-dashboard.png
new file mode 100644
index 00000000000000..753e1629dced4b
Binary files /dev/null and b/docs/public/static/joy-ui/overview/order-dashboard.png differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/files-dark.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/files-dark.jpg
index f60883e4f31d62..1fde3c4eccde5d 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/files-dark.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/files-dark.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/messages.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/messages.jpg
index 5fda2388e2f6cc..15a318f7009c4a 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/messages.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/messages.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard-dark.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard-dark.jpg
index 0d435d087c8bf9..7ee55d135f7a39 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard-dark.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard-dark.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard.jpg
index e419b9b31cf572..b415d287a70e68 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/order-dashboard.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard-dark.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard-dark.jpg
index 3f9ebc57a65f70..90ea71583bc2ac 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard-dark.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard-dark.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard.jpg
index 5fcdc6ddc42759..d464c6e26cedbe 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/rental-dashboard.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side-dark.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side-dark.jpg
index 2a1728bb605944..a80ee365734390 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side-dark.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side-dark.jpg differ
diff --git a/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side.jpg b/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side.jpg
index af4aea923421b7..2425b95b48b768 100644
Binary files a/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side.jpg and b/docs/public/static/screenshots/joy-ui/getting-started/templates/sign-in-side.jpg differ
diff --git a/docs/src/components/action/InfoCard.tsx b/docs/src/components/action/InfoCard.tsx
new file mode 100644
index 00000000000000..9e702aab1f592c
--- /dev/null
+++ b/docs/src/components/action/InfoCard.tsx
@@ -0,0 +1,70 @@
+import * as React from 'react';
+import Box from '@mui/material/Box';
+import Paper from '@mui/material/Paper';
+import Typography from '@mui/material/Typography';
+import Link from 'docs/src/modules/components/Link';
+
+interface InfoCardProps {
+ icon: React.ReactNode;
+ title: string;
+ description: string;
+ link?: string;
+}
+
+export default function InfoCard({ icon, title, description, link }: InfoCardProps) {
+ return (
+ ({
+ p: 3.5,
+ height: '100%',
+ background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
+ ...theme.applyDarkStyles({
+ bgcolor: 'primaryDark.900',
+ background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
+ borderColor: 'primaryDark.700',
+ }),
+ })}
+ >
+ ({
+ width: 40,
+ height: 40,
+ display: 'flex',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: 1,
+ border: '1px solid',
+ borderColor: 'primary.200',
+ bgcolor: 'primary.50',
+ boxShadow:
+ '0px 1px 6px 0px rgba(194, 224, 255, 1), 0px 2px 30px 0px rgba(234, 237, 241, 0.3) inset',
+ ...theme.applyDarkStyles({
+ borderColor: 'primary.400',
+ bgcolor: 'primary.900',
+ boxShadow:
+ '0px 1px 6px 0px rgba(0, 89, 178, 1), 0px 2px 30px 0px rgba(0, 0, 0, 0.25) inset',
+ }),
+ })}
+ >
+ {icon}
+
+
+ {title}
+
+
+ {description}
+
+
+ );
+}
diff --git a/docs/src/components/header/ThemeModeToggle.tsx b/docs/src/components/header/ThemeModeToggle.tsx
index ce03dfc1d7db37..ff22e076ae3797 100644
--- a/docs/src/components/header/ThemeModeToggle.tsx
+++ b/docs/src/components/header/ThemeModeToggle.tsx
@@ -4,6 +4,8 @@ import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
import DarkModeOutlined from '@mui/icons-material/DarkModeOutlined';
import LightModeOutlined from '@mui/icons-material/LightModeOutlined';
+import useMediaQuery from '@mui/material/useMediaQuery';
+import { useChangeTheme } from 'docs/src/modules/components/ThemeContext';
function CssVarsModeToggle(props: { onChange: (checked: boolean) => void }) {
const [mounted, setMounted] = React.useState(false);
@@ -34,29 +36,55 @@ function CssVarsModeToggle(props: { onChange: (checked: boolean) => void }) {
);
}
-export default function ThemeModeToggle(props: {
- checked: boolean;
- onChange: (checked: boolean) => void;
-}) {
+export default function ThemeModeToggle() {
const theme = useTheme();
+ const changeTheme = useChangeTheme();
+ const [mode, setMode] = React.useState(null);
+ const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
+
+ React.useEffect(() => {
+ let initialMode = 'system';
+ try {
+ initialMode = localStorage.getItem('mui-mode') || initialMode;
+ } catch (error) {
+ // do nothing
+ }
+ setMode(initialMode);
+ }, []);
+
+ const handleChangeThemeMode = (checked: boolean) => {
+ const paletteMode = checked ? 'dark' : 'light';
+ setMode(paletteMode);
+
+ try {
+ localStorage.setItem('mui-mode', paletteMode); // syncing with homepage, can be removed once all pages are migrated to CSS variables
+ } catch (error) {
+ // do nothing
+ }
+ changeTheme({ paletteMode });
+ };
+
+ if (mode === null) {
+ return ;
+ }
+
if (theme.vars) {
// Temporarily renders conditionally because `useColorScheme` could not be used in the pages that haven't migrated to CSS theme variables.
- return ;
+ return ;
}
+
+ const checked = mode === 'system' ? prefersDarkMode : mode === 'dark';
+
return (
-
+
{
- props.onChange(!props.checked);
+ handleChangeThemeMode(!checked);
}}
>
- {props.checked ? (
-
- ) : (
-
- )}
+ {checked ? : }
);
diff --git a/docs/src/components/home/CompaniesGrid.tsx b/docs/src/components/home/CompaniesGrid.tsx
index 0f6b963bda358d..e5ef0f15b9482f 100644
--- a/docs/src/components/home/CompaniesGrid.tsx
+++ b/docs/src/components/home/CompaniesGrid.tsx
@@ -4,32 +4,40 @@ import IconImage, { IconImageProps } from 'docs/src/components/icon/IconImage';
export const CORE_CUSTOMERS: Array = [
{
- name: 'spotify',
+ alt: 'Spotify logo',
+ name: 'companies/spotify',
width: 100,
height: 52,
},
{
- name: 'amazon',
+ alt: 'Amazon logo',
+ name: 'companies/amazon',
width: 80,
height: 52,
},
{
- name: 'nasa',
+ alt: 'Nasa logo',
+ name: 'companies/nasa',
+ mode: '',
width: 52,
height: 42,
},
{
- name: 'netflix',
+ alt: 'Netflix logo',
+ name: 'companies/netflix',
+ mode: '',
width: 80,
height: 52,
},
{
- name: 'unity',
+ alt: 'Unity logo',
+ name: 'companies/unity',
width: 69,
height: 52,
},
{
- name: 'shutterstock',
+ alt: 'Shutterstock logo',
+ name: 'companies/shutterstock',
width: 100,
height: 52,
},
@@ -37,7 +45,8 @@ export const CORE_CUSTOMERS: Array = [
export const ADVANCED_CUSTOMERS: Array = [
{
- name: 'southwest',
+ alt: 'Southwest logo',
+ name: 'companies/southwest',
width: 130,
height: 54,
style: {
@@ -45,7 +54,8 @@ export const ADVANCED_CUSTOMERS: Array = [
},
},
{
- name: 'boeing',
+ alt: 'Boeing logo',
+ name: 'companies/boeing',
width: 160,
height: 86,
style: {
@@ -53,7 +63,8 @@ export const ADVANCED_CUSTOMERS: Array = [
},
},
{
- name: 'apple',
+ alt: 'Apple logo',
+ name: 'companies/apple',
width: 29,
height: 52,
style: {
@@ -61,7 +72,9 @@ export const ADVANCED_CUSTOMERS: Array = [
},
},
{
- name: 'siemens',
+ alt: 'Siemens logo',
+ name: 'companies/siemens',
+ mode: '',
width: 119,
height: 59,
style: {
@@ -69,7 +82,8 @@ export const ADVANCED_CUSTOMERS: Array = [
},
},
{
- name: 'volvo',
+ alt: 'Volvo logo',
+ name: 'companies/volvo',
width: 128,
height: 52,
style: {
@@ -77,7 +91,8 @@ export const ADVANCED_CUSTOMERS: Array = [
},
},
{
- name: 'deloitte',
+ alt: 'Deloitte logo',
+ name: 'companies/deloitte',
width: 97,
height: 52,
style: {
@@ -88,32 +103,41 @@ export const ADVANCED_CUSTOMERS: Array = [
export const DESIGNKITS_CUSTOMERS: Array = [
{
- name: 'spotify',
+ alt: 'Spotify logo',
+ name: 'companies/spotify',
width: 100,
height: 52,
},
{
- name: 'amazon',
+ alt: 'Amazon logo',
+ name: 'companies/amazon',
width: 80,
height: 52,
},
{
- name: 'apple',
+ alt: 'Apple logo',
+ name: 'companies/apple',
width: 29,
height: 52,
},
{
- name: 'netflix',
+ alt: 'Netflix logo',
+ name: 'companies/netflix',
+ mode: '',
width: 80,
height: 52,
},
{
- name: 'twitter',
+ alt: 'Twitter logo',
+ name: 'companies/twitter',
+ mode: '',
width: 31,
height: 52,
},
{
- name: 'salesforce',
+ alt: 'Salesforce logo',
+ name: 'companies/salesforce',
+ mode: '',
width: 50,
height: 52,
},
@@ -121,33 +145,39 @@ export const DESIGNKITS_CUSTOMERS: Array = [
export const TEMPLATES_CUSTOMERS: Array = [
{
- name: 'ebay',
+ alt: 'Ebay logo',
+ name: 'companies/ebay',
width: 73,
height: 52,
},
{
- name: 'amazon',
+ alt: 'Amazon logo',
+ name: 'companies/amazon',
width: 80,
height: 52,
},
{
- name: 'samsung',
+ alt: 'Samsung logo',
+ name: 'companies/samsung',
+ mode: '',
width: 88,
height: 52,
},
{
- name: 'patreon',
+ alt: 'Patreon logo',
+ name: 'companies/patreon',
width: 103,
height: 52,
},
{
- name: 'atandt',
alt: 'AT&T logo',
+ name: 'companies/atandt',
width: 71,
height: 52,
},
{
- name: 'verizon',
+ alt: 'Verizon logo',
+ name: 'companies/verizon',
width: 91,
height: 52,
},
@@ -170,7 +200,7 @@ export default function CompaniesGrid({ data }: { data: Array })
objectFit: 'contain',
}}
>
-
+
))}
diff --git a/docs/src/components/home/ProductsSwitcher.tsx b/docs/src/components/home/ProductsSwitcher.tsx
index 539597ab3e9371..a92fcbba30beac 100644
--- a/docs/src/components/home/ProductsSwitcher.tsx
+++ b/docs/src/components/home/ProductsSwitcher.tsx
@@ -74,7 +74,10 @@ function ProductItem({
event.stopPropagation();
}}
>
- Learn more {label}
+ Learn more {' '}
+
+ {label}
+
diff --git a/docs/src/components/home/References.tsx b/docs/src/components/home/References.tsx
index 54a8d76e109410..7446089a031e53 100644
--- a/docs/src/components/home/References.tsx
+++ b/docs/src/components/home/References.tsx
@@ -1,6 +1,5 @@
import * as React from 'react';
import dynamic from 'next/dynamic';
-import { useInView } from 'react-intersection-observer';
import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography';
import Section from 'docs/src/layouts/Section';
@@ -24,14 +23,10 @@ export default function References({
| typeof DESIGNKITS_CUSTOMERS
| typeof TEMPLATES_CUSTOMERS;
}) {
- const { ref, inView } = useInView({
- triggerOnce: true,
- threshold: 0,
- });
return (
-
+
- {inView && }
+
{content.map(({ icon, title, description }) => (
- ({
- p: 3,
- height: '100%',
- position: 'relative',
- borderRadius: 1,
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.grey[100],
- background: (theme.vars || theme).palette.gradients.linearSubtle,
- ...theme.applyDarkStyles({
- bgcolor: (theme.vars || theme).palette.primaryDark[900],
- borderColor: (theme.vars || theme).palette.primaryDark[700],
- background: (theme.vars || theme).palette.gradients.linearSubtle,
- }),
- })}
- >
- ({
- width: 40,
- height: 40,
- display: 'flex',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 1,
- border: '1px solid',
- borderColor: (theme.vars || theme).palette.primary[200],
- bgcolor: (theme.vars || theme).palette.primary[50],
- boxShadow:
- '0px 1px 6px 0px rgba(194, 224, 255, 1), 0px 2px 30px 0px rgba(234, 237, 241, 0.3) inset',
- ...theme.applyDarkStyles({
- borderColor: (theme.vars || theme).palette.primary[400],
- bgcolor: (theme.vars || theme).palette.primary[900],
- boxShadow:
- '0px 1px 6px 0px rgba(0, 89, 178, 1), 0px 2px 30px 0px rgba(0, 0, 0, 0.25) inset',
- }),
- })}
- >
- {icon}
-
-
- {title}
-
-
- {description}
-
-
+
))}
diff --git a/docs/src/components/home/XGridGlobalStyles.tsx b/docs/src/components/home/XGridGlobalStyles.tsx
index 5bad2522a45f08..ea356d2003fe71 100644
--- a/docs/src/components/home/XGridGlobalStyles.tsx
+++ b/docs/src/components/home/XGridGlobalStyles.tsx
@@ -125,7 +125,7 @@ export default function XGridGlobalStyles({
},
},
'& .MuiCheckbox-root': {
- color: (theme.vars || theme).palette.primary[400],
+ color: (theme.vars || theme).palette.primary[300],
},
'& .MuiIconButton-root:not(.Mui-disabled)': {
color: (theme.vars || theme).palette.primary[300],
@@ -151,9 +151,9 @@ export default function XGridGlobalStyles({
'& .MuiIconButton-root': {
'&:not([disabled])': {
color: (theme.vars || theme).palette.primaryDark[100],
- borderColor: (theme.vars || theme).palette.primaryDark[300],
+ borderColor: (theme.vars || theme).palette.primaryDark[400],
},
- borderColor: (theme.vars || theme).palette.primaryDark[500],
+ borderColor: (theme.vars || theme).palette.primaryDark[600],
},
},
},
diff --git a/docs/src/components/icon/IconImage.tsx b/docs/src/components/icon/IconImage.tsx
index 01862609e166f7..91b1ad61aab373 100644
--- a/docs/src/components/icon/IconImage.tsx
+++ b/docs/src/components/icon/IconImage.tsx
@@ -1,8 +1,7 @@
import * as React from 'react';
import { useTheme, styled, Theme } from '@mui/material/styles';
-import { SxProps } from '@mui/system';
import Box from '@mui/material/Box';
-import Tooltip from '@mui/material/Tooltip';
+import { SxProps } from '@mui/system';
export type IconImageProps = {
name:
@@ -11,35 +10,34 @@ export type IconImageProps = {
| 'product-toolpad'
| 'product-templates'
| 'product-designkits'
- | 'x-plan-pro'
- | 'x-plan-premium'
- | 'x-plan-community'
- | 'yes'
- | 'no'
- | 'time'
- | 'spotify'
- | 'amazon'
- | 'nasa'
- | 'netflix'
- | 'unity'
- | 'shutterstock'
- | 'southwest'
- | 'boeing'
- | 'siemens'
- | 'deloitte'
- | 'apple'
- | 'twitter'
- | 'salesforce'
- | 'verizon'
- | 'atandt'
- | 'patreon'
- | 'ebay'
- | 'samsung'
- | 'volvo';
+ | 'pricing/x-plan-pro'
+ | 'pricing/x-plan-premium'
+ | 'pricing/x-plan-community'
+ | 'pricing/yes'
+ | 'pricing/no'
+ | 'pricing/time'
+ | 'companies/spotify'
+ | 'companies/amazon'
+ | 'companies/nasa'
+ | 'companies/netflix'
+ | 'companies/unity'
+ | 'companies/shutterstock'
+ | 'companies/southwest'
+ | 'companies/boeing'
+ | 'companies/siemens'
+ | 'companies/deloitte'
+ | 'companies/apple'
+ | 'companies/twitter'
+ | 'companies/salesforce'
+ | 'companies/verizon'
+ | 'companies/atandt'
+ | 'companies/patreon'
+ | 'companies/ebay'
+ | 'companies/samsung'
+ | 'companies/volvo';
height?: number;
- ref?: React.Ref;
+ mode?: '' | 'light' | 'dark';
sx?: SxProps;
- title?: string;
width?: number;
} & Omit;
@@ -48,67 +46,67 @@ const Img = styled('img')({ display: 'inline-block', verticalAlign: 'bottom' });
let neverHydrated = true;
export default function IconImage(props: IconImageProps) {
- const { height: heightProp, name, title, width: widthProp, ...other } = props;
+ const { height: heightProp, name, width: widthProp, mode: modeProp, ...other } = props;
const theme = useTheme();
- const [mounted, setMounted] = React.useState(false);
+ const [firstRender, setFirstRender] = React.useState(true);
React.useEffect(() => {
- neverHydrated = false;
- setMounted(true);
+ if (neverHydrated) {
+ setFirstRender(false);
+ neverHydrated = false;
+ }
}, []);
let defaultWidth;
let defaultHeight;
- let category = '';
- let mode = `-${theme.palette.mode}`;
+ const mode = modeProp ?? (theme.palette.mode as any);
if (name.startsWith('product-')) {
defaultWidth = 36;
defaultHeight = 36;
- } else if (name.startsWith('x-plan-')) {
- category = 'pricing/';
- mode = '';
+ } else if (name.startsWith('pricing/x-plan-')) {
defaultWidth = 13;
defaultHeight = 15;
- } else if (['yes', 'no', 'time'].indexOf(name) !== -1) {
- category = 'pricing/';
+ } else if (['pricing/yes', 'pricing/no', 'pricing/time'].indexOf(name) !== -1) {
defaultWidth = 18;
defaultHeight = 18;
- } else if (
- [
- 'spotify',
- 'amazon',
- 'nasa',
- 'netflix',
- 'unity',
- 'shutterstock',
- 'southwest',
- 'boeing',
- 'siemens',
- 'deloitte',
- 'apple',
- 'twitter',
- 'salesforce',
- 'volvo',
- 'verizon',
- 'atandt',
- 'patreon',
- 'ebay',
- 'samsung',
- ].indexOf(name) !== -1
- ) {
- category = 'companies/';
}
const width = widthProp ?? defaultWidth;
const height = heightProp ?? defaultHeight;
- if (!mounted && neverHydrated && !!theme.vars && mode !== '') {
+ // First time render with a theme depend image
+ if (firstRender && neverHydrated && mode !== '') {
+ if (other.loading === 'eager') {
+ return (
+
+
+
+
+ );
+ }
+
// Prevent hydration mismatch between the light and dark mode image source.
return ;
}
- const child = (
+ return (
);
-
- if (title) {
- return {child} ;
- }
-
- return child;
}
diff --git a/docs/src/components/pricing/PricingTable.tsx b/docs/src/components/pricing/PricingTable.tsx
index 3e2c12975d1b15..cba5f64e9286a8 100644
--- a/docs/src/components/pricing/PricingTable.tsx
+++ b/docs/src/components/pricing/PricingTable.tsx
@@ -19,17 +19,17 @@ import { useLicensingModel } from 'docs/src/components/pricing/LicensingModelCon
const planInfo = {
community: {
- iconName: 'x-plan-community',
+ iconName: 'pricing/x-plan-community',
title: 'Community',
description: 'Get started with the industry-standard React UI library, MIT-licensed.',
},
pro: {
- iconName: 'x-plan-pro',
+ iconName: 'pricing/x-plan-pro',
title: 'Pro',
description: 'Best for professional developers building enterprise or data-rich applications.',
},
premium: {
- iconName: 'x-plan-premium',
+ iconName: 'pricing/x-plan-premium',
title: 'Premium',
description:
'The most advanced features for data-rich applications, as well as the highest priority for support.',
@@ -57,7 +57,7 @@ export function PlanName({
fontWeight="bold"
sx={{ display: 'flex', justifyContent: 'center', alignItems: 'center', pr: 0.5 }}
>
- {title}
+ {title}
{!disableDescription && (
= {
),
};
-const yes = ;
-const pending = ;
-const no = ;
+const yes = ;
+const pending = ;
+const no = ;
const communityData: Record = {
// MUI Core
diff --git a/docs/src/components/productBaseUI/BaseUISummary.tsx b/docs/src/components/productBaseUI/BaseUISummary.tsx
index 0d7c45f983da4d..1388eab935f0f9 100644
--- a/docs/src/components/productBaseUI/BaseUISummary.tsx
+++ b/docs/src/components/productBaseUI/BaseUISummary.tsx
@@ -1,7 +1,6 @@
import * as React from 'react';
import Box from '@mui/material/Box';
import Container from '@mui/material/Container';
-import Paper from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import Grid from '@mui/material/Grid';
import StyleRoundedIcon from '@mui/icons-material/StyleRounded';
@@ -9,7 +8,7 @@ import AccessibilityNewRounded from '@mui/icons-material/AccessibilityNewRounded
import PhishingRoundedIcon from '@mui/icons-material/PhishingRounded';
import SectionHeadline from 'docs/src/components/typography/SectionHeadline';
import GradientText from 'docs/src/components/typography/GradientText';
-import Link from 'docs/src/modules/components/Link';
+import InfoCard from 'docs/src/components/action/InfoCard';
const content = [
{
@@ -52,59 +51,7 @@ export default function BaseUISummary() {
{content.map(({ icon, title, description, link }) => (
- ({
- p: 4,
- height: '100%',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- ...theme.applyDarkStyles({
- bgcolor: 'primaryDark.900',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- borderColor: 'primaryDark.700',
- }),
- })}
- >
- ({
- width: 40,
- height: 40,
- display: 'flex',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 1,
- border: '1px solid',
- borderColor: 'primary.200',
- bgcolor: 'primary.50',
- boxShadow:
- '0px 1px 6px 0px rgba(194, 224, 255, 1), 0px 2px 30px 0px rgba(234, 237, 241, 0.3) inset',
- ...theme.applyDarkStyles({
- borderColor: 'primary.400',
- bgcolor: 'primary.900',
- boxShadow:
- '0px 1px 6px 0px rgba(0, 89, 178, 1), 0px 2px 30px 0px rgba(0, 0, 0, 0.25) inset',
- }),
- })}
- >
- {icon}
-
-
- {title}
-
-
- {description}
-
-
+
))}
diff --git a/docs/src/components/productDesignKit/DesignKitValues.tsx b/docs/src/components/productDesignKit/DesignKitValues.tsx
index 3b18d41bac872b..06cb9895752d30 100644
--- a/docs/src/components/productDesignKit/DesignKitValues.tsx
+++ b/docs/src/components/productDesignKit/DesignKitValues.tsx
@@ -1,6 +1,4 @@
import * as React from 'react';
-import Box from '@mui/material/Box';
-import Paper from '@mui/material/Paper';
import Typography from '@mui/material/Typography';
import Grid from '@mui/material/Grid';
import Palette from '@mui/icons-material/Palette';
@@ -8,6 +6,7 @@ import LibraryBooks from '@mui/icons-material/LibraryBooks';
import CodeRounded from '@mui/icons-material/CodeRounded';
import GradientText from 'docs/src/components/typography/GradientText';
import Section from 'docs/src/layouts/Section';
+import InfoCard from 'docs/src/components/action/InfoCard';
const content = [
{
@@ -43,61 +42,7 @@ function DesignKitValues() {
{content.map(({ icon, title, description }) => (
- ({
- p: 3,
- height: '100%',
- position: 'relative',
- borderRadius: '12px',
- border: '1px solid',
- borderColor: 'grey.100',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
-
- ...theme.applyDarkStyles({
- bgcolor: 'primaryDark.900',
- borderColor: 'primaryDark.700',
- background: `${(theme.vars || theme).palette.gradients.linearSubtle}`,
- }),
- })}
- >
- ({
- width: 40,
- height: 40,
- display: 'flex',
- justifyContent: 'center',
- alignItems: 'center',
- borderRadius: 1,
- border: '1px solid',
- borderColor: 'primary.200',
- bgcolor: 'primary.50',
- boxShadow:
- '0px 1px 6px 0px rgba(194, 224, 255, 1), 0px 2px 30px 0px rgba(234, 237, 241, 0.3) inset',
- ...theme.applyDarkStyles({
- borderColor: 'primary.400',
- bgcolor: 'primary.900',
- boxShadow:
- '0px 1px 6px 0px rgba(0, 89, 178, 1), 0px 2px 30px 0px rgba(0, 0, 0, 0.25) inset',
- }),
- })}
- >
- {icon}
-
-
- {title}
-
-
- {description}
-
-
+
))}
diff --git a/docs/src/components/productMaterial/MaterialStyling.tsx b/docs/src/components/productMaterial/MaterialStyling.tsx
index fe823ae53835b1..47ae8ae3cc1c36 100644
--- a/docs/src/components/productMaterial/MaterialStyling.tsx
+++ b/docs/src/components/productMaterial/MaterialStyling.tsx
@@ -42,7 +42,7 @@ const code = `
}}
/>
-
+
123 Main St, Phoenix, AZ
diff --git a/docs/src/components/productMaterial/MaterialTemplates.tsx b/docs/src/components/productMaterial/MaterialTemplates.tsx
index 8534e82854d9d3..17f5cc3cd3fa0c 100644
--- a/docs/src/components/productMaterial/MaterialTemplates.tsx
+++ b/docs/src/components/productMaterial/MaterialTemplates.tsx
@@ -19,7 +19,78 @@ import Frame from 'docs/src/components/action/Frame';
import Link from 'docs/src/modules/components/Link';
import More from 'docs/src/components/action/More';
-const DEMOS = ['Dashboard', 'Landing Pages', 'E-commerce'];
+export const DEMOS = ['Dashboard', 'Landing Pages', 'E-commerce'];
+
+export const icons = {
+ [DEMOS[0]]: ,
+ [DEMOS[1]]: ,
+ [DEMOS[2]]: ,
+};
+
+export const TEMPLATES = {
+ [DEMOS[0]]: [
+ {
+ name: 'Devias Kit Pro - Client & Admin Dashboard',
+ src: {
+ light: '/static/branding/store-templates/template-4light.jpg',
+ dark: '/static/branding/store-templates/template-4dark.jpg',
+ },
+ href: 'https://mui.com/store/items/devias-kit-pro/',
+ },
+ {
+ name: 'Minimal - Client & Admin Dashboard',
+ src: {
+ light: '/static/branding/store-templates/template-1light.jpg',
+ dark: '/static/branding/store-templates/template-1dark.jpg',
+ },
+ href: 'https://mui.com/store/items/minimal-dashboard/',
+ },
+ {
+ name: 'Berry - React Material Admin Dashboard Template',
+ src: {
+ light: '/static/branding/store-templates/template-5light.jpg',
+ dark: '/static/branding/store-templates/template-5dark.jpg',
+ },
+ href: 'https://mui.com/store/items/berry-react-material-admin/',
+ },
+ {
+ name: 'Mira Pro - React Material Admin Dashboard',
+ src: {
+ light: '/static/branding/store-templates/template-3light.jpg',
+ dark: '/static/branding/store-templates/template-3dark.jpg',
+ },
+ href: 'https://mui.com/store/items/mira-pro-react-material-admin-dashboard/',
+ },
+ ],
+ [DEMOS[1]]: [
+ {
+ name: 'theFront - Multipurpose Template + UI Kit',
+ src: {
+ light: '/static/branding/store-templates/template-2light.jpg',
+ dark: '/static/branding/store-templates/template-2dark.jpg',
+ },
+ href: 'https://mui.com/store/items/the-front-landing-page/',
+ },
+ {
+ name: 'Webbee - Multipurpose landing page UI Kit',
+ src: {
+ light: '/static/branding/store-templates/template-6light.jpg',
+ dark: '/static/branding/store-templates/template-6dark.jpg',
+ },
+ href: 'https://mui.com/store/items/webbee-landing-page/',
+ },
+ ],
+ [DEMOS[2]]: [
+ {
+ name: 'Bazar Pro - Multipurpose React Ecommerce Template',
+ src: {
+ light: '/static/branding/store-templates/template-bazar-light.jpg',
+ dark: '/static/branding/store-templates/template-bazar-dark.jpg',
+ },
+ href: 'https://mui.com/store/items/bazar-pro-react-ecommerce-template/',
+ },
+ ],
+};
function ActionArea(props: ButtonBaseProps) {
return (
@@ -54,77 +125,6 @@ function ActionArea(props: ButtonBaseProps) {
export default function MaterialTemplates() {
const [demo, setDemo] = React.useState(DEMOS[0]);
const [templateIndex, setTemplateIndex] = React.useState(1);
- const icons = {
- [DEMOS[0]]: ,
- [DEMOS[1]]: ,
- [DEMOS[2]]: ,
- };
-
- const TEMPLATES = {
- [DEMOS[0]]: [
- {
- name: 'Devias Kit Pro - Client & Admin Dashboard',
- src: {
- light: '/static/branding/store-templates/template-4light.jpg',
- dark: '/static/branding/store-templates/template-4dark.jpg',
- },
- href: 'https://mui.com/store/items/devias-kit-pro/',
- },
- {
- name: 'Minimal - Client & Admin Dashboard',
- src: {
- light: '/static/branding/store-templates/template-1light.jpg',
- dark: '/static/branding/store-templates/template-1dark.jpg',
- },
- href: 'https://mui.com/store/items/minimal-dashboard/',
- },
- {
- name: 'Berry - React Material Admin Dashboard Template',
- src: {
- light: '/static/branding/store-templates/template-5light.jpg',
- dark: '/static/branding/store-templates/template-5dark.jpg',
- },
- href: 'https://mui.com/store/items/berry-react-material-admin/',
- },
- {
- name: 'Mira Pro - React Material Admin Dashboard',
- src: {
- light: '/static/branding/store-templates/template-3light.jpg',
- dark: '/static/branding/store-templates/template-3dark.jpg',
- },
- href: 'https://mui.com/store/items/mira-pro-react-material-admin-dashboard/',
- },
- ],
- [DEMOS[1]]: [
- {
- name: 'theFront - Multipurpose Template + UI Kit',
- src: {
- light: '/static/branding/store-templates/template-2light.jpg',
- dark: '/static/branding/store-templates/template-2dark.jpg',
- },
- href: 'https://mui.com/store/items/the-front-landing-page/',
- },
- {
- name: 'Webbee - Multipurpose landing page UI Kit',
- src: {
- light: '/static/branding/store-templates/template-6light.jpg',
- dark: '/static/branding/store-templates/template-6dark.jpg',
- },
- href: 'https://mui.com/store/items/webbee-landing-page/',
- },
- ],
- [DEMOS[2]]: [
- {
- name: 'Bazar Pro - Multipurpose React Ecommerce Template',
- src: {
- light: '/static/branding/store-templates/template-bazar-light.jpg',
- dark: '/static/branding/store-templates/template-bazar-dark.jpg',
- },
- href: 'https://mui.com/store/items/bazar-pro-react-ecommerce-template/',
- },
- ],
- };
-
const templates = TEMPLATES[demo];
return (
diff --git a/docs/src/components/productTemplate/TemplateDemo.tsx b/docs/src/components/productTemplate/TemplateDemo.tsx
index 4832ea63cf35d0..228267cfa491a9 100644
--- a/docs/src/components/productTemplate/TemplateDemo.tsx
+++ b/docs/src/components/productTemplate/TemplateDemo.tsx
@@ -6,9 +6,6 @@ import ButtonBase, { ButtonBaseProps } from '@mui/material/ButtonBase';
import Grid from '@mui/material/Grid';
import Typography from '@mui/material/Typography';
import LaunchRounded from '@mui/icons-material/LaunchRounded';
-import DashboardRounded from '@mui/icons-material/DashboardRounded';
-import Layers from '@mui/icons-material/Layers';
-import ShoppingBag from '@mui/icons-material/ShoppingBag';
import KeyboardArrowLeftRounded from '@mui/icons-material/KeyboardArrowLeftRounded';
import KeyboardArrowRightRounded from '@mui/icons-material/KeyboardArrowRightRounded';
import Section from 'docs/src/layouts/Section';
@@ -19,8 +16,7 @@ import Highlighter from 'docs/src/components/action/Highlighter';
import Frame from 'docs/src/components/action/Frame';
import Link from 'docs/src/modules/components/Link';
import More from 'docs/src/components/action/More';
-
-const DEMOS = ['Dashboard', 'Landing Pages', 'E-commerce'];
+import { DEMOS, icons, TEMPLATES } from 'docs/src/components/productMaterial/MaterialTemplates';
function ActionArea(props: ButtonBaseProps) {
return (
@@ -58,77 +54,6 @@ function ActionArea(props: ButtonBaseProps) {
export default function TemplateDemo() {
const [demo, setDemo] = React.useState(DEMOS[0]);
const [templateIndex, setTemplateIndex] = React.useState(0);
- const icons = {
- [DEMOS[0]]: ,
- [DEMOS[1]]: ,
- [DEMOS[2]]: ,
- };
-
- const TEMPLATES = {
- [DEMOS[0]]: [
- {
- name: 'Devias Kit Pro - Client & Admin Dashboard',
- src: {
- light: '/static/branding/store-templates/template-4light.jpg',
- dark: '/static/branding/store-templates/template-4dark.jpg',
- },
- href: 'https://mui.com/store/items/devias-kit-pro/',
- },
- {
- name: 'Minimal - Client & Admin Dashboard',
- src: {
- light: '/static/branding/store-templates/template-1light.jpg',
- dark: '/static/branding/store-templates/template-1dark.jpg',
- },
- href: 'https://mui.com/store/items/minimal-dashboard/',
- },
- {
- name: 'Berry - React Material Admin Dashboard Template',
- src: {
- light: '/static/branding/store-templates/template-5light.jpg',
- dark: '/static/branding/store-templates/template-5dark.jpg',
- },
- href: 'https://mui.com/store/items/berry-react-material-admin/',
- },
- {
- name: 'Mira Pro - React Material Admin Dashboard',
- src: {
- light: '/static/branding/store-templates/template-3light.jpg',
- dark: '/static/branding/store-templates/template-3dark.jpg',
- },
- href: 'https://mui.com/store/items/mira-pro-react-material-admin-dashboard/',
- },
- ],
- [DEMOS[1]]: [
- {
- name: 'theFront - Multipurpose Template + UI Kit',
- src: {
- light: '/static/branding/store-templates/template-2light.jpg',
- dark: '/static/branding/store-templates/template-2dark.jpg',
- },
- href: 'https://mui.com/store/items/the-front-landing-page/',
- },
- {
- name: 'Webbee - Multipurpose landing page UI Kit',
- src: {
- light: '/static/branding/store-templates/template-6light.jpg',
- dark: '/static/branding/store-templates/template-6dark.jpg',
- },
- href: 'https://mui.com/store/items/webbee-landing-page/',
- },
- ],
- [DEMOS[2]]: [
- {
- name: 'Bazar Pro - Multipurpose React Ecommerce Template',
- src: {
- light: '/static/branding/store-templates/template-bazar-light.jpg',
- dark: '/static/branding/store-templates/template-bazar-dark.jpg',
- },
- href: 'https://mui.com/store/items/bazar-pro-react-ecommerce-template/',
- },
- ],
- };
-
const templates = TEMPLATES[demo];
return (
diff --git a/docs/src/components/productX/XComponents.tsx b/docs/src/components/productX/XComponents.tsx
index 01c523912ed573..3c0d7ec0e906dc 100644
--- a/docs/src/components/productX/XComponents.tsx
+++ b/docs/src/components/productX/XComponents.tsx
@@ -2,6 +2,7 @@ import * as React from 'react';
import Box from '@mui/material/Box';
import Fade from '@mui/material/Fade';
import Grid from '@mui/material/Grid';
+import Tooltip from '@mui/material/Tooltip';
import Typography from '@mui/material/Typography';
import TableChartRounded from '@mui/icons-material/TableChartRounded';
import DateRangeRounded from '@mui/icons-material/DateRangeRounded';
@@ -22,7 +23,7 @@ import More from 'docs/src/components/action/More';
import ROUTES from 'docs/src/route';
import IconImage from 'docs/src/components/icon/IconImage';
-const DEMOS = ['Data Grid', 'Date Range Picker', 'Charts', 'Tree View', 'Sparkline'];
+const DEMOS = ['Data Grid', 'Date and Time Pickers', 'Charts', 'Tree View', 'Sparkline'];
const WIP = DEMOS.slice(4);
function PrefetchImages() {
@@ -89,11 +90,13 @@ export default function XComponents() {
setDemo(name)}>
{WIP.includes(name) && (
-
+
+
+
)}
))}
-
+
diff --git a/docs/src/components/productX/XDateRangeDemo.tsx b/docs/src/components/productX/XDateRangeDemo.tsx
index c8c6587c07e4ec..831933d353c7b3 100644
--- a/docs/src/components/productX/XDateRangeDemo.tsx
+++ b/docs/src/components/productX/XDateRangeDemo.tsx
@@ -49,9 +49,8 @@ function CustomRangeShortcuts(props: PickersShortcutsProps>) {
theme.applyDarkStyles({
'& > div': {
bgcolor: 'primaryDark.900',
},
+ '& .MuiDateRangePickerDay-day.Mui-selected': {
+ color: '#FFF',
+ },
}),
]}
>
diff --git a/docs/src/components/productX/XGridFullDemo.tsx b/docs/src/components/productX/XGridFullDemo.tsx
index c356bae596553d..f2e500ea7b3188 100644
--- a/docs/src/components/productX/XGridFullDemo.tsx
+++ b/docs/src/components/productX/XGridFullDemo.tsx
@@ -1,4 +1,6 @@
import * as React from 'react';
+import { red, green, yellow, blue } from '@mui/material/colors';
+import { alpha } from '@mui/material/styles';
import { DataGridPro, GridToolbar, GridPaginationModel } from '@mui/x-data-grid-pro';
import { useDemoData } from '@mui/x-data-grid-generator';
import FormControl from '@mui/material/FormControl';
@@ -183,6 +185,26 @@ export default function XGridFullDemo() {
'& .MuiDataGrid-cell': {
bgcolor: 'grey.50',
},
+ '& .MuiChip-root.Rejected': {
+ color: red[800],
+ backgroundColor: red[50],
+ borderColor: red[100],
+ },
+ '& .MuiChip-root.Filled': {
+ color: green[800],
+ backgroundColor: green[50],
+ borderColor: green[100],
+ },
+ '& .MuiChip-root.Open': {
+ color: blue[800],
+ backgroundColor: blue[50],
+ borderColor: blue[100],
+ },
+ '& .MuiChip-root.PartiallyFilled': {
+ color: 'text.secondary',
+ backgroundColor: yellow[50],
+ borderColor: yellow[600],
+ },
'& .MuiDataGrid-footerContainer': {
minHeight: 48,
borderTop: '1px solid',
@@ -209,6 +231,26 @@ export default function XGridFullDemo() {
'& .MuiDataGrid-footerContainer': {
borderColor: 'primaryDark.600',
},
+ '& .MuiChip-root.Rejected': {
+ color: red[200],
+ backgroundColor: alpha(red[900], 0.2),
+ borderColor: alpha(red[700], 0.5),
+ },
+ '& .MuiChip-root.Filled': {
+ color: green[200],
+ backgroundColor: alpha(green[900], 0.2),
+ borderColor: alpha(green[700], 0.5),
+ },
+ '& .MuiChip-root.Open': {
+ color: blue[200],
+ backgroundColor: alpha(blue[900], 0.2),
+ borderColor: alpha(blue[700], 0.5),
+ },
+ '& .MuiChip-root.PartiallyFilled': {
+ color: yellow[200],
+ backgroundColor: alpha(yellow[900], 0.2),
+ borderColor: alpha(yellow[700], 0.2),
+ },
},
}),
]}
diff --git a/docs/src/components/productX/XHero.tsx b/docs/src/components/productX/XHero.tsx
index f40e12ce0771fa..5319cc4c5a9ea2 100644
--- a/docs/src/components/productX/XHero.tsx
+++ b/docs/src/components/productX/XHero.tsx
@@ -1,5 +1,5 @@
import * as React from 'react';
-import { red } from '@mui/material/colors';
+import { red, green, yellow, blue } from '@mui/material/colors';
import Box from '@mui/material/Box';
import Divider from '@mui/material/Divider';
import Paper from '@mui/material/Paper';
@@ -207,10 +207,25 @@ export default function XHero() {
px: 0.5,
},
},
- '& .MuiDataGrid-cell[data-field="status"][data-value="Rejected"]': {
- '& .MuiChip-root': {
- color: red[500],
- },
+ '& .MuiChip-root.Rejected': {
+ color: red[800],
+ backgroundColor: red[50],
+ borderColor: red[100],
+ },
+ '& .MuiChip-root.Filled': {
+ color: green[800],
+ backgroundColor: green[50],
+ borderColor: green[100],
+ },
+ '& .MuiChip-root.Open': {
+ color: blue[800],
+ backgroundColor: blue[50],
+ borderColor: blue[100],
+ },
+ '& .MuiChip-root.PartiallyFilled': {
+ color: 'text.secondary',
+ backgroundColor: yellow[50],
+ borderColor: yellow[600],
},
'& .grouping-column-header': {
pl: 6,
@@ -226,10 +241,25 @@ export default function XHero() {
'& .MuiDataGrid-cell': {
borderColor: alpha(theme.palette.primaryDark[600], 0.5),
},
- '& .MuiDataGrid-cell[data-field="status"][data-value="Rejected"]': {
- '& .MuiChip-root': {
- color: red[300],
- },
+ '& .MuiChip-root.Rejected': {
+ color: red[200],
+ backgroundColor: alpha(red[900], 0.2),
+ borderColor: alpha(red[700], 0.5),
+ },
+ '& .MuiChip-root.Filled': {
+ color: green[200],
+ backgroundColor: alpha(green[900], 0.2),
+ borderColor: alpha(green[700], 0.5),
+ },
+ '& .MuiChip-root.Open': {
+ color: blue[200],
+ backgroundColor: alpha(blue[900], 0.2),
+ borderColor: alpha(blue[700], 0.5),
+ },
+ '& .MuiChip-root.PartiallyFilled': {
+ color: yellow[200],
+ backgroundColor: alpha(yellow[900], 0.2),
+ borderColor: alpha(yellow[700], 0.2),
},
},
}),
@@ -274,9 +304,9 @@ export default function XHero() {
flexGrow: 1,
})}
>
-
- Cool Project
-
+
+ Cool UI project
+
@@ -305,6 +335,9 @@ export default function XHero() {
'& [role="row"]': {
margin: { xs: '4px 0', xl: '6px 0' },
},
+ '& .MuiPickersArrowSwitcher-root': {
+ padding: 1,
+ },
'& .MuiDateRangePickerDay-root': {
lineHeight: 0,
margin: 0,
@@ -314,6 +347,12 @@ export default function XHero() {
height: { xs: 28, xl: 32 },
fontWeight: 400,
},
+ '& .MuiDateRangePickerDay-day.Mui-selected': {
+ fontWeight: 600,
+ },
+ '& .MuiDateRangePickerDay-day:not(.Mui-selected)': {
+ borderColor: 'primary.300',
+ },
},
(theme) =>
theme.applyDarkStyles({
@@ -322,6 +361,9 @@ export default function XHero() {
'& > div': {
backgroundColor: 'primaryDark.800',
},
+ '& .MuiDateRangePickerDay-day.Mui-selected': {
+ color: '#FFF',
+ },
}),
]}
>
diff --git a/docs/src/components/productX/XRoadmap.tsx b/docs/src/components/productX/XRoadmap.tsx
index 88efbc00e4fb66..120fcaeec5b806 100644
--- a/docs/src/components/productX/XRoadmap.tsx
+++ b/docs/src/components/productX/XRoadmap.tsx
@@ -12,6 +12,7 @@ import ShowChartRounded from '@mui/icons-material/ShowChartRounded';
import BarChartRounded from '@mui/icons-material/BarChartRounded';
import FileUploadRounded from '@mui/icons-material/FileUploadRounded';
import PendingActionsRounded from '@mui/icons-material/PendingActions';
+import InsertDriveFileOutlined from '@mui/icons-material/InsertDriveFileOutlined';
import SpeedRounded from '@mui/icons-material/SpeedRounded';
import { alpha } from '@mui/material/styles';
import ROUTES from 'docs/src/route';
@@ -35,7 +36,7 @@ export default function XRoadmap() {
content: '""',
display: 'block',
position: 'absolute',
- width: 2,
+ width: 1.5,
bgcolor: 'primaryDark.500',
top: 24,
bottom: 10,
@@ -51,26 +52,17 @@ export default function XRoadmap() {
const bullet = (
);
@@ -98,7 +90,7 @@ export default function XRoadmap() {
/>
Data Grid
- Date Picker
+ Date and Time Pickers
+
+ Charts
+
+ Tree View
,
)}
@@ -164,16 +160,33 @@ export default function XRoadmap() {
Data Grid
{bullet}
- Charts integration
- {bullet}
Pivoting
{bullet}
+ Charts integration
+ {bullet}
And more!
,
true,
)}
+ {renderList(
+
+
+
+
+ Tree View
+ {bullet}
+ Virtualization
+ {bullet}
+ Drag and Drop
+ ,
+ true,
+ )}
@@ -188,10 +201,8 @@ export default function XRoadmap() {
Sparkline
-
- Charts
-
- Tree View
+
+ Rich Text Editor
Upload
diff --git a/docs/src/components/productX/XTreeViewDemo.tsx b/docs/src/components/productX/XTreeViewDemo.tsx
index df4eba0ada0505..26f2d86d4923fa 100644
--- a/docs/src/components/productX/XTreeViewDemo.tsx
+++ b/docs/src/components/productX/XTreeViewDemo.tsx
@@ -12,8 +12,6 @@ import {
TreeItemContentProps,
} from '@mui/x-tree-view/TreeItem';
import Typography from '@mui/material/Typography';
-import AddBoxOutlined from '@mui/icons-material/AddBoxOutlined';
-import IndeterminateCheckBoxOutlined from '@mui/icons-material/IndeterminateCheckBoxOutlined';
import FolderRounded from '@mui/icons-material/FolderRounded';
import FolderOpenRounded from '@mui/icons-material/FolderOpenRounded';
import PhotoOutlined from '@mui/icons-material/PhotoOutlined';
@@ -157,19 +155,14 @@ const StyledTreeItem = styled(MuiTreeItem)(({ theme }) => [
},
'& .MuiTreeItem-root': {
position: 'relative',
- '&:last-of-type': {
- '&:before': {
- height: 30 / 2,
- },
- },
'&:before': {
content: '""',
display: 'block',
position: 'absolute',
- left: -18,
+ left: -14,
height: '100%',
- width: 2,
- backgroundColor: (theme.vars || theme).palette.grey[200],
+ width: 1.5,
+ backgroundColor: (theme.vars || theme).palette.grey[100],
},
},
'& .MuiTreeItem-content': {
@@ -178,25 +171,12 @@ const StyledTreeItem = styled(MuiTreeItem)(({ theme }) => [
'& .MuiTreeItem-group': {
marginLeft: 0,
paddingLeft: theme.spacing(3),
- '& .MuiTreeItem-content': {
- '&:before': {
- content: '""',
- position: 'absolute',
- display: 'block',
- width: 24,
- height: 2,
- backgroundColor: (theme.vars || theme).palette.grey[200],
- top: '50%',
- left: 6,
- transform: 'translate(-100%, -50%)',
- },
- },
},
},
theme.applyDarkStyles({
'& .MuiTreeItem-root': {
'&:before': {
- backgroundColor: (theme.vars || theme).palette.primaryDark[500],
+ backgroundColor: (theme.vars || theme).palette.primaryDark[700],
},
},
'& .MuiTreeItem-group': {
@@ -236,8 +216,6 @@ export default function XDateRangeDemo() {
}
- defaultExpandIcon={ }
sx={{ height: { xs: 260, sm: 300 }, overflowY: 'auto', p: 1 }}
>
@@ -261,12 +239,12 @@ export default function XDateRangeDemo() {
@@ -274,15 +252,15 @@ export default function XDateRangeDemo() {
-
+
[
},
'& .MuiTreeItem-root': {
position: 'relative',
- '&:last-of-type': {
- '&:before': {
- height: 34 / 2,
- },
- },
'&:before': {
content: '""',
display: 'block',
position: 'absolute',
- left: -18,
+ left: -14,
height: '100%',
- width: 2,
+ width: 1.5,
backgroundColor: (theme.vars || theme).palette.grey[200],
},
},
'& .MuiTreeItem-group': {
marginLeft: 0,
paddingLeft: theme.spacing(3),
- '& .MuiTreeItem-content': {
- '&:before': {
- content: '""',
- position: 'absolute',
- display: 'block',
- width: 24,
- height: 2,
- backgroundColor: (theme.vars || theme).palette.grey[200],
- top: '50%',
- left: 6,
- transform: 'translate(-100%, -50%)',
- },
- },
},
},
theme.applyDarkStyles({
@@ -193,25 +175,34 @@ export default function FolderTreeView() {
sx={{ p: 1, overflowY: 'auto' }}
>
-
-
+
+
+
+
-
+
-
+
+
+
+
diff --git a/docs/src/components/showcase/RealEstateCard.tsx b/docs/src/components/showcase/RealEstateCard.tsx
index b7e787c103d97c..7f89952d59da2e 100644
--- a/docs/src/components/showcase/RealEstateCard.tsx
+++ b/docs/src/components/showcase/RealEstateCard.tsx
@@ -38,7 +38,7 @@ export default function RealEstateCard({ sx, ...props }: CardProps) {
/>
-
+
123 Main St, Phoenix, AZ
diff --git a/docs/src/layouts/AppFooter.tsx b/docs/src/layouts/AppFooter.tsx
index ad4ce482336021..e38e3156cb56a9 100644
--- a/docs/src/layouts/AppFooter.tsx
+++ b/docs/src/layouts/AppFooter.tsx
@@ -95,7 +95,7 @@ export default function AppFooter(props: AppFooterProps) {
Store
Blog
Showcase
- Roadmap
+ Roadmap
diff --git a/docs/src/layouts/AppHeader.tsx b/docs/src/layouts/AppHeader.tsx
index 21d5c8ee80512d..8aba9bb331058d 100644
--- a/docs/src/layouts/AppHeader.tsx
+++ b/docs/src/layouts/AppHeader.tsx
@@ -1,6 +1,5 @@
import * as React from 'react';
import { styled, alpha } from '@mui/material/styles';
-import useMediaQuery from '@mui/material/useMediaQuery';
import GlobalStyles from '@mui/material/GlobalStyles';
import Box from '@mui/material/Box';
import Stack from '@mui/material/Stack';
@@ -12,7 +11,6 @@ import SvgMuiLogomark from 'docs/src/icons/SvgMuiLogomark';
import HeaderNavBar from 'docs/src/components/header/HeaderNavBar';
import HeaderNavDropdown from 'docs/src/components/header/HeaderNavDropdown';
import ThemeModeToggle from 'docs/src/components/header/ThemeModeToggle';
-import { useChangeTheme } from 'docs/src/modules/components/ThemeContext';
import Link from 'docs/src/modules/components/Link';
import { DeferredAppSearch } from 'docs/src/modules/components/AppFrame';
import { useTranslate } from 'docs/src/modules/utils/i18n';
@@ -41,34 +39,9 @@ interface AppHeaderProps {
export default function AppHeader(props: AppHeaderProps) {
const { gitHubRepository = 'https://github.com/mui' } = props;
- const changeTheme = useChangeTheme();
- const [mode, setMode] = React.useState(null);
- const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
const t = useTranslate();
- React.useEffect(() => {
- let initialMode = 'system';
- try {
- initialMode = localStorage.getItem('mui-mode') || initialMode;
- } catch (error) {
- // do nothing
- }
- setMode(initialMode);
- }, []);
-
- const handleChangeThemeMode = (checked: boolean) => {
- const paletteMode = checked ? 'dark' : 'light';
- setMode(paletteMode);
-
- try {
- localStorage.setItem('mui-mode', paletteMode); // syncing with homepage, can be removed once all pages are migrated to CSS variables
- } catch (error) {
- // do nothing
- }
- changeTheme({ paletteMode });
- };
-
return (
- {mode !== null ? (
-
- ) : null}
+
diff --git a/docs/src/modules/brandingTheme.ts b/docs/src/modules/brandingTheme.ts
index 23008b77aee718..644593bbabfa5d 100644
--- a/docs/src/modules/brandingTheme.ts
+++ b/docs/src/modules/brandingTheme.ts
@@ -1004,13 +1004,13 @@ export function getThemedComponents(): ThemeOptions {
(theme.vars || theme).palette.grey[50]
}, 0 1px 0.5px ${alpha(theme.palette.grey[100], 0.6)}`,
'&:hover': {
- borderColor: (theme.vars || theme).palette.primary[300],
+ borderColor: (theme.vars || theme).palette.primary[200],
boxShadow: `0px 4px 16px ${(theme.vars || theme).palette.grey[200]}`,
},
},
':is(a&), :is(button&)': {
'&:hover': {
- borderColor: (theme.vars || theme).palette.primary[300],
+ borderColor: (theme.vars || theme).palette.primary[200],
boxShadow: `0px 4px 16px ${(theme.vars || theme).palette.grey[200]}`,
},
},
@@ -1027,6 +1027,7 @@ export function getThemedComponents(): ThemeOptions {
(theme.vars || theme).palette.primaryDark[900]
}, 0 1px 0.5px ${(theme.vars || theme).palette.common.black}`,
'&:hover': {
+ borderColor: (theme.vars || theme).palette.primary[700],
boxShadow: `0px 4px 24px ${(theme.vars || theme).palette.common.black}`,
},
},
diff --git a/docs/src/modules/components/ApiPage/ApiItem.tsx b/docs/src/modules/components/ApiPage/ApiItem.tsx
index 61003489ae032a..78ddcecc4c613b 100644
--- a/docs/src/modules/components/ApiPage/ApiItem.tsx
+++ b/docs/src/modules/components/ApiPage/ApiItem.tsx
@@ -196,7 +196,7 @@ export type ApiItemProps = {
children: React.ReactNode;
};
-function ApiItem(props: ApiItemProps) {
+export default function ApiItem(props: ApiItemProps) {
const { title, description, note, children, type, id, ...other } = props;
const descriptionRef = React.useRef(null);
const [isOverflow, setIsOverflow] = React.useState(false);
@@ -221,26 +221,16 @@ function ApiItem(props: ApiItemProps) {
return (
-
{
- navigator.clipboard.writeText(
- `${window.location.origin}${window.location.pathname}#${id}`,
- );
- }}
- >
+
-
{title}
-
{
return (
)}
-
- {t('api-docs.default')}: {defaultValue}
-
+ {defaultValue && (
+
+ {t('api-docs.default')}: {' '}
+ {defaultValue}
+
+ )}
{className && (
{t('api-docs.globalClass')}: {' '}
diff --git a/docs/src/modules/components/AppSearch.js b/docs/src/modules/components/AppSearch.js
index 1026b22fe92a25..25243d2056006d 100644
--- a/docs/src/modules/components/AppSearch.js
+++ b/docs/src/modules/components/AppSearch.js
@@ -332,7 +332,7 @@ export default function AppSearch(props) {
})}
/>
{search}
-
+
{/* eslint-disable-next-line material-ui/no-hardcoded-labels */}
{macOS ? '⌘' : 'Ctrl+'}K
diff --git a/docs/src/modules/components/DemoErrorBoundary.js b/docs/src/modules/components/DemoErrorBoundary.js
index bc79d35ae813fb..5817e494b47509 100644
--- a/docs/src/modules/components/DemoErrorBoundary.js
+++ b/docs/src/modules/components/DemoErrorBoundary.js
@@ -9,7 +9,7 @@ import Button from '@mui/material/Button';
* with node 8 + IE11 support i.e. not using URL (URLSearchParams.set replaced with Map.set)
*/
function newGitHubIssueUrl(options) {
- const url = `https://github.com/${options.user}/${options.repo}/issues/new`;
+ const url = `${process.env.SOURCE_CODE_REPO}/issues/new`;
const query = Object.keys(options)
.map((type) => {
@@ -38,23 +38,23 @@ export default class DemoErrorBoundary extends React.Component {
const title = `[docs] Demo ${name} crashes`;
const searchQuery = encodeURIComponent(`is:issue ${title}`);
const issueLink = newGitHubIssueUrl({
- user: 'mui',
- repo: 'material-ui',
title,
body: `
-- [ ] I have [searched for similar issues](https://github.com/mui/material-ui/issues?q=${searchQuery}) in this repository and believe that this is not a duplicate.
+- [ ] I have [searched for similar issues](${
+ process.env.SOURCE_CODE_REPO
+ }/issues?q=${searchQuery}) in this repository and believe that this is not a duplicate.
-## Steps to Reproduce
+## Steps to reproduce
1. Visit ${window.location.href}
2. ??
3. demo *${name}* crashes
-## Your Environment
+## Your environment
| Tech | Version |
|--------------|---------|
-| MUI | v${process.env.LIB_VERSION} |
+| Version | v${process.env.LIB_VERSION} |
| Netlify deploy | ${process.env.NETLIFY_DEPLOY_URL} |
| Browser | ${
typeof window !== 'undefined' && window.navigator
@@ -71,15 +71,15 @@ export default class DemoErrorBoundary extends React.Component {
This demo had a runtime error!
- We would appreciate it if you{' '}
+ {'We would appreciate it if you '}
report this error
- {' '}
- directly in our issue tracker. You will be provided with a prefilled description that
- includes valuable information about this error.
+
+ {` directly in our issue tracker with the steps you took to trigger it.
+The "report this error" link prefills the issue description with valuable information.`}
{error.toString()}
-
+
{t('resetDemo')}
diff --git a/docs/src/modules/components/JoyStartingLinksCollection.js b/docs/src/modules/components/JoyStartingLinksCollection.js
new file mode 100644
index 00000000000000..552e24875fee9c
--- /dev/null
+++ b/docs/src/modules/components/JoyStartingLinksCollection.js
@@ -0,0 +1,39 @@
+import * as React from 'react';
+import Grid from '@mui/material/Unstable_Grid2';
+import InstallDesktopRoundedIcon from '@mui/icons-material/InstallDesktopRounded';
+import WebRoundedIcon from '@mui/icons-material/WebRounded';
+import DrawRoundedIcon from '@mui/icons-material/DrawRounded';
+import InfoCard from 'docs/src/components/action/InfoCard';
+
+const content = [
+ {
+ title: 'Installation',
+ description: 'Add Joy UI to your project with a few commands.',
+ link: '/joy-ui/getting-started/installation/',
+ icon: ,
+ },
+ {
+ title: 'Usage',
+ description: 'Learn the basics of working with Joy UI components.',
+ link: '/joy-ui/getting-started/usage/',
+ icon: ,
+ },
+ {
+ title: 'Templates',
+ description: 'Get started with our selection of free application templates.',
+ link: 'joy-ui/getting-started/templates/',
+ icon: ,
+ },
+];
+
+export default function JoyStartingLinksCollection() {
+ return (
+
+ {content.map(({ icon, title, description, link }) => (
+
+
+
+ ))}
+
+ );
+}
diff --git a/docs/src/modules/utils/helpers.ts b/docs/src/modules/utils/helpers.ts
index d8c774cfa664f1..d15cd5695a0c5c 100644
--- a/docs/src/modules/utils/helpers.ts
+++ b/docs/src/modules/utils/helpers.ts
@@ -100,7 +100,14 @@ export function pathnameToLanguage(pathname: string): {
// Remove hash as it's never sent to the server
// https://github.com/vercel/next.js/issues/25202
const canonicalAsServer = canonicalAs.replace(/#(.*)$/, '');
- const canonicalPathname = canonicalAsServer.replace(/^\/api/, '/api-docs').replace(/\/$/, '');
+
+ let canonicalPathname = canonicalAsServer.replace(/^\/api/, '/api-docs');
+
+ // Remove trailing slash as Next.js doesn't expect it here
+ // https://nextjs.org/docs/pages/api-reference/functions/use-router#router-object
+ if (canonicalPathname !== '/') {
+ canonicalPathname = canonicalPathname.replace(/\/$/, '');
+ }
return {
userLanguage,
diff --git a/docs/src/route.ts b/docs/src/route.ts
index 3298d28c4eea04..9f9c973f61e193 100644
--- a/docs/src/route.ts
+++ b/docs/src/route.ts
@@ -26,7 +26,7 @@ const ROUTES = {
communityHelp: '/material-ui/getting-started/support/#community-help-free',
blog: '/blog/',
showcase: '/material-ui/discover-more/showcase/',
- roadmap: 'https://github.com/mui/mui-x/projects/1',
+ xRoadmap: 'https://github.com/mui/mui-x/projects/1',
vision: '/material-ui/discover-more/vision/',
support: '/material-ui/getting-started/support/#professional-support-premium',
privacyPolicy: 'https://mui.com/legal/privacy/',
@@ -34,6 +34,7 @@ const ROUTES = {
store: 'https://mui.com/store/',
advancedComponents: '/x/introduction/',
toolpadDocs: '/toolpad/getting-started/overview/',
+ xDocs: '/x/introduction',
dataGridSpace: '/x/react-data-grid/getting-started/',
dataGridDocs: '/x/react-data-grid/getting-started/',
dataGridFeatures: '/x/react-data-grid/#features',
diff --git a/docs/translations/api-docs-base/number-input/number-input.json b/docs/translations/api-docs-base/number-input/number-input.json
index 321d31af64704a..cc0f0e31c56329 100644
--- a/docs/translations/api-docs-base/number-input/number-input.json
+++ b/docs/translations/api-docs-base/number-input/number-input.json
@@ -7,6 +7,7 @@
"disabled": {
"description": "If true
, the component is disabled. The prop defaults to the value (false
) inherited from the parent FormControl component."
},
+ "endAdornment": { "description": "Trailing adornment for this input." },
"error": {
"description": "If true
, the input
will indicate an error by setting the aria-invalid
attribute on the input and the Mui-error
class on the root element."
},
@@ -37,6 +38,7 @@
"slots": {
"description": "The components used for each slot inside the InputBase. Either a string to use a HTML element or a component."
},
+ "startAdornment": { "description": "Leading adornment for this input." },
"step": { "description": "The amount that the value changes on each increment or decrement." },
"value": { "description": "The current value. Use when the component is controlled." }
},
@@ -47,6 +49,16 @@
"nodeName": "the root element",
"conditions": "the component is a descendant of FormControl
"
},
+ "adornedStart": {
+ "description": "Class name applied to {{nodeName}} if {{conditions}}.",
+ "nodeName": "the root element",
+ "conditions": "startAdornment
is provided"
+ },
+ "adornedEnd": {
+ "description": "Class name applied to {{nodeName}} if {{conditions}}.",
+ "nodeName": "the root element",
+ "conditions": "endAdornment
is provided"
+ },
"focused": {
"description": "Class name applied to {{nodeName}} if {{conditions}}.",
"nodeName": "the root element",
diff --git a/docs/translations/api-docs/use-option/use-option.json b/docs/translations/api-docs/use-option/use-option.json
index e3eb65c6e43006..07b5b62753ad2c 100644
--- a/docs/translations/api-docs/use-option/use-option.json
+++ b/docs/translations/api-docs/use-option/use-option.json
@@ -1 +1,10 @@
-{ "hookDescription": "", "parametersDescriptions": {}, "returnValueDescriptions": {} }
+{
+ "hookDescription": "",
+ "parametersDescriptions": {},
+ "returnValueDescriptions": {
+ "getRootProps": { "description": "Resolver for the root slot's props." },
+ "highlighted": { "description": "If true
, the option is highlighted." },
+ "rootRef": { "description": "Ref to the root slot DOM node." },
+ "selected": { "description": "If true
, the option is selected." }
+ }
+}
diff --git a/package.json b/package.json
index e0779ec929640d..713dc77ce80719 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/monorepo",
- "version": "5.14.9",
+ "version": "5.14.10",
"private": true,
"scripts": {
"proptypes": "cross-env BABEL_ENV=development babel-node --extensions \".tsx,.ts,.js\" ./scripts/generateProptypes.ts",
diff --git a/packages/api-docs-builder/package.json b/packages/api-docs-builder/package.json
index 4c0fb7e20f7254..88a910e16f9c22 100644
--- a/packages/api-docs-builder/package.json
+++ b/packages/api-docs-builder/package.json
@@ -12,7 +12,7 @@
"@babel/traverse": "^7.22.17",
"@mui-internal/docs-utilities": "^1.0.0",
"@mui/markdown": "^5.0.0",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"ast-types": "^0.14.2",
"docs": "^5.0.0",
"doctrine": "^3.0.0",
diff --git a/packages/eslint-plugin-material-ui/package.json b/packages/eslint-plugin-material-ui/package.json
index 85555720f539a4..3b137eb5c24c3d 100644
--- a/packages/eslint-plugin-material-ui/package.json
+++ b/packages/eslint-plugin-material-ui/package.json
@@ -12,6 +12,9 @@
"@typescript-eslint/parser": "^6.6.0",
"eslint": "^8.47.0"
},
+ "peerDependencies": {
+ "eslint": "^8.47.0"
+ },
"scripts": {
"test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/eslint-plugin-material-ui/**/*.test.js'"
},
diff --git a/packages/mui-base/package.json b/packages/mui-base/package.json
index c4d0eeacea967a..1236c2b3efce42 100644
--- a/packages/mui-base/package.json
+++ b/packages/mui-base/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/base",
- "version": "5.0.0-beta.15",
+ "version": "5.0.0-beta.16",
"private": false,
"author": "MUI Team",
"description": "A library of headless ('unstyled') React UI components and low-level hooks.",
@@ -44,13 +44,13 @@
"@babel/runtime": "^7.22.15",
"@floating-ui/react-dom": "^2.0.2",
"@mui/types": "^7.2.4",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"@popperjs/core": "^2.11.8",
"clsx": "^2.0.0",
"prop-types": "^15.8.1"
},
"devDependencies": {
- "@mui/material": "^5.14.9",
+ "@mui/material": "^5.14.10",
"@testing-library/react": "^14.0.0",
"@testing-library/user-event": "^14.4.3",
"@types/chai": "^4.3.5",
diff --git a/packages/mui-base/src/FormControl/FormControl.tsx b/packages/mui-base/src/FormControl/FormControl.tsx
index f5959d15700ab1..1ee347e07059a1 100644
--- a/packages/mui-base/src/FormControl/FormControl.tsx
+++ b/packages/mui-base/src/FormControl/FormControl.tsx
@@ -1,7 +1,7 @@
'use client';
import * as React from 'react';
import PropTypes from 'prop-types';
-import { unstable_useControlled as useControlled } from '@mui/utils';
+import useControlled from '@mui/utils/useControlled';
import { PolymorphicComponent } from '../utils/PolymorphicComponent';
import { FormControlContext } from './FormControlContext';
import { getFormControlUtilityClass } from './formControlClasses';
diff --git a/packages/mui-base/src/TextareaAutosize/TextareaAutosize.test.tsx b/packages/mui-base/src/TextareaAutosize/TextareaAutosize.test.tsx
index 1740aa8eb6b37b..3d70576baacd46 100644
--- a/packages/mui-base/src/TextareaAutosize/TextareaAutosize.test.tsx
+++ b/packages/mui-base/src/TextareaAutosize/TextareaAutosize.test.tsx
@@ -4,6 +4,8 @@ import sinon, { spy, stub } from 'sinon';
import {
describeConformanceUnstyled,
act,
+ screen,
+ waitFor,
createMount,
createRenderer,
fireEvent,
@@ -15,6 +17,29 @@ function getStyleValue(value: string) {
return parseInt(value, 10) || 0;
}
+// TODO: merge into a shared test helpers.
+// MUI X already have one under mui-x/test/utils/helperFn.ts
+function sleep(duration: number): Promise {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve();
+ }, duration);
+ });
+}
+
+async function raf() {
+ return new Promise((resolve) => {
+ // Chrome and Safari have a bug where calling rAF once returns the current
+ // frame instead of the next frame, so we need to call a double rAF here.
+ // See crbug.com/675795 for more.
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ resolve();
+ });
+ });
+ });
+}
+
describe(' ', () => {
const { clock, render } = createRenderer();
const mount = createMount();
@@ -36,6 +61,109 @@ describe(' ', () => {
],
}));
+ // For https://github.com/mui/material-ui/pull/33238
+ it('should not crash when unmounting with Suspense', async () => {
+ const LazyRoute = React.lazy(() => {
+ // Force react to show fallback suspense
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve({
+ default: () => LazyRoute
,
+ });
+ }, 0);
+ });
+ });
+
+ function App() {
+ const [toggle, setToggle] = React.useState(false);
+
+ return (
+
+ setToggle((r) => !r)}>Toggle
+ {toggle ? : }
+
+ );
+ }
+
+ render( );
+ const button = screen.getByRole('button');
+ fireEvent.click(button);
+ await waitFor(() => {
+ expect(screen.queryByText('LazyRoute')).not.to.equal(null);
+ });
+ });
+
+ // For https://github.com/mui/material-ui/pull/33253
+ it('should update height without an infinite rendering loop', async () => {
+ function App() {
+ const [value, setValue] = React.useState('Controlled');
+
+ const handleChange = (event: React.ChangeEvent) => {
+ setValue(event.target.value);
+ };
+
+ return ;
+ }
+ const { container } = render( );
+ const input = container.querySelector('textarea')!;
+ act(() => {
+ input.focus();
+ });
+ const activeElement = document.activeElement!;
+ // set the value of the input to be 1 larger than its content width
+ fireEvent.change(activeElement, {
+ target: { value: 'Controlled\n' },
+ });
+ await sleep(0);
+ fireEvent.change(activeElement, {
+ target: { value: 'Controlled\n\n' },
+ });
+ });
+
+ // For https://github.com/mui/material-ui/pull/37135
+ it('should update height without delay', async function test() {
+ if (/jsdom/.test(window.navigator.userAgent)) {
+ // It depends on ResizeObserver
+ this.skip();
+ }
+
+ function App() {
+ const ref = React.useRef(null);
+ return (
+
+
{
+ ref.current!.style.width = '250px';
+ }}
+ >
+ change
+
+
+
+
+
+ );
+ }
+ const { container } = render( );
+ const input = container.querySelector('textarea')!;
+ const button = screen.getByRole('button');
+ expect(parseInt(input.style.height, 10)).to.be.within(30, 32);
+ fireEvent.click(button);
+ await raf();
+ await raf();
+ expect(parseInt(input.style.height, 10)).to.be.within(15, 17);
+ });
+
describe('layout', () => {
const getComputedStyleStub = new Map>();
function setLayout(
diff --git a/packages/mui-base/src/TextareaAutosize/TextareaAutosize.tsx b/packages/mui-base/src/TextareaAutosize/TextareaAutosize.tsx
index 164dbd478a2bde..9f582765f6e932 100644
--- a/packages/mui-base/src/TextareaAutosize/TextareaAutosize.tsx
+++ b/packages/mui-base/src/TextareaAutosize/TextareaAutosize.tsx
@@ -163,71 +163,66 @@ const TextareaAutosize = React.forwardRef(function TextareaAutosize(
return;
}
- setState((prevState) => {
- return updateState(prevState, newState);
- });
+ setState((prevState) => updateState(prevState, newState));
}, [getUpdatedState]);
- const syncHeightWithFlushSync = () => {
- const newState = getUpdatedState();
+ useEnhancedEffect(() => {
+ const syncHeightWithFlushSync = () => {
+ const newState = getUpdatedState();
- if (isEmpty(newState)) {
- return;
- }
+ if (isEmpty(newState)) {
+ return;
+ }
- // In React 18, state updates in a ResizeObserver's callback are happening after the paint which causes flickering
- // when doing some visual updates in it. Using flushSync ensures that the dom will be painted after the states updates happen
- // Related issue - https://github.com/facebook/react/issues/24331
- ReactDOM.flushSync(() => {
- setState((prevState) => {
- return updateState(prevState, newState);
+ // In React 18, state updates in a ResizeObserver's callback are happening after
+ // the paint, this leads to an infinite rendering.
+ //
+ // Using flushSync ensures that the states is updated before the next pain.
+ // Related issue - https://github.com/facebook/react/issues/24331
+ ReactDOM.flushSync(() => {
+ setState((prevState) => updateState(prevState, newState));
});
- });
- };
+ };
- React.useEffect(() => {
const handleResize = () => {
renders.current = 0;
-
- // If the TextareaAutosize component is replaced by Suspense with a fallback, the last
- // ResizeObserver's handler that runs because of the change in the layout is trying to
- // access a dom node that is no longer there (as the fallback component is being shown instead).
- // See https://github.com/mui/material-ui/issues/32640
- if (inputRef.current) {
- syncHeightWithFlushSync();
- }
+ syncHeightWithFlushSync();
};
- const handleResizeWindow = debounce(() => {
- renders.current = 0;
-
- // If the TextareaAutosize component is replaced by Suspense with a fallback, the last
- // ResizeObserver's handler that runs because of the change in the layout is trying to
- // access a dom node that is no longer there (as the fallback component is being shown instead).
- // See https://github.com/mui/material-ui/issues/32640
- if (inputRef.current) {
- syncHeightWithFlushSync();
- }
- });
- let resizeObserver: ResizeObserver;
-
+ // Workaround a "ResizeObserver loop completed with undelivered notifications" error
+ // in test.
+ // Note that we might need to use this logic in production per https://github.com/WICG/resize-observer/issues/38
+ // Also see https://github.com/mui/mui-x/issues/8733
+ let rAF: any;
+ const rAFHandleResize = () => {
+ cancelAnimationFrame(rAF);
+ rAF = requestAnimationFrame(() => {
+ handleResize();
+ });
+ };
+ const debounceHandleResize = debounce(handleResize);
const input = inputRef.current!;
const containerWindow = ownerWindow(input);
- containerWindow.addEventListener('resize', handleResizeWindow);
+ containerWindow.addEventListener('resize', debounceHandleResize);
+
+ let resizeObserver: ResizeObserver;
if (typeof ResizeObserver !== 'undefined') {
- resizeObserver = new ResizeObserver(handleResize);
+ resizeObserver = new ResizeObserver(
+ process.env.NODE_ENV === 'test' ? rAFHandleResize : handleResize,
+ );
resizeObserver.observe(input);
}
return () => {
- handleResizeWindow.clear();
- containerWindow.removeEventListener('resize', handleResizeWindow);
+ debounceHandleResize.clear();
+ cancelAnimationFrame(rAF);
+ containerWindow.removeEventListener('resize', debounceHandleResize);
if (resizeObserver) {
resizeObserver.disconnect();
}
};
- });
+ }, [getUpdatedState]);
useEnhancedEffect(() => {
syncHeight();
diff --git a/packages/mui-base/src/Unstable_NumberInput/NumberInput.test.tsx b/packages/mui-base/src/Unstable_NumberInput/NumberInput.test.tsx
index d5b18aa48c9ef3..968b5dc55b5fce 100644
--- a/packages/mui-base/src/Unstable_NumberInput/NumberInput.test.tsx
+++ b/packages/mui-base/src/Unstable_NumberInput/NumberInput.test.tsx
@@ -428,4 +428,22 @@ describe(' ', () => {
expect(document.activeElement).to.equal(document.body);
});
});
+
+ describe('prop: startAdornment, prop: endAdornment', () => {
+ it('should render adornment before input', () => {
+ const { getByTestId } = render(
+ $} />,
+ );
+
+ expect(getByTestId('adornment')).not.to.equal(null);
+ });
+
+ it('should render adornment after input', () => {
+ const { getByTestId } = render(
+ $} />,
+ );
+
+ expect(getByTestId('adornment')).not.to.equal(null);
+ });
+ });
});
diff --git a/packages/mui-base/src/Unstable_NumberInput/NumberInput.tsx b/packages/mui-base/src/Unstable_NumberInput/NumberInput.tsx
index ec9740361d2027..9dc712214a31c4 100644
--- a/packages/mui-base/src/Unstable_NumberInput/NumberInput.tsx
+++ b/packages/mui-base/src/Unstable_NumberInput/NumberInput.tsx
@@ -26,6 +26,8 @@ const useUtilityClasses = (ownerState: NumberInputOwnerState) => {
formControlContext,
isIncrementDisabled,
isDecrementDisabled,
+ startAdornment,
+ endAdornment,
} = ownerState;
const slots = {
@@ -36,6 +38,8 @@ const useUtilityClasses = (ownerState: NumberInputOwnerState) => {
focused && 'focused',
readOnly && 'readOnly',
Boolean(formControlContext) && 'formControl',
+ Boolean(startAdornment) && 'adornedStart',
+ Boolean(endAdornment) && 'adornedEnd',
],
input: ['input', disabled && 'disabled', readOnly && 'readOnly'],
incrementButton: ['incrementButton', isIncrementDisabled && 'disabled'],
@@ -63,6 +67,7 @@ const NumberInput = React.forwardRef(function NumberInput(
className,
defaultValue,
disabled,
+ endAdornment,
error,
id,
max,
@@ -75,6 +80,7 @@ const NumberInput = React.forwardRef(function NumberInput(
required,
readOnly = false,
shiftMultiplier,
+ startAdornment,
step,
value,
slotProps = {},
@@ -175,7 +181,9 @@ const NumberInput = React.forwardRef(function NumberInput(
+ {startAdornment}
+ {endAdornment}
);
}) as OverridableComponent;
@@ -202,6 +210,10 @@ NumberInput.propTypes /* remove-proptypes */ = {
* The prop defaults to the value (`false`) inherited from the parent FormControl component.
*/
disabled: PropTypes.bool,
+ /**
+ * Trailing adornment for this input.
+ */
+ endAdornment: PropTypes.node,
/**
* If `true`, the `input` will indicate an error by setting the `aria-invalid` attribute on the input and the `Mui-error` class on the root element.
*/
@@ -284,6 +296,10 @@ NumberInput.propTypes /* remove-proptypes */ = {
input: PropTypes.elementType,
root: PropTypes.elementType,
}),
+ /**
+ * Leading adornment for this input.
+ */
+ startAdornment: PropTypes.node,
/**
* The amount that the value changes on each increment or decrement.
*/
diff --git a/packages/mui-base/src/Unstable_NumberInput/NumberInput.types.ts b/packages/mui-base/src/Unstable_NumberInput/NumberInput.types.ts
index 16406b02e37f51..aff1a68188cba9 100644
--- a/packages/mui-base/src/Unstable_NumberInput/NumberInput.types.ts
+++ b/packages/mui-base/src/Unstable_NumberInput/NumberInput.types.ts
@@ -13,6 +13,10 @@ export interface NumberInputInputSlotPropsOverrides {}
export interface NumberInputStepperButtonSlotPropsOverrides {}
export type NumberInputOwnProps = Omit & {
+ /**
+ * Trailing adornment for this input.
+ */
+ endAdornment?: React.ReactNode;
/**
* If `true`, the `input` will indicate an error by setting the `aria-invalid` attribute on the input and the `Mui-error` class on the root element.
*/
@@ -45,6 +49,10 @@ export type NumberInputOwnProps = Omit & {
* @default {}
*/
slots?: NumberInputSlots;
+ /**
+ * Leading adornment for this input.
+ */
+ startAdornment?: React.ReactNode;
};
export interface NumberInputSlots {
diff --git a/packages/mui-base/src/Unstable_NumberInput/numberInputClasses.ts b/packages/mui-base/src/Unstable_NumberInput/numberInputClasses.ts
index 14643ec2bd0bab..369b6724f37351 100644
--- a/packages/mui-base/src/Unstable_NumberInput/numberInputClasses.ts
+++ b/packages/mui-base/src/Unstable_NumberInput/numberInputClasses.ts
@@ -7,9 +7,9 @@ export interface NumberInputClasses {
/** Class name applied to the root element if the component is a descendant of `FormControl`. */
formControl: string;
/** Class name applied to the root element if `startAdornment` is provided. */
- // TODO: adornedStart: string;
+ adornedStart: string;
/** Class name applied to the root element if `endAdornment` is provided. */
- // TODO: adornedEnd: string;
+ adornedEnd: string;
/** Class name applied to the root element if the component is focused. */
focused: string;
/** Class name applied to the root element if `disabled={true}`. */
@@ -42,6 +42,6 @@ export const numberInputClasses: NumberInputClasses = generateUtilityClasses('Mu
'input',
'incrementButton',
'decrementButton',
- // 'adornedStart',
- // 'adornedEnd',
+ 'adornedStart',
+ 'adornedEnd',
]);
diff --git a/packages/mui-base/src/useOption/useOption.ts b/packages/mui-base/src/useOption/useOption.ts
index 556e82506e3344..87f9f02865ff88 100644
--- a/packages/mui-base/src/useOption/useOption.ts
+++ b/packages/mui-base/src/useOption/useOption.ts
@@ -2,7 +2,7 @@
import * as React from 'react';
import { unstable_useForkRef as useForkRef, unstable_useId as useId } from '@mui/utils';
import { SelectOption, UseOptionParameters, UseOptionReturnValue } from './useOption.types';
-import { EventHandlers } from '../utils';
+import { extractEventHandlers } from '../utils/extractEventHandlers';
import { useListItem } from '../useList';
import { useCompoundItem } from '../utils/useCompoundItem';
@@ -48,14 +48,19 @@ export function useOption(params: UseOptionParameters): UseOptionR
const handleRef = useForkRef(optionRefParam, optionRef, listItemRefHandler)!;
return {
- getRootProps: (otherHandlers: Other = {} as Other) => ({
- ...otherHandlers,
- ...getListItemProps(otherHandlers),
- id,
- ref: handleRef,
- role: 'option',
- 'aria-selected': selected,
- }),
+ getRootProps: = {}>(
+ externalProps: ExternalProps = {} as ExternalProps,
+ ) => {
+ const externalEventHandlers = extractEventHandlers(externalProps);
+ return {
+ ...externalProps,
+ ...getListItemProps(externalEventHandlers),
+ id,
+ ref: handleRef,
+ role: 'option',
+ 'aria-selected': selected,
+ };
+ },
highlighted,
index,
selected,
diff --git a/packages/mui-base/src/useOption/useOption.types.ts b/packages/mui-base/src/useOption/useOption.types.ts
index 7693a3c9fa40ef..32225dc0035728 100644
--- a/packages/mui-base/src/useOption/useOption.types.ts
+++ b/packages/mui-base/src/useOption/useOption.types.ts
@@ -1,5 +1,4 @@
import { UseListItemRootSlotProps } from '../useList';
-import { EventHandlers } from '../utils';
export interface SelectOption {
value: Value;
@@ -18,16 +17,30 @@ export interface UseOptionParameters {
}
export interface UseOptionReturnValue {
+ /**
+ * If `true`, the option is selected.
+ */
selected: boolean;
+ /**
+ * If `true`, the option is highlighted.
+ */
highlighted: boolean;
index: number;
- getRootProps: (
- otherHandlers?: Other,
- ) => UseOptionRootSlotProps;
+ /**
+ * Resolver for the root slot's props.
+ * @param externalProps props for the root slot
+ * @returns props that should be spread on the root slot
+ */
+ getRootProps: >(
+ externalProps?: ExternalProps,
+ ) => UseOptionRootSlotProps;
+ /**
+ * Ref to the root slot DOM node.
+ */
rootRef: React.RefCallback | null;
}
-export type UseOptionRootSlotProps =
- UseListItemRootSlotProps & {
+export type UseOptionRootSlotProps = {}> =
+ UseListItemRootSlotProps & {
ref?: React.RefCallback | null;
- } & Other;
+ } & ExternalProps;
diff --git a/packages/mui-base/src/useSelect/useSelect.ts b/packages/mui-base/src/useSelect/useSelect.ts
index 03fb06affc6a99..265b70099168fb 100644
--- a/packages/mui-base/src/useSelect/useSelect.ts
+++ b/packages/mui-base/src/useSelect/useSelect.ts
@@ -23,6 +23,7 @@ import { EventHandlers } from '../utils/types';
import { defaultOptionStringifier } from './defaultOptionStringifier';
import { SelectProviderValue } from './SelectProvider';
import { useCompoundParent } from '../utils/useCompound';
+import { extractEventHandlers } from '../utils/extractEventHandlers';
import { SelectOption } from '../useOption/useOption.types';
import { selectReducer } from './selectReducer';
import { combineHooksSlotProps } from '../utils/combineHooksSlotProps';
@@ -299,9 +300,8 @@ function useSelect(
} = useList(useListParameters);
const createHandleButtonMouseDown =
- (otherHandlers?: Record>) =>
- (event: React.MouseEvent & MuiCancellableEvent) => {
- otherHandlers?.onMouseDown?.(event);
+ (externalEventHandlers?: EventHandlers) => (event: React.MouseEvent & MuiCancellableEvent) => {
+ externalEventHandlers?.onMouseDown?.(event);
if (!event.defaultMuiPrevented) {
const action: ButtonClickAction = {
type: SelectActionTypes.buttonClick,
@@ -336,8 +336,8 @@ function useSelect(
[getOptionByValue],
);
- const getSelectTriggerProps = (
- otherHandlers: TOther = {} as TOther,
+ const getSelectTriggerProps = (
+ otherHandlers: OtherHandlers = {} as OtherHandlers,
) => {
return {
...otherHandlers,
@@ -349,19 +349,23 @@ function useSelect(
};
};
- const getButtonProps = (
- otherHandlers: TOther = {} as TOther,
- ): UseSelectButtonSlotProps => {
+ const getButtonProps = >(
+ externalProps: ExternalProps = {} as ExternalProps,
+ ): UseSelectButtonSlotProps => {
+ const externalEventHandlers = extractEventHandlers(externalProps);
const listboxAndButtonProps = combineHooksSlotProps(getButtonRootProps, getListboxRootProps);
const combinedProps = combineHooksSlotProps(listboxAndButtonProps, getSelectTriggerProps);
- return combinedProps(otherHandlers);
+ return {
+ ...externalProps,
+ ...combinedProps(externalEventHandlers),
+ };
};
- const getListboxProps = (
- otherHandlers: TOther = {} as TOther,
- ): UseSelectListboxSlotProps => {
+ const getListboxProps = >(
+ externalProps: ExternalProps = {} as ExternalProps,
+ ): UseSelectListboxSlotProps => {
return {
- ...otherHandlers,
+ ...externalProps,
id: listboxId,
role: 'listbox' as const,
'aria-multiselectable': multiple ? 'true' : undefined,
@@ -404,18 +408,20 @@ function useSelect(
null) as SelectValue, Multiple>;
}
- const getHiddenInputProps = (
- otherHandlers: TOther = {} as TOther,
- ): UseSelectHiddenInputSlotProps => ({
- name,
- tabIndex: -1,
- 'aria-hidden': true,
- required: required ? true : undefined,
- value: getSerializedValue(selectedOptionsMetadata),
- onChange: noop,
- style: visuallyHiddenStyle,
- ...otherHandlers,
- });
+ const getHiddenInputProps = >(
+ externalProps: ExternalProps = {} as ExternalProps,
+ ): UseSelectHiddenInputSlotProps => {
+ return {
+ name,
+ tabIndex: -1,
+ 'aria-hidden': true,
+ required: required ? true : undefined,
+ value: getSerializedValue(selectedOptionsMetadata),
+ onChange: noop,
+ style: visuallyHiddenStyle,
+ ...externalProps,
+ };
+ };
return {
buttonActive,
diff --git a/packages/mui-base/src/useSelect/useSelect.types.ts b/packages/mui-base/src/useSelect/useSelect.types.ts
index 762b922a13df84..33c7653608ae7f 100644
--- a/packages/mui-base/src/useSelect/useSelect.types.ts
+++ b/packages/mui-base/src/useSelect/useSelect.types.ts
@@ -1,7 +1,6 @@
import * as React from 'react';
import { ListAction, ListState, UseListRootSlotProps } from '../useList';
import { SelectOption } from '../useOption/useOption.types';
-import { EventHandlers } from '../utils/types';
import { SelectProviderValue } from './SelectProvider';
import { MuiCancellableEventHandler } from '../utils/MuiCancellableEvent';
@@ -182,27 +181,28 @@ export interface UseSelectReturnValue {
dispatch: (action: ListAction | SelectAction) => void;
/**
* Resolver for the button slot's props.
- * @param otherHandlers event handlers for the button slot
+ * @param externalProps event handlers for the button slot
* @returns props that should be spread on the button slot
*/
- getButtonProps: (
- otherHandlers?: OtherHandlers,
- ) => UseSelectButtonSlotProps;
+ getButtonProps: = {}>(
+ externalProps?: ExternalProps,
+ ) => UseSelectButtonSlotProps;
/**
* Resolver for the hidden input slot's props.
+ * @param externalProps event handlers for the hidden input slot
* @returns HTML input attributes that should be spread on the hidden input slot
*/
- getHiddenInputProps: (
- otherHandlers?: OtherHandlers,
- ) => UseSelectHiddenInputSlotProps;
+ getHiddenInputProps: = {}>(
+ externalProps?: ExternalProps,
+ ) => UseSelectHiddenInputSlotProps;
/**
* Resolver for the listbox slot's props.
- * @param otherHandlers event handlers for the listbox slot
+ * @param externalProps event handlers for the listbox slot
* @returns props that should be spread on the listbox slot
*/
- getListboxProps: (
- otherHandlers?: OtherHandlers,
- ) => UseSelectListboxSlotProps;
+ getListboxProps: = {}>(
+ externalProps?: ExternalProps,
+ ) => UseSelectListboxSlotProps;
/**
* A function that returns the metadata of an option with a given value.
*
diff --git a/packages/mui-base/tsconfig.build.json b/packages/mui-base/tsconfig.build.json
index bc9de8db7f41fd..7696cbeba02fc7 100644
--- a/packages/mui-base/tsconfig.build.json
+++ b/packages/mui-base/tsconfig.build.json
@@ -11,5 +11,6 @@
"rootDir": "./src"
},
"include": ["src/**/*.ts*"],
- "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"]
+ "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"],
+ "references": [{ "path": "../mui-utils/tsconfig.build.json" }]
}
diff --git a/packages/mui-core-downloads-tracker/package.json b/packages/mui-core-downloads-tracker/package.json
index 8d3e2a9780b6a0..5748505c1d7bf7 100644
--- a/packages/mui-core-downloads-tracker/package.json
+++ b/packages/mui-core-downloads-tracker/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/core-downloads-tracker",
- "version": "5.14.9",
+ "version": "5.14.10",
"private": false,
"author": "MUI Team",
"description": "Internal package to track number of downloads of our design system libraries",
diff --git a/packages/mui-docs/package.json b/packages/mui-docs/package.json
index 9350dd0eb4c306..e7fd13bd425735 100644
--- a/packages/mui-docs/package.json
+++ b/packages/mui-docs/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/docs",
- "version": "5.14.9",
+ "version": "5.14.10",
"private": false,
"author": "MUI Team",
"description": "MUI Docs - Documentation building blocks.",
@@ -35,8 +35,8 @@
},
"dependencies": {
"@babel/runtime": "^7.22.15",
- "@mui/base": "5.0.0-beta.15",
- "@mui/utils": "^5.14.9",
+ "@mui/base": "5.0.0-beta.16",
+ "@mui/utils": "^5.14.10",
"nprogress": "^0.2.0",
"prop-types": "^15.8.1"
},
diff --git a/packages/mui-joy/package.json b/packages/mui-joy/package.json
index 7a413d6a1029c6..c58bf59e2f3c50 100644
--- a/packages/mui-joy/package.json
+++ b/packages/mui-joy/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/joy",
- "version": "5.0.0-beta.6",
+ "version": "5.0.0-beta.7",
"private": false,
"author": "MUI Team",
"description": "A library of beautifully designed React UI components.",
@@ -39,16 +39,16 @@
},
"dependencies": {
"@babel/runtime": "^7.22.15",
- "@mui/base": "5.0.0-beta.15",
- "@mui/core-downloads-tracker": "^5.14.9",
- "@mui/system": "^5.14.9",
+ "@mui/base": "5.0.0-beta.16",
+ "@mui/core-downloads-tracker": "^5.14.10",
+ "@mui/system": "^5.14.10",
"@mui/types": "^7.2.4",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"clsx": "^2.0.0",
"prop-types": "^15.8.1"
},
"devDependencies": {
- "@mui/material": "^5.14.9",
+ "@mui/material": "^5.14.10",
"@types/chai": "^4.3.5",
"@types/prop-types": "^15.7.5",
"@types/react": "^18.2.21",
diff --git a/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx b/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx
index 44c0769e83594e..abb5e61b810f29 100644
--- a/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx
+++ b/packages/mui-joy/src/AccordionGroup/AccordionGroup.test.tsx
@@ -76,4 +76,11 @@ describe(' ', () => {
describeJoyColorInversion( , { muiName: 'JoyAccordionGroup', classes });
});
+
+ it('should not warn when using custom color, variant, size', () => {
+ expect(() => {
+ // @ts-expect-error as `custom` color, varaint, size is not part of the type system
+ render( );
+ }).not.toErrorDev();
+ });
});
diff --git a/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx b/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx
index fca9d175c37647..73df8a92bf487f 100644
--- a/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx
+++ b/packages/mui-joy/src/AccordionGroup/AccordionGroup.tsx
@@ -141,7 +141,10 @@ AccordionGroup.propTypes /* remove-proptypes */ = {
* The color of the component. It supports those theme colors that make sense for this component.
* @default 'neutral'
*/
- color: PropTypes.oneOf(['danger', 'neutral', 'primary', 'success', 'warning']),
+ color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([
+ PropTypes.oneOf(['danger', 'neutral', 'primary', 'success', 'warning']),
+ PropTypes.string,
+ ]),
/**
* The component used for the root node.
* Either a string to use a HTML element or a component.
@@ -156,7 +159,10 @@ AccordionGroup.propTypes /* remove-proptypes */ = {
* The size of the component (affect other nested list* components).
* @default 'md'
*/
- size: PropTypes.oneOf(['sm', 'md', 'lg']),
+ size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([
+ PropTypes.oneOf(['sm', 'md', 'lg']),
+ PropTypes.string,
+ ]),
/**
* The props used for each slot inside.
* @default {}
@@ -194,7 +200,10 @@ AccordionGroup.propTypes /* remove-proptypes */ = {
* The [global variant](https://mui.com/joy-ui/main-features/global-variants/) to use.
* @default 'plain'
*/
- variant: PropTypes.oneOf(['outlined', 'plain', 'soft', 'solid']),
+ variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([
+ PropTypes.oneOf(['outlined', 'plain', 'soft', 'solid']),
+ PropTypes.string,
+ ]),
} as any;
export default AccordionGroup;
diff --git a/packages/mui-lab/package.json b/packages/mui-lab/package.json
index 86388b708fa8b7..5700aacffa39dd 100644
--- a/packages/mui-lab/package.json
+++ b/packages/mui-lab/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/lab",
- "version": "5.0.0-alpha.144",
+ "version": "5.0.0-alpha.145",
"private": false,
"author": "MUI Team",
"description": "Laboratory for new MUI modules.",
@@ -42,10 +42,10 @@
},
"dependencies": {
"@babel/runtime": "^7.22.15",
- "@mui/base": "5.0.0-beta.15",
- "@mui/system": "^5.14.9",
+ "@mui/base": "5.0.0-beta.16",
+ "@mui/system": "^5.14.10",
"@mui/types": "^7.2.4",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"@mui/x-tree-view": "6.0.0-alpha.1",
"clsx": "^2.0.0",
"prop-types": "^15.8.1"
diff --git a/packages/mui-lab/src/Masonry/Masonry.js b/packages/mui-lab/src/Masonry/Masonry.js
index b29c236c3f4cfe..c48e32772f9170 100644
--- a/packages/mui-lab/src/Masonry/Masonry.js
+++ b/packages/mui-lab/src/Masonry/Masonry.js
@@ -287,7 +287,7 @@ const Masonry = React.forwardRef(function Masonry(inProps, ref) {
const resizeObserver = new ResizeObserver(() => {
// see https://github.com/mui/material-ui/issues/36909
- animationFrame = window.requestAnimationFrame(handleResize);
+ animationFrame = requestAnimationFrame(handleResize);
});
if (masonryRef.current) {
diff --git a/packages/mui-material-next/package.json b/packages/mui-material-next/package.json
index 162ee6e31c4641..c8b1a94e8ac2c7 100644
--- a/packages/mui-material-next/package.json
+++ b/packages/mui-material-next/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/material-next",
- "version": "6.0.0-alpha.101",
+ "version": "6.0.0-alpha.102",
"private": false,
"author": "MUI Team",
"description": "v6-alpha: React components that implement Google's Material Design",
@@ -41,11 +41,11 @@
},
"dependencies": {
"@babel/runtime": "^7.22.15",
- "@mui/base": "5.0.0-beta.15",
- "@mui/material": "^5.14.9",
- "@mui/system": "^5.14.9",
+ "@mui/base": "5.0.0-beta.16",
+ "@mui/material": "^5.14.10",
+ "@mui/system": "^5.14.10",
"@mui/types": "^7.2.4",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"@types/react-transition-group": "^4.4.6",
"clsx": "^2.0.0",
"prop-types": "^15.8.1",
diff --git a/packages/mui-material/package.json b/packages/mui-material/package.json
index e3ea7b96d8cf7a..0674d53907cc7a 100644
--- a/packages/mui-material/package.json
+++ b/packages/mui-material/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/material",
- "version": "5.14.9",
+ "version": "5.14.10",
"private": false,
"author": "MUI Team",
"description": "React components that implement Google's Material Design.",
@@ -43,11 +43,11 @@
},
"dependencies": {
"@babel/runtime": "^7.22.15",
- "@mui/base": "5.0.0-beta.15",
- "@mui/core-downloads-tracker": "^5.14.9",
- "@mui/system": "^5.14.9",
+ "@mui/base": "5.0.0-beta.16",
+ "@mui/core-downloads-tracker": "^5.14.10",
+ "@mui/system": "^5.14.10",
"@mui/types": "^7.2.4",
- "@mui/utils": "^5.14.9",
+ "@mui/utils": "^5.14.10",
"@types/react-transition-group": "^4.4.6",
"clsx": "^2.0.0",
"csstype": "^3.1.2",
@@ -57,8 +57,8 @@
},
"devDependencies": {
"@mui/icons-material": "^5.14.9",
- "@mui/lab": "5.0.0-alpha.144",
- "@mui/styles": "^5.14.9",
+ "@mui/lab": "^5.0.0-alpha.145",
+ "@mui/styles": "^5.14.10",
"@popperjs/core": "^2.11.8",
"@rollup/plugin-replace": "^5.0.2",
"@testing-library/dom": "^9.3.1",
diff --git a/packages/mui-material/scripts/rollup.config.mjs b/packages/mui-material/scripts/rollup.config.mjs
index eb89d37c285116..7130eceb36e99c 100644
--- a/packages/mui-material/scripts/rollup.config.mjs
+++ b/packages/mui-material/scripts/rollup.config.mjs
@@ -101,6 +101,10 @@ const nestedFolder = {
return resolveNestedImport('mui-base', importee);
}
+ if (importee.indexOf('@mui/utils/') === 0) {
+ return resolveNestedImport('mui-utils', importee);
+ }
+
if (importee.indexOf('@mui/private-theming/') === 0) {
return resolveNestedImport('mui-private-theming', importee);
}
diff --git a/packages/mui-material/src/Button/Button.spec.tsx b/packages/mui-material/src/Button/Button.spec.tsx
index 7afe9916b27fe6..47c8b063f455dd 100644
--- a/packages/mui-material/src/Button/Button.spec.tsx
+++ b/packages/mui-material/src/Button/Button.spec.tsx
@@ -66,7 +66,7 @@ const buttonTest = () => (
Title
Simple Link
- }>Complex Link
+ }>Complex Link
Link
diff --git a/packages/mui-material/src/Chip/Chip.js b/packages/mui-material/src/Chip/Chip.js
index bb685d348c2989..b513703c86824f 100644
--- a/packages/mui-material/src/Chip/Chip.js
+++ b/packages/mui-material/src/Chip/Chip.js
@@ -92,6 +92,8 @@ const ChipRoot = styled('div', {
borderRadius: 32 / 2,
whiteSpace: 'nowrap',
transition: theme.transitions.create(['background-color', 'box-shadow']),
+ // reset cursor explicitly in case ButtonBase is used
+ cursor: 'unset',
// We disable the focus ring for mouse, touch and keyboard users.
outline: 0,
textDecoration: 'none',
diff --git a/packages/mui-material/src/ListSubheader/listSubheaderClasses.ts b/packages/mui-material/src/ListSubheader/listSubheaderClasses.ts
index 908966f5d0d709..693e66f905b5f2 100644
--- a/packages/mui-material/src/ListSubheader/listSubheaderClasses.ts
+++ b/packages/mui-material/src/ListSubheader/listSubheaderClasses.ts
@@ -1,4 +1,4 @@
-import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
+import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
import generateUtilityClass from '../generateUtilityClass';
export interface ListSubheaderClasses {
diff --git a/packages/mui-material/src/Select/Select.test.js b/packages/mui-material/src/Select/Select.test.js
index 0ee8903cc2cd83..cf99abe6b161f9 100644
--- a/packages/mui-material/src/Select/Select.test.js
+++ b/packages/mui-material/src/Select/Select.test.js
@@ -1047,6 +1047,20 @@ describe(' ', () => {
expect(options[2]).to.have.attribute('aria-selected', 'true');
});
+ it('should have aria-multiselectable=true when multiple is true', () => {
+ const { getByRole } = render(
+
+ Ten
+ Twenty
+ Thirty
+ ,
+ );
+
+ fireEvent.mouseDown(getByRole('button'));
+
+ expect(getByRole('listbox')).to.have.attribute('aria-multiselectable', 'true');
+ });
+
it('should serialize multiple select display value', () => {
const { getByRole } = render(
diff --git a/packages/mui-material/src/Select/SelectInput.js b/packages/mui-material/src/Select/SelectInput.js
index 72452dc1d88857..90e5d4f25668a5 100644
--- a/packages/mui-material/src/Select/SelectInput.js
+++ b/packages/mui-material/src/Select/SelectInput.js
@@ -549,6 +549,7 @@ const SelectInput = React.forwardRef(function SelectInput(props, ref) {
MenuListProps={{
'aria-labelledby': labelId,
role: 'listbox',
+ 'aria-multiselectable': multiple ? 'true' : undefined,
disableListWrap: true,
...MenuProps.MenuListProps,
}}
diff --git a/packages/mui-material/src/TablePagination/TablePagination.d.ts b/packages/mui-material/src/TablePagination/TablePagination.d.ts
index 851e6140d2e47f..3c72b57d9186b9 100644
--- a/packages/mui-material/src/TablePagination/TablePagination.d.ts
+++ b/packages/mui-material/src/TablePagination/TablePagination.d.ts
@@ -135,6 +135,7 @@ export interface TablePaginationTypeMap {
it('should work', () => {
diff --git a/packages/mui-utils/src/integerPropType.d.ts b/packages/mui-utils/src/integerPropType.d.ts
new file mode 100644
index 00000000000000..36935fad6774f5
--- /dev/null
+++ b/packages/mui-utils/src/integerPropType.d.ts
@@ -0,0 +1,5 @@
+import PropTypes from 'prop-types';
+
+declare const integerPropType: PropTypes.Requireable;
+
+export default integerPropType;
diff --git a/packages/mui-utils/src/useEnhancedEffect/useEnhancedEffect.ts b/packages/mui-utils/src/useEnhancedEffect/useEnhancedEffect.ts
index 97ab04557148cc..90d0d23e3f4c5d 100644
--- a/packages/mui-utils/src/useEnhancedEffect/useEnhancedEffect.ts
+++ b/packages/mui-utils/src/useEnhancedEffect/useEnhancedEffect.ts
@@ -1,6 +1,13 @@
'use client';
import * as React from 'react';
+/**
+ * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.
+ * This is useful for effects that are only needed for client-side rendering but not for SSR.
+ *
+ * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85
+ * and confirm it doesn't apply to your use-case.
+ */
const useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;
export default useEnhancedEffect;
diff --git a/packages/mui-utils/src/useEventCallback/useEventCallback.ts b/packages/mui-utils/src/useEventCallback/useEventCallback.ts
index babd9a5efccfd4..398945443adc90 100644
--- a/packages/mui-utils/src/useEventCallback/useEventCallback.ts
+++ b/packages/mui-utils/src/useEventCallback/useEventCallback.ts
@@ -3,7 +3,8 @@ import * as React from 'react';
import useEnhancedEffect from '../useEnhancedEffect';
/**
- * https://github.com/facebook/react/issues/14099#issuecomment-440013892
+ * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892
+ * See RFC in https://github.com/reactjs/rfcs/pull/220
*/
function useEventCallback any = (...args: unknown[]) => unknown>(
fn: Fn,
diff --git a/packages/mui-utils/tsconfig.build.json b/packages/mui-utils/tsconfig.build.json
index f3106abb0f596c..873e49e4b48cf8 100644
--- a/packages/mui-utils/tsconfig.build.json
+++ b/packages/mui-utils/tsconfig.build.json
@@ -3,6 +3,7 @@
// Actual .ts source files are transpiled via babel
"extends": "./tsconfig.json",
"compilerOptions": {
+ "composite": true,
"declaration": true,
"noEmit": false,
"emitDeclarationOnly": true,
diff --git a/packages/waterfall/sleep.mjs b/packages/waterfall/sleep.mjs
index 1ca84351fa20ba..608d27ddcf4371 100644
--- a/packages/waterfall/sleep.mjs
+++ b/packages/waterfall/sleep.mjs
@@ -1,6 +1,8 @@
-function sleep(delay = 0) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(resolve, delay);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/packages/zero-next-plugin/.eslintrc.json b/packages/zero-next-plugin/.eslintrc.json
new file mode 100644
index 00000000000000..54a33fd127fb66
--- /dev/null
+++ b/packages/zero-next-plugin/.eslintrc.json
@@ -0,0 +1,5 @@
+{
+ "rules": {
+ "@typescript-eslint/consistent-type-imports": "error"
+ }
+}
diff --git a/packages/zero-next-plugin/LICENSE b/packages/zero-next-plugin/LICENSE
new file mode 100644
index 00000000000000..6d201297b4f70f
--- /dev/null
+++ b/packages/zero-next-plugin/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2022 Dario Lehmhus
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/zero-next-plugin/README.md b/packages/zero-next-plugin/README.md
new file mode 100644
index 00000000000000..cec32be4e491c7
--- /dev/null
+++ b/packages/zero-next-plugin/README.md
@@ -0,0 +1,3 @@
+# @mui/zero-vite-plugin
+
+Vite plugin to support MUI's `styled` processor.
diff --git a/packages/zero-next-plugin/package.json b/packages/zero-next-plugin/package.json
new file mode 100644
index 00000000000000..6ba74a613cb0f8
--- /dev/null
+++ b/packages/zero-next-plugin/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "@mui/zero-next-plugin",
+ "version": "0.0.1-alpha.3",
+ "private": true,
+ "author": "MUI Team",
+ "description": "Vite plugin for MUI zero styled implementation.",
+ "main": "./src/index.ts",
+ "keywords": [
+ "zero runtime",
+ "css-in-js",
+ "mui"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/mui/material-ui.git",
+ "directory": "packages/zero-next-plugin"
+ },
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/mui/material-ui/issues"
+ },
+ "homepage": "@TODO",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mui"
+ },
+ "scripts": {
+ "build": "yarn build:legacy && yarn build:modern && yarn build:node && yarn build:stable && yarn build:types && yarn build:copy-files",
+ "build:legacy": "node ../../scripts/build.mjs legacy",
+ "build:modern": "node ../../scripts/build.mjs modern",
+ "build:node": "node ../../scripts/build.mjs node",
+ "build:stable": "node ../../scripts/build.mjs stable",
+ "build:copy-files": "node ../../scripts/copyFiles.mjs",
+ "build:types": "node ../../scripts/buildTypes.mjs",
+ "prebuild": "rimraf build tsconfig.build.tsbuildinfo",
+ "release": "yarn build && npm publish build",
+ "test": "cd ../../ && cross-env NODE_ENV=test mocha 'packages/zero-babel-plugin/**/*.test.{js,ts,tsx}'",
+ "typescript": "tslint -p tsconfig.json \"{src,test}/**/*.{spec,d}.{ts,tsx}\" && tsc -p tsconfig.json",
+ "typescript:module-augmentation": "node scripts/testModuleAugmentation.js"
+ },
+ "dependencies": {
+ "@babel/core": "^7.22.17",
+ "@babel/plugin-syntax-jsx": "^7.22.5",
+ "@babel/preset-typescript": "^7.22.15",
+ "@linaria/babel-preset": "^4.5.4",
+ "@mui/zero-tag-processor": "0.0.1-alpha.4",
+ "file-system-cache": "2.0.2"
+ },
+ "devDependencies": {
+ "@types/babel__core": "^7.20.1",
+ "@types/loader-utils": "^2.0.3",
+ "next": "^13.4.19"
+ },
+ "peerDependencies": {
+ "next": ">=12.0.0 <14.0.0"
+ },
+ "sideEffects": false,
+ "publishConfig": {
+ "access": "public"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+}
diff --git a/packages/zero-next-plugin/src/VirtualModuleStore.ts b/packages/zero-next-plugin/src/VirtualModuleStore.ts
new file mode 100644
index 00000000000000..c2ee5030dd28fc
--- /dev/null
+++ b/packages/zero-next-plugin/src/VirtualModuleStore.ts
@@ -0,0 +1,78 @@
+import Cache, { type FileSystemCache } from 'file-system-cache';
+import path from 'path';
+import type * as Webpack from 'webpack';
+
+import VirtualModulesPlugin from './plugins/webpack-virtual-modules';
+import { isFSCache } from './utils';
+
+type CachedFile = {
+ path: string;
+ value: {
+ content: string;
+ path: string;
+ };
+};
+
+export default class VirtualModuleStore {
+ private vmInstances: Map = new Map();
+
+ private initialCachedFiles: Record = {};
+
+ private cssCache: FileSystemCache | undefined;
+
+ private dependencyCache: FileSystemCache | undefined;
+
+ constructor(config: Webpack.Configuration) {
+ this.addModule = this.addModule.bind(this);
+
+ if (isFSCache(config.cache)) {
+ const baseDir = config.cache.cacheDirectory || path.join(process.cwd(), '.linaria-cache');
+
+ const cachePath = path.join(baseDir, `linaria-${config.mode}`);
+ this.cssCache = Cache({
+ basePath: cachePath,
+ ns: config.cache.version,
+ });
+
+ this.cssCache.load().then((cachedFiles) => {
+ cachedFiles.files.forEach(({ value: { content, path: filePath } }: CachedFile) => {
+ this.initialCachedFiles[filePath] = content;
+ this.addModule(filePath, content, false);
+ });
+ });
+
+ this.dependencyCache = Cache({
+ basePath: cachePath,
+ ns: `${config.cache.version}-deps`,
+ });
+ }
+ }
+
+ public createStore(name = 'default') {
+ const vm = new VirtualModulesPlugin(this.initialCachedFiles);
+ this.vmInstances.set(name, vm);
+ return vm;
+ }
+
+ public addModule(filePath: string, content: string, addToCache = true) {
+ this.vmInstances.forEach((vm) => {
+ vm.writeModule(filePath, content);
+ });
+ if (this.cssCache && addToCache) {
+ this.cssCache.set(filePath, { content, path: filePath });
+ }
+ }
+
+ public addModuleDependencies(modulePath: string, deps: string[]) {
+ if (this.dependencyCache) {
+ this.dependencyCache.set(modulePath, deps);
+ }
+ }
+
+ public async getModuleDependencies(modulePath: string): Promise {
+ if (this.dependencyCache) {
+ return this.dependencyCache.get(modulePath);
+ }
+ return null;
+ }
+}
diff --git a/packages/zero-next-plugin/src/index.ts b/packages/zero-next-plugin/src/index.ts
new file mode 100644
index 00000000000000..495d983caf848b
--- /dev/null
+++ b/packages/zero-next-plugin/src/index.ts
@@ -0,0 +1,165 @@
+import type { NextConfig } from 'next';
+import type * as NextServer from 'next/dist/server/config-shared';
+import path from 'path';
+import type * as Webpack from 'webpack';
+import { generateCss } from '@mui/zero-tag-processor/generateCss';
+
+import type { PluginOptions, Preprocessor } from '@linaria/babel-preset';
+import type { LinariaLoaderOptions } from './loaders/transformLoader';
+import { regexLinariaCSS, regexLinariaGlobalCSS } from './loaders/transformLoader';
+import ErrorPlugin from './plugins/errorPlugin';
+import { isCssLoader, isCssModule } from './utils';
+import VirtualModuleStore from './VirtualModuleStore';
+
+export interface ZeroPluginOptions extends PluginOptions {
+ /**
+ * An object of the themes that you want passed in as an argument in the callback argument of `styled`.
+ */
+ theme: unknown;
+ /**
+ * Prefix string to use in the generated css variables.
+ */
+ cssVariablesPrefix?: string;
+ /**
+ * Whether the css variables for the default theme should target the :root selector or not.
+ * @default true
+ */
+ injectDefaultThemeInRoot?: boolean;
+ // exclude?: FilterPattern;
+ sourceMap?: boolean;
+ preprocessor?: Preprocessor;
+}
+
+// Thanks https://github.com/Mistereo/next-linaria/blob/de4fd15269bd059e35797bb7250ce84cc8c5067c/index.js#L3
+// for the inspiration
+function traverseLoaders(rules: Webpack.RuleSetRule[]) {
+ for (let i = 0; i < rules.length; i += 1) {
+ const rule = rules[i];
+ if (isCssLoader(rule)) {
+ if (isCssModule(rule)) {
+ const nextGetLocalIdent = rule.options.modules.getLocalIdent;
+ const nextMode = rule.options.modules.mode;
+
+ // allow global css for *.linaria.global.css files
+ rule.options.modules.mode = (innerPath) => {
+ const isGlobal = regexLinariaGlobalCSS.test(innerPath);
+ if (isGlobal) {
+ return 'local';
+ }
+ return typeof nextMode === 'function' ? nextMode(innerPath) : nextMode;
+ };
+
+ // We don't want the default css-loader to generate classnames
+ // for linaria modules, since those are generated by linaria.
+ rule.options.modules.getLocalIdent = (context, _, exportName, ...rest) => {
+ if (regexLinariaCSS.test(context.resourcePath)) {
+ return exportName;
+ }
+ return nextGetLocalIdent(context, _, exportName, ...rest);
+ };
+ }
+ }
+ if (typeof rule.use === 'object') {
+ // FIXME: Can we do it without the typecast?
+ const useRules = rule.use as Webpack.RuleSetRule | Webpack.RuleSetRule[];
+ traverseLoaders(Array.isArray(useRules) ? useRules : [useRules]);
+ }
+ if (Array.isArray(rule.oneOf)) {
+ traverseLoaders(rule.oneOf as Webpack.RuleSetRule[]);
+ }
+ }
+}
+
+let moduleStore: VirtualModuleStore;
+
+export default function withZero(nextConfig: NextConfig, zeroConfig: ZeroPluginOptions) {
+ const {
+ theme,
+ cssVariablesPrefix = 'mui',
+ injectDefaultThemeInRoot = true,
+ babelOptions = {},
+ sourceMap = false,
+ displayName = false,
+ } = zeroConfig;
+
+ const webpack = (config: Webpack.Configuration, options: NextServer.WebpackConfigContext) => {
+ if (config.module?.rules && config.plugins) {
+ traverseLoaders(config.module.rules as Webpack.RuleSetRule[]);
+
+ // Add our store for virtual linaria css modules
+ if (!moduleStore) {
+ moduleStore = new VirtualModuleStore(config);
+ }
+ const vmPlugin = moduleStore.createStore(config.name);
+ vmPlugin.writeModule(
+ 'node_modules/@mui/zero-runtime/styles.css',
+ generateCss(
+ {
+ cssVariablesPrefix,
+ themeArgs: {
+ theme,
+ },
+ },
+ {
+ defaultThemeKey: 'theme',
+ injectInRoot: injectDefaultThemeInRoot,
+ },
+ ),
+ );
+ config.plugins.push(vmPlugin);
+
+ // Show message when linaria cache is out of sync with webpack
+ config.plugins.push(new ErrorPlugin());
+
+ // Add css output loader with access to the module store
+ // in order to set the correct dependencies
+ config.module.rules.push({
+ test: regexLinariaCSS,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: path.resolve(__dirname, './loaders/outputCssLoader'),
+ options: {
+ moduleStore,
+ },
+ },
+ ],
+ });
+
+ // Add linaria loader to transform files
+ const linariaLoaderOptions: LinariaLoaderOptions = {
+ ...zeroConfig,
+ babelOptions: {
+ ...babelOptions,
+ presets: [...(babelOptions.presets ?? []), 'next/babel', '@linaria'],
+ },
+ themeArgs: {
+ theme,
+ },
+ sourceMap: sourceMap ?? process.env.NODE_ENV !== 'production',
+ displayName: displayName ?? process.env.NODE_ENV !== 'production',
+ moduleStore,
+ };
+ config.module.rules.push({
+ test: /\.(tsx|ts|js|mjs|jsx)$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: path.resolve(__dirname, './loaders/transformLoader'),
+ options: linariaLoaderOptions,
+ },
+ ],
+ });
+ }
+
+ if (typeof nextConfig.webpack === 'function') {
+ return nextConfig.webpack(config, options);
+ }
+ return config;
+ };
+
+ return {
+ ...nextConfig,
+ webpack,
+ };
+}
diff --git a/packages/zero-next-plugin/src/loaders/outputCssLoader.ts b/packages/zero-next-plugin/src/loaders/outputCssLoader.ts
new file mode 100644
index 00000000000000..10bf84b275f35a
--- /dev/null
+++ b/packages/zero-next-plugin/src/loaders/outputCssLoader.ts
@@ -0,0 +1,32 @@
+import type { RawLoaderDefinitionFunction } from 'webpack';
+import type VirtualModuleStore from '../VirtualModuleStore';
+
+type OutputLoaderOptions = {
+ moduleStore: VirtualModuleStore;
+};
+
+type LoaderType = RawLoaderDefinitionFunction;
+
+const cssOutputLoader: LoaderType = function cssOutputLoader(content, inputSourceMap) {
+ this.async();
+
+ const { moduleStore } = this.getOptions();
+ moduleStore
+ .getModuleDependencies(this.resourcePath)
+ .then((deps) => {
+ if (deps) {
+ deps.forEach((dep) => {
+ this.addDependency(dep);
+ });
+ }
+ })
+ .catch((err) => {
+ this.emitError(err);
+ console.error(`Error getting dependencies for ${this.resourcePath}`);
+ })
+ .finally(() => {
+ this.callback(null, content, inputSourceMap);
+ });
+};
+
+export default cssOutputLoader;
diff --git a/packages/zero-next-plugin/src/loaders/transformLoader.ts b/packages/zero-next-plugin/src/loaders/transformLoader.ts
new file mode 100644
index 00000000000000..4224d15cf1e27f
--- /dev/null
+++ b/packages/zero-next-plugin/src/loaders/transformLoader.ts
@@ -0,0 +1,152 @@
+/**
+ * This loader is based on the linaria webpack loader. Just some minor changes to support virtual modules and also adds support for sx prop transform to be able to be processed by linaria.
+ * https://github.com/callstack/linaria/blob/462739a781e31d5a8266957c0a4800292f452441/packages/webpack5-loader/src/index.ts
+ *
+ * This file contains a Webpack loader for Linaria.
+ * It uses the transform.ts function to generate class names from source code,
+ * returns transformed code without template literals and attaches generated source maps
+ */
+
+import type { PluginOptions, Preprocessor, Result } from '@linaria/babel-preset';
+import { transform } from '@linaria/babel-preset';
+import path from 'path';
+import { transformAsync as babelTransformAsync } from '@babel/core';
+import type { RawLoaderDefinitionFunction } from 'webpack';
+
+import type VirtualModuleStore from '../VirtualModuleStore';
+
+export const LINARIA_MODULE_EXTENSION = '.linaria.module';
+export const LINARIA_GLOBAL_EXTENSION = '.linaria.global';
+
+export const regexLinariaModuleCSS = /\.linaria\.module\.css$/;
+export const regexLinariaGlobalCSS = /\.linaria\.global\.css$/;
+export const regexLinariaCSS = /\.linaria\.(module|global)\.css$/;
+
+export type LinariaLoaderOptions = {
+ themeArgs?: Record;
+ moduleStore: VirtualModuleStore;
+ preprocessor?: Preprocessor;
+ sourceMap?: boolean;
+} & Partial;
+
+type LoaderType = RawLoaderDefinitionFunction;
+
+function convertSourceMap(
+ value: Parameters[1],
+ filename: string,
+): Parameters[1]['inputSourceMap'] {
+ if (typeof value === 'string' || !value) {
+ return undefined;
+ }
+
+ return {
+ ...value,
+ file: value.file ?? filename,
+ mappings: value.mappings ?? '',
+ names: value.names ?? [],
+ sources: value.sources ?? [],
+ version: value.version ?? 3,
+ };
+}
+
+const transformLoader: LoaderType = function transformLoader(content, inputSourceMap) {
+ // tell Webpack this loader is async
+ this.async();
+
+ const {
+ sourceMap = undefined,
+ preprocessor = undefined,
+ moduleStore,
+ ...rest
+ } = this.getOptions() || {};
+
+ const asyncResolve = (token: string, importer: string): Promise => {
+ const context = path.isAbsolute(importer)
+ ? path.dirname(importer)
+ : path.join(process.cwd(), path.dirname(importer));
+ return new Promise((resolve, reject) => {
+ this.resolve(context, token, (err, result) => {
+ if (err) {
+ console.error(err);
+ reject(err);
+ } else if (result) {
+ this.addDependency(result);
+ resolve(result);
+ } else {
+ reject(new Error(`Cannot resolve ${token}`));
+ }
+ });
+ });
+ };
+ const contentString = content.toString();
+
+ babelTransformAsync(contentString, {
+ filename: this.resourcePath,
+ babelrc: false,
+ configFile: false,
+ presets: ['@babel/preset-typescript'],
+ plugins: ['@babel/plugin-syntax-jsx', ['@mui/zero-tag-processor/pre-linaria-plugin']],
+ }).then(
+ (babelResult) => {
+ transform(
+ babelResult?.code ?? contentString,
+ {
+ filename: this.resourcePath,
+ inputSourceMap: convertSourceMap(inputSourceMap, this.resourcePath),
+ pluginOptions: rest,
+ preprocessor,
+ },
+ asyncResolve,
+ ).then(
+ async (result: Result) => {
+ if (result.cssText) {
+ let { cssText } = result;
+
+ if (sourceMap) {
+ cssText += `/*# sourceMappingURL=data:application/json;base64,${Buffer.from(
+ result.cssSourceMapText || '',
+ ).toString('base64')}*/`;
+ }
+
+ await Promise.all(
+ result.dependencies?.map((dep) => asyncResolve(dep, this.resourcePath)) ?? [],
+ );
+
+ try {
+ const filename = path.basename(this.resourcePath, path.extname(this.resourcePath));
+ const fileDir = path.dirname(this.resourcePath);
+ const isGlobalStyle = filename.endsWith(LINARIA_GLOBAL_EXTENSION);
+
+ const cssModuleName = `${filename}${
+ isGlobalStyle ? '' : LINARIA_MODULE_EXTENSION
+ }.css`;
+
+ const fullPathToModule = path.join(fileDir, cssModuleName);
+
+ await Promise.all([
+ moduleStore.addModule(fullPathToModule, cssText),
+ moduleStore.addModuleDependencies(fullPathToModule, this.getDependencies()),
+ ]);
+
+ this.callback(
+ null,
+ `${result.code}\n\nrequire("./${cssModuleName}");`,
+ result.sourceMap ?? undefined,
+ );
+ } catch (err) {
+ this.callback(err as Error);
+ }
+
+ return;
+ }
+
+ this.callback(null, result.code, result.sourceMap ?? undefined);
+ },
+ (err: Error) => this.callback(err),
+ );
+ },
+ (err: Error) => this.callback(err),
+ );
+};
+
+export default transformLoader;
diff --git a/packages/zero-next-plugin/src/plugins/errorPlugin.ts b/packages/zero-next-plugin/src/plugins/errorPlugin.ts
new file mode 100644
index 00000000000000..a583a69a40cdcc
--- /dev/null
+++ b/packages/zero-next-plugin/src/plugins/errorPlugin.ts
@@ -0,0 +1,32 @@
+import type { Compiler } from 'webpack';
+import { WebpackError } from 'webpack';
+
+import { isFSCache } from '../utils';
+
+const cssRegex = /\.linaria\.(module|global)\.css/;
+
+export default class ErrorPlugin {
+ // eslint-disable-next-line class-methods-use-this
+ apply(compiler: Compiler) {
+ compiler.hooks.afterDone.tap('ErrorPlugin', (stats) => {
+ if (stats.hasErrors()) {
+ if (isFSCache(stats.compilation.compiler.options.cache)) {
+ const isLinariaRelated = stats.compilation.errors.some((error) => {
+ return cssRegex.test(error.message);
+ });
+
+ if (isLinariaRelated) {
+ stats.compilation.errors = stats.compilation.errors.filter(
+ (err) => !cssRegex.test(err.message),
+ );
+
+ const message =
+ '🔄 The Linaria cache seems to be out of sync with the webpack cache, please restart the server.\n For more details see: https://github.com/dlehmhus/next-with-linaria#good-to-know \n\n';
+
+ stats.compilation.errors.push(new WebpackError(message));
+ }
+ }
+ }
+ });
+ }
+}
diff --git a/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/index.ts b/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/index.ts
new file mode 100644
index 00000000000000..3104541b4a9967
--- /dev/null
+++ b/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/index.ts
@@ -0,0 +1,225 @@
+/* eslint-disable no-underscore-dangle */
+// Thanks https://github.com/sysgears/webpack-virtual-modules/blob/ea53626016db74de66b14401b7377cbc3fc31059/src/index.ts
+// This is the webpack-virtual-modules package with the slight alteration that
+// we can write modules before the compiler is available.
+import path from 'path';
+
+import type { Compiler } from 'webpack';
+import VirtualStats from './virtual-stats';
+import {
+ checkActivation,
+ createWebpackData,
+ getData,
+ getFileStorage,
+ getModulePath,
+ getReadDirBackend,
+ getStatStorage,
+ setData,
+} from './vmUtils';
+
+let inode = 45000000;
+
+export default class VirtualModulesPlugin {
+ private _staticModules: Record | null;
+
+ private _compiler: Compiler | null = null;
+
+ private _watcher: any = null;
+
+ public constructor(modules?: Record) {
+ this._staticModules = modules || null;
+ }
+
+ public writeModule(filePath: string, contents: string): void {
+ // next-with-linaria patch, if not initialized yet, add to static modules
+ if (!this._compiler) {
+ if (!this._staticModules) {
+ this._staticModules = {};
+ }
+ this._staticModules[filePath] = contents;
+ return;
+ }
+
+ checkActivation(this);
+
+ const len = contents ? contents.length : 0;
+ const time = Date.now();
+ const date = new Date(time);
+
+ const stats = new VirtualStats({
+ dev: 8675309,
+ nlink: 0,
+ uid: 1000,
+ gid: 1000,
+ rdev: 0,
+ blksize: 4096,
+ ino: (inode += 1),
+ mode: 33188,
+ size: len,
+ blocks: Math.floor(len / 4096),
+ atime: date,
+ mtime: date,
+ ctime: date,
+ birthtime: date,
+ });
+ const modulePath = getModulePath(filePath, this._compiler);
+
+ if (process.env.WVM_DEBUG) {
+ // eslint-disable-next-line no-console
+ console.log(this._compiler.name, 'Write virtual module:', modulePath, contents);
+ }
+
+ // When using the WatchIgnorePlugin (https://github.com/webpack/webpack/blob/52184b897f40c75560b3630e43ca642fcac7e2cf/lib/WatchIgnorePlugin.js),
+ // the original watchFileSystem is stored in `wfs`. The following "unwraps" the ignoring
+ // wrappers, giving us access to the "real" watchFileSystem.
+ let finalWatchFileSystem = this._watcher && this._watcher.watchFileSystem;
+
+ while (finalWatchFileSystem && finalWatchFileSystem.wfs) {
+ finalWatchFileSystem = finalWatchFileSystem.wfs;
+ }
+
+ let finalInputFileSystem: any = this._compiler.inputFileSystem;
+ while (finalInputFileSystem && finalInputFileSystem._inputFileSystem) {
+ finalInputFileSystem = finalInputFileSystem._inputFileSystem;
+ }
+
+ finalInputFileSystem._writeVirtualFile(modulePath, stats, contents);
+ if (
+ finalWatchFileSystem &&
+ (finalWatchFileSystem.watcher.fileWatchers.size ||
+ finalWatchFileSystem.watcher.fileWatchers.length)
+ ) {
+ const fileWatchers =
+ finalWatchFileSystem.watcher.fileWatchers instanceof Map
+ ? Array.from(finalWatchFileSystem.watcher.fileWatchers.values())
+ : finalWatchFileSystem.watcher.fileWatchers;
+ for (let i = 0; i < fileWatchers.length; i += 1) {
+ let fileWatcher = fileWatchers[i];
+ if ('watcher' in fileWatcher) {
+ fileWatcher = fileWatcher.watcher;
+ }
+ if (fileWatcher.path === modulePath) {
+ if (process.env.DEBUG) {
+ // eslint-disable-next-line no-console
+ console.log(this._compiler.name, 'Emit file change:', modulePath, time);
+ }
+ delete fileWatcher.directoryWatcher._cachedTimeInfoEntries;
+ fileWatcher.emit('change', time, null);
+ }
+ }
+ }
+ }
+
+ public apply(compiler: Compiler) {
+ this._compiler = compiler;
+
+ const afterEnvironmentHook = () => {
+ let finalInputFileSystem: any = compiler.inputFileSystem;
+ while (finalInputFileSystem && finalInputFileSystem._inputFileSystem) {
+ finalInputFileSystem = finalInputFileSystem._inputFileSystem;
+ }
+
+ if (!finalInputFileSystem._writeVirtualFile) {
+ const originalPurge = finalInputFileSystem.purge;
+
+ finalInputFileSystem.purge = () => {
+ originalPurge.apply(finalInputFileSystem, []);
+ if (finalInputFileSystem._virtualFiles) {
+ Object.keys(finalInputFileSystem._virtualFiles).forEach((file) => {
+ const data = finalInputFileSystem._virtualFiles[file];
+ finalInputFileSystem._writeVirtualFile(file, data.stats, data.contents);
+ });
+ }
+ };
+
+ // @ts-ignore
+ finalInputFileSystem._writeVirtualFile = (file, stats, contents) => {
+ const statStorage = getStatStorage(finalInputFileSystem);
+ const fileStorage = getFileStorage(finalInputFileSystem);
+ const readDirStorage = getReadDirBackend(finalInputFileSystem);
+ finalInputFileSystem._virtualFiles = finalInputFileSystem._virtualFiles || {};
+ finalInputFileSystem._virtualFiles[file] = {
+ stats,
+ contents,
+ };
+ setData(statStorage, file, createWebpackData(stats));
+ setData(fileStorage, file, createWebpackData(contents));
+ const segments = file.split(/[\\/]/);
+ let count = segments.length - 1;
+ const minCount = segments[0] ? 1 : 0;
+ while (count > minCount) {
+ const dir = segments.slice(0, count).join(path.sep) || path.sep;
+ try {
+ finalInputFileSystem.readdirSync(dir);
+ } catch (e) {
+ const time = Date.now();
+ const dirStats = new VirtualStats({
+ dev: 8675309,
+ nlink: 0,
+ uid: 1000,
+ gid: 1000,
+ rdev: 0,
+ blksize: 4096,
+ ino: (inode += 1),
+ mode: 16877,
+ size: stats.size,
+ blocks: Math.floor(stats.size / 4096),
+ atime: time,
+ mtime: time,
+ ctime: time,
+ birthtime: time,
+ });
+
+ setData(readDirStorage, dir, createWebpackData([]));
+ setData(statStorage, dir, createWebpackData(dirStats));
+ }
+ let dirData = getData(getReadDirBackend(finalInputFileSystem), dir);
+ // Webpack v4 returns an array, webpack v5 returns an object
+ dirData = dirData[1] || dirData.result;
+ const filename = segments[count];
+ if (dirData.indexOf(filename) < 0) {
+ const files = dirData.concat([filename]).sort();
+ setData(getReadDirBackend(finalInputFileSystem), dir, createWebpackData(files));
+ } else {
+ break;
+ }
+ count -= 1;
+ }
+ };
+ }
+ };
+ const afterResolversHook = () => {
+ if (this._staticModules) {
+ const entries = Object.entries(this._staticModules);
+ for (let i = 0; i < entries.length; i += 1) {
+ const [filePath, contents] = entries[i];
+ this.writeModule(filePath, contents);
+ }
+ this._staticModules = null;
+ }
+ };
+
+ // @ts-ignore
+ const watchRunHook = (watcher, callback) => {
+ this._watcher = watcher.compiler || watcher;
+ const virtualFiles = (compiler as any).inputFileSystem._virtualFiles;
+ const fts = compiler.fileTimestamps as any;
+ if (virtualFiles && fts && typeof fts.set === 'function') {
+ Object.keys(virtualFiles).forEach((file) => {
+ fts.set(file, +virtualFiles[file].stats.mtime);
+ });
+ }
+ callback();
+ };
+
+ if (compiler.hooks) {
+ compiler.hooks.afterEnvironment.tap('VirtualModulesPlugin', afterEnvironmentHook);
+ compiler.hooks.afterResolvers.tap('VirtualModulesPlugin', afterResolversHook);
+ compiler.hooks.watchRun.tapAsync('VirtualModulesPlugin', watchRunHook);
+ } else {
+ (compiler as any).plugin('after-environment', afterEnvironmentHook);
+ (compiler as any).plugin('after-resolvers', afterResolversHook);
+ (compiler as any).plugin('watch-run', watchRunHook);
+ }
+ }
+}
diff --git a/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/virtual-stats.js b/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/virtual-stats.js
new file mode 100644
index 00000000000000..fbe85346c454f6
--- /dev/null
+++ b/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/virtual-stats.js
@@ -0,0 +1,63 @@
+/* eslint-disable no-underscore-dangle */
+/* eslint-disable no-bitwise */
+/**
+ * Used to cache a stats object for the virtual file.
+ * Extracted from the `mock-fs` package.
+ *
+ * @author Tim Schaub http://tschaub.net/
+ * @author `webpack-virtual-modules` Contributors
+ * @link https://github.com/tschaub/mock-fs/blob/master/lib/binding.js
+ * @link https://github.com/tschaub/mock-fs/blob/master/license.md
+ */
+import constants from 'constants';
+
+export default class VirtualStats {
+ /**
+ * Create a new stats object.
+ *
+ * @param config Stats properties.
+ */
+ constructor(config) {
+ Object.keys(config).forEach((key) => {
+ if (!Object.prototype.hasOwnProperty.call(config, key)) {
+ return;
+ }
+ this[key] = config[key];
+ });
+ }
+
+ /**
+ * Check if mode indicates property.
+ */
+ _checkModeProperty(property) {
+ return (this.mode & constants.S_IFMT) === property;
+ }
+
+ isDirectory() {
+ return this._checkModeProperty(constants.S_IFDIR);
+ }
+
+ isFile() {
+ return this._checkModeProperty(constants.S_IFREG);
+ }
+
+ isBlockDevice() {
+ return this._checkModeProperty(constants.S_IFBLK);
+ }
+
+ isCharacterDevice() {
+ return this._checkModeProperty(constants.S_IFCHR);
+ }
+
+ isSymbolicLink() {
+ return this._checkModeProperty(constants.S_IFLNK);
+ }
+
+ isFIFO() {
+ return this._checkModeProperty(constants.S_IFIFO);
+ }
+
+ isSocket() {
+ return this._checkModeProperty(constants.S_IFSOCK);
+ }
+}
diff --git a/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/vmUtils.js b/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/vmUtils.js
new file mode 100644
index 00000000000000..b0b70c7444621c
--- /dev/null
+++ b/packages/zero-next-plugin/src/plugins/webpack-virtual-modules/vmUtils.js
@@ -0,0 +1,95 @@
+/* eslint-disable no-underscore-dangle */
+import * as path from 'node:path';
+
+export function checkActivation(instance) {
+ if (!instance._compiler) {
+ throw new Error('You must use this plugin only after creating webpack instance!');
+ }
+}
+
+export function getModulePath(filePath, compiler) {
+ return path.isAbsolute(filePath) ? filePath : path.join(compiler.context, filePath);
+}
+
+export function createWebpackData(result) {
+ return (backendOrStorage) => {
+ // In Webpack v5, this variable is a "Backend", and has the data stored in a field
+ // _data. In V4, the `_` prefix isn't present.
+ if (backendOrStorage._data) {
+ const curLevelIdx = backendOrStorage._currentLevel;
+ const curLevel = backendOrStorage._levels[curLevelIdx];
+ return {
+ result,
+ level: curLevel,
+ };
+ }
+ // Webpack 4
+ return [null, result];
+ };
+}
+
+export function getData(storage, key) {
+ // Webpack 5
+ if (storage._data instanceof Map) {
+ return storage._data.get(key);
+ }
+ if (storage._data) {
+ return storage.data[key];
+ }
+ if (storage.data instanceof Map) {
+ // Webpack v4
+ return storage.data.get(key);
+ }
+ return storage.data[key];
+}
+
+export function setData(backendOrStorage, key, valueFactory) {
+ const value = valueFactory(backendOrStorage);
+
+ // Webpack v5
+ if (backendOrStorage._data instanceof Map) {
+ backendOrStorage._data.set(key, value);
+ } else if (backendOrStorage._data) {
+ backendOrStorage.data[key] = value;
+ } else if (backendOrStorage.data instanceof Map) {
+ // Webpack 4
+ backendOrStorage.data.set(key, value);
+ } else {
+ backendOrStorage.data[key] = value;
+ }
+}
+
+export function getStatStorage(fileSystem) {
+ if (fileSystem._statStorage) {
+ // Webpack v4
+ return fileSystem._statStorage;
+ }
+ if (fileSystem._statBackend) {
+ // webpack v5
+ return fileSystem._statBackend;
+ }
+ // Unknown version?
+ throw new Error("Couldn't find a stat storage");
+}
+
+export function getFileStorage(fileSystem) {
+ if (fileSystem._readFileStorage) {
+ // Webpack v4
+ return fileSystem._readFileStorage;
+ }
+ if (fileSystem._readFileBackend) {
+ // Webpack v5
+ return fileSystem._readFileBackend;
+ }
+ throw new Error("Couldn't find a readFileStorage");
+}
+
+export function getReadDirBackend(fileSystem) {
+ if (fileSystem._readdirBackend) {
+ return fileSystem._readdirBackend;
+ }
+ if (fileSystem._readdirStorage) {
+ return fileSystem._readdirStorage;
+ }
+ throw new Error("Couldn't find a readDirStorage from Webpack Internals");
+}
diff --git a/packages/zero-next-plugin/src/utils.ts b/packages/zero-next-plugin/src/utils.ts
new file mode 100644
index 00000000000000..2c3ca80b9add65
--- /dev/null
+++ b/packages/zero-next-plugin/src/utils.ts
@@ -0,0 +1,54 @@
+import type * as Webpack from 'webpack';
+
+type CssModuleType = {
+ auto: boolean | RegExp | ((resourcePath: string) => boolean);
+ exportGlobals: boolean;
+ exportLocalsConvention:
+ | 'asIs'
+ | 'camelCase'
+ | 'camelCaseOnly'
+ | 'dashes'
+ | 'dashesOnly'
+ | ((name: string) => string);
+ exportOnlyLocals: boolean;
+ getLocalIdent: (
+ context: Webpack.LoaderContext,
+ localIdentName: string,
+ exportName: string,
+ options: object,
+ ) => string;
+ localIdentContext: string;
+ localIdentHashDigest: string;
+ localIdentHashFunction: string;
+ localIdentHashSalt: string;
+ localIdentName: string;
+ localIdentRegExp: string | RegExp;
+ mode:
+ | 'local'
+ | 'global'
+ | 'pure'
+ | 'icss'
+ | ((resourcePath: string) => 'local' | 'global' | 'pure' | 'icss');
+ namedExport: boolean;
+};
+
+export function isCssModule(
+ rule: Webpack.RuleSetRule,
+): rule is Webpack.RuleSetRule & { options: { modules: CssModuleType } } {
+ return (
+ rule.options &&
+ typeof rule.options === 'object' &&
+ rule.options.modules &&
+ typeof rule.options.modules.getLocalIdent === 'function'
+ );
+}
+
+export function isCssLoader(rule: Webpack.RuleSetRule): boolean {
+ return typeof rule.loader === 'string' && rule.loader.includes('css-loader');
+}
+
+export function isFSCache(
+ cache: Webpack.Configuration['cache'],
+): cache is Webpack.FileCacheOptions {
+ return typeof cache === 'object' && cache.type === 'filesystem';
+}
diff --git a/packages/zero-next-plugin/tsconfig.build.json b/packages/zero-next-plugin/tsconfig.build.json
new file mode 100644
index 00000000000000..23e0628498f2f1
--- /dev/null
+++ b/packages/zero-next-plugin/tsconfig.build.json
@@ -0,0 +1,21 @@
+{
+ // This config is for emitting declarations (.d.ts) only
+ // Actual .ts source files are transpiled via babel
+ "extends": "./tsconfig",
+ "compilerOptions": {
+ "target": "ES2015",
+ "composite": true,
+ "declaration": true,
+ "noEmit": false,
+ "emitDeclarationOnly": true,
+ "outDir": "build",
+ "rootDir": "./src"
+ },
+ "include": ["./src/**/*.ts", "./src/**/*.js"],
+ "exclude": ["src/**/*.spec.ts*", "src/**/*.test.ts*"],
+ "references": [
+ { "path": "../mui-system/tsconfig.build.json" },
+ { "path": "../mui-material/tsconfig.build.json" },
+ { "path": "../zero-tag-processor/tsconfig.build.json" }
+ ]
+}
diff --git a/packages/zero-next-plugin/tsconfig.json b/packages/zero-next-plugin/tsconfig.json
new file mode 100644
index 00000000000000..79f9a30c3552bd
--- /dev/null
+++ b/packages/zero-next-plugin/tsconfig.json
@@ -0,0 +1,9 @@
+{
+ "extends": "../../tsconfig",
+ "include": ["src/**/*", "test/**/*"],
+ "compilerOptions": {
+ "lib": ["ES2022", "DOM"],
+ "target": "ES2015",
+ "types": ["mocha", "node", "chai"]
+ }
+}
diff --git a/packages/zero-runtime/package.json b/packages/zero-runtime/package.json
index 969bc2d2197c19..e10788b82d6b8e 100644
--- a/packages/zero-runtime/package.json
+++ b/packages/zero-runtime/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/zero-runtime",
- "version": "0.0.1-alpha.2",
+ "version": "0.0.1-alpha.4",
"private": true,
"author": "MUI Team",
"description": "Linaria tag processors for custom styled implementation.",
diff --git a/packages/zero-tag-processor/package.json b/packages/zero-tag-processor/package.json
index c8ce1c3b2d4274..899a37725a030e 100644
--- a/packages/zero-tag-processor/package.json
+++ b/packages/zero-tag-processor/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/zero-tag-processor",
- "version": "0.0.1-alpha.3",
+ "version": "0.0.1-alpha.4",
"private": true,
"author": "MUI Team",
"description": "Linaria tag processors for custom styled implementation.",
@@ -47,11 +47,11 @@
"@emotion/css": "^11.11.2",
"@linaria/tags": "^4.5.4",
"@linaria/utils": "^4.5.3",
- "@mui/system": "^5.14.9",
+ "@mui/system": "^5.14.10",
"lodash.get": "^4.4.2"
},
"devDependencies": {
- "@mui/material": "^5.14.9",
+ "@mui/material": "^5.14.10",
"@types/babel__core": "^7.20.1",
"@types/babel__helper-module-imports": "^7.18.0",
"@types/babel__helper-plugin-utils": "^7.10.0",
diff --git a/packages/zero-tag-processor/src/utils/cssFnValueToVariable.ts b/packages/zero-tag-processor/src/utils/cssFnValueToVariable.ts
index 761f74e4040cb8..9405edecb8ff97 100644
--- a/packages/zero-tag-processor/src/utils/cssFnValueToVariable.ts
+++ b/packages/zero-tag-processor/src/utils/cssFnValueToVariable.ts
@@ -4,6 +4,7 @@ import { parseExpression } from '@babel/parser';
import type { Expression } from '@linaria/tags';
import type { Theme } from '@mui/material/styles';
import { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';
+import * as t from '@babel/types';
import { isUnitLess } from './isUnitLess';
import { cssFunctionTransformerPlugin } from './cssFunctionTransformerPlugin';
@@ -70,6 +71,9 @@ function transformThemeKeysInFn(
if (firstItem.type === 'ExpressionStatement') {
return firstItem.expression;
}
+ if (firstItem.type === 'FunctionDeclaration') {
+ return t.functionExpression(null, firstItem.params, firstItem.body);
+ }
return parseExpression(functionString);
}
diff --git a/packages/zero-vite-plugin/package.json b/packages/zero-vite-plugin/package.json
index 354cf1c91e9f27..236b00d67c024d 100644
--- a/packages/zero-vite-plugin/package.json
+++ b/packages/zero-vite-plugin/package.json
@@ -1,6 +1,6 @@
{
"name": "@mui/zero-vite-plugin",
- "version": "0.0.1-alpha.1",
+ "version": "0.0.1-alpha.4",
"private": true,
"author": "MUI Team",
"description": "Vite plugin for MUI zero styled implementation.",
@@ -41,7 +41,7 @@
"dependencies": {
"@babel/core": "^7.22.17",
"@linaria/vite": "^4.5.4",
- "@mui/zero-tag-processor": "0.0.1-alpha.3"
+ "@mui/zero-tag-processor": "0.0.1-alpha.4"
},
"devDependencies": {
"@types/babel__core": "^7.20.1",
diff --git a/test/bundling/fixtures/create-react-app/testCreateReactAppIntegration.js b/test/bundling/fixtures/create-react-app/testCreateReactAppIntegration.js
index 2142cdc2cd2230..740140e7d79fed 100644
--- a/test/bundling/fixtures/create-react-app/testCreateReactAppIntegration.js
+++ b/test/bundling/fixtures/create-react-app/testCreateReactAppIntegration.js
@@ -4,9 +4,11 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/bundling/fixtures/esbuild/testEsbuildIntegration.js b/test/bundling/fixtures/esbuild/testEsbuildIntegration.js
index 2142cdc2cd2230..ce6eaa4f493a5d 100644
--- a/test/bundling/fixtures/esbuild/testEsbuildIntegration.js
+++ b/test/bundling/fixtures/esbuild/testEsbuildIntegration.js
@@ -4,12 +4,13 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
-
/**
* Attempts page.goto with retries
*
diff --git a/test/bundling/fixtures/gatsby/testGatsbyIntegration.js b/test/bundling/fixtures/gatsby/testGatsbyIntegration.js
index 639c6027069a42..5425d43055406c 100644
--- a/test/bundling/fixtures/gatsby/testGatsbyIntegration.js
+++ b/test/bundling/fixtures/gatsby/testGatsbyIntegration.js
@@ -4,9 +4,11 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/bundling/fixtures/next-webpack4/testNextWebpack4Integration.js b/test/bundling/fixtures/next-webpack4/testNextWebpack4Integration.js
index 5f6fc1c70e3dba..23630f301c8834 100644
--- a/test/bundling/fixtures/next-webpack4/testNextWebpack4Integration.js
+++ b/test/bundling/fixtures/next-webpack4/testNextWebpack4Integration.js
@@ -4,9 +4,11 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/bundling/fixtures/next-webpack5/testNextWebpack5Integration.js b/test/bundling/fixtures/next-webpack5/testNextWebpack5Integration.js
index 5f6fc1c70e3dba..23630f301c8834 100644
--- a/test/bundling/fixtures/next-webpack5/testNextWebpack5Integration.js
+++ b/test/bundling/fixtures/next-webpack5/testNextWebpack5Integration.js
@@ -4,9 +4,11 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/bundling/fixtures/snowpack/testSnowpackIntegration.js b/test/bundling/fixtures/snowpack/testSnowpackIntegration.js
index 32ef4ef36b0fa5..0885ee87964da4 100644
--- a/test/bundling/fixtures/snowpack/testSnowpackIntegration.js
+++ b/test/bundling/fixtures/snowpack/testSnowpackIntegration.js
@@ -4,9 +4,11 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/bundling/fixtures/vite/testViteIntegration.js b/test/bundling/fixtures/vite/testViteIntegration.js
index 2142cdc2cd2230..740140e7d79fed 100644
--- a/test/bundling/fixtures/vite/testViteIntegration.js
+++ b/test/bundling/fixtures/vite/testViteIntegration.js
@@ -4,9 +4,11 @@ const playwright = require('playwright');
* @param {number} timeoutMS
* @returns {Promise}
*/
-function sleep(timeoutMS) {
+function sleep(duration) {
return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/e2e/index.test.ts b/test/e2e/index.test.ts
index b944ad1a625602..2014d81fe96f74 100644
--- a/test/e2e/index.test.ts
+++ b/test/e2e/index.test.ts
@@ -9,9 +9,11 @@ import type {
} from '@testing-library/dom';
import '../utils/initPlaywrightMatchers';
-function sleep(timeoutMS: number): Promise {
- return new Promise((resolve) => {
- setTimeout(() => resolve(), timeoutMS);
+function sleep(duration: number): Promise {
+ return new Promise((resolve) => {
+ setTimeout(() => {
+ resolve();
+ }, duration);
});
}
diff --git a/test/package.json b/test/package.json
index 0b556721e08e26..37a8351c2743fd 100644
--- a/test/package.json
+++ b/test/package.json
@@ -13,14 +13,14 @@
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.1",
"@mnajdova/enzyme-adapter-react-18": "^0.2.0",
- "@mui/base": "5.0.0-beta.15",
+ "@mui/base": "5.0.0-beta.16",
"@mui/icons-material": "^5.14.9",
- "@mui/joy": "5.0.0-beta.6",
- "@mui/lab": "5.0.0-alpha.144",
- "@mui/material": "^5.14.9",
- "@mui/material-next": "6.0.0-alpha.101",
- "@mui/system": "^5.14.9",
- "@mui/utils": "^5.14.9",
+ "@mui/joy": "5.0.0-beta.7",
+ "@mui/lab": "5.0.0-alpha.145",
+ "@mui/material": "^5.14.10",
+ "@mui/material-next": "6.0.0-alpha.102",
+ "@mui/system": "^5.14.10",
+ "@mui/utils": "^5.14.10",
"@playwright/test": "1.37.1",
"@testing-library/dom": "^9.3.1",
"@testing-library/react": "^14.0.0",
diff --git a/test/regressions/index.js b/test/regressions/index.js
index 7724a094a8cca8..82e1997dae0e67 100644
--- a/test/regressions/index.js
+++ b/test/regressions/index.js
@@ -32,6 +32,7 @@ const blacklist = [
'docs-joy-tools/PaletteThemeViewer.png', // No need for theme tokens
'docs-joy-tools/ShadowThemeViewer.png', // No need for theme tokens
'docs-joy-customization-theme-typography/TypographyThemeViewer.png', // No need for theme tokens
+ 'docs-joy-components-circular-progress/CircularProgressCountUp.png', // Flaky due to animation
'docs-joy-components-divider/DividerChildPosition.png', // Needs interaction
'docs-joy-components-linear-progress/LinearProgressCountUp.png', // Flaky due to animation
'docs-base-guides-working-with-tailwind-css/PlayerFinal.png', // No public components
diff --git a/tsconfig.json b/tsconfig.json
index 607b998b6a5e77..f18dfa4f29d3ca 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -33,6 +33,8 @@
"@mui/types": ["./packages/mui-types"],
"@mui/base": ["./packages/mui-base/src"],
"@mui/base/*": ["./packages/mui-base/src/*"],
+ "@mui/utils": ["./packages/mui-utils/src"],
+ "@mui/utils/*": ["./packages/mui-utils/src/*"],
"@mui/docs": ["./packages/mui-docs/src"],
"@mui/docs/*": ["./packages/mui-docs/src/*"],
"@mui/material-next": ["./packages/mui-material-next/src"],
diff --git a/yarn.lock b/yarn.lock
index 6cd7ffbd7089f9..5c098cf53609be 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2016,11 +2016,11 @@
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
"@jest/schemas@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788"
- integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg==
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
dependencies:
- "@sinclair/typebox" "^0.25.16"
+ "@sinclair/typebox" "^0.27.8"
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
@@ -2039,10 +2039,10 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/resolve-uri@3.1.0", "@jridgewell/resolve-uri@^3.0.3":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
- integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
+ integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
@@ -2057,10 +2057,10 @@
"@jridgewell/gen-mapping" "^0.3.0"
"@jridgewell/trace-mapping" "^0.3.9"
-"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
- version "1.4.14"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
- integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@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.9":
version "0.3.9"
@@ -2071,12 +2071,12 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.17"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
- integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
+ version "0.3.19"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
+ integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
dependencies:
- "@jridgewell/resolve-uri" "3.1.0"
- "@jridgewell/sourcemap-codec" "1.4.14"
+ "@jridgewell/resolve-uri" "^3.1.0"
+ "@jridgewell/sourcemap-codec" "^1.4.14"
"@lerna/child-process@7.2.0":
version "7.2.0"
@@ -3054,10 +3054,10 @@
make-fetch-happen "^11.0.1"
tuf-js "^1.1.3"
-"@sinclair/typebox@^0.25.16":
- version "0.25.24"
- resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718"
- integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==
+"@sinclair/typebox@^0.27.8":
+ version "0.27.8"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
"@sindresorhus/is@^4.0.0":
version "4.6.0"
@@ -3739,6 +3739,14 @@
dependencies:
"@types/node" "*"
+"@types/loader-utils@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@types/loader-utils/-/loader-utils-2.0.3.tgz#fbc2337358f8f4a7dc532ac0a3646c74275edf2d"
+ integrity sha512-sDXXzZnTLXgdso54/iOpAFSDgqhVXabCvwGAt77Agadh/Xk0QYgOk520r3tpOouI098gyqGIFywx8Op1voc3vQ==
+ dependencies:
+ "@types/node" "*"
+ "@types/webpack" "^4"
+
"@types/lodash.get@^4.4.7":
version "4.4.7"
resolved "https://registry.yarnpkg.com/@types/lodash.get/-/lodash.get-4.4.7.tgz#1ea63d8b94709f6bc9e231f252b31440abe312cf"
@@ -3958,6 +3966,11 @@
resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e"
integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==
+"@types/source-list-map@*":
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/@types/source-list-map/-/source-list-map-0.1.2.tgz#0078836063ffaf17412349bba364087e0ac02ec9"
+ integrity sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==
+
"@types/styled-components@5.1.26", "@types/styled-components@^5.1.26":
version "5.1.26"
resolved "https://registry.yarnpkg.com/@types/styled-components/-/styled-components-5.1.26.tgz#5627e6812ee96d755028a98dae61d28e57c233af"
@@ -3979,11 +3992,23 @@
resolved "https://registry.yarnpkg.com/@types/stylis/-/stylis-4.2.0.tgz#199a3f473f0c3a6f6e4e1b17cdbc967f274bdc6b"
integrity sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==
+"@types/tapable@^1":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.8.tgz#b94a4391c85666c7b73299fd3ad79d4faa435310"
+ integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ==
+
"@types/tsscmp@^1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@types/tsscmp/-/tsscmp-1.0.0.tgz#761c885a530f9673ae6fda0cae38253ffd46cba6"
integrity sha512-rj18XR6c4Ohds86Lq8MI1NMRrXes4eLo4H06e5bJyKucE1rXGsfBBbFGD2oDC+DSufQCpnU3TTW7QAiwLx+7Yw==
+"@types/uglify-js@*":
+ version "3.17.1"
+ resolved "https://registry.yarnpkg.com/@types/uglify-js/-/uglify-js-3.17.1.tgz#e0ffcef756476410e5bce2cb01384ed878a195b5"
+ integrity sha512-GkewRA4i5oXacU/n4MA9+bLgt5/L3F1mKrYvFGm7r2ouLXhRKjuWwo9XHNnbx6WF3vlGW21S3fCvgqxvxXXc5g==
+ dependencies:
+ source-map "^0.6.1"
+
"@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2":
version "2.0.6"
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d"
@@ -3999,6 +4024,27 @@
resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.3.tgz#6cdd939b4316b4f81625de9f06028d848c4a1533"
integrity sha512-taHQQH/3ZyI3zP8M/puluDEIEvtQHVYcC6y3N8ijFtAd28+Ey/G4sg1u2gB01S8MwybLOKAp9/yCMu/uR5l3Ug==
+"@types/webpack-sources@*":
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/@types/webpack-sources/-/webpack-sources-3.2.0.tgz#16d759ba096c289034b26553d2df1bf45248d38b"
+ integrity sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==
+ dependencies:
+ "@types/node" "*"
+ "@types/source-list-map" "*"
+ source-map "^0.7.3"
+
+"@types/webpack@^4":
+ version "4.41.33"
+ resolved "https://registry.yarnpkg.com/@types/webpack/-/webpack-4.41.33.tgz#16164845a5be6a306bcbe554a8e67f9cac215ffc"
+ integrity sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==
+ dependencies:
+ "@types/node" "*"
+ "@types/tapable" "^1"
+ "@types/uglify-js" "*"
+ "@types/webpack-sources" "*"
+ anymatch "^3.0.0"
+ source-map "^0.6.0"
+
"@types/ws@^7.4.7":
version "7.4.7"
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702"
@@ -4551,10 +4597,10 @@ any-promise@^1.0.0:
resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
-anymatch@~3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
- integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
+anymatch@^3.0.0, anymatch@~3.1.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
+ integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
@@ -8335,6 +8381,14 @@ file-entry-cache@^6.0.1:
dependencies:
flat-cache "^3.0.4"
+file-system-cache@2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/file-system-cache/-/file-system-cache-2.0.2.tgz#6b51d58c5786302146fa883529e0d7f88896e948"
+ integrity sha512-lp4BHO4CWqvRyx88Tt3quZic9ZMf4cJyquYq7UI8sH42Bm2ArlBBjKQAalZOo+UfaBassb7X123Lik5qZ/tSAA==
+ dependencies:
+ fs-extra "^11.1.0"
+ ramda "^0.28.0"
+
filelist@^1.0.1:
version "1.0.4"
resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
@@ -8686,11 +8740,16 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@2.3.2, fsevents@~2.3.2:
+fsevents@2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
+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==
+
fstream@^1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045"
@@ -13395,9 +13454,9 @@ pinpoint@^1.1.0:
integrity sha512-+04FTD9x7Cls2rihLlo57QDCcHoLBGn5Dk51SwtFBWkUWLxZaBXyNVpCw1S+atvE7GmnFjeaRZ0WLq3UYuqAdg==
pirates@^4.0.1, pirates@^4.0.5:
- version "4.0.5"
- resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b"
- integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==
+ version "4.0.6"
+ resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
+ integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
piscina@^4.1.0:
version "4.1.0"
@@ -13877,6 +13936,11 @@ rambda@^7.1.0:
resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.2.1.tgz#c533f6e2def4edcd59f967df938ace5dd6da56af"
integrity sha512-Wswj8ZvzdI3VhaGPkZAxaCTwuMmGtgWt7Zxsgyo4P+iTmVnkojvyWaOep5q3ZjMIecW0wtQa66GWxaKkZ24RAA==
+ramda@^0.28.0:
+ version "0.28.0"
+ resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.28.0.tgz#acd785690100337e8b063cab3470019be427cc97"
+ integrity sha512-9QnLuG/kPVgWvMQ4aODhsBUFKOUmnbUnsSXACv+NCQZcHbeb+v8Lodp8OVxtRULN1/xOyYLLaL6npE6dMq5QTA==
+
randexp@0.4.6:
version "0.4.6"
resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
@@ -14317,9 +14381,9 @@ read@^2.0.0:
mute-stream "~1.0.0"
readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.3.6, readable-stream@~2.3.6:
- version "2.3.7"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
- integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ 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"