diff --git a/.circleci/config.yml b/.circleci/config.yml index e61a41aa3fb143..c9682b5c8bfa14 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,6 +1,6 @@ version: 2.1 orbs: - aws-cli: circleci/aws-cli@4.0 + aws-cli: circleci/aws-cli@4.1 aws-s3: circleci/aws-s3@4.0 parameters: @@ -45,7 +45,7 @@ defaults: &defaults AWS_REGION_ARTIFACTS: eu-central-1 working_directory: /tmp/material-ui docker: - - image: cimg/node:18.17 + - image: cimg/node:18.18 # CircleCI has disabled the cache across forks for security reasons. # Following their official statement, it was a quick solution, they @@ -690,8 +690,8 @@ jobs: steps: - aws-cli/setup: aws_access_key_id: AWS_ACCESS_KEY_ID_ARTIFACTS - region: AWS_REGION_ARTIFACTS aws_secret_access_key: AWS_SECRET_ACCESS_KEY_ARTIFACTS + region: ${AWS_REGION_ARTIFACTS} # Upload distributables to S3 - aws-s3/copy: from: mui-material.tgz @@ -719,8 +719,8 @@ jobs: steps: - aws-cli/setup: aws_access_key_id: AWS_ACCESS_KEY_ID_ARTIFACTS - region: AWS_REGION_ARTIFACTS aws_secret_access_key: AWS_SECRET_ACCESS_KEY_ARTIFACTS + region: ${AWS_REGION_ARTIFACTS} # persist size snapshot on S3 - aws-s3/copy: arguments: --content-type application/json diff --git a/.eslintrc.js b/.eslintrc.js index bdace1247ab77d..cc9dc0004bc6b3 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/*', @@ -126,6 +119,7 @@ module.exports = { 'material-ui/docgen-ignore-before-comment': 'error', 'material-ui/rules-of-use-theme-variants': 'error', 'material-ui/no-empty-box': 'error', + 'material-ui/straight-quotes': 'error', 'react-hooks/exhaustive-deps': ['error', { additionalHooks: 'useEnhancedEffect' }], 'react-hooks/rules-of-hooks': 'error', @@ -218,15 +212,6 @@ module.exports = { rules: { // does not work with wildcard imports. Mistakes will throw at runtime anyway 'import/named': 'off', - 'no-restricted-imports': [ - 'error', - { - // Use named import from `test/utils` instead. - // The other files are private. - patterns: ['test/utils/*'], - }, - ], - 'material-ui/disallow-active-element-as-key-event-target': 'error', // upgraded level from recommended @@ -333,7 +318,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/.github/ISSUE_TEMPLATE/5.priority-support.yml b/.github/ISSUE_TEMPLATE/5.priority-support.yml index bae40bb08b931e..d5ec4e4ee132c6 100644 --- a/.github/ISSUE_TEMPLATE/5.priority-support.yml +++ b/.github/ISSUE_TEMPLATE/5.priority-support.yml @@ -1,4 +1,4 @@ -name: 'Priority support: SLA โฐ' +name: 'Priority Support: SLA โฐ' description: I'm an MUI X Premium user and we have purchased the Priority Support add-on. I can't find a solution to my problem with MUI Core (Material UI, Base UI, MUI System, and Joy UI). title: '[question] ' labels: ['status: needs triage', 'support: unknown'] diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2443587d91de24..9320aa74bdcd78 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -19,7 +19,7 @@ jobs: uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/init@6a28655e3dcb49cb0840ea372fd6d17733edd8a4 # v2.21.8 with: languages: typescript config-file: ./.github/codeql/codeql-config.yml @@ -30,4 +30,4 @@ jobs: # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/analyze@6a28655e3dcb49cb0840ea372fd6d17733edd8a4 # v2.21.8 diff --git a/.github/workflows/priority-support-validation-prompt.yml b/.github/workflows/priority-support-validation-prompt.yml index cfc1c889df4bfb..9513fe8b5fb51d 100644 --- a/.github/workflows/priority-support-validation-prompt.yml +++ b/.github/workflows/priority-support-validation-prompt.yml @@ -35,7 +35,7 @@ jobs: Do not share your support key in this issue! - Priority support is only provided to verified customers. Once you have verified your support key, we will remove the `support: unknown` label and add the `support: priority` label to this issue. Only then the time for the SLA will start counting. + Priority Support is only provided to verified customers. Once you have verified your support key, we will remove the `support: unknown` label and add the `support: priority` label to this issue. Only then the time for the SLA will start counting. - name: Update comment if: ${{ steps.findComment.outputs.comment-id != '' && contains(github.event.label.name, 'priority') }} diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index ea33dbc69af6e3..6b823e1e92cdfe 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -43,6 +43,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: Upload to code-scanning - uses: github/codeql-action/upload-sarif@a09933a12a80f87b87005513f0abb1494c27a716 # v2.21.4 + uses: github/codeql-action/upload-sarif@6a28655e3dcb49cb0840ea372fd6d17733edd8a4 # v2.21.8 with: sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index 5722b6358f7885..d8f84f0b8b32f9 100644 --- a/.gitignore +++ b/.gitignore @@ -30,6 +30,8 @@ /test/regressions/screenshots /tmp .next +# created by netlify dev (to perform local debug) +.netlify build node_modules package-lock.json diff --git a/.mocharc.js b/.mocharc.js index 83a5c747ad403f..d57adb8886a831 100644 --- a/.mocharc.js +++ b/.mocharc.js @@ -10,7 +10,7 @@ module.exports = { recursive: true, timeout: (process.env.CIRCLECI === 'true' ? 5 : 2) * 1000, // Circle CI has low-performance CPUs. reporter: 'dot', - require: [require.resolve('./test/utils/setupBabel'), require.resolve('./test/utils/setupJSDOM')], + require: ['@mui-internal/test-utils/setupBabel', '@mui-internal/test-utils/setupJSDOM'], 'watch-ignore': [ // default '.git', diff --git a/CHANGELOG.md b/CHANGELOG.md index ef08698c79cdc7..f5553d992e3a64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,334 @@ # [Versions](https://mui.com/versions/) +## 5.14.11 + + + +_Sep 26, 2023_ + +A big thanks to the 23 contributors who made this release possible. +This release was mostly about ๐Ÿ› bug fixes and ๐Ÿ“š documentation improvements. + +### `@mui/material@5.14.11` + +- [Autocomplete] Re-export `AutocompleteValue` to make it available from path import (#38638) @vadimka123 +- [Select][material-ui] Missing aria-multiselectable attribute on multiple Select component (#38855) @gitstart +- [l10n] labelDisplayedRows is added for trTR localization (#39056) @tebersefa + +### `@mui/utils@5.14.11` + +- Support RSC in `isMuiElement` util (#38129) @sai6855 + +### `@mui/base@5.0.0-beta.17` + +- [NumberInput] Support adornments (#38900) @anle9650 +- [Menu] Align external props handling for useMenu/MenuButton/MenuItem (#38946) @mj12albert +- [Select] Align external props handling (#39038) @mj12albert +- [TextareaAutosize] Simplify logic and add test (#38728) @oliviertassinari + +### `@mui/joy@5.0.0-beta.8` + +- [Button] Fix disabled button styling when component prop is provided (#38996) @sai6855 +- [Drawer] Add missing `JoyDrawer` in theme components (#39074) @Studio384 + +### `@mui/material-next@6.0.0-alpha.103` + +- [FormControl] Copy v5 FormControl (#39039) @mj12albert + +### `@mui/lab@5.0.0-alpha.146` + +- [TreeView] Fix JSDoc comments in TreeView and TreeItem (#38874) @jergason + +### Docs + +- Improve focus trap demo (#38985) @oliviertassinari +- Add Tailwind CSS + plain CSS demo on the Tabs page (#39000) @alisasanib +- Improve the default theme viewer design (#39049) @danilo-leal +- Add live demo with CssVarsProvider (#38792) @oliviertassinari +- Fix wrong hash on Card's page (#39151) @mnajdova +- Revise the Drawer page (#38988) @danilo-leal +- Simplify the button's loading indicator demo (#39082) @danilo-leal +- Fix the Templates link on the Overview page (#39086) @danilo-leal +- Refine the Sign in template (#38942) @zanivan +- Add `use-count-up` integration with the Circular Progress (#38952) @anon-phantom + +### Core + +- [blog] Add a company values blog post (#38802) @mikailaread +- [core] Downgrade lerna to 7.2.0 (#39149) @michaldudak +- [core] Simplify docs feedback interaction (#39075) @alexfauquette +- [core] Improve ref type definition (#38903) @oliviertassinari +- [core] Simplify career (#39112) @oliviertassinari +- [core] Update Babel types along with source packages (#39070) @michaldudak +- [core] Add a comment to explain `useEnhancedEffect` (#39035) @Janpot +- [docs-infra] Fix code removal in table of content (#39165) @alexfauquette +- [docs-infra] Improve callouts design (#39084) @danilo-leal +- [docs-infra] Fix key warning in Base UI Slider slots section (#38954) @ZeeshanTamboli +- [docs-infra] Fix error when redirecting to the root page (#38451) @maheshguntur +- [docs-infra] Open demo crash in the right repository (#39006) @oliviertassinari +- [test] Split the test package (#39061) @michaldudak +- [website] React Engineer - xCharts role (#38976) @DanailH +- [website] Improve the highlighter component colors (#39087) @danilo-leal +- [website] Fix Pricing page row hover (#39097) @danilo-leal +- [website] Fix typo with straight quote @oliviertassinari +- [website] Sync about page @oliviertassinari +- [website] Update the about page (#38733) @danilo-leal +- [website] Small fixes on the X marketing page (#38975) @flaviendelangle +- [website] Add stray design tweaks to the X page (#38589) @danilo-leal + +All contributors of this release in alphabetical order: @alexfauquette, @alisasanib, @anle9650, @anon-phantom, @DanailH, @danilo-leal, @DiegoAndai, @flaviendelangle, @gitstart, @Janpot, @jergason, @maheshguntur, @michaldudak, @mikailaread, @mj12albert, @mnajdova, @oliviertassinari, @sai6855, @Studio384, @tebersefa, @vadimka123, @zanivan, @ZeeshanTamboli + +## 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 + + + +_Sep 13, 2023_ + +A big thanks to the 18 contributors who made this release possible. Here are some highlights โœจ: + +- ๐ŸŽ‰ Added the [`Drawer` component](https://mui.com/joy-ui/react-drawer/) to Joy UI (#38169) @mnajdova +- โœจ Material UI's [`ButtonGroup` component](https://mui.com/material-ui/react-button-group/) now styles button elements within it correctly (#38520) @ZeeshanTamboli + +### `@mui/material@5.14.9` + +- ​[ButtonGroup] Determine first, last and middle buttons to support different elements with correct styling (#38520) @ZeeshanTamboli +- ​[Modal] Fix console warning when onTransitionEnter , onTransitionExit provided (#38868) @sai6855 +- ​Revert "[Autocomplete] Type multiple values with readonly arrays." (#38827) @mnajdova +- ​[Tabs] Scrollable tabs shouldn't crash when customizing their styles in the theme with slot callbacks (#38544) @brentertz +- ​[AlertTitle][BreadCrumbs] Fix inheritance message in docs (#38876) @sai6855 + +### `@mui/base@5.0.0-beta.15` + +- ​[useSnackbar] Align externalProps handling (#38935) @mj12albert +- ​[useInput] Align ExternalProps naming (#38849) @mj12albert +- ​[FocusTrap] Refactor & cleanup (#38878) @mnajdova +- ​[FocusTrap] Fix `disableEnforceFocus` behavior (#38816) @mnajdova +- ​[Switch] Simplify source (#38910) @oliviertassinari + +### `@mui/joy@5.0.0-beta.6` + +- ​[Drawer] Add Drawer component (#38169) @mnajdova +- ​Reduce height of some variants (#38527) @zanivan +- ​Refine the default theme color palette (#38416) @zanivan +- ​[Dialog] Add `DialogActions`, `DialogTitle` and `DialogContent` (#38382) @siriwatknp +- ​[AccordionGroup] Add missing `variant` and `color` classes (#38814) @sai6855 + +### `@mui/lab@5.0.0-alpha.144` + +- ​Add TypeScript deprecations (#38833) @oliviertassinari +- ​Fix `@mui/x-tree-view` dependency (#38822) @flaviendelangle + +### `@mui/system@5.14.9` + +- ​Remove dead code (#38884) @oliviertassinari +- ​Remove getInitColorSchemeScript leading spaces (#38794) @oliviertassinari + +### `@mui/zero-vite-plugin@0.0.1-alpha.0` + +- ​[vite] Create a package for vite plugin (#38685) @brijeshb42 + +### Docs + +- ​[docs][base-ui] Improve recommended usage guide (#38570) @oliviertassinari +- ​[docs][base-ui] Create hooks contribution guide (#38679) @michaldudak +- ​[docs][base-ui] Structure and style revisions for Component docs (#38826) @samuelsycamore +- ​[docs][base-ui] Add Number Input to the all components page (#38839) @danilo-leal +- ​[docs][base-ui] Mark Popup with the Preview tag (#38851) @michaldudak +- ​[blog] Polish component reference name @oliviertassinari +- ​[blog] Fix missing card (#38834) @oliviertassinari +- ​[Button][docs][material-ui] Update the file upload demo (#38823) @danilo-leal +- ​[docs][DialogTitle] Fix props docs doesn't mention it extends `Typography` props (#38856) @sai6855 +- ​[docs] Improve npm experience (#38906) @oliviertassinari +- ​[docs] Fix redirection to Base UI URLs @oliviertassinari +- ​[docs] Fix use of callouts (#38747) @oliviertassinari +- ​[docs] Fix 301 links for SEO @oliviertassinari +- ​[docs] Remove flag from installation page @oliviertassinari +- ​[docs] Fix strange break line on mobile in between product name @oliviertassinari +- ​[docs] Clearer npm package homepages (#38864) @oliviertassinari +- ​[docs] enableColorScheme prop was removed (#38795) @oliviertassinari +- ​[docs] Fix a11y issues in tables demos (#38829) @michaldudak +- ​[docs][joy-ui] Refine the Messages template (#38807) @zanivan +- ​[docs][joy-ui] Fix copy on the Tutorial page (#38907) @danilo-leal +- ​[docs][joy-ui] Fix grammar and update Usage section in color inversion page (#38850) @ZeeshanTamboli +- ​[docs][joy-ui] Revise the Lists page (#36324) @LadyBluenotes +- ​[docs][joy-ui] Refine the Profile Dashboard template (#38599) @zanivan +- ​[docs][material-ui] Revise the Paper component docs (#38841) @danilo-leal +- ​[docs][material-ui] Revise the Typography page (#38543) @danilo-leal +- ​[docs][material-ui] Revise and split up "Styled engine" doc (#37774) @samuelsycamore +- ​[TextareaAutosize][docs] Fix component creation in render (#38577) @oliviertassinari + +### Examples + +- ​[examples] Add shortcut to open example in online IDE (#38572) @oliviertassinari +- ​[examples][base-ui] Add Base UI + Vite + Tailwind CSS example in TypeScript (#37595) @dvkam + +### Core + +- ​[core] Remove package declaration from same package dependencies (#38951) @DiegoAndai +- ​[core] Remove workspace dependencies from root package.json (#38940) @michaldudak +- ​[core] Fix prop-types generation (#38831) @flaviendelangle +- ​[core] Move types packages to docs' devDependencies (#38914) @michaldudak +- ​[core] Improve DX when browsing the package on npm and GitHub @oliviertassinari +- ​[core] TrapFocus was renamed to FocusTrap @oliviertassinari +- ​[core] Add types extension for clarity @oliviertassinari +- ​[core] Hoist rewriteImportPaths to parent scope @oliviertassinari +- ​[core] Bump aws-cli orb to 4.1 (#38857) @Janpot +- ​[core] Explicitly define package dependencies (#38859) @michaldudak +- ​[core] Fix yarn docs:create-playground script @oliviertassinari +- ​[docs-infra] Improve show code button affordance (#38824) @danilo-leal +- ​[docsโ€“infra] Fix callout container width (#38880) @oliviertassinari +- ​[docs-infra] Catch duplicated trailing splashes in links (#38758) @oliviertassinari +- ​[website] add Michel Engelen to the about us page (#38818) @michelengelen +- ​[website] Add a templates & design kits section to the Material UI page (#38617) @danilo-leal + +All contributors of this release in alphabetical order: @brentertz, @brijeshb42, @danilo-leal, @DiegoAndai, @dvkam, @flaviendelangle, @Janpot, @LadyBluenotes, @michaldudak, @michelengelen, @mj12albert, @mnajdova, @oliviertassinari, @sai6855, @samuelsycamore, @siriwatknp, @zanivan, @ZeeshanTamboli + +## 5.14.8 + + + +_Sep 5, 2023_ + +A big thanks to the 25 contributors who made this release possible. + +### `@mui/material@5.14.8` + +- ​ImageItemList fix incorrect (below) rendering (#38452) @omriklein +- ​[Button] Add demo for file upload (#38786) @anle9650 +- ​[Slider] Add missing classes for `Slider` `InputLabel` `InputBase` `Radio` (#38401) @sai6855 +- ​[Select] Merge slotProps.paper with internal Paper props (#38703) @michaldudak +- ​[Tabs] Fix `ref` type (#38717) @ZeeshanTamboli +- ​[TabScrollButton] Extend ButtonBase types (#38719) @ZeeshanTamboli + +### `@mui/base@5.0.0-beta.14` + +- ​[Autocomplete] Type multiple values with readonly arrays. (#38253) @pcorpet +- ​[TextField] Fix unstable height of memoized multiline TextField component (#37135) @amal-qb + +### `@mui/joy@5.0.0-beta.5` + +- ​[Accordion] Fix incorrect display of classname (#38695) @sai6855 +- ​[AspectRatio] Correct `ratio` prop description (#38743) @sai6855 +- ​[Button] Fix disablity of button (#38673) @sai6855 +- ​[design] Stray design tweaks to components (#38476) @zanivan +- ​[Typography] Added position only when Skeleton is a direct child (#38799) @siriwatknp + +### `@mui/lab@5.0.0-alpha.143` + +- ​[TreeView] Use Tree View from MUI X in the lab (#38261) @flaviendelangle +- ​[LoadingButton] Fix HTML rule button > div forbidden nesting (#38584) @oliviertassinari + +### `@mui/system@5.14.8` + +- ​[system] Fix the inconsistent types of the `mergeBreakpointsInOrder` function (#38749) @imevanc +- ​[system] Fix maxWidth incorrectly resolving breakpoints with non-pixel units (#38633) @mj12albert +- ​[typescript] Introduce \*OwnProps interfaces for components (#36798) @szalonna + +### Docs + +- ​Update changelog (#38704) @mj12albert +- ​[docs][Autocomplete] Require referentially stable value (#38734) @michaldudak +- ​[docs][base-ui] Add type parameter to the button in prepareForSlot demo (#38640) @michaldudak +- ​[docs][base-ui] Fix the broken image in the Tailwind CSS guide (#38721) @michaldudak +- ​[docs][base-ui]: Working With Tailwind Guide - revises example code to avoid import errors (#38693) @christophermorin +- ​[docs][base] Add Tailwind CSS + plain CSS demo on the Menu page (#38618) @alisasanib +- ​[blog] Clearer blog release title @oliviertassinari +- ​[blog] Add a post for the Tree View migration (#38407) @flaviendelangle +- ​[docs] Fix broken links to Next.js docs (#38764) @ruflair +- ​[docs] Trim trailing whitespace (#38793) @oliviertassinari +- ​[docs] Fix a typo in lab-tree-view-to-mui-x.md @mbrookes +- ​[docs] Clean up not used Usage files (#38715) @danilo-leal +- ​[docs] Improve theme builder exceptions (#38709) @jyash97 +- ​[docs] Polish Slider demos (#38759) @oliviertassinari +- ​[docs] Fix Joy UI docs link regression (#38761) @oliviertassinari +- ​[docs] Fix typo @oliviertassinari +- ​[docs] Fix e.g. typo (#38748) @oliviertassinari +- ​[docs] Fix Next.js pages router example redirect link (#38750) @sai6855 +- ​[docs] Fix SEO issue broken links @oliviertassinari +- ​[docs] Improve SSR example reference (#38651) @oliviertassinari +- ​[docs][joy-ui] Integrate a count-up feature to the Linear Progress (#38738) @anon-phantom +- ​[docs][joy-ui] Fix Link's `overlay` prop demo (#38702) @danilo-leal +- ​[docs][joy-ui] Polish the Stack page (#38623) @danilo-leal +- ​[docs][material-ui] Adjust simple Slide demo (#38646) @rajgop1 + +### Core + +- ​[core] Re-add nx and setup build caching (#38752) @brijeshb42 +- ​[core] Remove dead code seoTitle @oliviertassinari +- ​[core] Use immutable refs (#38762) @oliviertassinari +- ​[core] Rework `typescript-to-proptypes` to share the AST parsing with `parseStyles` (#38517) @flaviendelangle +- ​[core] Fix CI @oliviertassinari +- ​[core] Remove unnecessary `@types/webpack` package (#38720) @ZeeshanTamboli +- ​[core] Remove duplicate prop @oliviertassinari + +- ​[docs-infra] Fix mobile display in CodeSandbox (#38767) @oliviertassinari +- ​[docs-infra] Remove legacy GA (#37579) @alexfauquette +- ​[docs-infra] Fix emotion :first-child console log (#38690) @oliviertassinari +- ​[docs-infra] Fix leaking callout content (#38712) @danilo-leal +- ​[docs-infra] Remove emoji from callouts (#38694) @danilo-leal + +- ​[website] Fix out of date discount value @oliviertassinari +- ​[website] Fix out-of-date label on Toolpad (#38744) @bharatkashyap +- ​[website] Fine-tune branding buttons box shadows (#38731) @danilo-leal +- ​[website] Fix pricing table style (#38681) @alexfauquette + +All contributors of this release in alphabetical order: @alexfauquette, @alisasanib, @amal-qb, @anle9650, @anon-phantom, @bharatkashyap, @brijeshb42, @christophermorin, @danilo-leal, @flaviendelangle, @imevanc, @jyash97, @mbrookes, @michaldudak, @mj12albert, @oliviertassinari, @omriklein, @pcorpet, @rajgop1, @ruflair, @sai6855, @siriwatknp, @szalonna, @zanivan, @ZeeshanTamboli + ## 5.14.7 @@ -10,35 +339,36 @@ A big thanks to the 11 contributors who made this release possible. This release ### `@mui/material@5.14.7` -- ​[Autocomplete] Fix listbox opened unexpectedly when component is `disabled` (#38611) @mj12albert -- ​[Select][material-ui] Fix select menu moving on scroll when disableScrollLock is true (#37773) @VishruthR +- [Autocomplete] Fix listbox opened unexpectedly when component is `disabled` (#38611) @mj12albert +- [Select][material-ui] Fix select menu moving on scroll when disableScrollLock is true (#37773) @VishruthR ### `@mui/base@5.0.0-beta.13` -- ​[useButton][base-ui] Accept arbitrary props in getRootProps and forward them (#38475) @DiegoAndai +- [useButton][base-ui] Accept arbitrary props in getRootProps and forward them (#38475) @DiegoAndai ### `@mui/zero-runtime@0.0.1-alpha.1` -- ​[system][zero][tag] Add support for sx prop (#38535) @brijeshb42 +- [system][zero][tag] Add support for sx prop (#38535) @brijeshb42 ### Docs -- ​[docs] Number Input docs fixes (#38521) @mj12albert -- ​[docs] Show all the code in the usage section (#38691) @oliviertassinari -- ​[docs][joy-ui] Change the customization and how-to guides docs tree (#38396) @danilo-leal -- ​[docs][lab][LoadingButton] Improve `loading` prop documentation (#38625) @sai6855 -- ​[docs][material-ui] Format `key` prop JSDoc description in `Snackbar` component code correctly (#38603) @jaydenseric +- [docs] Number Input docs fixes (#38521) @mj12albert +- [docs] Show all the code in the usage section (#38691) @oliviertassinari +- [docs][joy-ui] Change the customization and how-to guides docs tree (#38396) @danilo-leal +- [docs][lab][LoadingButton] Improve `loading` prop documentation (#38625) @sai6855 +- [docs][material-ui] Format `key` prop JSDoc description in `Snackbar` component code correctly (#38603) @jaydenseric ### Core -- ​[core] Add use-client to custom icons (#38132) @mj12albert -- ​[core] Remove unnecessary `@types/jsdom` (#38657) @renovate[bot] -- ​[core] Improve sponsors GA labels (#38649) @oliviertassinari -- ​[core] Fix ESM issues with regression tests (#37963) @Janpot -- ​[core] Potential fix for intermittent ci crashes in e2e test (#38614) @Janpot -- ​[docs-infra] Adjust the Material You playground demo design (#38636) @danilo-leal -- ​[docs-infra] Hide the SkipLink button if user prefers reduced motion (#38632) @DerTimonius -- ​[website] Add tiny fixes the homepage Sponsors section (#38635) @danilo-leal +- [core] Add use-client to custom icons (#38132) @mj12albert +- [core] Remove unnecessary `@types/jsdom` (#38657) @renovate[bot] +- [core] Improve sponsors GA labels (#38649) @oliviertassinari +- [core] Fix ESM issues with regression tests (#37963) @Janpot +- [core] Potential fix for intermittent ci crashes in e2e test (#38614) @Janpot +- [docs-infra] Mark unstable components with a chip in the nav drawer (#38573) @michaldudak +- [docs-infra] Adjust the Material You playground demo design (#38636) @danilo-leal +- [docs-infra] Hide the SkipLink button if user prefers reduced motion (#38632) @DerTimonius +- [website] Add tiny fixes the homepage Sponsors section (#38635) @danilo-leal All contributors of this release in alphabetical order: @brijeshb42, @danilo-leal, @DerTimonius, @DiegoAndai, @Janpot, @jaydenseric, @mj12albert, @oliviertassinari, @renovate[bot], @sai6855, @VishruthR @@ -578,10 +908,10 @@ _Jul 11, 2023_ A big thanks to the 15 contributors who made this release possible. Here are some highlights โœจ: -- ๐Ÿ’ซ Material UI, Joy UI, and Base UI are compatible with [NextJS App Router](https://nextjs.org/docs/app) (#37656) @mj12albert +- ๐Ÿ’ซ Material UI, Joy UI, and Base UI are compatible with [Next.js App Router](https://nextjs.org/docs/app) (#37656) @mj12albert - ๐Ÿ“š Added new guides for integrating with Next.js 13 App Router (#37656) @mj12albert - โ“‚๏ธ [Material UI guide](https://mui.com/material-ui/guides/next-js-app-router/) - - ๐Ÿ…™ [Joy UI guide](https://mui.com/joy-ui/guides/next-js-app-router/) + - ๐Ÿ…™ [Joy UI guide](https://mui.com/joy-ui/integrations/next-js-app-router/) - ๐Ÿ…ฑ๏ธ [Base UI guide](https://mui.com/base-ui/guides/next-js-app-router/) - ๐Ÿ› bug fixes, ๐Ÿ“š documentation, and โš™๏ธ infrastructure improvements. @@ -1379,7 +1709,7 @@ _Apr 11, 2023_ A big thanks to the 9 contributors who made this release possible. Here are some highlights โœจ: -- ๐Ÿ’ซ Added [theme scope](https://mui.com/material-ui/guides/styled-engine/#theme-scoping) for using multiple design systems (#36664) @siriwatknp +- ๐Ÿ’ซ Added [theme scope](https://mui.com/material-ui/guides/theme-scoping/) for using multiple design systems (#36664) @siriwatknp - ๐Ÿ› bug fixes and ๐Ÿ“š documentation improvements. ### `@mui/system@5.12.0` @@ -1867,7 +2197,7 @@ A big thanks to the 15 contributors who made this release possible. Here are som - ​[docs][joy] List slots in API documentation (#36271) @hbjORbj - ​[docs][joy] Build API documentations (#36008) @hbjORbj - ​[examples] Update Next.js examples to use built-in font (#36315) @Juneezee -- ​[examples] Update curl link in `material-next-ts-v4-v5-migration` example README (#36321) @ZeeshanTamboli +- ​[examples] Update curl link in `material-ui-nextjs-ts-v4-v5-migration` example README (#36321) @ZeeshanTamboli - ​[examples] Convert Next.js \_document class components to function components (#36109) @ossan-engineer ### Core @@ -3125,7 +3455,7 @@ A big thanks to the 7 contributors who made this release possible. Here are some ### `@mui/base@5.0.0-alpha.101` -- ​[TrapFocus] Restore the previously exported type from @mui/material (#34601) @michaldudak +- ​[FocusTrap] Restore the previously exported type from @mui/material (#34601) @michaldudak ### `@mui/joy@5.0.0-alpha.49` @@ -3241,7 +3571,7 @@ A big thanks to the 21 contributors who made this release possible. Here are som #### Breaking changes -- [TrapFocus] Rename TrapFocus to FocusTrap (#34216) @kabernardes +- [FocusTrap] Rename TrapFocus to FocusTrap (#34216) @kabernardes ```diff -import TrapFocus from '@mui/base/TrapFocus'; @@ -3483,7 +3813,7 @@ A big thanks to the 16 contributors who made this release possible. Here are som - [Button][base] Prevent too many ref updates (#33882) @michaldudak - [Select][base] Fix typo in listbox blur event handler (#34120) @ZeeshanTamboli -- [TrapFocus] Improve tab test and simplify demo (#34008) @EthanStandel +- [FocusTrap] Improve tab test and simplify demo (#34008) @EthanStandel ### `@mui/joy@5.0.0-alpha.43` @@ -3589,7 +3919,7 @@ A big thanks to the 18 contributors who made this release possible. This release ### `@mui/base@5.0.0-alpha.93` -- ​[TrapFocus] Removes invisible tabbable elements from (#33543) @EthanStandel +- ​[FocusTrap] Removes invisible tabbable elements from (#33543) @EthanStandel - ​[Input][base] Pass the rows prop to the underlying textarea (#33873) @michaldudak - ​[SelectUnstyled] Add ability to post the select's value when submitting a form (#33697) @michaldudak @@ -4934,7 +5264,7 @@ A big thanks to the 17 contributors who made this release possible. Here are som ); ``` -- ​[TrapFocus] Move docs to Base and drop the Unstyled prefix (#31954) @michaldudak +- ​[FocusTrap] Move docs to Base and drop the Unstyled prefix (#31954) @michaldudak Removed the `Unstyled_` prefix from the Base export (it remains in the Material UI export, though). @@ -7901,7 +8231,7 @@ A big thanks to the 11 contributors who made this release possible. Here are som ### `@material-ui/unstyled@5.0.0-alpha.37` - ​[Slider] Improve TS definition (#26642) @mnajdova -- ​[TrapFocus] Capture nodeToRestore via relatedTarget (#26696) @eps1lon +- ​[FocusTrap] Capture nodeToRestore via relatedTarget (#26696) @eps1lon ### `@material-ui/icons@5.0.0-alpha.37` @@ -8971,7 +9301,7 @@ A big thanks to the 19 contributors who made this release possible. Here are som - ​[Timeline] Migrate TimelineContent to emotion (#25781) @siriwatknp - ​[Timeline] Migrate TimelineItem to emotion (#25822) @vicasas - ​[Timeline] Migrate TimelineOppositeContent to emotion (#25816) @vicasas -- ​[TrapFocus] Make isEnabled and getDoc optional (#25784) @m4theushw +- ​[FocusTrap] Make isEnabled and getDoc optional (#25784) @m4theushw ### `@material-ui/styled-engine@5.0.0-alpha.31` @@ -9453,7 +9783,7 @@ A big thanks to the 26 contributors who made this release possible. Here are som ### `@material-ui/unstyled@5.0.0-alpha.26` - ​[Portal] Migrate to unstyled (#24890) @povilass -- ​[TrapFocus] Migrate to unstyled (#24957) @povilass +- ​[FocusTrap] Migrate to unstyled (#24957) @povilass - ​[Backdrop] Migrate to unstyled (#24985) @povilass - ​[Modal] Migrate to emotion + unstyled (#24857) @povilass @@ -10050,7 +10380,7 @@ A big thanks to the 14 contributors who made this release possible. Here are som - [ButtonBase] Migrate styles to emotion (#24100) @mnajdova - [Button] Migrate styles to emotion (#24107) @mnajdova - [unstyled] Add utils for generating utility classes (#24126) @mnajdova -- [TrapFocus] Fix trap to only focus on tabbable elements (#23364) @gregnb +- [FocusTrap] Fix trap to only focus on tabbable elements (#23364) @gregnb - [Link] Improve integration with Next.js (#24121) @kelvinsanchez15 - [Select] Fix overflow showing scrollbar (#24085) @Segebre - [Slider] Fix circular type reference in SliderValueLabel (#24190) @eps1lon @@ -10719,7 +11049,7 @@ A big thanks to the 20 contributors who made this release possible. Here are som - [Avatar] Fix usage of srcset property (#23286) @matheuspiment - [ClickAwayListener] Fix mounting behavior in Portals in React 17 (#23315) @eps1lon - [core] Allow React 17 (#23311) @eps1lon -- [Icon] Fix translation, e.g Google Translate (#23237) @cbeltrangomez84 +- [Icon] Fix translation, e.g. Google Translate (#23237) @cbeltrangomez84 - [LinearProgress] Fix Safari's bug during composition of different paint (#23293) @montogeek - [Radio] Fix dot misalignment in Safari (#23239) @anasufana - [styled-engine] Fix tagged template syntax with multiple expressions (#23269) @eps1lon @@ -11983,9 +12313,9 @@ Here are some highlights โœจ: - [Tabs] Document how to make scroll icons visible (#22255) @Sorgrum - [TextField] Add hidden label to multi-line filled textfield (#22284) @fakeharahman - [Toolbar] Custom variant (#22217) @mnajdova -- [TrapFocus] Entangle effects (#22155) @eps1lon -- [TrapFocus] Fix compatibility issues with React 17 (#22270) @eps1lon -- [TrapFocus] Prevent possible crash in React 17 (#22262) @eps1lon +- [FocusTrap] Entangle effects (#22155) @eps1lon +- [FocusTrap] Fix compatibility issues with React 17 (#22270) @eps1lon +- [FocusTrap] Prevent possible crash in React 17 (#22262) @eps1lon ### `@material-ui/icons@v5.0.0-alpha.7` @@ -12070,7 +12400,7 @@ Here are some highlights โœจ: More details in [the documentation](https://mui.com/material-ui/customization/components/#adding-new-component-variants) and [RFC](#21749). -- ๐Ÿ‘ฎ Add documentation for the [TrapFocus](https://mui.com/components/trap-focus/) component (#22062) @oliviertassinari. +- ๐Ÿ‘ฎ Add documentation for the [FocusTrap](https://mui.com/base-ui/react-focus-trap/) component (#22062) @oliviertassinari. - โš›๏ธ Prepare support for React v17 (#22093, #22105, #22143, #22111) @eps1lon. - ๐Ÿšง We have undertaken breaking changes. @@ -12247,7 +12577,7 @@ Here are some highlights โœจ: - [CssBaseline] Add text size adjust property (#22089) @Tolsee - [l10n] Add Greek (el-GR) locale (#21988) @tmanolat - [Table] Cell small's right padding is bigger than medium (#22017) @adamlaurencik -- [TrapFocus] Add documentation (#22062) @oliviertassinari +- [FocusTrap] Add documentation (#22062) @oliviertassinari - [Typography] Add custom variants support (#22006) @mnajdova - [useIsFocusVisible] Remove focus-visible if focus is re-targetted (#22102) @eps1lon - [core] Fix various potential issues with multiple windows (#22159) @scottander @@ -12443,7 +12773,7 @@ A big thanks to the 14 contributors who made this release possible. - [List] Fix secondary action position when disableGutters={true} (#21732) @kgregory - [TablePagination] Fix broken labelling if SelectProps provided ids (#21703) @eps1lon - [theme] Fix custom breakpoint in CSS Media Queries (#21759) @nkrivous -- [TrapFocus] Fix disableAutoFocus prop (#21612) @oliviertassinari +- [FocusTrap] Fix disableAutoFocus prop (#21612) @oliviertassinari ### `@material-ui/lab@v5.0.0-alpha.3` @@ -12518,7 +12848,7 @@ A big thanks to the 16 contributors who made this release possible. - [MenuItem] Add types for ListItemClasses (#21654) @eps1lon - [Slider] Fix cannot read property 'focus' of null (#21653) @mageprincess - [TextField] Fix CSS isolation issue (#21665) @Codetalker777 -- [TrapFocus] Fix portal support (#21610) @mnajdova +- [FocusTrap] Fix portal support (#21610) @mnajdova - [TypeScript] Fix version support (#21640) @jakubfiglak ### `@material-ui/lab@v5.0.0-alpha.2` diff --git a/CHANGELOG.old.md b/CHANGELOG.old.md index 816fa38fd39b72..c4600dfeaa9e10 100644 --- a/CHANGELOG.old.md +++ b/CHANGELOG.old.md @@ -279,7 +279,7 @@ A big thanks to the 12 contributors who made this release possible. - [styles] Add support for TypeScript 4.1 (#23692) @ldrick - [ClickAwayListener] Fix mounting behavior in Portals in React 17 (#23367) @eps1lon -- [TrapFocus] Prevent possible crash in React 17 (#22263) @eps1lon +- [FocusTrap] Prevent possible crash in React 17 (#22263) @eps1lon - [Tabs] Fix RTL scrollbar with Chrome 85 (#22830) @ankit ### `@material-ui/styles@v4.11.1` @@ -542,7 +542,7 @@ A big thanks to the 21 contributors who made this release possible. ### Core -- [TrapFocus] Make an unstable version public (#21201) @dmtrKovalenko +- [FocusTrap] Make an unstable version public (#21201) @dmtrKovalenko - [test] Track size of `@material-ui/utils` (#21240) @eps1lon - [core] Batch small changes (#21156) @oliviertassinari - [core] Batch small changes (#21249) @oliviertassinari @@ -729,7 +729,7 @@ Here are some highlights โœจ: - [Tabs] Improve customizability of the scroll buttons (#20783) @netochaves - [TextField] Fix caret color in autofill dark theme (#20857) @CarsonF - [Tooltip] Fix disableTouchListener behavior (#20807) @weslenng -- [unstable_TrapFocus] Guard against dropped memo cache (#20848) @eps1lon +- [FocusTrap] Guard against dropped memo cache (#20848) @eps1lon ### `@material-ui/styles@v4.9.13` @@ -1293,7 +1293,7 @@ Here are some highlights โœจ: - [Autocomplete] Fix list of countries (#19862) @FottyM - [TreeView] Fix conditional nodes support (#19849) @joshwooding -- [Treeview] Add node selection support (#18357) @joshwooding +- [TreeView] Add node selection support (#18357) @joshwooding ### Docs @@ -3443,7 +3443,7 @@ Here are some highlights โœจ: - [Portal] Synchronously call onRendered (#15943) @Arlevoy - [Radio] Fix dot misalignment in IE11 (#15952) @rupert-ong - [theme] Return default value for spacing when no args provided (#15891) @mbrookes -- [TrapFocus] Fix error restoring focus when activeElement is null (#15967) @ryancogswell +- [FocusTrap] Fix error restoring focus when activeElement is null (#15967) @ryancogswell - [core] Export useMediaQuery & useScrollTrigger in index.js (#15958) @adeelibr - [core] Migrate extend ButtonBaseProps typings (#15869) @joshwooding @@ -3963,7 +3963,7 @@ You will learn more about v4 in the final release blog post and our plans for th - [core] Use terser for minification in umd bundle (#15491) @eps1lon - [test] Conform components forward ref to root component (#15425) @eps1lon - [test] Fix a flaky test (#15445) @oliviertassinari -- [test] Keep track of the bundle size of TrapFocus (#15453) @oliviertassinari +- [test] Keep track of the bundle size of FocusTrap (#15453) @oliviertassinari ## 4.0.0-alpha.8 @@ -5540,7 +5540,7 @@ you to add them up quickly in your head without having to worry about decimals. - [docs] Fix search suggestions on dark mode (#13874) @rfbotto - [docs] Add accessibility section to selection-controls with demo (#13896) @wyseguyonline -- [docs] Add support for multiple demo variants e.g JS or Hooks (#13873) @adeelibr +- [docs] Add support for multiple demo variants e.g. JS or Hooks (#13873) @adeelibr - [docs] Remove the withRoot HOC (#13909) @oliviertassinari - [docs] Add material-ui-pickers in pickers page (#13697) @dmtrKovalenko - [docs] Continue #13806 and port back some fix from @system (#13917) @oliviertassinari @@ -5571,7 +5571,7 @@ Here are some highlights โœจ: - [Tooltip] Suppress warning if button is disabled and title is empty (#13785) @rfbotto - [Dialog] Warn if className in PaperProps is set (#13797) @eps1lon - [TextField] Fix textfield label position when empty (#13791) @Studio384 -- [Popper] Save 7 KB gzipped (for people only using it) (#13804) @oliviertassinari +- [Popper] Save 7 kB gzipped (for people only using it) (#13804) @oliviertassinari - [Modal] Handle modal mount interruption (#13778) @amensouissi - [Select] Make value prop required in TypeScript (#13810) @t49tran - [Popover] Fix onEntering event propagation (#13821) @ekoeditaa @@ -5788,7 +5788,7 @@ This new package is a significant step forward. Some of the key features: - Supports 4 different APIs: hooks, styled-components, higher-order components and render props. - Allow accessing the component's props from within the style object. - Replace the usage of the old React APIs with the new ones. -- 15.0 KB gzipped. +- 15.0 kB gzipped. Here is an example: https://codesandbox.io/s/vjzn5z4k77. @@ -9898,7 +9898,7 @@ Here are some highlights โœจ: - New InputAdornment component (#8504). - New [Frequently asked questions](https://github.com/mui/material-ui/blob/4df547d56448cedf70977d6e2463b38eaf64d1c7/docs/src/pages/getting-started/frequently-asked-questions.md) documentation section -- We have saved 1 KB gzip by removing our internal react-transition-group fork (#8785). +- We have saved 1 kB gzip by removing our internal react-transition-group fork (#8785). - We have made one step further in order to upgrade all our development dependencies to react@16 (#8804). ### Breaking change diff --git a/README.md b/README.md index db9cb91f303e9a..2fea4bc287bde6 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,22 @@

- MUI logo + MUI Core logo

MUI Core

-**MUI Core** contains foundational React UI component libraries for shipping new features faster. +**MUI Core** contains foundational React UI component libraries for shipping new features faster: -- [_Material UI_](https://mui.com/material-ui/getting-started/) is a comprehensive library of components that features our implementation of Google's [Material Design](https://m2.material.io/design/introduction/) system. +- [Material UI](https://mui.com/material-ui/) is a comprehensive library of components that features our implementation of Google's [Material Design](https://m2.material.io/design/introduction/) system. -- [_Joy UI_](https://mui.com/joy-ui/getting-started/) is a beautifully designed library of React UI components. +- [Joy UI](https://mui.com/joy-ui/getting-started/) is a library of beautifully designed React UI components built to spark joy. -- [_Base UI_](https://mui.com/base-ui/getting-started/) is our library of "unstyled" components and low-level hooks. With Base, you gain complete control over your app's CSS and accessibility features. +- [Base UI](https://mui.com/base-ui/) is a library of unstyled React UI components and hooks. With Base UI, you gain complete control over your app's CSS and accessibility features. -- [_MUI System_](https://mui.com/system/getting-started/) is a collection of CSS utilities to help you rapidly lay out custom designs. +- [MUI System](https://mui.com/system/getting-started/) is a collection of CSS utilities to help you rapidly lay out custom designs.
-**[Stable channel v5](https://mui.com/)** - [![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/mui/material-ui/blob/HEAD/LICENSE) [![npm latest package](https://img.shields.io/npm/v/@mui/material/latest.svg)](https://www.npmjs.com/package/@mui/material) [![npm next package](https://img.shields.io/npm/v/@mui/material/next.svg)](https://www.npmjs.com/package/@mui/material) @@ -33,23 +31,11 @@
-## Installation +## Documentation ### Material UI -Material UI is available as an [npm package](https://www.npmjs.com/package/@mui/material). - -**npm:** - -```bash -npm install @mui/material @emotion/react @emotion/styled -``` - -**yarn:** - -```bash -yarn add @mui/material @emotion/react @emotion/styled -``` +Visit [https://mui.com/material-ui/](https://mui.com/material-ui/) to view the full documentation.
Older versions @@ -63,56 +49,23 @@ yarn add @mui/material @emotion/react @emotion/styled **Note:** `@next` only points to pre-releases. Use `@latest` for the latest stable release. -### Base UI - -Base UI is available as an [npm package](https://www.npmjs.com/package/@mui/base). +### Joy UI -**npm:** +Visit [https://mui.com/joy-ui/getting-started/](https://mui.com/joy-ui/getting-started/) to view the full documentation. -```bash -npm install @mui/base -``` +**Note**: Joy UI is still in beta. +We are adding new components regularly and you're welcome to contribute! -**yarn:** +### Base UI -```bash -yarn add @mui/base -``` +Visit [https://mui.com/base-ui/](https://mui.com/base-ui/) to view the full documentation. **Note**: Base UI is still in beta. We are adding new components regularly and you're welcome to contribute! ### MUI System -MUI System is available as an [npm package](https://www.npmjs.com/package/@mui/system). - -**npm:** - -```bash -npm install @mui/system @emotion/react @emotion/styled -``` - -**yarn:** - -```bash -yarn add @mui/system @emotion/react @emotion/styled -``` - -Or if you want to use `styled-components` as a styling engine: - -**npm:** - -```bash -npm install @mui/material @mui/styled-engine-sc styled-components -``` - -**yarn:** - -```bash -yarn add @mui/material @mui/styled-engine-sc styled-components -``` - -Visit our [`styled-engine` guide](https://mui.com/material-ui/guides/styled-engine/) for more information about how to configure `styled-components` as the style engine. +Visit [https://mui.com/system/](https://mui.com/system/) to view the full documentation. ## Sponsors @@ -146,42 +99,15 @@ Gold Sponsors are those who have pledged \$500/month or more to MUI. See the full list of [our backers](https://mui.com/material-ui/discover-more/backers/). -## Getting started with Material UI - -Here is an example of a basic app using Material UI's `Button` component: - -```jsx -import * as React from 'react'; -import Button from '@mui/material/Button'; - -function App() { - return ; -} -``` - -In the interactive demo below, try changing the code and see how it affects the output. -(Hint: change `variant` to `"outlined"` and `color` to `"secondary"`. -For more options, see the [`Button` component page](https://mui.com/material-ui/react-button/) in our docs.) - -[![Edit Button](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/material-ui-u9sy1h) - ## Questions -For how-to questions that don't involve making changes to the code base, please use [Stack Overflow](https://stackoverflow.com/questions/tagged/material-ui) instead of GitHub issues. -Use the "mui" tag on Stack Overflow to make it easier for the community to find your question. +For how-to questions that don't involve making changes to the code base, please use [Stackย Overflow](https://stackoverflow.com/questions/) instead of GitHub issues. ## Examples -Our documentation features [a collection of example projects using Material UI](https://mui.com/material-ui/getting-started/example-projects/). - -## Documentation - -- [Material UI](https://mui.com/material-ui/getting-started/) -- [Joy UI](https://mui.com/joy-ui/getting-started/) -- [Base UI](https://mui.com/base-ui/getting-started/) -- [MUI System](https://mui.com/system/getting-started/) +Our documentation features [a collection of example projects](https://github.com/mui/material-ui/tree/master/examples). -## Premium themes +## Premium templates You can find complete templates and themes in the [MUI Store](https://mui.com/store/?utm_source=docs&utm_medium=referral&utm_campaign=readme-store). @@ -213,30 +139,42 @@ For details of supported versions and contact details for reporting security iss These great services sponsor MUI's core infrastructure: +
- - - GitHub logo + + + GitHub logo [GitHub](https://github.com/) lets us host the Git repository and coordinate contributions. +
+ +
- - - Netlify logo + + + Netlify logo [Netlify](https://www.netlify.com/) lets us distribute the documentation. +
+ +
- - - BrowserStack logo + + + BrowserStack logo [BrowserStack](https://www.browserstack.com/) lets us test in real browsers. -CodeCov logo +
+ +
+CodeCov logo [CodeCov](https://about.codecov.io/) lets us monitor test coverage. + +
diff --git a/apps/.gitignore b/apps/.gitignore new file mode 100644 index 00000000000000..8ee01d321b721a --- /dev/null +++ b/apps/.gitignore @@ -0,0 +1 @@ +yarn.lock 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 +

+
+ + By{' '} + Vercel Logo + +
+
+ +
+ Next.js Logo +
+ + + +

+ 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 ( + + + + + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ ({ + // 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-vite-app/.babelrc b/apps/zero-runtime-vite-app/.babelrc new file mode 100644 index 00000000000000..79ba76aff2dd2e --- /dev/null +++ b/apps/zero-runtime-vite-app/.babelrc @@ -0,0 +1,7 @@ +{ + "presets": [ + "@babel/preset-react", + ["@babel/preset-env", { "targets": { "node": "current" } }], + "@babel/preset-typescript" + ] +} diff --git a/apps/zero-runtime-vite-app/.eslintrc b/apps/zero-runtime-vite-app/.eslintrc new file mode 100644 index 00000000000000..55f121d152d4f5 --- /dev/null +++ b/apps/zero-runtime-vite-app/.eslintrc @@ -0,0 +1,5 @@ +{ + "env": { + "jest": true + } +} diff --git a/apps/zero-runtime-vite-app/README.md b/apps/zero-runtime-vite-app/README.md index 225a4c1bd28553..94ed7559ac40ea 100644 --- a/apps/zero-runtime-vite-app/README.md +++ b/apps/zero-runtime-vite-app/README.md @@ -9,17 +9,25 @@ 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:zero +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`. + +### Testing + +This demo app has been configured to run tests using both vitest or jest. + +1. Vitest - You can run `yarn test` to run the tests using vitest +2. Jest - You can run `yarn jest` to run the tests using jest diff --git a/apps/zero-runtime-vite-app/jest.config.js b/apps/zero-runtime-vite-app/jest.config.js new file mode 100644 index 00000000000000..cd8709759d00d6 --- /dev/null +++ b/apps/zero-runtime-vite-app/jest.config.js @@ -0,0 +1,29 @@ +// Mandatory to map so that the imports translate to cjs files +// eslint-disable-next-line import/no-unresolved +const { createTheme } = require('@mui/material/node/styles'); + +const theme = createTheme(); +// @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('jest').Config} + */ +module.exports = { + transform: { + '\\.[jt]sx?': ['@mui/zero-jest', { theme }], + }, + // Mandatory to map so that the imports translate to cjs files + moduleNameMapper: { + '^@mui/material(.*)$': '@mui/material/node/$1', + }, + verbose: true, + testEnvironment: 'jsdom', +}; diff --git a/apps/zero-runtime-vite-app/package.json b/apps/zero-runtime-vite-app/package.json index d9d37527f78bde..1e91937003b87d 100644 --- a/apps/zero-runtime-vite-app/package.json +++ b/apps/zero-runtime-vite-app/package.json @@ -1,11 +1,11 @@ { - "name": "zero-runtime-vite-app", + "name": "@app/zero-runtime-vite-app", "version": "0.0.0", "private": true, - "type": "module", "scripts": { "dev": "vite", - "build": "vite build" + "build": "vite build", + "test": "vitest" }, "dependencies": { "@mui/zero-runtime": "file:../../packages/zero-runtime/build", @@ -13,13 +13,23 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@babel/core": "^7.22.10", - "@linaria/vite": "^4.5.4", - "@mui/utils": "^5.14.6", - "@mui/material": "^5.14.6", - "@mui/zero-tag-processor": "file:../../packages/zero-tag-processor/build", - "@types/babel__core": "^7.20.1", + "@babel/preset-env": "^7.22.20", + "@babel/preset-react": "^7.22.15", + "@babel/preset-typescript": "^7.23.0", + "@mui/material": "file:../../packages/mui-material/build", + "@mui/utils": "file:../../packages/mui-utils/build", + "@mui/zero-jest": "file:../../packages/zero-jest/build", + "@mui/zero-vite-plugin": "file:../../packages/zero-vite-plugin/build", + "@testing-library/jest-dom": "^6.1.3", + "@testing-library/react": "^14.0.0", "@vitejs/plugin-react": "^4.0.4", - "vite": "4.4.9" + "jest": "^29.7.0", + "jest-environment-jsdom": "^29.7.0", + "jsdom": "^22.1.0", + "vite": "4.4.9", + "vitest": "^0.34.4" + }, + "resolutions": { + "@mui/zero-tag-processor": "file:../../packages/zero-tag-processor/build" } } diff --git a/apps/zero-runtime-vite-app/src/Slider/ZeroSlider.test.jsx b/apps/zero-runtime-vite-app/src/Slider/ZeroSlider.test.jsx new file mode 100644 index 00000000000000..ee5cfef2cd2b82 --- /dev/null +++ b/apps/zero-runtime-vite-app/src/Slider/ZeroSlider.test.jsx @@ -0,0 +1,23 @@ +/* eslint-disable react/jsx-filename-extension */ +import * as React from 'react'; +import { render } from '@testing-library/react'; +import Slider from './ZeroSlider'; + +describe('Slider', () => { + it('should render', () => { + const { rerender, container } = render(); + + const root = container.getElementsByClassName('MuiSlider-root')[0]; + expect(root.classList.contains('MuiSlider-colorPrimary')).toBeTruthy(); + rerender(); + expect(root.classList.contains('MuiSlider-colorSecondary')).toBeTruthy(); + + let rootComputedStyles = window.getComputedStyle(root); + expect(rootComputedStyles.borderRadius).toEqual('12px'); + expect(rootComputedStyles.cursor).toEqual('pointer'); + + rerender(); + rootComputedStyles = window.getComputedStyle(root); + expect(rootComputedStyles.cursor).toEqual('default'); + }); +}); diff --git a/apps/zero-runtime-vite-app/tsconfig.json b/apps/zero-runtime-vite-app/tsconfig.json index 1812bbe9cef999..b7f5233c53524d 100644 --- a/apps/zero-runtime-vite-app/tsconfig.json +++ b/apps/zero-runtime-vite-app/tsconfig.json @@ -11,7 +11,7 @@ "resolveJsonModule": true, "skipLibCheck": true, "esModuleInterop": true, - "types": ["react"], + "types": ["react", "vitest/globals"], "incremental": true }, "exclude": ["node_modules"], diff --git a/apps/zero-runtime-vite-app/vite.config.ts b/apps/zero-runtime-vite-app/vite.config.ts index b6b96230ddb8ea..072e205958f08d 100644 --- a/apps/zero-runtime-vite-app/vite.config.ts +++ b/apps/zero-runtime-vite-app/vite.config.ts @@ -1,9 +1,9 @@ -import { defineConfig, splitVendorChunkPlugin, type PluginOption } from 'vite'; +/// +import { join, dirname, basename } from 'node:path'; +import { defineConfig, splitVendorChunkPlugin } from 'vite'; import reactPlugin from '@vitejs/plugin-react'; -import linaria from '@linaria/vite'; +import { zeroVitePlugin } from '@mui/zero-vite-plugin'; import { createTheme } from '@mui/material/styles'; -import { generateCss } from '@mui/zero-tag-processor/generateCss'; -import { transformAsync } from '@babel/core'; const theme = createTheme(); // @TODO - Make this part of the main package @@ -16,75 +16,31 @@ theme.applyDarkStyles = function applyDarkStyles(obj) { }; }; -const varPrefix = 'app'; - -function muiZeroVitePlugin(): PluginOption { - function injectMUITokensPlugin(): PluginOption { - return { - name: 'vite-mui-theme-injection-plugin', - load(id) { - if (id.endsWith('@mui/zero-runtime/styles.css')) { - return { - code: generateCss( - { - cssVariablesPrefix: varPrefix, - themeArgs: { - theme, - }, - }, - {}, - ), - map: null, - }; - } - return null; - }, - }; - } - const extensions = ['.ts', '.tsx', '.js', '.jsx', '.mts', '.mjs', '.cts', '.cjs', '.mtsx']; - - function intermediateBabelPlugin(): PluginOption { - return { - name: 'vite-intermediate-plugin', - async transform(code, id) { - const [filename] = id.split('?'); - if ( - !filename.includes('zero-runtime-vite-app/src') || - !extensions.some((ext) => filename.endsWith(ext)) - ) { - return null; - } - const result = await transformAsync(code, { - filename, - babelrc: false, - configFile: false, - plugins: [['@mui/zero-tag-processor/pre-linaria-plugin']], - }); - return { - code: result?.code ?? code, - map: result?.map, - }; - }, - }; - } - - // @TODO - Expect most of these from users of the plugin. - const linariaPlugin = linaria({ - displayName: false, - sourceMap: true, - // @ts-ignore - cssVariablesPrefix: varPrefix, - themeArgs: { +export default defineConfig({ + plugins: [ + zeroVitePlugin({ + cssVariablesPrefix: 'app', theme, + }), + reactPlugin(), + splitVendorChunkPlugin(), + ], + test: { + globals: true, + watch: false, + environment: 'jsdom', + resolveSnapshotPath(testPath, extension) { + return join( + join(dirname(testPath), '__vite_snapshots__'), + `${basename(testPath)}${extension}`, + ); }, - babelOptions: { - plugins: ['@babel/plugin-syntax-jsx'], + passWithNoTests: true, + css: { + // to render the final css in the output html to test + // computed styles. Users will need to add this if they + // want to test computed styles. + include: [/.+/], }, - }); - - return [injectMUITokensPlugin(), intermediateBabelPlugin(), linariaPlugin]; -} - -export default defineConfig({ - plugins: [muiZeroVitePlugin(), reactPlugin(), splitVendorChunkPlugin()], + }, }); diff --git a/apps/zero-runtime-vite-app/yarn.lock b/apps/zero-runtime-vite-app/yarn.lock deleted file mode 100644 index a6fa2d579e1734..00000000000000 --- a/apps/zero-runtime-vite-app/yarn.lock +++ /dev/null @@ -1,2247 +0,0 @@ -# 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.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== - dependencies: - "@babel/highlight" "^7.22.10" - chalk "^2.4.2" - -"@babel/compat-data@^7.22.5", "@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== - 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" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - 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== - dependencies: - "@babel/types" "^7.22.10" - "@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.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== - dependencies: - "@babel/types" "^7.22.10" - -"@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== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-validator-option" "^7.22.5" - 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== - 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-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.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== - 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.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== - dependencies: - "@babel/types" "^7.22.5" - -"@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== - dependencies: - "@babel/types" "^7.22.5" - -"@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== - dependencies: - "@babel/helper-environment-visitor" "^7.22.5" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.5" - -"@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.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== - 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-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.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-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-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== - dependencies: - "@babel/helper-function-name" "^7.22.5" - "@babel/template" "^7.22.5" - "@babel/types" "^7.22.10" - -"@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== - dependencies: - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.10" - "@babel/types" "^7.22.10" - -"@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== - dependencies: - "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.20.7", "@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/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== - 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== - 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-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-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-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.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== - 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.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== - 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.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== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@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== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.6" - "@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-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.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== - 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.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== - 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.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== - 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== - 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.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== - 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.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== - 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.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== - dependencies: - "@babel/helper-module-transforms" "^7.22.5" - "@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== - dependencies: - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-module-transforms" "^7.22.5" - "@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.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== - 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== - 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== - dependencies: - "@babel/compat-data" "^7.22.5" - "@babel/helper-compilation-targets" "^7.22.5" - "@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-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.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== - 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== - 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== - 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.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== - dependencies: - "@babel/helper-annotate-as-pure" "^7.22.5" - "@babel/helper-create-class-features-plugin" "^7.22.5" - "@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-react-jsx-self@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.22.5.tgz#ca2fdc11bc20d4d46de01137318b13d04e481d8e" - integrity sha512-nTh2ogNUtxbiSbxaT4Ds6aXnXEipHweN9YRgOX/oNXdf0cCrGn/+2LozFa3lnPV5D90MkjhgckCPBrsoSc1a7g== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-transform-react-jsx-source@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.22.5.tgz#49af1615bfdf6ed9d3e9e43e425e0b2b65d15b6c" - integrity sha512-yIiRO6yobeEIaI0RTbIr8iAK9FcBHLtZq0S89ZPjDLQXBA4xvghaKqI0etp/tF3htTM0sazJKKLz9oEiGRtu7w== - 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.10" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46" - integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA== - dependencies: - "@babel/helper-module-imports" "^7.22.5" - "@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-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.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f" - integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A== - dependencies: - "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.10" - "@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/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.10" - "@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-class-properties" "^7.22.5" - "@babel/plugin-transform-class-static-block" "^7.22.5" - "@babel/plugin-transform-classes" "^7.22.6" - "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.10" - "@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-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-function-name" "^7.22.5" - "@babel/plugin-transform-json-strings" "^7.22.5" - "@babel/plugin-transform-literals" "^7.22.5" - "@babel/plugin-transform-logical-assignment-operators" "^7.22.5" - "@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-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-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-private-methods" "^7.22.5" - "@babel/plugin-transform-private-property-in-object" "^7.22.5" - "@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.10" - 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/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.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== - 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== - dependencies: - regenerator-runtime "^0.14.0" - -"@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== - 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/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" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@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== - dependencies: - "@babel/helper-string-parser" "^7.22.5" - "@babel/helper-validator-identifier" "^7.22.5" - 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/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" - 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== - -"@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== - -"@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.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== - 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== - dependencies: - "@floating-ui/dom" "^1.3.0" - -"@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== - -"@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" - -"@linaria/vite@^4.5.4": - version "4.5.4" - resolved "https://registry.yarnpkg.com/@linaria/vite/-/vite-4.5.4.tgz#bbccbd3de67715a8b6759a578c086c1ab31ec8d2" - integrity sha512-YhaLgTAfE7xzRLJwxWjo0Ak/YOJ+kPWuOm3lrkziclsvf1bbTUHlecmvth+2KuJG8HEPReekuyDErnwIQoD6sA== - dependencies: - "@linaria/babel-preset" "^4.5.4" - "@linaria/logger" "^4.5.0" - "@linaria/utils" "^4.5.3" - "@rollup/pluginutils" "^4.1.0" - -"@mui/base@5.0.0-beta.12": - version "5.0.0-beta.12" - resolved "https://registry.yarnpkg.com/@mui/base/-/base-5.0.0-beta.12.tgz#131882930bdbe236dd835867bf6222a993b8d219" - integrity sha512-tZjjXNAyUpwSDT1uRliZMhRQkWYzELJ8Qi61EuOMRpi36HIwnK2T7Nr4RI423Sv8G2EEikDAZj7je33eNd73NQ== - dependencies: - "@babel/runtime" "^7.22.10" - "@emotion/is-prop-valid" "^1.2.1" - "@floating-ui/react-dom" "^2.0.1" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.6" - "@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.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/core-downloads-tracker/-/core-downloads-tracker-5.14.6.tgz#8cbc3441a630e1810a945e408e5025bdc99ea2f7" - integrity sha512-QZEU3pyGWLuaHbxvOlShol7U1FVgzWBR0OH9H8D7L8w4/vto5N5jJVvlqFQS3T0zbR6YGHxFaiL6Ky87jQg7aw== - -"@mui/material@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/material/-/material-5.14.6.tgz#12cbb716a7f70859764be310bb9b2f5ffc0da818" - integrity sha512-C3UgGrmtvcGkQkm0ONBU7bTdapTjQc2Se3b2354xMmU7lgSgW7VM6EP9wIH5XqqoJ60m9l/s9kbTWX0Y+EaWvA== - dependencies: - "@babel/runtime" "^7.22.10" - "@mui/base" "5.0.0-beta.12" - "@mui/core-downloads-tracker" "^5.14.6" - "@mui/system" "^5.14.6" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.6" - "@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.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/private-theming/-/private-theming-5.14.6.tgz#bd80c91bea94b6e54a74764f8d3fb0d4ec418acb" - integrity sha512-3VBLFGizBXfofyk33bwRg6t9L648aKnLmOKPfY1wFuiXq3AEYwobK65iDci/tHKxm/VKbZ6A7PFjLejvB3EvRQ== - dependencies: - "@babel/runtime" "^7.22.10" - "@mui/utils" "^5.14.6" - prop-types "^15.8.1" - -"@mui/styled-engine@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/styled-engine/-/styled-engine-5.14.6.tgz#a4034ab51981ecf673275b2c1d1da71deb94317f" - integrity sha512-I6zeu/OP1Hk4NsX1Oj85TiYl1dER0JMsLJVn76J1Ihl24A5EbiZQKJp3Mn+ufA79ypkdAvM9aQCAQyiVBFcUHg== - dependencies: - "@babel/runtime" "^7.22.10" - "@emotion/cache" "^11.11.0" - csstype "^3.1.2" - prop-types "^15.8.1" - -"@mui/system@^5.14.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/system/-/system-5.14.6.tgz#621eae10c4dde0a2ab566ac09c26f7becfb7ba80" - integrity sha512-/n0ae1MegWjiV1BpRU8jgg4E0zBjeB2VYsT/68ag/xaDuq3/TaDKJeT9REIvyBvwlG3CI3S2O+tRELktxCD1kg== - dependencies: - "@babel/runtime" "^7.22.10" - "@mui/private-theming" "^5.14.6" - "@mui/styled-engine" "^5.14.6" - "@mui/types" "^7.2.4" - "@mui/utils" "^5.14.6" - 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.6": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@mui/utils/-/utils-5.14.6.tgz#614338f781faf21535fbf1094b6691aaee1ff472" - integrity sha512-AznpqLu6hrFnpHgcvsSSMCG+cDbkcCYfo+daUwBVReNYv4l+NQ8+wvBAF4aUMi155N7xWbbgh0cyKs6Wdsm3aA== - dependencies: - "@babel/runtime" "^7.22.10" - "@types/prop-types" "^15.7.5" - "@types/react-is" "^18.2.1" - prop-types "^15.8.1" - react-is "^18.2.0" - -"@mui/zero-runtime@file:../../packages/zero-runtime/build": - version "0.0.1-alpha.0" - dependencies: - clsx "^2.0.0" - -"@mui/zero-tag-processor@file:../../packages/zero-tag-processor/build": - version "0.0.1-alpha.0" - dependencies: - "@babel/core" "^7.22.10" - "@babel/helper-module-imports" "^7.22.5" - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/parser" "^7.22.10" - "@emotion/css" "^11.11.2" - "@linaria/tags" "^4.5.4" - "@linaria/utils" "^4.5.3" - "@mui/system" "^5.14.6" - lodash.get "^4.4.2" - -"@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== - -"@rollup/pluginutils@^4.1.0": - version "4.2.1" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@types/babel__core@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.1.tgz#916ecea274b0c776fec721e333e55762d3a9614b" - integrity sha512-aACu/U/omhdk15O4Nfb+fHgH/z3QsfQzpnvRZhYhThms83ZnAOZz7zZAWO7mn2yyNQaA4xTO8GLK3uqFU4bYYw== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.4.tgz#1f20ce4c5b1990b37900b63f050182d28c2439b7" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.1" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.20.1.tgz#dd6f1d2411ae677dcb2db008c962598be31d6acf" - integrity sha512-MitHFXnhtgwsGZWtT68URpOvLN4EREih1u3QtQiN4VdAxWKRVvGCSvw/Qth0M0Qq3pJpnGOu5JaM/ydK7OGbqg== - dependencies: - "@babel/types" "^7.20.7" - -"@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@*", "@types/prop-types@^15.7.5": - 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" - integrity sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew== - dependencies: - "@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== - 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== - -"@vitejs/plugin-react@^4.0.4": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.0.4.tgz#31c3f779dc534e045c4b134e7cf7b150af0a7646" - integrity sha512-7wU921ABnNYkETiMaZy7XqpueMnpu5VxvVps13MjmCo+utBdD79sZzrApHawHtVX66cCJQQTXFcjH0y9dSUK8g== - dependencies: - "@babel/core" "^7.22.9" - "@babel/plugin-transform-react-jsx-self" "^7.22.5" - "@babel/plugin-transform-react-jsx-source" "^7.22.5" - react-refresh "^0.14.0" - -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.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" - -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.30001517: - version "1.0.30001519" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" - integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg== - -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" - -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.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90" - integrity sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw== - dependencies: - browserslist "^4.21.9" - -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.2.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.2.0.tgz#f7d17c56a590856cd1e7cee98734dca272b0d8fd" - integrity sha512-3rTMnFJA1tCOPwRxtgF4wd7Ab2qvDbL8jX+3smjIbS4HlZBagTlpERbdN7iAbWlrfxE3M8c27kTwTawQ7st+OQ== - dependencies: - import-fresh "^3.2.1" - js-yaml "^4.1.0" - parse-json "^5.0.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.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== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -esbuild@^0.18.10: - version "0.18.19" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.19.tgz#c763ccfd50b7b1322d13232cd91f2bd36ffde56b" - integrity sha512-ra3CaIKCzJp5bU5BDfrCc0FRqKj71fQi+gbld0aj6lN0ifuX2fWJYPgLVLGwPfA+ruKna+OWwOvf/yHj6n+i0g== - 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" - -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== - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -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" - -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== - -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== - -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== - -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: - 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.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - -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.6: - version "3.3.6" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" - integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== - -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: - 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== - -picomatch@^2.2.2: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - 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== - dependencies: - nanoid "^3.3.6" - 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" - -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-refresh@^0.14.0: - version "0.14.0" - resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.0.tgz#4e02825378a5f227079554d4284889354e5f553e" - integrity sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ== - -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: - 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" - -rollup@^3.27.1: - version "3.27.2" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.27.2.tgz#59adc973504408289be89e5978e938ce852c9520" - integrity sha512-YGwmHf7h2oUHkVBT248x0yt6vZkYQ3/rvE5iQuVBh3WO8GcJ6BNeOkpoX1yMHIiBm18EMLjBPIoUDkhgnyxGOQ== - optionalDependencies: - fsevents "~2.3.2" - -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== - -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: - version "2.6.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" - integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== - -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== - -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" - -vite@4.4.9: - version "4.4.9" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d" - integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA== - dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" - optionalDependencies: - fsevents "~2.3.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== diff --git a/benchmark/browser/index.js b/benchmark/browser/index.js index 225106d929a6af..50f9b600fd632a 100644 --- a/benchmark/browser/index.js +++ b/benchmark/browser/index.js @@ -1,5 +1,5 @@ import * as React from 'react'; -import * as ReactDOM from 'react-dom'; +import * as ReactDOMClient from 'react-dom/client'; import PropTypes from 'prop-types'; import { logReactMetrics } from './utils'; @@ -7,6 +7,7 @@ import { logReactMetrics } from './utils'; const requirePerfScenarios = require.context('./scenarios', true, /(js|ts|tsx)$/); const rootEl = document.getElementById('root'); +const root = ReactDOMClient.createRoot(rootEl); const scenarioSuitePath = window.location.search.replace('?', ''); @@ -35,11 +36,10 @@ Measure.propTypes = { children: PropTypes.node, }; -ReactDOM.render( +root.render( , - rootEl, ); diff --git a/benchmark/package.json b/benchmark/package.json index 8e9155fbd62995..ddac867b860513 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -11,16 +11,21 @@ "server:system": "cd ../ && cross-env NODE_ENV=production BABEL_ENV=benchmark babel-node benchmark/server/scenarios/system.js --inspect=0.0.0.0:9229 --extensions \".tsx,.ts,.js\"" }, "dependencies": { - "@chakra-ui/system": "^2.6.0", + "@chakra-ui/system": "^2.6.1", "@emotion/react": "^11.11.1", + "@emotion/server": "^11.11.0", "@emotion/styled": "^11.11.0", - "@mdx-js/react": "^2.3.0", - "@mui/material": "^5.14.7", - "@mui/styles": "^5.14.7", - "@mui/system": "^5.14.7", + "@mui/material": "^5.14.11", + "@mui/styles": "^5.14.11", + "@mui/system": "^5.14.11", "@styled-system/css": "^5.1.5", "benchmark": "^2.1.4", + "docs": "^5.0.0", + "express": "^4.18.2", + "fs-extra": "^11.1.1", + "jss": "^10.10.0", "playwright": "^1.37.1", + "prop-types": "^15.8.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-is": "^18.2.0", @@ -29,8 +34,8 @@ "redux": "^4.2.1", "serve-handler": "^6.1.5", "styled-components": "^5.3.11", + "styled-system": "^5.1.5", "theme-ui": "^0.16.1", - "webpack": "^5.88.2", - "webpack-cli": "^4.10.0" + "webpack": "^5.88.2" } } diff --git a/crowdin.yml b/crowdin.yml index ba7bae59fc4623..674e004717e187 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -10,7 +10,7 @@ files: - /docs/src/pages/discover-more/backers/* - /docs/src/pages/discover-more/roadmap/* - /docs/src/pages/company/**/* - - /docs/src/pages/careers/**/* + - /docs/pages/careers/**/* translation: /%original_path%/%file_name%-%two_letters_code%.%file_extension% - source: /docs/data/**/*.md ignore: diff --git a/docs/.link-check-errors.txt b/docs/.link-check-errors.txt index fa2fd09db8da38..56651fd0545f7e 100644 --- a/docs/.link-check-errors.txt +++ b/docs/.link-check-errors.txt @@ -1,5 +1,4 @@ Broken links found by `yarn docs:link-check` that exist: - https://mui.com/blog/material-ui-v4-is-out/#premium-themes-store-โœจ -- https://mui.com/joy-ui/integrations/material-ui/ -- https://mui.com/size-snapshot +- https://mui.com/size-snapshot/ diff --git a/docs/data/about/teamMembers.json b/docs/data/about/teamMembers.json index fcd1526e63c50c..c88fe841bd3db4 100644 --- a/docs/data/about/teamMembers.json +++ b/docs/data/about/teamMembers.json @@ -140,14 +140,6 @@ "about": "Passionate about videogames and football", "github": "apedroferreira" }, - { - "name": "Gerda Mostonaite", - "title": "Senior Designer - X", - "location": "New York, USA", - "locationCountry": "us", - "about": "๐ŸŽจ Art & design, traveling, and asking questions", - "github": "gerdadesign" - }, { "name": "Greg Abaoag", "title": "Executive Assistant", @@ -204,15 +196,6 @@ "about": "Open-source tinkerer", "github": "romgrk" }, - { - "name": "Rich Bustos", - "title": "Developer Advocate", - "location": "Daly City, CA, USA", - "locationCountry": "us", - "about": "I enjoy collecting sports cards and practicing jiu-jitsu", - "github": "richbustos", - "twitter": "bustos_rich" - }, { "name": "Victor Zanivan", "title": "Senior Designer - Core", @@ -262,5 +245,14 @@ "locationCountry": "ro", "about": "Art enthusiast ๐ŸŽจ outdoor person ๐ŸŒณ animal lover ๐Ÿพ", "github": "noraleonte" + }, + { + "name": "Michel Engelen", + "title": "React Community Engineer - X", + "location": "Zeven, Germany", + "locationCountry": "de", + "about": "Geeking out on Badminton ๐Ÿธ, everything Japan ๐Ÿ‡ฏ๐Ÿ‡ต and Pizza ๐Ÿ•", + "twitter": "jsNerdic", + "github": "michelengelen" } ] diff --git a/docs/data/base/all-components/all-components.md b/docs/data/base/all-components/all-components.md index 6196f4664a2a81..d8a892d14450f2 100644 --- a/docs/data/base/all-components/all-components.md +++ b/docs/data/base/all-components/all-components.md @@ -1,5 +1,5 @@ # Base UI components -

Every Base UI component available so far.

+

Every Base UI component available so far, sorted alphabetically.

{{"component": "modules/components/BaseUIComponents.js"}} diff --git a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js index 9aa53294a34be7..47593a14592705 100644 --- a/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js +++ b/docs/data/base/components/autocomplete/AutocompleteIntroduction/system/index.js @@ -48,7 +48,6 @@ const Autocomplete = React.forwardRef(function Autocomplete(props, ref) { > , diff --git a/docs/data/base/components/autocomplete/autocomplete.md b/docs/data/base/components/autocomplete/autocomplete.md index 8fb75b38c29966..d0a0cb5de11e64 100644 --- a/docs/data/base/components/autocomplete/autocomplete.md +++ b/docs/data/base/components/autocomplete/autocomplete.md @@ -35,8 +35,6 @@ To learn more about implementing a custom Autocomplete, you can explore the [`us ## Hook -### Usage - ```jsx import { useAutocomplete } from '@mui/base/useAutocomplete'; ``` @@ -104,7 +102,7 @@ Learn more about controlled and uncontrolled components in the [React documentat React Portals can be used to render the listbox outside of the DOM hierarchy, making it easier to allow it to "float" above adjacent elements. -Base UI provides a [``](/base-ui/react-popper/) component built around React's `createPortal()` for exactly this purpose, and additionally helps you manage keyboard focus as it moves in and out of the portal. +Base UI provides a [Popper](/base-ui/react-popper/) component built around React's `createPortal()` for exactly this purpose, and additionally helps you manage keyboard focus as it moves in and out of the portal. To render the listbox in Base UI's Popper, the `ref`s must be merged as follows: diff --git a/docs/data/base/components/badge/badge.md b/docs/data/base/components/badge/badge.md index 50e46e3fe349bc..71f557d58fd79c 100644 --- a/docs/data/base/components/badge/badge.md +++ b/docs/data/base/components/badge/badge.md @@ -25,32 +25,15 @@ The Badge component creates a badge that is applied to its child element. ## Component -### Usage - -After [installation](/base-ui/getting-started/quickstart/#installation), you can start building with this component using the following basic elements: - ```jsx import { Badge } from '@mui/base/Badge'; - -export default function MyApp() { - return {/* the element that the badge is attached to */}; -} ``` -### Basics - The Badge wraps around the UI element that it's attached to. -For instance, if the badge indicates the number of emails in an inbox, then the component will be structured like this: - -```jsx - - - -``` ### Anatomy -The Badge component is composed of a root `` that houses the element that the badge is attached to, followed by a `` slot to represent the badge itself: +The Badge component is composed of a root `` that houses the element that the Badge is attached to, followed by a `` slot to represent the Badge itself: ```html @@ -79,9 +62,10 @@ The following code snippet applies a CSS class called `my-badge` to the badge sl ``` -#### Usage with TypeScript +### Usage with TypeScript -In TypeScript, you can specify the custom component type used in the `slots.root` as a generic parameter of the unstyled component. This way, you can safely provide the custom root's props directly on the component: +In TypeScript, you can specify the custom component type used in the `slots.root` as a generic parameter of the unstyled component. +This way, you can safely provide the custom root's props directly on the component: ```tsx slots={{ root: CustomComponent }} customProp /> @@ -99,10 +83,10 @@ The same applies for props specific to custom primitive elements: import { useBadge } from '@mui/base/useBadge'; ``` -The `useBadge` hook lets you apply the functionality of a badge to a fully custom component. +The `useBadge` hook lets you apply the functionality of a Badge to a fully custom component. It returns props to be placed on the custom component, along with fields representing the component's internal state. -Hooks _do not_ support [slot props](#slot-props), but they do support [customization props](#customization). +Hooks _do not_ support [slot props](#custom-structure), but they do support [customization props](#customization). :::info Hooks give you the most room for customization, but require more work to implement. @@ -120,27 +104,27 @@ For the sake of simplicity, demos and code snippets primarily feature components ### Badge content -The `badgeContent` prop defines the content that's displayed inside the badge. -When this content is a number, there are additional props you can use for further customizationโ€”see the [Numerical badges section](#numerical-badges) below. +The `badgeContent` prop defines the content that's displayed inside the Badge. +When this content is a number, there are additional props you can use for further customizationโ€”see the [Numerical Badges section](#numerical-badges) below. -The following demo shows how to create and style a typical numerical badge that's attached to a generic box element: +The following demo shows how to create and style a typical numerical Badge that's attached to a generic box element: {{"demo": "UnstyledBadge", "defaultCodeOpen": false}} ### Badge visibility -You can control the visibility of a badge by using the `invisible` prop. -Setting a badge to `invisible` does not actually hide itโ€”instead, this prop adds the `BaseBadge-invisible` class to the badge, which you can target with styles to hide however you prefer: +You can control the visibility of a Badge by using the `invisible` prop. +Setting a Badge to `invisible` does not actually hide itโ€”instead, this prop adds the `BaseBadge-invisible` class to the Badge, which you can target with styles to hide however you prefer: {{"demo": "BadgeVisibility.js"}} -### Numerical badges +### Numerical Badges The following props are useful when `badgeContent` is a number. #### The showZero prop -By default, badges automatically hide when `badgeContent={0}`. +By default, Badges automatically hide when `badgeContent={0}`. You can override this behavior with the `showZero` prop: {{"demo": "ShowZeroBadge.js"}} @@ -154,7 +138,7 @@ The default is 99. ## Accessibility -Screen readers may not provide users with enough information about a badge's contents. +Screen readers may not provide users with enough information about a Badge's contents. To make your badge accessible, you must provide a full description with `aria-label`, as shown in the demo below: {{"demo": "AccessibleBadges.js"}} diff --git a/docs/data/base/components/button/UnstyledButtonCustom.js b/docs/data/base/components/button/UnstyledButtonCustom.js index f24ea77300da7e..4f4e2399fafeaf 100644 --- a/docs/data/base/components/button/UnstyledButtonCustom.js +++ b/docs/data/base/components/button/UnstyledButtonCustom.js @@ -53,7 +53,7 @@ const CustomButtonRoot = styled(ButtonRoot)( transition: all 800ms ease; pointer-events: none; } - + & .bg { stroke: var(--main-color); stroke-width: 1; @@ -86,7 +86,7 @@ const CustomButtonRoot = styled(ButtonRoot)( outline-offset: 2px; } - &.${buttonClasses.active} { + &.${buttonClasses.active} { & .bg { fill: var(--active-color); transition: fill 300ms ease-out; diff --git a/docs/data/base/components/button/UnstyledButtonCustom.tsx b/docs/data/base/components/button/UnstyledButtonCustom.tsx index 6733dee6f7e020..72413739662779 100644 --- a/docs/data/base/components/button/UnstyledButtonCustom.tsx +++ b/docs/data/base/components/button/UnstyledButtonCustom.tsx @@ -54,7 +54,7 @@ const CustomButtonRoot = styled(ButtonRoot)( transition: all 800ms ease; pointer-events: none; } - + & .bg { stroke: var(--main-color); stroke-width: 1; @@ -87,7 +87,7 @@ const CustomButtonRoot = styled(ButtonRoot)( outline-offset: 2px; } - &.${buttonClasses.active} { + &.${buttonClasses.active} { & .bg { fill: var(--active-color); transition: fill 300ms ease-out; diff --git a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js index 1caf7cb2550212..f7cdde1f0fd0be 100644 --- a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js +++ b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.js @@ -54,12 +54,11 @@ function Styles() { .CustomButton:active:not(.${buttonClasses.disabled}) { background-color: ${cyan[700]}; } - + .${buttonClasses.disabled} { opacity: 0.5; cursor: not-allowed; - - + } `} ); diff --git a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx index 1caf7cb2550212..f7cdde1f0fd0be 100644 --- a/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx +++ b/docs/data/base/components/button/UnstyledButtonsSimple/css/index.tsx @@ -54,12 +54,11 @@ function Styles() { .CustomButton:active:not(.${buttonClasses.disabled}) { background-color: ${cyan[700]}; } - + .${buttonClasses.disabled} { opacity: 0.5; cursor: not-allowed; - - + } `} ); diff --git a/docs/data/base/components/button/button.md b/docs/data/base/components/button/button.md index ded95fe3b98b7a..38412762441a86 100644 --- a/docs/data/base/components/button/button.md +++ b/docs/data/base/components/button/button.md @@ -23,20 +23,10 @@ The Button component replaces the native HTML `; -} ``` -### Basics - The Button behaves similar to the native HTML ` diff --git a/docs/data/base/components/focus-trap/BasicFocusTrap.tsx b/docs/data/base/components/focus-trap/BasicFocusTrap.tsx index bf7d9d31306942..3a0875bc82e94a 100644 --- a/docs/data/base/components/focus-trap/BasicFocusTrap.tsx +++ b/docs/data/base/components/focus-trap/BasicFocusTrap.tsx @@ -6,7 +6,14 @@ export default function BasicFocusTrap() { const [open, setOpen] = React.useState(false); return ( - + diff --git a/docs/data/base/components/focus-trap/DisableEnforceFocus.js b/docs/data/base/components/focus-trap/DisableEnforceFocus.js index f4988ec6a3cf63..e32294dcbca58c 100644 --- a/docs/data/base/components/focus-trap/DisableEnforceFocus.js +++ b/docs/data/base/components/focus-trap/DisableEnforceFocus.js @@ -6,7 +6,14 @@ export default function DisableEnforceFocus() { const [open, setOpen] = React.useState(false); return ( - + diff --git a/docs/data/base/components/focus-trap/DisableEnforceFocus.tsx b/docs/data/base/components/focus-trap/DisableEnforceFocus.tsx index f4988ec6a3cf63..e32294dcbca58c 100644 --- a/docs/data/base/components/focus-trap/DisableEnforceFocus.tsx +++ b/docs/data/base/components/focus-trap/DisableEnforceFocus.tsx @@ -6,7 +6,14 @@ export default function DisableEnforceFocus() { const [open, setOpen] = React.useState(false); return ( - + diff --git a/docs/data/base/components/focus-trap/LazyFocusTrap.js b/docs/data/base/components/focus-trap/LazyFocusTrap.js index 28762edf3ade32..8e7dbb8f9ead47 100644 --- a/docs/data/base/components/focus-trap/LazyFocusTrap.js +++ b/docs/data/base/components/focus-trap/LazyFocusTrap.js @@ -6,7 +6,14 @@ export default function LazyFocusTrap() { const [open, setOpen] = React.useState(false); return ( - + diff --git a/docs/data/base/components/focus-trap/LazyFocusTrap.tsx b/docs/data/base/components/focus-trap/LazyFocusTrap.tsx index 28762edf3ade32..8e7dbb8f9ead47 100644 --- a/docs/data/base/components/focus-trap/LazyFocusTrap.tsx +++ b/docs/data/base/components/focus-trap/LazyFocusTrap.tsx @@ -6,7 +6,14 @@ export default function LazyFocusTrap() { const [open, setOpen] = React.useState(false); return ( - + diff --git a/docs/data/base/components/focus-trap/PortalFocusTrap.js b/docs/data/base/components/focus-trap/PortalFocusTrap.js index 2d2e76e0b24d1d..6ad02fafc3ecc1 100644 --- a/docs/data/base/components/focus-trap/PortalFocusTrap.js +++ b/docs/data/base/components/focus-trap/PortalFocusTrap.js @@ -8,7 +8,14 @@ export default function PortalFocusTrap() { const [container, setContainer] = React.useState(null); return ( - + diff --git a/docs/data/base/components/focus-trap/PortalFocusTrap.tsx b/docs/data/base/components/focus-trap/PortalFocusTrap.tsx index 6cfb13cc50a60f..2e72570e78e034 100644 --- a/docs/data/base/components/focus-trap/PortalFocusTrap.tsx +++ b/docs/data/base/components/focus-trap/PortalFocusTrap.tsx @@ -8,7 +8,14 @@ export default function PortalFocusTrap() { const [container, setContainer] = React.useState(null); return ( - + diff --git a/docs/data/base/components/focus-trap/focus-trap.md b/docs/data/base/components/focus-trap/focus-trap.md index 5aec8d498be7fc..e04aa60f994042 100644 --- a/docs/data/base/components/focus-trap/focus-trap.md +++ b/docs/data/base/components/focus-trap/focus-trap.md @@ -19,20 +19,10 @@ Focus Trap is a utility component that's useful when implementing an overlay suc ## Component -### Usage - -After [installation](/base-ui/getting-started/quickstart/#installation), you can start building with this component using the following basic elements: - ```jsx import { FocusTrap } from '@mui/base/FocusTrap'; - -export default function MyApp() { - return {/* children where the focus will be trapped */}; -} ``` -### Basics - Focus Trap wraps around the UI elements that should hold the user's focus. For instance, if the focus needs to stay inside of an [Menu](/base-ui/react-menu/), then the component will be structured like this: @@ -67,7 +57,7 @@ By default, clicks outside of the Focus Trap component are blocked. You can disable this behavior with the `disableEnforceFocus` prop. -Compare the following demo with the demo from the [Basics](#basics) sectionโ€”notice how that demo prevents you from clicking outside of it, while this one allows it: +Compare the following demo with the demo from the [Component](#component) sectionโ€”notice how that demo prevents you from clicking outside of it, while this one allows it: {{"demo": "DisableEnforceFocus.js"}} diff --git a/docs/data/base/components/form-control/BasicFormControl/system/index.js b/docs/data/base/components/form-control/BasicFormControl/system/index.js index 74956e018b87b0..f2b89b5af1061b 100644 --- a/docs/data/base/components/form-control/BasicFormControl/system/index.js +++ b/docs/data/base/components/form-control/BasicFormControl/system/index.js @@ -16,7 +16,7 @@ export default function BasicFormControl() { const StyledInput = styled(Input)( ({ theme }) => ` - + .${inputClasses.input} { width: 320px; font-size: 0.875rem; diff --git a/docs/data/base/components/form-control/BasicFormControl/system/index.tsx b/docs/data/base/components/form-control/BasicFormControl/system/index.tsx index 3b3d38e15c2cd4..a76d389e9f983c 100644 --- a/docs/data/base/components/form-control/BasicFormControl/system/index.tsx +++ b/docs/data/base/components/form-control/BasicFormControl/system/index.tsx @@ -16,7 +16,7 @@ export default function BasicFormControl() { const StyledInput = styled(Input)( ({ theme }) => ` - + .${inputClasses.input} { width: 320px; font-size: 0.875rem; diff --git a/docs/data/base/components/form-control/FormControlFunctionChild.js b/docs/data/base/components/form-control/FormControlFunctionChild.js index 2710be182fb482..1d15c03b3e2ff4 100644 --- a/docs/data/base/components/form-control/FormControlFunctionChild.js +++ b/docs/data/base/components/form-control/FormControlFunctionChild.js @@ -18,7 +18,6 @@ export default function FormControlFunctionChild() { const StyledInput = styled(Input)( ({ theme }) => ` - display: inline-block; .${inputClasses.input} { diff --git a/docs/data/base/components/form-control/FormControlFunctionChild.tsx b/docs/data/base/components/form-control/FormControlFunctionChild.tsx index 0ec778fa20ae5a..2ec9f57b26b993 100644 --- a/docs/data/base/components/form-control/FormControlFunctionChild.tsx +++ b/docs/data/base/components/form-control/FormControlFunctionChild.tsx @@ -18,7 +18,6 @@ export default function FormControlFunctionChild() { const StyledInput = styled(Input)( ({ theme }) => ` - display: inline-block; .${inputClasses.input} { diff --git a/docs/data/base/components/form-control/form-control.md b/docs/data/base/components/form-control/form-control.md index a3d0b46edada10..cd7ee94950fd2c 100644 --- a/docs/data/base/components/form-control/form-control.md +++ b/docs/data/base/components/form-control/form-control.md @@ -22,22 +22,10 @@ For instance, you may want to show an additional element asking the user to ente ## Component -### Usage - -After [installation](/base-ui/getting-started/quickstart/#installation), you can start building with this component using the following basic elements: - ```jsx import { FormControl } from '@mui/base/FormControl'; - -export default function MyApp() { - return ( - {/* and/or other contents of the form */} - ); -} ``` -### Basics - Form Control wraps around the elements of a form that need access to the state of an ``. For instance, if the form's **Submit** button needs to change states after the user enters information, then the component will be structured like this: @@ -53,9 +41,10 @@ Note that it also uses the `useFormControlContext` hook in order to pass props t {{"demo": "BasicFormControl"}} -#### Usage with TypeScript +### Usage with TypeScript -In TypeScript, you can specify the custom component type used in the `slots.root` as a generic parameter of the unstyled component. This way, you can safely provide the custom root's props directly on the component: +In TypeScript, you can specify the custom component type used in the `slots.root` as a generic parameter of the unstyled component. +This way, you can safely provide the custom root's props directly on the component: ```tsx slots={{ root: CustomComponent }} customProp /> @@ -77,7 +66,7 @@ The `useFormControlContext` hook reads the context provided by Form Control. This hook lets you work with custom input components inside of the Form Control. You can also use it to read the form control's state and react to its changes in a custom component. -Hooks _do not_ support [slot props](#slot-props), but they do support [customization props](#customization). +Hooks _do not_ support [slot props](#custom-structure), but they do support [customization props](#customization). :::info Hooks give you the most room for customization, but require more work to implement. @@ -113,9 +102,9 @@ For the sake of simplicity, demos and code snippets primarily feature components ### Accessing the form control state -You can access the state of the form control by providing a function as a child of the Form Control. +You can access the state of the Form Control by providing a function as a child. The state will be provided as a parameter to this function. -The following demo shows how to access the state of the form control in an Input component nested inside of the Form Control: +The following demo shows how to access the state of the Form Control in an Input component nested inside: {{"demo": "FormControlFunctionChild.js"}} diff --git a/docs/data/base/components/input/UnstyledInputBasic/css/index.js b/docs/data/base/components/input/UnstyledInputBasic/css/index.js index f115837b61c88c..a64877d635bed1 100644 --- a/docs/data/base/components/input/UnstyledInputBasic/css/index.js +++ b/docs/data/base/components/input/UnstyledInputBasic/css/index.js @@ -65,16 +65,16 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${isDarkMode ? grey[900] : grey[50]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[500] : cyan[200]}; } - + &:focus-visible { outline: 0; } diff --git a/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx b/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx index f115837b61c88c..a64877d635bed1 100644 --- a/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx +++ b/docs/data/base/components/input/UnstyledInputBasic/css/index.tsx @@ -65,16 +65,16 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 2px ${isDarkMode ? grey[900] : grey[50]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[500] : cyan[200]}; } - + &:focus-visible { outline: 0; } diff --git a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js index ddf9d9f8f09a9b..7db613fae34b34 100644 --- a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js +++ b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.js @@ -65,11 +65,11 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 24px ${isDarkMode ? cyan[800] : cyan[100]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[600] : cyan[200]}; diff --git a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx index ddf9d9f8f09a9b..7db613fae34b34 100644 --- a/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx +++ b/docs/data/base/components/input/UnstyledInputIntroduction/css/index.tsx @@ -65,11 +65,11 @@ function Styles() { background: ${isDarkMode ? grey[900] : '#fff'}; border: 1px solid ${isDarkMode ? grey[700] : grey[200]}; box-shadow: 0px 2px 24px ${isDarkMode ? cyan[800] : cyan[100]}; - + &:hover { border-color: ${cyan[400]}; } - + &:focus { border-color: ${cyan[400]}; box-shadow: 0 0 0 3px ${isDarkMode ? cyan[600] : cyan[200]}; diff --git a/docs/data/base/components/input/input.md b/docs/data/base/components/input/input.md index a80ccf738ca51e..7a150f2fa67ebc 100644 --- a/docs/data/base/components/input/input.md +++ b/docs/data/base/components/input/input.md @@ -24,20 +24,10 @@ It can also be transformed into a `