Repository: RubixCube-Innovations/mantine-theme-builder
Branch: main
Commit: 111cdb99b5ba
Files: 334
Total size: 2.4 MB
Directory structure:
gitextract_fz6l1qv3/
├── .gitignore
├── .prettierrc
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── _mantine.scss
├── eslint.config.js
├── js/
│ ├── generated/
│ │ ├── colors.cjs
│ │ ├── colors.js
│ │ └── theme-functions.cjs
│ └── scripts/
│ ├── compileTS.cjs
│ ├── components.cjs
│ ├── generateCssVariableResolver.cjs
│ ├── generateStyles.cjs
│ └── generateThemes.cjs
├── next.config.js
├── package.json
├── postcss.config.js
├── public/
│ ├── _redirects
│ └── robots.txt
├── src/
│ ├── _mantine.scss
│ ├── app/
│ │ ├── about/
│ │ │ └── page.tsx
│ │ ├── blocks/
│ │ │ ├── [slug]/
│ │ │ │ └── page.tsx
│ │ │ ├── layout.tsx
│ │ │ └── page.tsx
│ │ ├── feedback/
│ │ │ └── page.tsx
│ │ ├── how-to-use/
│ │ │ └── page.tsx
│ │ ├── layout.tsx
│ │ ├── loading.tsx
│ │ ├── page.tsx
│ │ ├── playground/
│ │ │ └── page.tsx
│ │ └── sitemap.ts
│ ├── components/
│ │ ├── GoogleAnalytics.tsx
│ │ ├── MicrosoftClarity.tsx
│ │ ├── custom/
│ │ │ ├── about/
│ │ │ │ └── about.tsx
│ │ │ ├── blocks/
│ │ │ │ └── coming-soon/
│ │ │ │ ├── coming-soon.module.css
│ │ │ │ └── coming-soon.tsx
│ │ │ ├── change-theme-section/
│ │ │ │ ├── change-theme-button.tsx
│ │ │ │ ├── change-theme-section.tsx
│ │ │ │ └── copy-theme-code-button.tsx
│ │ │ ├── components-demo/
│ │ │ │ ├── buttons/
│ │ │ │ │ ├── action-icon-demo.tsx
│ │ │ │ │ ├── button-demo.tsx
│ │ │ │ │ └── close-button-demo.tsx
│ │ │ │ ├── charts/
│ │ │ │ │ ├── area-chart-demo.tsx
│ │ │ │ │ ├── bar-chart-demo.tsx
│ │ │ │ │ ├── bubble-chart-demo.tsx
│ │ │ │ │ ├── composite-chart-demo.tsx
│ │ │ │ │ ├── data/
│ │ │ │ │ │ ├── _area-data.ts
│ │ │ │ │ │ ├── _bar-data.ts
│ │ │ │ │ │ ├── _bubble-data.ts
│ │ │ │ │ │ ├── _donut-data.ts
│ │ │ │ │ │ ├── _pie-data.ts
│ │ │ │ │ │ ├── _radar-data.ts
│ │ │ │ │ │ └── _scatter-data.ts
│ │ │ │ │ ├── donot-chart-demo.tsx
│ │ │ │ │ ├── line-chart-demo.tsx
│ │ │ │ │ ├── pie-chart-demo.tsx
│ │ │ │ │ ├── radar-chart-demo.tsx
│ │ │ │ │ ├── scatter-chart-demo.tsx
│ │ │ │ │ └── sparkline-demo.tsx
│ │ │ │ ├── combobox/
│ │ │ │ │ ├── autocomplete-demo.tsx
│ │ │ │ │ ├── multi-select-demo.tsx
│ │ │ │ │ ├── pills-input-demo.tsx
│ │ │ │ │ ├── select-demo.tsx
│ │ │ │ │ └── tags-input-demo.tsx
│ │ │ │ ├── components-demo.module.css
│ │ │ │ ├── components-demo.tsx
│ │ │ │ ├── data-display/
│ │ │ │ │ ├── accordion-demo.tsx
│ │ │ │ │ ├── avatar-demo.tsx
│ │ │ │ │ ├── background-image-demo.tsx
│ │ │ │ │ ├── badge-demo.tsx
│ │ │ │ │ ├── card-demo.tsx
│ │ │ │ │ ├── color-swatch-demo.tsx
│ │ │ │ │ ├── image-demo.tsx
│ │ │ │ │ ├── indicator-demo.tsx
│ │ │ │ │ ├── spoiler-demo.tsx
│ │ │ │ │ ├── theme-icon-demo.tsx
│ │ │ │ │ └── timeline-demo.tsx
│ │ │ │ ├── feedback/
│ │ │ │ │ ├── alert-demo.tsx
│ │ │ │ │ ├── loader-demo.tsx
│ │ │ │ │ ├── notification-demo.tsx
│ │ │ │ │ ├── progress-demo.tsx
│ │ │ │ │ ├── ring-progress-demo.tsx
│ │ │ │ │ ├── semi-circle-progress-demo.tsx
│ │ │ │ │ └── skeleton-demo.tsx
│ │ │ │ ├── inputs/
│ │ │ │ │ ├── checkbox-demo.tsx
│ │ │ │ │ ├── checkbox-group-demo.tsx
│ │ │ │ │ ├── chip-demo.tsx
│ │ │ │ │ ├── color-input-demo.tsx
│ │ │ │ │ ├── fieldset-demo.tsx
│ │ │ │ │ ├── file-input.tsx
│ │ │ │ │ ├── native-select-demo.tsx
│ │ │ │ │ ├── pin-input-demo.tsx
│ │ │ │ │ ├── radio-demo.tsx
│ │ │ │ │ ├── radio-group-demo.tsx
│ │ │ │ │ ├── rating-demo.tsx
│ │ │ │ │ ├── segmented-control-demo.tsx
│ │ │ │ │ ├── slider-demo.tsx
│ │ │ │ │ ├── switch-demo.tsx
│ │ │ │ │ ├── switch-group-demo.tsx
│ │ │ │ │ ├── text-input-demo.tsx
│ │ │ │ │ └── textarea-demo.tsx
│ │ │ │ ├── miscellaneous/
│ │ │ │ │ ├── date-picker-input-demo.tsx
│ │ │ │ │ ├── divider-demo.tsx
│ │ │ │ │ ├── paper-demo.tsx
│ │ │ │ │ └── scroll-area-demo.tsx
│ │ │ │ ├── navigation/
│ │ │ │ │ ├── anchor-demo.tsx
│ │ │ │ │ ├── nav-link-demo.tsx
│ │ │ │ │ ├── pagination-demo.tsx
│ │ │ │ │ ├── stepper-demo.tsx
│ │ │ │ │ └── tabs-demo.tsx
│ │ │ │ ├── overlays/
│ │ │ │ │ ├── authentication-form.tsx
│ │ │ │ │ ├── dialog-demo.tsx
│ │ │ │ │ ├── drawer-demo.tsx
│ │ │ │ │ ├── hover-card-demo.tsx
│ │ │ │ │ ├── loading-overlay-demo.tsx
│ │ │ │ │ ├── menu-demo.tsx
│ │ │ │ │ ├── modal-demo.tsx
│ │ │ │ │ ├── overlay-demo.tsx
│ │ │ │ │ ├── popover-demo.tsx
│ │ │ │ │ └── tooltip-demo.tsx
│ │ │ │ └── typography/
│ │ │ │ ├── blockquote-demo.tsx
│ │ │ │ ├── code-demo.tsx
│ │ │ │ ├── highlight-demo.tsx
│ │ │ │ ├── list-demo.tsx
│ │ │ │ ├── mark-demo.tsx
│ │ │ │ ├── table-demo.tsx
│ │ │ │ ├── text-demo.tsx
│ │ │ │ └── title-demo.tsx
│ │ │ ├── how-to-use/
│ │ │ │ └── how-to-use.tsx
│ │ │ ├── testimonial/
│ │ │ │ ├── testimonial-grid.tsx
│ │ │ │ └── testimonial-item.tsx
│ │ │ └── theme-example-cards/
│ │ │ ├── activity-goal.tsx
│ │ │ ├── calendar.tsx
│ │ │ ├── chat.tsx
│ │ │ ├── cookie-settings.tsx
│ │ │ ├── create-account.tsx
│ │ │ ├── data-table.tsx
│ │ │ ├── mantine-cards.tsx
│ │ │ ├── metric.tsx
│ │ │ ├── payment-method.tsx
│ │ │ ├── report-issue.tsx
│ │ │ ├── share.tsx
│ │ │ ├── stats.tsx
│ │ │ └── team-members.tsx
│ │ ├── layouts/
│ │ │ └── page-layout.tsx
│ │ ├── mantine/
│ │ │ └── demo/
│ │ │ ├── CodeDemo/
│ │ │ │ └── CodeDemo.tsx
│ │ │ ├── ConfiguratorDemo/
│ │ │ │ ├── ConfiguratorDemo.module.css
│ │ │ │ ├── ConfiguratorDemo.tsx
│ │ │ │ ├── clear-props.ts
│ │ │ │ ├── controls/
│ │ │ │ │ ├── ColorWheelIcon.tsx
│ │ │ │ │ ├── ConfiguratorBoolean.control.tsx
│ │ │ │ │ ├── ConfiguratorColor.control.module.css
│ │ │ │ │ ├── ConfiguratorColor.control.tsx
│ │ │ │ │ ├── ConfiguratorNumber.control.tsx
│ │ │ │ │ ├── ConfiguratorSegmented.control.tsx
│ │ │ │ │ ├── ConfiguratorSelect.control.tsx
│ │ │ │ │ ├── ConfiguratorSize.control.tsx
│ │ │ │ │ ├── ConfiguratorString.control.tsx
│ │ │ │ │ ├── get-control-label.ts
│ │ │ │ │ ├── index.ts
│ │ │ │ │ ├── transform-select-data.ts
│ │ │ │ │ └── types.ts
│ │ │ │ ├── get-code-array.ts
│ │ │ │ └── inject-props.tsx
│ │ │ ├── Demo/
│ │ │ │ └── Demo.tsx
│ │ │ ├── DemoArea/
│ │ │ │ ├── DemoArea.module.css
│ │ │ │ ├── DemoArea.tsx
│ │ │ │ └── index.ts
│ │ │ ├── DemoCode/
│ │ │ │ ├── DemoCode.module.scss
│ │ │ │ ├── DemoCode.tsx
│ │ │ │ └── index.ts
│ │ │ ├── DemoColumns/
│ │ │ │ ├── DemoColumns.module.css
│ │ │ │ ├── DemoColumns.tsx
│ │ │ │ └── index.ts
│ │ │ ├── DemoRoot/
│ │ │ │ ├── DemoRoot.module.css
│ │ │ │ ├── DemoRoot.tsx
│ │ │ │ └── index.ts
│ │ │ ├── StylesApiDemo/
│ │ │ │ ├── StylesApiDemo.module.css
│ │ │ │ └── StylesApiDemo.tsx
│ │ │ └── index.ts
│ │ └── ui/
│ │ ├── chart-tooltip.tsx
│ │ ├── color-scheme-switch/
│ │ │ ├── color-scheme-switch.module.css
│ │ │ ├── color-scheme-switch.tsx
│ │ │ └── index.ts
│ │ ├── header/
│ │ │ ├── header.module.scss
│ │ │ └── header.tsx
│ │ ├── icons.tsx
│ │ └── navbar/
│ │ ├── navbar-links-group.tsx
│ │ ├── navbar.module.scss
│ │ └── navbar.tsx
│ ├── feature/
│ │ └── blocks/
│ │ ├── components/
│ │ │ ├── block-components/
│ │ │ │ └── block-components.tsx
│ │ │ ├── categories/
│ │ │ │ ├── category-card.module.css
│ │ │ │ ├── category-card.tsx
│ │ │ │ ├── category-list.module.css
│ │ │ │ ├── category-list.tsx
│ │ │ │ └── category-page.tsx
│ │ │ ├── component-canvas/
│ │ │ │ ├── canvas-header.module.css
│ │ │ │ ├── canvas-header.tsx
│ │ │ │ ├── color-control.tsx
│ │ │ │ ├── component-canvas.module.css
│ │ │ │ └── component-canvas.tsx
│ │ │ ├── component-preview/
│ │ │ │ └── component-preview.tsx
│ │ │ └── shell/
│ │ │ ├── shell.module.css
│ │ │ └── shell.tsx
│ │ ├── data/
│ │ │ ├── categories.ts
│ │ │ ├── components.ts
│ │ │ ├── fn.ts
│ │ │ ├── images/
│ │ │ │ └── index.ts
│ │ │ └── types.ts
│ │ └── lib/
│ │ ├── coming-soon/
│ │ │ ├── attributes.json
│ │ │ ├── coming-soon.module.css
│ │ │ └── coming-soon.tsx
│ │ ├── faq1/
│ │ │ ├── attributes.json
│ │ │ ├── faq1.module.css
│ │ │ └── faq1.tsx
│ │ ├── faq2/
│ │ │ ├── attributes.json
│ │ │ ├── faq2.module.css
│ │ │ └── faq2.tsx
│ │ ├── faq3/
│ │ │ ├── attributes.json
│ │ │ ├── faq3.module.css
│ │ │ └── faq3.tsx
│ │ ├── feature1/
│ │ │ ├── attributes.json
│ │ │ ├── feature1.module.css
│ │ │ └── feature1.tsx
│ │ ├── feature2/
│ │ │ ├── attributes.json
│ │ │ ├── feature2.module.css
│ │ │ └── feature2.tsx
│ │ ├── feature3/
│ │ │ ├── attributes.json
│ │ │ ├── feature3.module.css
│ │ │ └── feature3.tsx
│ │ ├── feature4/
│ │ │ ├── attributes.json
│ │ │ ├── feature4.module.css
│ │ │ └── feature4.tsx
│ │ ├── feature5/
│ │ │ ├── attributes.json
│ │ │ ├── feature5.module.css
│ │ │ └── feature5.tsx
│ │ ├── hero1/
│ │ │ ├── attributes.json
│ │ │ ├── hero1.module.css
│ │ │ └── hero1.tsx
│ │ ├── hero2/
│ │ │ ├── attributes.json
│ │ │ ├── hero2.module.css
│ │ │ └── hero2.tsx
│ │ ├── hero3/
│ │ │ ├── attributes.json
│ │ │ ├── hero3.module.css
│ │ │ └── hero3.tsx
│ │ ├── hero4/
│ │ │ ├── attributes.json
│ │ │ ├── hero4.module.css
│ │ │ └── hero4.tsx
│ │ ├── hero5/
│ │ │ ├── attributes.json
│ │ │ ├── hero5.module.css
│ │ │ └── hero5.tsx
│ │ ├── hero6/
│ │ │ ├── attributes.json
│ │ │ ├── hero6.module.css
│ │ │ └── hero6.tsx
│ │ ├── index.ts
│ │ ├── meet-our-team-1/
│ │ │ ├── attributes.json
│ │ │ ├── meet-our-team-1.module.css
│ │ │ └── meet-our-team-1.tsx
│ │ ├── meet-our-team-2/
│ │ │ ├── attributes.json
│ │ │ ├── meet-our-team-2.module.css
│ │ │ └── meet-our-team-2.tsx
│ │ ├── meet-our-team-3/
│ │ │ ├── attributes.json
│ │ │ ├── meet-our-team-3.module.css
│ │ │ └── meet-our-team-3.tsx
│ │ ├── meet-our-team-4/
│ │ │ ├── attributes.json
│ │ │ ├── meet-our-team-4.module.css
│ │ │ └── meet-our-team-4.tsx
│ │ ├── newsletter1/
│ │ │ ├── attributes.json
│ │ │ ├── newsletter1.module.css
│ │ │ └── newsletter1.tsx
│ │ ├── newsletter2/
│ │ │ ├── attributes.json
│ │ │ ├── newsletter2.module.css
│ │ │ └── newsletter2.tsx
│ │ ├── pricing1/
│ │ │ ├── attributes.json
│ │ │ ├── pricing1.module.css
│ │ │ └── pricing1.tsx
│ │ ├── pricing2/
│ │ │ ├── attributes.json
│ │ │ ├── pricing2.module.css
│ │ │ └── pricing2.tsx
│ │ ├── pricing3/
│ │ │ ├── attributes.json
│ │ │ ├── pricing3.module.css
│ │ │ └── pricing3.tsx
│ │ ├── pricing4/
│ │ │ ├── attributes.json
│ │ │ ├── pricing4.module.css
│ │ │ └── pricing4.tsx
│ │ ├── pricing5/
│ │ │ ├── attributes.json
│ │ │ ├── pricing5.module.css
│ │ │ └── pricing5.tsx
│ │ ├── testimonials1/
│ │ │ ├── attributes.json
│ │ │ ├── testimonials1.module.css
│ │ │ └── testimonials1.tsx
│ │ ├── testimonials2/
│ │ │ ├── attributes.json
│ │ │ ├── testimonials2.module.css
│ │ │ └── testimonials2.tsx
│ │ └── testimonials3/
│ │ ├── attributes.json
│ │ ├── testimonials3.module.css
│ │ └── testimonials3.tsx
│ ├── routeTree.gen.ts
│ ├── styles/
│ │ ├── _mantine.scss
│ │ ├── fonts.css
│ │ ├── index.scss
│ │ ├── mantine-styles.css
│ │ └── shadcn-styles.css
│ ├── theme-context.tsx
│ ├── themes/
│ │ ├── generated/
│ │ │ ├── generatedMantineCssStyles.ts
│ │ │ ├── generatedMantineCssVariableResolver.ts
│ │ │ ├── generatedMantineTheme.ts
│ │ │ ├── generatedShadcnCssStyles.ts
│ │ │ ├── generatedShadcnCssVariableResolver.ts
│ │ │ └── generatedShadcnTheme.ts
│ │ ├── mantine/
│ │ │ ├── mantine-css-variable-resolver.ts
│ │ │ └── mantine-theme.ts
│ │ ├── shadcn/
│ │ │ ├── shadcn-css-variable-resolver.ts
│ │ │ └── shadcn-theme.ts
│ │ └── test/
│ │ ├── shadcn-css-variable-resolver-test.ts
│ │ ├── shadcn-styles-test.css
│ │ └── shadcn-theme-test.ts
│ ├── utils/
│ │ ├── colors.ts
│ │ ├── cssTemplate.ts
│ │ ├── data.ts
│ │ ├── functions.ts
│ │ ├── input-controls.ts
│ │ ├── testimonials.ts
│ │ ├── theme-functions.ts
│ │ ├── themeTemplate.ts
│ │ └── variants-data.ts
│ └── vite-env.d.ts
├── tailwind.config.js
├── tsconfig.app.json
├── tsconfig.app.tsbuildinfo
├── tsconfig.json
├── tsconfig.node.tsbuildinfo
└── tsconfig.tsbuildinfo
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
.next
next-env.d.ts
dist
docs
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.claude
================================================
FILE: .prettierrc
================================================
{
"semi": true,
"singleQuote": false,
"trailingComma": "es5",
"printWidth": 120
}
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Mantine Theme Builder
We are excited that you're interested in contributing to **Mantine Theme Builder**! This guide will help you get started with contributing code, reporting issues, or suggesting new features.
## How to Contribute
There are many ways to contribute to this project:
- **Reporting Bugs**: If you've found a bug, please open an issue with a clear description of the problem, steps to reproduce, and any error messages.
- **Feature Requests**: Got an idea for a new feature? We welcome suggestions. Please provide a detailed description of the feature and how it would improve the project.
- **Code Contributions**: We love receiving pull requests! Check out our guidelines for contributing code below.
## Getting Started
To start contributing, follow these steps:
1. **Fork the repository**: Click the "Fork" button at the top of this repo and clone it to your local machine.
```bash
git clone https://github.com/your-username/mantine-theme-builder.git
cd mantine-theme-builder
```
2. **Install dependencies**: Install the necessary dependencies to run the project.
```bash
npm install
```
3. **Make your changes**: Create a new branch for your feature or bug fix.
```bash
git checkout -b your-branch-name
```
4. **Test your changes**: Run the project locally to ensure everything works as expected.
```bash
npm start
```
5. **Generate updated themes**: If you have updated any theme or style files, run the following command to regenerate the updated themes.
```bash
npm run generate
```
6. **Commit your changes**: Once you're satisfied with your changes, commit them.
```bash
git commit -m "Description of your changes"
```
7. **Push your changes**: Push your changes to your forked repo.
```bash
git push origin your-branch-name
```
8. **Submit a pull request**: Go to the original repo on GitHub and submit a pull request with a clear description of your changes.
## Code Style
Please ensure your code follows these guidelines:
- Use [Prettier](https://prettier.io/) for code formatting to keep the codebase clean and consistent.
- Follow the standard JavaScript or TypeScript best practices.
- Ensure that your code is properly documented and tested where applicable.
## Issue Reporting
When reporting issues, please ensure that you include:
- A detailed description of the issue.
- Steps to reproduce the bug.
- Screenshots or code snippets (if applicable).
## License
By contributing to **Mantine Theme Builder**, you agree that your contributions will be licensed under the MIT License.
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2024 RubixCube Innovations
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# Mantine Hub - Modern Themes, UI Blocks, Templates and much more for [Mantine UI Library](https://mantine.dev)
**Mantine Hub(previously Theme Builder)** is a complimentary tool for developers to make UI development with Mantine much more faster and easier. Initially created as an experimental project to simplify the process of modernizing Mantine's styling, MantineHub offers pre-configured themes inspired by Shadcn. With MantineHub, developers can quickly integrate modern styling into their projects by copying and pasting the theme configuration.
Due to the overwhelming positive feedback and community endorsment we’ve received, MantineHub has evolved into a comprehensive toolkit. It now supports all Mantine components and introduces exciting new features like Blocks—pre-built UI components designed to seamlessly work with the generated themes.

## Deep Wiki
[Visit Documentation](https://deepwiki.com/RubixCube-Innovations/mantine-theme-builder)
## Features
- **Customizable Styles**: Choose from a selection of predefined styles to quickly update the look of your UI.
- **Color Palette**: Pick from a wide range of color themes like Zinc, Slate, Gray, and more.
- **Radius Control**: Adjust the border radius to match your desired look, from sharp corners to fully rounded elements.
- **Light/Dark Mode**: Toggle between light and dark themes for quick previews and real-time visualizations.
- **Export Theme**: Copy the generated Mantine theme object and integrate it directly into your project.
## Getting Started
To use **Mantine Theme Builder** in your project, follow these steps:
1. Set up a new project with Mantine by following the [official Mantine documentation](https://mantine.dev/getting-started/):
2. Once your project is set up, open the `MantineProvider` (usually in `src/App.js` or `src/App.tsx`).
3. Copy the generated theme object from the **Mantine Theme Builder** website.
4. Replace or extend the theme object in your `MantineProvider` as follows:
```javascript
import { MantineProvider } from '@mantine/core';
import { yourCustomTheme } from './your-custom-theme';
function App() {
return (
);
}
export default App;
```
5. That's it! Your project will now use the customized theme.
## How to Use
1. Open **Mantine Theme Builder** and select from the available style presets or color themes to start building your Mantine theme.
2. Customize the border radius values for rounded corners.
3. Toggle between light and dark modes for your UI components.
4. Once you're satisfied, copy the theme object code and use it in your project.
## Contribution
We welcome contributions from the community! Feel free to submit issues or pull requests to improve this project. See our [Contribution Guide](CONTRIBUTING.md) for more details.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Star History
[](https://star-history.com/#rubixcube-innovations/mantine-theme-builder&Date)
## Keywords
- Mantine Theme Builder
- Mantine Custom Theme
- Mantine UI Components
- Mantine Light/Dark Mode
- Mantine Customizable Themes
- Mantine Modern UI Themes
- Mantine Style Presets
- shadcn-like Mantine Themes
- Mantine Theme Exporter
- Mantine Theme Generator
- Mantine Shadcn Themes
- Shadcn Themes for Mantine
================================================
FILE: _mantine.scss
================================================
@use "sass:math";
// Define variables for your breakpoints,
// values must be the same as in your theme
$mantine-breakpoint-xs: "36em";
$mantine-breakpoint-sm: "48em";
$mantine-breakpoint-md: "62em";
$mantine-breakpoint-lg: "75em";
$mantine-breakpoint-xl: "88em";
@function rem($value) {
@return #{math.div(math.div($value, $value * 0 + 1), 16)}rem;
}
@mixin light {
[data-mantine-color-scheme="light"] & {
@content;
}
}
@mixin dark {
[data-mantine-color-scheme="dark"] & {
@content;
}
}
@mixin hover {
@media (hover: hover) {
&:hover {
@content;
}
}
@media (hover: none) {
&:active {
@content;
}
}
}
@mixin smaller-than($breakpoint) {
@media (max-width: $breakpoint) {
@content;
}
}
@mixin larger-than($breakpoint) {
@media (min-width: $breakpoint) {
@content;
}
}
// Add direction mixins if you need rtl support
@mixin rtl {
[dir="rtl"] & {
@content;
}
}
@mixin ltr {
[dir="ltr"] & {
@content;
}
}
================================================
FILE: eslint.config.js
================================================
import js from "@eslint/js";
import globals from "globals";
import reactHooks from "eslint-plugin-react-hooks";
import reactRefresh from "eslint-plugin-react-refresh";
import tseslint from "typescript-eslint";
import eslintConfigPrettier from "eslint-config-prettier";
export default tseslint.config(
{ ignores: ["dist"] },
{
extends: [js.configs.recommended, ...tseslint.configs.recommended],
files: ["**/*.{ts,tsx}"],
languageOptions: {
ecmaVersion: 2020,
globals: globals.browser,
},
plugins: {
"react-hooks": reactHooks,
"react-refresh": reactRefresh,
},
rules: {
...reactHooks.configs.recommended.rules,
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
"@typescript-eslint/no-explicit-any": 0,
},
},
eslintConfigPrettier
);
================================================
FILE: js/generated/colors.cjs
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SHADCN_DEFAULT_COLORS = exports.MANTINE_DEFAULT_COLORS = exports.pinkColors = exports.fuchsiaColors = exports.purpleColors = exports.indigoColors = exports.skyColors = exports.cyanColors = exports.tealColors = exports.emeraldColors = exports.limeColors = exports.amberColors = exports.violetColors = exports.yellowColors = exports.blueColors = exports.greenColors = exports.orangeColors = exports.roseColors = exports.redColors = exports.neutralColors = exports.grayColors = exports.stoneColors = exports.slateColors = exports.zincColors = void 0;
// Note: 500 shade in tailwind color is not included in the color palette except for orange, green and blue
// Color shades in tailwind are 50, 100, 200, 300, 400, 600, 700, 800, 900, 950
exports.zincColors = [
"#fafafa", // [0] -> shade 50
"#f4f4f5", // [1] -> shade 100
"#e4e4e7", // [2] -> shade 200
"#d4d4d8", // [3] -> shade 300
"#a1a1aa", // [4] -> shade 400
"#52525b", // [5] -> shade 600
"#3f3f46", // [6] -> shade 700
"#27272a", // [7] -> shade 800
"#18181b", // [8] -> shade 900
"#09090b", // [9] -> shade 950
"#71717A" // [10] -> zinc base
];
exports.slateColors = [
"#f8fafc", // [0] -> shade 50
"#f1f5f9", // [1] -> shade 100
"#e2e8f0", // [2] -> shade 200
"#cbd5e1", // [3] -> shade 300
"#94a3b8", // [4] -> shade 400
"#475569", // [5] -> shade 600
"#334155", // [6] -> shade 700
"#1e293b", // [7] -> shade 800
"#0f172a", // [8] -> shade 900
"#020817", // [9] -> shade 950 (original tailwind color was #020617)
"#64748B" // [10] -> slate base
];
exports.stoneColors = [
"#fafaf9", // [0] -> shade 50
"#f5f5f4", // [1] -> shade 100
"#e7e5e4", // [2] -> shade 200
"#d6d3d1", // [3] -> shade 300
"#a8a29e", // [4] -> shade 400
"#57534e", // [5] -> shade 600
"#44403c", // [6] -> shade 700
"#292524", // [7] -> shade 800
"#1c1917", // [8] -> shade 900
"#0c0a09", // [9] -> shade 950
"#78716C" // [10] -> stone base
];
exports.grayColors = [
"#f9fafb", // [0] -> shade 50
"#f3f4f6", // [1] -> shade 100
"#e5e7eb", // [2] -> shade 200
"#d1d5db", // [3] -> shade 300
"#9ca3af", // [4] -> shade 400
"#4b5563", // [5] -> shade 600
"#374151", // [6] -> shade 700
"#1f2937", // [7] -> shade 800
"#111827", // [8] -> shade 900
"#030712", // [9] -> shade 950
"#6B7280" // [10] -> gray base
];
exports.neutralColors = [
"#fafafa", // [0] -> shade 50
"#f5f5f5", // [1] -> shade 100
"#e5e5e5", // [2] -> shade 200
"#d4d4d4", // [3] -> shade 300
"#a3a3a3", // [4] -> shade 400
"#525252", // [5] -> shade 600
"#404040", // [6] -> shade 700
"#262626", // [7] -> shade 800
"#171717", // [8] -> shade 900
"#0a0a0a", // [9] -> shade 950
"#737373" // [10] -> neutral base
];
exports.redColors = [
"#FEF2F2", // [0] -> shade 50
"#FEE2E2", // [1] -> shade 100
"#FECACA", // [2] -> shade 200
"#FCA5A5", // [3] -> shade 300
"#F87171", // [4] -> shade 400
"#DC2626", // [5] -> shade 600
"#B91C1C", // [6] -> shade 700
"#991B1B", // [7] -> shade 800
"#7F1D1D", // [8] -> shade 900
"#450A0A", // [9] -> shade 950
"#EF4444" // [10] -> red base
];
exports.roseColors = [
"#fff1f2", // [0] -> shade 50
"#ffe4e6", // [1] -> shade 100
"#fecdd3", // [2] -> shade 200
"#fda4af", // [3] -> shade 300
"#fb7185", // [4] -> shade 400
"#e11d48", // [5] -> shade 600
"#be123c", // [6] -> shade 700
"#9f1239", // [7] -> shade 800
"#881337", // [8] -> shade 900
"#4c0519", // [9] -> shade 950
"#F43F5E" // [10] -> base color as rose[10]
];
exports.orangeColors = [
"#fff7ed", // [0] -> shade 50
"#ffedd5", // [1] -> shade 100
"#fed7aa", // [2] -> shade 200
"#fdba74", // [3] -> shade 300
"#fb923c", // [4] -> shade 400
"#f97316", // [5] -> shade 500
"#ea580c", // [6] -> shade 600
"#9a3412", // [7] -> shade 800
"#7c2d12", // [8] -> shade 900
"#431407", // [9] -> shade 950
"#F97316", // [10] -> orange base
];
exports.greenColors = [
"#F0FDF4", // [0] -> shade 50
"#DCFCE7", // [1] -> shade 100
"#BBF7D0", // [2] -> shade 200
"#86EFAC", // [3] -> shade 300
"#4ADE80", // [4] -> shade 400
"#22c55e", // [5] -> shade 500
"#16A34A", // [6] -> shade 600
"#166534", // [7] -> shade 800
"#14532D", // [8] -> shade 900
"#052E16", // [9] -> shade 950
"#10B981", // [10] -> green base
];
exports.blueColors = [
"#eff6ff", // [0] -> shade 50
"#dbeafe", // [1] -> shade 100
"#bfdbfe", // [2] -> shade 200
"#93c5fd", // [3] -> shade 300
"#60a5fa", // [4] -> shade 400
"#3b82f6", // [5] -> shade 500
"#2563eb", // [6] -> shade 600
"#1e40af", // [7] -> shade 800
"#1e3a8a", // [8] -> shade 900
"#172554", // [9] -> shade 950
"#3B82F6", // [10] -> blue base
];
exports.yellowColors = [
"#fefce8", // [0] -> shade 50
"#fef9c3", // [1] -> shade 100
"#fef08a", // [2] -> shade 200
"#fde047", // [3] -> shade 300
"#facc15", // [4] -> shade 400
"#ca8a04", // [5] -> shade 500
"#a16207", // [6] -> shade 600
"#854d0e", // [7] -> shade 700
"#713f12", // [8] -> shade 800
"#3f2c06", // [9] -> shade 950
"#F59E0B", // [10] -> yellow base
];
exports.violetColors = [
"#f5f3ff", // [0] -> shade 50
"#ede9fe", // [1] -> shade 100
"#ddd6fe", // [2] -> shade 200
"#c4b5fd", // [3] -> shade 300
"#a78bfa", // [4] -> shade 400
"#7c3aed", // [5] -> shade 500
"#6d28d9", // [6] -> shade 600
"#5b21b6", // [7] -> shade 700
"#4c1d95", // [8] -> shade 800
"#1e1b4b", // [9] -> shade 950
"#8B5CF6", // [10] -> violet base
];
exports.amberColors = [
"#FFFBEB", // [0] -> shade 50
"#FEF3C7", // [1] -> shade 100
"#FDE68A", // [2] -> shade 200
"#FCD34D", // [3] -> shade 300
"#FBBF24", // [4] -> shade 400
"#f59e0b", // [5] -> shade 500
"#D97706", // [6] -> shade 600
"#92400E", // [7] -> shade 800
"#78350F", // [8] -> shade 900
"#451A03", // [9] -> shade 950
"#F59E0B", // [10] -> amber base
];
exports.limeColors = [
"#f7fee7", // [0] -> shade 50
"#ecfccb", // [1] -> shade 100
"#d9f99d", // [2] -> shade 200
"#bef264", // [3] -> shade 300
"#a3e635", // [4] -> shade 400
"#4d7c0f", // [5] -> shade 600
"#3f6212", // [6] -> shade 700
"#365314", // [7] -> shade 800
"#1a2e05", // [8] -> shade 900
"#0f1903", // [9] -> shade 950
"#84CC16" // [10] -> lime base
];
exports.emeraldColors = [
"#ecfdf5", // [0] -> shade 50
"#d1fae5", // [1] -> shade 100
"#a7f3d0", // [2] -> shade 200
"#6ee7b7", // [3] -> shade 300
"#34d399", // [4] -> shade 400
"#059669", // [5] -> shade 600
"#047857", // [6] -> shade 700
"#065f46", // [7] -> shade 800
"#064e3b", // [8] -> shade 900
"#022c22", // [9] -> shade 950
"#10B981" // [10] -> emerald base
];
exports.tealColors = [
"#f0fdfa", // [0] -> shade 50
"#ccfbf1", // [1] -> shade 100
"#99f6e4", // [2] -> shade 200
"#5eead4", // [3] -> shade 300
"#2dd4bf", // [4] -> shade 400
"#0d9488", // [5] -> shade 600
"#0f766e", // [6] -> shade 700
"#115e59", // [7] -> shade 800
"#134e4a", // [8] -> shade 900
"#042f2e", // [9] -> shade 950
"#14B8A6" // [10] -> teal base
];
exports.cyanColors = [
"#ecfeff", // [0] -> shade 50
"#cffafe", // [1] -> shade 100
"#a5f3fc", // [2] -> shade 200
"#67e8f9", // [3] -> shade 300
"#22d3ee", // [4] -> shade 400
"#0891b2", // [5] -> shade 600
"#0e7490", // [6] -> shade 700
"#155e75", // [7] -> shade 800
"#164e63", // [8] -> shade 900
"#083344", // [9] -> shade 950
"#06B6D4" // [10] -> cyan base
];
exports.skyColors = [
"#f0f9ff", // [0] -> shade 50
"#e0f2fe", // [1] -> shade 100
"#bae6fd", // [2] -> shade 200
"#7dd3fc", // [3] -> shade 300
"#38bdf8", // [4] -> shade 400
"#0284c7", // [5] -> shade 600
"#0369a1", // [6] -> shade 700
"#075985", // [7] -> shade 800
"#0c4a6e", // [8] -> shade 900
"#082f49", // [9] -> shade 950
"#0EA5E9" // [10] -> sky base
];
exports.indigoColors = [
"#eef2ff", // [0] -> shade 50
"#e0e7ff", // [1] -> shade 100
"#c7d2fe", // [2] -> shade 200
"#a5b4fc", // [3] -> shade 300
"#818cf8", // [4] -> shade 400
"#4f46e5", // [5] -> shade 600
"#4338ca", // [6] -> shade 700
"#3730a3", // [7] -> shade 800
"#312e81", // [8] -> shade 900
"#1e1b4b", // [9] -> shade 950
"#6366F1" // [10] -> indigo base
];
exports.purpleColors = [
"#faf5ff", // [0] -> shade 50
"#f3e8ff", // [1] -> shade 100
"#e9d5ff", // [2] -> shade 200
"#d8b4fe", // [3] -> shade 300
"#c084fc", // [4] -> shade 400
"#9333ea", // [5] -> shade 600
"#7e22ce", // [6] -> shade 700
"#6b21a8", // [7] -> shade 800
"#581c87", // [8] -> shade 900
"#2e1065", // [9] -> shade 950
"#A855F7" // [10] -> purple base
];
exports.fuchsiaColors = [
"#fdf4ff", // [0] -> shade 50
"#fae8ff", // [1] -> shade 100
"#f5d0fe", // [2] -> shade 200
"#f0abfc", // [3] -> shade 300
"#e879f9", // [4] -> shade 400
"#c026d3", // [5] -> shade 600
"#a21caf", // [6] -> shade 700
"#86198f", // [7] -> shade 800
"#701a75", // [8] -> shade 900
"#4a044e", // [9] -> shade 950
"#D946EF" // [10] -> fuchsia base
];
exports.pinkColors = [
"#fdf2f8", // [0] -> shade 50
"#fce7f3", // [1] -> shade 100
"#fbcfe8", // [2] -> shade 200
"#f9a8d4", // [3] -> shade 300
"#f472b6", // [4] -> shade 400
"#db2777", // [5] -> shade 600
"#be185d", // [6] -> shade 700
"#9d174d", // [7] -> shade 800
"#831843", // [8] -> shade 900
"#500724", // [9] -> shade 950
"#EC4899" // [10] -> pink base
];
// export const SHADCN_DEFAULT_COLORS = [
// { id: "zinc", name: "Zinc", color: "#71717A", primaryPalette: zincColors, primaryShade: { light: 8, dark: 0 }, secondary: "zinc", secondaryPalette: zincColors },
// { id: "slate", name: "Slate", color: "#64748B", primaryPalette: slateColors, primaryShade: { light: 8, dark: 0 }, secondary: "slate", secondaryPalette: slateColors },
// { id: "stone", name: "Stone", color: "#78716C", primaryPalette: stoneColors, primaryShade: { light: 8, dark: 0 }, secondary: "stone", secondaryPalette: stoneColors},
// { id: "gray", name: "Gray", color: "#6B7280", primaryPalette: grayColors, primaryShade: { light: 8, dark: 0 }, secondary: "gray", secondaryPalette: grayColors },
// { id: "neutral", name: "Neutral", color: "#737373", primaryPalette: neutralColors, primaryShade: { light: 8, dark: 0 }, secondary: "neutral", secondaryPalette: neutralColors },
// { id: "red", name: "Red", color: "#EF4444", primaryPalette: redColors, primaryShade: { light: 5, dark: 5 }, secondary: "neutral", secondaryPalette: neutralColors },
// { id: "rose", name: "Rose", color: "#F43F5E", primaryPalette: roseColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "orange", name: "Orange", color: "#F97316", primaryPalette: orangeColors, primaryShade: { light: 5, dark: 6 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "green", name: "Green", color: "#10B981", primaryPalette: greenColors, primaryShade: { light: 6, dark: 5 }, secondary: 'stone', secondaryPalette: stoneColors },
// { id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: blueColors, primaryShade: { light: 6, dark: 5 }, secondary: "slate", secondaryPalette: slateColors },
// { id: "yellow", name: "Yellow", color: "#F59E0B", primaryPalette: yellowColors, primaryShade: { light: 4, dark: 4 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: violetColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
// ];
exports.MANTINE_DEFAULT_COLORS = [
{ id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "gray", name: "Gray", color: "#6B7280", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "red", name: "Red", color: "#EF4444", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "pink", name: "Pink", color: "#F43F5E", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "grape", name: "Grape", color: "#8B5CF6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "indigo", name: "Indigo", color: "#6366F1", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "cyan", name: "Cyan", color: "#22D3EE", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "teal", name: "Teal", color: "#14B8A6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "green", name: "Green", color: "#10B981", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "lime", name: "Lime", color: "#65A30D", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "yellow", name: "Yellow", color: "#F59E0B", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "orange", name: "Orange", color: "#F97316", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
];
exports.SHADCN_DEFAULT_COLORS = [
{ id: "zinc", name: "Zinc", color: "#71717A", primaryPalette: exports.zincColors, primaryShade: { light: 8, dark: 0 }, secondary: "zinc", secondaryPalette: exports.zincColors },
{ id: "slate", name: "Slate", color: "#64748B", primaryPalette: exports.slateColors, primaryShade: { light: 8, dark: 0 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "gray", name: "Gray", color: "#6B7280", primaryPalette: exports.grayColors, primaryShade: { light: 8, dark: 0 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "neutral", name: "Neutral", color: "#737373", primaryPalette: exports.neutralColors, primaryShade: { light: 8, dark: 0 }, secondary: "neutral", secondaryPalette: exports.neutralColors },
{ id: "stone", name: "Stone", color: "#78716C", primaryPalette: exports.stoneColors, primaryShade: { light: 8, dark: 0 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "red", name: "Red", color: "#EF4444", primaryPalette: exports.redColors, primaryShade: { light: 5, dark: 5 }, secondary: "neutral", secondaryPalette: exports.neutralColors },
{ id: "rose", name: "Rose", color: "#F43F5E", primaryPalette: exports.roseColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "orange", name: "Orange", color: "#F97316", primaryPalette: exports.orangeColors, primaryShade: { light: 5, dark: 6 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "amber", name: "Amber", color: "#F59E0B", primaryPalette: exports.amberColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "yellow", name: "Yellow", color: "#EAB308", primaryPalette: exports.yellowColors, primaryShade: { light: 4, dark: 4 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "lime", name: "Lime", color: "#84CC16", primaryPalette: exports.limeColors, primaryShade: { light: 5, dark: 4 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "green", name: "Green", color: "#22C55E", primaryPalette: exports.greenColors, primaryShade: { light: 6, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "emerald", name: "Emerald", color: "#10B981", primaryPalette: exports.emeraldColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "teal", name: "Teal", color: "#14B8A6", primaryPalette: exports.tealColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "cyan", name: "Cyan", color: "#06B6D4", primaryPalette: exports.cyanColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "sky", name: "Sky", color: "#0EA5E9", primaryPalette: exports.skyColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: exports.blueColors, primaryShade: { light: 6, dark: 5 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "indigo", name: "Indigo", color: "#6366F1", primaryPalette: exports.indigoColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: exports.violetColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "purple", name: "Purple", color: "#A855F7", primaryPalette: exports.purpleColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "fuchsia", name: "Fuchsia", color: "#D946EF", primaryPalette: exports.fuchsiaColors, primaryShade: { light: 5, dark: 7 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "pink", name: "Pink", color: "#EC4899", primaryPalette: exports.pinkColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
];
================================================
FILE: js/generated/colors.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SHADCN_DEFAULT_COLORS = exports.MANTINE_DEFAULT_COLORS = exports.pinkColors = exports.fuchsiaColors = exports.purpleColors = exports.indigoColors = exports.skyColors = exports.cyanColors = exports.tealColors = exports.emeraldColors = exports.limeColors = exports.amberColors = exports.violetColors = exports.yellowColors = exports.blueColors = exports.greenColors = exports.orangeColors = exports.roseColors = exports.redColors = exports.neutralColors = exports.grayColors = exports.stoneColors = exports.slateColors = exports.zincColors = void 0;
// Note: 500 shade in tailwind color is not included in the color palette except for orange, green and blue
// Color shades in tailwind are 50, 100, 200, 300, 400, 600, 700, 800, 900, 950
exports.zincColors = [
"#fafafa", // [0] -> shade 50
"#f4f4f5", // [1] -> shade 100
"#e4e4e7", // [2] -> shade 200
"#d4d4d8", // [3] -> shade 300
"#a1a1aa", // [4] -> shade 400
"#52525b", // [5] -> shade 600
"#3f3f46", // [6] -> shade 700
"#27272a", // [7] -> shade 800
"#18181b", // [8] -> shade 900
"#09090b", // [9] -> shade 950
"#71717A" // [10] -> zinc base
];
exports.slateColors = [
"#f8fafc", // [0] -> shade 50
"#f1f5f9", // [1] -> shade 100
"#e2e8f0", // [2] -> shade 200
"#cbd5e1", // [3] -> shade 300
"#94a3b8", // [4] -> shade 400
"#475569", // [5] -> shade 600
"#334155", // [6] -> shade 700
"#1e293b", // [7] -> shade 800
"#0f172a", // [8] -> shade 900
"#020817", // [9] -> shade 950 (original tailwind color was #020617)
"#64748B" // [10] -> slate base
];
exports.stoneColors = [
"#fafaf9", // [0] -> shade 50
"#f5f5f4", // [1] -> shade 100
"#e7e5e4", // [2] -> shade 200
"#d6d3d1", // [3] -> shade 300
"#a8a29e", // [4] -> shade 400
"#57534e", // [5] -> shade 600
"#44403c", // [6] -> shade 700
"#292524", // [7] -> shade 800
"#1c1917", // [8] -> shade 900
"#0c0a09", // [9] -> shade 950
"#78716C" // [10] -> stone base
];
exports.grayColors = [
"#f9fafb", // [0] -> shade 50
"#f3f4f6", // [1] -> shade 100
"#e5e7eb", // [2] -> shade 200
"#d1d5db", // [3] -> shade 300
"#9ca3af", // [4] -> shade 400
"#4b5563", // [5] -> shade 600
"#374151", // [6] -> shade 700
"#1f2937", // [7] -> shade 800
"#111827", // [8] -> shade 900
"#030712", // [9] -> shade 950
"#6B7280" // [10] -> gray base
];
exports.neutralColors = [
"#fafafa", // [0] -> shade 50
"#f5f5f5", // [1] -> shade 100
"#e5e5e5", // [2] -> shade 200
"#d4d4d4", // [3] -> shade 300
"#a3a3a3", // [4] -> shade 400
"#525252", // [5] -> shade 600
"#404040", // [6] -> shade 700
"#262626", // [7] -> shade 800
"#171717", // [8] -> shade 900
"#0a0a0a", // [9] -> shade 950
"#737373" // [10] -> neutral base
];
exports.redColors = [
"#FEF2F2", // [0] -> shade 50
"#FEE2E2", // [1] -> shade 100
"#FECACA", // [2] -> shade 200
"#FCA5A5", // [3] -> shade 300
"#F87171", // [4] -> shade 400
"#DC2626", // [5] -> shade 600
"#B91C1C", // [6] -> shade 700
"#991B1B", // [7] -> shade 800
"#7F1D1D", // [8] -> shade 900
"#450A0A", // [9] -> shade 950
"#EF4444" // [10] -> red base
];
exports.roseColors = [
"#fff1f2", // [0] -> shade 50
"#ffe4e6", // [1] -> shade 100
"#fecdd3", // [2] -> shade 200
"#fda4af", // [3] -> shade 300
"#fb7185", // [4] -> shade 400
"#e11d48", // [5] -> shade 600
"#be123c", // [6] -> shade 700
"#9f1239", // [7] -> shade 800
"#881337", // [8] -> shade 900
"#4c0519", // [9] -> shade 950
"#F43F5E" // [10] -> base color as rose[10]
];
exports.orangeColors = [
"#fff7ed", // [0] -> shade 50
"#ffedd5", // [1] -> shade 100
"#fed7aa", // [2] -> shade 200
"#fdba74", // [3] -> shade 300
"#fb923c", // [4] -> shade 400
"#f97316", // [5] -> shade 500
"#ea580c", // [6] -> shade 600
"#9a3412", // [7] -> shade 800
"#7c2d12", // [8] -> shade 900
"#431407", // [9] -> shade 950
"#F97316", // [10] -> orange base
];
exports.greenColors = [
"#F0FDF4", // [0] -> shade 50
"#DCFCE7", // [1] -> shade 100
"#BBF7D0", // [2] -> shade 200
"#86EFAC", // [3] -> shade 300
"#4ADE80", // [4] -> shade 400
"#22c55e", // [5] -> shade 500
"#16A34A", // [6] -> shade 600
"#166534", // [7] -> shade 800
"#14532D", // [8] -> shade 900
"#052E16", // [9] -> shade 950
"#10B981", // [10] -> green base
];
exports.blueColors = [
"#eff6ff", // [0] -> shade 50
"#dbeafe", // [1] -> shade 100
"#bfdbfe", // [2] -> shade 200
"#93c5fd", // [3] -> shade 300
"#60a5fa", // [4] -> shade 400
"#3b82f6", // [5] -> shade 500
"#2563eb", // [6] -> shade 600
"#1e40af", // [7] -> shade 800
"#1e3a8a", // [8] -> shade 900
"#172554", // [9] -> shade 950
"#3B82F6", // [10] -> blue base
];
exports.yellowColors = [
"#fefce8", // [0] -> shade 50
"#fef9c3", // [1] -> shade 100
"#fef08a", // [2] -> shade 200
"#fde047", // [3] -> shade 300
"#facc15", // [4] -> shade 400
"#ca8a04", // [5] -> shade 500
"#a16207", // [6] -> shade 600
"#854d0e", // [7] -> shade 700
"#713f12", // [8] -> shade 800
"#3f2c06", // [9] -> shade 950
"#F59E0B", // [10] -> yellow base
];
exports.violetColors = [
"#f5f3ff", // [0] -> shade 50
"#ede9fe", // [1] -> shade 100
"#ddd6fe", // [2] -> shade 200
"#c4b5fd", // [3] -> shade 300
"#a78bfa", // [4] -> shade 400
"#7c3aed", // [5] -> shade 500
"#6d28d9", // [6] -> shade 600
"#5b21b6", // [7] -> shade 700
"#4c1d95", // [8] -> shade 800
"#1e1b4b", // [9] -> shade 950
"#8B5CF6", // [10] -> violet base
];
exports.amberColors = [
"#FFFBEB", // [0] -> shade 50
"#FEF3C7", // [1] -> shade 100
"#FDE68A", // [2] -> shade 200
"#FCD34D", // [3] -> shade 300
"#FBBF24", // [4] -> shade 400
"#f59e0b", // [5] -> shade 500
"#D97706", // [6] -> shade 600
"#92400E", // [7] -> shade 800
"#78350F", // [8] -> shade 900
"#451A03", // [9] -> shade 950
"#F59E0B", // [10] -> amber base
];
exports.limeColors = [
"#f7fee7", // [0] -> shade 50
"#ecfccb", // [1] -> shade 100
"#d9f99d", // [2] -> shade 200
"#bef264", // [3] -> shade 300
"#a3e635", // [4] -> shade 400
"#4d7c0f", // [5] -> shade 600
"#3f6212", // [6] -> shade 700
"#365314", // [7] -> shade 800
"#1a2e05", // [8] -> shade 900
"#0f1903", // [9] -> shade 950
"#84CC16" // [10] -> lime base
];
exports.emeraldColors = [
"#ecfdf5", // [0] -> shade 50
"#d1fae5", // [1] -> shade 100
"#a7f3d0", // [2] -> shade 200
"#6ee7b7", // [3] -> shade 300
"#34d399", // [4] -> shade 400
"#059669", // [5] -> shade 600
"#047857", // [6] -> shade 700
"#065f46", // [7] -> shade 800
"#064e3b", // [8] -> shade 900
"#022c22", // [9] -> shade 950
"#10B981" // [10] -> emerald base
];
exports.tealColors = [
"#f0fdfa", // [0] -> shade 50
"#ccfbf1", // [1] -> shade 100
"#99f6e4", // [2] -> shade 200
"#5eead4", // [3] -> shade 300
"#2dd4bf", // [4] -> shade 400
"#0d9488", // [5] -> shade 600
"#0f766e", // [6] -> shade 700
"#115e59", // [7] -> shade 800
"#134e4a", // [8] -> shade 900
"#042f2e", // [9] -> shade 950
"#14B8A6" // [10] -> teal base
];
exports.cyanColors = [
"#ecfeff", // [0] -> shade 50
"#cffafe", // [1] -> shade 100
"#a5f3fc", // [2] -> shade 200
"#67e8f9", // [3] -> shade 300
"#22d3ee", // [4] -> shade 400
"#0891b2", // [5] -> shade 600
"#0e7490", // [6] -> shade 700
"#155e75", // [7] -> shade 800
"#164e63", // [8] -> shade 900
"#083344", // [9] -> shade 950
"#06B6D4" // [10] -> cyan base
];
exports.skyColors = [
"#f0f9ff", // [0] -> shade 50
"#e0f2fe", // [1] -> shade 100
"#bae6fd", // [2] -> shade 200
"#7dd3fc", // [3] -> shade 300
"#38bdf8", // [4] -> shade 400
"#0284c7", // [5] -> shade 600
"#0369a1", // [6] -> shade 700
"#075985", // [7] -> shade 800
"#0c4a6e", // [8] -> shade 900
"#082f49", // [9] -> shade 950
"#0EA5E9" // [10] -> sky base
];
exports.indigoColors = [
"#eef2ff", // [0] -> shade 50
"#e0e7ff", // [1] -> shade 100
"#c7d2fe", // [2] -> shade 200
"#a5b4fc", // [3] -> shade 300
"#818cf8", // [4] -> shade 400
"#4f46e5", // [5] -> shade 600
"#4338ca", // [6] -> shade 700
"#3730a3", // [7] -> shade 800
"#312e81", // [8] -> shade 900
"#1e1b4b", // [9] -> shade 950
"#6366F1" // [10] -> indigo base
];
exports.purpleColors = [
"#faf5ff", // [0] -> shade 50
"#f3e8ff", // [1] -> shade 100
"#e9d5ff", // [2] -> shade 200
"#d8b4fe", // [3] -> shade 300
"#c084fc", // [4] -> shade 400
"#9333ea", // [5] -> shade 600
"#7e22ce", // [6] -> shade 700
"#6b21a8", // [7] -> shade 800
"#581c87", // [8] -> shade 900
"#2e1065", // [9] -> shade 950
"#A855F7" // [10] -> purple base
];
exports.fuchsiaColors = [
"#fdf4ff", // [0] -> shade 50
"#fae8ff", // [1] -> shade 100
"#f5d0fe", // [2] -> shade 200
"#f0abfc", // [3] -> shade 300
"#e879f9", // [4] -> shade 400
"#c026d3", // [5] -> shade 600
"#a21caf", // [6] -> shade 700
"#86198f", // [7] -> shade 800
"#701a75", // [8] -> shade 900
"#4a044e", // [9] -> shade 950
"#D946EF" // [10] -> fuchsia base
];
exports.pinkColors = [
"#fdf2f8", // [0] -> shade 50
"#fce7f3", // [1] -> shade 100
"#fbcfe8", // [2] -> shade 200
"#f9a8d4", // [3] -> shade 300
"#f472b6", // [4] -> shade 400
"#db2777", // [5] -> shade 600
"#be185d", // [6] -> shade 700
"#9d174d", // [7] -> shade 800
"#831843", // [8] -> shade 900
"#500724", // [9] -> shade 950
"#EC4899" // [10] -> pink base
];
// export const SHADCN_DEFAULT_COLORS = [
// { id: "zinc", name: "Zinc", color: "#71717A", primaryPalette: zincColors, primaryShade: { light: 8, dark: 0 }, secondary: "zinc", secondaryPalette: zincColors },
// { id: "slate", name: "Slate", color: "#64748B", primaryPalette: slateColors, primaryShade: { light: 8, dark: 0 }, secondary: "slate", secondaryPalette: slateColors },
// { id: "stone", name: "Stone", color: "#78716C", primaryPalette: stoneColors, primaryShade: { light: 8, dark: 0 }, secondary: "stone", secondaryPalette: stoneColors},
// { id: "gray", name: "Gray", color: "#6B7280", primaryPalette: grayColors, primaryShade: { light: 8, dark: 0 }, secondary: "gray", secondaryPalette: grayColors },
// { id: "neutral", name: "Neutral", color: "#737373", primaryPalette: neutralColors, primaryShade: { light: 8, dark: 0 }, secondary: "neutral", secondaryPalette: neutralColors },
// { id: "red", name: "Red", color: "#EF4444", primaryPalette: redColors, primaryShade: { light: 5, dark: 5 }, secondary: "neutral", secondaryPalette: neutralColors },
// { id: "rose", name: "Rose", color: "#F43F5E", primaryPalette: roseColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "orange", name: "Orange", color: "#F97316", primaryPalette: orangeColors, primaryShade: { light: 5, dark: 6 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "green", name: "Green", color: "#10B981", primaryPalette: greenColors, primaryShade: { light: 6, dark: 5 }, secondary: 'stone', secondaryPalette: stoneColors },
// { id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: blueColors, primaryShade: { light: 6, dark: 5 }, secondary: "slate", secondaryPalette: slateColors },
// { id: "yellow", name: "Yellow", color: "#F59E0B", primaryPalette: yellowColors, primaryShade: { light: 4, dark: 4 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: violetColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
// ];
exports.MANTINE_DEFAULT_COLORS = [
{ id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "gray", name: "Gray", color: "#6B7280", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "red", name: "Red", color: "#EF4444", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "pink", name: "Pink", color: "#F43F5E", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "grape", name: "Grape", color: "#8B5CF6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "indigo", name: "Indigo", color: "#6366F1", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "cyan", name: "Cyan", color: "#22D3EE", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "teal", name: "Teal", color: "#14B8A6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "green", name: "Green", color: "#10B981", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "lime", name: "Lime", color: "#65A30D", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "yellow", name: "Yellow", color: "#F59E0B", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "orange", name: "Orange", color: "#F97316", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
];
exports.SHADCN_DEFAULT_COLORS = [
{ id: "zinc", name: "Zinc", color: "#71717A", primaryPalette: exports.zincColors, primaryShade: { light: 8, dark: 0 }, secondary: "zinc", secondaryPalette: exports.zincColors },
{ id: "slate", name: "Slate", color: "#64748B", primaryPalette: exports.slateColors, primaryShade: { light: 8, dark: 0 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "gray", name: "Gray", color: "#6B7280", primaryPalette: exports.grayColors, primaryShade: { light: 8, dark: 0 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "neutral", name: "Neutral", color: "#737373", primaryPalette: exports.neutralColors, primaryShade: { light: 8, dark: 0 }, secondary: "neutral", secondaryPalette: exports.neutralColors },
{ id: "stone", name: "Stone", color: "#78716C", primaryPalette: exports.stoneColors, primaryShade: { light: 8, dark: 0 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "red", name: "Red", color: "#EF4444", primaryPalette: exports.redColors, primaryShade: { light: 5, dark: 5 }, secondary: "neutral", secondaryPalette: exports.neutralColors },
{ id: "rose", name: "Rose", color: "#F43F5E", primaryPalette: exports.roseColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "orange", name: "Orange", color: "#F97316", primaryPalette: exports.orangeColors, primaryShade: { light: 5, dark: 6 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "amber", name: "Amber", color: "#F59E0B", primaryPalette: exports.amberColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "yellow", name: "Yellow", color: "#EAB308", primaryPalette: exports.yellowColors, primaryShade: { light: 4, dark: 4 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "lime", name: "Lime", color: "#84CC16", primaryPalette: exports.limeColors, primaryShade: { light: 5, dark: 4 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "green", name: "Green", color: "#22C55E", primaryPalette: exports.greenColors, primaryShade: { light: 6, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "emerald", name: "Emerald", color: "#10B981", primaryPalette: exports.emeraldColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: exports.stoneColors },
{ id: "teal", name: "Teal", color: "#14B8A6", primaryPalette: exports.tealColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "cyan", name: "Cyan", color: "#06B6D4", primaryPalette: exports.cyanColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "sky", name: "Sky", color: "#0EA5E9", primaryPalette: exports.skyColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: exports.blueColors, primaryShade: { light: 6, dark: 5 }, secondary: "slate", secondaryPalette: exports.slateColors },
{ id: "indigo", name: "Indigo", color: "#6366F1", primaryPalette: exports.indigoColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: exports.violetColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "purple", name: "Purple", color: "#A855F7", primaryPalette: exports.purpleColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "fuchsia", name: "Fuchsia", color: "#D946EF", primaryPalette: exports.fuchsiaColors, primaryShade: { light: 5, dark: 7 }, secondary: "gray", secondaryPalette: exports.grayColors },
{ id: "pink", name: "Pink", color: "#EC4899", primaryPalette: exports.pinkColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: exports.grayColors },
];
================================================
FILE: js/generated/theme-functions.cjs
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getShadcnInputBg = exports.getShadcnCardClassname = exports.getDefaultBorderColorNight = exports.getDefaultBorderColorDay = exports.getSecondaryLightColorNight = exports.getSecondaryLightColorDay = exports.getPrimaryContrastColorNight = exports.getPrimaryContrastColorDay = void 0;
exports.generateShadcnCSSFilledColorVariables = generateShadcnCSSFilledColorVariables;
exports.getPrimaryColorLight = getPrimaryColorLight;
exports.getPrimaryColorLightHover = getPrimaryColorLightHover;
exports.getPrimaryColorLightColor = getPrimaryColorLightColor;
exports.generateShadcnCSSLightColorVariables = generateShadcnCSSLightColorVariables;
exports.generateShadcnCSSOutlineColorVariables = generateShadcnCSSOutlineColorVariables;
exports.generateShadcnCSSContrastColorVariables = generateShadcnCSSContrastColorVariables;
var core_1 = require("@mantine/core");
var colors_1 = require("./colors.cjs");
var getPrimaryContrastColorDay = function (color) {
var colorObj = colors_1.SHADCN_DEFAULT_COLORS.find(function (c) { return c.id === color; });
if (color === 'zinc' ||
color === 'slate' ||
color === 'stone' ||
color === 'gray' ||
color === 'neutral' ||
color === 'red' ||
color === 'rose') {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.id, "-0)");
}
else if (color === 'orange' || color === 'blue' || color === 'violet') {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.secondary, "-0)");
}
else if (color === 'green') {
return "var(--mantine-color-rose-0)";
}
else if (color === 'yellow') {
return '#422006';
}
else {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.id, "-0)");
}
};
exports.getPrimaryContrastColorDay = getPrimaryContrastColorDay;
var getPrimaryContrastColorNight = function (color) {
var colorObj = colors_1.SHADCN_DEFAULT_COLORS.find(function (c) { return c.id === color; });
if (color === 'zinc' ||
color === ' slate' ||
color === 'stone' ||
color === 'gray' ||
color === 'neutral') {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.secondary, "-8)");
}
else if (color === 'red' || color === 'rose') {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.id, "-0)");
}
else if (color === 'orange' ||
color === 'violet' ||
color === 'emerald' ||
color === 'purple' ||
color === 'indigo' ||
color === 'pink' ||
color === 'fuchsia' ||
color === 'blue') {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.secondary, "-0)");
}
else if (color === 'green') {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.id, "-9)");
}
else if (color === 'yellow') {
return '#422006';
}
else {
return "var(--mantine-color-".concat(colorObj === null || colorObj === void 0 ? void 0 : colorObj.secondary, "-8)");
}
};
exports.getPrimaryContrastColorNight = getPrimaryContrastColorNight;
var getSecondaryLightColorDay = function (color) {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-zinc-1)';
}
else {
return 'var(--mantine-color-secondary-1)';
}
};
exports.getSecondaryLightColorDay = getSecondaryLightColorDay;
var getSecondaryLightColorNight = function (color) {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-secondary-7)';
}
else {
return 'var(--mantine-color-secondary-7)';
}
};
exports.getSecondaryLightColorNight = getSecondaryLightColorNight;
var getDefaultBorderColorDay = function (color) {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-zinc-2)';
}
else {
return 'var(--mantine-color-secondary-2)';
}
};
exports.getDefaultBorderColorDay = getDefaultBorderColorDay;
var getDefaultBorderColorNight = function (color) {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-zinc-7)';
}
else {
return 'var(--mantine-color-secondary-7)';
}
};
exports.getDefaultBorderColorNight = getDefaultBorderColorNight;
var getShadcnCardClassname = function (color) {
if (color === 'rose' || color === 'green') {
return 'globalMantineCardRoot__roseGreen';
}
else {
return 'globalMantineCardRoot';
}
};
exports.getShadcnCardClassname = getShadcnCardClassname;
var getShadcnInputBg = function (color) {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-secondary-filled)';
}
else {
return 'var(--mantine-color-default)';
}
};
exports.getShadcnInputBg = getShadcnInputBg;
function generateShadcnCSSFilledColorVariables(mode, isGeneration) {
if (isGeneration === void 0) { isGeneration = false; }
var lightMode = {};
var darkMode = {};
colors_1.SHADCN_DEFAULT_COLORS.forEach(function (_a) {
var id = _a.id, primaryShade = _a.primaryShade;
lightMode["--mantine-color-".concat(id, "-filled")] = "var(--mantine-color-".concat(id, "-").concat(primaryShade.light, ")");
lightMode["--mantine-color-".concat(id, "-filled-hover")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-").concat(primaryShade.light, ")', 0.9)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-").concat(primaryShade.light, ")"), 0.9);
darkMode["--mantine-color-".concat(id, "-filled")] = "var(--mantine-color-".concat(id, "-").concat(primaryShade.dark, ")");
darkMode["--mantine-color-".concat(id, "-filled-hover")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-").concat(primaryShade.dark, ")', 0.9)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-").concat(primaryShade.dark, ")"), 0.9);
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
function getPrimaryColorLight(color) {
return "var(--mantine-color-".concat(color, "-light)");
}
;
function getPrimaryColorLightHover(color) {
return "var(--mantine-color-".concat(color, "-light-hover)");
}
function getPrimaryColorLightColor(color) {
return "var(--mantine-color-".concat(color, "-light-color)");
}
function generateShadcnCSSLightColorVariables(mode, isGeneration) {
if (isGeneration === void 0) { isGeneration = false; }
var lightMode = {};
var darkMode = {};
colors_1.SHADCN_DEFAULT_COLORS.forEach(function (_a) {
var id = _a.id;
lightMode["--mantine-color-".concat(id, "-light")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-4)', 0.1)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-4)"), 0.1);
lightMode["--mantine-color-".concat(id, "-light-hover")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-light)', 0.8)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-light)"), 0.8);
lightMode["--mantine-color-".concat(id, "-light-color")] = "var(--mantine-color-".concat(id, "-6)");
darkMode["--mantine-color-".concat(id, "-light")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-4)', 0.15)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-4)"), 0.15);
darkMode["--mantine-color-".concat(id, "-light-hover")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-light)', 0.8)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-light)"), 0.8);
darkMode["--mantine-color-".concat(id, "-light-color")] = "var(--mantine-color-".concat(id, "-3)");
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
function generateShadcnCSSOutlineColorVariables(mode, isGeneration) {
if (isGeneration === void 0) { isGeneration = false; }
var lightMode = {};
var darkMode = {};
colors_1.SHADCN_DEFAULT_COLORS.forEach(function (_a) {
var id = _a.id, primaryShade = _a.primaryShade;
lightMode["--mantine-color-".concat(id, "-outline")] = "var(--mantine-color-".concat(id, "-").concat(primaryShade.light, ")");
lightMode["--mantine-color-".concat(id, "-outline-hover")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-4)', 0.1)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-4)"), 0.1);
darkMode["--mantine-color-".concat(id, "-outline")] = "var(--mantine-color-".concat(id, "-").concat(primaryShade.dark, ")");
darkMode["--mantine-color-".concat(id, "-outline-hover")] = isGeneration
? "{alpha('var(--mantine-color-".concat(id, "-4)', 0.15)}")
: (0, core_1.alpha)("var(--mantine-color-".concat(id, "-4)"), 0.15);
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
function generateShadcnCSSContrastColorVariables(mode) {
var lightMode = {};
var darkMode = {};
colors_1.SHADCN_DEFAULT_COLORS.forEach(function (_a) {
var id = _a.id;
lightMode["--mantine-color-".concat(id, "-contrast")] = (0, exports.getPrimaryContrastColorDay)(id);
darkMode["--mantine-color-".concat(id, "-contrast")] = (0, exports.getPrimaryContrastColorNight)(id);
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
================================================
FILE: js/scripts/compileTS.cjs
================================================
const { exec } = require("child_process");
const path = require("path");
const fs = require("fs");
// Function to convert .ts file to .js and save it in the current script directory
function convertTsToJs(tsFilePath) {
const outputDir = path.resolve(__dirname, "../generated"); // Set output directory as the current directory of this script
const command = `tsc ${tsFilePath} --outDir ${outputDir} --allowJs --esModuleInterop`;
exec(command, (error, stdout, stderr) => {
if (error) {
console.error(`Error converting file: ${tsFilePath}`);
console.error(stderr);
} else {
const fileName = path.basename(tsFilePath, ".ts");
const jsFilePath = path.join(outputDir, `${fileName}.js`);
const cjsFilePath = path.join(outputDir, `${fileName}.cjs`);
// Rename .js to .cjs
if (fs.existsSync(jsFilePath)) {
fs.renameSync(jsFilePath, cjsFilePath);
console.log(`Successfully converted and saved as: ${cjsFilePath}`);
// Fix imports in the .cjs file
let fileContent = fs.readFileSync(cjsFilePath, "utf8");
fileContent = fileContent.replace(/require\("\.\/(.*?)"\)/g, 'require("./$1.cjs")');
fs.writeFileSync(cjsFilePath, fileContent, "utf8");
console.log(`Fixed import paths in: ${cjsFilePath}`);
} else {
console.error(`Expected .js file not found at: ${jsFilePath}`);
}
}
});
}
// Convert specific TypeScript files
convertTsToJs(path.join(__dirname, "../../src/utils/colors.ts"));
convertTsToJs(path.join(__dirname, "../../src/utils/theme-functions.ts"));
================================================
FILE: js/scripts/components.cjs
================================================
const path = require("path");
const fs = require("fs");
function convertCase(string) {
const splitted = string
.replace(/([a-z0-9])([A-Z])/g, "$1 $2")
.toLowerCase()
.split(" ");
return splitted.join("-");
}
function removeReact(input) {
const lines = input.split("\n");
if (lines[0].includes("import React from 'react';")) {
lines.shift();
} else if (lines[0].includes("import React")) {
const remainingImports = lines[0].replace(/import React[^;]+;/, "");
lines[0] = remainingImports;
}
return lines.join("\n");
}
function getComponentCode(componentFolder, componentName) {
const componentContents = fs
.readdirSync(componentFolder)
.filter(
(item) => (item.endsWith(".tsx") && !item.endsWith(".story.tsx")) || item.endsWith(".ts") || item.endsWith(".css")
);
const mainFileContent = removeReact(fs.readFileSync(path.join(componentFolder, `${componentName}.tsx`), "utf-8"));
const otherFilesContent = componentContents
.filter((file) => file !== `${componentName}.tsx`)
.map((file) => ({
name: file,
content: removeReact(fs.readFileSync(path.join(componentFolder, file), "utf-8")),
}));
return [
{ fileName: `${componentName}.tsx`, language: "tsx", code: mainFileContent },
...otherFilesContent.map(({ name, content }) => ({
fileName: name,
language: name.endsWith(".css") ? "scss" : "tsx",
code: content,
})),
];
}
function convertComponentName(input) {
return input
.split("-") // Split the string by hyphens
.map((word) => word.charAt(0).toUpperCase() + word.slice(1)) // Capitalize each word
.join(""); // Join the words back together
}
function getAllComponents() {
const rootFolder = path.resolve(__dirname, "../../src/feature/blocks/lib/"); // Set output directory as the current directory of this script
const paths = fs.readdirSync(rootFolder);
const components = paths
.map((componentName) => {
const convertedComponentName = convertComponentName(componentName);
const componentDirectory = path.join(rootFolder, componentName);
const componentAttributes = path.join(componentDirectory, "attributes.json");
if (fs.lstatSync(componentDirectory).isDirectory()) {
const code = getComponentCode(componentDirectory, componentName);
const attributes = JSON.parse(fs.readFileSync(componentAttributes, "utf8"));
return {
component: convertedComponentName,
slug: convertCase(convertedComponentName),
code,
attributes,
};
}
return null;
})
.filter((c) => c);
const sortedComponents = [...components].sort((a, b) => a.attributes.order - b.attributes.order);
if (sortedComponents) {
const outputDir = path.join(__dirname, `../../src/feature/blocks/data/components.ts`);
const content = `export const components = ${JSON.stringify(sortedComponents, null, 2)};`;
fs.writeFileSync(outputDir, content, "utf-8");
console.log("Components generate successfully");
}
}
getAllComponents();
================================================
FILE: js/scripts/generateCssVariableResolver.cjs
================================================
const fs = require("fs");
const path = require("path");
const { MANTINE_DEFAULT_COLORS, SHADCN_DEFAULT_COLORS } = require("../generated/colors.cjs");
const { getPrimaryColorLight, getPrimaryContrastColorDay, getSecondaryLightColorDay, getDefaultBorderColorNight, getPrimaryContrastColorNight, getSecondaryLightColorNight, getDefaultBorderColorDay, generateShadcnCSSFilledColorVariables, generateShadcnCSSLightColorVariables, generateShadcnCSSOutlineColorVariables, generateShadcnCSSContrastColorVariables, getPrimaryColorLightHover, getPrimaryColorLightColor } = require("../generated/theme-functions.cjs");
function generateCSSVariableResolvers(style, colors, inputFilePath, outputFileName) {
const fileContent = fs.readFileSync(inputFilePath, "utf-8");
// Replace `${ ` with {{literal-open}} and `}` with {{literal-close}}
const escapedContent = fileContent
.replace(/\`\$\{\s*/g, "{{literal-open}}") // Replace `${ ` with {{literal-open}}
.replace(/\s*\}\`/g, "{{literal-close}}");
// Remove the import statement for the theme functions file
const updatedContent = escapedContent
.split("\n")
.filter(
(line) => !/^import.*\.\.\/\.\.\/utils\/theme-functions/.test(line.trim())
)
.join("\n");
function cssStringify(obj) {
return JSON.stringify(obj, null, 2).slice(1, -1).replace(/\n/g, '\n ').trim();
}
function replaceCSSPlaceholders(template, color) {
if (style === "shadcn") {
return template
.replace("(theme)", "()")
.replaceAll("getPrimaryColorLight(theme.primaryColor)", `'${getPrimaryColorLight(color.id)}'`)
.replaceAll("getPrimaryColorLightHover(theme.primaryColor)", `'${getPrimaryColorLightHover(color.id)}'`)
.replaceAll("getPrimaryColorLightColor(theme.primaryColor)", `'${getPrimaryColorLightColor(color.id)}'`)
.replaceAll("getPrimaryContrastColorDay(theme.primaryColor)", `'${getPrimaryContrastColorDay(color.id)}'`)
.replaceAll("getPrimaryContrastColorNight(theme.primaryColor)", `'${getPrimaryContrastColorNight(color.id)}'`)
.replaceAll("getSecondaryLightColorDay(theme.primaryColor)", `'${getSecondaryLightColorDay(color.id)}'`)
.replaceAll("getSecondaryLightColorNight(theme.primaryColor)", `'${getSecondaryLightColorNight(color.id)}'`)
.replaceAll("getDefaultBorderColorDay(theme.primaryColor)", `'${getDefaultBorderColorDay(color.id)}'`)
.replaceAll("getDefaultBorderColorNight(theme.primaryColor)", `'${getDefaultBorderColorNight(color.id)}'`)
.replaceAll(`...generateShadcnCSSFilledColorVariables('light')`, cssStringify(generateShadcnCSSFilledColorVariables('light', true)))
.replaceAll(`...generateShadcnCSSFilledColorVariables('dark')`, cssStringify(generateShadcnCSSFilledColorVariables('dark', true)))
.replaceAll(`...generateShadcnCSSLightColorVariables('light')`, cssStringify(generateShadcnCSSLightColorVariables('light', true)))
.replaceAll(`...generateShadcnCSSLightColorVariables('dark')`, cssStringify(generateShadcnCSSLightColorVariables('dark', true)))
.replaceAll(`...generateShadcnCSSOutlineColorVariables('light')`, cssStringify(generateShadcnCSSOutlineColorVariables('light', true)))
.replaceAll(`...generateShadcnCSSOutlineColorVariables('dark')`, cssStringify(generateShadcnCSSOutlineColorVariables('dark', true)))
.replaceAll(`...generateShadcnCSSContrastColorVariables('light')`, cssStringify(generateShadcnCSSContrastColorVariables('light')))
.replaceAll(`...generateShadcnCSSContrastColorVariables('dark')`, cssStringify(generateShadcnCSSContrastColorVariables('dark')));
} else {
return template;
}
}
let generatedCSSResolvers = {};
// Iterate through each color object in the array
colors.forEach((color) => {
const replacedContent = replaceCSSPlaceholders(updatedContent, color);
generatedCSSResolvers[color.id] = `\`${replacedContent}\``;
});
// Format the object as TypeScript content for export
const tsContent =
`export const ${outputFileName} = {\n` +
Object.keys(generatedCSSResolvers)
.map((key) => {
return ` ${key}: ${generatedCSSResolvers[key]}`;
})
.join(",\n") +
`\n};`;
const outputDir = path.join(__dirname, `../../src/themes/generated/${outputFileName}.ts`);
// Write the final content to the file
fs.writeFileSync(outputDir, tsContent, "utf-8");
console.log(`File created: ${outputDir}`);
}
// Generate CSS variable resolvers for Mantine and Shadcn using the provided color arrays
generateCSSVariableResolvers(
"mantine",
MANTINE_DEFAULT_COLORS,
path.join(__dirname, "../../src/themes/mantine/mantine-css-variable-resolver.ts"),
"generatedMantineCssVariableResolver"
);
generateCSSVariableResolvers(
"shadcn",
SHADCN_DEFAULT_COLORS,
path.join(__dirname, "../../src/themes/shadcn/shadcn-css-variable-resolver.ts"),
"generatedShadcnCssVariableResolver"
);
================================================
FILE: js/scripts/generateStyles.cjs
================================================
const fs = require("fs");
const path = require("path");
function generateCssStyles(location, outputFileName) {
// Read the content of the CSS file
const fileContent = fs.readFileSync(location, "utf-8");
// Format the content as a TypeScript export statement
const tsContent = `export const ${outputFileName} = \`${fileContent}\`;`;
// Define the output directory
const outputDir = path.join(__dirname, `../../src/themes/generated/${outputFileName}.ts`);
// Write the final content to the file
fs.writeFileSync(outputDir, tsContent, "utf-8");
console.log(`CSS styles file created: ${outputDir}`);
}
generateCssStyles(
path.join(__dirname, "../../src/styles/shadcn-styles.css"),
"generatedShadcnCssStyles"
);
generateCssStyles(
path.join(__dirname, "../../src/styles/mantine-styles.css"),
"generatedMantineCssStyles"
);
================================================
FILE: js/scripts/generateThemes.cjs
================================================
const fs = require("fs");
const path = require("path");
const { MANTINE_DEFAULT_COLORS, SHADCN_DEFAULT_COLORS } = require("../generated/colors.cjs");
function generateThemes(style, colors, inputFilePath, outputFileName) {
const fileContent = fs.readFileSync(inputFilePath, "utf-8");
function updateContent(content) {
let updatedContent = content;
// Replace template literals with custom markers
updatedContent = updatedContent.replace(/\`\$\{\s*/g, "{{literal-open}}").replace(/\s*\}\`/g, "{{literal-close}}");
// Remove import lines for theme-functions and colors
updatedContent = updatedContent
.split("\n")
.filter(
(line) =>
!/^import.*\.\.\/\.\.\/utils\/theme-functions/.test(line.trim()) &&
!/^import.*\.\.\/\.\.\/utils\/colors/.test(line.trim())
)
.join("\n");
// Remove the prettier-ignore comments
updatedContent = updatedContent.replaceAll("// prettier-ignore", "");
// Add the colors declaration before the export line
if (style === "shadcn") {
const colorDeclarations = SHADCN_DEFAULT_COLORS.map((color) => {
return `const ${color.id}Colors: MantineColorsTuple = ${JSON.stringify(color.primaryPalette)};`;
}).join("\n");
const exportLine = "export const shadcnTheme: MantineThemeOverride = createTheme({";
updatedContent = updatedContent.replace(exportLine, `${colorDeclarations}\n\n${exportLine}`);
}
return updatedContent;
}
function replacePlaceholders(template, color) {
let updatedTemplate = template;
if (style === "shadcn") {
updatedTemplate = updatedTemplate
.replace("primary: zincColors", `primary: ${color.id}Colors`)
.replace("secondary: zincColors", `secondary: ${color.secondary || color.id}Colors`)
.replace("dark: zincColors", `dark: ${color.secondary || color.id}Colors`)
.replace("{ light: 9, dark: 0 }", JSON.stringify(color.primaryShade));
} else {
updatedTemplate = updatedTemplate.replace(`primaryColor: "blue"`, `primaryColor: "${color.id}"`);
}
// Escape backticks and `${}`
updatedTemplate = updatedTemplate
.replace(/`/g, "\\`") // Escape backticks
.replace(/\$\{/g, "\\${") // Escape `${`
return updatedTemplate;
}
let generatedColors = {};
// Iterate through each color object in the array
colors.forEach((color) => {
const updatedContent = updateContent(fileContent);
const replacedContent = replacePlaceholders(updatedContent, color);
generatedColors[color.id] = `\`${replacedContent}\``;
});
// Format the object as TypeScript content for export
const tsContent =
`export const ${outputFileName} = {\n` +
Object.keys(generatedColors)
.map((key) => {
return ` ${key}: ${generatedColors[key]}`;
})
.join(",\n") +
`\n};`;
const outputDir = path.join(__dirname, `../../src/themes/generated/${outputFileName}.ts`);
// Write the final content to the file
fs.writeFileSync(outputDir, tsContent, "utf-8");
console.log(`File created: ${outputDir}`);
}
// Generate themes for Mantine and Shadcn using the provided color arrays
generateThemes(
"mantine",
MANTINE_DEFAULT_COLORS,
path.join(__dirname, "../../src/themes/mantine/mantine-theme.ts"),
"generatedMantineTheme"
);
generateThemes(
"shadcn",
SHADCN_DEFAULT_COLORS,
path.join(__dirname, "../../src/themes/shadcn/shadcn-theme.ts"),
"generatedShadcnTheme"
);
================================================
FILE: next.config.js
================================================
/** @type {import('next').NextConfig} */
import path from "node:path";
const nextConfig = {
output: "export", // Outputs a Single-Page Application (SPA).
distDir: "./dist", // Changes the build output directory to `./dist/`.
basePath: process.env.NEXT_PUBLIC_BASE_PATH, // Sets the base path to `/some-base-path`.
sassOptions: {
implementation: "sass-embedded",
additionalData: `@use "./_mantine" as mantine;`,
},
};
export default nextConfig;
================================================
FILE: package.json
================================================
{
"name": "mantine-modern-theme",
"private": true,
"version": "0.0.0",
"type": "module",
"engines": {
"node": ">=20.9.0"
},
"scripts": {
"dev": "next dev",
"build": "tsc -b && next build",
"start": "next start",
"lint": "eslint .",
"preview": "next preview",
"compileTs": "node ./js/scripts/compileTs.cjs",
"generateThemes": "node ./js/scripts/generateThemes.cjs",
"generateCssVariableResolver": "node ./js/scripts/generateCssVariableResolver.cjs",
"generateStyles": "node ./js/scripts/generateStyles.cjs",
"generate": "npm run compileTs && npm run generateThemes && npm run generateCssVariableResolver && npm run generateStyles",
"generateComponents": "node ./js/scripts/components.cjs"
},
"dependencies": {
"@mantine/charts": "^7.15.2",
"@mantine/code-highlight": "^7.15.2",
"@mantine/core": "^7.15.2",
"@mantine/dates": "^7.15.2",
"@mantine/form": "^7.15.2",
"@mantine/hooks": "^7.15.2",
"@mantine/spotlight": "^7.15.2",
"@mantinex/dev-icons": "^1.1.0",
"@mantinex/mantine-header": "^1.1.0",
"@mantinex/shiki": "^1.1.0",
"@radix-ui/react-icons": "^1.3.0",
"@tabler/icons-react": "^3.19.0",
"@tanstack/react-router": "^1.82.1",
"@tanstack/react-table": "^8.20.5",
"clsx": "^2.1.1",
"dayjs": "^1.11.13",
"next": "^15.1.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"recharts": "^2.15.0",
"sass": "^1.80.6",
"sass-loader": "^16.0.3",
"shiki": "^1.23.0",
"shikiji": "^0.7.6"
},
"devDependencies": {
"@eslint/js": "^9.11.1",
"@tanstack/router-devtools": "^1.82.1",
"@tanstack/router-plugin": "^1.81.9",
"@types/node": "^22.9.1",
"@types/react": "^18.3.10",
"@types/react-dom": "^18.3.0",
"autoprefixer": "^10.4.20",
"eslint": "^9.11.1",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-react-hooks": "^5.1.0-rc.0",
"eslint-plugin-react-refresh": "^0.4.12",
"globals": "^15.9.0",
"postcss": "^8.4.49",
"postcss-preset-mantine": "^1.17.0",
"postcss-simple-vars": "^7.0.1",
"prettier": "3.3.3",
"sass-embedded": "^1.81.0",
"tailwindcss": "^3.4.15",
"typescript": "^5.5.3",
"typescript-eslint": "^8.7.0",
"vite-plugin-node-polyfills": "^0.22.0"
}
}
================================================
FILE: postcss.config.js
================================================
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
"postcss-preset-mantine": {},
"postcss-simple-vars": {
variables: {
"mantine-breakpoint-xs": "36em",
"mantine-breakpoint-sm": "48em",
"mantine-breakpoint-md": "62em",
"mantine-breakpoint-lg": "75em",
"mantine-breakpoint-xl": "88em",
},
},
},
};
================================================
FILE: public/_redirects
================================================
/* /index.html 200
================================================
FILE: public/robots.txt
================================================
# Allow all crawlers
User-agent: *
Allow: /
# Sitemap location
Sitemap: https://mantinehub.com/sitemap.xml
# Disallow admin and private routes
Disallow: /api/
Disallow: /_next/
Disallow: /static/
================================================
FILE: src/_mantine.scss
================================================
@use "sass:math";
// Define variables for your breakpoints,
// values must be the same as in your theme
$mantine-breakpoint-xs: "36em";
$mantine-breakpoint-sm: "48em";
$mantine-breakpoint-md: "62em";
$mantine-breakpoint-lg: "75em";
$mantine-breakpoint-xl: "88em";
@function rem($value) {
@return #{math.div(math.div($value, $value * 0 + 1), 16)}rem;
}
@mixin light {
[data-mantine-color-scheme="light"] & {
@content;
}
}
@mixin dark {
[data-mantine-color-scheme="dark"] & {
@content;
}
}
@mixin hover {
@media (hover: hover) {
&:hover {
@content;
}
}
@media (hover: none) {
&:active {
@content;
}
}
}
@mixin smaller-than($breakpoint) {
@media (max-width: $breakpoint) {
@content;
}
}
@mixin larger-than($breakpoint) {
@media (min-width: $breakpoint) {
@content;
}
}
// Add direction mixins if you need rtl support
@mixin rtl {
[dir="rtl"] & {
@content;
}
}
@mixin ltr {
[dir="ltr"] & {
@content;
}
}
================================================
FILE: src/app/about/page.tsx
================================================
"use client";
import { AboutPage } from "@/components/custom/about/about";
import PageLayout from "@/components/layouts/page-layout";
import { Box, Button, Group, Space, Stack } from "@mantine/core";
export default function Page() {
return (
Contact us
Buy me a coffee
);
}
================================================
FILE: src/app/blocks/[slug]/page.tsx
================================================
import CategoryPage from "@/feature/blocks/components/categories/category-page";
import { CATEGORIES_SLUGS, getCategoryData } from "@/feature/blocks/data/categories";
import { getComponentsByCategory } from "@/feature/blocks/data/fn";
import { Title } from "@mantine/core";
// Return a list of `params` to populate the [slug] dynamic segment
export async function generateStaticParams() {
return CATEGORIES_SLUGS.map((slug) => ({
slug: slug,
}));
}
export default async function Page({ params }: { params: Promise<{ slug: string }> }) {
const { slug } = await params;
const category = getCategoryData(slug);
const components = getComponentsByCategory()[slug];
return (
{category?.name} components
);
}
================================================
FILE: src/app/blocks/layout.tsx
================================================
import PageLayout from "@/components/layouts/page-layout";
import BlockComponents from "@/feature/blocks/components/block-components/block-components";
export default function BlockPageLayout({ children }: { children: React.ReactNode }) {
return (
{children}
);
}
================================================
FILE: src/app/blocks/page.tsx
================================================
"use client";
import { CATEGORIES } from "@/feature/blocks/data/categories";
import { redirect } from "next/navigation";
export default function Page() {
// Redirect to the first category by default
const defaultCategory = CATEGORIES[0]?.categories[0]?.slug;
if (defaultCategory) {
redirect(`/blocks/${defaultCategory}`);
}
return <>>;
}
================================================
FILE: src/app/feedback/page.tsx
================================================
"use client";
import { TestimonialGrid } from "@/components/custom/testimonial/testimonial-grid";
import PageLayout from "@/components/layouts/page-layout";
import { testimonialItems } from "@/utils/testimonials";
import { Button, Group, Space, Stack } from "@mantine/core";
export default function Page() {
return (
Give Feedback
Star us on Github
);
}
================================================
FILE: src/app/how-to-use/page.tsx
================================================
"use client";
import { HowToUsePage } from "@/components/custom/how-to-use/how-to-use";
import PageLayout from "@/components/layouts/page-layout";
import { Box, Space, Stack } from "@mantine/core";
export default function Page() {
return (
);
}
================================================
FILE: src/app/layout.tsx
================================================
import type { Metadata } from "next";
import "@mantine/core/styles.css";
import "@mantine/charts/styles.css";
import "@mantine/dates/styles.css";
import "@mantine/spotlight/styles.css";
import "@mantinex/shiki/styles.css";
import "@mantine/code-highlight/styles.css";
import "../styles/shadcn-styles.css";
import "../styles/fonts.css";
import "../styles/index.scss";
import { ColorSchemeScript, mantineHtmlProps } from "@mantine/core";
import { ThemeProvider } from "@/theme-context";
import GoogleAnalytics from "@/components/GoogleAnalytics";
import MicrosoftClarity from "@/components/MicrosoftClarity";
export const metadata: Metadata = {
metadataBase: new URL('https://mantinehub.com'),
title: {
default: "MantineHub - Modern preconfigured themes, blocks, templates and more.",
template: "%s | MantineHub"
},
description: `MantineHub is an open-source tool to create modern,
customizable shadcn inspired themes for Mantine UI components.
Easily adjust styles, colors, radius, and light/dark modes,
and export the theme object for quick integration into any Mantine project.`,
keywords: [
"Mantine",
"UI Components",
"Theme Builder",
"React",
"Next.js",
"Web Development",
"Frontend",
"Design System",
"Custom Themes",
"shadcn",
"UI/UX",
"Component Library"
],
authors: [{ name: "MantineHub Team" }],
creator: "MantineHub",
publisher: "MantineHub",
formatDetection: {
email: false,
address: false,
telephone: false,
},
icons: {
icon: '/favicon.svg',
apple: '/favicon.svg',
},
openGraph: {
title: "MantineHub",
description: "MantineHub is an open-source tool to create modern, customizable shadcn inspired themes for Mantine UI components. Easily adjust styles, colors, radius, and light/dark modes, and export the theme object for quick integration into any Mantine project.",
url: "https://mantinehub.com",
siteName: "MantineHub",
images: [
{
url: "https://private-user-images.githubusercontent.com/53397244/375193930-0b673eec-ed49-4928-a021-5bee7d0ec8e3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI1MDExOTEsIm5iZiI6MTczMjUwMDg5MSwicGF0aCI6Ii81MzM5NzI0NC8zNzUxOTM5MzAtMGI2NzNlZWMtZWQ0OS00OTI4LWEwMjEtNWJlZTdkMGVjOGUzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI1VDAyMTQ1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk5MDdmMjg5M2YyOTljYmE0MzljOGU4ZTFiNWE5OTdhMDU2OTg2MWQ1MWYzMGFkYjFjMmNmOGRhZjMxYjA4NWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.E0xeyrPWy02alRycR2WZpQ2nbxgjNSshSE5n6Q28lck",
width: 1200,
height: 630,
alt: "MantineHub Preview",
},
],
locale: "en_US",
type: "website",
},
twitter: {
card: "summary_large_image",
title: "MantineHub",
description: "MantineHub is an open-source tool to create modern, customizable shadcn inspired themes for Mantine UI components. Easily adjust styles, colors, radius, and light/dark modes, and export the theme object for quick integration into any Mantine project.",
images: ["https://private-user-images.githubusercontent.com/53397244/375193930-0b673eec-ed49-4928-a021-5bee7d0ec8e3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzI1MDExOTEsIm5iZiI6MTczMjUwMDg5MSwicGF0aCI6Ii81MzM5NzI0NC8zNzUxOTM5MzAtMGI2NzNlZWMtZWQ0OS00OTI4LWEwMjEtNWJlZTdkMGVjOGUzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDExMjUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQxMTI1VDAyMTQ1MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTk5MDdmMjg5M2YyOTljYmE0MzljOGU4ZTFiNWE5OTdhMDU2OTg2MWQ1MWYzMGFkYjFjMmNmOGRhZjMxYjA4NWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.E0xeyrPWy02alRycR2WZpQ2nbxgjNSshSE5n6Q28lck"],
creator: "@mantinehub",
site: "@mantinehub",
},
robots: {
index: true,
follow: true,
googleBot: {
index: true,
follow: true,
'max-video-preview': -1,
'max-image-preview': 'large',
'max-snippet': -1,
},
},
verification: {
google: '-9BanVY_agkYef8a_hUF9btoOrREhuEDXwgnLGIjC98', // Add your Google Search Console verification code
},
alternates: {
canonical: 'https://mantinehub.com',
},
viewport: "width=device-width, initial-scale=1.0",
};
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
{children}
{/* {children} */}
);
}
================================================
FILE: src/app/loading.tsx
================================================
import { Center, Loader } from "@mantine/core";
export default function Loading() {
return (
);
}
================================================
FILE: src/app/page.tsx
================================================
"use client";
import MantineCards from "@/components/custom/theme-example-cards/mantine-cards";
import PageLayout from "@/components/layouts/page-layout";
import { Anchor } from "@mantine/core";
export default function Page() {
return (
Save time on styling with our ready-to-use themes for{" "}
Mantine
{" "}
components. Just copy, paste, and watch your app come to life.
>
}
>
);
}
================================================
FILE: src/app/playground/page.tsx
================================================
"use client";
import ComponentsDemo from "@/components/custom/components-demo/components-demo";
import PageLayout from "@/components/layouts/page-layout";
export default function Page() {
return (
);
}
================================================
FILE: src/app/sitemap.ts
================================================
import { MetadataRoute } from 'next'
// Configure for static export
export const dynamic = 'force-static'
export const revalidate = 3600 // Revalidate every hour
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = 'https://mantinehub.com'
return [
{
url: baseUrl,
lastModified: new Date(),
changeFrequency: 'daily',
priority: 1,
},
{
url: `${baseUrl}/blocks`,
lastModified: new Date(),
changeFrequency: 'daily',
priority: 0.9,
},
{
url: `${baseUrl}/about`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.6,
},
{
url: `${baseUrl}/how-to-use`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.6,
},
{
url: `${baseUrl}/playground`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.7,
},
{
url: `${baseUrl}/feedback`,
lastModified: new Date(),
changeFrequency: 'monthly',
priority: 0.5,
},
]
}
================================================
FILE: src/components/GoogleAnalytics.tsx
================================================
'use client';
import Script from 'next/script';
export default function GoogleAnalytics() {
return (
<>
>
);
}
================================================
FILE: src/components/MicrosoftClarity.tsx
================================================
'use client';
import Script from 'next/script';
export default function MicrosoftClarity() {
return (
);
}
================================================
FILE: src/components/custom/about/about.tsx
================================================
import { Anchor, Box, Divider, List, Stack, Text, Title } from "@mantine/core";
export const AboutPage = () => {
return (
{/* About Mantine Theme Builder */}
🤘 Motivation
Mantine is an amazing library with a wide range of components, extensive customization options, and a vibrant
community. It offers a developer experience unmatched by many React libraries. However, its default styling
can feel less modern compared to frameworks like shadcn and Radix, which many companies prefer. Setting up
colors and styles to match those modern aesthetics can be time-consuming and may hinder projects that need a
quick start.
Enter MantineHub. Initially created as an experimental project to simplify the process of modernizing
Mantine's styling, MantineHub offers pre-configured themes inspired by Shadcn, Radix, and more. With
MantineHub, developers can quickly integrate modern styling into their projects by copying and pasting the
theme configuration.
Due to the overwhelming positive feedback and community endorsment we’ve received, MantineHub has evolved into
a comprehensive toolkit. It now supports all Mantine components and introduces exciting new features like
Blocks—pre-built UI components designed to seamlessly work with the generated themes.
📌 What We Offer
🎨 Themes
Our theme library eliminates the process of creating modern styles for Mantine projects. Choose from a variety
of predefined themes—like Shadcn-inspired designs, Tailwind-like colors (zinc, amber, rose, and red), and even
Glassmorphic themes from Radix—and customize them to fit your project needs. The themes are fully compatible
with all Mantine components, ensuring a cohesive and polished design for your application.
🧩 Blocks
Blocks are pre-built, ready-to-use UI components designed for specific features that developers can
effortlessly integrate into their projects. These components work seamlessly with the themes generated by
MantineHub, saving you time and effort.
Currently, Blocks are an experimental feature with a limited library. Based on user feedback, we plan to
expand this collection significantly, making it an extensive resource for developers. Contributions and
feature requests are welcome to help grow this library.
⛹️♂️ Playground
The Playground is an interactive tool that allows you to see how pre-built themes look on individual Mantine
components. Customize component-specific props—like variant, color, and other features—in real-time and
explore how each change affects the component's appearance. The Playground ensures you can visualize and
fine-tune your design choices with ease, making it a valuable addition to the development process.
{/*
🎨 Understanding the Color Schema
Mantine offers a robust and flexible theming system that we have fully leveraged to create modern, cohesive
designs. The themes and color schemes you see on this site are a result of carefully crafted configurations,
making it easy to integrate modern aesthetics. Understanding how these variables and customizations work is
essential to fully unlock the potential of your theme.
To learn about these variables, their roles, and best practices for theming, refer to our detailed blogs where
we explain the color schema and provide practical examples. Our blogs cover how to approach theming your
components, how to use these variables effectively, and how to create a cohesive design system for your
project.
We encourage you to read through these articles if you're looking to customize this theme or understand the
best way to utilize the predefined color variables. This will help you maintain consistency and visual harmony
throughout your project.
*/}
🚀 Future Plans
MantineHub(previously, Mantine Theme Builder) is now more than a theming tool—it's an evolving ecosystem for
Mantine developers. New features are in the pipeline to further enhance the developer experience, streamline
workflows, and solidify Mantine as the go-to UI library for React projects.
Stay tuned for exciting updates, and let us know what features you'd like to see next!
🧑💻 Contributors
This project is maintained by{" "}
Abhishek-S-Lal
{" "}
and{" "}
gopukr
. Contributions from the community are welcome and appreciated. Please see our{" "}
CONTRIBUTING.md file
{" "}
for more information on how to get involved.
🤝 Join us
MantineHub thrives on community feedback and contributions. If you find MantineHub helpful, please share your thoughts, and request or contribute features. Together, we can make MantineHub a complimentary tool to make UI development with Mantine much more faster and easier.
If you find this project useful, please consider
Starring the repository on{" "}
GitHub
Sharing the project with your friends and colleagues
Contributing to the project
Buy me a coffee
);
};
================================================
FILE: src/components/custom/blocks/coming-soon/coming-soon.module.css
================================================
.container {
padding: 4rem 1rem;
}
.title {
font-size: 8rem;
font-weight: 800;
background: linear-gradient(135deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-indigo-9) 100%);
margin-bottom: 1.5rem;
}
.socialButton {
width: 48px;
height: 48px;
border-radius: 24px;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
}
.socialButton:hover {
transform: translateY(-2px);
}
.socialIcon {
width: 24px;
height: 24px;
color: var(--mantine-color-dimmed);
}
.successMessage {
text-align: center;
color: var(--mantine-primary-color-7);
font-size: 1.25rem;
font-weight: 500;
padding: 1rem;
border-radius: var(--mantine-radius-md);
}
================================================
FILE: src/components/custom/blocks/coming-soon/coming-soon.tsx
================================================
import { Box, Container, Text, Group, Stack } from "@mantine/core";
// import { MagnifyingGlassIcon, TwitterLogoIcon, InstagramLogoIcon, GitHubLogoIcon } from "@radix-ui/react-icons";
import styles from "./coming-soon.module.css";
export const ComingSoon = () => {
// const [email, setEmail] = useState("");
// const [isSubscribed, setIsSubscribed] = useState(false);
// const handleSubscribe = () => {
// if (email && email.includes("@")) {
// setIsSubscribed(true);
// setEmail("");
// // Here you would typically handle the email subscription
// }
// };
// const handleSocialClick = (url: string) => {
// window.open(url, "_blank", "noopener,noreferrer");
// };
return (
Coming Soon
We're working hard to bring you more awesome block. Stay tuned for updates!
{/*
{!isSubscribed ? (
setEmail(e.target.value)}
placeholder="Enter your email"
leftSection={ }
size="lg"
/>
Notify Me
) : (
Thanks for subscribing! We'll keep you posted.
)}
*/}
{/*
handleSocialClick("https://twitter.com")}
>
handleSocialClick("https://instagram.com")}
>
handleSocialClick("https://github.com")}
>
*/}
);
};
================================================
FILE: src/components/custom/change-theme-section/change-theme-button.tsx
================================================
import {
Box,
Button,
ColorSwatch,
Group,
MantineColorShade,
MantineColorsTuple,
Popover,
SimpleGrid,
Stack,
Text,
useMantineColorScheme,
} from "@mantine/core";
import { useLocalStorage } from "@mantine/hooks";
import { InfoCircledIcon, MoonIcon, ResetIcon, SunIcon } from "@radix-ui/react-icons";
import * as React from "react";
import { Tooltip } from "@mantine/core";
import { } from "@radix-ui/react-icons";
import { useTheme } from "../../../theme-context";
import { mantineTheme } from "../../../themes/mantine/mantine-theme";
import { shadcnTheme } from "../../../themes/shadcn/shadcn-theme";
import { MANTINE_DEFAULT_COLORS, SHADCN_DEFAULT_COLORS } from "../../../utils/colors";
import { getSecondaryPalette } from "../../../utils/functions";
export interface IThemeConfig {
style: string;
color: string;
radius: string;
}
const BUTTON_LABEL = "Change Theme";
export default function ChangeThemeButton() {
return (
{BUTTON_LABEL}
);
}
function Customizer() {
const { setTheme } = useTheme();
const { colorScheme, setColorScheme } = useMantineColorScheme();
const [localThemeConfig, setLocalThemeConfig, removeLocalThemeConfig] = useLocalStorage({
key: "mantine-theme",
});
const [baseColors, setBaseColors] = React.useState(SHADCN_DEFAULT_COLORS);
const [config, setConfig] = React.useState({
style: "shadcn",
color: SHADCN_DEFAULT_COLORS[0].id,
radius: "sm",
});
React.useEffect(() => {
if (localThemeConfig) {
setConfig(localThemeConfig);
if (localThemeConfig?.style === "shadcn") {
setBaseColors(SHADCN_DEFAULT_COLORS);
} else {
setBaseColors(MANTINE_DEFAULT_COLORS);
}
}
}, [localThemeConfig]);
const mantineColorButtons = baseColors.map((color: any) => (
}
key={color.id}
onClick={() => {
const updatedConfig = {
...config,
color: color.id,
};
setConfig(updatedConfig);
setLocalThemeConfig(updatedConfig);
setTheme((currentTheme) => ({
...currentTheme,
primaryColor: color.id,
primaryShade: color?.primaryShade as unknown as MantineColorShade,
colors: {
...currentTheme?.colors,
secondary: getSecondaryPalette(config.style, color.id) as unknown as MantineColorsTuple,
dark: getSecondaryPalette(config.style, color.id) as unknown as MantineColorsTuple,
},
}));
}}
>
{color.name}
));
return (
{BUTTON_LABEL}
Pick a style and color for your components.
{
setConfig({
...config,
color: SHADCN_DEFAULT_COLORS[0].id,
style: "shadcn",
radius: "sm",
});
setTheme({
...shadcnTheme,
primaryColor: SHADCN_DEFAULT_COLORS[0].id,
});
setBaseColors(SHADCN_DEFAULT_COLORS);
removeLocalThemeConfig();
}}
>
Style
{
//TODO: Refactoring needed
const updatedConfig = {
...config,
style: "mantine",
color: MANTINE_DEFAULT_COLORS[0].id,
};
setConfig(updatedConfig);
setLocalThemeConfig(updatedConfig);
setTheme(() => ({
...mantineTheme,
primaryColor: MANTINE_DEFAULT_COLORS[0].id,
}));
}}
>
Mantine
{
const updatedConfig = {
...config,
style: "shadcn",
color: SHADCN_DEFAULT_COLORS[0].id,
};
setConfig(updatedConfig);
setLocalThemeConfig(updatedConfig);
setTheme(() => ({
...shadcnTheme,
primaryColor: SHADCN_DEFAULT_COLORS[0].id,
}));
}}
>
Shadcn
RadixUI
Color
{mantineColorButtons}
Radius
{["xs", "sm", "md", "lg", "xl"].map((value: string) => {
return (
{
const updatedConfig = {
...config,
radius: value,
};
setConfig(updatedConfig);
setLocalThemeConfig(updatedConfig);
setTheme((prev) => ({
...prev,
defaultRadius: value,
}));
}}
>
{value}
);
})}
Mode
setColorScheme("light")}
>
Light
setColorScheme("dark")}
>
Dark
);
}
================================================
FILE: src/components/custom/change-theme-section/change-theme-section.tsx
================================================
import { Button, Group } from "@mantine/core";
import ChangeThemeButton from "./change-theme-button";
import CopyThemeCodeButton from "./copy-theme-code-button";
const ChangeThemeSection = ({ isBlockPage = false }: { isBlockPage?: boolean }) => {
return (
{isBlockPage ? (
Request a block
) : (
)}
);
};
export default ChangeThemeSection;
================================================
FILE: src/components/custom/change-theme-section/copy-theme-code-button.tsx
================================================
import { CodeHighlightTabs } from "@mantine/code-highlight";
import {
ActionIcon,
Anchor,
Box,
Button,
CloseIcon,
Flex,
Group,
MantineThemeOverride,
Modal,
ScrollArea,
Text,
Title,
} from "@mantine/core";
import { useDisclosure } from "@mantine/hooks";
import { CssIcon, TypeScriptIcon } from "@mantinex/dev-icons";
import { ExternalLinkIcon } from "@radix-ui/react-icons";
import { IconInfoCircle } from "@tabler/icons-react";
import { useTheme } from "../../../theme-context";
import { generatedMantineCssStyles } from "../../../themes/generated/generatedMantineCssStyles";
import { generatedMantineCssVariableResolver } from "../../../themes/generated/generatedMantineCssVariableResolver";
import { generatedMantineTheme } from "../../../themes/generated/generatedMantineTheme";
import { generatedShadcnCssStyles } from "../../../themes/generated/generatedShadcnCssStyles";
import { generatedShadcnCssVariableResolver } from "../../../themes/generated/generatedShadcnCssVariableResolver";
import { generatedShadcnTheme } from "../../../themes/generated/generatedShadcnTheme";
import { removeStringPlaceholders } from "../../../utils/functions";
const CopyThemeCodeButton = () => {
const { theme } = useTheme();
const [opened, { open, close }] = useDisclosure(false);
const tsIcon = ;
const cssIcon = ;
const getGeneratedTheme = (theme: MantineThemeOverride) => {
if (theme.other?.style === "mantine") {
const color = theme.primaryColor as keyof typeof generatedMantineTheme;
return generatedMantineTheme[color];
}
if (theme.other?.style === "shadcn") {
const color = theme.primaryColor as keyof typeof generatedShadcnTheme;
return generatedShadcnTheme[color];
}
};
const getGeneratedCssVariables = (theme: MantineThemeOverride) => {
if (theme.other?.style === "mantine") {
const color = theme.primaryColor as keyof typeof generatedMantineTheme;
return generatedMantineCssVariableResolver[color];
}
if (theme.other?.style === "shadcn") {
const color = theme.primaryColor as keyof typeof generatedShadcnTheme;
return removeStringPlaceholders(generatedShadcnCssVariableResolver[color]);
}
};
const getGeneratedCssStyles = (theme: MantineThemeOverride) => {
if (theme.other?.style === "mantine") {
return generatedMantineCssStyles;
}
if (theme.other?.style === "shadcn") {
return generatedShadcnCssStyles;
}
};
return (
<>
Current Theme
Font
How To use
Copy Code
>
);
};
export default CopyThemeCodeButton;
================================================
FILE: src/components/custom/components-demo/buttons/action-icon-demo.tsx
================================================
import { ActionIcon } from '@mantine/core';
import { IconAdjustments } from '@tabler/icons-react';
import { interactiveVariantsControl } from '../../../../utils/variants-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { ActionIcon } from '@mantine/core';
import { IconAdjustments } from '@tabler/icons-react';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const actionIconDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
interactiveVariantsControl,
{ prop: 'color', type: 'color', initialValue: "", libraryValue: "" },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/buttons/button-demo.tsx
================================================
import { Button } from '@mantine/core';
import { interactiveVariantsControl } from '../../../../utils/variants-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Button } from '@mantine/core';
function Demo() {
return Button ;
}
`;
function Wrapper(props: any) {
return Button ;
}
export const buttonDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
interactiveVariantsControl,
{ type: 'color', prop: 'color', initialValue: "", libraryValue: "" },
{ type: 'size', prop: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'loading', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/buttons/close-button-demo.tsx
================================================
import { CloseButton } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { CloseButton } from '@mantine/core';
function Demo() {
return ;
}
`;
function Wrapper(props: any) {
return ;
}
export const closeButtonDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{
prop: 'variant',
type: 'segmented',
data: ['transparent', 'subtle'],
libraryValue: 'subtle',
initialValue: 'subtle',
},
],
};
================================================
FILE: src/components/custom/components-demo/charts/area-chart-demo.tsx
================================================
import { AreaChart } from '@mantine/charts';
import { MantineDemo } from '../../../mantine/demo';
import { data, dataCode } from './data/_area-data';
const code = `
import { AreaChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const areaChartDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: dataCode, language: 'tsx', fileName: 'data.ts' },
],
controls: [
{
type: 'select',
prop: 'curveType',
initialValue: 'linear',
libraryValue: null,
data: [
{ value: 'bump', label: 'bump' },
{ value: 'linear', label: 'linear' },
{ value: 'natural', label: 'natural' },
{ value: 'monotone', label: 'monotone' },
{ value: 'step', label: 'step' },
{ value: 'stepBefore', label: 'stepBefore' },
{ value: 'stepAfter', label: 'stepAfter' },
],
},
{
type: 'segmented',
prop: 'tickLine',
initialValue: 'y',
libraryValue: 'y',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'segmented',
prop: 'gridAxis',
initialValue: 'x',
libraryValue: 'x',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'boolean',
prop: 'withGradient',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withXAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withYAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withDots',
initialValue: true,
libraryValue: true,
},
],
};
================================================
FILE: src/components/custom/components-demo/charts/bar-chart-demo.tsx
================================================
import { BarChart } from '@mantine/charts';
import { MantineDemo } from '../../../mantine/demo';
import { data, dataCode } from './data/_bar-data';
const code = `
import { BarChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const barchartDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: dataCode, language: 'tsx', fileName: 'data.ts' },
],
controls: [
{
type: 'segmented',
prop: 'tickLine',
initialValue: 'y',
libraryValue: '__',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'segmented',
prop: 'gridAxis',
initialValue: 'x',
libraryValue: 'x',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'boolean',
prop: 'withXAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withYAxis',
initialValue: true,
libraryValue: true,
},
],
};
================================================
FILE: src/components/custom/components-demo/charts/bubble-chart-demo.tsx
================================================
import { BubbleChart } from '@mantine/charts';
import { MantineDemo } from '../../../mantine/demo';
import { data, dataCode } from './data/_bubble-data';
const code = `
import { BubbleChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Demo(props: any) {
return (
);
}
export const bubbleChartDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: dataCode, language: 'tsx', fileName: 'data.ts' },
],
controls: [{ type: 'color', prop: 'color', initialValue: '', libraryValue: '' }],
};
================================================
FILE: src/components/custom/components-demo/charts/composite-chart-demo.tsx
================================================
import { CompositeChart } from '@mantine/charts';
import { data, dataCode } from './data/_area-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { CompositeChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const compositeChartDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: dataCode, language: 'tsx', fileName: 'data.ts' },
],
controls: [
{
type: 'select',
prop: 'curveType',
initialValue: 'linear',
libraryValue: null,
data: [
{ value: 'bump', label: 'bump' },
{ value: 'linear', label: 'linear' },
{ value: 'natural', label: 'natural' },
{ value: 'monotone', label: 'monotone' },
{ value: 'step', label: 'step' },
{ value: 'stepBefore', label: 'stepBefore' },
{ value: 'stepAfter', label: 'stepAfter' },
],
},
{
type: 'segmented',
prop: 'tickLine',
initialValue: 'y',
libraryValue: 'y',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'segmented',
prop: 'gridAxis',
initialValue: 'x',
libraryValue: 'x',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'boolean',
prop: 'withXAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withYAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withDots',
initialValue: true,
libraryValue: true,
},
],
};
================================================
FILE: src/components/custom/components-demo/charts/data/_area-data.ts
================================================
export const data = [
{
date: 'Mar 22',
Apples: 2890,
Oranges: 2338,
Tomatoes: 2452,
},
{
date: 'Mar 23',
Apples: 2756,
Oranges: 2103,
Tomatoes: 2402,
},
{
date: 'Mar 24',
Apples: 3322,
Oranges: 986,
Tomatoes: 1821,
},
{
date: 'Mar 25',
Apples: 3470,
Oranges: 2108,
Tomatoes: 2809,
},
{
date: 'Mar 26',
Apples: 3129,
Oranges: 1726,
Tomatoes: 2290,
},
];
export const dataCode = `
export const data = [
{
date: 'Mar 22',
Apples: 2890,
Oranges: 2338,
Tomatoes: 2452,
},
{
date: 'Mar 23',
Apples: 2756,
Oranges: 2103,
Tomatoes: 2402,
},
{
date: 'Mar 24',
Apples: 3322,
Oranges: 986,
Tomatoes: 1821,
},
{
date: 'Mar 25',
Apples: 3470,
Oranges: 2108,
Tomatoes: 2809,
},
{
date: 'Mar 26',
Apples: 3129,
Oranges: 1726,
Tomatoes: 2290,
},
];
`;
export const splitData = [
{
date: 'Mar 22',
Apples: 110,
},
{
date: 'Mar 23',
Apples: 60,
},
{
date: 'Mar 24',
Apples: -80,
},
{
date: 'Mar 25',
Apples: 40,
},
{
date: 'Mar 26',
Apples: -40,
},
{
date: 'Mar 27',
Apples: 80,
},
];
export const splitDataCode = `
export const data = [
{
date: 'Mar 22',
Apples: 110,
},
{
date: 'Mar 23',
Apples: 60,
},
{
date: 'Mar 24',
Apples: -80,
},
{
date: 'Mar 25',
Apples: 40,
},
{
date: 'Mar 26',
Apples: -40,
},
{
date: 'Mar 27',
Apples: 80,
},
];
`;
export const connectNullsData = [
{
date: 'Mar 22',
Apples: 110,
},
{
date: 'Mar 23',
Apples: 60,
},
{
date: 'Mar 24',
Apples: 80,
},
{
date: 'Mar 25',
Apples: null,
},
{
date: 'Mar 26',
Apples: null,
},
{
date: 'Mar 27',
Apples: 40,
},
{
date: 'Mar 28',
Apples: 120,
},
{
date: 'Mar 29',
Apples: 80,
},
];
export const connectNullsDataCode = `
export const data = [
{
date: 'Mar 22',
Apples: 110,
},
{
date: 'Mar 23',
Apples: 60,
},
{
date: 'Mar 24',
Apples: 80,
},
{
date: 'Mar 25',
Apples: null,
},
{
date: 'Mar 26',
Apples: null,
},
{
date: 'Mar 27',
Apples: 40,
},
{
date: 'Mar 28',
Apples: 120,
},
{
date: 'Mar 29',
Apples: 80,
},
];
`;
export const yScaleData = [
{
date: 'Mar 22',
Apples: 50,
},
{
date: 'Mar 23',
Apples: 60,
},
{
date: 'Mar 24',
Apples: 40,
},
{
date: 'Mar 25',
Apples: 30,
},
{
date: 'Mar 26',
Apples: 0,
},
{
date: 'Mar 27',
Apples: 20,
},
{
date: 'Mar 28',
Apples: 20,
},
{
date: 'Mar 29',
Apples: 10,
},
];
export const yScaleDataCode = `
export const data = [
{
date: 'Mar 22',
Apples: 50,
},
{
date: 'Mar 23',
Apples: 60,
},
{
date: 'Mar 24',
Apples: 40,
},
{
date: 'Mar 25',
Apples: 30,
},
{
date: 'Mar 26',
Apples: 0,
},
{
date: 'Mar 27',
Apples: 20,
},
{
date: 'Mar 28',
Apples: 20,
},
{
date: 'Mar 29',
Apples: 10,
},
];
`;
export const biaxialData = [
{ name: 'Page A', uv: 4000, pv: 2400 },
{ name: 'Page B', uv: 3000, pv: 1398 },
{ name: 'Page C', uv: 2000, pv: 9800 },
{ name: 'Page D', uv: 2780, pv: 3908 },
{ name: 'Page E', uv: 1890, pv: 4800 },
{ name: 'Page F', uv: 2390, pv: 3800 },
{ name: 'Page G', uv: 3490, pv: 4300 },
];
export const biaxialDataCode = `
export const biaxialData = [
{ name: 'Page A', uv: 4000, pv: 2400 },
{ name: 'Page B', uv: 3000, pv: 1398 },
{ name: 'Page C', uv: 2000, pv: 9800 },
{ name: 'Page D', uv: 2780, pv: 3908 },
{ name: 'Page E', uv: 1890, pv: 4800 },
{ name: 'Page F', uv: 2390, pv: 3800 },
{ name: 'Page G', uv: 3490, pv: 4300 },
];
`;
================================================
FILE: src/components/custom/components-demo/charts/data/_bar-data.ts
================================================
export const data = [
{ month: 'January', Smartphones: 1200, Laptops: 900, Tablets: 200 },
{ month: 'February', Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: 'March', Smartphones: 400, Laptops: 1000, Tablets: 200 },
{ month: 'April', Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: 'May', Smartphones: 800, Laptops: 1400, Tablets: 1200 },
{ month: 'June', Smartphones: 750, Laptops: 600, Tablets: 1000 },
];
export const dataCode = `
export const data = [
{ month: 'January', Smartphones: 1200, Laptops: 900, Tablets: 200 },
{ month: 'February', Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: 'March', Smartphones: 400, Laptops: 1000, Tablets: 200 },
{ month: 'April', Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: 'May', Smartphones: 800, Laptops: 1400, Tablets: 1200 },
{ month: 'June', Smartphones: 750, Laptops: 600, Tablets: 1000 },
];
`;
export const waterfallData = [
{ item: 'TaxRate', 'Effective tax rate in %': 21, color: 'blue' },
{ item: 'Foreign inc.', 'Effective tax rate in %': -15.5, color: 'teal' },
{ item: 'Perm. diff.', 'Effective tax rate in %': -3, color: 'teal' },
{ item: 'Credits', 'Effective tax rate in %': -3, color: 'teal' },
{ item: 'Loss carryf. ', 'Effective tax rate in %': -2, color: 'teal' },
{ item: 'Law changes', 'Effective tax rate in %': 2, color: 'red' },
{ item: 'Reven. adj.', 'Effective tax rate in %': 4, color: 'red' },
{ item: 'ETR', 'Effective tax rate in %': 3.5, color: 'blue', standalone: true },
];
export const waterfallCode = `
export const data =
[
{ item: 'TaxRate', 'Effective tax rate in %': 21, color: 'blue' },
{ item: 'Foreign inc.', 'Effective tax rate in %': -15.5, color: 'teal' },
{ item: 'Perm. diff.', 'Effective tax rate in %': -3, color: 'teal' },
{ item: 'Credits', 'Effective tax rate in %': -3, color: 'teal' },
{ item: 'Loss carryf. ', 'Effective tax rate in %': -2, color: 'teal' },
{ item: 'Law changes', 'Effective tax rate in %': 2, color: 'red' },
{ item: 'Reven. adj.', 'Effective tax rate in %': 4, color: 'red' },
{ item: 'ETR', 'Effective tax rate in %': 3.5, color: 'blue', standalone: true },
];
`;
export const zeroData = [
{ month: 'January', Smartphones: 1200, Laptops: 900, Tablets: 0 },
{ month: 'February', Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: 'March', Smartphones: 0, Laptops: 1000, Tablets: 200 },
{ month: 'April', Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: 'May', Smartphones: 800, Laptops: 0, Tablets: 1200 },
{ month: 'June', Smartphones: 0, Laptops: 600, Tablets: 1000 },
];
export const zeroDataCode = `export const zeroData = [
{ month: 'January', Smartphones: 1200, Laptops: 900, Tablets: 0 },
{ month: 'February', Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: 'March', Smartphones: 0, Laptops: 1000, Tablets: 200 },
{ month: 'April', Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: 'May', Smartphones: 800, Laptops: 0, Tablets: 1200 },
{ month: 'June', Smartphones: 0, Laptops: 600, Tablets: 1000 },
];`;
export const mixedStackData = [
{ month: 'January', Smartphones: 1200, Laptops: 500, Tablets: 800 },
{ month: 'February', Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: 'March', Smartphones: 1800, Laptops: 1000, Tablets: 200 },
{ month: 'April', Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: 'May', Smartphones: 800, Laptops: 200, Tablets: 700 },
{ month: 'June', Smartphones: 800, Laptops: 500, Tablets: 200 },
];
export const mixedStackDataCode = `export const mixedStack = [
{ month: 'January', Smartphones: 1200, Laptops: 500, Tablets: 800 },
{ month: 'February', Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: 'March', Smartphones: 1800, Laptops: 1000, Tablets: 200 },
{ month: 'April', Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: 'May', Smartphones: 800, Laptops: 200, Tablets: 700 },
{ month: 'June', Smartphones: 800, Laptops: 500, Tablets: 200 },
];`;
================================================
FILE: src/components/custom/components-demo/charts/data/_bubble-data.ts
================================================
export const data = [
{ hour: '08:00', index: 1, value: 150 },
{ hour: '10:00', index: 1, value: 180 },
{ hour: '12:00', index: 1, value: 280 },
{ hour: '14:00', index: 1, value: 120 },
{ hour: '16:00', index: 1, value: 380 },
{ hour: '18:00', index: 1, value: 400 },
{ hour: '20:00', index: 1, value: 180 },
{ hour: '22:00', index: 1, value: 100 },
];
export const dataCode = `
export const data = [
{ hour: '08:00', index: 1, value: 150 },
{ hour: '10:00', index: 1, value: 166 },
{ hour: '12:00', index: 1, value: 170 },
{ hour: '14:00', index: 1, value: 150 },
{ hour: '16:00', index: 1, value: 200 },
{ hour: '18:00', index: 1, value: 400 },
{ hour: '20:00', index: 1, value: 100 },
{ hour: '22:00', index: 1, value: 160 },
];
`;
================================================
FILE: src/components/custom/components-demo/charts/data/_donut-data.ts
================================================
export const data = [
{ name: 'USA', value: 400, color: 'indigo.6' },
{ name: 'India', value: 300, color: 'yellow.6' },
{ name: 'Japan', value: 100, color: 'teal.6' },
{ name: 'Other', value: 200, color: 'gray.6' },
];
export const dataCode = `
export const data = [
{ name: 'USA', value: 400, color: 'indigo.6' },
{ name: 'India', value: 300, color: 'yellow.6' },
{ name: 'Japan', value: 100, color: 'teal.6' },
{ name: 'Other', value: 200, color: 'gray.6' },
];
`;
================================================
FILE: src/components/custom/components-demo/charts/data/_pie-data.ts
================================================
export const data = [
{ name: 'USA', value: 400, color: 'indigo.6' },
{ name: 'India', value: 300, color: 'yellow.6' },
{ name: 'Japan', value: 300, color: 'teal.6' },
{ name: 'Other', value: 200, color: 'gray.6' },
];
export const dataCode = `
export const data = [
{ name: 'USA', value: 400, color: 'indigo.6' },
{ name: 'India', value: 300, color: 'yellow.6' },
{ name: 'Japan', value: 300, color: 'teal.6' },
{ name: 'Other', value: 200, color: 'gray.6' },
];
`;
================================================
FILE: src/components/custom/components-demo/charts/data/_radar-data.ts
================================================
export const data = [
{
product: 'Apples',
sales: 120,
},
{
product: 'Oranges',
sales: 98,
},
{
product: 'Tomatoes',
sales: 86,
},
{
product: 'Grapes',
sales: 99,
},
{
product: 'Bananas',
sales: 85,
},
{
product: 'Lemons',
sales: 65,
},
];
export const dataCode = `
export const data = [
{
product: 'Apples',
sales: 120,
},
{
product: 'Oranges',
sales: 98,
},
{
product: 'Tomatoes',
sales: 86,
},
{
product: 'Grapes',
sales: 99,
},
{
product: 'Bananas',
sales: 85,
},
{
product: 'Lemons',
sales: 65,
},
];
`;
export const multiData = [
{
product: 'Apples',
'Sales January': 120,
'Sales February': 100,
},
{
product: 'Oranges',
'Sales January': 98,
'Sales February': 90,
},
{
product: 'Tomatoes',
'Sales January': 86,
'Sales February': 70,
},
{
product: 'Grapes',
'Sales January': 99,
'Sales February': 80,
},
{
product: 'Bananas',
'Sales January': 85,
'Sales February': 120,
},
{
product: 'Lemons',
'Sales January': 65,
'Sales February': 150,
},
];
export const multiDataCode = `
export const data = [
{
product: 'Apples',
'Sales January': 120,
'Sales February': 100,
},
{
product: 'Oranges',
'Sales January': 98,
'Sales February': 90,
},
{
product: 'Tomatoes',
'Sales January': 86,
'Sales February': 70,
},
{
product: 'Grapes',
'Sales January': 99,
'Sales February': 80,
},
{
product: 'Bananas',
'Sales January': 85,
'Sales February': 120,
},
{
product: 'Lemons',
'Sales January': 65,
'Sales February': 150,
},
];`;
================================================
FILE: src/components/custom/components-demo/charts/data/_scatter-data.ts
================================================
export const data = [
{
color: 'blue.5',
name: 'Group 1',
data: [
{ age: 25, BMI: 20 },
{ age: 30, BMI: 22 },
{ age: 35, BMI: 18 },
{ age: 40, BMI: 25 },
{ age: 45, BMI: 30 },
{ age: 28, BMI: 15 },
{ age: 22, BMI: 12 },
{ age: 50, BMI: 28 },
{ age: 32, BMI: 19 },
{ age: 48, BMI: 31 },
{ age: 26, BMI: 24 },
{ age: 38, BMI: 27 },
{ age: 42, BMI: 29 },
{ age: 29, BMI: 16 },
{ age: 34, BMI: 23 },
{ age: 44, BMI: 33 },
{ age: 23, BMI: 14 },
{ age: 37, BMI: 26 },
{ age: 49, BMI: 34 },
{ age: 27, BMI: 17 },
{ age: 41, BMI: 32 },
{ age: 31, BMI: 21 },
{ age: 46, BMI: 35 },
{ age: 24, BMI: 13 },
{ age: 33, BMI: 22 },
{ age: 39, BMI: 28 },
{ age: 47, BMI: 30 },
{ age: 36, BMI: 25 },
{ age: 43, BMI: 29 },
{ age: 21, BMI: 11 },
],
},
];
export const doubleData = [
{
color: 'blue.5',
name: 'Group 1',
data: [
{ age: 25, BMI: 20 },
{ age: 30, BMI: 22 },
{ age: 35, BMI: 18 },
{ age: 40, BMI: 25 },
{ age: 45, BMI: 30 },
{ age: 28, BMI: 15 },
{ age: 22, BMI: 12 },
{ age: 50, BMI: 28 },
{ age: 32, BMI: 19 },
{ age: 48, BMI: 31 },
{ age: 26, BMI: 24 },
{ age: 38, BMI: 27 },
{ age: 42, BMI: 29 },
{ age: 29, BMI: 16 },
{ age: 34, BMI: 23 },
{ age: 44, BMI: 33 },
{ age: 23, BMI: 14 },
{ age: 37, BMI: 26 },
{ age: 49, BMI: 34 },
{ age: 27, BMI: 17 },
{ age: 41, BMI: 32 },
{ age: 31, BMI: 21 },
{ age: 46, BMI: 35 },
{ age: 24, BMI: 13 },
{ age: 33, BMI: 22 },
{ age: 39, BMI: 28 },
{ age: 47, BMI: 30 },
{ age: 36, BMI: 25 },
{ age: 43, BMI: 29 },
{ age: 21, BMI: 11 },
],
},
{
color: 'red.5',
name: 'Group 2',
data: [
{ age: 26, BMI: 21 },
{ age: 31, BMI: 24 },
{ age: 37, BMI: 19 },
{ age: 42, BMI: 27 },
{ age: 29, BMI: 32 },
{ age: 35, BMI: 18 },
{ age: 40, BMI: 23 },
{ age: 45, BMI: 30 },
{ age: 27, BMI: 15 },
{ age: 33, BMI: 20 },
{ age: 38, BMI: 25 },
{ age: 43, BMI: 29 },
{ age: 30, BMI: 16 },
{ age: 36, BMI: 22 },
{ age: 41, BMI: 28 },
{ age: 46, BMI: 33 },
{ age: 28, BMI: 17 },
{ age: 34, BMI: 22 },
{ age: 39, BMI: 26 },
{ age: 44, BMI: 31 },
{ age: 32, BMI: 18 },
{ age: 38, BMI: 23 },
{ age: 43, BMI: 28 },
{ age: 48, BMI: 35 },
{ age: 25, BMI: 14 },
{ age: 31, BMI: 20 },
{ age: 36, BMI: 25 },
{ age: 41, BMI: 30 },
{ age: 29, BMI: 16 },
],
},
];
export const spendingsData = [
{
color: 'cyan',
name: 'Average monthly spending',
data: [
{ age: 25, average_monthly_spending: 1400 },
{ age: 30, average_monthly_spending: 2100 },
{ age: 35, average_monthly_spending: 1800 },
{ age: 40, average_monthly_spending: 2400 },
{ age: 45, average_monthly_spending: 2300 },
{ age: 28, average_monthly_spending: 1600 },
{ age: 22, average_monthly_spending: 1200 },
{ age: 50, average_monthly_spending: 3200 },
{ age: 32, average_monthly_spending: 1900 },
{ age: 48, average_monthly_spending: 2700 },
{ age: 26, average_monthly_spending: 1700 },
{ age: 38, average_monthly_spending: 2200 },
{ age: 42, average_monthly_spending: 2600 },
{ age: 29, average_monthly_spending: 1500 },
{ age: 34, average_monthly_spending: 2000 },
{ age: 44, average_monthly_spending: 2500 },
{ age: 23, average_monthly_spending: 1300 },
{ age: 37, average_monthly_spending: 2100 },
{ age: 49, average_monthly_spending: 2900 },
{ age: 27, average_monthly_spending: 1600 },
{ age: 41, average_monthly_spending: 2500 },
{ age: 31, average_monthly_spending: 1800 },
{ age: 46, average_monthly_spending: 2700 },
{ age: 24, average_monthly_spending: 1400 },
{ age: 33, average_monthly_spending: 2100 },
{ age: 39, average_monthly_spending: 2400 },
{ age: 47, average_monthly_spending: 2800 },
{ age: 36, average_monthly_spending: 2200 },
{ age: 43, average_monthly_spending: 2600 },
{ age: 21, average_monthly_spending: 1100 },
],
},
];
export const doubleDataCode = `
export const data = [
{
color: 'blue.5',
name: 'Group 1',
data: [
{ age: 25, BMI: 20 },
{ age: 30, BMI: 22 },
{ age: 35, BMI: 18 },
{ age: 40, BMI: 25 },
{ age: 45, BMI: 30 },
{ age: 28, BMI: 15 },
{ age: 22, BMI: 12 },
{ age: 50, BMI: 28 },
{ age: 32, BMI: 19 },
{ age: 48, BMI: 31 },
{ age: 26, BMI: 24 },
{ age: 38, BMI: 27 },
{ age: 42, BMI: 29 },
{ age: 29, BMI: 16 },
{ age: 34, BMI: 23 },
{ age: 44, BMI: 33 },
{ age: 23, BMI: 14 },
{ age: 37, BMI: 26 },
{ age: 49, BMI: 34 },
{ age: 27, BMI: 17 },
{ age: 41, BMI: 32 },
{ age: 31, BMI: 21 },
{ age: 46, BMI: 35 },
{ age: 24, BMI: 13 },
{ age: 33, BMI: 22 },
{ age: 39, BMI: 28 },
{ age: 47, BMI: 30 },
{ age: 36, BMI: 25 },
{ age: 43, BMI: 29 },
{ age: 21, BMI: 11 },
],
},
{
color: 'red.5',
name: 'Group 2',
data: [
{ age: 26, BMI: 21 },
{ age: 31, BMI: 24 },
{ age: 37, BMI: 19 },
{ age: 42, BMI: 27 },
{ age: 29, BMI: 32 },
{ age: 35, BMI: 18 },
{ age: 40, BMI: 23 },
{ age: 45, BMI: 30 },
{ age: 27, BMI: 15 },
{ age: 33, BMI: 20 },
{ age: 38, BMI: 25 },
{ age: 43, BMI: 29 },
{ age: 30, BMI: 16 },
{ age: 36, BMI: 22 },
{ age: 41, BMI: 28 },
{ age: 46, BMI: 33 },
{ age: 28, BMI: 17 },
{ age: 34, BMI: 22 },
{ age: 39, BMI: 26 },
{ age: 44, BMI: 31 },
{ age: 32, BMI: 18 },
{ age: 38, BMI: 23 },
{ age: 43, BMI: 28 },
{ age: 48, BMI: 35 },
{ age: 25, BMI: 14 },
{ age: 31, BMI: 20 },
{ age: 36, BMI: 25 },
{ age: 41, BMI: 30 },
{ age: 29, BMI: 16 },
],
},
];
`;
export const dataCode = `export const data = [
{
color: 'blue.5',
name: 'Group 1',
data: [
{ age: 25, BMI: 20 },
{ age: 30, BMI: 22 },
{ age: 35, BMI: 18 },
{ age: 40, BMI: 25 },
{ age: 45, BMI: 30 },
{ age: 28, BMI: 15 },
{ age: 22, BMI: 12 },
{ age: 50, BMI: 28 },
{ age: 32, BMI: 19 },
{ age: 48, BMI: 31 },
{ age: 26, BMI: 24 },
{ age: 38, BMI: 27 },
{ age: 42, BMI: 29 },
{ age: 29, BMI: 16 },
{ age: 34, BMI: 23 },
{ age: 44, BMI: 33 },
{ age: 23, BMI: 14 },
{ age: 37, BMI: 26 },
{ age: 49, BMI: 34 },
{ age: 27, BMI: 17 },
{ age: 41, BMI: 32 },
{ age: 31, BMI: 21 },
{ age: 46, BMI: 35 },
{ age: 24, BMI: 13 },
{ age: 33, BMI: 22 },
{ age: 39, BMI: 28 },
{ age: 47, BMI: 30 },
{ age: 36, BMI: 25 },
{ age: 43, BMI: 29 },
{ age: 21, BMI: 11 },
],
},
];`;
export const spendingsDataCode = `export const spendingsData = [
{
color: 'cyan',
name: 'Average monthly spending',
data: [
{ age: 25, average_monthly_spending: 1400 },
{ age: 30, average_monthly_spending: 2100 },
{ age: 35, average_monthly_spending: 1800 },
{ age: 40, average_monthly_spending: 2400 },
{ age: 45, average_monthly_spending: 2300 },
{ age: 28, average_monthly_spending: 1600 },
{ age: 22, average_monthly_spending: 1200 },
{ age: 50, average_monthly_spending: 3200 },
{ age: 32, average_monthly_spending: 1900 },
{ age: 48, average_monthly_spending: 2700 },
{ age: 26, average_monthly_spending: 1700 },
{ age: 38, average_monthly_spending: 2200 },
{ age: 42, average_monthly_spending: 2600 },
{ age: 29, average_monthly_spending: 1500 },
{ age: 34, average_monthly_spending: 2000 },
{ age: 44, average_monthly_spending: 2500 },
{ age: 23, average_monthly_spending: 1300 },
{ age: 37, average_monthly_spending: 2100 },
{ age: 49, average_monthly_spending: 2900 },
{ age: 27, average_monthly_spending: 1600 },
{ age: 41, average_monthly_spending: 2500 },
{ age: 31, average_monthly_spending: 1800 },
{ age: 46, average_monthly_spending: 2700 },
{ age: 24, average_monthly_spending: 1400 },
{ age: 33, average_monthly_spending: 2100 },
{ age: 39, average_monthly_spending: 2400 },
{ age: 47, average_monthly_spending: 2800 },
{ age: 36, average_monthly_spending: 2200 },
{ age: 43, average_monthly_spending: 2600 },
{ age: 21, average_monthly_spending: 1100 },
],
},
];`;
================================================
FILE: src/components/custom/components-demo/charts/donot-chart-demo.tsx
================================================
import { DonutChart } from '@mantine/charts';
import { MantineDemo } from '../../../mantine/demo';
import { data, dataCode } from './data/_donut-data';
const code = `
import { DonutChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return ;
}
`;
function Wrapper(props: any) {
return ;
}
export const donutChartDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code: [
{ fileName: 'Demo.tsx', code, language: 'tsx' },
{ fileName: 'data.ts', code: dataCode, language: 'tsx' },
],
centered: true,
controls: [
{
type: 'number',
prop: 'size',
initialValue: 160,
min: 80,
max: 300,
step: 1,
libraryValue: '__',
},
{
type: 'number',
prop: 'thickness',
initialValue: 20,
min: 2,
max: 30,
step: 1,
libraryValue: '__',
},
{
type: 'number',
prop: 'paddingAngle',
initialValue: 10,
min: 0,
max: 30,
step: 1,
libraryValue: '__',
},
{
type: 'number',
prop: 'strokeWidth',
initialValue: 1,
min: 0,
max: 5,
step: 0.1,
libraryValue: '__',
},
{ type: 'boolean', prop: 'withLabels', initialValue: true, libraryValue: '__' },
{ type: 'boolean', prop: 'withLabelsLine', initialValue: true, libraryValue: '__' }
],
};
================================================
FILE: src/components/custom/components-demo/charts/line-chart-demo.tsx
================================================
import { LineChart } from '@mantine/charts';
import { data, dataCode } from './data/_area-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { LineChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const lineChartDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: dataCode, language: 'tsx', fileName: 'data.ts' },
],
controls: [
{
type: 'select',
prop: 'curveType',
initialValue: 'linear',
libraryValue: null,
data: [
{ value: 'bump', label: 'bump' },
{ value: 'linear', label: 'linear' },
{ value: 'natural', label: 'natural' },
{ value: 'monotone', label: 'monotone' },
{ value: 'step', label: 'step' },
{ value: 'stepBefore', label: 'stepBefore' },
{ value: 'stepAfter', label: 'stepAfter' },
],
},
{
type: 'segmented',
prop: 'tickLine',
initialValue: 'y',
libraryValue: 'y',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'segmented',
prop: 'gridAxis',
initialValue: 'x',
libraryValue: 'x',
transformLabel: false,
data: [
{ value: 'x', label: 'x' },
{ value: 'y', label: 'y' },
{ value: 'xy', label: 'xy' },
{ value: 'none', label: 'none' },
],
},
{
type: 'boolean',
prop: 'withXAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withYAxis',
initialValue: true,
libraryValue: true,
},
{
type: 'boolean',
prop: 'withDots',
initialValue: true,
libraryValue: true,
},
],
};
================================================
FILE: src/components/custom/components-demo/charts/pie-chart-demo.tsx
================================================
import { PieChart } from '@mantine/charts';
import { MantineDemo } from '../../../mantine/demo';
import { data, dataCode } from './data/_pie-data';
const code = `
import { PieChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return ;
}
`;
function Wrapper(props: any) {
return ;
}
export const pieChartDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code: [
{ fileName: 'Demo.tsx', code, language: 'tsx' },
{ fileName: 'data.ts', code: dataCode, language: 'tsx' },
],
centered: true,
controls: [
{
type: 'segmented',
prop: 'labelsPosition',
initialValue: 'outside',
libraryValue: '__',
data: ['inside', 'outside'],
},
{
type: 'segmented',
prop: 'labelsType',
initialValue: 'value',
libraryValue: '__',
data: ['value', 'percent'],
},
{
type: 'number',
prop: 'strokeWidth',
initialValue: 1,
min: 0,
max: 2,
step: 0.1,
libraryValue: '__',
},
{
type: 'number',
prop: 'size',
initialValue: 160,
min: 80,
max: 300,
step: 1,
libraryValue: '__',
},
{ type: 'boolean', prop: 'withLabels', initialValue: true, libraryValue: '__' },
{ type: 'boolean', prop: 'withLabelsLine', initialValue: true, libraryValue: '__' },
],
};
================================================
FILE: src/components/custom/components-demo/charts/radar-chart-demo.tsx
================================================
import { RadarChart } from '@mantine/charts';
import { multiData, multiDataCode } from './data/_radar-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { RadarChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Demo(props: any) {
return (
);
}
export const radarChartDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: multiDataCode, language: 'tsx', fileName: 'data.ts' },
],
controls: [
{ type: 'boolean', prop: 'withPolarGrid', initialValue: true, libraryValue: null },
{ type: 'boolean', prop: 'withPolarAngleAxis', initialValue: true, libraryValue: null },
{ type: 'boolean', prop: 'withPolarRadiusAxis', initialValue: true, libraryValue: null },
],
};
================================================
FILE: src/components/custom/components-demo/charts/scatter-chart-demo.tsx
================================================
import { ScatterChart } from '@mantine/charts';
import { doubleData, doubleDataCode } from './data/_scatter-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { ScatterChart } from '@mantine/charts';
import { data } from './data';
function Demo() {
return (
);
}
`;
function Demo() {
return (
);
}
export const scatterChartDemo: MantineDemo = {
type: 'code',
component: Demo,
code: [
{ code, language: 'tsx', fileName: 'Demo.tsx' },
{ code: doubleDataCode, language: 'tsx', fileName: 'data.ts' },
],
};
================================================
FILE: src/components/custom/components-demo/charts/sparkline-demo.tsx
================================================
import { Sparkline } from '@mantine/charts';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Sparkline } from '@mantine/charts';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const sparklineDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{
type: 'select',
prop: 'curveType',
initialValue: 'linear',
libraryValue: null,
data: [
{ value: 'bump', label: 'bump' },
{ value: 'linear', label: 'linear' },
{ value: 'natural', label: 'natural' },
{ value: 'monotone', label: 'monotone' },
{ value: 'step', label: 'step' },
{ value: 'stepBefore', label: 'stepBefore' },
{ value: 'stepAfter', label: 'stepAfter' },
],
},
{ type: 'color', prop: 'color', initialValue: '', libraryValue: '' },
{
type: 'number',
prop: 'fillOpacity',
initialValue: 0.6,
libraryValue: null,
min: 0,
max: 1,
step: 0.01,
},
{
type: 'boolean',
prop: 'withGradient',
initialValue: true,
libraryValue: true,
},
{
type: 'number',
prop: 'strokeWidth',
initialValue: 2,
libraryValue: null,
step: 0.1,
min: 0.5,
max: 5,
},
],
};
================================================
FILE: src/components/custom/components-demo/combobox/autocomplete-demo.tsx
================================================
import { Autocomplete } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { Autocomplete } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const autocompleteDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/combobox/multi-select-demo.tsx
================================================
import { MultiSelect } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { MultiSelect } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const multiSelectDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/combobox/pills-input-demo.tsx
================================================
import { Pill, PillsInput } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { PillsInput, Pill } from '@mantine/core';
function Demo() {
return (
React
Vue
Svelte
);
}
`;
function Wrapper(props: any) {
return (
React
Vue
Svelte
);
}
export const pillsInputDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 440,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/combobox/select-demo.tsx
================================================
import { Select } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { Select } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const selectDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/combobox/tags-input-demo.tsx
================================================
import { TagsInput } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { TagsInput } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const tagsInputDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/components-demo.module.css
================================================
.navbarWrapper{
position: sticky;
top: 80px;
z-index: 1;
}
.content {
flex: 1;
}
================================================
FILE: src/components/custom/components-demo/components-demo.tsx
================================================
import { Box, Divider, Group, Stack, Title } from "@mantine/core";
import { demoComponentsNavbarData } from "../../../utils/data";
import { Demo } from "../../mantine/demo";
import Navbar from "../../ui/navbar/navbar";
import classes from "./components-demo.module.css";
const ComponentsDemo = () => {
return (
{demoComponentsNavbarData?.map((item) => {
return (
{item.label}
{item.links.map((link) => {
return (
{link.label}
{link.demo && }
);
})}
);
})}
);
};
export default ComponentsDemo;
================================================
FILE: src/components/custom/components-demo/data-display/accordion-demo.tsx
================================================
import { Accordion, AccordionProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Accordion } from '@mantine/core';
function Demo() {
// See groceries data above
const items = groceries.map((item) => (
{item.value}
{item.description}
));
return (
{items}
);
}
`;
const groceries = [
{
emoji: '🍎',
value: 'Apples',
description:
'Crisp and refreshing fruit. Apples are known for their versatility and nutritional benefits. They come in a variety of flavors and are great for snacking, baking, or adding to salads.',
},
{
emoji: '🍌',
value: 'Bananas',
description:
'Naturally sweet and potassium-rich fruit. Bananas are a popular choice for their energy-boosting properties and can be enjoyed as a quick snack, added to smoothies, or used in baking.',
},
{
emoji: '🥦',
value: 'Broccoli',
description:
'Nutrient-packed green vegetable. Broccoli is packed with vitamins, minerals, and fiber. It has a distinct flavor and can be enjoyed steamed, roasted, or added to stir-fries.',
},
];
function Demo(props: AccordionProps) {
const items = groceries.map((item) => (
{item.value}
{item.description}
));
return (
{items}
);
}
export const accordionDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code,
controls: [
{
prop: 'variant',
type: 'select',
initialValue: 'default',
libraryValue: 'default',
data: [
{ label: 'Default', value: 'default' },
{ label: 'Contained', value: 'contained' },
{ label: 'Filled', value: 'filled' },
{ label: 'Separated', value: 'separated' },
],
},
{ prop: 'radius', type: 'size', libraryValue: 'sm', initialValue: 'sm' },
{
prop: 'chevronPosition',
type: 'segmented',
data: [
{ label: 'Left', value: 'left' },
{ label: 'Right', value: 'right' },
],
initialValue: 'right',
libraryValue: 'right',
},
{ prop: 'disableChevronRotation', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/data-display/avatar-demo.tsx
================================================
import { Avatar } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { staticVariantsControl } from '../../../../utils/variants-data';
const code = `
import { Avatar } from '@mantine/core';
function Demo() {
return ;
}
`;
export const avatarDemo: MantineDemo = {
type: "configurator",
component: Avatar,
centered: true,
code,
controls: [
{ ...(staticVariantsControl as any), initialValue: 'light', libraryValue: 'light' },
{ prop: "radius", type: "size", initialValue: "sm", libraryValue: "100%" },
{ prop: "size", type: "size", initialValue: "md", libraryValue: "md" },
{ prop: "color", type: "color", initialValue: "", libraryValue: "" },
],
};
================================================
FILE: src/components/custom/components-demo/data-display/background-image-demo.tsx
================================================
import { BackgroundImage, BackgroundImageProps, Box, Center, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: BackgroundImageProps) {
return (
BackgroundImage component can be used to add any content on image. It is useful for hero
headers and other similar sections
);
}
const code = `
import { BackgroundImage, Center, Text, Box } from '@mantine/core';
function Demo() {
return (
BackgroundImage component can be used to add any content on image. It is useful for hero
headers and other similar sections
);
}
`;
export const backgroundImageDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: null }],
};
================================================
FILE: src/components/custom/components-demo/data-display/badge-demo.tsx
================================================
import { Badge } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Badge } from '@mantine/core';
function Demo() {
return Badge ;
}
`;
function Wrapper(props: any) {
return Badge ;
}
export const badgeDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{
prop: 'variant',
type: 'select',
initialValue: 'filled',
libraryValue: 'filled',
data: ['filled', 'light', 'outline', 'dot', 'transparent', 'default', 'white'],
},
{ type: 'color', prop: 'color', initialValue: '', libraryValue: '' },
{ type: 'size', prop: 'size', initialValue: 'md', libraryValue: 'md' },
{ type: 'size', prop: 'radius', initialValue: 'xl', libraryValue: 'xl' },
],
};
================================================
FILE: src/components/custom/components-demo/data-display/card-demo.tsx
================================================
import { Badge, Button, Card, Group, Image, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Card, Image, Text, Badge, Button, Group } from '@mantine/core';
function Demo() {
return (
Norway Fjord Adventures
On Sale
With Fjord Tours you can explore more of the magical fjord landscapes with tours and
activities on and around the fjords of Norway
Book classic tour now
);
}
`;
function Demo() {
return (
Norway Fjord Adventures
On Sale
With Fjord Tours you can explore more of the magical fjord landscapes with tours and
activities on and around the fjords of Norway
Book classic tour now
);
}
export const cardDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
centered: true,
maxWidth: 340,
dimmed: true,
};
================================================
FILE: src/components/custom/components-demo/data-display/color-swatch-demo.tsx
================================================
import { ColorSwatch, Group } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { ColorSwatch, Group } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Demo() {
return (
);
}
export const colorSwatchDemo: MantineDemo = {
type: 'code',
component: Demo,
centered: true,
code,
};
================================================
FILE: src/components/custom/components-demo/data-display/image-demo.tsx
================================================
import { Image } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Image } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Demo() {
return (
);
}
export const imageDemo: MantineDemo = {
type: 'code',
component: Demo,
code,
};
================================================
FILE: src/components/custom/components-demo/data-display/indicator-demo.tsx
================================================
import { Avatar, Indicator, IndicatorProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Demo(props: IndicatorProps) {
return (
);
}
const code = `
import { Indicator, Avatar } from '@mantine/core';
function Demo() {
return (
);
}
`;
export const indicatorDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code,
centered: true,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'position',
type: 'select',
data: [
{ value: 'top-start', label: 'top-start' },
{ value: 'top-center', label: 'top-center' },
{ value: 'top-end', label: 'top-end' },
{ value: 'middle-start', label: 'middle-start' },
{ value: 'middle-center', label: 'middle-center' },
{ value: 'middle-end', label: 'middle-end' },
{ value: 'bottom-start', label: 'bottom-start' },
{ value: 'bottom-center', label: 'bottom-center' },
{ value: 'bottom-end', label: 'bottom-end' },
],
initialValue: 'top-end',
libraryValue: 'top-end',
},
{ prop: 'label', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'offset', type: 'number', initialValue: 0, libraryValue: 10, step: 1, min: 0, max: 56 },
{ prop: 'radius', type: 'size', initialValue: 'xl', libraryValue: 'xl' },
{ prop: 'size', type: 'number', initialValue: 10, libraryValue: 10, step: 1, min: 6, max: 30 },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'withBorder', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'processing', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/data-display/spoiler-demo.tsx
================================================
import { Box, Spoiler, SpoilerProps, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const content = (
We Butter the Bread with Butter was founded in 2007 by Marcel Neumann, who was originally
guitarist for Martin Kesici's band, and Tobias Schultka. The band was originally meant as
a joke, but progressed into being a more serious musical duo. The name for the band has no
particular meaning, although its origins were suggested from when the two original members
were driving in a car operated by Marcel Neumann and an accident almost occurred. Neumann
found Schultka "so funny that he briefly lost control of the vehicle." Many of their
songs from this point were covers of German folk tales and nursery rhymes.
);
function Wrapper(props: Partial) {
return (
{content}
);
}
const code = `
import { Spoiler } from '@mantine/core';
function Demo() {
return (
{/* Content here */}
);
}
`;
function Demo() {
return ;
}
export const spoilerDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/data-display/theme-icon-demo.tsx
================================================
import { ThemeIcon, ThemeIconProps } from '@mantine/core';
import { IconPhoto } from '@tabler/icons-react';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: ThemeIconProps) {
return (
);
}
const code = `
import { ThemeIcon } from '@mantine/core';
import { IconPhoto } from '@tabler/icons-react';
function Demo() {
return (
);
}
`;
export const themeIconDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{
prop: 'variant',
type: 'select',
initialValue: 'filled',
libraryValue: 'filled',
data: [
{ label: 'filled', value: 'filled' },
{ label: 'light', value: 'light' },
{ label: 'outline', value: 'outline' },
{ label: 'default', value: 'default' },
{ label: 'white', value: 'white' },
],
},
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
],
};
================================================
FILE: src/components/custom/components-demo/data-display/timeline-demo.tsx
================================================
import { Box, Text, Timeline, TimelineProps } from '@mantine/core';
import { IconGitBranch, IconGitCommit, IconGitPullRequest, IconMessageDots } from '@tabler/icons-react';
import { MantineDemo } from '../../../mantine/demo';
function TimelineBase({ ...props }: Partial) {
const displayIcon = true;
return (
: null}
title="New branch"
>
You've created new branch{' '}
fix-notifications
{' '}
from master
2 hours ago
: null} title="Commits">
You've pushed 23 commits to{' '}
fix-notifications
{' '}
branch
52 minutes ago
: null}
lineVariant="dashed"
>
You've submitted a pull request{' '}
Fix incorrect notification message (#187)
{' '}
34 minutes ago
: null}
>
Robert Gluesticker
{' '}
left a code review on your pull request
12 minutes ago
);
}
function Wrapper(props: TimelineProps) {
return (
);
}
const code = `
import { Timeline } from '@mantine/core';
function Demo() {
return (
{/* items */}
);
}
`;
export const timelineDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ prop: 'radius', type: 'size', initialValue: 'xl', libraryValue: 'xl' },
{ prop: 'active', type: 'number', initialValue: 1, libraryValue: null, min: -1, max: 3 },
{ prop: 'reverseActive', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'lineWidth', type: 'number', initialValue: 2, libraryValue: 2, min: 1, max: 6 },
{
prop: 'bulletSize',
type: 'number',
initialValue: 25,
libraryValue: 20,
min: 18,
max: 40,
step: 1,
},
{
prop: 'align',
type: 'segmented',
data: [
{ label: 'Left', value: 'left' },
{ label: 'Right', value: 'right' },
],
initialValue: 'left',
libraryValue: 'left',
},
],
};
================================================
FILE: src/components/custom/components-demo/feedback/alert-demo.tsx
================================================
import { Alert } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react';
import { staticVariantsControl } from '../../../../utils/variants-data';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Alert } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react';
function Demo() {
const icon = ;
return (
{{children}}
);
}
`;
function Wrapper(props: any) {
return } {...props} />;
}
export const alertDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 400,
controls: [
{ ...(staticVariantsControl as any), initialValue: 'light', libraryValue: 'light' },
{ type: 'color', prop: 'color', initialValue: '', libraryValue: '' },
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'boolean', prop: 'withCloseButton', initialValue: false, libraryValue: false },
{ type: 'string', prop: 'title', initialValue: 'Alert title', libraryValue: null },
{
type: 'string',
prop: 'children',
initialValue:
'Lorem ipsum dolor sit, amet consectetur adipisicing elit. At officiis, quae tempore necessitatibus placeat saepe.',
libraryValue: null,
},
],
};
================================================
FILE: src/components/custom/components-demo/feedback/loader-demo.tsx
================================================
import { Loader } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Loader } from '@mantine/core';
function Demo() {
return ;
}
`;
export const loaderDemo: MantineDemo = {
type: 'configurator',
component: Loader,
code,
centered: true,
controls: [
{ type: 'color', prop: 'color', initialValue: '', libraryValue: '' },
{ type: 'size', prop: 'size', initialValue: 'md', libraryValue: 'md' },
{
type: 'segmented',
prop: 'type',
data: ['oval', 'bars', 'dots'],
initialValue: 'oval',
libraryValue: 'oval',
},
],
};
================================================
FILE: src/components/custom/components-demo/feedback/notification-demo.tsx
================================================
import { Box, Notification, NotificationProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: NotificationProps) {
return (
{}} {...props} />
);
}
const code = `
import { Notification } from '@mantine/core';
function Demo() {
return (
{{children}}
);
}
`;
export const notificationDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
centered: true,
code,
// dimmed: true,
controls: [
{ prop: 'loading', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'withCloseButton', type: 'boolean', initialValue: true, libraryValue: true },
{ prop: 'withBorder', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{
prop: 'title',
type: 'string',
initialValue: 'We notify you that',
libraryValue: '',
},
{
prop: 'children',
type: 'string',
initialValue: 'You are now obligated to give a star to Mantine project on GitHub',
libraryValue: '',
},
],
};
================================================
FILE: src/components/custom/components-demo/feedback/progress-demo.tsx
================================================
import { Progress } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Progress } from '@mantine/core';
function Demo() {
return ;
}
`;
function Demo(props: any) {
return ;
}
export const progressDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code,
centered: true,
maxWidth: 400,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{
prop: 'value',
type: 'number',
initialValue: 50,
max: 100,
min: 0,
step: 10,
libraryValue: '__',
},
{ prop: 'striped', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'animated', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/feedback/ring-progress-demo.tsx
================================================
import { RingProgress, RingProgressProps, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: RingProgressProps) {
return (
Hover sections to see tooltips
}
sections={[
{ value: 40, color: 'cyan', tooltip: 'Documents – 40 Gb' },
{ value: 25, color: 'orange', tooltip: 'Apps – 25 Gb' },
{ value: 15, color: 'grape', tooltip: 'Other – 15 Gb' },
]}
/>
);
}
const code = `
import { RingProgress } from '@mantine/core';
function Demo() {
return (
Hover sections to see tooltips
}
sections={[
{ value: 40, color: 'cyan', tooltip: 'Documents – 40 Gb' },
{ value: 25, color: 'orange', tooltip: 'Apps – 25 Gb' },
{ value: 15, color: 'grape', tooltip: 'Other – 15 Gb' },
]}
/>
)
}
`;
export const ringProgressDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
centered: true,
code,
controls: [
{
prop: 'size',
type: 'number',
initialValue: 180,
step: 10,
min: 60,
max: 400,
libraryValue: '__',
},
{
prop: 'thickness',
type: 'number',
initialValue: 12,
step: 1,
min: 1,
max: 40,
libraryValue: '__',
},
{ prop: 'roundCaps', type: 'boolean', initialValue: true, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/feedback/semi-circle-progress-demo.tsx
================================================
import { SemiCircleProgress } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { SemiCircleProgress } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const semiCircleProgressDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{
type: 'segmented',
prop: 'fillDirection',
initialValue: 'left-to-right',
data: [
{ label: 'Right to left', value: 'right-to-left' },
{ label: 'Left to right', value: 'left-to-right' },
],
libraryValue: null,
},
{
type: 'segmented',
prop: 'orientation',
initialValue: 'up',
data: [
{ label: 'Up', value: 'up' },
{ label: 'Down', value: 'down' },
],
libraryValue: null,
},
{ type: 'color', prop: 'filledSegmentColor', initialValue: '', libraryValue: '' },
{ type: 'number', prop: 'size', min: 120, max: 450, initialValue: 200, libraryValue: null },
{ type: 'number', prop: 'thickness', min: 1, max: 20, initialValue: 12, libraryValue: null },
{ type: 'number', prop: 'value', min: 0, max: 100, initialValue: 40, libraryValue: null },
],
};
================================================
FILE: src/components/custom/components-demo/feedback/skeleton-demo.tsx
================================================
import { Skeleton, SkeletonProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: Partial) {
return (
);
}
const code = (props: any) => `
import { Skeleton } from '@mantine/core';
function Demo() {
return (
<>
>
);
}
`;
export const skeletonDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [{ prop: 'animate', type: 'boolean', initialValue: true, libraryValue: '__' }],
};
================================================
FILE: src/components/custom/components-demo/inputs/checkbox-demo.tsx
================================================
import { Checkbox, CheckboxProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Checkbox } from '@mantine/core';
function Demo() {
return (
);
}
`;
export const checkboxDemo: MantineDemo = {
type: 'configurator',
component: (props: CheckboxProps) => ,
code,
centered: true,
controls: [
{
prop: 'labelPosition',
type: 'segmented',
data: [
{ value: 'right', label: 'Right' },
{ value: 'left', label: 'Left' },
],
initialValue: 'right',
libraryValue: 'right',
},
{ prop: 'label', type: 'string', initialValue: 'I agree to sell my privacy', libraryValue: '' },
{ prop: 'description', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'error', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'variant',
type: 'segmented',
data: [
{ value: 'filled', label: 'Filled' },
{ value: 'outline', label: 'Outline' },
],
initialValue: 'filled',
libraryValue: 'filled',
},
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'size', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'indeterminate', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/checkbox-group-demo.tsx
================================================
import { Checkbox, CheckboxGroupProps, Group } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Checkbox, Group } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: Partial) {
return (
);
}
export const checkboxGroupDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: '100%',
controls: [
{
prop: 'label',
type: 'string',
initialValue: 'Select your favorite frameworks/libraries',
libraryValue: '',
},
{ prop: 'description', type: 'string', initialValue: 'This is anonymous', libraryValue: '' },
{ prop: 'error', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'withAsterisk', type: 'boolean', initialValue: true, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/chip-demo.tsx
================================================
import { Chip, ChipProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: ChipProps) {
return (
Awesome chip
);
}
const code = `
import { Chip } from '@mantine/core';
function Demo() {
return Awesome chip
}
`;
export const chipDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'variant',
type: 'segmented',
data: [
{ value: 'filled', label: 'Filled' },
{ value: 'outline', label: 'Outline' },
{ value: 'light', label: 'Light' },
],
initialValue: '',
libraryValue: '',
},
{ prop: 'size', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'radius', type: 'size', initialValue: 'xl', libraryValue: 'xl' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'checked', type: 'boolean', initialValue: true, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/color-input-demo.tsx
================================================
import { ColorInput } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { ColorInput } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const colorInputDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/inputs/fieldset-demo.tsx
================================================
import { Fieldset, TextInput } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Fieldset, TextInput } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return (
);
}
export const fieldsetDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
maxWidth: 500,
centered: true,
controls: [
{
type: 'segmented',
prop: 'variant',
initialValue: '',
libraryValue: '',
data: ['default', 'filled', 'unstyled'],
},
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/file-input.tsx
================================================
import { FileInput } from "@mantine/core";
import { MantineDemo } from "../../../mantine/demo";
import { inputControls } from "../../../../utils/input-controls";
const code = `
import { FileInput } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const fileInputDemo: MantineDemo = {
type: "configurator",
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/inputs/native-select-demo.tsx
================================================
import { NativeSelect } from "@mantine/core";
import { MantineDemo } from "../../../mantine/demo";
import { inputControls } from "../../../../utils/input-controls";
const code = `
import { NativeSelect } from '@mantine/core';
function Demo() {
return ;
}
`;
function Wrapper(props: any) {
return ;
}
export const nativeSelectDemo: MantineDemo = {
type: "configurator",
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/inputs/pin-input-demo.tsx
================================================
import { PinInput, PinInputProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { PinInput } from '@mantine/core';
function Demo() {
return
}
`;
function Wrapper(props: PinInputProps) {
return ;
}
export const pinInputDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{ prop: 'size', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'length', type: 'number', initialValue: 4, libraryValue: 4, min: 1, max: 5 },
{ prop: 'mask', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'placeholder', type: 'string', initialValue: '○', libraryValue: '○' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'error', type: 'boolean', initialValue: false, libraryValue: false },
{
prop: 'type',
type: 'select',
initialValue: 'alphanumeric',
libraryValue: 'alphanumeric',
data: ['alphanumeric', 'number'],
},
],
};
================================================
FILE: src/components/custom/components-demo/inputs/radio-demo.tsx
================================================
import { Radio, RadioProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Radio } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: RadioProps) {
return (
);
}
export const radioDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{
prop: 'labelPosition',
type: 'segmented',
data: [
{ value: 'right', label: 'Right' },
{ value: 'left', label: 'Left' },
],
initialValue: 'right',
libraryValue: 'right',
},
{ prop: 'label', type: 'string', initialValue: 'I cannot be unchecked', libraryValue: '' },
{ prop: 'description', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'error', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'size', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'variant',
type: 'segmented',
data: [
{ value: 'filled', label: 'Filled' },
{ value: 'outline', label: 'Outline' },
],
initialValue: '',
libraryValue: '',
},
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/radio-group-demo.tsx
================================================
import { Group, Radio, RadioGroupProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Radio, Group } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: Partial) {
return (
);
}
export const radioGroupDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
centered: true,
code,
controls: [
{
prop: 'label',
type: 'string',
initialValue: 'Select your favorite framework/library',
libraryValue: '',
},
{ prop: 'description', type: 'string', initialValue: 'This is anonymous', libraryValue: '' },
{ prop: 'error', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'withAsterisk', type: 'boolean', initialValue: true, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/rating-demo.tsx
================================================
import { Rating, RatingProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Rating } from '@mantine/core';
function Demo() {
return
}
`;
function Wrapper(props: RatingProps) {
return ;
}
export const ratingDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{ prop: 'color', type: 'color', initialValue: "yellow", libraryValue: "yellow" },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{ prop: 'count', type: 'number', initialValue: 5, libraryValue: 5, min: 1, max: 8 },
{ prop: 'highlightSelectedOnly', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/segmented-control-demo.tsx
================================================
import { SegmentedControl } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { SegmentedControl } from '@mantine/core';
function Demo() {
return ;
}
`;
function Wrapper(props: any) {
return ;
}
export const segmentedControlDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [
{
prop: 'orientation',
type: 'segmented',
initialValue: 'horizontal',
libraryValue: 'horizontal',
data: [
{ label: 'horizontal', value: 'horizontal' },
{ label: 'vertical', value: 'vertical' },
],
},
{ prop: 'fullWidth', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'withItemsBorders', type: 'boolean', initialValue: true, libraryValue: true },
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ type: 'size', prop: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'transitionDuration', type: 'string', initialValue: '150', libraryValue: '150' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'readOnly', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/slider-demo.tsx
================================================
import { Slider } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: any) {
return (
);
}
const code = `
import { Slider } from '@mantine/core';
function Demo() {
return (
);
}
`;
export const sliderDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 400,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '__none__' },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{ prop: 'radius', type: 'size', initialValue: 'xl', libraryValue: 'xl' },
{ prop: 'showLabelOnHover', type: 'boolean', initialValue: true, libraryValue: true },
{ prop: 'labelAlwaysOn', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/switch-demo.tsx
================================================
import { Switch } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Switch } from '@mantine/core';
function Demo() {
return (
);
}
`;
export const switchDemo: MantineDemo = {
type: 'configurator',
component: (props: any) => ,
code,
centered: true,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'labelPosition',
type: 'segmented',
data: [
{ value: 'right', label: 'Right' },
{ value: 'left', label: 'Left' },
],
initialValue: 'right',
libraryValue: 'right',
},
{ prop: 'label', type: 'string', initialValue: 'I agree to sell my privacy', libraryValue: '' },
{ prop: 'description', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'error', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'size', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'radius', type: 'size', initialValue: 'xl', libraryValue: 'xl' },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/switch-group-demo.tsx
================================================
import { Group, Switch, SwitchGroupProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Switch, Group } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: SwitchGroupProps) {
return (
);
}
export const switchGroupDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{
prop: 'label',
type: 'string',
initialValue: 'Select your favorite framework/library',
libraryValue: '',
},
{ prop: 'description', type: 'string', initialValue: 'This is anonymous', libraryValue: '' },
{ prop: 'error', type: 'string', initialValue: '', libraryValue: '' },
{ prop: 'withAsterisk', type: 'boolean', initialValue: true, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/inputs/text-input-demo.tsx
================================================
import { TextInput } from '@mantine/core';
import { inputControls } from '../../../../utils/input-controls';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { TextInput } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const textInputDemo: MantineDemo
= {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/inputs/textarea-demo.tsx
================================================
import { Textarea } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { Textarea } from '@mantine/core';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const textareaDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/miscellaneous/date-picker-input-demo.tsx
================================================
import { DateInput } from '@mantine/dates';
import { MantineDemo } from '../../../mantine/demo';
import { inputControls } from '../../../../utils/input-controls';
const code = `
import { DateInput } from '@mantine/dates';
function Demo() {
return (
);
}
`;
function Wrapper(props: any) {
return ;
}
export const dateInputDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: inputControls,
};
================================================
FILE: src/components/custom/components-demo/miscellaneous/divider-demo.tsx
================================================
import { Divider, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Text, Divider } from '@mantine/core';
function Demo() {
return (
<>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, officiis! Fugit minus ea,
perferendis eum consectetur quae vitae. Aliquid, quam reprehenderit? Maiores sed pariatur
aliquid commodi atque sunt officiis natus?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, officiis! Fugit minus ea,
perferendis eum consectetur quae vitae. Aliquid, quam reprehenderit? Maiores sed pariatur
aliquid commodi atque sunt officiis natus?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, officiis! Fugit minus ea,
perferendis eum consectetur quae vitae. Aliquid, quam reprehenderit? Maiores sed pariatur
aliquid commodi atque sunt officiis natus?
>
);
}
`;
function Demo(props: any) {
return (
<>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, officiis! Fugit minus ea,
perferendis eum consectetur quae vitae. Aliquid, quam reprehenderit? Maiores sed pariatur
aliquid commodi atque sunt officiis natus?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, officiis! Fugit minus ea,
perferendis eum consectetur quae vitae. Aliquid, quam reprehenderit? Maiores sed pariatur
aliquid commodi atque sunt officiis natus?
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam, officiis! Fugit minus ea,
perferendis eum consectetur quae vitae. Aliquid, quam reprehenderit? Maiores sed pariatur
aliquid commodi atque sunt officiis natus?
>
);
}
export const dividerDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code,
centered: true,
maxWidth: 500,
controls: [
{ prop: 'size', type: 'size', initialValue: 'xs', libraryValue: 'xs' },
{ prop: 'variant', type: 'segmented', data: ['solid', 'dotted', 'dashed'], initialValue: 'solid', libraryValue: 'solid' },
{ prop: 'color', type: 'color', initialValue: "", libraryValue: "" },
{ prop: 'label', type: 'string', initialValue: 'Divider label', libraryValue: '' },
{ prop: 'labelPosition', type: 'segmented', data: ['left', 'center', 'right'], initialValue: 'center', libraryValue: 'center' },
],
};
================================================
FILE: src/components/custom/components-demo/miscellaneous/paper-demo.tsx
================================================
import { Box, Paper, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: any) {
return (
Paper is the most basic ui component
Use it to create cards, dropdowns, modals and other components that require background
with shadow
);
}
const code = `
import { Text, Paper } from '@mantine/core';
function Demo() {
return (
Paper is the most basic ui component
Use it to create cards, dropdowns, modals and other components that require background
with shadow
);
}
`;
export const paperDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
dimmed: true,
controls: [
{ prop: 'shadow', type: 'size', initialValue: 'xs', libraryValue: 'none' },
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'withBorder', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/miscellaneous/scroll-area-demo.tsx
================================================
import { Box, ScrollArea, ScrollAreaProps, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Content() {
return (
<>
Charizard (Pokémon)
Charizard description from Bulbapedia
Charizard is a draconic, bipedal Pokémon. It is primarily orange with a cream underside from
the chest to the tip of its tail. It has a long neck, small blue eyes, slightly raised
nostrils, and two horn-like structures protruding from the back of its rectangular head.
There are two fangs visible in the upper jaw when its mouth is closed. Two large wings with
blue-green undersides sprout from its back, and a horn-like appendage juts out from the top
of the third joint of each wing. A single wing-finger is visible through the center of each
wing membrane. Charizard's arms are short and skinny compared to its robust belly, and
each limb has three white claws. It has stocky legs with cream-colored soles on each of its
plantigrade feet. The tip of its long, tapering tail burns with a sizable flame.
As Mega Charizard X, its body and legs are more physically fit, though its arms remain thin.
Its skin turns black with a sky-blue underside and soles. Two spikes with blue tips curve
upward from the front and back of each shoulder, while the tips of its horns sharpen, turn
blue, and curve slightly upward. Its brow and claws are larger, and its eyes are now red. It
has two small, fin-like spikes under each horn and two more down its lower neck. The finger
disappears from the wing membrane, and the lower edges are divided into large, rounded
points. The third joint of each wing-arm is adorned with a claw-like spike. Mega Charizard X
breathes blue flames out the sides of its mouth, and the flame on its tail now burns blue.
It is said that its new power turns it black and creates more intense flames.
>
);
}
function Wrapper(props: ScrollAreaProps) {
return (
);
}
const code = `
import { ScrollArea } from '@mantine/core';
function Demo() {
return (
{/* ... content */}
);
}
`;
export const scrollAreaDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [
{
prop: 'type',
type: 'select',
data: [
{ value: 'hover', label: 'Hover' },
{ value: 'auto', label: 'Auto' },
{ value: 'always', label: 'Always' },
{ value: 'scroll', label: 'Scroll' },
{ value: 'never', label: 'Never' },
],
initialValue: 'hover',
libraryValue: 'hover',
},
{
prop: 'offsetScrollbars',
type: 'boolean',
libraryValue: false,
initialValue: false,
},
{
prop: 'scrollbarSize',
type: 'number',
min: 2,
max: 20,
step: 2,
libraryValue: 10,
initialValue: 10,
},
{
prop: 'scrollHideDelay',
type: 'number',
min: 0,
max: 6000,
step: 500,
libraryValue: 1000,
initialValue: 1000,
},
],
};
================================================
FILE: src/components/custom/components-demo/navigation/anchor-demo.tsx
================================================
import { Anchor } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Anchor } from '@mantine/core';
function Demo() {
return (
Anchor component
);
}
`;
function Wrapper(props: any) {
return (
Anchor component
);
}
export const anchorDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 340,
controls: [
{
prop: 'underline',
type: 'segmented',
data: [
{ value: 'always', label: 'Always' },
{ value: 'hover', label: 'Hover' },
{ value: 'never', label: 'Never' },
],
initialValue: 'always',
libraryValue: 'always',
},
]
};
================================================
FILE: src/components/custom/components-demo/navigation/nav-link-demo.tsx
================================================
import { Box, Group, NavLink } from '@mantine/core';
import { IconActivity, IconChevronRight, IconFingerprint, IconGauge } from '@tabler/icons-react';
import { useState } from 'react';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { useState } from 'react';
import { IconGauge, IconFingerprint, IconActivity, IconChevronRight } from '@tabler/icons-react';
import { Box, NavLink } from '@mantine/core';
const data = [
{ icon: IconGauge, label: 'Dashboard', description: 'Item with description' },
{
icon: IconFingerprint,
label: 'Security',
rightSection: ,
},
{ icon: IconActivity, label: 'Activity' },
];
function Demo() {
const [active, setActive] = useState(0);
const items = data.map((item, index) => (
}
onClick={() => setActive(index)}
{{props}}
/>
));
return {items} ;
}
`;
const data = [
{ icon: IconGauge, label: 'Dashboard', description: 'Item with description' },
{
icon: IconFingerprint,
label: 'Security',
rightSection: ,
},
{ icon: IconActivity, label: 'Activity' },
];
function Demo(props: any) {
const [active, setActive] = useState(0);
const items = data.map((item, index) => (
}
onClick={() => setActive(index)}
{...props}
/>
));
return (
{items}
);
}
export const navLinkDemo: MantineDemo = {
type: 'configurator',
component: Demo,
code,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'variant',
type: 'segmented',
data: [
{ value: 'subtle', label: 'Subtle' },
{ value: 'light', label: 'Light' },
{ value: 'filled', label: 'Filled' },
],
libraryValue: 'light',
initialValue: 'light',
},
],
};
================================================
FILE: src/components/custom/components-demo/navigation/pagination-demo.tsx
================================================
import { Pagination } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: any) {
return ;
}
const code = `
import { Pagination } from '@mantine/core';
function Demo() {
return ;
}
`;
export const paginationDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ prop: 'withControls', type: 'boolean', initialValue: true, libraryValue: true },
{ prop: 'withEdges', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'disabled', type: 'boolean', initialValue: false, libraryValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/navigation/stepper-demo.tsx
================================================
import { Stepper, StepperProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: Partial) {
return (
);
}
const code = `
import { Stepper } from '@mantine/core';
function Demo() {
return (
);
}
`;
export const stepperDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: '100%',
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ prop: 'radius', type: 'size', initialValue: 'xl', libraryValue: 'xl' },
{ prop: 'size', type: 'size', initialValue: 'md', libraryValue: 'md' },
],
};
================================================
FILE: src/components/custom/components-demo/navigation/tabs-demo.tsx
================================================
import { rem, Tabs, TabsProps, useDirection } from '@mantine/core';
import { IconMessageCircle, IconPhoto, IconSettings } from '@tabler/icons-react';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: TabsProps) {
const { dir } = useDirection();
const panelProps =
props.orientation === 'vertical' ? { [dir === 'rtl' ? 'pr' : 'pl']: 'xs' } : { pt: 'xs' };
const iconStyle = { width: rem(12), height: rem(12) };
return (
}>
Gallery
}>
Messages
}>
Settings
Gallery tab content
Messages tab content
Settings tab content
);
}
const code = `
import { Tabs, rem } from '@mantine/core';
import { IconPhoto, IconMessageCircle, IconSettings } from '@tabler/icons-react';
function Demo() {
const iconStyle = { width: rem(12), height: rem(12) };
return (
}>
Gallery
}>
Messages
}>
Settings
Gallery tab content
Messages tab content
Settings tab content
);
}`;
export const tabsDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: '100%',
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{
prop: 'variant',
type: 'segmented',
initialValue: 'default',
libraryValue: 'default',
data: [
{ value: 'default', label: 'Default' },
{ value: 'outline', label: 'Outline' },
{ value: 'pills', label: 'Pills' },
],
},
{ prop: 'radius', type: 'size', initialValue: 'sm', libraryValue: 'sm' },
{
prop: 'orientation',
type: 'segmented',
initialValue: 'horizontal',
libraryValue: 'horizontal',
data: [
{ value: 'horizontal', label: 'Horizontal' },
{ value: 'vertical', label: 'Vertical' },
],
},
],
};
================================================
FILE: src/components/custom/components-demo/overlays/authentication-form.tsx
================================================
import { useState } from 'react';
import { IconAt, IconLock } from '@tabler/icons-react';
import {
Anchor,
Button,
Checkbox,
Group,
LoadingOverlay,
Paper,
PasswordInput,
Text,
TextInput,
} from '@mantine/core';
import { useForm } from '@mantine/form';
export interface AuthenticationFormProps {
noShadow?: boolean;
noPadding?: boolean;
noSubmit?: boolean;
style?: React.CSSProperties;
}
export function AuthenticationForm({
noShadow,
noPadding,
noSubmit,
style,
}: AuthenticationFormProps) {
const [formType, setFormType] = useState<'register' | 'login'>('register');
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);
const toggleFormType = () => {
setFormType((current) => (current === 'register' ? 'login' : 'register'));
setError(null);
};
const form = useForm({
initialValues: {
firstName: '',
lastName: '',
email: '',
password: '',
confirmPassword: '',
termsOfService: true,
},
});
const handleSubmit = () => {
setLoading(true);
setError(null);
setTimeout(() => {
setLoading(false);
setError(
formType === 'register'
? 'User with this email already exists'
: 'User with this email does not exist'
);
}, 3000);
};
return (
);
}
================================================
FILE: src/components/custom/components-demo/overlays/dialog-demo.tsx
================================================
import { Button, Dialog, Group, Text, TextInput } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { MantineDemo } from '../../../mantine/demo';
// import { MantineDemo } from '../../../mantine/demo';
const code = `
import { useDisclosure } from '@mantine/hooks';
import { Dialog, Group, Button, TextInput, Text } from '@mantine/core';
function Demo() {
const [opened, { toggle, close }] = useDisclosure(false);
return (
<>
Toggle dialog
Subscribe to email newsletter
Subscribe
>
);
}
`;
function Demo() {
const [opened, { toggle, close }] = useDisclosure(false);
return (
<>
Toggle dialog
Subscribe to email newsletter
Subscribe
>
);
}
export const dialogDemo: MantineDemo = {
type: 'code',
component: Demo,
code,
};
================================================
FILE: src/components/custom/components-demo/overlays/drawer-demo.tsx
================================================
import { Button, Drawer } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { MantineDemo } from '../../../mantine/demo';
import { AuthenticationForm } from './authentication-form';
const code = `
import { useDisclosure } from '@mantine/hooks';
import { Drawer, Button } from '@mantine/core';
function Demo() {
const [opened, { open, close }] = useDisclosure(false);
return (
<>
{/* Drawer content */}
Open Drawer
>
);
}
`;
function Demo() {
const [opened, { open, close }] = useDisclosure(false);
return (
<>
Open Drawer
>
);
}
export const drawerDemo: MantineDemo = {
type: 'code',
code,
centered: true,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/overlays/hover-card-demo.tsx
================================================
import { Button, Group, HoverCard, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { HoverCard, Button, Text, Group } from '@mantine/core';
function Demo() {
return (
Hover to reveal the card
Hover card is revealed when user hovers over target element, it will be hidden once
mouse is not over both target and dropdown elements
);
}
`;
function Demo() {
return (
Hover to reveal the card
Hover card is revealed when user hovers over target element, it will be hidden once
mouse is not over both target and dropdown elements
);
}
export const hoverCardDemo: MantineDemo = {
type: 'code',
component: Demo,
code,
};
================================================
FILE: src/components/custom/components-demo/overlays/loading-overlay-demo.tsx
================================================
import { Box, Button, Group, LoadingOverlay } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { AuthenticationForm } from './authentication-form';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { useDisclosure } from '@mantine/hooks';
import { LoadingOverlay, Button, Group, Box } from '@mantine/core';
function Demo() {
const [visible, { toggle }] = useDisclosure(false);
// Note that position: relative is required
return (
<>
{/* ...other content */}
Toggle overlay
>
);
}`;
export function Demo() {
const [visible, { toggle }] = useDisclosure(false);
return (
<>
Toggle overlay
>
);
}
export const loadingOverlayDemo: MantineDemo = {
centered: true,
maxWidth: 400,
dimmed: true,
type: 'code',
code,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/overlays/menu-demo.tsx
================================================
import {
IconArrowsLeftRight,
IconMessageCircle,
IconPhoto,
IconSearch,
IconSettings,
IconTrash,
} from '@tabler/icons-react';
import { Button, Menu, rem, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function DemoMenuItems({ widthRightSection = true, withTarget = true }) {
const iconProps = { style: { width: rem(14), height: rem(14) } };
return (
<>
{withTarget && (
Toggle menu
)}
Application
}>Settings
}>Messages
}>Gallery
{widthRightSection && (
}
rightSection={
⌘K
}
>
Search
)}
Danger zone
}>Transfer my data
}>
Delete my account
>
);
}
const code = `
import { Menu, Button, Text, rem } from '@mantine/core';
import {
IconSettings,
IconSearch,
IconPhoto,
IconMessageCircle,
IconTrash,
IconArrowsLeftRight,
} from '@tabler/icons-react';
function Demo() {
return (
Toggle menu
Application
}>
Settings
}>
Messages
}>
Gallery
}
rightSection={
⌘K
}
>
Search
Danger zone
}
>
Transfer my data
}
>
Delete my account
);
}
`;
function Demo() {
return (
);
}
export const menuDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
centered: true,
};
================================================
FILE: src/components/custom/components-demo/overlays/modal-demo.tsx
================================================
import { Button, Modal } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { AuthenticationForm } from './authentication-form';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { useDisclosure } from '@mantine/hooks';
import { Modal, Button } from '@mantine/core';
function Demo() {
const [opened, { open, close }] = useDisclosure(false);
return (
<>
{/* Modal content */}
Open modal
>
);
}
`;
function Demo() {
const [opened, { open, close }] = useDisclosure(false);
return (
<>
Open modal
>
);
}
export const modalDemo: MantineDemo = {
type: 'code',
code,
centered: true,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/overlays/overlay-demo.tsx
================================================
import { useState } from 'react';
import { AspectRatio, Button, Overlay } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { useState } from 'react';
import { Button, Overlay, AspectRatio } from '@mantine/core';
function Demo() {
const [visible, setVisible] = useState(true);
return (
<>
{visible && }
setVisible((v) => !v)} fullWidth maw={200} mx="auto" mt="xl">
Toggle overlay
>
);
}
`;
function Demo() {
const [visible, setVisible] = useState(true);
return (
<>
{visible && }
setVisible((v) => !v)} fullWidth maw={200} mx="auto" mt="xl">
Toggle overlay
>
);
}
export const overlayDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/overlays/popover-demo.tsx
================================================
import { Button, Popover, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Popover, Text, Button } from '@mantine/core';
function Demo() {
return (
Toggle popover
This is uncontrolled popover, it is opened when button is clicked
);
}
`;
function Demo() {
return (
Toggle popover
This is uncontrolled popover, it is opened when button is clicked
);
}
export const popoverDemo: MantineDemo = {
type: 'code',
code,
centered: true,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/overlays/tooltip-demo.tsx
================================================
import { Button, Tooltip } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Tooltip, Button } from '@mantine/core';
function Demo() {
return (
Button with tooltip
);
}
`;
function Demo() {
return (
Button with tooltip
);
}
export const tooltipDemo: MantineDemo = {
type: 'code',
component: Demo,
centered: true,
code,
};
================================================
FILE: src/components/custom/components-demo/typography/blockquote-demo.tsx
================================================
import { Blockquote } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Blockquote } from '@mantine/core';
import { IconInfoCircle } from '@tabler/icons-react';
function Demo() {
const icon = ;
return (
Life is like an npm install – you never know what you are going to get.
);
}
`;
function Wrapper(props: any) {
const icon = ;
return (
Life is like an npm install – you never know what you are going to get.
);
}
export const blockquoteDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: 380,
controls: [
{ type: 'color', prop: 'color', initialValue: '', libraryValue: '' },
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{
type: 'number',
prop: 'iconSize',
initialValue: 48,
min: 30,
max: 60,
step: 1,
libraryValue: 48,
},
],
};
================================================
FILE: src/components/custom/components-demo/typography/code-demo.tsx
================================================
import { Code } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Code } from '@mantine/core';
const codeForPreviousDemo = \`
import { Code } from '@mantine/core';
function Demo() {
return React.createElement();
}\`;
function Demo() {
return {codeForPreviousDemo};
}
`;
const codeForPreviousDemo = `
import { Code } from '@mantine/core';
function Demo() {
return React.createElement();
}`;
function Demo() {
return {codeForPreviousDemo};
}
export const codeDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/typography/highlight-demo.tsx
================================================
import { Highlight, HighlightProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: HighlightProps) {
return ;
}
const code = `
import { Highlight } from '@mantine/core';
function Demo() {
return (
{{children}}
);
}
`;
export const highlightDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: '100%',
controls: [
{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' },
{ prop: 'highlight', type: 'string', initialValue: 'this', libraryValue: null },
{
prop: 'children',
type: 'string',
initialValue: 'Highlight This, definitely THIS and also this!',
libraryValue: null,
},
],
};
================================================
FILE: src/components/custom/components-demo/typography/list-demo.tsx
================================================
import { List, ListProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: ListProps) {
return (
Clone or download repository from GitHub
Install dependencies with yarn
To start development server run npm start command
Run tests to make sure your changes do not break the build
Submit a pull request once you are done
);
}
const code = `
import { List } from '@mantine/core';
function Demo() {
return (
Clone or download repository from GitHub
Install dependencies with yarn
To start development server run npm start command
Run tests to make sure your changes do not break the build
Submit a pull request once you are done
);
}
`;
export const listDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [
{
prop: 'type',
type: 'segmented',
data: [
{ value: 'unordered', label: 'Unordered' },
{ value: 'ordered', label: 'Ordered' },
],
initialValue: 'unordered',
libraryValue: 'unordered',
},
{ prop: 'size', type: 'size', libraryValue: 'md', initialValue: 'md' },
{ prop: 'withPadding', type: 'boolean', libraryValue: false, initialValue: false },
],
};
================================================
FILE: src/components/custom/components-demo/typography/mark-demo.tsx
================================================
import { Mark, MarkProps, Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
function Wrapper(props: MarkProps) {
return (
Highlight this chunk of the text
);
}
const code = `
import { Text, Mark } from '@mantine/core';
function Demo() {
return (
Highlight this chunk of the text
);
}
`;
export const markDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
centered: true,
maxWidth: '100%',
controls: [{ prop: 'color', type: 'color', initialValue: '', libraryValue: '' }],
};
================================================
FILE: src/components/custom/components-demo/typography/table-demo.tsx
================================================
import { Table, TableProps } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const elements = [
{ position: 6, mass: 12.011, symbol: 'C', name: 'Carbon' },
{ position: 7, mass: 14.007, symbol: 'N', name: 'Nitrogen' },
{ position: 39, mass: 88.906, symbol: 'Y', name: 'Yttrium' },
{ position: 56, mass: 137.33, symbol: 'Ba', name: 'Barium' },
{ position: 58, mass: 140.12, symbol: 'Ce', name: 'Cerium' },
];
function Wrapper(props: TableProps) {
return (
Element position
Element name
Symbol
Atomic mass
{elements.map((element) => (
{element.position}
{element.name}
{element.symbol}
{element.mass}
))}
);
}
const code = `
import { Table } from '@mantine/core';
function Demo() {
return (
);
}
`;
export const tableDemo: MantineDemo = {
type: 'configurator',
component: Wrapper,
code,
controls: [
{ prop: 'striped', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'highlightOnHover', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'withTableBorder', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'withColumnBorders', type: 'boolean', initialValue: false, libraryValue: false },
{ prop: 'withRowBorders', type: 'boolean', initialValue: true, libraryValue: true },
],
};
================================================
FILE: src/components/custom/components-demo/typography/text-demo.tsx
================================================
import { Text } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Text } from '@mantine/core';
function Demo() {
return (
<>
Extra small text
Small text
Default text
Large text
Extra large text
Semibold
Bold
Italic
Underlined
Strikethrough
Dimmed text
Blue text
Teal 4 text
Uppercase
capitalized text
Aligned to center
Aligned to right
>
);
}
`;
function Demo() {
return (
<>
Extra small text
Small text
Default text
Large text
Extra large text
Semibold
Bold
Italic
Underlined
Strikethrough
Dimmed text
Blue text
Teal 4 text
Uppercase
capitalized text
Aligned to center
Aligned to right
>
);
}
export const textDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
};
================================================
FILE: src/components/custom/components-demo/typography/title-demo.tsx
================================================
import { Title } from '@mantine/core';
import { MantineDemo } from '../../../mantine/demo';
const code = `
import { Title } from '@mantine/core';
function Demo() {
return (
<>
This is h1 title
This is h2 title
This is h3 title
This is h4 title
This is h5 title
This is h6 title
>
);
}
`;
function Demo() {
return (
<>
This is h1 title
This is h2 title
This is h3 title
This is h4 title
This is h5 title
This is h6 title
>
);
}
export const titleDemo: MantineDemo = {
type: 'code',
code,
component: Demo,
};
================================================
FILE: src/components/custom/how-to-use/how-to-use.tsx
================================================
import { CodeHighlightTabs } from "@mantine/code-highlight";
import { Anchor, Box, Code, Divider, List, Stack, Text, Title } from "@mantine/core";
import { CssIcon, TypeScriptIcon } from "@mantinex/dev-icons";
const shadcnThemeExampleCode = `
import '@mantine/core/styles.css';
import { MantineProvider } from '@mantine/core';
import { shadcnCssVariableResolver } from "./cssVariableResolver.ts";
import { shadcnTheme } from "./theme.ts";
import "./style.css";
export default function App() {
return
{/* Your app here */}
;
};`;
const mantineThemeExampleCode = `
import '@mantine/core/styles.css';
import { MantineProvider } from '@mantine/core';
import { mantineTheme } from "./theme.ts";
export default function App() {
return
{/* Your app here */}
;
};`;
const pasteThemeObjects = `
//Paste the code generated theme objects from the Mantine Theme Builder website
// Your code here
`;
const pasteCssVariableResolver = `
//Paste the code generated cssVariableResolver objects from the Mantine Theme Builder website
// Your code here
`;
const pasteStyles = `
//Paste the code generated styles from the Mantine Theme Builder website
// Your code here
`;
export const HowToUsePage = () => {
// const [value, setValue] = useState("shadcn");
const tsIcon = ;
const cssIcon = ;
return (
Getting Started
Set up a new project with Mantine by following the{" "}
official Mantine documentation
{" "}
.
In this website, click on the "Change Theme" button to select from the available themes.
After selecting a theme, you can visit the playground to preview how each component looks with your chosen theme.
{/*
Click on the "Copy Code" button next to it to get your theme code, which you'll add to your project as explained in the next section.
*/}
Set up the theme files
Click the "Copy Code" button in this website - this will open a modal with 3 tabs
In your project, create a new file called theme.ts and paste the code from the first tab labeled "theme.ts"
Create another file called cssVariableResolver.ts and paste the code from the second tab labeled "cssVariableResolver.ts"
Finally, create a styles.css file and paste the CSS code from the third tab labeled "style.css"
Import the theme and resolver into MantineProvider, and add styles.css to App.tsx (explained in next section)
Set up MantineProvider
Replace or extend the theme object in your MantineProvider as follows
For Shadcn Themes
For Mantine Themes
No need to add cssVariableResolver.ts and styles.css files when using a Mantine
Theme.
);
};
================================================
FILE: src/components/custom/testimonial/testimonial-grid.tsx
================================================
import { SimpleGrid } from "@mantine/core";
import { ITestimonialItem, TestimonialItem } from "./testimonial-item";
export const TestimonialGrid = ({ testimonialItems }: { testimonialItems: Array }) => {
return (
{testimonialItems.map((testimonial, index) => (
))}
);
};
================================================
FILE: src/components/custom/testimonial/testimonial-item.tsx
================================================
import { Box, Text, Group, Stack, Avatar, UnstyledButton } from "@mantine/core";
export interface ITestimonialItem {
className?: string;
url?: string;
text: string;
imageSrc: string;
name: string;
handle: string;
}
export const TestimonialItem = ({ url, text, imageSrc, name, handle }: ITestimonialItem) => {
const missingUrl = !url || url === "#";
return (
"{text}"
{name}
{handle}
);
};
================================================
FILE: src/components/custom/theme-example-cards/activity-goal.tsx
================================================
import * as React from "react"
import { MinusIcon, PlusIcon } from "@radix-ui/react-icons"
import { ActionIcon, alpha, Box, Button, Card, Group, rem, Stack, Text, Title } from "@mantine/core"
import { BarChart } from "@mantine/charts"
const data = [
{
goal: 400,
day: 1,
},
{
goal: 300,
day: 2,
},
{
goal: 200,
day: 3,
},
{
goal: 300,
day: 4,
},
{
goal: 200,
day: 5,
},
{
goal: 278,
day: 6,
},
{
goal: 189,
day: 7,
},
{
goal: 239,
day: 8,
},
{
goal: 300,
day: 9,
},
{
goal: 200,
day: 10,
},
{
goal: 278,
day: 11,
},
{
goal: 189,
day: 12,
},
{
goal: 349,
day: 13,
},
]
export function CardsActivityGoal() {
// const theme = useMantineTheme()
const [goal, setGoal] = React.useState(350)
function onClick(adjustment: number) {
setGoal(Math.max(200, Math.min(400, goal + adjustment)))
}
return (
Move Goal
Set your daily activity goal.
onClick(-10)}
disabled={goal <= 200}
radius="50%"
>
{goal}
Calories/day
onClick(10)}
disabled={goal >= 400}
radius="50%"
>
({
isAnimationActive: true,
})}
withTooltip={false}
/>
Set Goal
)
}
================================================
FILE: src/components/custom/theme-example-cards/calendar.tsx
================================================
import { useState } from "react";
import { Card } from "@mantine/core";
import { DatePicker } from "@mantine/dates";
export function CardsCalendar() {
const [value, setValue] = useState<[Date | null, Date | null]>([new Date(2023, 5, 5), new Date(2023, 5, 13)]);
return (
{
if (dates[0] && dates[1]) {
setValue(dates as [Date, Date]);
}
}}
firstDayOfWeek={0}
defaultDate={new Date(2023, 5)}
withCellSpacing={false}
/>
);
}
================================================
FILE: src/components/custom/theme-example-cards/chat.tsx
================================================
import {
ActionIcon,
Avatar,
Box,
Button,
Card,
Divider,
Group,
rem,
Space,
Stack,
Text,
TextInput,
Tooltip,
} from "@mantine/core";
import { spotlight, Spotlight } from "@mantine/spotlight";
import { MagnifyingGlassIcon, PaperPlaneIcon, PlusIcon } from "@radix-ui/react-icons";
import { useState } from "react";
import { useTheme } from "../../../theme-context";
const users = [
{
name: "Olivia Martin",
email: "m@example.com",
avatar: "/avatars/01.png",
},
{
name: "Isabella Nguyen",
email: "isabella.nguyen@email.com",
avatar: "/avatars/03.png",
},
{
name: "Emma Wilson",
email: "emma@example.com",
avatar: "/avatars/05.png",
},
{
name: "Jackson Lee",
email: "lee@example.com",
avatar: "/avatars/02.png",
},
{
name: "William Kim",
email: "will@email.com",
avatar: "/avatars/04.png",
},
] as const;
type User = (typeof users)[number];
export function CardsChat() {
const [query, setQuery] = useState("");
const [selectedUsers, setSelectedUsers] = useState([]);
const [messages, setMessages] = useState([
{
role: "agent",
content: "Hi, how can I help you today?",
},
{
role: "user",
content: "Hey, I'm having trouble with my account.",
},
{
role: "agent",
content: "What seems to be the problem?",
},
{
role: "user",
content: "I can't log in.",
},
]);
const [input, setInput] = useState("");
const inputLength = input.trim().length;
const { theme } = useTheme();
const items = users
.filter((item) => item.name.toLowerCase().includes(query.toLowerCase().trim()))
.map((item) => (
setSelectedUsers([...selectedUsers, item])} />
}
/>
));
return (
<>
Sofia Davis
m@example.com
spotlight.open()}>
{messages.map((message, index) => (
{message.content}
))}
New message
Invite a user to this thread. This will create a new group message.
}
/>
{items.length > 0 ? items : Nothing found... }
{selectedUsers.length > 0 ? (
selectedUsers.map((user) => )
) : (
Select users to add to this thread.
)}
spotlight.close()} disabled={selectedUsers.length < 2}>
Continue
>
);
}
================================================
FILE: src/components/custom/theme-example-cards/cookie-settings.tsx
================================================
import { Button, Card, Text, Switch, Group, Title } from '@mantine/core';
export function CardsCookieSettings() {
return (
Cookie Settings
Manage your cookie settings here.
Strictly Necessary
These cookies are essential in order to use the website and use its features.
Functional Cookies
These cookies allow the website to provide personalized functionality.
Performance Cookies
These cookies help to improve the performance of the website.
Save preferences
);
}
================================================
FILE: src/components/custom/theme-example-cards/create-account.tsx
================================================
import { Button, Card, TextInput, Divider, Text, Group, Title } from '@mantine/core';
import { Icons } from '../../ui/icons';
export function CardsCreateAccount() {
return (
Create an account
Enter your email below to create your account
}>
GitHub
}>
Google
Create account
);
}
================================================
FILE: src/components/custom/theme-example-cards/data-table.tsx
================================================
import {
Box,
Button,
Card,
Checkbox,
Group,
Menu,
Select,
Stack,
Table,
Text,
TextInput,
Title
} from "@mantine/core";
import {
IconChevronDown,
IconDots,
IconSortAscending,
} from "@tabler/icons-react";
import {
ColumnDef,
ColumnFiltersState,
flexRender,
getCoreRowModel,
getFilteredRowModel,
getPaginationRowModel,
getSortedRowModel,
SortingState,
useReactTable,
VisibilityState,
} from "@tanstack/react-table";
import * as React from "react";
const data: Payment[] = [
{
id: "m5gr84i9",
amount: 316,
status: "success",
email: "ken99@yahoo.com",
},
{
id: "3u1reuv4",
amount: 242,
status: "success",
email: "Abe45@gmail.com",
},
{
id: "derv1ws0",
amount: 837,
status: "processing",
email: "Monserrat44@gmail.com",
},
{
id: "5kma53ae",
amount: 874,
status: "success",
email: "Silas22@gmail.com",
},
{
id: "bhqecj4p",
amount: 721,
status: "failed",
email: "carmella@hotmail.com",
},
];
export type Payment = {
id: string;
amount: number;
status: "pending" | "processing" | "success" | "failed";
email: string;
};
export const columns: ColumnDef[] = [
{
id: "select",
header: ({ table }) => (
table.toggleAllPageRowsSelected(e.currentTarget.checked)
}
aria-label="Select all"
/>
),
cell: ({ row }) => (
row.toggleSelected(e.currentTarget.checked)}
aria-label="Select row"
/>
),
enableSorting: false,
enableHiding: false,
},
{
accessorKey: "status",
header: "Status",
cell: ({ row }) => (
{(row.getValue("status") as string).toUpperCase()}
),
},
{
accessorKey: "email",
header: ({ column }) => {
return (
column.toggleSorting(column.getIsSorted() === "asc")}
c={"inherit"}
>
Email
);
},
cell: ({ row }) => (
{(row.getValue("email") as string).toLowerCase()}
),
},
{
accessorKey: "amount",
header: "Amount",
cell: ({ row }) => {
const amount = parseFloat(row.getValue("amount"));
const formatted = new Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
}).format(amount);
return {formatted} ;
},
},
{
id: "actions",
enableHiding: false,
cell: ({ row }) => {
const payment = row.original;
return (
navigator.clipboard.writeText(payment.id)}
>
Copy payment ID
View customer
View payment details
);
},
},
];
export function CardsDataTable() {
const [sorting, setSorting] = React.useState([]);
const [columnFilters, setColumnFilters] = React.useState(
[]
);
const [columnVisibility, setColumnVisibility] =
React.useState({});
const [rowSelection, setRowSelection] = React.useState({});
const table = useReactTable({
data,
columns,
onSortingChange: setSorting,
onColumnFiltersChange: setColumnFilters,
getCoreRowModel: getCoreRowModel(),
getPaginationRowModel: getPaginationRowModel(),
getSortedRowModel: getSortedRowModel(),
getFilteredRowModel: getFilteredRowModel(),
onColumnVisibilityChange: setColumnVisibility,
onRowSelectionChange: setRowSelection,
state: {
sorting,
columnFilters,
columnVisibility,
rowSelection,
},
});
return (
Payments
Manage your payments.
table.getColumn("email")?.setFilterValue(event.target.value)
}
style={{ maxWidth: 300, flexGrow: 1 }}
/>
col.id.charAt(0).toUpperCase() + col.id.slice(1))}
placeholder="Columns"
rightSection={ }
onChange={(value) => {
const col = table.getColumn(value!);
col?.toggleVisibility(!col.getIsVisible());
}}
/>
{table.getHeaderGroups().map((headerGroup) => (
{headerGroup.headers.map((header) => (
{header.isPlaceholder
? null
: flexRender(
header.column.columnDef.header,
header.getContext()
)}
))}
))}
{table.getRowModel().rows.length ? (
table.getRowModel().rows.map((row) => (
{row.getVisibleCells().map((cell) => (
{flexRender(
cell.column.columnDef.cell,
cell.getContext()
)}
))}
))
) : (
No results.
)}
{table.getFilteredSelectedRowModel().rows.length} of{" "}
{table.getFilteredRowModel().rows.length} row(s) selected.
Previous
Next
);
}
================================================
FILE: src/components/custom/theme-example-cards/mantine-cards.tsx
================================================
import { Grid, Group, SimpleGrid, Stack } from "@mantine/core";
import { CardsActivityGoal } from "./activity-goal";
import { CardsCalendar } from "./calendar";
import { CardsChat } from "./chat";
import { CardsMetric } from "./metric";
import { CardsStats } from "./stats";
import { CardsTeamMembers } from "./team-members";
import { CardsCookieSettings } from "./cookie-settings";
import { CardsPaymentMethod } from "./payment-method";
import { CardsCreateAccount } from "./create-account";
import { CardsReportIssue } from "./report-issue";
import { CardsDataTable } from "./data-table";
import { CardsShare } from "./share";
import { useMediaQuery } from "@mantine/hooks";
const MantineCards = () => {
const isMobile = useMediaQuery ('(max-width: 425px)');
return (
);
};
export default MantineCards;
================================================
FILE: src/components/custom/theme-example-cards/metric.tsx
================================================
import { LineChart } from "@mantine/charts";
import { alpha, Box, Card, Text, Title, useMantineTheme } from "@mantine/core";
import { metricData } from "../../../utils/data";
import { ChartTooltip } from "../../ui/chart-tooltip";
// import { Line, LineChart, ResponsiveContainer, Tooltip } from "recharts";
export function CardsMetric() {
const theme = useMantineTheme();
return (
Exercise Minutes
Your exercise minutes are ahead of where you normally are.
,
}}
dotProps={{ strokeWidth: 2, fill: "#fff" }}
lineProps={(series) => ({
dataKey: series.name,
isAnimationActive: true,
// opacity: series.name === "average" ? 0.25 : 1,
})}
/>
);
}
================================================
FILE: src/components/custom/theme-example-cards/payment-method.tsx
================================================
import {
Button,
Card,
Group,
Radio,
Select,
Space,
Stack,
Text,
TextInput,
Title
} from "@mantine/core";
import { useState } from "react";
export function CardsPaymentMethod() {
const [paymentMethod, setPaymentMethod] = useState("card");
return (
Payment Method
Add a new payment method to your account.
setPaymentMethod("card")}
style={{
borderColor:
paymentMethod === "card"
? "var(--mantine-primary-color-filled)"
: "var(--mantine-color-default-border)",
}}
py={"xs"}
>
Card
setPaymentMethod("paypal")}
style={{
borderColor:
paymentMethod === "paypal"
? "var(--mantine-primary-color-filled)"
: "var(--mantine-color-default-border)",
}}
py={"xs"}
>
Paypal
setPaymentMethod("apple")}
style={{
borderColor:
paymentMethod === "apple"
? "var(--mantine-primary-color-filled)"
: "var(--mantine-color-default-border)",
}}
py={"xs"}
>
Apple
({
value: `${new Date().getFullYear() + i}`,
label: `${new Date().getFullYear() + i}`,
}))}
/>
Continue
);
}
================================================
FILE: src/components/custom/theme-example-cards/report-issue.tsx
================================================
import { Button, Card, Group, Select, Stack, Text, TextInput, Textarea, Title } from "@mantine/core";
import * as React from "react";
export function CardsReportIssue() {
const id = React.useId();
return (
Report an issue
What area are you having problems with?
Cancel
Submit
);
}
================================================
FILE: src/components/custom/theme-example-cards/share.tsx
================================================
import { Avatar, Button, Card, Input, Select, Text, Divider, Title, Group, Box } from '@mantine/core';
export function CardsShare() {
return (
Share this document
Anyone with the link can view this document.
Copy Link
People with access
{[
{ name: 'Olivia Martin', email: 'm@example.com', avatar: 'https://ui.shadcn.com/avatars/03.png', fallback: 'OM', access: 'edit' },
{ name: 'Isabella Nguyen', email: 'b@example.com', avatar: 'https://ui.shadcn.com/avatars/05.png', fallback: 'IN', access: 'view' },
{ name: 'Sofia Davis', email: 'p@example.com', avatar: 'https://ui.shadcn.com/avatars/01.png', fallback: 'SD', access: 'view' },
].map((person) => (
{person.fallback}
{person.name}
{person.email}
))}
);
}
================================================
FILE: src/components/custom/theme-example-cards/stats.tsx
================================================
import { BarChart, LineChart } from "@mantine/charts";
import { Box, Card, rem, SimpleGrid, Text } from "@mantine/core";
const data = [
{
revenue: 10400,
subscription: 240,
},
{
revenue: 14405,
subscription: 300,
},
{
revenue: 9400,
subscription: 200,
},
{
revenue: 8200,
subscription: 278,
},
{
revenue: 7000,
subscription: 189,
},
{
revenue: 9600,
subscription: 239,
},
{
revenue: 11244,
subscription: 278,
},
{
revenue: 26475,
subscription: 189,
},
];
export function CardsStats() {
return (
Total Revenue
$15,231.89
+20.1% from last month
Subscriptions
+2350
+180.1% from last month
);
}
================================================
FILE: src/components/custom/theme-example-cards/team-members.tsx
================================================
import { ChevronDownIcon } from "@radix-ui/react-icons"
import { Avatar, Button, Card, Text, Popover, TextInput, Group, Stack, Divider, Box, Title } from '@mantine/core';
import { IconSearch } from "@tabler/icons-react";
export function CardsTeamMembers() {
const options = [
{ value: 'viewer', label: 'Viewer', description: 'Can view and comment.' },
{ value: 'developer', label: 'Developer', description: 'Can view, comment and edit.' },
{ value: 'billing', label: 'Billing', description: 'Can view, comment and manage billing.' },
{ value: 'owner', label: 'Owner', description: 'Admin-level access to all resources.' },
];
return (
Team Members
Invite your team members to collaborate.
Sofia Davis
m@example.com
}>
Owner
}
/>
{options?.map((option)=>
{option.label}
{option.description}
)}
Jackson Lee
p@example.com
}>
Member
}
/>
{options?.map((option)=>
{option.label}
{option.description}
)}
Isabella Nguyen
i@example.com
}>
Member
}
/>
{options?.map((option)=>
{option.label}
{option.description}
)}
);
}
================================================
FILE: src/components/layouts/page-layout.tsx
================================================
'use client'
import { Anchor, Box, Container, Divider, Group, Stack, Text, Title } from "@mantine/core";
import React from "react";
import { Header } from "../ui/header/header";
import ChangeThemeSection from "../custom/change-theme-section/change-theme-section";
interface LayoutProps {
children: React.ReactNode;
title?: string;
description?: string | React.ReactNode;
isBlockPage?: boolean;
showActionButtons?: boolean;
}
const PageLayout = ({ children, title, description, isBlockPage, showActionButtons = true }: LayoutProps) => {
return (
{title}
{description}
{showActionButtons && }
{children}
This project is inspired by{" "}
Shadcn Themes.
{" "}
The source code is available on{" "}
GitHub
.
{/*
Made with ❤️ by{" "}
RubixCube Innovations
*/}
);
};
export default PageLayout;
================================================
FILE: src/components/mantine/demo/CodeDemo/CodeDemo.tsx
================================================
import { DemoArea, DemoAreaProps } from "../DemoArea";
import { DemoCode, DemoCodeProps } from "../DemoCode";
import { DemoRoot } from "../DemoRoot";
import { useState } from "react";
import { Button, Flex } from "@mantine/core";
export interface CodeDemoProps extends DemoCodeProps, DemoAreaProps {}
export function CodeDemo({
code,
children,
withPadding,
centered,
defaultExpanded = true,
maxWidth,
minHeight,
dimmed,
striped,
}: CodeDemoProps) {
const [showCode, setShowCode] = useState(false);
return (
{children}
setShowCode((prev) => !prev)}>
{showCode ? "Hide Code" : "Show Code"}
{showCode && }
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/ConfiguratorDemo.module.css
================================================
.controls {
padding: calc(var(--mantine-spacing-md) - 4px);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/ConfiguratorDemo.tsx
================================================
import { cloneElement, useState } from "react";
import { Button, Stack } from "@mantine/core";
import { DemoAreaProps } from "../DemoArea";
import { DemoCode } from "../DemoCode";
import { DemoColumns } from "../DemoColumns";
import { DemoRoot } from "../DemoRoot";
import {
ConfiguratorBooleanControl,
ConfiguratorBooleanControlOptions,
ConfiguratorColorControl,
ConfiguratorColorControlOptions,
ConfiguratorNumberControl,
ConfiguratorNumberControlOptions,
ConfiguratorSegmentedControl,
ConfiguratorSegmentedControlOptions,
ConfiguratorSelectControl,
ConfiguratorSelectControlOptions,
ConfiguratorSizeControl,
ConfiguratorSizeControlOptions,
ConfiguratorStringControl,
ConfiguratorStringControlOptions,
} from "./controls";
import { Code, getCodeArray } from "./get-code-array";
import classes from "./ConfiguratorDemo.module.css";
const ControlComponents = {
boolean: ConfiguratorBooleanControl,
segmented: ConfiguratorSegmentedControl,
color: ConfiguratorColorControl,
string: ConfiguratorStringControl,
select: ConfiguratorSelectControl,
size: ConfiguratorSizeControl,
number: ConfiguratorNumberControl,
};
export type ConfiguratorControlOptions =
| ConfiguratorBooleanControlOptions
| ConfiguratorSegmentedControlOptions
| ConfiguratorColorControlOptions
| ConfiguratorStringControlOptions
| ConfiguratorSelectControlOptions
| ConfiguratorSizeControlOptions
| ConfiguratorNumberControlOptions;
export interface ConfiguratorDemoProps extends DemoAreaProps {
code: Code;
controls: ConfiguratorControlOptions[];
}
export function ConfiguratorDemo({
code,
controls,
children,
centered,
maxWidth,
minHeight,
withPadding,
dimmed,
striped,
}: ConfiguratorDemoProps) {
const initialState = controls.reduce>((acc, control) => {
if (control.initialValue) acc[control.prop] = control.initialValue;
return acc;
}, {});
const [state, setState] = useState(initialState);
const setStateField = (field: string, value: any) => setState((current) => ({ ...current, [field]: value }));
const [showCode, setShowCode] = useState(false);
const items = controls.map((control) => {
const ControlComponent = ControlComponents[control.type] as any;
const { ...rest } = control;
return (
setStateField(control.prop, value)}
{...rest}
/>
);
});
return (
{items}
setShowCode((s) => !s)} fullWidth>
{showCode ? "Hide code" : "Show code"}
}
centered={centered}
withPadding={withPadding}
maxWidth={maxWidth}
minHeight={minHeight}
dimmed={dimmed}
striped={striped}
>
{cloneElement(children as JSX.Element, state)}
{showCode && }
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/clear-props.ts
================================================
import type { ConfiguratorControlOptions } from './ConfiguratorDemo';
type Values = Record;
export function clearProps(controls: ConfiguratorControlOptions[], state: Values) {
const normalizedControls = controls.reduce((acc, control) => {
acc[control.prop] = control.libraryValue;
return acc;
}, {});
return Object.keys(state).reduce((acc, key) => {
if (state[key] !== normalizedControls[key]) {
acc[key] = state[key];
}
return acc;
}, {});
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ColorWheelIcon.tsx
================================================
import { rem } from '@mantine/core';
export function ColorWheelIcon() {
return (
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorBoolean.control.tsx
================================================
import { BoxProps, ElementProps, Switch } from '@mantine/core';
import { getControlLabel } from './get-control-label';
import { ConfiguratorControl } from './types';
export type ConfiguratorBooleanControlOptions = ConfiguratorControl<
'boolean',
{ initialValue: boolean }
>;
export interface ConfiguratorBooleanControlProps
extends BoxProps,
ElementProps<'input', 'onChange' | 'value' | 'size'> {
value: boolean;
onChange: (value: boolean) => void;
prop: string;
}
export function ConfiguratorBooleanControl({
value,
onChange,
prop,
...others
}: ConfiguratorBooleanControlProps) {
return (
onChange(event.currentTarget.checked)}
label={getControlLabel(prop)}
{...others}
/>
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorColor.control.module.css
================================================
.swatch {
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
color: var(--mantine-color-white);
flex: 1 0 calc(15% - 4px);
}
.check {
width: 12px;
height: 12px;
}
.colorControl {
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
flex: 1 0 calc(15% - 4px);
height: 28px;
border-radius: var(--mantine-radius-sm);
border: 1px solid;
@mixin where-light {
border-color: var(--mantine-color-gray-5);
}
@mixin where-dark {
border-color: var(--mantine-color-dark-3);
}
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorColor.control.tsx
================================================
import {
BoxProps,
CheckIcon,
ColorPicker,
ColorSwatch,
ElementProps,
Group,
Input,
Popover,
TextInput,
UnstyledButton,
useMantineTheme
} from '@mantine/core';
import { useState } from 'react';
import { getDefaultColors } from '../../../../../utils/functions';
import { ColorWheelIcon } from './ColorWheelIcon';
import classes from './ConfiguratorColor.control.module.css';
import { getControlLabel } from './get-control-label';
import { ConfiguratorControl } from './types';
export type ConfiguratorColorControlOptions = ConfiguratorControl<
'color',
{ initialValue: string }
>;
export interface ConfiguratorColorControlProps
extends BoxProps,
ElementProps<'div', 'onChange' | 'value' | 'size'> {
value: string;
onChange: (value: string) => void;
prop: string;
}
export function ConfiguratorColorControl({
value,
onChange,
prop,
...others
}: ConfiguratorColorControlProps) {
const [colorPickerColor, setColorPickerColor] = useState('#fff');
const handleColorPickerChange = (color: string) => {
setColorPickerColor(color);
onChange(color);
};
const theme = useMantineTheme();
const colors = getDefaultColors(theme.other.style)
.filter((color) => color.id !== 'dark' && color.id !== 'secondary')
.map((color) => {
return onChange(color.id)}
radius="sm"
className={classes.swatch}
aria-label={color.id}
>
{value === color.id && }
}
);
return (
{colors}
handleColorPickerChange(event.currentTarget.value)}
placeholder="Enter color"
radius="md"
size="xs"
mt="xs"
/>
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorNumber.control.tsx
================================================
import { BoxProps, ElementProps, Input, Slider } from '@mantine/core';
import { getControlLabel } from './get-control-label';
import { ConfiguratorControl } from './types';
export type ConfiguratorNumberControlOptions = ConfiguratorControl<
'number',
{ initialValue: number; min?: number; max?: number; step?: number }
>;
export interface ConfiguratorNumberControlProps extends BoxProps, ElementProps<'div', 'onChange'> {
value: number;
onChange: (value: number) => void;
prop: string;
step?: number;
min?: number;
max?: number;
}
export function ConfiguratorNumberControl({
value,
onChange,
prop,
step,
min,
max,
...others
}: ConfiguratorNumberControlProps) {
return (
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorSegmented.control.tsx
================================================
import { BoxProps, ElementProps, Input, SegmentedControl } from '@mantine/core';
import { getControlLabel } from './get-control-label';
import { SelectData, transformSelectData } from './transform-select-data';
import { ConfiguratorControl } from './types';
export type ConfiguratorSegmentedControlOptions = ConfiguratorControl<
'segmented',
{ data: SelectData; initialValue: string }
>;
export interface ConfiguratorSegmentedControlProps
extends BoxProps,
ElementProps<'div', 'onChange'> {
data: SelectData;
value: string;
onChange: (value: string) => void;
prop: string;
transformLabel?: boolean;
}
export function ConfiguratorSegmentedControl({
data,
value,
onChange,
prop,
transformLabel = true,
...others
}: ConfiguratorSegmentedControlProps) {
return (
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorSelect.control.tsx
================================================
import { BoxProps, ElementProps, NativeSelect } from '@mantine/core';
import { getControlLabel } from './get-control-label';
import { SelectData, transformSelectData } from './transform-select-data';
import { ConfiguratorControl } from './types';
export type ConfiguratorSelectControlOptions = ConfiguratorControl<
'select',
{ data: SelectData; initialValue: string }
>;
export interface ConfiguratorSelectControlProps
extends BoxProps,
ElementProps<'select', 'onChange' | 'value' | 'size'> {
value: string;
data: SelectData;
onChange: (value: string) => void;
prop: string;
}
export function ConfiguratorSelectControl({
value,
onChange,
prop,
data,
...others
}: ConfiguratorSelectControlProps) {
return (
onChange(event.currentTarget.value)}
label={getControlLabel(prop)}
data={transformSelectData(data)}
{...others}
/>
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorSize.control.tsx
================================================
import { BoxProps, ElementProps, Input, Slider } from '@mantine/core';
import { getControlLabel } from './get-control-label';
import { ConfiguratorControl } from './types';
const MARKS = [
{ value: 0, label: 'xs' },
{ value: 25, label: 'sm' },
{ value: 50, label: 'md' },
{ value: 75, label: 'lg' },
{ value: 100, label: 'xl' },
];
export type ConfiguratorSizeControlOptions = ConfiguratorControl<'size', { initialValue: string }>;
export interface ConfiguratorSizeControlProps extends BoxProps, ElementProps<'div', 'onChange'> {
value: string;
onChange: (value: string) => void;
prop: string;
}
export function ConfiguratorSizeControl({
value,
onChange,
prop,
...others
}: ConfiguratorSizeControlProps) {
const _value = MARKS.find((mark) => mark.label === value)!.value;
const handleChange = (val: number) => onChange(MARKS.find((mark) => mark.value === val)!.label);
return (
MARKS.find((mark) => mark.value === val)!.label}
step={25}
marks={MARKS}
styles={{ markLabel: { display: 'none' } }}
thumbLabel="Size"
/>
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/ConfiguratorString.control.tsx
================================================
import { BoxProps, ElementProps, TextInput } from '@mantine/core';
import { getControlLabel } from './get-control-label';
import { ConfiguratorControl } from './types';
export type ConfiguratorStringControlOptions = ConfiguratorControl<
'string',
{ initialValue: string }
>;
export interface ConfiguratorStringControlProps
extends BoxProps,
ElementProps<'input', 'onChange' | 'value' | 'size'> {
value: string;
onChange: (value: string) => void;
prop: string;
}
export function ConfiguratorStringControl({
value,
onChange,
prop,
...others
}: ConfiguratorStringControlProps) {
return (
onChange(event.currentTarget.value)}
label={getControlLabel(prop)}
placeholder="Enter prop value"
{...others}
/>
);
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/get-control-label.ts
================================================
import { upperFirst } from '@mantine/hooks';
export function getControlLabel(label: string) {
return upperFirst(label.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase());
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/index.ts
================================================
export { ConfiguratorBooleanControl } from './ConfiguratorBoolean.control';
export { ConfiguratorSegmentedControl } from './ConfiguratorSegmented.control';
export { ConfiguratorColorControl } from './ConfiguratorColor.control';
export { ConfiguratorStringControl } from './ConfiguratorString.control';
export { ConfiguratorSelectControl } from './ConfiguratorSelect.control';
export { ConfiguratorSizeControl } from './ConfiguratorSize.control';
export { ConfiguratorNumberControl } from './ConfiguratorNumber.control';
export type { ConfiguratorBooleanControlOptions } from './ConfiguratorBoolean.control';
export type { ConfiguratorSegmentedControlOptions } from './ConfiguratorSegmented.control';
export type { ConfiguratorColorControlOptions } from './ConfiguratorColor.control';
export type { ConfiguratorStringControlOptions } from './ConfiguratorString.control';
export type { ConfiguratorSelectControlOptions } from './ConfiguratorSelect.control';
export type { ConfiguratorSizeControlOptions } from './ConfiguratorSize.control';
export type { ConfiguratorNumberControlOptions } from './ConfiguratorNumber.control';
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/transform-select-data.ts
================================================
import { upperFirst } from '@mantine/hooks';
interface SelectDataItem {
label: string;
value: string;
}
export type SelectData = (string | SelectDataItem)[];
export function transformSelectData(data: SelectData): SelectDataItem[] {
return data.map((item) => {
if (typeof item === 'string') {
return { label: upperFirst(item), value: item };
}
return { value: item.value, label: upperFirst(item.label) };
});
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/controls/types.ts
================================================
export type ConfiguratorControl> = {
type: Type;
prop: string;
libraryValue?: any;
initialValue?: any;
transformLabel?: boolean;
} & Params;
export type ShikiLanguage = "tsx" | "scss" | "html" | "bash" | "json";
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/get-code-array.ts
================================================
import { clearProps } from './clear-props';
import type { ConfiguratorControlOptions } from './ConfiguratorDemo';
import { ShikiLanguage } from './controls/types';
import { injectProps } from './inject-props';
type CodePayload = string | ((props: Record) => string);
export type Code = CodePayload | { code: CodePayload; language: ShikiLanguage; fileName: string }[];
interface GetCodeArrayInput {
code: Code;
controls: ConfiguratorControlOptions[];
state: Record;
}
interface TransformCodePayloadInput {
code: CodePayload;
controls: ConfiguratorControlOptions[];
state: Record;
}
function transformCodePayload({ code, controls, state }: TransformCodePayloadInput) {
return typeof code === 'function'
? code(clearProps(controls, state))
: injectProps(clearProps(controls, state), code);
}
export function getCodeArray({ code, controls, state }: GetCodeArrayInput) {
if (typeof code === 'string' || typeof code === 'function') {
return [
{
fileName: 'Demo.tsx',
language: 'tsx' as const,
code: transformCodePayload({ code, controls, state }),
},
];
}
if (Array.isArray(code)) {
return code.map((item) => ({
fileName: item.fileName || 'Demo.tsx',
language: item.language || 'tsx',
code: transformCodePayload({ code: item.code, controls, state }),
}));
}
throw new Error('Unexpected code format in configurator');
}
================================================
FILE: src/components/mantine/demo/ConfiguratorDemo/inject-props.tsx
================================================
function isMultiLine(code: string) {
const placeholderLine = code.split('\n').find((line) => line.includes('{{props}}'));
return placeholderLine && placeholderLine.trim().startsWith('{{props}}');
}
export function injectProps(props: any, code: string) {
const propStrings: string[] = [];
const multiline = isMultiLine(code);
const replacedChildrenCode = code.replace('{{children}}', props.children || '');
for (const [key, value] of Object.entries(props)) {
if (key !== 'children') {
if (typeof value === 'string') {
propStrings.push(`${key}="${value}"`);
} else if (typeof value === 'number') {
propStrings.push(`${key}={${value}}`);
} else if (typeof value === 'boolean') {
if (value) {
propStrings.push(key);
} else {
propStrings.push(`${key}={false}`);
}
}
}
}
if (!multiline) {
const joined = propStrings.join(' ');
return joined.length > 0
? replacedChildrenCode.replace('{{props}}', ` ${joined}`)
: replacedChildrenCode.replace('{{props}}', '');
}
const placeholderRegex = /^(\s*){{props}}(\s*)$/gm;
const result = replacedChildrenCode.replace(placeholderRegex, (_, before, after) => {
const propsWithWhitespace = propStrings
.map(
(propString, index) =>
`${before}${propString}${index !== propStrings.length - 1 ? '\n' : ''}`
)
.join('');
return `${propsWithWhitespace}${after}`;
});
return result.trim().replace('\n\n', '\n');
}
================================================
FILE: src/components/mantine/demo/Demo/Demo.tsx
================================================
import { CodeDemo, CodeDemoProps } from '../CodeDemo/CodeDemo';
import { ConfiguratorDemo, ConfiguratorDemoProps } from '../ConfiguratorDemo/ConfiguratorDemo';
import { StylesApiDemo, StylesApiDemoProps } from '../StylesApiDemo/StylesApiDemo';
interface DemoComponent {
component: React.FC;
}
export type MantineDemo =
| ({ type: 'code' } & DemoComponent & CodeDemoProps)
| ({ type: 'configurator' } & DemoComponent & ConfiguratorDemoProps)
| ({ type: 'styles-api' } & DemoComponent & StylesApiDemoProps);
interface DemoProps {
data: MantineDemo;
}
export function Demo({ data }: DemoProps) {
switch (data.type) {
case 'code':
return (
);
case 'configurator':
return (
);
case 'styles-api':
return (
);
default:
return null;
}
}
================================================
FILE: src/components/mantine/demo/DemoArea/DemoArea.module.css
================================================
.demo {
flex: 1;
border-top-left-radius: calc(var(--mantine-radius-md) - 1px);
border-top-right-radius: calc(var(--mantine-radius-md) - 1px);
&:where([data-with-padding]) {
padding: var(--mantine-spacing-md);
}
&[data-dimmed] {
background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-8));
}
&[data-centered] {
display: flex;
justify-content: center;
align-items: center;
}
&[data-striped] {
border-top-left-radius: calc(var(--mantine-radius-md) - 1px);
background: repeating-linear-gradient(
45deg,
transparent 0,
transparent 10px,
var(--stripe-color) 10px,
var(--stripe-color) 12px
),
repeating-linear-gradient(
135deg,
transparent 0,
transparent 10px,
var(--stripe-color) 10px,
var(--stripe-color) 12px
);
@mixin rtl {
border-top-right-radius: calc(var(--mantine-radius-md) - 1px);
border-top-left-radius: 0;
}
@mixin light {
--stripe-color: rgba(0, 0, 0, 0.03);
}
@mixin dark {
--stripe-color: rgba(255, 255, 255, 0.03);
}
}
}
.demoInner {
flex: var(--demo-flex);
max-width: var(--demo-max-width, 100%);
min-height: var(--demo-min-height, unset);
margin-left: var(--demo-margin-y, unset);
margin-right: var(--demo-margin-y, unset);
}
================================================
FILE: src/components/mantine/demo/DemoArea/DemoArea.tsx
================================================
import { Box, rem } from '@mantine/core';
import classes from './DemoArea.module.css';
export interface DemoAreaProps {
children?: React.ReactNode;
withPadding?: boolean;
centered?: boolean;
maxWidth?: number | string;
minHeight?: number | string;
dimmed?: boolean;
striped?: boolean;
}
export function DemoArea({
withPadding = true,
centered,
maxWidth,
minHeight,
children,
dimmed,
striped,
}: DemoAreaProps) {
return (
{children}
);
}
================================================
FILE: src/components/mantine/demo/DemoArea/index.ts
================================================
export { DemoArea } from './DemoArea';
export type { DemoAreaProps } from './DemoArea';
================================================
FILE: src/components/mantine/demo/DemoCode/DemoCode.module.scss
================================================
.code {
border-bottom-right-radius: var(--mantine-radius-md);
border-bottom-left-radius: var(--mantine-radius-md);
overflow: hidden;
border-top: 1px solid var(--demo-border);
@mixin mobile {
max-width: calc(100vw - 32px);
}
}
================================================
FILE: src/components/mantine/demo/DemoCode/DemoCode.tsx
================================================
import { getCodeFileIcon } from '@mantinex/dev-icons';
import classes from './DemoCode.module.scss';
import { CodeHighlightTabs, CodeHighlightTabsCode } from '@mantine/code-highlight';
export interface DemoCodeProps {
code?: string | CodeHighlightTabsCode | CodeHighlightTabsCode[];
defaultExpanded?: boolean;
}
export function DemoCode({ code, defaultExpanded = true }: DemoCodeProps) {
const _code: CodeHighlightTabsCode | CodeHighlightTabsCode[] | undefined =
typeof code === 'string' ? { code, fileName: 'Demo.tsx', language: 'tsx' } : code;
return _code ? (
) : null;
}
================================================
FILE: src/components/mantine/demo/DemoCode/index.ts
================================================
export { DemoCode } from './DemoCode';
export type { DemoCodeProps } from './DemoCode';
================================================
FILE: src/components/mantine/demo/DemoColumns/DemoColumns.module.css
================================================
.columns {
display: flex;
@media (max-width: 55em) {
flex-direction: column;
}
}
.controls {
flex: 0 0 250px;
border-left: 1px solid var(--demo-border);
padding: 4px;
padding-bottom: var(--mantine-spacing-xs);
@mixin rtl {
border-left: none;
border-right: 1px solid var(--demo-border);
}
@media (max-width: 55em) {
flex: unset;
border-left: none;
border-right: none !important;
border-top: 1px solid var(--demo-border);
}
}
.header {
padding-top: calc(var(--mantine-spacing-md) - 4px);
margin-left: -4px;
margin-right: -4px;
border-bottom: 1px solid var(--demo-border);
padding-left: var(--mantine-spacing-md);
padding-right: var(--mantine-spacing-md);
padding-bottom: var(--mantine-spacing-xs);
margin-bottom: var(--mantine-spacing-xs);
}
================================================
FILE: src/components/mantine/demo/DemoColumns/DemoColumns.tsx
================================================
import { Text } from '@mantine/core';
import { DemoArea, DemoAreaProps } from '../DemoArea';
import classes from './DemoColumns.module.css';
export interface DemoColumnsProps extends DemoAreaProps {
title?: React.ReactNode;
description?: React.ReactNode;
controls: React.ReactNode;
}
export function DemoColumns({
children,
withPadding,
centered,
maxWidth,
minHeight,
title,
description,
controls,
dimmed,
striped,
}: DemoColumnsProps) {
return (
{children}
{title && (
{title}
{description && (
{description}
)}
)}
{controls}
);
}
================================================
FILE: src/components/mantine/demo/DemoColumns/index.ts
================================================
export { DemoColumns } from './DemoColumns';
================================================
FILE: src/components/mantine/demo/DemoRoot/DemoRoot.module.css
================================================
.root {
border: 1px solid var(--demo-border);
border-radius: var(--mantine-radius-md);
--demo-border: var(--mantine-color-default-border);
}
================================================
FILE: src/components/mantine/demo/DemoRoot/DemoRoot.tsx
================================================
import cx from "clsx";
import classes from "./DemoRoot.module.css";
export function DemoRoot({ className, ...others }: React.ComponentPropsWithoutRef<"div">) {
return
;
}
================================================
FILE: src/components/mantine/demo/DemoRoot/index.ts
================================================
export { DemoRoot } from './DemoRoot';
================================================
FILE: src/components/mantine/demo/StylesApiDemo/StylesApiDemo.module.css
================================================
.selector {
display: block;
width: 100%;
font-size: var(--mantine-font-size-sm);
padding: 6px var(--mantine-spacing-sm);
border-radius: var(--mantine-radius-sm);
cursor: help;
@mixin hover {
@mixin light {
background-color: var(--mantine-color-gray-0);
}
@mixin dark {
background-color: var(--mantine-color-dark-6);
}
}
}
================================================
FILE: src/components/mantine/demo/StylesApiDemo/StylesApiDemo.tsx
================================================
import { cloneElement, useState } from 'react';
import { Text, UnstyledButton } from '@mantine/core';
import { DemoAreaProps } from '../DemoArea';
import { DemoCode } from '../DemoCode';
import { DemoColumns } from '../DemoColumns';
import { DemoRoot } from '../DemoRoot';
import classes from './StylesApiDemo.module.css';
export interface StylesApiDemoProps extends DemoAreaProps {
data: { selectors: Record };
code: string;
}
function getCss(hovered: string | null) {
return hovered
? `.${hovered} {\n outline: 2px solid #fe0d45;\n outline-offset: -2px; \n}\n`
: '/*\n * Hover over selectors to apply outline styles\n *\n */';
}
export function StylesApiDemo({
data,
code,
withPadding,
maxWidth,
centered,
children,
dimmed,
striped,
}: StylesApiDemoProps) {
const [hovered, setHovered] = useState(null);
const selectors = Object.keys(data.selectors);
const controls = selectors.map((selector) => (
setHovered(selector)}
onMouseLeave={() => setHovered(null)}
>
{selector}
{data.selectors[selector]}
));
const classNamesProp = hovered ? ` classNames={{ ${hovered}: classes.${hovered} }}` : '';
return (
<>
{cloneElement(children as JSX.Element, {
classNames: selectors.reduce>((acc, item) => {
acc[item] = item;
return acc;
}, {}),
})}
>
);
}
================================================
FILE: src/components/mantine/demo/index.ts
================================================
export { Demo } from './Demo/Demo';
export type { MantineDemo } from './Demo/Demo';
export type { ConfiguratorControlOptions } from './ConfiguratorDemo/ConfiguratorDemo';
================================================
FILE: src/components/ui/chart-tooltip.tsx
================================================
/* eslint-disable @typescript-eslint/no-explicit-any */
import { Flex, Paper, Stack, Text } from "@mantine/core";
interface ChartTooltipProps {
label: string;
payload: Record[] | undefined;
}
export function ChartTooltip({ payload }: ChartTooltipProps) {
if (!payload) return null;
return (
{payload.map((item: any) => (
{item.name}
{item?.value}
))}
);
}
================================================
FILE: src/components/ui/color-scheme-switch/color-scheme-switch.module.css
================================================
.icon {
width: 18x;
height: 18x;
}
.dark {
@mixin dark {
display: none;
}
@mixin light {
display: block;
}
}
.light {
@mixin light {
display: none;
}
@mixin dark {
display: block;
}
}
================================================
FILE: src/components/ui/color-scheme-switch/color-scheme-switch.tsx
================================================
import {
ActionIcon,
useComputedColorScheme,
useMantineColorScheme,
} from "@mantine/core";
import { IconSun, IconMoon } from "@tabler/icons-react";
import cx from "clsx";
import classes from "./color-scheme-switch.module.css";
const ColorSchemeSwitch = () => {
const { setColorScheme } = useMantineColorScheme();
const computedColorScheme = useComputedColorScheme("light", {
getInitialValueInEffect: true,
});
return (
setColorScheme(computedColorScheme === "light" ? "dark" : "light")
}
variant="default"
size="lg"
aria-label="Toggle color scheme"
>
);
};
export default ColorSchemeSwitch;
================================================
FILE: src/components/ui/color-scheme-switch/index.ts
================================================
export * from "./color-scheme-switch";
================================================
FILE: src/components/ui/header/header.module.scss
================================================
.header {
height: mantine.rem(56px);
background-color: var(--mantine-color-body);
padding-right: var(--mantine-spacing-3xl);
padding-left: var(--mantine-spacing-3xl);
position: sticky;
top: 0;
z-index: 100;
mantine.mobile {
padding-right: var(--mantine-spacing-md);
padding-left: var(--mantine-spacing-md);
}
}
.inner {
height: mantine.rem(56px);
display: flex;
justify-content: space-between;
align-items: center;
}
.link {
display: block;
line-height: 1;
padding: mantine.rem(8px) mantine.rem(12px);
border-radius: var(--mantine-radius-sm);
text-decoration: none;
color: rgb(from var(--mantine-color-text) r g b/0.6);
font-size: var(--mantine-font-size-sm);
font-weight: 500;
cursor: pointer;
@mixin hover {
color: var(--mantine-color-default-hover);
}
}
.tab {
position: relative;
border-top: 1px solid var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
@mixin hover {
background-color: var(--mantine-color-default-hover);
}
}
================================================
FILE: src/components/ui/header/header.tsx
================================================
import { Box, Button, Divider, Drawer, Group, rem, ScrollArea, Stack, Tabs, Text } from "@mantine/core";
import { useDisclosure, useMediaQuery } from "@mantine/hooks";
import {
IconCube,
IconGoGame,
IconHeartDollar,
IconHeartFilled,
IconInfoCircleFilled,
IconMenu2,
IconPalette,
} from "@tabler/icons-react";
import { usePathname, useRouter } from "next/navigation";
import { useEffect, useState } from "react";
import ChangeThemeButton from "../../custom/change-theme-section/change-theme-button";
import ColorSchemeSwitch from "../color-scheme-switch/color-scheme-switch";
import classes from "./header.module.scss";
const APP_NAME = "MantineHub";
export type IMenuItem = {
id: string;
href?: string;
label: string;
onClick?: () => void;
links?: IMenuItem[];
icon?: any;
};
export function Header() {
const [drawerOpened, { toggle: toggleDrawer, close: closeDrawer }] = useDisclosure(false);
const router = useRouter();
const pathname = usePathname();
const isMobile = useMediaQuery("(max-width: 430px)");
const [scrollHeight, setScrollHeight] = useState(0);
const [scrollPosition, setScrollPosition] = useState(0);
useEffect(() => {
const handleScroll = () => setScrollPosition(window.scrollY);
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
}, []);
useEffect(() => {
setScrollHeight(isMobile ? 220 : 150);
}, [isMobile]);
const links: IMenuItem[] = [
{ id: "home", href: "/", label: "Themes", icon: IconPalette },
{ id: "components", href: "/playground", label: "Playground", icon: IconGoGame },
{ id: "blocks", href: "/blocks", label: "Blocks", icon: IconCube },
// { id: "starter-kit", href: "/starter-kit", label: "Starter Kit" },
// { id: "templates", href: "/templates", label: "Templates" },
{ id: "feedback", href: "/feedback", label: "Feedback", icon: IconHeartFilled },
{ id: "about", href: "/about", label: "About Us", icon: IconInfoCircleFilled },
{
id: "donate",
label: "Donate",
onClick: () => window.open("https://www.buymeacoffee.com/abhishekslal01", "_blank"),
icon: IconHeartDollar,
},
];
const handleClick = (clickedItem: IMenuItem) => {
if (clickedItem.onClick) {
clickedItem.onClick();
} else if (clickedItem.href) {
router.push(clickedItem.href);
}
};
const getItems = (view = "header", items = links) =>
items?.map((link) => {
const isActive = link.href
? link.id === "home"
? pathname === link.href
: pathname.startsWith(link.href)
: false;
if (view === "footer")
return (
handleClick(link)} h={"63px"}>
{link.label}
);
return (
handleClick(link)}
justify={view === "drawer" ? "start" : "center"}
>
{link.label}
);
});
return (
<>
{APP_NAME}
}
p={0}
>
{getItems("drawer")}
{getItems("footer", links?.slice(0, 3))}
Menu
>
);
}
================================================
FILE: src/components/ui/icons.tsx
================================================
type IconProps = React.HTMLAttributes
export const Icons = {
logo: (props: IconProps) => (
),
twitter: (props: IconProps) => (
),
gitHub: (props: IconProps) => (
),
radix: (props: IconProps) => (
),
aria: (props: IconProps) => (
),
npm: (props: IconProps) => (
),
yarn: (props: IconProps) => (
),
pnpm: (props: IconProps) => (
),
react: (props: IconProps) => (
),
tailwind: (props: IconProps) => (
),
google: (props: IconProps) => (
),
apple: (props: IconProps) => (
),
paypal: (props: IconProps) => (
),
spinner: (props: IconProps) => (
),
}
================================================
FILE: src/components/ui/navbar/navbar-links-group.tsx
================================================
import { Box, Collapse, Group, rem, Text, UnstyledButton } from "@mantine/core";
import { IconChevronRight } from "@tabler/icons-react";
import { useState } from "react";
import { NavbarProps } from "./navbar";
import classes from "./navbar.module.scss"
interface NavbarLinksGroupProps extends NavbarProps {
selected: string;
setSelected: (value: string) => void;
}
export default function NavbarLinksGroup({ label, initiallyOpened, links, selected, setSelected }: NavbarLinksGroupProps) {
const hasLinks = Array.isArray(links);
const [opened, setOpened] = useState(initiallyOpened || false);
const scrollToSection = (id: string) => {
setSelected(id);
const element = document.getElementById(id);
if (element) {
element.scrollIntoView({ behavior: 'smooth' });
}
}
const items = (hasLinks ? links : []).map((link) => (
scrollToSection(link.value)}
style={{ backgroundColor: selected === link.value ? 'var(--mantine-color-default-hover)' : undefined }}
>
{link.label}
));
return (
<>
setOpened((o) => !o)} className={classes.control}>
{label}
{hasLinks && (
)}
{hasLinks ?
{items}
: null}
>
);
}
================================================
FILE: src/components/ui/navbar/navbar.module.scss
================================================
.navbar {
width: mantine.rem(290px);
padding: var(--mantine-spacing-2xs);
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
.control {
display: block;
width: 100%;
padding-left: var(--mantine-spacing-sm) !important;
padding-right: var(--mantine-spacing-sm) !important;
color: var(--mantine-color-text) !important;
font-size: var(--mantine-font-size-sm) !important;
border-radius: var(--mantine-radius-default);
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
.linkGroup {
border-left: 1px solid var(--mantine-color-secondary-outline);
margin-left: var(--mantine-spacing-lg);
padding-left: var(--mantine-spacing-sm);
display: flex;
flex-direction: column;
gap: var(--mantine-spacing-4xs);
}
.link {
display: block;
text-decoration: none;
padding-left: var(--mantine-spacing-sm) !important;
padding-right: var(--mantine-spacing-sm) !important;
font-size: var(--mantine-font-size-sm) !important;
color: var(--mantine-color-text) !important;
border-radius: var(--mantine-radius-default) !important;
height: 2.25rem;
display: flex;
align-items: center;
cursor: pointer;
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
.chevron {
transition: transform 200ms ease;
}
================================================
FILE: src/components/ui/navbar/navbar.tsx
================================================
import { ScrollArea } from '@mantine/core';
import { useState } from 'react';
import NavbarLinksGroup from './navbar-links-group';
import classes from "./navbar.module.scss";
export interface NavbarProps {
label: string;
initiallyOpened?: boolean;
links?: { label: string; value: string}[];
}
export default function Navbar({menu}: {menu: NavbarProps[]}) {
const [selected, setSelected] = useState(menu?.[0]?.links?.[0].value ?? '');
const menuItems = menu.map((item) => );
return (
{menuItems}
);
}
================================================
FILE: src/feature/blocks/components/block-components/block-components.tsx
================================================
import { Container } from "@mantine/core";
import { CategoriesList } from "../categories/category-list";
import { CATEGORIES } from "../../data/categories";
const BlockComponents = () => {
return (
);
};
export default BlockComponents;
================================================
FILE: src/feature/blocks/components/categories/category-card.module.css
================================================
.image {
transition: transform 500ms ease;
&[data-dark] {
@mixin light {
display: none;
}
}
&[data-light] {
@mixin dark {
display: none;
}
}
}
.card {
cursor: pointer;
position: relative;
background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-5));
border: 1px solid light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-7));
@mixin hover {
.image {
transform: scale(1.025);
}
}
}
.title {
margin-top: var(--mantine-spacing-sm);
}
.description {
color: light-dark(var(--mantine-color-gray-6), var(--mantine-color-dark-2));
margin-top: 2px;
}
.imageWrapper {
background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-8));
min-height: 154px;
}
================================================
FILE: src/feature/blocks/components/categories/category-card.tsx
================================================
import Link from "next/link";
import cx from "clsx";
import { Card, CardSection, Image, Text } from "@mantine/core";
import classes from "./category-card.module.css";
import { Category } from "../../data/types";
export interface CategoryCardProps {
className?: string;
category: Category;
count: number;
}
export function CategoryCard({ count, category, className }: CategoryCardProps) {
return (
{category.name}
{count} {count === 1 ? "component" : "components"}
);
}
================================================
FILE: src/feature/blocks/components/categories/category-list.module.css
================================================
.wrapper {
padding-top: 20px;
margin-bottom: var(--mantine-spacing-xl);;
}
.header {
display: flex;
align-items: center;
margin-bottom: var(--mantine-spacing-lg);
@media (max-width: em(755px)) {
display: block;
}
}
.mainTitle {
font-weight: 500;
line-height: 1;
color: light-dark(var(--mantine-color-black), var(--mantine-color-white));
margin-bottom: calc(var(--mantine-spacing-xl) * 1.5);
}
.title {
font-weight: 500;
line-height: 1;
color: light-dark(var(--mantine-color-black), var(--mantine-color-white));
}
.count {
margin-left: var(--mantine-spacing-md);
margin-top: var(--mantine-spacing-xs);
@media (max-width: em(755px)) {
margin-top: var(--mantine-spacing-xs);
margin-left: 0;
}
}
.group {
& + & {
margin-top: calc(var(--mantine-spacing-xl) * 4);
}
}
.comingSoon {
opacity: 0.55;
&:hover {
opacity: 0.75;
}
}
.lockIcon {
opacity: 0.6;
}
================================================
FILE: src/feature/blocks/components/categories/category-list.tsx
================================================
"use client";
import { Container, Group, Tabs, Tooltip } from "@mantine/core";
import { IconLock } from "@tabler/icons-react";
import { useRouter, usePathname } from "next/navigation";
import classes from "./category-list.module.css";
import { CategoriesGroup } from "../../data/types";
interface CategoriesListProps {
groups: CategoriesGroup[];
}
export function CategoriesList({ groups }: CategoriesListProps) {
const router = useRouter();
const pathname = usePathname();
const categories = groups[0]?.categories || [];
// Get the current category from the pathname
const currentCategory = pathname.split("/").pop() || categories[0]?.slug;
const handleTabChange = (value: string | null) => {
// Prevent navigation to coming soon categories
const category = categories.find((c) => c.slug === value);
if (category?.comingSoon) return;
router.push(`/blocks/${value}`);
};
return (
{/*
{groups[0]?.name}
*/}
{categories.map((category) => (
{category.name}
{category.comingSoon && (
)}
))}
);
}
================================================
FILE: src/feature/blocks/components/categories/category-page.tsx
================================================
"use client";
import { IconArrowUp } from "@tabler/icons-react";
import { useWindowScroll } from "@mantine/hooks";
import { Affix, ActionIcon, Container, Transition } from "@mantine/core";
import { ComponentCanvas } from "../component-canvas/component-canvas";
import { Category, UiComponent } from "../../data/types";
interface CategoryPageProps {
category?: Category;
components: UiComponent[];
}
const CategoryPage = ({ components }: CategoryPageProps) => {
const [scroll, scrollTo] = useWindowScroll();
const canvases = components?.map((component, index) => (
));
return (
{canvases}
0}>
{(transitionStyles) => (
scrollTo({ y: 0 })}
aria-label="Scroll to top"
>
)}
);
};
export default CategoryPage;
================================================
FILE: src/feature/blocks/components/component-canvas/canvas-header.module.css
================================================
/* import { createStyles, rem } from '@mantine/core';
export default createStyles((theme) => ({
header: {
position: 'relative',
display: 'flex',
justifyContent: 'space-between',
alignItems: 'center',
padding: `${theme.spacing.xs} ${theme.spacing.md}`,
backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,
borderTopRightRadius: theme.radius.md,
borderTopLeftRadius: theme.radius.md,
borderBottom: `${rem(1)} solid ${
theme.colorScheme === 'dark' ? theme.colors.dark[4] : theme.colors.gray[2]
}`,
[theme.fn.smallerThan('sm')]: {
flexDirection: 'column',
alignItems: 'flex-start',
},
},
controls: {
[theme.fn.smallerThan('sm')]: {
marginTop: 0,
flexDirection: 'row-reverse',
},
},
controlLabel: {
marginLeft: theme.spacing.xs,
},
action: {
borderColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[3],
backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.white,
'&:hover': {
backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[7] : theme.colors.gray[0],
},
},
actions: {
[theme.fn.smallerThan('sm')]: {
display: 'none',
},
},
})); */
.header {
position: relative;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
align-items: center;
gap: rem(8px);
padding: var(--mantine-spacing-xs) var(--mantine-spacing-md);
background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-9));
border-top-right-radius: var(--mantine-radius-md);
border-top-left-radius: var(--mantine-radius-md);
border-bottom: rem(1px) solid var(--mantine-color-default-border);
/* @media (max-width: $mantine-breakpoint-sm) {
flex-direction: column;
align-items: flex-start;
} */
}
.controls {
@media (max-width: $mantine-breakpoint-sm) {
margin-top: 0;
flex-direction: row-reverse;
}
}
.controlLabel {
margin-left: var(--mantine-spacing-xs);
}
.action {
border-color: light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-7));
background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-9));
@mixin hover {
background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-7));
}
}
.actions {
@media (max-width: $mantine-breakpoint-sm) {
display: none;
}
}
================================================
FILE: src/feature/blocks/components/component-canvas/canvas-header.tsx
================================================
import { IconCode, IconEye } from "@tabler/icons-react";
import { Group, Text, SegmentedControl, Center, Box } from "@mantine/core";
import { UiComponent } from "../../data/types";
import { ColorControl } from "./color-control";
import classes from "./canvas-header.module.css";
export interface CanvasHeaderProps extends UiComponent, React.ComponentPropsWithoutRef<"div"> {
state: string;
onStateChange(state: string): void;
onPrimaryColorChange(color: string): void;
primaryColor: string;
excludeExternal?: boolean;
zIndex?: number;
}
export function CanvasHeader({
attributes,
slug,
// component,
state,
onStateChange,
primaryColor,
onPrimaryColorChange,
// excludeExternal = false,
// zIndex,
...others
}: CanvasHeaderProps) {
return (
{attributes.title}
{/*
{!excludeExternal && (
)}
{attributes.responsive && Responsive }
*/}
{attributes.withColor && }
Preview
),
},
{
value: "code",
label: (
Code
),
},
]}
/>
);
}
================================================
FILE: src/feature/blocks/components/component-canvas/color-control.tsx
================================================
import { useState } from "react";
import { IconColorPicker } from "@tabler/icons-react";
import { ColorSwatch, Group, Popover, useMantineTheme, CheckIcon, rem } from "@mantine/core";
interface ColorControlProps {
onChange(color: string): void;
value: string;
}
export function ColorControl({ onChange, value }: ColorControlProps) {
const [opened, setOpened] = useState(false);
const theme = useMantineTheme();
const colors = Object.keys(theme.colors).map((color) => ({
swatch: theme.colors[color][6],
color,
}));
const swatches = colors.map(({ color, swatch }) => (
onChange(color)}
key={color}
color={swatch}
size={22}
style={{ color: theme.white, cursor: "pointer" }}
>
{value === color && }
));
return (
setOpened(false)}
transitionProps={{ duration: 0 }}
width={152}
position="bottom-end"
withArrow
>
setOpened((o) => !o)}
size={22}
style={{ display: "block", cursor: "pointer" }}
>
{swatches}
);
}
================================================
FILE: src/feature/blocks/components/component-canvas/component-canvas.module.css
================================================
.canvas {
border-radius: var(--mantine-radius-md);
border: rem(1px) solid var(--mantine-color-default-border);
background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-6));
&:not(:first-of-type) {
margin-top: calc(var(--mantine-spacing-xl) * 2);
}
}
.body {
background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-9));
padding: var(--mantine-spacing-xs) var(--mantine-spacing-md);
border-bottom-right-radius: calc(var(--mantine-radius-md) - rem(1px));
border-bottom-left-radius: calc(var(--mantine-radius-md) - rem(1px));
@media (max-width: $mantine-breakpoint-sm) {
padding: 0;
}
}
.bodyRaw {
padding: 0;
& .preview {
padding: rem(4px);
border-top-right-radius: 0;
border-top-left-radius: 0;
}
}
.bodyWithCode {
padding: 0;
background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-8));
}
.code {
border-bottom-right-radius: calc(var(--mantine-radius-md) - rem(1px));
border-bottom-left-radius: calc(var(--mantine-radius-md) - rem(1px));
border-top-right-radius: 0;
border-top-left-radius: 0;
}
.preview {
background-color: light-dark(var(--mantine-color-white), var(--mantine-color-dark-7));
padding: var(--mantine-spacing-md);
border-radius: var(--mantine-radius-md);
position: relative;
&[data-dimmed] {
background-color: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6));
}
@media (max-width: $mantine-breakpoint-sm) {
padding: var(--mantine-spacing-xs);
border-top-right-radius: 0;
border-top-left-radius: 0;
}
}
================================================
FILE: src/feature/blocks/components/component-canvas/component-canvas.tsx
================================================
"use client";
import cx from "clsx";
import { useState } from "react";
import { MantineThemeProvider, Box } from "@mantine/core";
import { getCodeFileIcon } from "@mantinex/dev-icons";
import * as UiComponents from "../../lib";
import { UiComponent } from "../../data/types";
import { ComponentPreview } from "../component-preview/component-preview";
import { CanvasHeader } from "./canvas-header";
import classes from "./component-canvas.module.css";
import { CodeHighlightTabs } from "@mantine/code-highlight";
export function ComponentCanvas(props: UiComponent & { zindex: number }) {
const [state, setState] = useState("preview");
const [primaryColor, setPrimaryColor] = useState("blue");
const Component: any = UiComponents[props.component as keyof typeof UiComponents];
return (
{state === "preview" ? (
) : (
)}
);
}
================================================
FILE: src/feature/blocks/components/component-preview/component-preview.tsx
================================================
import { Box, rem } from "@mantine/core";
import { CanvasAttributes } from "../../data/types";
interface ComponentPreviewProps {
children: React.ReactNode;
canvas: CanvasAttributes["canvas"];
withSpacing?: boolean;
}
export function ComponentPreview({ children, canvas, withSpacing = false }: ComponentPreviewProps) {
return (
{children}
);
}
================================================
FILE: src/feature/blocks/components/shell/shell.module.css
================================================
.inner {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
}
.main {
padding-bottom: rem(120px);
}
================================================
FILE: src/feature/blocks/components/shell/shell.tsx
================================================
import { AppShell, Container, Group, RemoveScroll } from "@mantine/core";
import { ColorSchemeControl, HeaderControls } from "@mantinex/mantine-header";
import classes from "./shell.module.scss";
interface ShellProps {
children: React.ReactNode;
}
const Shell = ({ children }: ShellProps) => {
return (
{/* */}
{children}
);
};
export default Shell;
================================================
FILE: src/feature/blocks/data/categories.ts
================================================
import images from "./images";
import { CategoriesGroup, Category } from "./types";
export const CATEGORIES: CategoriesGroup[] = [
// {
// name: "Application UI",
// categories: [
// { slug: "navbars", name: "Navbars", images: images.navbars },
// { slug: "headers", name: "Headers", images: images.headers },
// { slug: "footers", name: "Footers", images: images.footers },
// { slug: "grids", name: "Grids", images: images.grids },
// { slug: "users", name: "User info and controls", images: images.users },
// { slug: "inputs", name: "Inputs", images: images.inputs },
// { slug: "buttons", name: "Buttons", images: images.buttons },
// { slug: "sliders", name: "Sliders", images: images.sliders },
// { slug: "dropzones", name: "Dropzones", images: images.dropzones },
// { slug: "app-cards", name: "Application cards", images: images["app-cards"] },
// { slug: "stats", name: "Stats", images: images.stats },
// { slug: "tables", name: "Tables", images: images.tables },
// { slug: "dnd", name: "Drag'n'Drop", images: images.dnd },
// { slug: "carousels", name: "Carousels", images: images.carousels },
// ],
// },
{
name: "Page sections",
categories: [
{ slug: "hero", name: "Hero", images: images.hero },
{ slug: "feature", name: "Features", images: images.features },
{ slug: "team", name: "Team" },
{ slug: "testimonials", name: "Testimonials" },
{ slug: "faq", name: "FAQ", images: images.faq },
{ slug: "pricing", name: "Pricing" },
{ slug: "newsletter", name: "Newsletter" },
{ slug: "blogs", name: "Blogs", comingSoon: true },
{ slug: "contact", name: "Contact", images: images.contact, comingSoon: true },
{ slug: "cta", name: "CTA", images: images["error-pages"], comingSoon: true },
// { slug: "coming-soon", name: "Coming soon" },
// { slug: "authentication", name: "Authentication", images: images.authentication },
// { slug: "error-pages", name: "Error pages", images: images["error-pages"] },
// { slug: "banners", name: "Banners", images: images.banners },
],
},
// {
// name: "Blog UI",
// categories: [
// { slug: "article-cards", name: "Article cards", images: images["article-cards"] },
// { slug: "toc", name: "Table of contents", images: images.toc },
// { slug: "comments", name: "Comments", images: images.comments },
// ],
// },
];
const ALL_CATEGORIES = CATEGORIES.reduce((acc, group) => {
acc.push(...group.categories);
return acc;
}, []);
export const CATEGORIES_SLUGS = ALL_CATEGORIES.map((item) => item.slug);
export const getCategoryData = (category: string) => ALL_CATEGORIES.find((item) => item.slug === category);
================================================
FILE: src/feature/blocks/data/components.ts
================================================
export const components = [
{
"component": "Faq1",
"slug": "faq1",
"code": [
{
"fileName": "faq1.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Accordion, Stack } from \"@mantine/core\";\r\nimport classes from \"./faq1.module.css\";\r\n\r\nexport const Faq1 = () => {\r\n const faqs = [\r\n {\r\n question: \"How do I get started?\",\r\n answer: \"Getting started is easy! Simply sign up for an account, complete the onboarding process, and you'll be ready to go in minutes. Our intuitive interface guides you through each step.\",\r\n },\r\n {\r\n question: \"What payment methods do you accept?\",\r\n answer: \"We accept all major credit cards (Visa, MasterCard, American Express), PayPal, and bank transfers for annual plans. All payments are processed securely through our payment partners.\",\r\n },\r\n {\r\n question: \"Can I cancel my subscription anytime?\",\r\n answer: \"Yes, you can cancel your subscription at any time. If you cancel, you'll continue to have access until the end of your billing period. We don't offer refunds for partial months.\",\r\n },\r\n {\r\n question: \"Is there a free trial available?\",\r\n answer: \"Absolutely! We offer a 14-day free trial with full access to all features. No credit card required to start. You can upgrade to a paid plan anytime during or after your trial.\",\r\n },\r\n {\r\n question: \"How secure is my data?\",\r\n answer: \"Security is our top priority. We use industry-standard encryption (AES-256) for data at rest and TLS 1.3 for data in transit. Our infrastructure is hosted on AWS with SOC 2 Type II compliance.\",\r\n },\r\n {\r\n question: \"Do you offer customer support?\",\r\n answer: \"Yes! We offer email support for all plans, with priority support and live chat available on Pro plans and above. Enterprise customers get a dedicated account manager.\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Frequently Asked Questions\r\n \r\n \r\n Everything you need to know about our product\r\n \r\n \r\n\r\n \r\n {faqs.map((faq, index) => (\r\n \r\n \r\n {faq.question} \r\n \r\n \r\n \r\n {faq.answer}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "faq1.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.title {\r\n font-size: 2.5rem;\r\n font-weight: 900;\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.accordion {\r\n width: 100%;\r\n}\r\n\r\n.item {\r\n background-color: var(--mantine-color-body);\r\n border: 1px solid var(--mantine-color-default-border);\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.item:hover {\r\n border-color: var(--mantine-primary-color-3);\r\n}\r\n\r\n.item[data-active] {\r\n border-color: var(--mantine-primary-color-filled);\r\n}\r\n\r\n.control {\r\n padding: 1rem 1.25rem;\r\n}\r\n\r\n.control:hover {\r\n background-color: transparent;\r\n}\r\n"
}
],
"attributes": {
"title": "faq1",
"category": "faq",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
},
{
"component": "Hero1",
"slug": "hero1",
"code": [
{
"fileName": "hero1.tsx",
"language": "tsx",
"code": "import { Container, Title, Text, Button, Group, Stack, Grid, ThemeIcon, Box, Paper, rgba } from \"@mantine/core\";\r\nimport { GitHubLogoIcon, RocketIcon, LightningBoltIcon, StarIcon, DashboardIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./hero1.module.css\";\r\n\r\nexport const Hero1 = () => {\r\n const features = [\r\n { icon: , label: \"Lightning Fast\" },\r\n { icon: , label: \"Production Ready\" },\r\n { icon: , label: \"Modern Design\" },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Launch Your Project Today\r\n \r\n \r\n\r\n \r\n Build Faster, Scale Better with Our Platform\r\n \r\n\r\n \r\n Experience the next generation of web development. Build scalable applications with modern tools and\r\n frameworks.\r\n \r\n\r\n \r\n } color=\"var(--mantine-primary-color-filled)\">\r\n Get Started\r\n \r\n }>\r\n View on GitHub\r\n \r\n \r\n\r\n \r\n {features.map((feature, index) => (\r\n \r\n \r\n {feature.icon}\r\n \r\n \r\n {feature.label}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "hero1.module.css",
"language": "scss",
"code": ".title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n line-height: 1;\r\n background: linear-gradient(80deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.themeIconBackground {\r\n background: rgba(var(--mantine-primary-color-filled), 0.07);\r\n}\r\n"
}
],
"attributes": {
"title": "hero1",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
},
{
"component": "MeetOurTeam1",
"slug": "meet-our-team1",
"code": [
{
"fileName": "meet-our-team-1.tsx",
"language": "tsx",
"code": "import { Card, Avatar, Text, Group, Stack, Container, Title, SimpleGrid } from \"@mantine/core\";\r\nimport { LinkedInLogoIcon, TwitterLogoIcon, GitHubLogoIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./meet-our-team-1.module.css\";\r\n\r\nconst teamMembers = [\r\n {\r\n name: \"Elena Rodriguez\",\r\n role: \"Chief Executive Officer\",\r\n bio: \"Visionary leader with 15 years of tech innovation experience.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png\",\r\n socials: {\r\n linkedin: \"#\",\r\n twitter: \"#\",\r\n github: \"#\",\r\n },\r\n },\r\n {\r\n name: \"Marcus Chen\",\r\n role: \"Chief Technology Officer\",\r\n bio: \"Engineering maestro driving cutting-edge technological solutions.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png\",\r\n socials: {\r\n linkedin: \"#\",\r\n twitter: \"#\",\r\n github: \"#\",\r\n },\r\n },\r\n {\r\n name: \"Aria Patel\",\r\n role: \"Design Director\",\r\n bio: \"Creative genius transforming complex ideas into elegant designs.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png\",\r\n socials: {\r\n linkedin: \"#\",\r\n twitter: \"#\",\r\n github: \"#\",\r\n },\r\n },\r\n {\r\n name: \"Jackson Wright\",\r\n role: \"Product Strategy Lead\",\r\n bio: \"Strategic mastermind connecting user needs with business goals.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png\",\r\n socials: {\r\n linkedin: \"#\",\r\n twitter: \"#\",\r\n github: \"#\",\r\n },\r\n },\r\n];\r\n\r\ninterface IMember {\r\n name: string;\r\n role: string;\r\n bio: string;\r\n image: string;\r\n socials: {\r\n linkedin: string;\r\n twitter: string;\r\n github: string;\r\n };\r\n}\r\n\r\nconst TeamMemberCard = ({ member }: { member: IMember }) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n {member.name}\r\n \r\n \r\n {member.role}\r\n \r\n \r\n\r\n \r\n {member.bio}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const MeetOurTeam1 = () => {\r\n return (\r\n \r\n \r\n \r\n Meet Our Extraordinary Team\r\n \r\n \r\n Behind every breakthrough is a passionate team of innovators, dedicated to pushing the boundaries of what's\r\n possible.\r\n \r\n \r\n\r\n \r\n {teamMembers.map((member, index) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "meet-our-team-1.module.css",
"language": "scss",
"code": ".teamMemberCard {\r\n transition: all 0.3s ease;\r\n background: linear-gradient(145deg, var(--mantine-body-color), var(--mantine-color-gray-2));\r\n border: 1px solid var(--mantine-color-default-border);\r\n}\r\n\r\n.teamMemberCard:hover {\r\n transform: translateY(-10px);\r\n box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.memberAvatar {\r\n border: 4px solid #fff;\r\n box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.memberName {\r\n color: var(--mantine-primary-color-5);\r\n font-weight: 700;\r\n letter-spacing: -0.5px;\r\n}\r\n\r\n.memberRole {\r\n text-transform: uppercase;\r\n font-size: 0.8rem;\r\n letter-spacing: 1px;\r\n}\r\n\r\n.memberBio {\r\n font-style: italic;\r\n text-align: center;\r\n}\r\n\r\n.socialIcons svg {\r\n color: light-dark(var(--mantine-primary-color-7), var(--mantine-primary-color-5));\r\n opacity: 0.7;\r\n}\r\n\r\n.socialIcons a {\r\n transition: color 0.3s ease;\r\n}\r\n\r\n.socialIcons a:hover svg {\r\n opacity: 1;\r\n}\r\n\r\n.sectionTitle {\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n font-weight: 900;\r\n text-align: center;\r\n}\r\n"
}
],
"attributes": {
"title": "meet-our-team-1",
"category": "team",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
},
{
"component": "Newsletter1",
"slug": "newsletter1",
"code": [
{
"fileName": "newsletter1.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, TextInput, Button, Stack, Group, Paper } from \"@mantine/core\";\r\nimport { PaperPlaneIcon, CheckCircledIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./newsletter1.module.css\";\r\n\r\nexport const Newsletter1 = () => {\r\n const benefits = [\r\n \"Weekly tips and insights\",\r\n \"Exclusive content and offers\",\r\n \"Early access to new features\",\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Stay in the Loop\r\n \r\n \r\n Subscribe to our newsletter and never miss an update\r\n \r\n \r\n\r\n \r\n {benefits.map((benefit) => (\r\n \r\n \r\n {benefit} \r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n }\r\n c=\"var(--mantine-primary-color-contrast)\"\r\n >\r\n Subscribe\r\n \r\n \r\n\r\n \r\n No spam, unsubscribe at any time.\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "newsletter1.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.card {\r\n background: var(--mantine-primary-color-light);\r\n border: 1px solid var(--mantine-color-default-border);\r\n padding: 3rem;\r\n}\r\n\r\n.title {\r\n font-size: 2rem;\r\n font-weight: 800;\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.inputGroup {\r\n width: 100%;\r\n max-width: 500px;\r\n}\r\n\r\n.input {\r\n flex: 1;\r\n}\r\n\r\n.input input {\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n@media (max-width: 540px) {\r\n .inputGroup {\r\n flex-direction: column;\r\n }\r\n\r\n .input {\r\n width: 100%;\r\n }\r\n}\r\n"
}
],
"attributes": {
"title": "newsletter1",
"category": "newsletter",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
},
{
"component": "Pricing1",
"slug": "pricing1",
"code": [
{
"fileName": "pricing1.tsx",
"language": "tsx",
"code": "import { useState } from \"react\";\r\nimport { Box, Card, Grid, Title, Text, Button, Switch, Divider, Group, Stack, Container } from \"@mantine/core\";\r\nimport { CheckCircledIcon, ArrowRightIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./pricing1.module.css\";\r\n\r\nexport const Pricing1 = () => {\r\n const [isYearly, setIsYearly] = useState(false);\r\n\r\n const plans = [\r\n {\r\n name: \"Plus\",\r\n subtitle: \"For personal use\",\r\n monthlyPrice: 19,\r\n yearlyPrice: 15,\r\n annualBilling: {\r\n monthly: 228,\r\n yearly: 180,\r\n },\r\n badgeVariant: \"outline\",\r\n features: [\r\n \"Unlimited basic features\",\r\n \"Standard support\",\r\n \"Basic analytics\",\r\n \"Single user account\",\r\n \"Lorem ipsum dolor sit.\",\r\n ],\r\n },\r\n {\r\n name: \"Pro\",\r\n subtitle: \"For professionals\",\r\n monthlyPrice: 49,\r\n yearlyPrice: 35,\r\n annualBilling: {\r\n monthly: 588,\r\n yearly: 420,\r\n },\r\n badgeVariant: \"filled\",\r\n features: [\r\n \"Everything in Plus\",\r\n \"Priority support\",\r\n \"Advanced analytics\",\r\n \"Team collaboration\",\r\n \"Custom integrations\",\r\n \"Lorem ipsum dolor sit.\",\r\n ],\r\n recommended: true,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Pricing Plans\r\n \r\n \r\n Choose the perfect plan for your needs\r\n \r\n \r\n\r\n \r\n Monthly \r\n setIsYearly(!isYearly)}\r\n className={classes.billingSwitch}\r\n />\r\n Yearly \r\n \r\n\r\n \r\n {plans.map((plan) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {plan.name}\r\n\r\n {plan.recommended && Most Popular }\r\n \r\n \r\n {plan.subtitle}\r\n \r\n \r\n \r\n \r\n ${isYearly ? plan.yearlyPrice : plan.monthlyPrice}\r\n \r\n \r\n Billed {isYearly ? \"yearly\" : \"monthly\"}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {plan.features.map((feature) => (\r\n \r\n \r\n {feature} \r\n \r\n ))}\r\n \r\n\r\n }\r\n fullWidth\r\n {...(plan.badgeVariant === \"filled\" ? { c: \"var(--mantine-primary-color-contrast)\" } : {})}\r\n >\r\n Get Started\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "pricing1.module.css",
"language": "scss",
"code": ".pricingWrapper {\r\n background-color: var(--mantine-body-color);\r\n padding: 4rem 0;\r\n}\r\n\r\n.mainTitle {\r\n font-size: 3rem;\r\n font-weight: 900;\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.mainSubtitle {\r\n font-size: 1.2rem;\r\n margin-bottom: 2rem;\r\n}\r\n\r\n.billingSwitch {\r\n transform: scale(1.2);\r\n margin: 0 1rem;\r\n}\r\n\r\n.pricingCard {\r\n background-color: var(--mantine-body-color);\r\n box-shadow: 0 15px 30px rgba(0, 0, 0, 0.05);\r\n transition: all 0.3s ease;\r\n padding: 2rem;\r\n position: relative;\r\n height: 100%;\r\n}\r\n\r\n.pricingCard:hover {\r\n transform: translateY(-10px);\r\n box-shadow: 0 25px 50px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.recommendedCard {\r\n border-color: var(--mantine-color-default-border);\r\n}\r\n\r\n.recommendedBadge {\r\n position: absolute;\r\n top: -12px;\r\n right: 4px;\r\n background-color: var(--mantine-primary-color-light);\r\n color: var(--mantine-color-text);\r\n padding: 0rem 0.6rem;\r\n border-radius: 99px;\r\n font-size: 0.6rem;\r\n font-weight: bold;\r\n text-transform: uppercase;\r\n z-index: 10;\r\n letter-spacing: 2px;\r\n line-height: rem(24px);\r\n\r\n background: linear-gradient(45deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-0));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.planTitle {\r\n color: var(--mantine-primary-color-4);\r\n}\r\n\r\n.price {\r\n background: linear-gradient(45deg, var(--mantine-primary-color-8), var(--mantine-primary-color-4));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n"
}
],
"attributes": {
"title": "pricing1",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
},
{
"component": "Testimonials1",
"slug": "testimonials1",
"code": [
{
"fileName": "testimonials1.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Card, Avatar, Stack, Group, SimpleGrid } from \"@mantine/core\";\r\nimport { StarFilledIcon, QuoteIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./testimonials1.module.css\";\r\n\r\nexport const Testimonials1 = () => {\r\n const testimonials = [\r\n {\r\n name: \"Sarah Johnson\",\r\n role: \"CEO at TechStart\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png\",\r\n content: \"This platform has completely transformed how we manage our projects. The intuitive interface and powerful features have boosted our team's productivity by 40%.\",\r\n rating: 5,\r\n },\r\n {\r\n name: \"Michael Chen\",\r\n role: \"Product Manager at InnovateCo\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png\",\r\n content: \"I've tried dozens of similar tools, but nothing comes close. The customer support is exceptional and the regular updates show they truly care about their users.\",\r\n rating: 5,\r\n },\r\n {\r\n name: \"Emily Rodriguez\",\r\n role: \"Founder at DesignLab\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png\",\r\n content: \"Switching to this platform was the best decision we made this year. It's saved us countless hours and helped us deliver projects faster than ever.\",\r\n rating: 5,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n What Our Customers Say\r\n \r\n \r\n Join thousands of satisfied customers who trust us\r\n \r\n \r\n\r\n \r\n {testimonials.map((testimonial) => (\r\n \r\n \r\n \r\n\r\n \r\n {Array.from({ length: testimonial.rating }).map((_, i) => (\r\n \r\n ))}\r\n \r\n\r\n {testimonial.content} \r\n\r\n \r\n \r\n \r\n {testimonial.name} \r\n {testimonial.role} \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "testimonials1.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.title {\r\n font-size: 2.5rem;\r\n font-weight: 900;\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.card {\r\n background-color: var(--mantine-color-body);\r\n transition: all 0.3s ease;\r\n height: 100%;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-5px);\r\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.quoteIcon {\r\n opacity: 0.3;\r\n}\r\n\r\n.content {\r\n font-style: italic;\r\n line-height: 1.7;\r\n}\r\n"
}
],
"attributes": {
"title": "testimonials1",
"category": "testimonials",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
},
{
"component": "Faq2",
"slug": "faq2",
"code": [
{
"fileName": "faq2.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Stack, Group, Grid, ThemeIcon } from \"@mantine/core\";\r\nimport { QuestionMarkCircledIcon, PlusCircledIcon, MinusCircledIcon } from \"@radix-ui/react-icons\";\r\nimport { useState } from \"react\";\r\nimport classes from \"./faq2.module.css\";\r\n\r\nexport const Faq2 = () => {\r\n const [openIndex, setOpenIndex] = useState(0);\r\n\r\n const faqs = [\r\n {\r\n question: \"What makes your platform different?\",\r\n answer: \"Our platform combines powerful features with an intuitive interface, backed by industry-leading support. We focus on delivering real value through continuous innovation and listening to customer feedback.\",\r\n },\r\n {\r\n question: \"How long does implementation take?\",\r\n answer: \"Most teams are up and running within a day. Our streamlined onboarding process and comprehensive documentation make implementation quick and painless. Enterprise setups may take 1-2 weeks depending on complexity.\",\r\n },\r\n {\r\n question: \"Can I integrate with existing tools?\",\r\n answer: \"Yes! We offer native integrations with 100+ popular tools including Slack, Jira, GitHub, and Salesforce. Our robust API also allows you to build custom integrations for any workflow.\",\r\n },\r\n {\r\n question: \"What happens to my data if I cancel?\",\r\n answer: \"Your data remains accessible for 30 days after cancellation. You can export all your data at any time. After the grace period, data is securely deleted from our servers in accordance with our privacy policy.\",\r\n },\r\n {\r\n question: \"Do you offer training and onboarding?\",\r\n answer: \"All plans include access to our knowledge base and video tutorials. Pro plans get live webinar training, and Enterprise customers receive personalized onboarding sessions with our customer success team.\",\r\n },\r\n {\r\n question: \"What's your uptime guarantee?\",\r\n answer: \"We maintain a 99.9% uptime SLA for all paid plans. Our status page provides real-time updates on system health. Enterprise plans include custom SLAs with financial guarantees.\",\r\n },\r\n ];\r\n\r\n const toggleFaq = (index: number) => {\r\n setOpenIndex(openIndex === index ? null : index);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Got Questions?\r\n \r\n \r\n Find answers to commonly asked questions about our platform and services.\r\n \r\n \r\n Can't find what you're looking for?{\" \"}\r\n \r\n Contact our support team\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {faqs.map((faq, index) => (\r\n toggleFaq(index)}\r\n >\r\n \r\n {faq.question} \r\n {openIndex === index ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {openIndex === index && (\r\n \r\n {faq.answer}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "faq2.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.sidebar {\r\n position: sticky;\r\n top: 2rem;\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n padding-left: 1rem;\r\n border-left: 4px solid var(--mantine-primary-color-filled);\r\n}\r\n\r\n.contactLink {\r\n cursor: pointer;\r\n}\r\n\r\n.contactLink:hover {\r\n text-decoration: underline;\r\n}\r\n\r\n.faqItem {\r\n padding: 1.25rem;\r\n border-radius: var(--mantine-radius-lg);\r\n border: 1px solid var(--mantine-color-default-border);\r\n background-color: var(--mantine-color-body);\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.faqItem:hover {\r\n border-color: var(--mantine-primary-color-3);\r\n}\r\n\r\n.faqItem.active {\r\n border-color: var(--mantine-primary-color-filled);\r\n background-color: var(--mantine-primary-color-light);\r\n}\r\n"
}
],
"attributes": {
"title": "faq2",
"category": "faq",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "Feature1",
"slug": "feature1",
"code": [
{
"fileName": "feature1.tsx",
"language": "tsx",
"code": "import { Grid, Card, Text, Title, Center, Box, Stack } from \"@mantine/core\";\r\nimport { ZoomInIcon, BarChartIcon, CircleIcon, HandIcon, LayersIcon, BellIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./feature1.module.css\";\r\n\r\nconst reasons = [\r\n {\r\n title: \"Quality\",\r\n description: \"We deliver exceptional results that exceed expectations, setting new standards in the industry.\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Experience\",\r\n description: \"Decades of combined expertise ensures your project is handled with professional excellence.\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Support\",\r\n description: \"24/7 dedicated support team ready to assist you with any questions or concerns.\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Innovation\",\r\n description: \"Cutting-edge solutions that keep you ahead of the curve in today's dynamic market.\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Results\",\r\n description: \"Proven track record of delivering measurable outcomes and tangible business value.\",\r\n icon: ,\r\n },\r\n {\r\n title: \"Efficiency\",\r\n description: \"Streamlined processes that save time and resources while maximizing productivity.\",\r\n icon: ,\r\n },\r\n];\r\n\r\nexport const Feature1 = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Why Work With Us?\r\n \r\n \r\n Discover the unique advantages that set us apart and make us your ideal partner for success\r\n \r\n \r\n\r\n \r\n {reasons.map((reason, i) => (\r\n \r\n \r\n \r\n \r\n {reason.icon} \r\n \r\n \r\n {reason.title} \r\n \r\n {reason.description}\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "feature1.module.css",
"language": "scss",
"code": ".wrapper {\r\n position: relative;\r\n}\r\n\r\n.title {\r\n position: relative;\r\n font-weight: 900;\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.title::after {\r\n content: \"\";\r\n display: block;\r\n width: 60px;\r\n height: 4px;\r\n background: linear-gradient(45deg, var(--mantine-primary-color-5), var(--mantine-primary-color-2));\r\n margin: 20px auto;\r\n border-radius: var(--mantine-radius-xl);\r\n}\r\n\r\n.card {\r\n transition: all 0.1s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-5px);\r\n box-shadow: var(--mantine-shadow-lg);\r\n background: var(--mantine-color-secondary-filled);\r\n}\r\n\r\n.iconWrapper {\r\n width: 60px;\r\n height: 60px;\r\n border-radius: var(--mantine-radius-md);\r\n background: var(--mantine-primary-color-filled-hover);\r\n color: var(--mantine-primary-color-contrast);\r\n animation: float 3s ease-in-out infinite;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.iconWrapper svg {\r\n width: 24px;\r\n height: 24px;\r\n}\r\n\r\n.cardTitle {\r\n font-size: 1.5rem;\r\n font-weight: 600;\r\n}\r\n\r\n@keyframes float {\r\n 0% {\r\n transform: translateY(0);\r\n }\r\n 50% {\r\n transform: translateY(-10px);\r\n }\r\n 100% {\r\n transform: translateY(0);\r\n }\r\n}\r\n"
}
],
"attributes": {
"title": "feature1",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "Hero2",
"slug": "hero2",
"code": [
{
"fileName": "hero2.tsx",
"language": "tsx",
"code": "import { Container, Title, Text, Button, Group, Stack, Grid, ThemeIcon, Box, Badge, rem } from \"@mantine/core\";\r\nimport { ArrowRightIcon, CheckIcon, PlayIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./hero2.module.css\";\r\n\r\nexport const Hero2 = () => {\r\n const stats = [\r\n { value: \"10K+\", label: \"Happy Users\" },\r\n { value: \"99.9%\", label: \"Uptime\" },\r\n { value: \"24/7\", label: \"Support\" },\r\n ];\r\n\r\n const benefits = [\"No setup required\", \"Cancel anytime\", \"Free updates\"];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n New Release\r\n \r\n\r\n \r\n Experience the Future\r\n \r\n\r\n \r\n Join thousands of satisfied customers who have transformed their workflow\r\n \r\n\r\n \r\n {stats.map((stat, index) => (\r\n \r\n \r\n {stat.value}\r\n \r\n {stat.label} \r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n \r\n Watch Demo \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Streamline Your Workflow with Smart Automation\r\n \r\n\r\n \r\n Boost productivity and reduce manual work with our intelligent automation platform.\r\n Built for modern teams who demand efficiency.\r\n \r\n\r\n \r\n {benefits.map((benefit, index) => (\r\n \r\n \r\n \r\n \r\n {benefit} \r\n \r\n ))}\r\n \r\n\r\n \r\n } color=\"var(--mantine-primary-color-filled)\">\r\n Start Free Trial\r\n \r\n \r\n Learn More\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "hero2.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 2rem 0;\r\n}\r\n\r\n.card {\r\n background: var(--mantine-color-body);\r\n border: 1px solid var(--mantine-color-default-border);\r\n border-radius: var(--mantine-radius-xl);\r\n padding: 2.5rem;\r\n}\r\n\r\n.title {\r\n font-size: clamp(2rem, 4vw, 3rem);\r\n line-height: 1.1;\r\n font-weight: 800;\r\n}\r\n\r\n.cardTitle {\r\n font-size: clamp(1.5rem, 3vw, 2rem);\r\n font-weight: 700;\r\n}\r\n"
}
],
"attributes": {
"title": "hero2",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "MeetOurTeam2",
"slug": "meet-our-team2",
"code": [
{
"fileName": "meet-our-team-2.tsx",
"language": "tsx",
"code": "import { Card, Avatar, Text, Group, Stack, Container, Title, SimpleGrid, Badge, ActionIcon } from \"@mantine/core\";\r\nimport { IconBrandLinkedin, IconBrandTwitter, IconBrandGithub, IconMail } from \"@tabler/icons-react\";\r\nimport classes from \"./meet-our-team-2.module.css\";\r\n\r\nconst teamMembers = [\r\n {\r\n name: \"Sophia Williams\",\r\n role: \"Chief Product Officer\",\r\n bio: \"Building products that matter, with over a decade of startup experience.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_11.png\",\r\n skills: [\"Product Strategy\", \"UX Design\", \"Analytics\"],\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\", email: \"sophia@example.com\" },\r\n },\r\n {\r\n name: \"David Kim\",\r\n role: \"VP Engineering\",\r\n bio: \"Architecting scalable solutions for tomorrow's challenges.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png\",\r\n skills: [\"System Design\", \"Cloud Architecture\", \"DevOps\"],\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\", email: \"david@example.com\" },\r\n },\r\n {\r\n name: \"Maya Thompson\",\r\n role: \"Head of Marketing\",\r\n bio: \"Crafting compelling narratives that connect brands with people.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_15.png\",\r\n skills: [\"Brand Strategy\", \"Content Marketing\", \"Growth\"],\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\", email: \"maya@example.com\" },\r\n },\r\n {\r\n name: \"Robert Zhang\",\r\n role: \"Lead Data Scientist\",\r\n bio: \"Transforming data into actionable insights through AI and ML.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_19.png\",\r\n skills: [\"Machine Learning\", \"Data Analysis\", \"Python\"],\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\", email: \"robert@example.com\" },\r\n },\r\n];\r\n\r\ninterface IMember {\r\n name: string;\r\n role: string;\r\n bio: string;\r\n image: string;\r\n skills: string[];\r\n socials: { linkedin: string; twitter: string; github: string; email: string };\r\n}\r\n\r\nconst TeamMemberCard = ({ member }: { member: IMember }) => {\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n {member.name} \r\n \r\n {member.role}\r\n \r\n \r\n\r\n \r\n {member.bio}\r\n \r\n\r\n \r\n {member.skills.map((skill, index) => (\r\n \r\n {skill}\r\n \r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const MeetOurTeam2 = () => {\r\n return (\r\n \r\n \r\n Our Team \r\n \r\n The People Behind Our Success\r\n \r\n \r\n Meet the talented individuals who are passionate about innovation and committed to delivering excellence.\r\n \r\n \r\n\r\n \r\n {teamMembers.map((member, index) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "meet-our-team-2.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n}\r\n\r\n.avatar {\r\n border: 3px solid var(--mantine-color-default-border);\r\n}\r\n\r\n.name {\r\n font-weight: 700;\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n padding-left: 1rem;\r\n border-left: 4px solid var(--mantine-primary-color-filled);\r\n}\r\n"
}
],
"attributes": {
"title": "meet-our-team-2",
"category": "team",
"description": "Team section with hover animations and skill badges",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "Newsletter2",
"slug": "newsletter2",
"code": [
{
"fileName": "newsletter2.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, TextInput, Button, Stack, Group, Grid, ThemeIcon } from \"@mantine/core\";\r\nimport { EnvelopeClosedIcon, BellIcon, LightningBoltIcon, StarIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./newsletter2.module.css\";\r\n\r\nexport const Newsletter2 = () => {\r\n const features = [\r\n {\r\n icon: ,\r\n title: \"Weekly Updates\",\r\n description: \"Get the latest news and product updates\",\r\n },\r\n {\r\n icon: ,\r\n title: \"Pro Tips\",\r\n description: \"Expert insights to boost your productivity\",\r\n },\r\n {\r\n icon: ,\r\n title: \"Exclusive Content\",\r\n description: \"Access content available only to subscribers\",\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Newsletter\r\n \r\n \r\n\r\n \r\n Get the Latest Updates Delivered to Your Inbox\r\n \r\n\r\n \r\n Join over 10,000 subscribers who receive our weekly newsletter packed with valuable insights and updates.\r\n \r\n\r\n \r\n {features.map((feature) => (\r\n \r\n \r\n {feature.icon}\r\n \r\n \r\n {feature.title} \r\n {feature.description} \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Subscribe Now \r\n \r\n Enter your email to start receiving updates\r\n \r\n \r\n\r\n \r\n \r\n \r\n Subscribe to Newsletter\r\n \r\n \r\n\r\n \r\n By subscribing, you agree to our Privacy Policy. Unsubscribe anytime.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "newsletter2.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.title {\r\n font-size: 2.25rem;\r\n font-weight: 800;\r\n line-height: 1.2;\r\n background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));\r\n -webkit-background-clip: text;\r\n background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.formCard {\r\n background: var(--mantine-primary-color-light);\r\n border: 1px solid var(--mantine-color-default-border);\r\n border-radius: var(--mantine-radius-xl);\r\n padding: 2rem;\r\n}\r\n\r\n.formCard input {\r\n background-color: var(--mantine-color-body);\r\n}\r\n"
}
],
"attributes": {
"title": "newsletter2",
"category": "newsletter",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "Pricing2",
"slug": "pricing2",
"code": [
{
"fileName": "pricing2.tsx",
"language": "tsx",
"code": "import { Box, Card, SimpleGrid, Title, Text, Button, Stack, Group, Container, Divider } from \"@mantine/core\";\r\nimport { CheckCircledIcon, ArrowRightIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./pricing2.module.css\";\r\n\r\nexport const Pricing2 = () => {\r\n const plans = [\r\n {\r\n name: \"Starter\",\r\n price: 9,\r\n description: \"Perfect for individuals and small projects\",\r\n features: [\r\n \"Up to 5 projects\",\r\n \"Basic analytics\",\r\n \"Email support\",\r\n \"1GB storage\",\r\n \"API access\",\r\n ],\r\n },\r\n {\r\n name: \"Professional\",\r\n price: 29,\r\n description: \"Best for growing teams and businesses\",\r\n features: [\r\n \"Unlimited projects\",\r\n \"Advanced analytics\",\r\n \"Priority support\",\r\n \"10GB storage\",\r\n \"API access\",\r\n \"Custom integrations\",\r\n \"Team collaboration\",\r\n ],\r\n popular: true,\r\n },\r\n {\r\n name: \"Business\",\r\n price: 79,\r\n description: \"For large teams with advanced needs\",\r\n features: [\r\n \"Everything in Professional\",\r\n \"Unlimited storage\",\r\n \"24/7 phone support\",\r\n \"Custom branding\",\r\n \"SSO authentication\",\r\n \"Dedicated account manager\",\r\n \"SLA guarantee\",\r\n ],\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Simple, Transparent Pricing\r\n \r\n \r\n Choose the plan that works best for you and your team\r\n \r\n \r\n\r\n \r\n {plans.map((plan) => (\r\n \r\n {plan.popular && (\r\n Most Popular \r\n )}\r\n \r\n \r\n \r\n {plan.name}\r\n \r\n \r\n {plan.description}\r\n \r\n \r\n\r\n \r\n \r\n ${plan.price}\r\n \r\n \r\n /month\r\n \r\n \r\n\r\n \r\n\r\n \r\n {plan.features.map((feature) => (\r\n \r\n \r\n {feature} \r\n \r\n ))}\r\n \r\n\r\n }\r\n {...(plan.popular ? { c: \"var(--mantine-primary-color-contrast)\" } : {})}\r\n >\r\n Get Started\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "pricing2.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n\r\n.card {\r\n background-color: var(--mantine-color-body);\r\n transition: all 0.3s ease;\r\n position: relative;\r\n height: 100%;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-5px);\r\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.popularCard {\r\n border-color: var(--mantine-primary-color-filled);\r\n border-width: 2px;\r\n}\r\n\r\n.popularBadge {\r\n position: absolute;\r\n top: -8px;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n background-color: var(--mantine-primary-color-filled);\r\n color: var(--mantine-primary-color-contrast);\r\n padding: 0.25rem 1rem;\r\n border-radius: 99px;\r\n font-size: 0.75rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n white-space: nowrap;\r\n}\r\n\r\n.planName {\r\n color: var(--mantine-color-text);\r\n font-weight: 700;\r\n}\r\n\r\n.price {\r\n color: var(--mantine-color-text);\r\n}\r\n\r\n.popularPrice {\r\n background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-5));\r\n}"
}
],
"attributes": {
"title": "pricing2",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "Testimonials2",
"slug": "testimonials2",
"code": [
{
"fileName": "testimonials2.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Card, Avatar, Stack, Group } from \"@mantine/core\";\r\nimport { StarFilledIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./testimonials2.module.css\";\r\n\r\nexport const Testimonials2 = () => {\r\n const testimonial = {\r\n name: \"David Park\",\r\n role: \"CTO at ScaleUp\",\r\n company: \"ScaleUp Technologies\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png\",\r\n content: \"We evaluated over 20 different solutions before choosing this platform. The combination of powerful features, excellent performance, and outstanding support made it an easy choice. Our development velocity has increased by 60% since we started using it.\",\r\n rating: 5,\r\n };\r\n\r\n const stats = [\r\n { value: \"60%\", label: \"Faster Development\" },\r\n { value: \"10K+\", label: \"Happy Users\" },\r\n { value: \"99.9%\", label: \"Uptime\" },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Testimonial\r\n \r\n \r\n Trusted by Industry Leaders\r\n \r\n \r\n {Array.from({ length: testimonial.rating }).map((_, i) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \"{testimonial.content}\"\r\n \r\n\r\n \r\n \r\n \r\n {testimonial.name} \r\n {testimonial.role} \r\n \r\n \r\n \r\n\r\n \r\n {stats.map((stat) => (\r\n \r\n \r\n {stat.value}\r\n \r\n {stat.label} \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "testimonials2.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.card {\r\n background-color: var(--mantine-color-body);\r\n overflow: hidden;\r\n}\r\n\r\n.inner {\r\n min-height: 400px;\r\n}\r\n\r\n\r\n.content {\r\n flex: 1;\r\n}\r\n\r\n.quote {\r\n font-style: italic;\r\n line-height: 1.8;\r\n}\r\n\r\n.statsSection {\r\n min-width: 200px;\r\n background: var(--mantine-primary-color-light);\r\n border-left: 1px solid var(--mantine-color-default-border);\r\n}\r\n\r\n.statValue {\r\n color: var(--mantine-primary-color-filled);\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .inner {\r\n flex-direction: column;\r\n }\r\n\r\n .statsSection {\r\n flex-direction: row;\r\n border-left: none;\r\n border-top: 1px solid var(--mantine-color-default-border);\r\n }\r\n}\r\n"
}
],
"attributes": {
"title": "testimonials2",
"category": "testimonials",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
},
{
"component": "Faq3",
"slug": "faq3",
"code": [
{
"fileName": "faq3.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Stack, SimpleGrid, Card, Badge } from \"@mantine/core\";\r\nimport { RocketIcon, LockClosedIcon, MixerHorizontalIcon, ChatBubbleIcon, BarChartIcon, GlobeIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./faq3.module.css\";\r\n\r\nexport const Faq3 = () => {\r\n const categories = [\r\n {\r\n icon: ,\r\n title: \"Getting Started\",\r\n questions: [\r\n { q: \"How do I create an account?\", a: \"Click 'Sign Up' and follow the simple registration process.\" },\r\n { q: \"Is there a setup fee?\", a: \"No, there are no setup fees for any of our plans.\" },\r\n { q: \"How long is the free trial?\", a: \"Our free trial lasts 14 days with full feature access.\" },\r\n ],\r\n },\r\n {\r\n icon: ,\r\n title: \"Security\",\r\n questions: [\r\n { q: \"Is my data encrypted?\", a: \"Yes, we use AES-256 encryption for all data at rest.\" },\r\n { q: \"Do you support 2FA?\", a: \"Yes, two-factor authentication is available on all plans.\" },\r\n { q: \"Where is data stored?\", a: \"Data is stored in SOC 2 compliant AWS data centers.\" },\r\n ],\r\n },\r\n {\r\n icon: ,\r\n title: \"Features\",\r\n questions: [\r\n { q: \"Can I customize the dashboard?\", a: \"Yes, dashboards are fully customizable to your needs.\" },\r\n { q: \"Do you have an API?\", a: \"Yes, we offer a comprehensive REST API with full documentation.\" },\r\n { q: \"Are there usage limits?\", a: \"Limits vary by plan. Check our pricing page for details.\" },\r\n ],\r\n },\r\n {\r\n icon: ,\r\n title: \"Support\",\r\n questions: [\r\n { q: \"How can I contact support?\", a: \"Via email, chat, or phone depending on your plan.\" },\r\n { q: \"What are support hours?\", a: \"Email: 24/7. Chat: Business hours. Phone: Enterprise only.\" },\r\n { q: \"Is there a knowledge base?\", a: \"Yes, with 500+ articles and video tutorials.\" },\r\n ],\r\n },\r\n {\r\n icon: ,\r\n title: \"Billing\",\r\n questions: [\r\n { q: \"What payment methods accepted?\", a: \"Credit cards, PayPal, and bank transfers for annual plans.\" },\r\n { q: \"Can I change plans anytime?\", a: \"Yes, upgrade or downgrade at any time.\" },\r\n { q: \"Do you offer refunds?\", a: \"30-day money-back guarantee on annual plans.\" },\r\n ],\r\n },\r\n {\r\n icon: ,\r\n title: \"Integrations\",\r\n questions: [\r\n { q: \"Which tools do you integrate with?\", a: \"100+ integrations including Slack, Jira, and Salesforce.\" },\r\n { q: \"Can I build custom integrations?\", a: \"Yes, via our API or Zapier for no-code options.\" },\r\n { q: \"Is there a marketplace?\", a: \"Yes, with community-built apps and extensions.\" },\r\n ],\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Questions & Answers\r\n \r\n \r\n Browse by category to find what you need\r\n \r\n \r\n\r\n \r\n {categories.map((category) => (\r\n \r\n \r\n \r\n {category.icon}\r\n \r\n {category.title} \r\n \r\n {category.questions.map((item, index) => (\r\n \r\n {item.q} \r\n {item.a} \r\n \r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "faq3.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n background: var(--mantine-primary-color-light);\r\n border-radius: var(--mantine-radius-md);\r\n}\r\n\r\n.card {\r\n background-color: var(--mantine-color-body);\r\n transition: all 0.3s ease;\r\n height: 100%;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-5px);\r\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\r\n border-color: var(--mantine-primary-color-3);\r\n}\r\n\r\n.iconWrapper {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: var(--mantine-radius-md);\r\n background: var(--mantine-primary-color-light);\r\n color: var(--mantine-primary-color-filled);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n"
}
],
"attributes": {
"title": "faq3",
"category": "faq",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
},
{
"component": "Feature2",
"slug": "feature2",
"code": [
{
"fileName": "feature2.tsx",
"language": "tsx",
"code": "import { Card, Text, Title, Container, Stack, SimpleGrid, ThemeIcon, Badge, Button } from \"@mantine/core\";\r\nimport { IconCode, IconDeviceMobile, IconDeviceDesktop, IconCloud, IconPalette, IconBolt } from \"@tabler/icons-react\";\r\nimport classes from \"./feature2.module.css\";\r\n\r\n\r\nconst services = [\r\n {\r\n title: \"Web Development\",\r\n description: \"Custom web applications built with modern technologies and best practices.\",\r\n icon: IconCode,\r\n features: [\"React & Next.js\", \"TypeScript\", \"Responsive Design\"],\r\n },\r\n {\r\n title: \"Mobile Apps\",\r\n description: \"Native and cross-platform mobile solutions that deliver exceptional experiences.\",\r\n icon: IconDeviceMobile,\r\n features: [\"iOS & Android\", \"React Native\", \"Flutter\"],\r\n },\r\n {\r\n title: \"Desktop Apps\",\r\n description: \"Powerful desktop applications with intuitive interfaces and robust functionality.\",\r\n icon: IconDeviceDesktop,\r\n features: [\"Electron\", \"Tauri\", \"Native Apps\"],\r\n },\r\n {\r\n title: \"Cloud Solutions\",\r\n description: \"Scalable cloud infrastructure and services designed for modern business needs.\",\r\n icon: IconCloud,\r\n features: [\"AWS\", \"Azure\", \"Google Cloud\"],\r\n },\r\n {\r\n title: \"UI/UX Design\",\r\n description: \"Beautiful, intuitive designs that enhance user engagement and satisfaction.\",\r\n icon: IconPalette,\r\n features: [\"Figma\", \"Prototyping\", \"User Research\"],\r\n },\r\n {\r\n title: \"Performance\",\r\n description: \"Optimization services to ensure your applications run fast and efficiently.\",\r\n icon: IconBolt,\r\n features: [\"Speed Optimization\", \"SEO\", \"Analytics\"],\r\n },\r\n];\r\n\r\nexport const Feature2 = () => {\r\n return (\r\n \r\n \r\n Services \r\n \r\n Our Services\r\n \r\n \r\n Comprehensive solutions designed to accelerate your digital transformation journey\r\n \r\n \r\n\r\n \r\n {services.map((service, index) => (\r\n \r\n \r\n \r\n \r\n \r\n\r\n {service.title} \r\n\r\n \r\n {service.description}\r\n \r\n\r\n \r\n {service.features.map((feature, i) => (\r\n \r\n • {feature}\r\n \r\n ))}\r\n \r\n\r\n \r\n Learn More\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "feature2.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n background: var(--mantine-color-secondary-filled);\r\n}\r\n\r\n"
}
],
"attributes": {
"title": "feature2",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
},
{
"component": "Hero3",
"slug": "hero3",
"code": [
{
"fileName": "hero3.tsx",
"language": "tsx",
"code": "import { Container, Title, Text, Button, Group, Stack, Box, ThemeIcon, rem, SimpleGrid } from \"@mantine/core\";\r\nimport { ArrowRightIcon, Pencil1Icon, PersonIcon, ChatBubbleIcon, LightningBoltIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./hero3.module.css\";\r\n\r\nexport const Hero3 = () => {\r\n const features = [\r\n {\r\n icon: ,\r\n title: \"Team Collaboration\",\r\n description: \"Work together seamlessly with real-time tools\"\r\n },\r\n {\r\n icon: ,\r\n title: \"Smart Communication\",\r\n description: \"Integrated messaging and feedback systems\"\r\n },\r\n {\r\n icon: ,\r\n title: \"Rapid Iteration\",\r\n description: \"Quickly prototype and iterate on designs\"\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Design & Collaboration\r\n \r\n \r\n\r\n \r\n Design Better Products with{\" \"}\r\n \r\n Creative Tools\r\n \r\n \r\n\r\n \r\n Empower your team with intuitive design tools and collaboration features.\r\n From concept to launch, create exceptional user experiences.\r\n \r\n\r\n \r\n }\r\n color=\"var(--mantine-primary-color-filled)\"\r\n >\r\n Start Designing\r\n \r\n \r\n View Gallery\r\n \r\n \r\n \r\n\r\n \r\n {features.map((feature, index) => (\r\n \r\n \r\n {feature.icon}\r\n \r\n {feature.title} \r\n {feature.description} \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "hero3.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 2rem 0;\r\n}\r\n\r\n.title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n line-height: 1.1;\r\n font-weight: 900;\r\n}\r\n"
}
],
"attributes": {
"title": "hero3",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
},
{
"component": "MeetOurTeam3",
"slug": "meet-our-team3",
"code": [
{
"fileName": "meet-our-team-3.tsx",
"language": "tsx",
"code": "import { Card, Avatar, Text, Stack, Container, Title, Flex, Button, Group, Anchor, Badge, ActionIcon } from \"@mantine/core\";\r\nimport { IconBrandLinkedin, IconBrandTwitter, IconBrandGithub, IconMail, IconMapPin } from \"@tabler/icons-react\";\r\nimport classes from \"./meet-our-team-3.module.css\";\r\n\r\nconst teamMembers = [\r\n {\r\n name: \"Jessica Martinez\",\r\n role: \"Founder & CEO\",\r\n bio: \"Serial entrepreneur with a passion for building products that change how people work and live.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/teams_4.png\",\r\n location: \"San Francisco, CA\",\r\n email: \"jessica@company.com\",\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\" },\r\n },\r\n {\r\n name: \"Thomas Anderson\",\r\n role: \"Chief Technology Officer\",\r\n bio: \"Former Google engineer leading our technical vision and innovation strategy.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/teams_2.png\",\r\n location: \"New York, NY\",\r\n email: \"thomas@company.com\",\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\" },\r\n },\r\n {\r\n name: \"Emily Chen\",\r\n role: \"VP of Design\",\r\n bio: \"Award-winning designer creating intuitive experiences that users love.\",\r\n image: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/teams_3.png\",\r\n location: \"Seattle, WA\",\r\n email: \"emily@company.com\",\r\n socials: { linkedin: \"#\", twitter: \"#\", github: \"#\" },\r\n },\r\n];\r\n\r\ninterface IMember {\r\n name: string;\r\n role: string;\r\n bio: string;\r\n image: string;\r\n location: string;\r\n email: string;\r\n socials: { linkedin: string; twitter: string; github: string };\r\n}\r\n\r\nconst TeamMemberCard = ({ member }: { member: IMember }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {member.name} \r\n \r\n {member.role}\r\n \r\n \r\n\r\n \r\n {member.bio}\r\n \r\n\r\n \r\n \r\n \r\n {member.location} \r\n \r\n \r\n \r\n {member.email} \r\n \r\n \r\n\r\n \r\n Connect \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const MeetOurTeam3 = () => {\r\n return (\r\n \r\n \r\n Leadership \r\n \r\n Leadership Team\r\n \r\n \r\n Experienced professionals driving our mission forward with expertise, vision, and dedication\r\n \r\n \r\n\r\n \r\n {teamMembers.map((member, index) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "meet-our-team-3.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n}\r\n\r\n.imageSection {\r\n background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6));\r\n min-width: 200px;\r\n}\r\n\r\n.content {\r\n flex: 1;\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n display: inline-block;\r\n position: relative;\r\n padding-bottom: 12px;\r\n}\r\n\r\n.title::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 60px;\r\n height: 4px;\r\n background: var(--mantine-primary-color-filled);\r\n border-radius: 2px;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .card {\r\n text-align: center;\r\n }\r\n\r\n .imageSection {\r\n min-width: auto;\r\n }\r\n}\r\n"
}
],
"attributes": {
"title": "meet-our-team-3",
"category": "team",
"description": "Horizontal card layout team section with contact details",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
},
{
"component": "Pricing3",
"slug": "pricing3",
"code": [
{
"fileName": "pricing3.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Button, Stack, Group, Paper } from \"@mantine/core\";\r\nimport { CheckIcon, Cross2Icon, ArrowRightIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./pricing3.module.css\";\r\n\r\nexport const Pricing3 = () => {\r\n const plans = [\r\n { name: \"Free\", price: 0, description: \"For trying out\" },\r\n { name: \"Basic\", price: 12, description: \"For individuals\" },\r\n { name: \"Pro\", price: 32, description: \"For professionals\", recommended: true },\r\n { name: \"Enterprise\", price: 89, description: \"For large teams\" },\r\n ];\r\n\r\n const features = [\r\n { name: \"Projects\", values: [\"3\", \"10\", \"Unlimited\", \"Unlimited\"] },\r\n { name: \"Storage\", values: [\"500MB\", \"5GB\", \"50GB\", \"Unlimited\"] },\r\n { name: \"Team members\", values: [\"1\", \"5\", \"20\", \"Unlimited\"] },\r\n { name: \"API access\", values: [false, true, true, true] },\r\n { name: \"Analytics\", values: [false, \"Basic\", \"Advanced\", \"Advanced\"] },\r\n { name: \"Priority support\", values: [false, false, true, true] },\r\n { name: \"Custom integrations\", values: [false, false, true, true] },\r\n { name: \"SSO\", values: [false, false, false, true] },\r\n { name: \"Dedicated manager\", values: [false, false, false, true] },\r\n ];\r\n\r\n const renderValue = (value: boolean | string) => {\r\n if (typeof value === \"boolean\") {\r\n return value ? (\r\n \r\n ) : (\r\n \r\n );\r\n }\r\n return {value} ;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Compare Plans\r\n \r\n \r\n Find the perfect plan for your needs\r\n \r\n \r\n\r\n \r\n {/* Header Row */}\r\n \r\n \r\n Features \r\n \r\n {plans.map((plan) => (\r\n \r\n {plan.recommended && (\r\n Recommended \r\n )}\r\n {plan.name} \r\n \r\n \r\n ${plan.price}\r\n \r\n /mo \r\n \r\n {plan.description} \r\n \r\n ))}\r\n \r\n\r\n {/* Feature Rows */}\r\n {features.map((feature, index) => (\r\n \r\n \r\n {feature.name} \r\n \r\n {feature.values.map((value, i) => (\r\n \r\n {renderValue(value)}\r\n \r\n ))}\r\n \r\n ))}\r\n\r\n {/* CTA Row */}\r\n \r\n \r\n {plans.map((plan) => (\r\n \r\n }\r\n fullWidth\r\n {...(plan.recommended ? { c: \"var(--mantine-primary-color-contrast)\" } : {})}\r\n >\r\n Choose {plan.name}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "pricing3.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n display: inline-block;\r\n position: relative;\r\n padding-bottom: 12px;\r\n}\r\n\r\n.title::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 60px;\r\n height: 4px;\r\n background: var(--mantine-primary-color-filled);\r\n border-radius: 2px;\r\n}\r\n\r\n.tableWrapper {\r\n overflow: hidden;\r\n border: 1px solid var(--mantine-color-default-border);\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.headerRow {\r\n display: grid;\r\n grid-template-columns: 200px repeat(4, 1fr);\r\n border-bottom: 2px solid var(--mantine-color-default-border);\r\n}\r\n\r\n.featureColumn {\r\n padding: 1rem 1.5rem;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.planColumn {\r\n padding: 1.5rem 1rem;\r\n text-align: center;\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 0.25rem;\r\n position: relative;\r\n}\r\n\r\n.recommendedColumn {\r\n background-color: var(--mantine-primary-color-light);\r\n}\r\n\r\n.recommendedLabel {\r\n position: absolute;\r\n top: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n background-color: var(--mantine-primary-color-filled);\r\n color: var(--mantine-primary-color-contrast);\r\n padding: 0.05rem 0.75rem;\r\n border-radius: 0 0 8px 8px;\r\n font-size: 0.65rem;\r\n font-weight: 600;\r\n text-transform: uppercase;\r\n letter-spacing: 0.5px;\r\n}\r\n\r\n.price {\r\n background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-7));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.featureRow {\r\n display: grid;\r\n grid-template-columns: 200px repeat(4, 1fr);\r\n border-bottom: 1px solid var(--mantine-color-default-border);\r\n}\r\n\r\n.evenRow {\r\n background-color: var(--mantine-color-gray-0);\r\n}\r\n\r\n[data-mantine-color-scheme=\"dark\"] .evenRow {\r\n background-color: var(--mantine-color-dark-6);\r\n}\r\n\r\n.valueColumn {\r\n padding: 0.75rem 1rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n.recommendedValueColumn {\r\n background-color: var(--mantine-primary-color-light);\r\n}\r\n\r\n.ctaRow {\r\n display: grid;\r\n grid-template-columns: 200px repeat(4, 1fr);\r\n padding: 1rem 0;\r\n}\r\n\r\n.ctaColumn {\r\n padding: 0.5rem 1rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .headerRow,\r\n .featureRow,\r\n .ctaRow {\r\n grid-template-columns: 120px repeat(4, 1fr);\r\n }\r\n\r\n .featureColumn {\r\n padding: 0.75rem;\r\n }\r\n\r\n .planColumn {\r\n padding: 1rem 0.5rem;\r\n }\r\n}\r\n"
}
],
"attributes": {
"title": "pricing3",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
},
{
"component": "Testimonials3",
"slug": "testimonials3",
"code": [
{
"fileName": "testimonials3.tsx",
"language": "tsx",
"code": "import { Box, Container, Title, Text, Avatar, Stack, Group, Paper } from \"@mantine/core\";\r\nimport { StarFilledIcon, ChevronLeftIcon, ChevronRightIcon } from \"@radix-ui/react-icons\";\r\nimport { useState } from \"react\";\r\nimport classes from \"./testimonials3.module.css\";\r\n\r\nexport const Testimonials3 = () => {\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n\r\n const testimonials = [\r\n {\r\n name: \"Alexandra Wright\",\r\n role: \"Marketing Director\",\r\n company: \"GrowthLabs\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png\",\r\n content: \"The analytics dashboard alone has saved us hours every week. We can now make data-driven decisions in minutes instead of days. Absolutely game-changing for our marketing team.\",\r\n rating: 5,\r\n },\r\n {\r\n name: \"James Mitchell\",\r\n role: \"Engineering Lead\",\r\n company: \"DevStack\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png\",\r\n content: \"Integration was seamless. Within a day, our entire team was up and running. The API documentation is excellent and the developer experience is top-notch.\",\r\n rating: 5,\r\n },\r\n {\r\n name: \"Maria Santos\",\r\n role: \"Operations Manager\",\r\n company: \"FlowOps\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png\",\r\n content: \"We've reduced our operational costs by 35% since implementing this solution. The automation features are incredibly powerful yet easy to set up.\",\r\n rating: 5,\r\n },\r\n {\r\n name: \"Robert Kim\",\r\n role: \"Startup Founder\",\r\n company: \"NexGen\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png\",\r\n content: \"As a startup, we needed something that could scale with us. This platform has grown with our business perfectly. Couldn't recommend it more highly.\",\r\n rating: 5,\r\n },\r\n ];\r\n\r\n const nextTestimonial = () => {\r\n setActiveIndex((prev) => (prev + 1) % testimonials.length);\r\n };\r\n\r\n const prevTestimonial = () => {\r\n setActiveIndex((prev) => (prev - 1 + testimonials.length) % testimonials.length);\r\n };\r\n\r\n const active = testimonials[activeIndex];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Loved by Teams Worldwide\r\n \r\n \r\n See what our customers have to say\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {Array.from({ length: active.rating }).map((_, i) => (\r\n \r\n ))}\r\n \r\n\r\n \r\n \"{active.content}\"\r\n \r\n\r\n \r\n {active.name} \r\n \r\n {active.role} at {active.company}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n {testimonials.map((_, index) => (\r\n setActiveIndex(index)}\r\n />\r\n ))}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "testimonials3.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n\r\n.testimonialCard {\r\n background: var(--mantine-primary-color-light);\r\n border: 1px solid var(--mantine-color-default-border);\r\n max-width: 600px;\r\n width: 100%;\r\n}\r\n\r\n.avatar {\r\n border: 3px solid var(--mantine-primary-color-filled);\r\n}\r\n\r\n.quote {\r\n font-style: italic;\r\n line-height: 1.8;\r\n}\r\n\r\n.navButton {\r\n width: 44px;\r\n height: 44px;\r\n border-radius: 50%;\r\n border: 1px solid var(--mantine-color-default-border);\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.navButton:hover {\r\n border-color: var(--mantine-primary-color-filled);\r\n color: var(--mantine-primary-color-filled);\r\n}\r\n\r\n.dot {\r\n width: 10px;\r\n height: 10px;\r\n border-radius: 50%;\r\n background-color: var(--mantine-color-default-border);\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.dot:hover {\r\n background-color: var(--mantine-primary-color-3);\r\n}\r\n\r\n.activeDot {\r\n background-color: var(--mantine-primary-color-filled);\r\n width: 24px;\r\n border-radius: 10px;\r\n}\r\n"
}
],
"attributes": {
"title": "testimonials3",
"category": "testimonials",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
},
{
"component": "Feature3",
"slug": "feature3",
"code": [
{
"fileName": "feature3.tsx",
"language": "tsx",
"code": "import { Card, Text, Title, Container, Stack, Timeline, ThemeIcon, Badge, Group } from \"@mantine/core\";\r\nimport { IconBolt, IconSettings, IconRocket, IconCheck, IconStar } from \"@tabler/icons-react\";\r\nimport classes from \"./feature3.module.css\";\r\n\r\nconst processSteps = [\r\n {\r\n title: \"Discovery & Planning\",\r\n description: \"We start by understanding your goals, requirements, and vision to create a comprehensive project roadmap.\",\r\n icon: IconBolt,\r\n duration: \"1-2 weeks\",\r\n deliverables: [\"Project Brief\", \"Technical Specs\", \"Timeline\"],\r\n },\r\n {\r\n title: \"Design & Architecture\",\r\n description: \"Our team creates intuitive designs and robust architecture that align with your business objectives.\",\r\n icon: IconSettings,\r\n duration: \"2-3 weeks\",\r\n deliverables: [\"UI/UX Design\", \"System Architecture\", \"Prototypes\"],\r\n },\r\n {\r\n title: \"Development & Testing\",\r\n description: \"We build your solution using cutting-edge technologies with continuous testing and quality assurance.\",\r\n icon: IconRocket,\r\n duration: \"4-8 weeks\",\r\n deliverables: [\"MVP Development\", \"Testing Reports\", \"Documentation\"],\r\n },\r\n {\r\n title: \"Launch & Optimization\",\r\n description: \"We deploy your solution and provide ongoing support with performance monitoring and optimization.\",\r\n icon: IconCheck,\r\n duration: \"1-2 weeks\",\r\n deliverables: [\"Production Deployment\", \"Performance Monitoring\", \"Support\"],\r\n },\r\n {\r\n title: \"Growth & Maintenance\",\r\n description: \"Continuous improvement and scaling support to ensure your solution grows with your business.\",\r\n icon: IconStar,\r\n duration: \"Ongoing\",\r\n deliverables: [\"Feature Updates\", \"Performance Optimization\", \"24/7 Support\"],\r\n },\r\n];\r\n\r\nexport const Feature3 = () => {\r\n return (\r\n \r\n \r\n \r\n Our Process\r\n \r\n \r\n A proven methodology that delivers exceptional results through structured phases\r\n \r\n \r\n\r\n \r\n {processSteps.map((step, index) => (\r\n \r\n \r\n \r\n }\r\n title={\r\n \r\n {step.title} \r\n {step.duration} \r\n \r\n }\r\n >\r\n \r\n \r\n \r\n {step.description}\r\n \r\n\r\n \r\n \r\n Key Deliverables:\r\n \r\n \r\n {step.deliverables.map((deliverable, i) => (\r\n \r\n {deliverable}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "feature3.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateX(4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n background: var(--mantine-color-secondary-filled);\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n padding-bottom: 0.5rem;\r\n border-bottom: 4px solid var(--mantine-primary-color-filled);\r\n}"
}
],
"attributes": {
"title": "feature3",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
},
{
"component": "Hero4",
"slug": "hero4",
"code": [
{
"fileName": "hero4.tsx",
"language": "tsx",
"code": "import { Container, Title, Text, Button, Group, Stack, Grid, Box, ThemeIcon, Card } from \"@mantine/core\";\r\nimport { ArrowRightIcon, LightningBoltIcon, LockClosedIcon, MixerHorizontalIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./hero4.module.css\";\r\n\r\nexport const Hero4 = () => {\r\n const highlights = [\r\n { icon: , title: \"Fast\", description: \"Blazing fast performance\" },\r\n { icon: , title: \"Secure\", description: \"Enterprise-grade security\" },\r\n { icon: , title: \"Flexible\", description: \"Fully customizable\" },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Everything You Need to Build Modern Applications\r\n \r\n\r\n \r\n A complete toolkit for building production-ready applications.\r\n From development to deployment, we've got you covered.\r\n \r\n\r\n \r\n } color=\"var(--mantine-primary-color-filled)\">\r\n Get Started\r\n \r\n \r\n Learn More\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {highlights.map((item, index) => (\r\n \r\n \r\n \r\n {item.icon}\r\n \r\n \r\n {item.title} \r\n {item.description} \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "hero4.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 2rem 0;\r\n}\r\n\r\n.title {\r\n font-size: clamp(2.5rem, 5vw, 3.5rem);\r\n line-height: 1.1;\r\n font-weight: 900;\r\n}\r\n"
}
],
"attributes": {
"title": "hero4",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
},
{
"component": "MeetOurTeam4",
"slug": "meet-our-team4",
"code": [
{
"fileName": "meet-our-team-4.tsx",
"language": "tsx",
"code": "import { Card, Avatar, Text, Stack, Container, Title, SimpleGrid, Progress, Tabs, Badge, Group } from \"@mantine/core\";\r\nimport { IconAward } from \"@tabler/icons-react\";\r\nimport classes from \"./meet-our-team-4.module.css\";\r\n\r\nconst teamMembers = [\r\n {\r\n name: \"Alexandra Foster\",\r\n role: \"Creative Director\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/notion_7.png\",\r\n department: \"Design\",\r\n stats: { projects: 156, experience: 12, awards: 23 },\r\n skills: [\r\n { name: \"Leadership\", value: 95 },\r\n { name: \"Design Thinking\", value: 90 },\r\n { name: \"Strategy\", value: 88 },\r\n ],\r\n achievements: [\"Design Excellence Award 2023\", \"50+ Patents Filed\", \"100% Client Satisfaction\"],\r\n },\r\n {\r\n name: \"Marcus Thompson\",\r\n role: \"Technical Architect\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/notion_9.png\",\r\n department: \"Engineering\",\r\n stats: { projects: 89, experience: 10, awards: 15 },\r\n skills: [\r\n { name: \"Architecture\", value: 96 },\r\n { name: \"Cloud Systems\", value: 93 },\r\n { name: \"Performance\", value: 91 },\r\n ],\r\n achievements: [\"10M+ Lines of Code\", \"50+ Successful Launches\", \"Mentored 100+ Developers\"],\r\n },\r\n {\r\n name: \"Priya Sharma\",\r\n role: \"Product Strategist\",\r\n avatar: \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/notion_6.png\",\r\n department: \"Product\",\r\n stats: { projects: 67, experience: 8, awards: 18 },\r\n skills: [\r\n { name: \"Market Analysis\", value: 94 },\r\n { name: \"User Research\", value: 91 },\r\n { name: \"Roadmapping\", value: 88 },\r\n ],\r\n achievements: [\"3x Revenue Growth\", \"1M+ Users Impacted\", \"20+ Product Launches\"],\r\n },\r\n];\r\n\r\ninterface IMember {\r\n name: string;\r\n role: string;\r\n avatar: string;\r\n department: string;\r\n stats: { projects: number; experience: number; awards: number };\r\n skills: { name: string; value: number }[];\r\n achievements: string[];\r\n}\r\n\r\nconst TeamMemberCard = ({ member }: { member: IMember }) => {\r\n return (\r\n \r\n \r\n {member.department} \r\n \r\n \r\n {member.name} \r\n \r\n {member.role}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Stats \r\n Skills \r\n Awards \r\n \r\n\r\n \r\n \r\n \r\n {member.stats.projects} \r\n Projects \r\n \r\n \r\n {member.stats.experience} \r\n Years \r\n \r\n \r\n {member.stats.awards} \r\n Awards \r\n \r\n \r\n \r\n\r\n \r\n \r\n {member.skills.map((skill, index) => (\r\n \r\n \r\n {skill.name} \r\n {skill.value}% \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n {member.achievements.map((achievement, index) => (\r\n \r\n \r\n {achievement} \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport const MeetOurTeam4 = () => {\r\n return (\r\n \r\n \r\n \r\n Meet Our Visionaries\r\n \r\n \r\n The brilliant minds behind our success story. Each bringing unique expertise and passion to drive innovation forward.\r\n \r\n \r\n\r\n \r\n {teamMembers.map((member, index) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "meet-our-team-4.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n background: var(--mantine-primary-color-light);\r\n border-radius: var(--mantine-radius-md);\r\n}\r\n"
}
],
"attributes": {
"title": "meet-our-team-4",
"category": "team",
"description": "Advanced team section with tabs, stats, skills progress and achievements",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
},
{
"component": "Pricing4",
"slug": "pricing4",
"code": [
{
"fileName": "pricing4.tsx",
"language": "tsx",
"code": "import { useState } from \"react\";\r\nimport { Box, Card, Container, Title, Text, Button, Stack, Group, Switch, SimpleGrid, Progress, Badge } from \"@mantine/core\";\r\nimport { CheckCircledIcon, ArrowRightIcon, PlusIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./pricing4.module.css\";\r\n\r\nexport const Pricing4 = () => {\r\n const [isYearly, setIsYearly] = useState(false);\r\n\r\n const mainPlan = {\r\n name: \"Professional\",\r\n monthlyPrice: 49,\r\n yearlyPrice: 39,\r\n description: \"Everything you need to grow your business\",\r\n features: [\r\n \"Unlimited projects\",\r\n \"Advanced analytics dashboard\",\r\n \"Priority email & chat support\",\r\n \"50GB cloud storage\",\r\n \"API access with 10k requests/day\",\r\n \"Team collaboration tools\",\r\n \"Custom branding\",\r\n ],\r\n usage: [\r\n { name: \"Storage\", used: 12, total: 50, unit: \"GB\" },\r\n { name: \"API Requests\", used: 4500, total: 10000, unit: \"\" },\r\n { name: \"Team Members\", used: 8, total: 20, unit: \"\" },\r\n ],\r\n };\r\n\r\n const addons = [\r\n {\r\n name: \"Extra Storage\",\r\n description: \"Add 100GB of additional storage\",\r\n monthlyPrice: 9,\r\n yearlyPrice: 7,\r\n },\r\n {\r\n name: \"API Boost\",\r\n description: \"Increase to 50k API requests/day\",\r\n monthlyPrice: 19,\r\n yearlyPrice: 15,\r\n },\r\n {\r\n name: \"White Label\",\r\n description: \"Remove all branding completely\",\r\n monthlyPrice: 29,\r\n yearlyPrice: 23,\r\n },\r\n {\r\n name: \"Priority Support\",\r\n description: \"24/7 phone support & 1hr response\",\r\n monthlyPrice: 39,\r\n yearlyPrice: 31,\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n One Plan, Full Power\r\n \r\n \r\n Get everything you need with optional add-ons\r\n \r\n \r\n\r\n \r\n Monthly \r\n setIsYearly(!isYearly)}\r\n />\r\n \r\n Yearly \r\n \r\n Save 20%\r\n \r\n \r\n \r\n\r\n {/* Main Plan Card */}\r\n \r\n \r\n \r\n \r\n {mainPlan.name} \r\n \r\n Most Popular\r\n \r\n \r\n {mainPlan.description} \r\n\r\n \r\n {mainPlan.features.map((feature) => (\r\n \r\n \r\n {feature} \r\n \r\n ))}\r\n \r\n \r\n\r\n \r\n \r\n \r\n ${isYearly ? mainPlan.yearlyPrice : mainPlan.monthlyPrice}\r\n \r\n \r\n per month, billed {isYearly ? \"yearly\" : \"monthly\"}\r\n \r\n \r\n\r\n }\r\n c=\"var(--mantine-primary-color-contrast)\"\r\n fullWidth\r\n >\r\n Get Started\r\n \r\n\r\n \r\n Current Usage \r\n {mainPlan.usage.map((item) => (\r\n \r\n \r\n {item.name} \r\n \r\n {item.used}{item.unit} / {item.total}{item.unit}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n {/* Add-ons Section */}\r\n \r\n Optional Add-ons \r\n \r\n {addons.map((addon) => (\r\n \r\n \r\n {addon.name} \r\n \r\n {addon.description}\r\n \r\n \r\n \r\n +${isYearly ? addon.yearlyPrice : addon.monthlyPrice}/mo\r\n \r\n }\r\n >\r\n Add\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "pricing4.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n\r\n.mainCard {\r\n background-color: var(--mantine-color-body);\r\n transition: all 0.3s ease;\r\n}\r\n\r\n.mainCard:hover {\r\n box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.priceSection {\r\n min-width: 240px;\r\n padding: 1.5rem;\r\n border-radius: var(--mantine-radius-lg);\r\n background-color: var(--mantine-primary-color-light);\r\n}\r\n\r\n.price {\r\n background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-7));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n.addonCard {\r\n background-color: var(--mantine-color-body);\r\n transition: all 0.2s ease;\r\n}\r\n\r\n.addonCard:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);\r\n border-color: var(--mantine-primary-color-filled);\r\n}\r\n\r\n.addonPrice {\r\n color: var(--mantine-primary-color-filled);\r\n}\r\n"
}
],
"attributes": {
"title": "pricing4",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
},
{
"component": "ComingSoon",
"slug": "coming-soon",
"code": [
{
"fileName": "coming-soon.tsx",
"language": "tsx",
"code": "import { Box, Container, Text, Group, Stack } from \"@mantine/core\";\r\nimport styles from \"./coming-soon.module.css\";\r\n\r\nexport const ComingSoon = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Coming Soon..\r\n \r\n \r\n We're working hard to bring you more awesome blocks. Stay tuned for updates!\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "coming-soon.module.css",
"language": "scss",
"code": ".container {\r\n padding: 4rem 1rem;\r\n}\r\n\r\n.title {\r\n background-image: linear-gradient(to right, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%, #b49fda 79%, #7ac5d8 100%);\r\n background-clip: text;\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n"
}
],
"attributes": {
"title": "coming-soon",
"category": "coming-soon",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
},
{
"component": "Feature4",
"slug": "feature4",
"code": [
{
"fileName": "feature4.tsx",
"language": "tsx",
"code": "import { Card, Text, Title, Container, Stack, SimpleGrid, Progress, Badge, Group, ThemeIcon } from \"@mantine/core\";\r\nimport { IconCode, IconServer, IconDeviceMobile, IconCloud, IconPalette, IconBrandGithub } from \"@tabler/icons-react\";\r\nimport classes from \"./feature4.module.css\";\r\n\r\nconst techCategories = [\r\n {\r\n title: \"Frontend\",\r\n icon: IconCode,\r\n technologies: [\r\n { name: \"React\", proficiency: 95 },\r\n { name: \"Next.js\", proficiency: 90 },\r\n { name: \"TypeScript\", proficiency: 92 },\r\n ],\r\n },\r\n {\r\n title: \"Backend\",\r\n icon: IconServer,\r\n technologies: [\r\n { name: \"Node.js\", proficiency: 90 },\r\n { name: \"Python\", proficiency: 85 },\r\n { name: \"PostgreSQL\", proficiency: 82 },\r\n ],\r\n },\r\n {\r\n title: \"Mobile\",\r\n icon: IconDeviceMobile,\r\n technologies: [\r\n { name: \"React Native\", proficiency: 85 },\r\n { name: \"Flutter\", proficiency: 80 },\r\n { name: \"iOS/Android\", proficiency: 75 },\r\n ],\r\n },\r\n {\r\n title: \"DevOps\",\r\n icon: IconCloud,\r\n technologies: [\r\n { name: \"AWS\", proficiency: 88 },\r\n { name: \"Docker\", proficiency: 85 },\r\n { name: \"Kubernetes\", proficiency: 75 },\r\n ],\r\n },\r\n {\r\n title: \"Design\",\r\n icon: IconPalette,\r\n technologies: [\r\n { name: \"Figma\", proficiency: 90 },\r\n { name: \"Adobe XD\", proficiency: 80 },\r\n { name: \"Framer\", proficiency: 75 },\r\n ],\r\n },\r\n {\r\n title: \"Version Control\",\r\n icon: IconBrandGithub,\r\n technologies: [\r\n { name: \"Git\", proficiency: 95 },\r\n { name: \"GitHub\", proficiency: 92 },\r\n { name: \"GitLab\", proficiency: 85 },\r\n ],\r\n },\r\n];\r\n\r\nexport const Feature4 = () => {\r\n return (\r\n \r\n \r\n \r\n Technology\r\n \r\n \r\n Our Tech Stack\r\n \r\n \r\n Cutting-edge technologies and tools we use to build exceptional digital experiences\r\n \r\n \r\n\r\n \r\n {techCategories.map((category, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {category.technologies.length} tools\r\n \r\n \r\n\r\n {category.title} \r\n\r\n \r\n {category.technologies.map((tech, i) => (\r\n \r\n \r\n {tech.name} \r\n {tech.proficiency}% \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "feature4.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n background: var(--mantine-color-secondary-filled);\r\n}\r\n\r\n"
}
],
"attributes": {
"title": "feature4",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
},
{
"component": "Hero5",
"slug": "hero5",
"code": [
{
"fileName": "hero5.tsx",
"language": "tsx",
"code": "import { Container, Title, Text, Button, Group, Stack, ThemeIcon, Box, Divider, rem } from \"@mantine/core\";\r\nimport { RocketIcon, ArrowRightIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./hero5.module.css\";\r\n\r\nexport const Hero5 = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Next Generation Platform\r\n \r\n \r\n\r\n \r\n Build Amazing Products\r\n \r\n\r\n \r\n\r\n \r\n Experience unparalleled performance and reliability. Our platform empowers teams to create\r\n exceptional digital experiences that users love.\r\n \r\n\r\n \r\n } color=\"var(--mantine-primary-color-filled)\">\r\n Start Building\r\n \r\n \r\n View Documentation\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "hero5.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 2rem 0;\r\n}\r\n\r\n.badge {\r\n background: var(--mantine-color-body);\r\n border: 1px solid var(--mantine-color-default-border);\r\n padding: 0.5rem 1rem;\r\n border-radius: var(--mantine-radius-xl);\r\n}\r\n\r\n.title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n line-height: 1.1;\r\n font-weight: 900;\r\n}\r\n"
}
],
"attributes": {
"title": "hero5",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
},
{
"component": "Pricing5",
"slug": "pricing5",
"code": [
{
"fileName": "pricing5.tsx",
"language": "tsx",
"code": "import { useState } from \"react\";\r\nimport { Box, Card, Container, Title, Text, Button, Stack, Group, Switch, Badge, Flex } from \"@mantine/core\";\r\nimport { CheckCircledIcon, ArrowRightIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./pricing5.module.css\";\r\n\r\nexport const Pricing5 = () => {\r\n const [isYearly, setIsYearly] = useState(false);\r\n\r\n const plans = [\r\n {\r\n name: \"Starter\",\r\n monthlyPrice: 15,\r\n yearlyPrice: 12,\r\n description: \"For individuals getting started\",\r\n badge: null,\r\n features: [\"5 projects\", \"Basic analytics\", \"Email support\", \"1GB storage\"],\r\n },\r\n {\r\n name: \"Growth\",\r\n monthlyPrice: 45,\r\n yearlyPrice: 36,\r\n description: \"For growing teams and businesses\",\r\n badge: { text: \"Best Value\", color: \"var(--mantine-primary-color-filled)\" },\r\n features: [\"Unlimited projects\", \"Advanced analytics\", \"Priority support\", \"25GB storage\", \"API access\", \"Team collaboration\"],\r\n highlighted: true,\r\n },\r\n {\r\n name: \"Scale\",\r\n monthlyPrice: 99,\r\n yearlyPrice: 79,\r\n description: \"For enterprises with advanced needs\",\r\n badge: { text: \"Most Features\", color: \"var(--mantine-color-gray-6)\" },\r\n features: [\"Everything in Growth\", \"Unlimited storage\", \"24/7 phone support\", \"Custom integrations\", \"SSO & SAML\", \"Dedicated manager\"],\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Choose Your Plan\r\n \r\n \r\n Scale as you grow with flexible pricing\r\n \r\n \r\n\r\n \r\n Monthly \r\n setIsYearly(!isYearly)}\r\n />\r\n \r\n Yearly \r\n \r\n Save 20%\r\n \r\n \r\n \r\n\r\n \r\n {plans.map((plan) => (\r\n \r\n \r\n {/* Left: Plan name and price */}\r\n \r\n \r\n {plan.name} \r\n {plan.badge && (\r\n \r\n {plan.badge.text}\r\n \r\n )}\r\n \r\n {plan.description} \r\n \r\n \r\n ${isYearly ? plan.yearlyPrice : plan.monthlyPrice}\r\n \r\n /month \r\n \r\n \r\n\r\n {/* Middle: Features */}\r\n \r\n {plan.features.map((feature) => (\r\n \r\n \r\n {feature} \r\n \r\n ))}\r\n \r\n\r\n {/* Right: CTA */}\r\n }\r\n miw={160}\r\n {...(plan.highlighted ? { c: \"var(--mantine-primary-color-contrast)\" } : {})}\r\n >\r\n Get Started\r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n All plans include a 14-day free trial. No credit card required.\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "pricing5.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 4rem 0;\r\n background-color: var(--mantine-color-body);\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n display: inline-block;\r\n padding: 0.5rem 1.5rem;\r\n background: var(--mantine-primary-color-light);\r\n border-radius: var(--mantine-radius-md);\r\n}\r\n\r\n.planCard {\r\n background-color: var(--mantine-color-body);\r\n transition: all 0.3s ease;\r\n}\r\n\r\n.planCard:hover {\r\n transform: translateY(-3px);\r\n box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);\r\n}\r\n\r\n.highlightedCard {\r\n border-color: var(--mantine-primary-color-filled);\r\n border-width: 2px;\r\n background: linear-gradient(\r\n 135deg,\r\n var(--mantine-primary-color-0) 0%,\r\n var(--mantine-color-body) 100%\r\n );\r\n}\r\n\r\n[data-mantine-color-scheme=\"dark\"] .highlightedCard {\r\n background: linear-gradient(\r\n 135deg,\r\n rgba(var(--mantine-primary-color-filled-rgb), 0.1) 0%,\r\n var(--mantine-color-body) 100%\r\n );\r\n}\r\n\r\n.price {\r\n background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-7));\r\n -webkit-background-clip: text;\r\n -webkit-text-fill-color: transparent;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n .planCard {\r\n padding: 1.5rem;\r\n }\r\n}\r\n"
}
],
"attributes": {
"title": "pricing5",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
},
{
"component": "Feature5",
"slug": "feature5",
"code": [
{
"fileName": "feature5.tsx",
"language": "tsx",
"code": "import { Card, Text, Title, Container, Stack, SimpleGrid, ThemeIcon, Badge, Group, RingProgress, Center } from \"@mantine/core\";\r\nimport { IconCheck, IconHeart, IconClock, IconUsers, IconWorld, IconStar, IconBolt, IconShield, IconRocket, IconTrendingUp } from \"@tabler/icons-react\";\r\nimport classes from \"./feature5.module.css\";\r\n\r\nconst metrics = [\r\n { title: \"Projects Completed\", value: \"250+\", icon: IconCheck, description: \"Successfully delivered projects\" },\r\n { title: \"Happy Clients\", value: \"180+\", icon: IconHeart, description: \"Satisfied clients who trust us\" },\r\n { title: \"Years Experience\", value: \"8+\", icon: IconClock, description: \"Years of combined experience\" },\r\n { title: \"Team Members\", value: \"25+\", icon: IconUsers, description: \"Skilled professionals\" },\r\n { title: \"Countries Served\", value: \"35+\", icon: IconWorld, description: \"Global reach\" },\r\n { title: \"Success Rate\", value: \"98%\", icon: IconStar, description: \"Project completion rate\" },\r\n];\r\n\r\nconst benefits = [\r\n { title: \"Lightning Fast\", description: \"Optimized performance with sub-second load times.\", icon: IconBolt, percentage: 95 },\r\n { title: \"Secure & Reliable\", description: \"Bank-level security with 99.9% uptime guarantee.\", icon: IconShield, percentage: 99 },\r\n { title: \"Scalable Architecture\", description: \"Built to grow with your business.\", icon: IconRocket, percentage: 90 },\r\n { title: \"Performance First\", description: \"Continuous monitoring and optimization.\", icon: IconTrendingUp, percentage: 88 },\r\n];\r\n\r\nexport const Feature5 = () => {\r\n return (\r\n \r\n \r\n Why Us \r\n \r\n Why Choose Us\r\n \r\n \r\n Numbers that speak for themselves - our track record of excellence\r\n \r\n \r\n\r\n \r\n {metrics.map((metric, index) => (\r\n \r\n \r\n \r\n \r\n \r\n {metric.value} \r\n {metric.title} \r\n {metric.description} \r\n \r\n \r\n ))}\r\n \r\n\r\n \r\n Our Competitive Advantages\r\n \r\n\r\n \r\n {benefits.map((benefit, index) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n {benefit.title} \r\n {benefit.percentage}% \r\n \r\n \r\n {benefit.description}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "feature5.module.css",
"language": "scss",
"code": ".card {\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n}\r\n\r\n.card:hover {\r\n transform: translateY(-4px);\r\n box-shadow: var(--mantine-shadow-md);\r\n background: var(--mantine-color-secondary-filled);\r\n}\r\n\r\n.title {\r\n font-weight: 800;\r\n display: inline-block;\r\n position: relative;\r\n padding-bottom: 12px;\r\n}\r\n\r\n.title::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 50%;\r\n transform: translateX(-50%);\r\n width: 60px;\r\n height: 4px;\r\n background: var(--mantine-primary-color-filled);\r\n border-radius: 2px;\r\n}\r\n"
}
],
"attributes": {
"title": "feature5",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 6
}
},
{
"component": "Hero6",
"slug": "hero6",
"code": [
{
"fileName": "hero6.tsx",
"language": "tsx",
"code": "import { Container, Title, Text, Button, Group, Stack, Box, Avatar, Rating } from \"@mantine/core\";\r\nimport { ArrowRightIcon } from \"@radix-ui/react-icons\";\r\nimport classes from \"./hero6.module.css\";\r\n\r\nexport const Hero6 = () => {\r\n const avatars = [\r\n \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png\",\r\n \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png\",\r\n \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png\",\r\n \"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png\",\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {avatars.map((avatar, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n Loved by 2,000+ customers \r\n \r\n \r\n\r\n \r\n Transform Your Ideas Into Reality\r\n \r\n\r\n \r\n A powerful platform designed for creators, developers, and entrepreneurs\r\n who want to bring their vision to life without the complexity.\r\n \r\n\r\n \r\n } color=\"var(--mantine-primary-color-filled)\">\r\n Start Free Trial\r\n \r\n \r\n Watch Demo\r\n \r\n \r\n\r\n \r\n No credit card required. Start building in minutes.\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n"
},
{
"fileName": "hero6.module.css",
"language": "scss",
"code": ".wrapper {\r\n padding: 2rem 0;\r\n}\r\n\r\n.title {\r\n font-size: clamp(2.5rem, 5vw, 4rem);\r\n line-height: 1.1;\r\n font-weight: 900;\r\n}\r\n"
}
],
"attributes": {
"title": "hero6",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 6
}
}
];
================================================
FILE: src/feature/blocks/data/fn.ts
================================================
import { components } from "./components";
import { ComponentsMap } from "./types";
export function getComponentsByCategory(): ComponentsMap {
return components.reduce((acc, component) => {
if (!(component.attributes.category in acc)) {
acc[component.attributes.category] = [];
}
acc[component.attributes.category].push(component);
return acc;
}, {});
}
export function countComponentsByCategory() {
return components.reduce>((acc, component) => {
if (!(component.attributes.category in acc)) {
acc[component.attributes.category] = 0;
}
acc[component.attributes.category] += 1;
return acc;
}, {});
}
================================================
FILE: src/feature/blocks/data/images/index.ts
================================================
import authenticationDark from './authentication-dark.svg';
import authenticationLight from './authentication-light.svg';
import bannersDark from './banners-dark.svg';
import bannersLight from './banners-light.svg';
import buttonsDark from './buttons-dark.svg';
import buttonsLight from './buttons-light.svg';
import cardsDark from './cards-dark.svg';
import cardsLight from './cards-light.svg';
import carouselsDark from './carousels-dark.svg';
import carouselsLight from './carousels-light.svg';
import colorSchemeDark from './color-scheme-dark.svg';
import colorSchemeLight from './color-scheme-light.svg';
import commentsDark from './comments-dark.svg';
import commentsLight from './comments-light.svg';
import contactDark from './contact-dark.svg';
import contactLight from './contact-light.svg';
import dndDark from './dnd-dark.svg';
import dndLight from './dnd-light.svg';
import dropzonesDark from './dropzones-dark.svg';
import dropzonesLight from './dropzones-light.svg';
import errorPagesDark from './error-pages-dark.svg';
import errorPagesLight from './error-pages-light.svg';
import faqDark from './faq-dark.svg';
import faqLight from './faq-light.svg';
import featuresDark from './features-dark.svg';
import featuresLight from './features-light.svg';
import footersDark from './footers-dark.svg';
import footersLight from './footers-light.svg';
import gridsDark from './grids-dark.svg';
import gridsLight from './grids-light.svg';
import headersDark from './headers-dark.svg';
import headersLight from './headers-light.svg';
import heroDark from './hero-dark.svg';
import heroLight from './hero-light.svg';
import inputsDark from './inputs-dark.svg';
import inputsLight from './inputs-light.svg';
import navbarsDark from './navbars-dark.svg';
import navbarsLight from './navbars-light.svg';
import slidersDark from './sliders-dark.svg';
import slidersLight from './sliders-light.svg';
import statsDark from './stats-dark.svg';
import statsLight from './stats-light.svg';
import tablesDark from './tables-dark.svg';
import tablesLight from './tables-light.svg';
import tocDark from './toc-dark.svg';
import tocLight from './toc-light.svg';
import usersDark from './users-dark.svg';
import usersLight from './users-light.svg';
export default {
inputs: { light: inputsLight.src, dark: inputsDark.src },
'article-cards': { light: cardsLight.src, dark: cardsDark.src },
'app-cards': { light: cardsLight.src, dark: cardsDark.src },
hero: { light: heroLight.src, dark: heroDark.src },
features: { light: featuresLight.src, dark: featuresDark.src },
faq: { light: faqLight.src, dark: faqDark.src },
authentication: { light: authenticationLight.src, dark: authenticationDark.src },
contact: { light: contactLight.src, dark: contactDark.src },
banners: { light: bannersLight.src, dark: bannersDark.src },
navbars: { light: navbarsLight.src, dark: navbarsDark.src },
users: { light: usersLight.src, dark: usersDark.src },
dropzones: { light: dropzonesLight.src, dark: dropzonesDark.src },
sliders: { light: slidersLight.src, dark: slidersDark.src },
footers: { light: footersLight.src, dark: footersDark.src },
headers: { light: headersLight.src, dark: headersDark.src },
toc: { light: tocLight.src, dark: tocDark.src },
stats: { light: statsLight.src, dark: statsDark.src },
grids: { light: gridsLight.src, dark: gridsDark.src },
tables: { light: tablesLight.src, dark: tablesDark.src },
buttons: { light: buttonsLight.src, dark: buttonsDark.src },
dnd: { light: dndLight.src, dark: dndDark.src },
'color-scheme': { light: colorSchemeLight.src, dark: colorSchemeDark.src },
'error-pages': { light: errorPagesLight.src, dark: errorPagesDark.src },
comments: { light: commentsLight.src, dark: commentsDark.src },
carousels: { light: carouselsLight.src, dark: carouselsDark.src },
};
================================================
FILE: src/feature/blocks/data/types.ts
================================================
export interface Category {
slug: string;
name: string;
images?: { dark: string; light: string };
comingSoon?: boolean;
}
export interface CategoriesGroup {
name: string;
categories: Category[];
}
export interface CanvasAttributes {
responsive?: boolean;
withColor?: boolean;
dimmed?: boolean;
canvas: { center: boolean; maxWidth?: number };
category: string;
title: string;
props?: Record;
}
export interface UiComponent {
component: string;
slug: string;
code: { fileName: string; language: string; code: string }[];
attributes: CanvasAttributes;
}
export interface ComponentInfo {
component: string;
slug: string;
code: { fileName: string; language: string; code: string }[];
attributes: any;
}
export interface ComponentsMap {
[key: string]: any[]; // or a more specific type for your components
}
================================================
FILE: src/feature/blocks/lib/coming-soon/attributes.json
================================================
{
"title": "coming-soon",
"category": "coming-soon",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
================================================
FILE: src/feature/blocks/lib/coming-soon/coming-soon.module.css
================================================
.container {
padding: 4rem 1rem;
}
.title {
background-image: linear-gradient(to right, #eea2a2 0%, #bbc1bf 19%, #57c6e1 42%, #b49fda 79%, #7ac5d8 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
================================================
FILE: src/feature/blocks/lib/coming-soon/coming-soon.tsx
================================================
import { Box, Container, Text, Group, Stack } from "@mantine/core";
import styles from "./coming-soon.module.css";
export const ComingSoon = () => {
return (
Coming Soon..
We're working hard to bring you more awesome blocks. Stay tuned for updates!
);
};
================================================
FILE: src/feature/blocks/lib/faq1/attributes.json
================================================
{
"title": "faq1",
"category": "faq",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
================================================
FILE: src/feature/blocks/lib/faq1/faq1.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.title {
font-size: 2.5rem;
font-weight: 900;
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.accordion {
width: 100%;
}
.item {
background-color: var(--mantine-color-body);
border: 1px solid var(--mantine-color-default-border);
transition: all 0.2s ease;
}
.item:hover {
border-color: var(--mantine-primary-color-3);
}
.item[data-active] {
border-color: var(--mantine-primary-color-filled);
}
.control {
padding: 1rem 1.25rem;
}
.control:hover {
background-color: transparent;
}
================================================
FILE: src/feature/blocks/lib/faq1/faq1.tsx
================================================
import { Box, Container, Title, Text, Accordion, Stack } from "@mantine/core";
import classes from "./faq1.module.css";
export const Faq1 = () => {
const faqs = [
{
question: "How do I get started?",
answer: "Getting started is easy! Simply sign up for an account, complete the onboarding process, and you'll be ready to go in minutes. Our intuitive interface guides you through each step.",
},
{
question: "What payment methods do you accept?",
answer: "We accept all major credit cards (Visa, MasterCard, American Express), PayPal, and bank transfers for annual plans. All payments are processed securely through our payment partners.",
},
{
question: "Can I cancel my subscription anytime?",
answer: "Yes, you can cancel your subscription at any time. If you cancel, you'll continue to have access until the end of your billing period. We don't offer refunds for partial months.",
},
{
question: "Is there a free trial available?",
answer: "Absolutely! We offer a 14-day free trial with full access to all features. No credit card required to start. You can upgrade to a paid plan anytime during or after your trial.",
},
{
question: "How secure is my data?",
answer: "Security is our top priority. We use industry-standard encryption (AES-256) for data at rest and TLS 1.3 for data in transit. Our infrastructure is hosted on AWS with SOC 2 Type II compliance.",
},
{
question: "Do you offer customer support?",
answer: "Yes! We offer email support for all plans, with priority support and live chat available on Pro plans and above. Enterprise customers get a dedicated account manager.",
},
];
return (
Frequently Asked Questions
Everything you need to know about our product
{faqs.map((faq, index) => (
{faq.question}
{faq.answer}
))}
);
};
================================================
FILE: src/feature/blocks/lib/faq2/attributes.json
================================================
{
"title": "faq2",
"category": "faq",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/faq2/faq2.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.sidebar {
position: sticky;
top: 2rem;
}
.title {
font-weight: 800;
padding-left: 1rem;
border-left: 4px solid var(--mantine-primary-color-filled);
}
.contactLink {
cursor: pointer;
}
.contactLink:hover {
text-decoration: underline;
}
.faqItem {
padding: 1.25rem;
border-radius: var(--mantine-radius-lg);
border: 1px solid var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
cursor: pointer;
transition: all 0.2s ease;
}
.faqItem:hover {
border-color: var(--mantine-primary-color-3);
}
.faqItem.active {
border-color: var(--mantine-primary-color-filled);
background-color: var(--mantine-primary-color-light);
}
================================================
FILE: src/feature/blocks/lib/faq2/faq2.tsx
================================================
import { Box, Container, Title, Text, Stack, Group, Grid, ThemeIcon } from "@mantine/core";
import { QuestionMarkCircledIcon, PlusCircledIcon, MinusCircledIcon } from "@radix-ui/react-icons";
import { useState } from "react";
import classes from "./faq2.module.css";
export const Faq2 = () => {
const [openIndex, setOpenIndex] = useState(0);
const faqs = [
{
question: "What makes your platform different?",
answer: "Our platform combines powerful features with an intuitive interface, backed by industry-leading support. We focus on delivering real value through continuous innovation and listening to customer feedback.",
},
{
question: "How long does implementation take?",
answer: "Most teams are up and running within a day. Our streamlined onboarding process and comprehensive documentation make implementation quick and painless. Enterprise setups may take 1-2 weeks depending on complexity.",
},
{
question: "Can I integrate with existing tools?",
answer: "Yes! We offer native integrations with 100+ popular tools including Slack, Jira, GitHub, and Salesforce. Our robust API also allows you to build custom integrations for any workflow.",
},
{
question: "What happens to my data if I cancel?",
answer: "Your data remains accessible for 30 days after cancellation. You can export all your data at any time. After the grace period, data is securely deleted from our servers in accordance with our privacy policy.",
},
{
question: "Do you offer training and onboarding?",
answer: "All plans include access to our knowledge base and video tutorials. Pro plans get live webinar training, and Enterprise customers receive personalized onboarding sessions with our customer success team.",
},
{
question: "What's your uptime guarantee?",
answer: "We maintain a 99.9% uptime SLA for all paid plans. Our status page provides real-time updates on system health. Enterprise plans include custom SLAs with financial guarantees.",
},
];
const toggleFaq = (index: number) => {
setOpenIndex(openIndex === index ? null : index);
};
return (
Got Questions?
Find answers to commonly asked questions about our platform and services.
Can't find what you're looking for?{" "}
Contact our support team
{faqs.map((faq, index) => (
toggleFaq(index)}
>
{faq.question}
{openIndex === index ? (
) : (
)}
{openIndex === index && (
{faq.answer}
)}
))}
);
};
================================================
FILE: src/feature/blocks/lib/faq3/attributes.json
================================================
{
"title": "faq3",
"category": "faq",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
================================================
FILE: src/feature/blocks/lib/faq3/faq3.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.title {
font-weight: 800;
display: inline-block;
padding: 0.5rem 1.5rem;
background: var(--mantine-primary-color-light);
border-radius: var(--mantine-radius-md);
}
.card {
background-color: var(--mantine-color-body);
transition: all 0.3s ease;
height: 100%;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
border-color: var(--mantine-primary-color-3);
}
.iconWrapper {
width: 44px;
height: 44px;
border-radius: var(--mantine-radius-md);
background: var(--mantine-primary-color-light);
color: var(--mantine-primary-color-filled);
display: flex;
align-items: center;
justify-content: center;
}
================================================
FILE: src/feature/blocks/lib/faq3/faq3.tsx
================================================
import { Box, Container, Title, Text, Stack, SimpleGrid, Card } from "@mantine/core";
import { RocketIcon, LockClosedIcon, MixerHorizontalIcon, ChatBubbleIcon, BarChartIcon, GlobeIcon } from "@radix-ui/react-icons";
import classes from "./faq3.module.css";
export const Faq3 = () => {
const categories = [
{
icon: ,
title: "Getting Started",
questions: [
{ q: "How do I create an account?", a: "Click 'Sign Up' and follow the simple registration process." },
{ q: "Is there a setup fee?", a: "No, there are no setup fees for any of our plans." },
{ q: "How long is the free trial?", a: "Our free trial lasts 14 days with full feature access." },
],
},
{
icon: ,
title: "Security",
questions: [
{ q: "Is my data encrypted?", a: "Yes, we use AES-256 encryption for all data at rest." },
{ q: "Do you support 2FA?", a: "Yes, two-factor authentication is available on all plans." },
{ q: "Where is data stored?", a: "Data is stored in SOC 2 compliant AWS data centers." },
],
},
{
icon: ,
title: "Features",
questions: [
{ q: "Can I customize the dashboard?", a: "Yes, dashboards are fully customizable to your needs." },
{ q: "Do you have an API?", a: "Yes, we offer a comprehensive REST API with full documentation." },
{ q: "Are there usage limits?", a: "Limits vary by plan. Check our pricing page for details." },
],
},
{
icon: ,
title: "Support",
questions: [
{ q: "How can I contact support?", a: "Via email, chat, or phone depending on your plan." },
{ q: "What are support hours?", a: "Email: 24/7. Chat: Business hours. Phone: Enterprise only." },
{ q: "Is there a knowledge base?", a: "Yes, with 500+ articles and video tutorials." },
],
},
{
icon: ,
title: "Billing",
questions: [
{ q: "What payment methods accepted?", a: "Credit cards, PayPal, and bank transfers for annual plans." },
{ q: "Can I change plans anytime?", a: "Yes, upgrade or downgrade at any time." },
{ q: "Do you offer refunds?", a: "30-day money-back guarantee on annual plans." },
],
},
{
icon: ,
title: "Integrations",
questions: [
{ q: "Which tools do you integrate with?", a: "100+ integrations including Slack, Jira, and Salesforce." },
{ q: "Can I build custom integrations?", a: "Yes, via our API or Zapier for no-code options." },
{ q: "Is there a marketplace?", a: "Yes, with community-built apps and extensions." },
],
},
];
return (
Questions & Answers
Browse by category to find what you need
{categories.map((category) => (
{category.icon}
{category.title}
{category.questions.map((item, index) => (
{item.q}
{item.a}
))}
))}
);
};
================================================
FILE: src/feature/blocks/lib/feature1/attributes.json
================================================
{
"title": "feature1",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/feature1/feature1.module.css
================================================
.wrapper {
position: relative;
}
.title {
position: relative;
font-weight: 900;
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.title::after {
content: "";
display: block;
width: 60px;
height: 4px;
background: linear-gradient(45deg, var(--mantine-primary-color-5), var(--mantine-primary-color-2));
margin: 20px auto;
border-radius: var(--mantine-radius-xl);
}
.card {
transition: all 0.1s ease;
}
.card:hover {
transform: translateY(-5px);
box-shadow: var(--mantine-shadow-lg);
background: var(--mantine-color-secondary-filled);
}
.iconWrapper {
width: 60px;
height: 60px;
border-radius: var(--mantine-radius-md);
background: var(--mantine-primary-color-filled-hover);
color: var(--mantine-primary-color-contrast);
animation: float 3s ease-in-out infinite;
display: flex;
align-items: center;
justify-content: center;
}
.iconWrapper svg {
width: 24px;
height: 24px;
}
.cardTitle {
font-size: 1.5rem;
font-weight: 600;
}
@keyframes float {
0% {
transform: translateY(0);
}
50% {
transform: translateY(-10px);
}
100% {
transform: translateY(0);
}
}
================================================
FILE: src/feature/blocks/lib/feature1/feature1.tsx
================================================
import { Grid, Card, Text, Title, Center, Box, Stack } from "@mantine/core";
import { ZoomInIcon, BarChartIcon, CircleIcon, HandIcon, LayersIcon, BellIcon } from "@radix-ui/react-icons";
import classes from "./feature1.module.css";
const reasons = [
{
title: "Quality",
description: "We deliver exceptional results that exceed expectations, setting new standards in the industry.",
icon: ,
},
{
title: "Experience",
description: "Decades of combined expertise ensures your project is handled with professional excellence.",
icon: ,
},
{
title: "Support",
description: "24/7 dedicated support team ready to assist you with any questions or concerns.",
icon: ,
},
{
title: "Innovation",
description: "Cutting-edge solutions that keep you ahead of the curve in today's dynamic market.",
icon: ,
},
{
title: "Results",
description: "Proven track record of delivering measurable outcomes and tangible business value.",
icon: ,
},
{
title: "Efficiency",
description: "Streamlined processes that save time and resources while maximizing productivity.",
icon: ,
},
];
export const Feature1 = () => {
return (
Why Work With Us?
Discover the unique advantages that set us apart and make us your ideal partner for success
{reasons.map((reason, i) => (
{reason.icon}
{reason.title}
{reason.description}
))}
);
};
================================================
FILE: src/feature/blocks/lib/feature2/attributes.json
================================================
{
"title": "feature2",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
================================================
FILE: src/feature/blocks/lib/feature2/feature2.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--mantine-shadow-md);
background: var(--mantine-color-secondary-filled);
}
================================================
FILE: src/feature/blocks/lib/feature2/feature2.tsx
================================================
import { Card, Text, Title, Container, Stack, SimpleGrid, ThemeIcon, Badge, Button } from "@mantine/core";
import { IconCode, IconDeviceMobile, IconDeviceDesktop, IconCloud, IconPalette, IconBolt } from "@tabler/icons-react";
import classes from "./feature2.module.css";
const services = [
{
title: "Web Development",
description: "Custom web applications built with modern technologies and best practices.",
icon: IconCode,
features: ["React & Next.js", "TypeScript", "Responsive Design"],
},
{
title: "Mobile Apps",
description: "Native and cross-platform mobile solutions that deliver exceptional experiences.",
icon: IconDeviceMobile,
features: ["iOS & Android", "React Native", "Flutter"],
},
{
title: "Desktop Apps",
description: "Powerful desktop applications with intuitive interfaces and robust functionality.",
icon: IconDeviceDesktop,
features: ["Electron", "Tauri", "Native Apps"],
},
{
title: "Cloud Solutions",
description: "Scalable cloud infrastructure and services designed for modern business needs.",
icon: IconCloud,
features: ["AWS", "Azure", "Google Cloud"],
},
{
title: "UI/UX Design",
description: "Beautiful, intuitive designs that enhance user engagement and satisfaction.",
icon: IconPalette,
features: ["Figma", "Prototyping", "User Research"],
},
{
title: "Performance",
description: "Optimization services to ensure your applications run fast and efficiently.",
icon: IconBolt,
features: ["Speed Optimization", "SEO", "Analytics"],
},
];
export const Feature2 = () => {
return (
Services
Our Services
Comprehensive solutions designed to accelerate your digital transformation journey
{services.map((service, index) => (
{service.title}
{service.description}
{service.features.map((feature, i) => (
• {feature}
))}
Learn More
))}
);
};
================================================
FILE: src/feature/blocks/lib/feature3/attributes.json
================================================
{
"title": "feature3",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
================================================
FILE: src/feature/blocks/lib/feature3/feature3.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateX(4px);
box-shadow: var(--mantine-shadow-md);
background: var(--mantine-color-secondary-filled);
}
.title {
font-weight: 800;
padding-bottom: 0.5rem;
border-bottom: 4px solid var(--mantine-primary-color-filled);
}
================================================
FILE: src/feature/blocks/lib/feature3/feature3.tsx
================================================
import { Card, Text, Title, Container, Stack, Timeline, ThemeIcon, Badge, Group } from "@mantine/core";
import { IconBolt, IconSettings, IconRocket, IconCheck, IconStar } from "@tabler/icons-react";
import classes from "./feature3.module.css";
const processSteps = [
{
title: "Discovery & Planning",
description: "We start by understanding your goals, requirements, and vision to create a comprehensive project roadmap.",
icon: IconBolt,
duration: "1-2 weeks",
deliverables: ["Project Brief", "Technical Specs", "Timeline"],
},
{
title: "Design & Architecture",
description: "Our team creates intuitive designs and robust architecture that align with your business objectives.",
icon: IconSettings,
duration: "2-3 weeks",
deliverables: ["UI/UX Design", "System Architecture", "Prototypes"],
},
{
title: "Development & Testing",
description: "We build your solution using cutting-edge technologies with continuous testing and quality assurance.",
icon: IconRocket,
duration: "4-8 weeks",
deliverables: ["MVP Development", "Testing Reports", "Documentation"],
},
{
title: "Launch & Optimization",
description: "We deploy your solution and provide ongoing support with performance monitoring and optimization.",
icon: IconCheck,
duration: "1-2 weeks",
deliverables: ["Production Deployment", "Performance Monitoring", "Support"],
},
{
title: "Growth & Maintenance",
description: "Continuous improvement and scaling support to ensure your solution grows with your business.",
icon: IconStar,
duration: "Ongoing",
deliverables: ["Feature Updates", "Performance Optimization", "24/7 Support"],
},
];
export const Feature3 = () => {
return (
Our Process
A proven methodology that delivers exceptional results through structured phases
{processSteps.map((step, index) => (
}
title={
{step.title}
{step.duration}
}
>
{step.description}
Key Deliverables:
{step.deliverables.map((deliverable, i) => (
{deliverable}
))}
))}
);
};
================================================
FILE: src/feature/blocks/lib/feature4/attributes.json
================================================
{
"title": "feature4",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
================================================
FILE: src/feature/blocks/lib/feature4/feature4.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--mantine-shadow-md);
background: var(--mantine-color-secondary-filled);
}
================================================
FILE: src/feature/blocks/lib/feature4/feature4.tsx
================================================
import { Card, Text, Title, Container, Stack, SimpleGrid, Progress, Badge, Group, ThemeIcon } from "@mantine/core";
import { IconCode, IconServer, IconDeviceMobile, IconCloud, IconPalette, IconBrandGithub } from "@tabler/icons-react";
import classes from "./feature4.module.css";
const techCategories = [
{
title: "Frontend",
icon: IconCode,
technologies: [
{ name: "React", proficiency: 95 },
{ name: "Next.js", proficiency: 90 },
{ name: "TypeScript", proficiency: 92 },
],
},
{
title: "Backend",
icon: IconServer,
technologies: [
{ name: "Node.js", proficiency: 90 },
{ name: "Python", proficiency: 85 },
{ name: "PostgreSQL", proficiency: 82 },
],
},
{
title: "Mobile",
icon: IconDeviceMobile,
technologies: [
{ name: "React Native", proficiency: 85 },
{ name: "Flutter", proficiency: 80 },
{ name: "iOS/Android", proficiency: 75 },
],
},
{
title: "DevOps",
icon: IconCloud,
technologies: [
{ name: "AWS", proficiency: 88 },
{ name: "Docker", proficiency: 85 },
{ name: "Kubernetes", proficiency: 75 },
],
},
{
title: "Design",
icon: IconPalette,
technologies: [
{ name: "Figma", proficiency: 90 },
{ name: "Adobe XD", proficiency: 80 },
{ name: "Framer", proficiency: 75 },
],
},
{
title: "Version Control",
icon: IconBrandGithub,
technologies: [
{ name: "Git", proficiency: 95 },
{ name: "GitHub", proficiency: 92 },
{ name: "GitLab", proficiency: 85 },
],
},
];
export const Feature4 = () => {
return (
Technology
Our Tech Stack
Cutting-edge technologies and tools we use to build exceptional digital experiences
{techCategories.map((category, index) => (
{category.technologies.length} tools
{category.title}
{category.technologies.map((tech, i) => (
{tech.name}
{tech.proficiency}%
))}
))}
);
};
================================================
FILE: src/feature/blocks/lib/feature5/attributes.json
================================================
{
"title": "feature5",
"category": "feature",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 6
}
================================================
FILE: src/feature/blocks/lib/feature5/feature5.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--mantine-shadow-md);
background: var(--mantine-color-secondary-filled);
}
.title {
font-weight: 800;
display: inline-block;
position: relative;
padding-bottom: 12px;
}
.title::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 4px;
background: var(--mantine-primary-color-filled);
border-radius: 2px;
}
================================================
FILE: src/feature/blocks/lib/feature5/feature5.tsx
================================================
import { Card, Text, Title, Container, Stack, SimpleGrid, ThemeIcon, Badge, Group, RingProgress, Center } from "@mantine/core";
import { IconCheck, IconHeart, IconClock, IconUsers, IconWorld, IconStar, IconBolt, IconShield, IconRocket, IconTrendingUp } from "@tabler/icons-react";
import classes from "./feature5.module.css";
const metrics = [
{ title: "Projects Completed", value: "250+", icon: IconCheck, description: "Successfully delivered projects" },
{ title: "Happy Clients", value: "180+", icon: IconHeart, description: "Satisfied clients who trust us" },
{ title: "Years Experience", value: "8+", icon: IconClock, description: "Years of combined experience" },
{ title: "Team Members", value: "25+", icon: IconUsers, description: "Skilled professionals" },
{ title: "Countries Served", value: "35+", icon: IconWorld, description: "Global reach" },
{ title: "Success Rate", value: "98%", icon: IconStar, description: "Project completion rate" },
];
const benefits = [
{ title: "Lightning Fast", description: "Optimized performance with sub-second load times.", icon: IconBolt, percentage: 95 },
{ title: "Secure & Reliable", description: "Bank-level security with 99.9% uptime guarantee.", icon: IconShield, percentage: 99 },
{ title: "Scalable Architecture", description: "Built to grow with your business.", icon: IconRocket, percentage: 90 },
{ title: "Performance First", description: "Continuous monitoring and optimization.", icon: IconTrendingUp, percentage: 88 },
];
export const Feature5 = () => {
return (
Why Us
Why Choose Us
Numbers that speak for themselves - our track record of excellence
{metrics.map((metric, index) => (
{metric.value}
{metric.title}
{metric.description}
))}
Our Competitive Advantages
{benefits.map((benefit, index) => (
}
/>
{benefit.title}
{benefit.percentage}%
{benefit.description}
))}
);
};
================================================
FILE: src/feature/blocks/lib/hero1/attributes.json
================================================
{
"title": "hero1",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
================================================
FILE: src/feature/blocks/lib/hero1/hero1.module.css
================================================
.title {
font-size: clamp(2.5rem, 5vw, 4rem);
line-height: 1;
background: linear-gradient(80deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.themeIconBackground {
background: rgba(var(--mantine-primary-color-filled), 0.07);
}
================================================
FILE: src/feature/blocks/lib/hero1/hero1.tsx
================================================
import { Container, Title, Text, Button, Group, Stack, Grid, ThemeIcon, Box, Paper } from "@mantine/core";
import { GitHubLogoIcon, RocketIcon, LightningBoltIcon, StarIcon, DashboardIcon } from "@radix-ui/react-icons";
import classes from "./hero1.module.css";
export const Hero1 = () => {
const features = [
{ icon: , label: "Lightning Fast" },
{ icon: , label: "Production Ready" },
{ icon: , label: "Modern Design" },
];
return (
Launch Your Project Today
Build Faster, Scale Better with Our Platform
Experience the next generation of web development. Build scalable applications with modern tools and
frameworks.
} color="var(--mantine-primary-color-filled)">
Get Started
}>
View on GitHub
{features.map((feature, index) => (
{feature.icon}
{feature.label}
))}
);
};
================================================
FILE: src/feature/blocks/lib/hero2/attributes.json
================================================
{
"title": "hero2",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/hero2/hero2.module.css
================================================
.wrapper {
padding: 2rem 0;
}
.card {
background: var(--mantine-color-body);
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-xl);
padding: 2.5rem;
}
.title {
font-size: clamp(2rem, 4vw, 3rem);
line-height: 1.1;
font-weight: 800;
}
.cardTitle {
font-size: clamp(1.5rem, 3vw, 2rem);
font-weight: 700;
}
================================================
FILE: src/feature/blocks/lib/hero2/hero2.tsx
================================================
import { Container, Title, Text, Button, Group, Stack, Grid, ThemeIcon, Box, Badge, rem } from "@mantine/core";
import { ArrowRightIcon, CheckIcon, PlayIcon } from "@radix-ui/react-icons";
import classes from "./hero2.module.css";
export const Hero2 = () => {
const stats = [
{ value: "10K+", label: "Happy Users" },
{ value: "99.9%", label: "Uptime" },
{ value: "24/7", label: "Support" },
];
const benefits = ["No setup required", "Cancel anytime", "Free updates"];
return (
New Release
Experience the Future
Join thousands of satisfied customers who have transformed their workflow
{stats.map((stat, index) => (
{stat.value}
{stat.label}
))}
Watch Demo
Streamline Your Workflow with Smart Automation
Boost productivity and reduce manual work with our intelligent automation platform.
Built for modern teams who demand efficiency.
{benefits.map((benefit, index) => (
{benefit}
))}
} color="var(--mantine-primary-color-filled)">
Start Free Trial
Learn More
);
};
================================================
FILE: src/feature/blocks/lib/hero3/attributes.json
================================================
{
"title": "hero3",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
================================================
FILE: src/feature/blocks/lib/hero3/hero3.module.css
================================================
.wrapper {
padding: 2rem 0;
}
.title {
font-size: clamp(2.5rem, 5vw, 4rem);
line-height: 1.1;
font-weight: 900;
}
================================================
FILE: src/feature/blocks/lib/hero3/hero3.tsx
================================================
import { Container, Title, Text, Button, Group, Stack, Box, ThemeIcon, rem, SimpleGrid } from "@mantine/core";
import { ArrowRightIcon, Pencil1Icon, PersonIcon, ChatBubbleIcon, LightningBoltIcon } from "@radix-ui/react-icons";
import classes from "./hero3.module.css";
export const Hero3 = () => {
const features = [
{
icon: ,
title: "Team Collaboration",
description: "Work together seamlessly with real-time tools"
},
{
icon: ,
title: "Smart Communication",
description: "Integrated messaging and feedback systems"
},
{
icon: ,
title: "Rapid Iteration",
description: "Quickly prototype and iterate on designs"
}
];
return (
Design & Collaboration
Design Better Products with{" "}
Creative Tools
Empower your team with intuitive design tools and collaboration features.
From concept to launch, create exceptional user experiences.
}
color="var(--mantine-primary-color-filled)"
>
Start Designing
View Gallery
{features.map((feature, index) => (
{feature.icon}
{feature.title}
{feature.description}
))}
);
};
================================================
FILE: src/feature/blocks/lib/hero4/attributes.json
================================================
{
"title": "hero4",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
================================================
FILE: src/feature/blocks/lib/hero4/hero4.module.css
================================================
.wrapper {
padding: 2rem 0;
}
.title {
font-size: clamp(2.5rem, 5vw, 3.5rem);
line-height: 1.1;
font-weight: 900;
}
================================================
FILE: src/feature/blocks/lib/hero4/hero4.tsx
================================================
import { Container, Title, Text, Button, Group, Stack, Grid, Box, ThemeIcon, Card } from "@mantine/core";
import { ArrowRightIcon, LightningBoltIcon, LockClosedIcon, MixerHorizontalIcon } from "@radix-ui/react-icons";
import classes from "./hero4.module.css";
export const Hero4 = () => {
const highlights = [
{ icon: , title: "Fast", description: "Blazing fast performance" },
{ icon: , title: "Secure", description: "Enterprise-grade security" },
{ icon: , title: "Flexible", description: "Fully customizable" },
];
return (
Everything You Need to Build Modern Applications
A complete toolkit for building production-ready applications.
From development to deployment, we've got you covered.
} color="var(--mantine-primary-color-filled)">
Get Started
Learn More
{highlights.map((item, index) => (
{item.icon}
{item.title}
{item.description}
))}
);
};
================================================
FILE: src/feature/blocks/lib/hero5/attributes.json
================================================
{
"title": "hero5",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
================================================
FILE: src/feature/blocks/lib/hero5/hero5.module.css
================================================
.wrapper {
padding: 2rem 0;
}
.badge {
background: var(--mantine-color-body);
border: 1px solid var(--mantine-color-default-border);
padding: 0.5rem 1rem;
border-radius: var(--mantine-radius-xl);
}
.title {
font-size: clamp(2.5rem, 5vw, 4rem);
line-height: 1.1;
font-weight: 900;
}
================================================
FILE: src/feature/blocks/lib/hero5/hero5.tsx
================================================
import { Container, Title, Text, Button, Group, Stack, ThemeIcon, Box, Divider, rem } from "@mantine/core";
import { RocketIcon, ArrowRightIcon } from "@radix-ui/react-icons";
import classes from "./hero5.module.css";
export const Hero5 = () => {
return (
Next Generation Platform
Build Amazing Products
Experience unparalleled performance and reliability. Our platform empowers teams to create
exceptional digital experiences that users love.
} color="var(--mantine-primary-color-filled)">
Start Building
View Documentation
);
};
================================================
FILE: src/feature/blocks/lib/hero6/attributes.json
================================================
{
"title": "hero6",
"category": "hero",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 6
}
================================================
FILE: src/feature/blocks/lib/hero6/hero6.module.css
================================================
.wrapper {
padding: 2rem 0;
}
.title {
font-size: clamp(2.5rem, 5vw, 4rem);
line-height: 1.1;
font-weight: 900;
}
================================================
FILE: src/feature/blocks/lib/hero6/hero6.tsx
================================================
import { Container, Title, Text, Button, Group, Stack, Box, Avatar, Rating } from "@mantine/core";
import { ArrowRightIcon } from "@radix-ui/react-icons";
import classes from "./hero6.module.css";
export const Hero6 = () => {
const avatars = [
"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png",
"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png",
"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png",
"https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png",
];
return (
{avatars.map((avatar, index) => (
))}
Loved by 2,000+ customers
Transform Your Ideas Into Reality
A powerful platform designed for creators, developers, and entrepreneurs
who want to bring their vision to life without the complexity.
} color="var(--mantine-primary-color-filled)">
Start Free Trial
Watch Demo
No credit card required. Start building in minutes.
);
};
================================================
FILE: src/feature/blocks/lib/index.ts
================================================
export { Hero1 } from "./hero1/hero1";
export { Hero2 } from "./hero2/hero2";
export { Hero3 } from "./hero3/hero3";
export { Hero4 } from "./hero4/hero4";
export { Hero5 } from "./hero5/hero5";
export { Hero6 } from "./hero6/hero6";
export { Feature1 } from "./feature1/feature1";
export { Feature2 } from "./feature2/feature2";
export { Feature3 } from "./feature3/feature3";
export { Feature4 } from "./feature4/feature4";
export { Feature5 } from "./feature5/feature5";
export { Pricing1 } from "./pricing1/pricing1";
export { Pricing2 } from "./pricing2/pricing2";
export { Pricing3 } from "./pricing3/pricing3";
export { Pricing4 } from "./pricing4/pricing4";
export { Pricing5 } from "./pricing5/pricing5";
export { ComingSoon } from "./coming-soon/coming-soon";
export { MeetOurTeam1 } from "./meet-our-team-1/meet-our-team-1";
export { MeetOurTeam2 } from "./meet-our-team-2/meet-our-team-2";
export { MeetOurTeam3 } from "./meet-our-team-3/meet-our-team-3";
export { MeetOurTeam4 } from "./meet-our-team-4/meet-our-team-4";
export { Testimonials1 } from "./testimonials1/testimonials1";
export { Testimonials2 } from "./testimonials2/testimonials2";
export { Testimonials3 } from "./testimonials3/testimonials3";
export { Faq1 } from "./faq1/faq1";
export { Faq2 } from "./faq2/faq2";
export { Faq3 } from "./faq3/faq3";
export { Newsletter1 } from "./newsletter1/newsletter1";
export { Newsletter2 } from "./newsletter2/newsletter2";
================================================
FILE: src/feature/blocks/lib/meet-our-team-1/attributes.json
================================================
{
"title": "meet-our-team-1",
"category": "team",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-1/meet-our-team-1.module.css
================================================
.teamMemberCard {
transition: all 0.3s ease;
background: linear-gradient(145deg, var(--mantine-body-color), var(--mantine-color-gray-2));
border: 1px solid var(--mantine-color-default-border);
}
.teamMemberCard:hover {
transform: translateY(-10px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}
.memberAvatar {
border: 4px solid #fff;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}
.memberName {
color: var(--mantine-primary-color-5);
font-weight: 700;
letter-spacing: -0.5px;
}
.memberRole {
text-transform: uppercase;
font-size: 0.8rem;
letter-spacing: 1px;
}
.memberBio {
font-style: italic;
text-align: center;
}
.socialIcons svg {
color: light-dark(var(--mantine-primary-color-7), var(--mantine-primary-color-5));
opacity: 0.7;
}
.socialIcons a {
transition: color 0.3s ease;
}
.socialIcons a:hover svg {
opacity: 1;
}
.sectionTitle {
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-weight: 900;
text-align: center;
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-1/meet-our-team-1.tsx
================================================
import { Card, Avatar, Text, Group, Stack, Container, Title, SimpleGrid } from "@mantine/core";
import { LinkedInLogoIcon, TwitterLogoIcon, GitHubLogoIcon } from "@radix-ui/react-icons";
import classes from "./meet-our-team-1.module.css";
const teamMembers = [
{
name: "Elena Rodriguez",
role: "Chief Executive Officer",
bio: "Visionary leader with 15 years of tech innovation experience.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png",
socials: {
linkedin: "#",
twitter: "#",
github: "#",
},
},
{
name: "Marcus Chen",
role: "Chief Technology Officer",
bio: "Engineering maestro driving cutting-edge technological solutions.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png",
socials: {
linkedin: "#",
twitter: "#",
github: "#",
},
},
{
name: "Aria Patel",
role: "Design Director",
bio: "Creative genius transforming complex ideas into elegant designs.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png",
socials: {
linkedin: "#",
twitter: "#",
github: "#",
},
},
{
name: "Jackson Wright",
role: "Product Strategy Lead",
bio: "Strategic mastermind connecting user needs with business goals.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png",
socials: {
linkedin: "#",
twitter: "#",
github: "#",
},
},
];
interface IMember {
name: string;
role: string;
bio: string;
image: string;
socials: {
linkedin: string;
twitter: string;
github: string;
};
}
const TeamMemberCard = ({ member }: { member: IMember }) => {
return (
{member.name}
{member.role}
{member.bio}
);
};
export const MeetOurTeam1 = () => {
return (
Meet Our Extraordinary Team
Behind every breakthrough is a passionate team of innovators, dedicated to pushing the boundaries of what's
possible.
{teamMembers.map((member, index) => (
))}
);
};
================================================
FILE: src/feature/blocks/lib/meet-our-team-2/attributes.json
================================================
{
"title": "meet-our-team-2",
"category": "team",
"description": "Team section with hover animations and skill badges",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-2/meet-our-team-2.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--mantine-shadow-md);
}
.avatar {
border: 3px solid var(--mantine-color-default-border);
}
.name {
font-weight: 700;
}
.title {
font-weight: 800;
padding-left: 1rem;
border-left: 4px solid var(--mantine-primary-color-filled);
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-2/meet-our-team-2.tsx
================================================
import { Card, Avatar, Text, Group, Stack, Container, Title, SimpleGrid, Badge, ActionIcon } from "@mantine/core";
import { IconBrandLinkedin, IconBrandTwitter, IconBrandGithub, IconMail } from "@tabler/icons-react";
import classes from "./meet-our-team-2.module.css";
const teamMembers = [
{
name: "Sophia Williams",
role: "Chief Product Officer",
bio: "Building products that matter, with over a decade of startup experience.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_11.png",
skills: ["Product Strategy", "UX Design", "Analytics"],
socials: { linkedin: "#", twitter: "#", github: "#", email: "sophia@example.com" },
},
{
name: "David Kim",
role: "VP Engineering",
bio: "Architecting scalable solutions for tomorrow's challenges.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png",
skills: ["System Design", "Cloud Architecture", "DevOps"],
socials: { linkedin: "#", twitter: "#", github: "#", email: "david@example.com" },
},
{
name: "Maya Thompson",
role: "Head of Marketing",
bio: "Crafting compelling narratives that connect brands with people.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_15.png",
skills: ["Brand Strategy", "Content Marketing", "Growth"],
socials: { linkedin: "#", twitter: "#", github: "#", email: "maya@example.com" },
},
{
name: "Robert Zhang",
role: "Lead Data Scientist",
bio: "Transforming data into actionable insights through AI and ML.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_19.png",
skills: ["Machine Learning", "Data Analysis", "Python"],
socials: { linkedin: "#", twitter: "#", github: "#", email: "robert@example.com" },
},
];
interface IMember {
name: string;
role: string;
bio: string;
image: string;
skills: string[];
socials: { linkedin: string; twitter: string; github: string; email: string };
}
const TeamMemberCard = ({ member }: { member: IMember }) => {
return (
{member.name}
{member.role}
{member.bio}
{member.skills.map((skill, index) => (
{skill}
))}
);
};
export const MeetOurTeam2 = () => {
return (
Our Team
The People Behind Our Success
Meet the talented individuals who are passionate about innovation and committed to delivering excellence.
{teamMembers.map((member, index) => (
))}
);
};
================================================
FILE: src/feature/blocks/lib/meet-our-team-3/attributes.json
================================================
{
"title": "meet-our-team-3",
"category": "team",
"description": "Horizontal card layout team section with contact details",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-3/meet-our-team-3.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--mantine-shadow-md);
}
.imageSection {
background: light-dark(var(--mantine-color-gray-0), var(--mantine-color-dark-6));
min-width: 200px;
}
.content {
flex: 1;
}
.title {
font-weight: 800;
display: inline-block;
position: relative;
padding-bottom: 12px;
}
.title::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 4px;
background: var(--mantine-primary-color-filled);
border-radius: 2px;
}
@media (max-width: 768px) {
.card {
text-align: center;
}
.imageSection {
min-width: auto;
}
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-3/meet-our-team-3.tsx
================================================
import { Card, Avatar, Text, Stack, Container, Title, Flex, Button, Group, Anchor, Badge, ActionIcon } from "@mantine/core";
import { IconBrandLinkedin, IconBrandTwitter, IconBrandGithub, IconMail, IconMapPin } from "@tabler/icons-react";
import classes from "./meet-our-team-3.module.css";
const teamMembers = [
{
name: "Jessica Martinez",
role: "Founder & CEO",
bio: "Serial entrepreneur with a passion for building products that change how people work and live.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/teams_4.png",
location: "San Francisco, CA",
email: "jessica@company.com",
socials: { linkedin: "#", twitter: "#", github: "#" },
},
{
name: "Thomas Anderson",
role: "Chief Technology Officer",
bio: "Former Google engineer leading our technical vision and innovation strategy.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/teams_2.png",
location: "New York, NY",
email: "thomas@company.com",
socials: { linkedin: "#", twitter: "#", github: "#" },
},
{
name: "Emily Chen",
role: "VP of Design",
bio: "Award-winning designer creating intuitive experiences that users love.",
image: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/teams_3.png",
location: "Seattle, WA",
email: "emily@company.com",
socials: { linkedin: "#", twitter: "#", github: "#" },
},
];
interface IMember {
name: string;
role: string;
bio: string;
image: string;
location: string;
email: string;
socials: { linkedin: string; twitter: string; github: string };
}
const TeamMemberCard = ({ member }: { member: IMember }) => {
return (
{member.name}
{member.role}
{member.bio}
{member.location}
{member.email}
Connect
);
};
export const MeetOurTeam3 = () => {
return (
Leadership
Leadership Team
Experienced professionals driving our mission forward with expertise, vision, and dedication
{teamMembers.map((member, index) => (
))}
);
};
================================================
FILE: src/feature/blocks/lib/meet-our-team-4/attributes.json
================================================
{
"title": "meet-our-team-4",
"category": "team",
"description": "Advanced team section with tabs, stats, skills progress and achievements",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-4/meet-our-team-4.module.css
================================================
.card {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: var(--mantine-shadow-md);
}
.title {
font-weight: 800;
display: inline-block;
padding: 0.5rem 1.5rem;
background: var(--mantine-primary-color-light);
border-radius: var(--mantine-radius-md);
}
================================================
FILE: src/feature/blocks/lib/meet-our-team-4/meet-our-team-4.tsx
================================================
import { Card, Avatar, Text, Stack, Container, Title, SimpleGrid, Progress, Tabs, Badge, Group } from "@mantine/core";
import { IconAward } from "@tabler/icons-react";
import classes from "./meet-our-team-4.module.css";
const teamMembers = [
{
name: "Alexandra Foster",
role: "Creative Director",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/notion_7.png",
department: "Design",
stats: { projects: 156, experience: 12, awards: 23 },
skills: [
{ name: "Leadership", value: 95 },
{ name: "Design Thinking", value: 90 },
{ name: "Strategy", value: 88 },
],
achievements: ["Design Excellence Award 2023", "50+ Patents Filed", "100% Client Satisfaction"],
},
{
name: "Marcus Thompson",
role: "Technical Architect",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/notion_9.png",
department: "Engineering",
stats: { projects: 89, experience: 10, awards: 15 },
skills: [
{ name: "Architecture", value: 96 },
{ name: "Cloud Systems", value: 93 },
{ name: "Performance", value: 91 },
],
achievements: ["10M+ Lines of Code", "50+ Successful Launches", "Mentored 100+ Developers"],
},
{
name: "Priya Sharma",
role: "Product Strategist",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/notion_6.png",
department: "Product",
stats: { projects: 67, experience: 8, awards: 18 },
skills: [
{ name: "Market Analysis", value: 94 },
{ name: "User Research", value: 91 },
{ name: "Roadmapping", value: 88 },
],
achievements: ["3x Revenue Growth", "1M+ Users Impacted", "20+ Product Launches"],
},
];
interface IMember {
name: string;
role: string;
avatar: string;
department: string;
stats: { projects: number; experience: number; awards: number };
skills: { name: string; value: number }[];
achievements: string[];
}
const TeamMemberCard = ({ member }: { member: IMember }) => {
return (
{member.department}
{member.name}
{member.role}
Stats
Skills
Awards
{member.stats.projects}
Projects
{member.stats.experience}
Years
{member.stats.awards}
Awards
{member.skills.map((skill, index) => (
{skill.name}
{skill.value}%
))}
{member.achievements.map((achievement, index) => (
{achievement}
))}
);
};
export const MeetOurTeam4 = () => {
return (
Meet Our Visionaries
The brilliant minds behind our success story. Each bringing unique expertise and passion to drive innovation forward.
{teamMembers.map((member, index) => (
))}
);
};
================================================
FILE: src/feature/blocks/lib/newsletter1/attributes.json
================================================
{
"title": "newsletter1",
"category": "newsletter",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
================================================
FILE: src/feature/blocks/lib/newsletter1/newsletter1.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.card {
background: var(--mantine-primary-color-light);
border: 1px solid var(--mantine-color-default-border);
padding: 3rem;
}
.title {
font-size: 2rem;
font-weight: 800;
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.inputGroup {
width: 100%;
max-width: 500px;
}
.input {
flex: 1;
}
.input input {
background-color: var(--mantine-color-body);
}
@media (max-width: 540px) {
.inputGroup {
flex-direction: column;
}
.input {
width: 100%;
}
}
================================================
FILE: src/feature/blocks/lib/newsletter1/newsletter1.tsx
================================================
import { Box, Container, Title, Text, TextInput, Button, Stack, Group, Paper } from "@mantine/core";
import { PaperPlaneIcon, CheckCircledIcon } from "@radix-ui/react-icons";
import classes from "./newsletter1.module.css";
export const Newsletter1 = () => {
const benefits = [
"Weekly tips and insights",
"Exclusive content and offers",
"Early access to new features",
];
return (
Stay in the Loop
Subscribe to our newsletter and never miss an update
{benefits.map((benefit) => (
{benefit}
))}
}
c="var(--mantine-primary-color-contrast)"
>
Subscribe
No spam, unsubscribe at any time.
);
};
================================================
FILE: src/feature/blocks/lib/newsletter2/attributes.json
================================================
{
"title": "newsletter2",
"category": "newsletter",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/newsletter2/newsletter2.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.title {
font-size: 2.25rem;
font-weight: 800;
line-height: 1.2;
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.formCard {
background: var(--mantine-primary-color-light);
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-xl);
padding: 2rem;
}
.formCard input {
background-color: var(--mantine-color-body);
}
================================================
FILE: src/feature/blocks/lib/newsletter2/newsletter2.tsx
================================================
import { Box, Container, Title, Text, TextInput, Button, Stack, Group, Grid, ThemeIcon } from "@mantine/core";
import { EnvelopeClosedIcon, BellIcon, LightningBoltIcon, StarIcon } from "@radix-ui/react-icons";
import classes from "./newsletter2.module.css";
export const Newsletter2 = () => {
const features = [
{
icon: ,
title: "Weekly Updates",
description: "Get the latest news and product updates",
},
{
icon: ,
title: "Pro Tips",
description: "Expert insights to boost your productivity",
},
{
icon: ,
title: "Exclusive Content",
description: "Access content available only to subscribers",
},
];
return (
Newsletter
Get the Latest Updates Delivered to Your Inbox
Join over 10,000 subscribers who receive our weekly newsletter packed with valuable insights and updates.
{features.map((feature) => (
{feature.icon}
{feature.title}
{feature.description}
))}
Subscribe Now
Enter your email to start receiving updates
Subscribe to Newsletter
By subscribing, you agree to our Privacy Policy. Unsubscribe anytime.
);
};
================================================
FILE: src/feature/blocks/lib/pricing1/attributes.json
================================================
{
"title": "pricing1",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
================================================
FILE: src/feature/blocks/lib/pricing1/pricing1.module.css
================================================
.pricingWrapper {
background-color: var(--mantine-body-color);
padding: 4rem 0;
}
.mainTitle {
font-size: 3rem;
font-weight: 900;
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.mainSubtitle {
font-size: 1.2rem;
margin-bottom: 2rem;
}
.billingSwitch {
transform: scale(1.2);
margin: 0 1rem;
}
.pricingCard {
background-color: var(--mantine-body-color);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.05);
transition: all 0.3s ease;
padding: 2rem;
position: relative;
height: 100%;
}
.pricingCard:hover {
transform: translateY(-10px);
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.1);
}
.recommendedCard {
border-color: var(--mantine-color-default-border);
}
.recommendedBadge {
position: absolute;
top: -12px;
right: 4px;
background-color: var(--mantine-primary-color-light);
color: var(--mantine-color-text);
padding: 0rem 0.6rem;
border-radius: 99px;
font-size: 0.6rem;
font-weight: bold;
text-transform: uppercase;
z-index: 10;
letter-spacing: 2px;
line-height: rem(24px);
background: linear-gradient(45deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-0));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.planTitle {
color: var(--mantine-primary-color-4);
}
.price {
background: linear-gradient(45deg, var(--mantine-primary-color-8), var(--mantine-primary-color-4));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
================================================
FILE: src/feature/blocks/lib/pricing1/pricing1.tsx
================================================
import { useState } from "react";
import { Box, Card, Grid, Title, Text, Button, Switch, Divider, Group, Stack, Container } from "@mantine/core";
import { CheckCircledIcon, ArrowRightIcon } from "@radix-ui/react-icons";
import classes from "./pricing1.module.css";
export const Pricing1 = () => {
const [isYearly, setIsYearly] = useState(false);
const plans = [
{
name: "Plus",
subtitle: "For personal use",
monthlyPrice: 19,
yearlyPrice: 15,
annualBilling: {
monthly: 228,
yearly: 180,
},
badgeVariant: "outline",
features: [
"Unlimited basic features",
"Standard support",
"Basic analytics",
"Single user account",
"Lorem ipsum dolor sit.",
],
},
{
name: "Pro",
subtitle: "For professionals",
monthlyPrice: 49,
yearlyPrice: 35,
annualBilling: {
monthly: 588,
yearly: 420,
},
badgeVariant: "filled",
features: [
"Everything in Plus",
"Priority support",
"Advanced analytics",
"Team collaboration",
"Custom integrations",
"Lorem ipsum dolor sit.",
],
recommended: true,
},
];
return (
Pricing Plans
Choose the perfect plan for your needs
Monthly
setIsYearly(!isYearly)}
className={classes.billingSwitch}
/>
Yearly
{plans.map((plan) => (
{plan.name}
{plan.recommended && Most Popular }
{plan.subtitle}
${isYearly ? plan.yearlyPrice : plan.monthlyPrice}
Billed {isYearly ? "yearly" : "monthly"}
{plan.features.map((feature) => (
{feature}
))}
}
fullWidth
{...(plan.badgeVariant === "filled" ? { c: "var(--mantine-primary-color-contrast)" } : {})}
>
Get Started
))}
);
};
================================================
FILE: src/feature/blocks/lib/pricing2/attributes.json
================================================
{
"title": "pricing2",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/pricing2/pricing2.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.card {
background-color: var(--mantine-color-body);
transition: all 0.3s ease;
position: relative;
height: 100%;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.popularCard {
border-color: var(--mantine-primary-color-filled);
border-width: 2px;
}
.popularBadge {
position: absolute;
top: -8px;
left: 50%;
transform: translateX(-50%);
background-color: var(--mantine-primary-color-filled);
color: var(--mantine-primary-color-contrast);
padding: 0.25rem 1rem;
border-radius: 99px;
font-size: 0.75rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
white-space: nowrap;
}
.planName {
color: var(--mantine-color-text);
font-weight: 700;
}
.price {
color: var(--mantine-color-text);
}
.popularPrice {
background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-5));
}
================================================
FILE: src/feature/blocks/lib/pricing2/pricing2.tsx
================================================
import { Box, Card, SimpleGrid, Title, Text, Button, Stack, Group, Container, Divider } from "@mantine/core";
import { CheckCircledIcon, ArrowRightIcon } from "@radix-ui/react-icons";
import classes from "./pricing2.module.css";
export const Pricing2 = () => {
const plans = [
{
name: "Starter",
price: 9,
description: "Perfect for individuals and small projects",
features: [
"Up to 5 projects",
"Basic analytics",
"Email support",
"1GB storage",
"API access",
],
},
{
name: "Professional",
price: 29,
description: "Best for growing teams and businesses",
features: [
"Unlimited projects",
"Advanced analytics",
"Priority support",
"10GB storage",
"API access",
"Custom integrations",
"Team collaboration",
],
popular: true,
},
{
name: "Business",
price: 79,
description: "For large teams with advanced needs",
features: [
"Everything in Professional",
"Unlimited storage",
"24/7 phone support",
"Custom branding",
"SSO authentication",
"Dedicated account manager",
"SLA guarantee",
],
},
];
return (
Simple, Transparent Pricing
Choose the plan that works best for you and your team
{plans.map((plan) => (
{plan.popular && (
Most Popular
)}
{plan.name}
{plan.description}
${plan.price}
/month
{plan.features.map((feature) => (
{feature}
))}
}
{...(plan.popular ? { c: "var(--mantine-primary-color-contrast)" } : {})}
>
Get Started
))}
);
};
================================================
FILE: src/feature/blocks/lib/pricing3/attributes.json
================================================
{
"title": "pricing3",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
================================================
FILE: src/feature/blocks/lib/pricing3/pricing3.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.title {
font-weight: 800;
display: inline-block;
position: relative;
padding-bottom: 12px;
}
.title::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 60px;
height: 4px;
background: var(--mantine-primary-color-filled);
border-radius: 2px;
}
.tableWrapper {
overflow: hidden;
border: 1px solid var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
}
.headerRow {
display: grid;
grid-template-columns: 200px repeat(4, 1fr);
border-bottom: 2px solid var(--mantine-color-default-border);
}
.featureColumn {
padding: 1rem 1.5rem;
display: flex;
align-items: center;
}
.planColumn {
padding: 1.5rem 1rem;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
gap: 0.25rem;
position: relative;
}
.recommendedColumn {
background-color: var(--mantine-primary-color-light);
}
.recommendedLabel {
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
background-color: var(--mantine-primary-color-filled);
color: var(--mantine-primary-color-contrast);
padding: 0.05rem 0.75rem;
border-radius: 0 0 8px 8px;
font-size: 0.65rem;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.price {
background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-7));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.featureRow {
display: grid;
grid-template-columns: 200px repeat(4, 1fr);
border-bottom: 1px solid var(--mantine-color-default-border);
}
.evenRow {
background-color: var(--mantine-color-gray-0);
}
[data-mantine-color-scheme="dark"] .evenRow {
background-color: var(--mantine-color-dark-6);
}
.valueColumn {
padding: 0.75rem 1rem;
display: flex;
align-items: center;
justify-content: center;
}
.recommendedValueColumn {
background-color: var(--mantine-primary-color-light);
}
.ctaRow {
display: grid;
grid-template-columns: 200px repeat(4, 1fr);
padding: 1rem 0;
}
.ctaColumn {
padding: 0.5rem 1rem;
display: flex;
align-items: center;
justify-content: center;
}
@media (max-width: 768px) {
.headerRow,
.featureRow,
.ctaRow {
grid-template-columns: 120px repeat(4, 1fr);
}
.featureColumn {
padding: 0.75rem;
}
.planColumn {
padding: 1rem 0.5rem;
}
}
================================================
FILE: src/feature/blocks/lib/pricing3/pricing3.tsx
================================================
import { Box, Container, Title, Text, Button, Stack, Group, Paper } from "@mantine/core";
import { CheckIcon, Cross2Icon, ArrowRightIcon } from "@radix-ui/react-icons";
import classes from "./pricing3.module.css";
export const Pricing3 = () => {
const plans = [
{ name: "Free", price: 0, description: "For trying out" },
{ name: "Basic", price: 12, description: "For individuals" },
{ name: "Pro", price: 32, description: "For professionals", recommended: true },
{ name: "Enterprise", price: 89, description: "For large teams" },
];
const features = [
{ name: "Projects", values: ["3", "10", "Unlimited", "Unlimited"] },
{ name: "Storage", values: ["500MB", "5GB", "50GB", "Unlimited"] },
{ name: "Team members", values: ["1", "5", "20", "Unlimited"] },
{ name: "API access", values: [false, true, true, true] },
{ name: "Analytics", values: [false, "Basic", "Advanced", "Advanced"] },
{ name: "Priority support", values: [false, false, true, true] },
{ name: "Custom integrations", values: [false, false, true, true] },
{ name: "SSO", values: [false, false, false, true] },
{ name: "Dedicated manager", values: [false, false, false, true] },
];
const renderValue = (value: boolean | string) => {
if (typeof value === "boolean") {
return value ? (
) : (
);
}
return {value} ;
};
return (
Compare Plans
Find the perfect plan for your needs
{/* Header Row */}
Features
{plans.map((plan) => (
{plan.recommended && (
Recommended
)}
{plan.name}
${plan.price}
/mo
{plan.description}
))}
{/* Feature Rows */}
{features.map((feature, index) => (
{feature.name}
{feature.values.map((value, i) => (
{renderValue(value)}
))}
))}
{/* CTA Row */}
{plans.map((plan) => (
}
fullWidth
{...(plan.recommended ? { c: "var(--mantine-primary-color-contrast)" } : {})}
>
Choose {plan.name}
))}
);
};
================================================
FILE: src/feature/blocks/lib/pricing4/attributes.json
================================================
{
"title": "pricing4",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 4
}
================================================
FILE: src/feature/blocks/lib/pricing4/pricing4.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.mainCard {
background-color: var(--mantine-color-body);
transition: all 0.3s ease;
}
.mainCard:hover {
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.priceSection {
min-width: 240px;
padding: 1.5rem;
border-radius: var(--mantine-radius-lg);
background-color: var(--mantine-primary-color-light);
}
.price {
background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-7));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.addonCard {
background-color: var(--mantine-color-body);
transition: all 0.2s ease;
}
.addonCard:hover {
transform: translateY(-3px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.08);
border-color: var(--mantine-primary-color-filled);
}
.addonPrice {
color: var(--mantine-primary-color-filled);
}
================================================
FILE: src/feature/blocks/lib/pricing4/pricing4.tsx
================================================
import { useState } from "react";
import { Box, Card, Container, Title, Text, Button, Stack, Group, Switch, SimpleGrid, Progress, Badge } from "@mantine/core";
import { CheckCircledIcon, ArrowRightIcon, PlusIcon } from "@radix-ui/react-icons";
import classes from "./pricing4.module.css";
export const Pricing4 = () => {
const [isYearly, setIsYearly] = useState(false);
const mainPlan = {
name: "Professional",
monthlyPrice: 49,
yearlyPrice: 39,
description: "Everything you need to grow your business",
features: [
"Unlimited projects",
"Advanced analytics dashboard",
"Priority email & chat support",
"50GB cloud storage",
"API access with 10k requests/day",
"Team collaboration tools",
"Custom branding",
],
usage: [
{ name: "Storage", used: 12, total: 50, unit: "GB" },
{ name: "API Requests", used: 4500, total: 10000, unit: "" },
{ name: "Team Members", used: 8, total: 20, unit: "" },
],
};
const addons = [
{
name: "Extra Storage",
description: "Add 100GB of additional storage",
monthlyPrice: 9,
yearlyPrice: 7,
},
{
name: "API Boost",
description: "Increase to 50k API requests/day",
monthlyPrice: 19,
yearlyPrice: 15,
},
{
name: "White Label",
description: "Remove all branding completely",
monthlyPrice: 29,
yearlyPrice: 23,
},
{
name: "Priority Support",
description: "24/7 phone support & 1hr response",
monthlyPrice: 39,
yearlyPrice: 31,
},
];
return (
One Plan, Full Power
Get everything you need with optional add-ons
Monthly
setIsYearly(!isYearly)}
/>
Yearly
Save 20%
{/* Main Plan Card */}
{mainPlan.name}
Most Popular
{mainPlan.description}
{mainPlan.features.map((feature) => (
{feature}
))}
${isYearly ? mainPlan.yearlyPrice : mainPlan.monthlyPrice}
per month, billed {isYearly ? "yearly" : "monthly"}
}
c="var(--mantine-primary-color-contrast)"
fullWidth
>
Get Started
Current Usage
{mainPlan.usage.map((item) => (
{item.name}
{item.used}{item.unit} / {item.total}{item.unit}
))}
{/* Add-ons Section */}
Optional Add-ons
{addons.map((addon) => (
{addon.name}
{addon.description}
+${isYearly ? addon.yearlyPrice : addon.monthlyPrice}/mo
}
>
Add
))}
);
};
================================================
FILE: src/feature/blocks/lib/pricing5/attributes.json
================================================
{
"title": "pricing5",
"category": "pricing",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 5
}
================================================
FILE: src/feature/blocks/lib/pricing5/pricing5.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.title {
font-weight: 800;
display: inline-block;
padding: 0.5rem 1.5rem;
background: var(--mantine-primary-color-light);
border-radius: var(--mantine-radius-md);
}
.planCard {
background-color: var(--mantine-color-body);
transition: all 0.3s ease;
}
.planCard:hover {
transform: translateY(-3px);
box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}
.highlightedCard {
border-color: var(--mantine-primary-color-filled);
border-width: 2px;
background: linear-gradient(
135deg,
var(--mantine-primary-color-0) 0%,
var(--mantine-color-body) 100%
);
}
[data-mantine-color-scheme="dark"] .highlightedCard {
background: linear-gradient(
135deg,
rgba(var(--mantine-primary-color-filled-rgb), 0.1) 0%,
var(--mantine-color-body) 100%
);
}
.price {
background: linear-gradient(135deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-7));
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
@media (max-width: 768px) {
.planCard {
padding: 1.5rem;
}
}
================================================
FILE: src/feature/blocks/lib/pricing5/pricing5.tsx
================================================
import { useState } from "react";
import { Box, Card, Container, Title, Text, Button, Stack, Group, Switch, Badge, Flex } from "@mantine/core";
import { CheckCircledIcon, ArrowRightIcon } from "@radix-ui/react-icons";
import classes from "./pricing5.module.css";
export const Pricing5 = () => {
const [isYearly, setIsYearly] = useState(false);
const plans = [
{
name: "Starter",
monthlyPrice: 15,
yearlyPrice: 12,
description: "For individuals getting started",
badge: null,
features: ["5 projects", "Basic analytics", "Email support", "1GB storage"],
},
{
name: "Growth",
monthlyPrice: 45,
yearlyPrice: 36,
description: "For growing teams and businesses",
badge: { text: "Best Value", color: "var(--mantine-primary-color-filled)" },
features: ["Unlimited projects", "Advanced analytics", "Priority support", "25GB storage", "API access", "Team collaboration"],
highlighted: true,
},
{
name: "Scale",
monthlyPrice: 99,
yearlyPrice: 79,
description: "For enterprises with advanced needs",
badge: { text: "Most Features", color: "var(--mantine-color-gray-6)" },
features: ["Everything in Growth", "Unlimited storage", "24/7 phone support", "Custom integrations", "SSO & SAML", "Dedicated manager"],
},
];
return (
Choose Your Plan
Scale as you grow with flexible pricing
Monthly
setIsYearly(!isYearly)}
/>
Yearly
Save 20%
{plans.map((plan) => (
{/* Left: Plan name and price */}
{plan.name}
{plan.badge && (
{plan.badge.text}
)}
{plan.description}
${isYearly ? plan.yearlyPrice : plan.monthlyPrice}
/month
{/* Middle: Features */}
{plan.features.map((feature) => (
{feature}
))}
{/* Right: CTA */}
}
miw={160}
{...(plan.highlighted ? { c: "var(--mantine-primary-color-contrast)" } : {})}
>
Get Started
))}
All plans include a 14-day free trial. No credit card required.
);
};
================================================
FILE: src/feature/blocks/lib/testimonials1/attributes.json
================================================
{
"title": "testimonials1",
"category": "testimonials",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 1
}
================================================
FILE: src/feature/blocks/lib/testimonials1/testimonials1.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.title {
font-size: 2.5rem;
font-weight: 900;
background: linear-gradient(180deg, var(--mantine-primary-color-filled), var(--mantine-primary-color-8));
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
}
.card {
background-color: var(--mantine-color-body);
transition: all 0.3s ease;
height: 100%;
}
.card:hover {
transform: translateY(-5px);
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.quoteIcon {
opacity: 0.3;
}
.content {
font-style: italic;
line-height: 1.7;
}
================================================
FILE: src/feature/blocks/lib/testimonials1/testimonials1.tsx
================================================
import { Box, Container, Title, Text, Card, Avatar, Stack, Group, SimpleGrid } from "@mantine/core";
import { StarFilledIcon, QuoteIcon } from "@radix-ui/react-icons";
import classes from "./testimonials1.module.css";
export const Testimonials1 = () => {
const testimonials = [
{
name: "Sarah Johnson",
role: "CEO at TechStart",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png",
content: "This platform has completely transformed how we manage our projects. The intuitive interface and powerful features have boosted our team's productivity by 40%.",
rating: 5,
},
{
name: "Michael Chen",
role: "Product Manager at InnovateCo",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png",
content: "I've tried dozens of similar tools, but nothing comes close. The customer support is exceptional and the regular updates show they truly care about their users.",
rating: 5,
},
{
name: "Emily Rodriguez",
role: "Founder at DesignLab",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png",
content: "Switching to this platform was the best decision we made this year. It's saved us countless hours and helped us deliver projects faster than ever.",
rating: 5,
},
];
return (
What Our Customers Say
Join thousands of satisfied customers who trust us
{testimonials.map((testimonial) => (
{Array.from({ length: testimonial.rating }).map((_, i) => (
))}
{testimonial.content}
{testimonial.name}
{testimonial.role}
))}
);
};
================================================
FILE: src/feature/blocks/lib/testimonials2/attributes.json
================================================
{
"title": "testimonials2",
"category": "testimonials",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 2
}
================================================
FILE: src/feature/blocks/lib/testimonials2/testimonials2.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.card {
background-color: var(--mantine-color-body);
overflow: hidden;
}
.inner {
min-height: 400px;
}
.content {
flex: 1;
}
.quote {
font-style: italic;
line-height: 1.8;
}
.statsSection {
min-width: 200px;
background: var(--mantine-primary-color-light);
border-left: 1px solid var(--mantine-color-default-border);
}
.statValue {
color: var(--mantine-primary-color-filled);
}
@media (max-width: 768px) {
.inner {
flex-direction: column;
}
.statsSection {
flex-direction: row;
border-left: none;
border-top: 1px solid var(--mantine-color-default-border);
}
}
================================================
FILE: src/feature/blocks/lib/testimonials2/testimonials2.tsx
================================================
import { Box, Container, Title, Text, Card, Avatar, Stack, Group } from "@mantine/core";
import { StarFilledIcon } from "@radix-ui/react-icons";
import classes from "./testimonials2.module.css";
export const Testimonials2 = () => {
const testimonial = {
name: "David Park",
role: "CTO at ScaleUp",
company: "ScaleUp Technologies",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png",
content: "We evaluated over 20 different solutions before choosing this platform. The combination of powerful features, excellent performance, and outstanding support made it an easy choice. Our development velocity has increased by 60% since we started using it.",
rating: 5,
};
const stats = [
{ value: "60%", label: "Faster Development" },
{ value: "10K+", label: "Happy Users" },
{ value: "99.9%", label: "Uptime" },
];
return (
Testimonial
Trusted by Industry Leaders
{Array.from({ length: testimonial.rating }).map((_, i) => (
))}
"{testimonial.content}"
{testimonial.name}
{testimonial.role}
{stats.map((stat) => (
{stat.value}
{stat.label}
))}
);
};
================================================
FILE: src/feature/blocks/lib/testimonials3/attributes.json
================================================
{
"title": "testimonials3",
"category": "testimonials",
"canvas": {
"center": true,
"maxWidth": 1200
},
"order": 3
}
================================================
FILE: src/feature/blocks/lib/testimonials3/testimonials3.module.css
================================================
.wrapper {
padding: 4rem 0;
background-color: var(--mantine-color-body);
}
.testimonialCard {
background: var(--mantine-primary-color-light);
border: 1px solid var(--mantine-color-default-border);
max-width: 600px;
width: 100%;
}
.avatar {
border: 3px solid var(--mantine-primary-color-filled);
}
.quote {
font-style: italic;
line-height: 1.8;
}
.navButton {
width: 44px;
height: 44px;
border-radius: 50%;
border: 1px solid var(--mantine-color-default-border);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all 0.2s ease;
background-color: var(--mantine-color-body);
}
.navButton:hover {
border-color: var(--mantine-primary-color-filled);
color: var(--mantine-primary-color-filled);
}
.dot {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: var(--mantine-color-default-border);
cursor: pointer;
transition: all 0.2s ease;
}
.dot:hover {
background-color: var(--mantine-primary-color-3);
}
.activeDot {
background-color: var(--mantine-primary-color-filled);
width: 24px;
border-radius: 10px;
}
================================================
FILE: src/feature/blocks/lib/testimonials3/testimonials3.tsx
================================================
import { Box, Container, Title, Text, Avatar, Stack, Group, Paper } from "@mantine/core";
import { StarFilledIcon, ChevronLeftIcon, ChevronRightIcon } from "@radix-ui/react-icons";
import { useState } from "react";
import classes from "./testimonials3.module.css";
export const Testimonials3 = () => {
const [activeIndex, setActiveIndex] = useState(0);
const testimonials = [
{
name: "Alexandra Wright",
role: "Marketing Director",
company: "GrowthLabs",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png",
content: "The analytics dashboard alone has saved us hours every week. We can now make data-driven decisions in minutes instead of days. Absolutely game-changing for our marketing team.",
rating: 5,
},
{
name: "James Mitchell",
role: "Engineering Lead",
company: "DevStack",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png",
content: "Integration was seamless. Within a day, our entire team was up and running. The API documentation is excellent and the developer experience is top-notch.",
rating: 5,
},
{
name: "Maria Santos",
role: "Operations Manager",
company: "FlowOps",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png",
content: "We've reduced our operational costs by 35% since implementing this solution. The automation features are incredibly powerful yet easy to set up.",
rating: 5,
},
{
name: "Robert Kim",
role: "Startup Founder",
company: "NexGen",
avatar: "https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png",
content: "As a startup, we needed something that could scale with us. This platform has grown with our business perfectly. Couldn't recommend it more highly.",
rating: 5,
},
];
const nextTestimonial = () => {
setActiveIndex((prev) => (prev + 1) % testimonials.length);
};
const prevTestimonial = () => {
setActiveIndex((prev) => (prev - 1 + testimonials.length) % testimonials.length);
};
const active = testimonials[activeIndex];
return (
Loved by Teams Worldwide
See what our customers have to say
{Array.from({ length: active.rating }).map((_, i) => (
))}
"{active.content}"
{active.name}
{active.role} at {active.company}
{testimonials.map((_, index) => (
setActiveIndex(index)}
/>
))}
);
};
================================================
FILE: src/routeTree.gen.ts
================================================
/* eslint-disable */
// @ts-nocheck
// noinspection JSUnusedGlobalSymbols
// This file was automatically generated by TanStack Router.
// You should NOT make any changes in this file as it will be overwritten.
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
// Import Routes
import { Route as rootRoute } from './routes/__root'
import { Route as PlaygroundImport } from './routes/playground'
import { Route as FeedbackImport } from './routes/feedback'
import { Route as BlocksImport } from './routes/blocks'
import { Route as AboutImport } from './routes/about'
import { Route as HowToUseImport } from './routes/how-to-use'
import { Route as IndexImport } from './routes/index'
// Create/Update Routes
const PlaygroundRoute = PlaygroundImport.update({
id: '/playground',
path: '/playground',
getParentRoute: () => rootRoute,
} as any)
const FeedbackRoute = FeedbackImport.update({
id: '/feedback',
path: '/feedback',
getParentRoute: () => rootRoute,
} as any)
const BlocksRoute = BlocksImport.update({
id: '/blocks',
path: '/blocks',
getParentRoute: () => rootRoute,
} as any)
const AboutRoute = AboutImport.update({
id: '/about',
path: '/about',
getParentRoute: () => rootRoute,
} as any)
const HowToUseRoute = HowToUseImport.update({
id: '/how-to-use',
path: '/how-to-use',
getParentRoute: () => rootRoute,
} as any)
const IndexRoute = IndexImport.update({
id: '/',
path: '/',
getParentRoute: () => rootRoute,
} as any)
// Populate the FileRoutesByPath interface
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
'/': {
id: '/'
path: '/'
fullPath: '/'
preLoaderRoute: typeof IndexImport
parentRoute: typeof rootRoute
}
'/about': {
id: '/about'
path: '/about'
fullPath: '/about'
preLoaderRoute: typeof AboutImport
parentRoute: typeof rootRoute
}
'/how-to-use': {
id: '/how-to-use'
path: '/how-to-use'
fullPath: '/how-to-use'
preLoaderRoute: typeof HowToUseImport
parentRoute: typeof rootRoute
}
'/blocks': {
id: '/blocks'
path: '/blocks'
fullPath: '/blocks'
preLoaderRoute: typeof BlocksImport
parentRoute: typeof rootRoute
}
'/feedback': {
id: '/feedback'
path: '/feedback'
fullPath: '/feedback'
preLoaderRoute: typeof FeedbackImport
parentRoute: typeof rootRoute
}
'/playground': {
id: '/playground'
path: '/playground'
fullPath: '/playground'
preLoaderRoute: typeof PlaygroundImport
parentRoute: typeof rootRoute
}
}
}
// Create and export the route tree
export interface FileRoutesByFullPath {
'/': typeof IndexRoute
'/about': typeof AboutRoute
'/how-to-use': typeof HowToUseRoute
'/blocks': typeof BlocksRoute
'/feedback': typeof FeedbackRoute
'/playground': typeof PlaygroundRoute
}
export interface FileRoutesByTo {
'/': typeof IndexRoute
'/about': typeof AboutRoute
'/how-to-use': typeof HowToUseRoute
'/blocks': typeof BlocksRoute
'/feedback': typeof FeedbackRoute
'/playground': typeof PlaygroundRoute
}
export interface FileRoutesById {
__root__: typeof rootRoute
'/': typeof IndexRoute
'/about': typeof AboutRoute
'/how-to-use': typeof HowToUseRoute
'/blocks': typeof BlocksRoute
'/feedback': typeof FeedbackRoute
'/playground': typeof PlaygroundRoute
}
export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath
fullPaths: '/' | '/about' | '/blocks' | '/feedback' | '/playground' |'/how-to-use'
fileRoutesByTo: FileRoutesByTo
to: '/' | '/about' | '/blocks' | '/feedback' | '/playground' | '/how-to-use'
id: '__root__' | '/' | '/about' | '/blocks' | '/feedback' | '/playground' | '/how-to-use'
fileRoutesById: FileRoutesById
}
export interface RootRouteChildren {
IndexRoute: typeof IndexRoute
AboutRoute: typeof AboutRoute
BlocksRoute: typeof BlocksRoute
FeedbackRoute: typeof FeedbackRoute
PlaygroundRoute: typeof PlaygroundRoute
HowToUserRoute: typeof HowToUseRoute
}
const rootRouteChildren: RootRouteChildren = {
IndexRoute: IndexRoute,
AboutRoute: AboutRoute,
BlocksRoute: BlocksRoute,
FeedbackRoute: FeedbackRoute,
PlaygroundRoute: PlaygroundRoute,
HowToUserRoute: typeof HowToUseRoute,
}
export const routeTree = rootRoute
._addFileChildren(rootRouteChildren)
._addFileTypes()
/* ROUTE_MANIFEST_START
{
"routes": {
"__root__": {
"filePath": "__root.tsx",
"children": [
"/",
"/about",
"/blocks",
"/feedback",
"/playground"
]
},
"/": {
"filePath": "index.tsx"
},
"/about": {
"filePath": "about.tsx"
},
"/blocks": {
"filePath": "blocks.tsx"
},
"/feedback": {
"filePath": "feedback.tsx"
},
"/playground": {
"filePath": "playground.tsx"
}
}
}
ROUTE_MANIFEST_END */
================================================
FILE: src/styles/_mantine.scss
================================================
@use "sass:math";
/* Define variables for your breakpoints,
values must be the same as in your theme */
$mantine-breakpoint-xs: "36em";
$mantine-breakpoint-sm: "48em";
$mantine-breakpoint-md: "62em";
$mantine-breakpoint-lg: "75em";
$mantine-breakpoint-xl: "88em";
@function rem($value) {
@return #{math.div(math.div($value, $value * 0 + 1), 16)}rem;
}
@mixin light {
[data-mantine-color-scheme="light"] & {
@content;
}
}
@mixin dark {
[data-mantine-color-scheme="dark"] & {
@content;
}
}
@mixin hover {
@media (hover: hover) {
&:hover {
@content;
}
}
@media (hover: none) {
&:active {
@content;
}
}
}
@mixin smaller-than($breakpoint) {
@media (max-width: $breakpoint) {
@content;
}
}
@mixin larger-than($breakpoint) {
@media (min-width: $breakpoint) {
@content;
}
}
/* Add direction mixins if you need rtl support */
@mixin rtl {
[dir="rtl"] & {
@content;
}
}
@mixin ltr {
[dir="ltr"] & {
@content;
}
}
@mixin mobile {
@include smaller-than($mantine-breakpoint-sm) {
@content;
}
}
@mixin except-mobile {
@include larger-than($mantine-breakpoint-sm) {
@content;
}
}
@mixin tablet {
@include larger-than($mantine-breakpoint-sm) {
@include smaller-than($mantine-breakpoint-lg) {
@content;
}
}
}
@mixin except-tablet {
@include smaller-than($mantine-breakpoint-sm) {
@content;
}
@include larger-than($mantine-breakpoint-lg) {
@content;
}
}
@mixin desktop {
@include larger-than($mantine-breakpoint-lg) {
@content;
}
}
@mixin except-desktop {
@include smaller-than($mantine-breakpoint-lg) {
@content;
}
}
@mixin large-desktop {
@include larger-than($mantine-breakpoint-xl) {
@content;
}
}
@mixin except-large-desktop {
@include smaller-than($mantine-breakpoint-xl) {
@content;
}
}
================================================
FILE: src/styles/fonts.css
================================================
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-Thin.woff2') format('woff2');
font-weight: 100;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-ExtraLight.woff2') format('woff2');
font-weight: 200;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-Light.woff2') format('woff2');
font-weight: 300;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-Medium.woff2') format('woff2');
font-weight: 500;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-SemiBold.woff2') format('woff2');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-ExtraBold.woff2') format('woff2');
font-weight: 800;
font-style: normal;
}
@font-face {
font-family: 'Geist';
src: url('./../assets/fonts/Geist-Black.woff2') format('woff2');
font-weight: 900;
font-style: normal;
}
================================================
FILE: src/styles/index.scss
================================================
@tailwind base;
@tailwind components;
@tailwind utilities;
@import "./_mantine.scss";
:root {
color-scheme: var(--mantine-color-scheme);
font-family: var(--mantine-font-family);
width: 100%;
}
body {
margin: 0;
font-size: var(--mantine-font-size-md);
line-height: var(--mantine-line-height);
background-color: var(--mantine-color-body);
color: var(--mantine-color-text);
-webkit-font-smoothing: var(--mantine-webkit-font-smoothing);
-moz-osx-font-smoothing: var(--mantine-moz-font-smoothing);
opacity: 0;
transition: opacity 0.2s ease-in;
}
body.rendered {
opacity: 1;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
input,
button,
textarea,
select {
font: inherit;
}
button,
select {
text-transform: none;
}
@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #747bff;
}
button {
background-color: #f9f9f9;
}
}
================================================
FILE: src/styles/mantine-styles.css
================================================
================================================
FILE: src/styles/shadcn-styles.css
================================================
/* Checkbox */
.mantine-Checkbox-root {
--checkbox-color: var(--mantine-primary-color-filled);
--checkbox-icon-color: var(--mantine-primary-color-contrast);
.mantine-Checkbox-input {
background-color: transparent;
border-color: var(--checkbox-color);
&[data-indeterminate],
&:checked {
background-color: var(--checkbox-color);
}
&:disabled {
opacity: 0.5;
& + .mantine-Checkbox-icon {
opacity: 0.5;
color: var(--checkbox-icon-color);
}
}
}
.mantine-Checkbox-label {
&[data-disabled] {
color: inherit;
opacity: 0.7;
}
}
&[data-variant="outline"] {
.mantine-Checkbox-input {
background-color: transparent;
& + .mantine-Checkbox-icon {
color: var(--checkbox-color);
}
}
}
}
/* Checkbox Group */
.mantine-CheckboxGroup-root {
.mantine-CheckboxGroup-error {
margin-top: 8px;
}
}
/* Chip */
.mantine-Chip-root {
--chip-color: var(--mantine-primary-color-contrast);
&[data-variant="outline"]:not([data-disabled]) {
.mantine-Chip-label {
background-color: transparent;
--chip-bd: 1px solid var(--mantine-color-default-border);
&:hover {
background-color: var(--mantine-color-default-hover);
}
&:where([data-disabled]) {
--chip-icon-color: var(--mantine-color-text);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
opacity: 0.5;
&:hover {
background-color: transparent;
color: var(--mantine-color-text);
--chip-bd: 1px solid var(--mantine-color-default-border);
--chip-icon-color: var(--mantine-color-text);
}
}
}
}
}
/* Input */
[data-mantine-color-scheme="light"],
[data-mantine-color-scheme="dark"] {
.mantine-Input-wrapper {
--input-disabled-bg: alpha(var(--mantine-color-default-hover), 0.5);
--input-disabled-color: alpha(var(--mantine-color-text), 0.5);
&[data-variant="default"] {
--input-bd: var(--mantine-color-default-border);
--input-bg: transparent;
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant="filled"] {
--input-bd: transparent;
--input-bg: var(--mantine-color-default-hover);
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant="unstyled"] {
--input-bd: transparent;
--input-bg: transparent;
--input-bd-focus: transparent;
}
}
}
/* Color Input */
.mantine-ColorInput-dropdown {
background-color: var(--mantine-color-default);
border-color: var(--mantine-color-default-border);
}
/* Fieldset */
.mantine-Fieldset-root {
border-color: var(--mantine-color-default-border);
background-color: transparent;
&[data-variant="filled"] {
border-color: var(--mantine-color-default-border);
background-color: alpha(var(--mantine-color-default-hover), 0.4);
}
&[data-variant="unstyled"] {
border-color: transparent;
background-color: transparent;
}
}
/* Radio */
.mantine-Radio-root {
.mantine-Radio-radio {
background-color: transparent;
border-color: var(--radio-color);
&:checked {
background-color: var(--radio-color);
border-color: var(--radio-color);
}
& + .mantine-Radio-icon {
color: var(--radio-icon-color);
}
&:disabled {
opacity: 0.5;
}
}
&[data-variant="outline"] {
.mantine-Radio-radio {
background-color: transparent;
border-color: var(--radio-color);
&:checked:not(:disabled) {
background-color: transparent;
border-color: var(--radio-color);
}
&:disabled {
opacity: 0.5;
& + .mantine-Radio-icon {
color: var(--radio-color);
--radio-icon-opacity: 0.5;
}
}
}
}
}
/* Segmented Control */
.mantine-SegmentedControl-root {
background-color: var(--mantine-color-secondary-outline-hover);
.mantine-SegmentedControl-label {
color: var(--mantine-color-dimmed);
&[data-active] {
color: var(--mantine-color-text);
}
}
}
[data-mantine-color-scheme="light"] {
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-black);
}
}
}
}
}
[data-mantine-color-scheme="dark"] {
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-white);
}
}
}
}
}
[data-mantine-color-scheme='light']{
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-black);
}
}
}
}
}
[data-mantine-color-scheme='dark']{
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-white);
}
}
}
}
}
/* Switch */
/* Slider */
[data-mantine-color-scheme="light"],
[data-mantine-color-scheme="dark"] {
.mantine-Slider-root {
--slider-track-bg: var(--mantine-color-secondary-outline-hover);
}
}
.mantine-Slider-root {
.mantine-Slider-trackContainer {
&[data-disabled] {
opacity: 0.5;
}
}
.mantine-Slider-label {
background-color: var(--mantine-color-default) !important;
color: var(--mantine-color-text);
border: 1px solid var(--mantine-color-default-border) !important;
top: -45px;
}
}
/* Pills Input */
.mantine-PillsInput-wrapper {
.mantine-PillsInput-input {
&[data-variant="filled"] {
.mantine-Pill-root {
background-color: var(--mantine-color-body);
}
}
}
}
/* Tags Input */
.mantine-TagsInput-wrapper {
.mantine-TagsInput-input {
&[data-variant="filled"] {
.mantine-Pill-root {
background-color: var(--mantine-color-body);
}
}
}
}
/* ActionIcon */
.mantine-ActionIcon-root {
&:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
border: var(--ai-bd);
opacity: 0.5;
&:active {
transform: none;
}
}
}
/* Button */
.mantine-Button-root {
&:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
border: var(--button-bd);
opacity: 0.5;
}
}
/* Close Button */
.mantine-CloseButton-root {
&[data-variant="subtle"]:where(:not([data-disabled], :disabled)) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
/* NavLink */
.mantine-NavLink-root {
&:hover {
background-color: var(--mantine-color-default-hover);
}
&:where([data-active], [aria-current="page"]) {
background-color: var(--nl-bg);
color: var(--nl-color);
&:hover {
background-color: var(--nl-hover);
}
.description {
--description-opacity: 0.9;
--description-color: var(--nl-color);
}
}
}
/* Pagination */
.mantine-Pagination-root {
.mantine-Pagination-control {
border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
&:hover {
&:where(:not(:disabled, [data-disabled])) {
background-color: var(--mantine-color-default-hover);
}
}
&:where([data-active]) {
background-color: var(--pagination-active-bg);
border-color: var(--pagination-active-bg);
color: var(--pagination-active-color, var(--mantine-primary-color-contrast));
&:hover {
background-color: rgba(from var(--pagination-active-bg) r g b / 0.9);
}
}
}
}
/* Stepper */
.mantine-Stepper-root {
.mantine-Stepper-stepIcon {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
&:where([data-progress]) {
border-color: var(--step-color);
}
&:where([data-completed]) {
color: var(--stepper-icon-color, var(--mantine-color-white));
background-color: var(--step-color);
border-color: var(--step-color);
}
}
}
/* Tabs */
[data-mantine-color-scheme="light"],
[data-mantine-color-scheme="dark"] {
.mantine-Tabs-root {
--tab-border-color: var(--mantine-color-default-border);
&[data-variant="default"] {
--tabs-list-border-width: 2px;
--tab-hover-color: var(--mantine-color-default-hover);
}
&[data-variant="pills"] {
--tabs-list-gap: calc(var(--mantine-spacing-sm) / 2);
--tabs-text-color: var(--mantine-color-body) !important;
--tab-hover-color: var(--mantine-color-default-hover);
}
.mantine-Tabs-tab {
color: var(--mantine-color-dimmed);
&[data-variant="default"],
&[data-variant="outline"] {
&[data-active="true"] {
color: var(--mantine-color-text);
}
&:hover {
background-color: transparent;
color: var(--mantine-color-text);
}
}
&[data-variant="pills"] {
&[data-active="true"] {
color: var(--mantine-primary-color-contrast);
&:hover {
color: var(--mantine-primary-color-contrast);
}
}
&:hover {
color: var(--mantine-color-text);
}
}
}
}
}
/* Notification */
.mantine-Notification-root {
background-color: var(--mantine-color-secondary-filled);
&:where([data-with-border]) {
border: 1px solid var(--mantine-color-default-border);
}
}
/* Progress */
.mantine-Progress-root {
background-color: var(--mantine-color-default-hover);
}
/* Ring Progress */
.mantine-RingProgress-root {
.mantine-RingProgress-curve {
--rp-curve-root-color: var(--mantine-color-default-hover);
}
}
/* SemiCircle Progress */
.mantine-SemiCircleProgress-root {
--scp-empty-segment-color: var(--mantine-color-default-hover);
}
/* Skeleton */
.mantine-Skeleton-root {
&:where([data-visible]) {
&::after {
background-color: var(--mantine-color-default-hover);
}
}
}
/* Drawer */
.mantine-Drawer-root {
.mantine-Drawer-content {
border-right: 1px solid var(--mantine-color-default-border);
border-left: 1px solid var(--mantine-color-default-border);
}
}
/* Hover Card */
.mantine-HoverCard-dropdown {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
/* Menu Dropdown */
.mantine-Menu-dropdown {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
.mantine-Menu-item {
background-color: transparent;
&:where([data-hovered]) {
background-color: var(--menu-item-hover, var(--mantine-color-default-hover));
}
}
.mantine-Menu-divider {
border-color: var(--mantine-color-default-border);
}
}
/* Modal */
.mantine-Modal-root {
.mantine-Modal-content {
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
}
/* Popover Start*/
.mantine-Popover-dropdown {
--popover-border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
}
.mantine-Popover-arrow {
--popover-border-color: var(--mantine-color-default-border);
}
/* Popover End */
/* Tooltip */
.mantine-Tooltip-tooltip {
font-size: var(--mantine-font-size-xs);
padding-top: 0;
padding-bottom: 0;
}
/* Accordion */
.mantine-Accordion-root {
.mantine-Accordion-control {
color: var(--mantine-color-text);
}
.mantine-Accordion-item {
--item-border-color: var(--mantine-color-default-border);
--item-filled-color: var(--mantine-color-default-hover);
}
&[data-variant="default"] {
.mantine-Accordion-control {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
background-color: transparent;
}
}
}
.mantine-Accordion-label {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
text-decoration: underline;
}
}
}
}
&[data-variant="contained"],
&[data-variant="filled"] {
.mantine-Accordion-control {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
}
}
/* Avatar */
.mantine-Avatar-root {
--avatar-bg: var(--mantine-primary-color-light);
--avatar-bd: 1px solid transparent;
--avatar-color: var(--mantine-primary-color-light-color);
}
/* Badge */
.mantine-Badge-root {
--badge-color: var(--mantine-primary-color-contrast);
&[data-variant="dot"] {
background-color: var(--mantine-color-secondary-light);
border-color: var(--mantine-color-secondary-light);
color: var(--mantine-color-text);
}
}
/* Card */
.mantine-Card-root {
background-color: var(--mantine-color-default);
.mantine-Card-section {
border-color: var(--mantine-color-default-border);
}
}
/* Timeline */
.mantine-Timeline-root {
--item-border-color: var(--mantine-color-default-border);
.mantine-Timeline-itemBullet {
border-color: var(--mantine-color-default-border);
&:where([data-with-child]) {
background-color: var(--mantine-color-secondary-light);
}
&:where([data-active]) {
border-color: var(--tli-color, var(--tl-color));
background-color: var(--mantine-color-white);
color: var(--tl-icon-color, var(--mantine-color-white));
&:where([data-with-child]) {
background-color: var(--tli-color, var(--tl-color));
color: var(--tl-icon-color, var(--mantine-color-white));
}
}
}
}
/* Code */
.mantine-Code-root {
background-color: var(--code-bg, var(--mantine-color-secondary-filled));
color: var(--mantine-color-text);
}
/* Table */
.mantine-Table-table {
--table-hover-color: var(--mantine-color-default-hover);
--table-striped-color: var(--mantine-color-default-hover);
--table-border-color: var(--mantine-color-default-border);
&:where([data-with-table-border]) {
border: rem(1px) solid var(--table-border-color);
}
}
/* Title */
.mantine-Title-root,
.mantine-Modal-title,
.mantine-Drawer-title {
letter-spacing: -0.025em;
}
/* Divider */
.mantine-Divider-root {
--divider-color: var(--mantine-color-default-border);
}
/* Paper */
.mantine-Paper-root {
&:where([data-with-border]) {
border: rem(1px) solid var(--mantine-color-default-border);
}
}
/* Date Picker */
.mantine-DatePicker-levelsGroup {
.mantine-DatePicker-calendarHeader {
--dch-control-size-xs: calc(1.25rem * var(--mantine-scale));
--dch-control-size-sm: calc(1.75rem * var(--mantine-scale));
--dch-control-size-md: calc(2.25rem * var(--mantine-scale));
--dch-control-size-lg: calc(2.5rem * var(--mantine-scale));
--dch-control-size-xl: calc(2.75rem * var(--mantine-scale));
max-width: none;
gap: var(--mantine-spacing-xs);
.mantine-DatePicker-calendarHeaderControl {
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
&:hover {
background-color: var(--mantine-color-default-hover) !important;
}
}
.mantine-DatePicker-calendarHeaderLevel {
&:hover {
background-color: var(--mantine-color-default-hover) !important;
}
font-size: var(--mantine-font-size-sm);
}
}
.mantine-DatePicker-month {
border-collapse: separate;
border-spacing: 0 5px;
.mantine-DatePicker-weekdaysRow {
.mantine-DatePicker-weekday {
font-size: var(--mantine-font-size-xs);
}
}
.mantine-DatePicker-monthRow {
margin-top: var(--mantine-spacing-xs);
margin-bottom: var(--mantine-spacing-xs);
.mantine-DatePicker-day {
--day-size-xs: calc(1.5rem * var(--mantine-scale));
--day-size-sm: calc(2rem * var(--mantine-scale));
--day-size-md: calc(2.5rem * var(--mantine-scale));
--day-size-lg: calc(3rem * var(--mantine-scale));
--day-size-xl: calc(3.5rem * var(--mantine-scale));
font-size: calc(var(--day-size) / 2.28);
&:hover:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
background-color: var(--mantine-color-default-hover) !important;
border-radius: var(--mantine-radius-default);
&[data-in-range] {
border-radius: 0;
}
}
&:where([data-selected]):hover:where(:not([data-disabled], [data-static])) {
background-color: var(--mantine-primary-color-filled-hover);
border-radius: var(--mantine-radius-default);
}
&[data-weekend] {
color: var(--mantine-color-text);
}
&[data-last-in-range],
&[data-first-in-range] {
border-radius: var(--mantine-radius-default);
}
}
}
}
.mantine-DatePicker-monthsList {
.mantine-DatePicker-monthsListControl {
--dpc-size-xs: calc(1.5rem * var(--mantine-scale));
--dpc-size-sm: calc(1.96rem * var(--mantine-scale));
--dpc-size-md: calc(2.5rem * var(--mantine-scale));
--dpc-size-lg: calc(3rem * var(--mantine-scale));
--dpc-size-xl: calc(3.5rem * var(--mantine-scale));
&:hover:where(:not([data-disabled], :disabled)) {
background-color: var(--mantine-color-default-hover) !important;
}
}
}
.mantine-DatePicker-yearsList {
.mantine-DatePicker-yearsListControl {
--dpc-size-xs: calc(1.5rem * var(--mantine-scale));
--dpc-size-sm: calc(1.96rem * var(--mantine-scale));
--dpc-size-md: calc(2.5rem * var(--mantine-scale));
--dpc-size-lg: calc(3rem * var(--mantine-scale));
--dpc-size-xl: calc(3.5rem * var(--mantine-scale));
&:hover:where(:not([data-disabled], :disabled)) {
background-color: var(--mantine-color-default-hover) !important;
}
}
}
}
/* Spotlight */
.mantine-Spotlight-root {
.mantine-Spotlight-content {
border: 1px solid var(--mantine-color-default-border);
}
.mantine-Spotlight-actionsList {
border-color: var(--mantine-color-default-border);
}
.mantine-Spotlight-action {
&:where(:not([data-selected])) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
.mantine-Spotlight-footer {
border-color: var(--mantine-color-default-border);
}
}
/* Code Highlight */
.mantine-CodeHighlightTabs-root {
.mantine-CodeHighlightTabs-file {
color: var(--mantine-color-text);
border-color: var(--mantine-color-default-border);
padding: 7px 12px;
font-size: 12px;
&:where([data-active]) {
background-color: var(--mantine-color-default-hover);
color: var(--mantine-color-text);
}
}
.mantine-CodeHighlightTabs-control {
color: var(--mantine-primary-color-contrast);
}
}
/* Chart Tooltip */
.mantine-ChartTooltip-tooltip {
border: 1px solid var(--mantine-color-default-border);
}
================================================
FILE: src/theme-context.tsx
================================================
"use client";
import { MantineColorShade, MantineColorsTuple, MantineProvider, MantineThemeOverride } from "@mantine/core";
import { ShikiProvider } from "@mantinex/shiki";
import React, { createContext, useContext, useEffect, useState } from "react";
import { mantineCssVariableResolver } from "./themes/mantine/mantine-css-variable-resolver";
import { shadcnCssVariableResolver } from "./themes/shadcn/shadcn-css-variable-resolver";
import { getBasePrimaryShade, getBaseTheme, getSecondaryPalette, localStorageTheme } from "./utils/functions";
import { HighlighterGeneric } from "shiki";
// Define the shape of the context
interface ThemeContextType {
theme: MantineThemeOverride;
setTheme: React.Dispatch>;
}
// Create the context
const ThemeContext = createContext(undefined);
// Custom hook to use the theme context
export const useTheme = () => {
const context = useContext(ThemeContext);
if (!context) {
throw new Error("useTheme must be used within a ThemeProvider");
}
return context;
};
// Theme provider component
export const ThemeProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {
const [isHydrated, setIsHydrated] = useState(false);
useEffect(() => {
setIsHydrated(true);
document.body.classList.add("rendered");
}, []);
const baseTheme = getBaseTheme(localStorageTheme?.style);
const [theme, setTheme] = useState(() => {
// Use default values for server-side render
return {
...baseTheme,
primaryColor: baseTheme?.primaryColor,
primaryShade: getBasePrimaryShade(baseTheme?.other?.style as string, baseTheme?.primaryColor),
defaultRadius: baseTheme?.defaultRadius,
colors: {
...baseTheme?.colors,
secondary: getSecondaryPalette(baseTheme?.other?.style as string, "zinc") as unknown as MantineColorsTuple,
dark: getSecondaryPalette(baseTheme?.other?.style as string, "zinc") as unknown as MantineColorsTuple,
},
};
});
useEffect(() => {
if (isHydrated && localStorageTheme) {
const baseTheme = getBaseTheme(localStorageTheme.style);
const initPrimeColor = localStorageTheme.color || baseTheme.primaryColor;
const primaryShade = getBasePrimaryShade(localStorageTheme.style, initPrimeColor);
setTheme({
...baseTheme,
primaryColor: initPrimeColor,
primaryShade: primaryShade,
defaultRadius: localStorageTheme.radius || baseTheme.defaultRadius,
colors: {
...baseTheme.colors,
secondary: getSecondaryPalette(localStorageTheme.style, initPrimeColor) as unknown as MantineColorsTuple,
dark: getSecondaryPalette(localStorageTheme.style, initPrimeColor) as unknown as MantineColorsTuple,
},
});
}
if (!localStorageTheme?.color) {
setTheme(() => ({
...baseTheme,
primaryColor: "zinc",
primaryShade: { light: 8, dark: 0 } as unknown as MantineColorShade,
colors: {
...baseTheme?.colors,
secondary: getSecondaryPalette("shadcn", "zinc") as unknown as MantineColorsTuple,
dark: getSecondaryPalette("shadcn", "zinc") as unknown as MantineColorsTuple,
},
}));
}
}, [isHydrated, localStorageTheme]);
async function loadShiki(): Promise> {
const { getHighlighter } = await import("shikiji");
const shiki = await getHighlighter({
langs: ["tsx", "scss", "html", "bash", "json"],
});
return shiki as unknown as HighlighterGeneric;
}
return (
{children}
);
};
================================================
FILE: src/themes/generated/generatedMantineCssStyles.ts
================================================
export const generatedMantineCssStyles = ``;
================================================
FILE: src/themes/generated/generatedMantineCssVariableResolver.ts
================================================
export const generatedMantineCssVariableResolver = {
blue: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
gray: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
red: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
pink: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
grape: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
violet: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
indigo: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
cyan: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
teal: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
green: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
lime: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
yellow: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`,
orange: `import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});`
};
================================================
FILE: src/themes/generated/generatedMantineTheme.ts
================================================
export const generatedMantineTheme = {
blue: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "blue",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
gray: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "gray",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
red: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "red",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
pink: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "pink",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
grape: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "grape",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
violet: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "violet",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
indigo: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "indigo",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
cyan: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "cyan",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
teal: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "teal",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
green: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "green",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
lime: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "lime",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
yellow: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "yellow",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`,
orange: `import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "orange",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
`
};
================================================
FILE: src/themes/generated/generatedShadcnCssStyles.ts
================================================
export const generatedShadcnCssStyles = `/* Checkbox */
.mantine-Checkbox-root {
--checkbox-color: var(--mantine-primary-color-filled);
--checkbox-icon-color: var(--mantine-primary-color-contrast);
.mantine-Checkbox-input {
background-color: transparent;
border-color: var(--checkbox-color);
&[data-indeterminate],
&:checked {
background-color: var(--checkbox-color);
}
&:disabled {
opacity: 0.5;
& + .mantine-Checkbox-icon {
opacity: 0.5;
color: var(--checkbox-icon-color);
}
}
}
.mantine-Checkbox-label {
&[data-disabled] {
color: inherit;
opacity: 0.7;
}
}
&[data-variant="outline"] {
.mantine-Checkbox-input {
background-color: transparent;
& + .mantine-Checkbox-icon {
color: var(--checkbox-color);
}
}
}
}
/* Checkbox Group */
.mantine-CheckboxGroup-root {
.mantine-CheckboxGroup-error {
margin-top: 8px;
}
}
/* Chip */
.mantine-Chip-root {
--chip-color: var(--mantine-primary-color-contrast);
&[data-variant="outline"]:not([data-disabled]) {
.mantine-Chip-label {
background-color: transparent;
--chip-bd: 1px solid var(--mantine-color-default-border);
&:hover {
background-color: var(--mantine-color-default-hover);
}
&:where([data-disabled]) {
--chip-icon-color: var(--mantine-color-text);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
opacity: 0.5;
&:hover {
background-color: transparent;
color: var(--mantine-color-text);
--chip-bd: 1px solid var(--mantine-color-default-border);
--chip-icon-color: var(--mantine-color-text);
}
}
}
}
}
/* Input */
[data-mantine-color-scheme="light"],
[data-mantine-color-scheme="dark"] {
.mantine-Input-wrapper {
--input-disabled-bg: alpha(var(--mantine-color-default-hover), 0.5);
--input-disabled-color: alpha(var(--mantine-color-text), 0.5);
&[data-variant="default"] {
--input-bd: var(--mantine-color-default-border);
--input-bg: transparent;
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant="filled"] {
--input-bd: transparent;
--input-bg: var(--mantine-color-default-hover);
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant="unstyled"] {
--input-bd: transparent;
--input-bg: transparent;
--input-bd-focus: transparent;
}
}
}
/* Color Input */
.mantine-ColorInput-dropdown {
background-color: var(--mantine-color-default);
border-color: var(--mantine-color-default-border);
}
/* Fieldset */
.mantine-Fieldset-root {
border-color: var(--mantine-color-default-border);
background-color: transparent;
&[data-variant="filled"] {
border-color: var(--mantine-color-default-border);
background-color: alpha(var(--mantine-color-default-hover), 0.4);
}
&[data-variant="unstyled"] {
border-color: transparent;
background-color: transparent;
}
}
/* Radio */
.mantine-Radio-root {
.mantine-Radio-radio {
background-color: transparent;
border-color: var(--radio-color);
&:checked {
background-color: var(--radio-color);
border-color: var(--radio-color);
}
& + .mantine-Radio-icon {
color: var(--radio-icon-color);
}
&:disabled {
opacity: 0.5;
}
}
&[data-variant="outline"] {
.mantine-Radio-radio {
background-color: transparent;
border-color: var(--radio-color);
&:checked:not(:disabled) {
background-color: transparent;
border-color: var(--radio-color);
}
&:disabled {
opacity: 0.5;
& + .mantine-Radio-icon {
color: var(--radio-color);
--radio-icon-opacity: 0.5;
}
}
}
}
}
/* Segmented Control */
.mantine-SegmentedControl-root {
background-color: var(--mantine-color-secondary-outline-hover);
.mantine-SegmentedControl-label {
color: var(--mantine-color-dimmed);
&[data-active] {
color: var(--mantine-color-text);
}
}
}
[data-mantine-color-scheme="light"] {
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-black);
}
}
}
}
}
[data-mantine-color-scheme="dark"] {
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-white);
}
}
}
}
}
[data-mantine-color-scheme='light']{
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-black);
}
}
}
}
}
[data-mantine-color-scheme='dark']{
.mantine-SegmentedControl-root {
.mantine-SegmentedControl-label {
&:where(:not([data-disabled], [data-active], [data-read-only])) {
&:hover {
color: var(--mantine-color-white);
}
}
}
}
}
/* Switch */
/* Slider */
[data-mantine-color-scheme="light"],
[data-mantine-color-scheme="dark"] {
.mantine-Slider-root {
--slider-track-bg: var(--mantine-color-secondary-outline-hover);
}
}
.mantine-Slider-root {
.mantine-Slider-trackContainer {
&[data-disabled] {
opacity: 0.5;
}
}
.mantine-Slider-label {
background-color: var(--mantine-color-default) !important;
color: var(--mantine-color-text);
border: 1px solid var(--mantine-color-default-border) !important;
top: -45px;
}
}
/* Pills Input */
.mantine-PillsInput-wrapper {
.mantine-PillsInput-input {
&[data-variant="filled"] {
.mantine-Pill-root {
background-color: var(--mantine-color-body);
}
}
}
}
/* Tags Input */
.mantine-TagsInput-wrapper {
.mantine-TagsInput-input {
&[data-variant="filled"] {
.mantine-Pill-root {
background-color: var(--mantine-color-body);
}
}
}
}
/* ActionIcon */
.mantine-ActionIcon-root {
&:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
border: var(--ai-bd);
opacity: 0.5;
&:active {
transform: none;
}
}
}
/* Button */
.mantine-Button-root {
&:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
border: var(--button-bd);
opacity: 0.5;
}
}
/* Close Button */
.mantine-CloseButton-root {
&[data-variant="subtle"]:where(:not([data-disabled], :disabled)) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
/* NavLink */
.mantine-NavLink-root {
&:hover {
background-color: var(--mantine-color-default-hover);
}
&:where([data-active], [aria-current="page"]) {
background-color: var(--nl-bg);
color: var(--nl-color);
&:hover {
background-color: var(--nl-hover);
}
.description {
--description-opacity: 0.9;
--description-color: var(--nl-color);
}
}
}
/* Pagination */
.mantine-Pagination-root {
.mantine-Pagination-control {
border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
&:hover {
&:where(:not(:disabled, [data-disabled])) {
background-color: var(--mantine-color-default-hover);
}
}
&:where([data-active]) {
background-color: var(--pagination-active-bg);
border-color: var(--pagination-active-bg);
color: var(--pagination-active-color, var(--mantine-primary-color-contrast));
&:hover {
background-color: rgba(from var(--pagination-active-bg) r g b / 0.9);
}
}
}
}
/* Stepper */
.mantine-Stepper-root {
.mantine-Stepper-stepIcon {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
&:where([data-progress]) {
border-color: var(--step-color);
}
&:where([data-completed]) {
color: var(--stepper-icon-color, var(--mantine-color-white));
background-color: var(--step-color);
border-color: var(--step-color);
}
}
}
/* Tabs */
[data-mantine-color-scheme="light"],
[data-mantine-color-scheme="dark"] {
.mantine-Tabs-root {
--tab-border-color: var(--mantine-color-default-border);
&[data-variant="default"] {
--tabs-list-border-width: 2px;
--tab-hover-color: var(--mantine-color-default-hover);
}
&[data-variant="pills"] {
--tabs-list-gap: calc(var(--mantine-spacing-sm) / 2);
--tabs-text-color: var(--mantine-color-body) !important;
--tab-hover-color: var(--mantine-color-default-hover);
}
.mantine-Tabs-tab {
color: var(--mantine-color-dimmed);
&[data-variant="default"],
&[data-variant="outline"] {
&[data-active="true"] {
color: var(--mantine-color-text);
}
&:hover {
background-color: transparent;
color: var(--mantine-color-text);
}
}
&[data-variant="pills"] {
&[data-active="true"] {
color: var(--mantine-primary-color-contrast);
&:hover {
color: var(--mantine-primary-color-contrast);
}
}
&:hover {
color: var(--mantine-color-text);
}
}
}
}
}
/* Notification */
.mantine-Notification-root {
background-color: var(--mantine-color-secondary-filled);
&:where([data-with-border]) {
border: 1px solid var(--mantine-color-default-border);
}
}
/* Progress */
.mantine-Progress-root {
background-color: var(--mantine-color-default-hover);
}
/* Ring Progress */
.mantine-RingProgress-root {
.mantine-RingProgress-curve {
--rp-curve-root-color: var(--mantine-color-default-hover);
}
}
/* SemiCircle Progress */
.mantine-SemiCircleProgress-root {
--scp-empty-segment-color: var(--mantine-color-default-hover);
}
/* Skeleton */
.mantine-Skeleton-root {
&:where([data-visible]) {
&::after {
background-color: var(--mantine-color-default-hover);
}
}
}
/* Drawer */
.mantine-Drawer-root {
.mantine-Drawer-content {
border-right: 1px solid var(--mantine-color-default-border);
border-left: 1px solid var(--mantine-color-default-border);
}
}
/* Hover Card */
.mantine-HoverCard-dropdown {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
/* Menu Dropdown */
.mantine-Menu-dropdown {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
.mantine-Menu-item {
background-color: transparent;
&:where([data-hovered]) {
background-color: var(--menu-item-hover, var(--mantine-color-default-hover));
}
}
.mantine-Menu-divider {
border-color: var(--mantine-color-default-border);
}
}
/* Modal */
.mantine-Modal-root {
.mantine-Modal-content {
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
}
/* Popover Start*/
.mantine-Popover-dropdown {
--popover-border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
}
.mantine-Popover-arrow {
--popover-border-color: var(--mantine-color-default-border);
}
/* Popover End */
/* Tooltip */
.mantine-Tooltip-tooltip {
font-size: var(--mantine-font-size-xs);
padding-top: 0;
padding-bottom: 0;
}
/* Accordion */
.mantine-Accordion-root {
.mantine-Accordion-control {
color: var(--mantine-color-text);
}
.mantine-Accordion-item {
--item-border-color: var(--mantine-color-default-border);
--item-filled-color: var(--mantine-color-default-hover);
}
&[data-variant="default"] {
.mantine-Accordion-control {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
background-color: transparent;
}
}
}
.mantine-Accordion-label {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
text-decoration: underline;
}
}
}
}
&[data-variant="contained"],
&[data-variant="filled"] {
.mantine-Accordion-control {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
}
}
/* Avatar */
.mantine-Avatar-root {
--avatar-bg: var(--mantine-primary-color-light);
--avatar-bd: 1px solid transparent;
--avatar-color: var(--mantine-primary-color-light-color);
}
/* Badge */
.mantine-Badge-root {
--badge-color: var(--mantine-primary-color-contrast);
&[data-variant="dot"] {
background-color: var(--mantine-color-secondary-light);
border-color: var(--mantine-color-secondary-light);
color: var(--mantine-color-text);
}
}
/* Card */
.mantine-Card-root {
background-color: var(--mantine-color-default);
.mantine-Card-section {
border-color: var(--mantine-color-default-border);
}
}
/* Timeline */
.mantine-Timeline-root {
--item-border-color: var(--mantine-color-default-border);
.mantine-Timeline-itemBullet {
border-color: var(--mantine-color-default-border);
&:where([data-with-child]) {
background-color: var(--mantine-color-secondary-light);
}
&:where([data-active]) {
border-color: var(--tli-color, var(--tl-color));
background-color: var(--mantine-color-white);
color: var(--tl-icon-color, var(--mantine-color-white));
&:where([data-with-child]) {
background-color: var(--tli-color, var(--tl-color));
color: var(--tl-icon-color, var(--mantine-color-white));
}
}
}
}
/* Code */
.mantine-Code-root {
background-color: var(--code-bg, var(--mantine-color-secondary-filled));
color: var(--mantine-color-text);
}
/* Table */
.mantine-Table-table {
--table-hover-color: var(--mantine-color-default-hover);
--table-striped-color: var(--mantine-color-default-hover);
--table-border-color: var(--mantine-color-default-border);
&:where([data-with-table-border]) {
border: rem(1px) solid var(--table-border-color);
}
}
/* Title */
.mantine-Title-root,
.mantine-Modal-title,
.mantine-Drawer-title {
letter-spacing: -0.025em;
}
/* Divider */
.mantine-Divider-root {
--divider-color: var(--mantine-color-default-border);
}
/* Paper */
.mantine-Paper-root {
&:where([data-with-border]) {
border: rem(1px) solid var(--mantine-color-default-border);
}
}
/* Date Picker */
.mantine-DatePicker-levelsGroup {
.mantine-DatePicker-calendarHeader {
--dch-control-size-xs: calc(1.25rem * var(--mantine-scale));
--dch-control-size-sm: calc(1.75rem * var(--mantine-scale));
--dch-control-size-md: calc(2.25rem * var(--mantine-scale));
--dch-control-size-lg: calc(2.5rem * var(--mantine-scale));
--dch-control-size-xl: calc(2.75rem * var(--mantine-scale));
max-width: none;
gap: var(--mantine-spacing-xs);
.mantine-DatePicker-calendarHeaderControl {
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
&:hover {
background-color: var(--mantine-color-default-hover) !important;
}
}
.mantine-DatePicker-calendarHeaderLevel {
&:hover {
background-color: var(--mantine-color-default-hover) !important;
}
font-size: var(--mantine-font-size-sm);
}
}
.mantine-DatePicker-month {
border-collapse: separate;
border-spacing: 0 5px;
.mantine-DatePicker-weekdaysRow {
.mantine-DatePicker-weekday {
font-size: var(--mantine-font-size-xs);
}
}
.mantine-DatePicker-monthRow {
margin-top: var(--mantine-spacing-xs);
margin-bottom: var(--mantine-spacing-xs);
.mantine-DatePicker-day {
--day-size-xs: calc(1.5rem * var(--mantine-scale));
--day-size-sm: calc(2rem * var(--mantine-scale));
--day-size-md: calc(2.5rem * var(--mantine-scale));
--day-size-lg: calc(3rem * var(--mantine-scale));
--day-size-xl: calc(3.5rem * var(--mantine-scale));
font-size: calc(var(--day-size) / 2.28);
&:hover:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
background-color: var(--mantine-color-default-hover) !important;
border-radius: var(--mantine-radius-default);
&[data-in-range] {
border-radius: 0;
}
}
&:where([data-selected]):hover:where(:not([data-disabled], [data-static])) {
background-color: var(--mantine-primary-color-filled-hover);
border-radius: var(--mantine-radius-default);
}
&[data-weekend] {
color: var(--mantine-color-text);
}
&[data-last-in-range],
&[data-first-in-range] {
border-radius: var(--mantine-radius-default);
}
}
}
}
.mantine-DatePicker-monthsList {
.mantine-DatePicker-monthsListControl {
--dpc-size-xs: calc(1.5rem * var(--mantine-scale));
--dpc-size-sm: calc(1.96rem * var(--mantine-scale));
--dpc-size-md: calc(2.5rem * var(--mantine-scale));
--dpc-size-lg: calc(3rem * var(--mantine-scale));
--dpc-size-xl: calc(3.5rem * var(--mantine-scale));
&:hover:where(:not([data-disabled], :disabled)) {
background-color: var(--mantine-color-default-hover) !important;
}
}
}
.mantine-DatePicker-yearsList {
.mantine-DatePicker-yearsListControl {
--dpc-size-xs: calc(1.5rem * var(--mantine-scale));
--dpc-size-sm: calc(1.96rem * var(--mantine-scale));
--dpc-size-md: calc(2.5rem * var(--mantine-scale));
--dpc-size-lg: calc(3rem * var(--mantine-scale));
--dpc-size-xl: calc(3.5rem * var(--mantine-scale));
&:hover:where(:not([data-disabled], :disabled)) {
background-color: var(--mantine-color-default-hover) !important;
}
}
}
}
/* Spotlight */
.mantine-Spotlight-root {
.mantine-Spotlight-content {
border: 1px solid var(--mantine-color-default-border);
}
.mantine-Spotlight-actionsList {
border-color: var(--mantine-color-default-border);
}
.mantine-Spotlight-action {
&:where(:not([data-selected])) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
.mantine-Spotlight-footer {
border-color: var(--mantine-color-default-border);
}
}
/* Code Highlight */
.mantine-CodeHighlightTabs-root {
.mantine-CodeHighlightTabs-file {
color: var(--mantine-color-text);
border-color: var(--mantine-color-default-border);
padding: 7px 12px;
font-size: 12px;
&:where([data-active]) {
background-color: var(--mantine-color-default-hover);
color: var(--mantine-color-text);
}
}
.mantine-CodeHighlightTabs-control {
color: var(--mantine-primary-color-contrast);
}
}
/* Chart Tooltip */
.mantine-ChartTooltip-tooltip {
border: 1px solid var(--mantine-color-default-border);
}
`;
================================================
FILE: src/themes/generated/generatedShadcnCssVariableResolver.ts
================================================
export const generatedShadcnCssVariableResolver = {
zinc: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-zinc-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-zinc-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-zinc-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-zinc-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-zinc-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
slate: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-slate-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-slate-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-slate-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
gray: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-gray-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-gray-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-gray-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
neutral: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-neutral-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-neutral-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-neutral-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-neutral-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-neutral-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
stone: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-stone-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-stone-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-stone-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
red: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-red-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-red-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-red-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-red-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-red-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
rose: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-rose-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-rose-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-rose-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-rose-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-zinc-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-zinc-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-zinc-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-rose-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-zinc-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
orange: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-orange-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-orange-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-orange-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
amber: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-amber-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-amber-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-amber-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-amber-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
yellow: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-yellow-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-yellow-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-yellow-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': '#422006', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': '#422006', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
lime: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-lime-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-lime-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-lime-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-lime-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
green: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-green-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-green-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-green-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-rose-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-zinc-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-zinc-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-zinc-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-green-9)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-zinc-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
emerald: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-emerald-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-emerald-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-emerald-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-emerald-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-stone-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
teal: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-teal-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-teal-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-teal-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-teal-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
cyan: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-cyan-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-cyan-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-cyan-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-cyan-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
sky: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-sky-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-sky-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-sky-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-sky-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
blue: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-blue-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-blue-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-blue-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
indigo: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-indigo-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-indigo-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-indigo-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-indigo-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
violet: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-violet-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-violet-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-violet-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
purple: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-purple-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-purple-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-purple-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-purple-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
fuchsia: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-fuchsia-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-fuchsia-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-fuchsia-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-fuchsia-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`,
pink: `import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-pink-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-pink-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-pink-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-pink-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-8)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-8)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-8)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-8)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-8)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-5)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-5)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-6)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-5)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-5)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-5)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-6)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-5)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-5)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-5)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-5)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-5)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.1)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.1)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.1)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.1)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.1)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.1)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.1)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.1)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.1)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.1)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.1)}",
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.1)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.1)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.1)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.1)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.1)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.1)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.1)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.1)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.1)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.1)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.1)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-gray-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": "{alpha('var(--mantine-color-zinc-0)', 0.9)}",
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": "{alpha('var(--mantine-color-slate-0)', 0.9)}",
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": "{alpha('var(--mantine-color-gray-0)', 0.9)}",
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": "{alpha('var(--mantine-color-neutral-0)', 0.9)}",
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": "{alpha('var(--mantine-color-stone-0)', 0.9)}",
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": "{alpha('var(--mantine-color-red-5)', 0.9)}",
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": "{alpha('var(--mantine-color-rose-5)', 0.9)}",
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": "{alpha('var(--mantine-color-orange-6)', 0.9)}",
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": "{alpha('var(--mantine-color-amber-5)', 0.9)}",
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": "{alpha('var(--mantine-color-yellow-4)', 0.9)}",
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": "{alpha('var(--mantine-color-lime-4)', 0.9)}",
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": "{alpha('var(--mantine-color-green-5)', 0.9)}",
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": "{alpha('var(--mantine-color-emerald-5)', 0.9)}",
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": "{alpha('var(--mantine-color-teal-4)', 0.9)}",
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": "{alpha('var(--mantine-color-cyan-4)', 0.9)}",
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": "{alpha('var(--mantine-color-sky-4)', 0.9)}",
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": "{alpha('var(--mantine-color-blue-5)', 0.9)}",
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": "{alpha('var(--mantine-color-indigo-6)', 0.9)}",
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": "{alpha('var(--mantine-color-violet-6)', 0.9)}",
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": "{alpha('var(--mantine-color-purple-6)', 0.9)}",
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": "{alpha('var(--mantine-color-fuchsia-7)', 0.9)}",
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": "{alpha('var(--mantine-color-pink-6)', 0.9)}",
// all light colors
"--mantine-color-zinc-light": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-zinc-light-hover": "{alpha('var(--mantine-color-zinc-light)', 0.8)}",
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-slate-light-hover": "{alpha('var(--mantine-color-slate-light)', 0.8)}",
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-gray-light-hover": "{alpha('var(--mantine-color-gray-light)', 0.8)}",
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-neutral-light-hover": "{alpha('var(--mantine-color-neutral-light)', 0.8)}",
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-stone-light-hover": "{alpha('var(--mantine-color-stone-light)', 0.8)}",
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-red-light-hover": "{alpha('var(--mantine-color-red-light)', 0.8)}",
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-rose-light-hover": "{alpha('var(--mantine-color-rose-light)', 0.8)}",
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-orange-light-hover": "{alpha('var(--mantine-color-orange-light)', 0.8)}",
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-amber-light-hover": "{alpha('var(--mantine-color-amber-light)', 0.8)}",
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-yellow-light-hover": "{alpha('var(--mantine-color-yellow-light)', 0.8)}",
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-lime-light-hover": "{alpha('var(--mantine-color-lime-light)', 0.8)}",
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-green-light-hover": "{alpha('var(--mantine-color-green-light)', 0.8)}",
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-emerald-light-hover": "{alpha('var(--mantine-color-emerald-light)', 0.8)}",
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-teal-light-hover": "{alpha('var(--mantine-color-teal-light)', 0.8)}",
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-cyan-light-hover": "{alpha('var(--mantine-color-cyan-light)', 0.8)}",
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-sky-light-hover": "{alpha('var(--mantine-color-sky-light)', 0.8)}",
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-blue-light-hover": "{alpha('var(--mantine-color-blue-light)', 0.8)}",
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-indigo-light-hover": "{alpha('var(--mantine-color-indigo-light)', 0.8)}",
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-violet-light-hover": "{alpha('var(--mantine-color-violet-light)', 0.8)}",
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-purple-light-hover": "{alpha('var(--mantine-color-purple-light)', 0.8)}",
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-fuchsia-light-hover": "{alpha('var(--mantine-color-fuchsia-light)', 0.8)}",
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
"--mantine-color-pink-light-hover": "{alpha('var(--mantine-color-pink-light)', 0.8)}",
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": "{alpha('var(--mantine-color-zinc-4)', 0.15)}",
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": "{alpha('var(--mantine-color-slate-4)', 0.15)}",
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": "{alpha('var(--mantine-color-gray-4)', 0.15)}",
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": "{alpha('var(--mantine-color-neutral-4)', 0.15)}",
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": "{alpha('var(--mantine-color-stone-4)', 0.15)}",
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": "{alpha('var(--mantine-color-red-4)', 0.15)}",
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": "{alpha('var(--mantine-color-rose-4)', 0.15)}",
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": "{alpha('var(--mantine-color-orange-4)', 0.15)}",
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": "{alpha('var(--mantine-color-amber-4)', 0.15)}",
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": "{alpha('var(--mantine-color-yellow-4)', 0.15)}",
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": "{alpha('var(--mantine-color-lime-4)', 0.15)}",
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": "{alpha('var(--mantine-color-green-4)', 0.15)}",
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": "{alpha('var(--mantine-color-emerald-4)', 0.15)}",
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": "{alpha('var(--mantine-color-teal-4)', 0.15)}",
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": "{alpha('var(--mantine-color-cyan-4)', 0.15)}",
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": "{alpha('var(--mantine-color-sky-4)', 0.15)}",
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": "{alpha('var(--mantine-color-blue-4)', 0.15)}",
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": "{alpha('var(--mantine-color-indigo-4)', 0.15)}",
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": "{alpha('var(--mantine-color-violet-4)', 0.15)}",
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": "{alpha('var(--mantine-color-purple-4)', 0.15)}",
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": "{alpha('var(--mantine-color-fuchsia-4)', 0.15)}",
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": "{alpha('var(--mantine-color-pink-4)', 0.15)}",
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
`
};
================================================
FILE: src/themes/generated/generatedShadcnTheme.ts
================================================
export const generatedShadcnTheme = {
zinc: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: zincColors,
secondary: zincColors,
dark: zincColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":8,"dark":0},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
slate: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: slateColors,
secondary: slateColors,
dark: slateColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":8,"dark":0},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
gray: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: grayColors,
secondary: grayColors,
dark: grayColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":8,"dark":0},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
neutral: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: neutralColors,
secondary: neutralColors,
dark: neutralColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":8,"dark":0},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
stone: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: stoneColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":8,"dark":0},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
red: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: redColors,
secondary: neutralColors,
dark: neutralColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":5},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
rose: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: roseColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":5},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
orange: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: orangeColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":6},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
amber: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: amberColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":5},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
yellow: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: yellowColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":4,"dark":4},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
lime: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: limeColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":4},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
green: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: greenColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":6,"dark":5},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
emerald: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: emeraldColors,
secondary: stoneColors,
dark: stoneColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":5},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
teal: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: tealColors,
secondary: slateColors,
dark: slateColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":4},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
cyan: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: cyanColors,
secondary: slateColors,
dark: slateColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":4},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
sky: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: skyColors,
secondary: slateColors,
dark: slateColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":4},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
blue: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: blueColors,
secondary: slateColors,
dark: slateColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":6,"dark":5},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
indigo: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: indigoColors,
secondary: grayColors,
dark: grayColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":6},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
violet: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: violetColors,
secondary: grayColors,
dark: grayColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":6},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
purple: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: purpleColors,
secondary: grayColors,
dark: grayColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":6},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
fuchsia: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: fuchsiaColors,
secondary: grayColors,
dark: grayColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":7},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`,
pink: `import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: pinkColors,
secondary: grayColors,
dark: grayColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":6},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? \`var(--mantine-color-\${props.color}-contrast)\`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: \`var(--mantine-color-\${props.color}-filled)\`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return \`var(--mantine-color-\${colorKey}-contrast)\`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-filled)\`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light)\`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? \`var(--mantine-color-\${colorKey}-light-color)\`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? \`var(--mantine-color-\${colorKey}-outline)\`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? \`1px solid var(--mantine-color-\${colorKey}-outline)\`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? \`var(--mantine-color-\${colorKey}-filled)\` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? \`var(--mantine-color-\${colorKey}-contrast)\`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? \`var(--mantine-color-black)\`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? \`var(--mantine-color-\${colorKey}-contrast)\` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? \`var(--mantine-color-\${colorKey}-light)\` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": \`var(--mantine-color-\${colorKey}-\${isNeutralColor ? '3' : 'filled-hover'})\`,
"--mark-bg-dark": \`var(--mantine-color-\${colorKey}-filled)\`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});`
};
================================================
FILE: src/themes/mantine/mantine-css-variable-resolver.ts
================================================
import { CSSVariablesResolver } from "@mantine/core";
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
},
light: {
// variables for light color scheme only
},
dark: {
// variables for dark color scheme only
},
});
================================================
FILE: src/themes/mantine/mantine-theme.ts
================================================
import { Card, Container, createTheme, Paper, rem, Select } from "@mantine/core";
import type { MantineThemeOverride } from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const mantineTheme: MantineThemeOverride = createTheme({
/** Put your mantine theme override here */
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
spacing: {
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
},
primaryColor: "blue",
components: {
/** Put your mantine component override here */
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Paper: Paper.extend({
defaultProps: {
p: "md",
shadow: "xl",
radius: "md",
withBorder: true,
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
radius: "var(--mantine-radius-default)",
withBorder: true,
},
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
},
other: {
style: "mantine",
},
});
================================================
FILE: src/themes/shadcn/shadcn-css-variable-resolver.ts
================================================
import { alpha, CSSVariablesResolver } from '@mantine/core';
import { generateShadcnCSSContrastColorVariables, generateShadcnCSSFilledColorVariables, generateShadcnCSSLightColorVariables, generateShadcnCSSOutlineColorVariables, getDefaultBorderColorDay, getDefaultBorderColorNight, getPrimaryColorLight, getPrimaryColorLightColor, getPrimaryColorLightHover, getPrimaryContrastColorDay, getPrimaryContrastColorNight, getSecondaryLightColorDay, getSecondaryLightColorNight } from '../../utils/theme-functions';
export const shadcnCssVariableResolver: CSSVariablesResolver = (theme) => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': getPrimaryColorLight(theme.primaryColor),
'--mantine-primary-color-light-hover': getPrimaryColorLightHover(theme.primaryColor),
'--mantine-primary-color-light-color': getPrimaryColorLightColor(theme.primaryColor),
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': getPrimaryContrastColorDay(theme.primaryColor), // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': getSecondaryLightColorDay(theme.primaryColor), // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': getDefaultBorderColorDay(theme.primaryColor), // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': getSecondaryLightColorDay(theme.primaryColor), // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
...generateShadcnCSSFilledColorVariables('light'),
// all light colors
...generateShadcnCSSLightColorVariables('light'),
// all outline colors
...generateShadcnCSSOutlineColorVariables('light'),
// all contrast colors
...generateShadcnCSSContrastColorVariables('light'),
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': getPrimaryContrastColorNight(theme.primaryColor), // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': getSecondaryLightColorNight(theme.primaryColor), // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': getDefaultBorderColorNight(theme.primaryColor), // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': getSecondaryLightColorNight(theme.primaryColor), // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
...generateShadcnCSSFilledColorVariables('dark'),
// all light colors
...generateShadcnCSSLightColorVariables('dark'),
// all outline colors
...generateShadcnCSSOutlineColorVariables('dark'),
// all contrast colors
...generateShadcnCSSContrastColorVariables('dark'),
},
});
================================================
FILE: src/themes/shadcn/shadcn-theme.ts
================================================
import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
MantineThemeOverride,
Mark,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
import { amberColors, blueColors, cyanColors, emeraldColors, fuchsiaColors, grayColors, greenColors, indigoColors, limeColors, neutralColors, orangeColors, pinkColors, purpleColors, redColors, roseColors, skyColors, slateColors, stoneColors, tealColors, violetColors, yellowColors, zincColors } from "../../utils/colors";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
export const shadcnTheme: MantineThemeOverride = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: zincColors,
secondary: zincColors,
dark: zincColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: { light: 9, dark: 0 },
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? `var(--mantine-color-${colorKey}-filled)` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? `var(--mantine-color-${colorKey}-filled)`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? `var(--mantine-color-${props.color}-filled)`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? `var(--mantine-color-${props.color}-contrast)`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: `var(--mantine-color-${props.color}-filled)`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return `var(--mantine-color-${colorKey}-contrast)`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return `var(--mantine-color-${colorKey}-contrast)`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-filled)`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? `var(--mantine-color-${colorKey}-light)`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? `var(--mantine-color-${colorKey}-light-color)`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: colorKey
? `var(--mantine-color-${colorKey}-outline)`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? `var(--mantine-color-${colorKey}-outline)`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? `1px solid var(--mantine-color-${colorKey}-outline)`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? `var(--mantine-color-${colorKey}-filled)` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? `var(--mantine-color-${colorKey}-light)` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? `var(--mantine-color-${colorKey}-light)` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": `var(--mantine-color-${colorKey}-${isNeutralColor ? '3' : 'filled-hover'})`,
"--mark-bg-dark": `var(--mantine-color-${colorKey}-filled)`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});
================================================
FILE: src/themes/test/shadcn-css-variable-resolver-test.ts
================================================
import { alpha, CSSVariablesResolver } from '@mantine/core';
export const shadcnCssVariableResolver: CSSVariablesResolver = () => ({
variables: {
// variables that do not depend on color scheme
'--mantine-heading-font-weight': '600',
'--mantine-primary-color-filled-hover': alpha('var(--mantine-primary-color-filled)', 0.9),
'--mantine-primary-color-light': 'var(--mantine-color-sky-light)',
'--mantine-primary-color-light-hover': 'var(--mantine-color-sky-light-hover)',
'--mantine-primary-color-light-color': 'var(--mantine-color-sky-light-color)',
},
light: {
// all variables that depend on light color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-sky-0)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-9)', // used as text color
'--mantine-color-body': 'var(--mantine-color-white)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-10)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-10)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-0)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-1)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-9)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-2)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-10)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-white)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': 'var(--mantine-color-secondary-1)', // used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-1)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-8)', // used as primary light variant's text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-2)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-1)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-filled-hover": alpha('var(--mantine-color-zinc-8)', 0.9),
"--mantine-color-slate-filled": "var(--mantine-color-slate-8)",
"--mantine-color-slate-filled-hover": alpha('var(--mantine-color-slate-8)', 0.9),
"--mantine-color-gray-filled": "var(--mantine-color-gray-8)",
"--mantine-color-gray-filled-hover": alpha('var(--mantine-color-gray-8)', 0.9),
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-filled-hover": alpha('var(--mantine-color-neutral-8)', 0.9),
"--mantine-color-stone-filled": "var(--mantine-color-stone-8)",
"--mantine-color-stone-filled-hover": alpha('var(--mantine-color-stone-8)', 0.9),
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": alpha('var(--mantine-color-red-5)', 0.9),
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": alpha('var(--mantine-color-rose-5)', 0.9),
"--mantine-color-orange-filled": "var(--mantine-color-orange-5)",
"--mantine-color-orange-filled-hover": alpha('var(--mantine-color-orange-5)', 0.9),
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": alpha('var(--mantine-color-amber-5)', 0.9),
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": alpha('var(--mantine-color-yellow-4)', 0.9),
"--mantine-color-lime-filled": "var(--mantine-color-lime-5)",
"--mantine-color-lime-filled-hover": alpha('var(--mantine-color-lime-5)', 0.9),
"--mantine-color-green-filled": "var(--mantine-color-green-6)",
"--mantine-color-green-filled-hover": alpha('var(--mantine-color-green-6)', 0.9),
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": alpha('var(--mantine-color-emerald-5)', 0.9),
"--mantine-color-teal-filled": "var(--mantine-color-teal-5)",
"--mantine-color-teal-filled-hover": alpha('var(--mantine-color-teal-5)', 0.9),
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-filled-hover": alpha('var(--mantine-color-cyan-5)', 0.9),
"--mantine-color-sky-filled": "var(--mantine-color-sky-5)",
"--mantine-color-sky-filled-hover": alpha('var(--mantine-color-sky-5)', 0.9),
"--mantine-color-blue-filled": "var(--mantine-color-blue-6)",
"--mantine-color-blue-filled-hover": alpha('var(--mantine-color-blue-6)', 0.9),
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-filled-hover": alpha('var(--mantine-color-indigo-5)', 0.9),
"--mantine-color-violet-filled": "var(--mantine-color-violet-5)",
"--mantine-color-violet-filled-hover": alpha('var(--mantine-color-violet-5)', 0.9),
"--mantine-color-purple-filled": "var(--mantine-color-purple-5)",
"--mantine-color-purple-filled-hover": alpha('var(--mantine-color-purple-5)', 0.9),
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-filled-hover": alpha('var(--mantine-color-fuchsia-5)', 0.9),
"--mantine-color-pink-filled": "var(--mantine-color-pink-5)",
"--mantine-color-pink-filled-hover": alpha('var(--mantine-color-pink-5)', 0.9),
// all light colors
"--mantine-color-zinc-light": alpha('var(--mantine-color-zinc-4)', 0.1),
"--mantine-color-zinc-light-hover": alpha('var(--mantine-color-zinc-light)', 0.8),
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-6)",
"--mantine-color-slate-light": alpha('var(--mantine-color-slate-4)', 0.1),
"--mantine-color-slate-light-hover": alpha('var(--mantine-color-slate-light)', 0.8),
"--mantine-color-slate-light-color": "var(--mantine-color-slate-6)",
"--mantine-color-gray-light": alpha('var(--mantine-color-gray-4)', 0.1),
"--mantine-color-gray-light-hover": alpha('var(--mantine-color-gray-light)', 0.8),
"--mantine-color-gray-light-color": "var(--mantine-color-gray-6)",
"--mantine-color-neutral-light": alpha('var(--mantine-color-neutral-4)', 0.1),
"--mantine-color-neutral-light-hover": alpha('var(--mantine-color-neutral-light)', 0.8),
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-6)",
"--mantine-color-stone-light": alpha('var(--mantine-color-stone-4)', 0.1),
"--mantine-color-stone-light-hover": alpha('var(--mantine-color-stone-light)', 0.8),
"--mantine-color-stone-light-color": "var(--mantine-color-stone-6)",
"--mantine-color-red-light": alpha('var(--mantine-color-red-4)', 0.1),
"--mantine-color-red-light-hover": alpha('var(--mantine-color-red-light)', 0.8),
"--mantine-color-red-light-color": "var(--mantine-color-red-6)",
"--mantine-color-rose-light": alpha('var(--mantine-color-rose-4)', 0.1),
"--mantine-color-rose-light-hover": alpha('var(--mantine-color-rose-light)', 0.8),
"--mantine-color-rose-light-color": "var(--mantine-color-rose-6)",
"--mantine-color-orange-light": alpha('var(--mantine-color-orange-4)', 0.1),
"--mantine-color-orange-light-hover": alpha('var(--mantine-color-orange-light)', 0.8),
"--mantine-color-orange-light-color": "var(--mantine-color-orange-6)",
"--mantine-color-amber-light": alpha('var(--mantine-color-amber-4)', 0.1),
"--mantine-color-amber-light-hover": alpha('var(--mantine-color-amber-light)', 0.8),
"--mantine-color-amber-light-color": "var(--mantine-color-amber-6)",
"--mantine-color-yellow-light": alpha('var(--mantine-color-yellow-4)', 0.1),
"--mantine-color-yellow-light-hover": alpha('var(--mantine-color-yellow-light)', 0.8),
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-6)",
"--mantine-color-lime-light": alpha('var(--mantine-color-lime-4)', 0.1),
"--mantine-color-lime-light-hover": alpha('var(--mantine-color-lime-light)', 0.8),
"--mantine-color-lime-light-color": "var(--mantine-color-lime-6)",
"--mantine-color-green-light": alpha('var(--mantine-color-green-4)', 0.1),
"--mantine-color-green-light-hover": alpha('var(--mantine-color-green-light)', 0.8),
"--mantine-color-green-light-color": "var(--mantine-color-green-6)",
"--mantine-color-emerald-light": alpha('var(--mantine-color-emerald-4)', 0.1),
"--mantine-color-emerald-light-hover": alpha('var(--mantine-color-emerald-light)', 0.8),
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-6)",
"--mantine-color-teal-light": alpha('var(--mantine-color-teal-4)', 0.1),
"--mantine-color-teal-light-hover": alpha('var(--mantine-color-teal-light)', 0.8),
"--mantine-color-teal-light-color": "var(--mantine-color-teal-6)",
"--mantine-color-cyan-light": alpha('var(--mantine-color-cyan-4)', 0.1),
"--mantine-color-cyan-light-hover": alpha('var(--mantine-color-cyan-light)', 0.8),
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-6)",
"--mantine-color-sky-light": alpha('var(--mantine-color-sky-4)', 0.1),
"--mantine-color-sky-light-hover": alpha('var(--mantine-color-sky-light)', 0.8),
"--mantine-color-sky-light-color": "var(--mantine-color-sky-6)",
"--mantine-color-blue-light": alpha('var(--mantine-color-blue-4)', 0.1),
"--mantine-color-blue-light-hover": alpha('var(--mantine-color-blue-light)', 0.8),
"--mantine-color-blue-light-color": "var(--mantine-color-blue-6)",
"--mantine-color-indigo-light": alpha('var(--mantine-color-indigo-4)', 0.1),
"--mantine-color-indigo-light-hover": alpha('var(--mantine-color-indigo-light)', 0.8),
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-6)",
"--mantine-color-violet-light": alpha('var(--mantine-color-violet-4)', 0.1),
"--mantine-color-violet-light-hover": alpha('var(--mantine-color-violet-light)', 0.8),
"--mantine-color-violet-light-color": "var(--mantine-color-violet-6)",
"--mantine-color-purple-light": alpha('var(--mantine-color-purple-4)', 0.1),
"--mantine-color-purple-light-hover": alpha('var(--mantine-color-purple-light)', 0.8),
"--mantine-color-purple-light-color": "var(--mantine-color-purple-6)",
"--mantine-color-fuchsia-light": alpha('var(--mantine-color-fuchsia-4)', 0.1),
"--mantine-color-fuchsia-light-hover": alpha('var(--mantine-color-fuchsia-light)', 0.8),
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-6)",
"--mantine-color-pink-light": alpha('var(--mantine-color-pink-4)', 0.1),
"--mantine-color-pink-light-hover": alpha('var(--mantine-color-pink-light)', 0.8),
"--mantine-color-pink-light-color": "var(--mantine-color-pink-6)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-8)",
"--mantine-color-zinc-outline-hover": alpha('var(--mantine-color-zinc-4)', 0.1),
"--mantine-color-slate-outline": "var(--mantine-color-slate-8)",
"--mantine-color-slate-outline-hover": alpha('var(--mantine-color-slate-4)', 0.1),
"--mantine-color-gray-outline": "var(--mantine-color-gray-8)",
"--mantine-color-gray-outline-hover": alpha('var(--mantine-color-gray-4)', 0.1),
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-8)",
"--mantine-color-neutral-outline-hover": alpha('var(--mantine-color-neutral-4)', 0.1),
"--mantine-color-stone-outline": "var(--mantine-color-stone-8)",
"--mantine-color-stone-outline-hover": alpha('var(--mantine-color-stone-4)', 0.1),
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": alpha('var(--mantine-color-red-4)', 0.1),
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": alpha('var(--mantine-color-rose-4)', 0.1),
"--mantine-color-orange-outline": "var(--mantine-color-orange-5)",
"--mantine-color-orange-outline-hover": alpha('var(--mantine-color-orange-4)', 0.1),
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": alpha('var(--mantine-color-amber-4)', 0.1),
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": alpha('var(--mantine-color-yellow-4)', 0.1),
"--mantine-color-lime-outline": "var(--mantine-color-lime-5)",
"--mantine-color-lime-outline-hover": alpha('var(--mantine-color-lime-4)', 0.1),
"--mantine-color-green-outline": "var(--mantine-color-green-6)",
"--mantine-color-green-outline-hover": alpha('var(--mantine-color-green-4)', 0.1),
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": alpha('var(--mantine-color-emerald-4)', 0.1),
"--mantine-color-teal-outline": "var(--mantine-color-teal-5)",
"--mantine-color-teal-outline-hover": alpha('var(--mantine-color-teal-4)', 0.1),
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-5)",
"--mantine-color-cyan-outline-hover": alpha('var(--mantine-color-cyan-4)', 0.1),
"--mantine-color-sky-outline": "var(--mantine-color-sky-5)",
"--mantine-color-sky-outline-hover": alpha('var(--mantine-color-sky-4)', 0.1),
"--mantine-color-blue-outline": "var(--mantine-color-blue-6)",
"--mantine-color-blue-outline-hover": alpha('var(--mantine-color-blue-4)', 0.1),
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-5)",
"--mantine-color-indigo-outline-hover": alpha('var(--mantine-color-indigo-4)', 0.1),
"--mantine-color-violet-outline": "var(--mantine-color-violet-5)",
"--mantine-color-violet-outline-hover": alpha('var(--mantine-color-violet-4)', 0.1),
"--mantine-color-purple-outline": "var(--mantine-color-purple-5)",
"--mantine-color-purple-outline-hover": alpha('var(--mantine-color-purple-4)', 0.1),
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-5)",
"--mantine-color-fuchsia-outline-hover": alpha('var(--mantine-color-fuchsia-4)', 0.1),
"--mantine-color-pink-outline": "var(--mantine-color-pink-5)",
"--mantine-color-pink-outline-hover": alpha('var(--mantine-color-pink-4)', 0.1),
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-0)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-0)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-amber-0)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-lime-0)",
"--mantine-color-green-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-emerald-contrast": "var(--mantine-color-emerald-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-teal-0)",
"--mantine-color-cyan-contrast": "var(--mantine-color-cyan-0)",
"--mantine-color-sky-contrast": "var(--mantine-color-sky-0)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-indigo-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-purple-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-fuchsia-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-pink-0)",
},
dark: {
// all variables that depend on dark color scheme
'--mantine-primary-color-contrast': 'var(--mantine-color-slate-8)', // used as primary color contrast
'--mantine-color-text': 'var(--mantine-color-secondary-0)', // used as text color
'--mantine-color-body': 'var(--mantine-color-secondary-9)', // used as body color
'--mantine-color-error': 'var(--mantine-color-error-10)', // used as error color
'--mantine-color-placeholder': 'var(--mantine-color-secondary-4)', // used as placeholder color
'--mantine-color-anchor': 'var(--mantine-color-secondary-4)', // used as anchor color
'--mantine-color-default': 'var(--mantine-color-secondary-9)', // used as default surface color
'--mantine-color-default-hover': 'var(--mantine-color-secondary-7)', // used as default hover color
'--mantine-color-default-color': 'var(--mantine-color-secondary-1)', // used as default text color
'--mantine-color-default-border': 'var(--mantine-color-secondary-7)', // used as default border color
'--mantine-color-dimmed': 'var(--mantine-color-secondary-4)', // used as dimmed text color
'--mantine-color-secondary-filled': 'var(--mantine-color-secondary-8)', // used as secondary surface color
'--mantine-color-secondary-filled-hover': alpha('var(--mantine-color-secondary-filled)', 0.9), //used as secondary hover color
'--mantine-color-secondary-light': 'var(--mantine-color-secondary-7)', // used as primary light color
'--mantine-color-secondary-light-hover': alpha('var(--mantine-color-secondary-light)', 0.8), // used as primary light hover color
'--mantine-color-secondary-text': 'var(--mantine-primary-color-contrast)', // can be used as secondary text color
'--mantine-color-secondary-light-color': 'var(--mantine-color-secondary-0)', // used as primary light text color
'--mantine-color-secondary-outline': 'var(--mantine-color-secondary-7)',
'--mantine-color-secondary-outline-hover': 'var(--mantine-color-secondary-7)',
// all filled colors
"--mantine-color-zinc-filled": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-filled-hover": alpha('var(--mantine-color-zinc-0)', 0.9),
"--mantine-color-slate-filled": "var(--mantine-color-slate-0)",
"--mantine-color-slate-filled-hover": alpha('var(--mantine-color-slate-0)', 0.9),
"--mantine-color-gray-filled": "var(--mantine-color-gray-0)",
"--mantine-color-gray-filled-hover": alpha('var(--mantine-color-gray-0)', 0.9),
"--mantine-color-neutral-filled": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-filled-hover": alpha('var(--mantine-color-neutral-0)', 0.9),
"--mantine-color-stone-filled": "var(--mantine-color-stone-0)",
"--mantine-color-stone-filled-hover": alpha('var(--mantine-color-stone-0)', 0.9),
"--mantine-color-red-filled": "var(--mantine-color-red-5)",
"--mantine-color-red-filled-hover": alpha('var(--mantine-color-red-5)', 0.9),
"--mantine-color-rose-filled": "var(--mantine-color-rose-5)",
"--mantine-color-rose-filled-hover": alpha('var(--mantine-color-rose-5)', 0.9),
"--mantine-color-orange-filled": "var(--mantine-color-orange-6)",
"--mantine-color-orange-filled-hover": alpha('var(--mantine-color-orange-6)', 0.9),
"--mantine-color-amber-filled": "var(--mantine-color-amber-5)",
"--mantine-color-amber-filled-hover": alpha('var(--mantine-color-amber-5)', 0.9),
"--mantine-color-yellow-filled": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-filled-hover": alpha('var(--mantine-color-yellow-4)', 0.9),
"--mantine-color-lime-filled": "var(--mantine-color-lime-4)",
"--mantine-color-lime-filled-hover": alpha('var(--mantine-color-lime-4)', 0.9),
"--mantine-color-green-filled": "var(--mantine-color-green-5)",
"--mantine-color-green-filled-hover": alpha('var(--mantine-color-green-5)', 0.9),
"--mantine-color-emerald-filled": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-filled-hover": alpha('var(--mantine-color-emerald-5)', 0.9),
"--mantine-color-teal-filled": "var(--mantine-color-teal-4)",
"--mantine-color-teal-filled-hover": alpha('var(--mantine-color-teal-4)', 0.9),
"--mantine-color-cyan-filled": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-filled-hover": alpha('var(--mantine-color-cyan-4)', 0.9),
"--mantine-color-sky-filled": "var(--mantine-color-sky-4)",
"--mantine-color-sky-filled-hover": alpha('var(--mantine-color-sky-4)', 0.9),
"--mantine-color-blue-filled": "var(--mantine-color-blue-5)",
"--mantine-color-blue-filled-hover": alpha('var(--mantine-color-blue-5)', 0.9),
"--mantine-color-indigo-filled": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-filled-hover": alpha('var(--mantine-color-indigo-6)', 0.9),
"--mantine-color-violet-filled": "var(--mantine-color-violet-6)",
"--mantine-color-violet-filled-hover": alpha('var(--mantine-color-violet-6)', 0.9),
"--mantine-color-purple-filled": "var(--mantine-color-purple-6)",
"--mantine-color-purple-filled-hover": alpha('var(--mantine-color-purple-6)', 0.9),
"--mantine-color-fuchsia-filled": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-filled-hover": alpha('var(--mantine-color-fuchsia-7)', 0.9),
"--mantine-color-pink-filled": "var(--mantine-color-pink-6)",
"--mantine-color-pink-filled-hover": alpha('var(--mantine-color-pink-6)', 0.9),
// all light colors
"--mantine-color-zinc-light": alpha('var(--mantine-color-zinc-4)', 0.15),
"--mantine-color-zinc-light-hover": alpha('var(--mantine-color-zinc-light)', 0.8),
"--mantine-color-zinc-light-color": "var(--mantine-color-zinc-3)",
"--mantine-color-slate-light": alpha('var(--mantine-color-slate-4)', 0.15),
"--mantine-color-slate-light-hover": alpha('var(--mantine-color-slate-light)', 0.8),
"--mantine-color-slate-light-color": "var(--mantine-color-slate-3)",
"--mantine-color-gray-light": alpha('var(--mantine-color-gray-4)', 0.15),
"--mantine-color-gray-light-hover": alpha('var(--mantine-color-gray-light)', 0.8),
"--mantine-color-gray-light-color": "var(--mantine-color-gray-3)",
"--mantine-color-neutral-light": alpha('var(--mantine-color-neutral-4)', 0.15),
"--mantine-color-neutral-light-hover": alpha('var(--mantine-color-neutral-light)', 0.8),
"--mantine-color-neutral-light-color": "var(--mantine-color-neutral-3)",
"--mantine-color-stone-light": alpha('var(--mantine-color-stone-4)', 0.15),
"--mantine-color-stone-light-hover": alpha('var(--mantine-color-stone-light)', 0.8),
"--mantine-color-stone-light-color": "var(--mantine-color-stone-3)",
"--mantine-color-red-light": alpha('var(--mantine-color-red-4)', 0.15),
"--mantine-color-red-light-hover": alpha('var(--mantine-color-red-light)', 0.8),
"--mantine-color-red-light-color": "var(--mantine-color-red-3)",
"--mantine-color-rose-light": alpha('var(--mantine-color-rose-4)', 0.15),
"--mantine-color-rose-light-hover": alpha('var(--mantine-color-rose-light)', 0.8),
"--mantine-color-rose-light-color": "var(--mantine-color-rose-3)",
"--mantine-color-orange-light": alpha('var(--mantine-color-orange-4)', 0.15),
"--mantine-color-orange-light-hover": alpha('var(--mantine-color-orange-light)', 0.8),
"--mantine-color-orange-light-color": "var(--mantine-color-orange-3)",
"--mantine-color-amber-light": alpha('var(--mantine-color-amber-4)', 0.15),
"--mantine-color-amber-light-hover": alpha('var(--mantine-color-amber-light)', 0.8),
"--mantine-color-amber-light-color": "var(--mantine-color-amber-3)",
"--mantine-color-yellow-light": alpha('var(--mantine-color-yellow-4)', 0.15),
"--mantine-color-yellow-light-hover": alpha('var(--mantine-color-yellow-light)', 0.8),
"--mantine-color-yellow-light-color": "var(--mantine-color-yellow-3)",
"--mantine-color-lime-light": alpha('var(--mantine-color-lime-4)', 0.15),
"--mantine-color-lime-light-hover": alpha('var(--mantine-color-lime-light)', 0.8),
"--mantine-color-lime-light-color": "var(--mantine-color-lime-3)",
"--mantine-color-green-light": alpha('var(--mantine-color-green-4)', 0.15),
"--mantine-color-green-light-hover": alpha('var(--mantine-color-green-light)', 0.8),
"--mantine-color-green-light-color": "var(--mantine-color-green-3)",
"--mantine-color-emerald-light": alpha('var(--mantine-color-emerald-4)', 0.15),
"--mantine-color-emerald-light-hover": alpha('var(--mantine-color-emerald-light)', 0.8),
"--mantine-color-emerald-light-color": "var(--mantine-color-emerald-3)",
"--mantine-color-teal-light": alpha('var(--mantine-color-teal-4)', 0.15),
"--mantine-color-teal-light-hover": alpha('var(--mantine-color-teal-light)', 0.8),
"--mantine-color-teal-light-color": "var(--mantine-color-teal-3)",
"--mantine-color-cyan-light": alpha('var(--mantine-color-cyan-4)', 0.15),
"--mantine-color-cyan-light-hover": alpha('var(--mantine-color-cyan-light)', 0.8),
"--mantine-color-cyan-light-color": "var(--mantine-color-cyan-3)",
"--mantine-color-sky-light": alpha('var(--mantine-color-sky-4)', 0.15),
"--mantine-color-sky-light-hover": alpha('var(--mantine-color-sky-light)', 0.8),
"--mantine-color-sky-light-color": "var(--mantine-color-sky-3)",
"--mantine-color-blue-light": alpha('var(--mantine-color-blue-4)', 0.15),
"--mantine-color-blue-light-hover": alpha('var(--mantine-color-blue-light)', 0.8),
"--mantine-color-blue-light-color": "var(--mantine-color-blue-3)",
"--mantine-color-indigo-light": alpha('var(--mantine-color-indigo-4)', 0.15),
"--mantine-color-indigo-light-hover": alpha('var(--mantine-color-indigo-light)', 0.8),
"--mantine-color-indigo-light-color": "var(--mantine-color-indigo-3)",
"--mantine-color-violet-light": alpha('var(--mantine-color-violet-4)', 0.15),
"--mantine-color-violet-light-hover": alpha('var(--mantine-color-violet-light)', 0.8),
"--mantine-color-violet-light-color": "var(--mantine-color-violet-3)",
"--mantine-color-purple-light": alpha('var(--mantine-color-purple-4)', 0.15),
"--mantine-color-purple-light-hover": alpha('var(--mantine-color-purple-light)', 0.8),
"--mantine-color-purple-light-color": "var(--mantine-color-purple-3)",
"--mantine-color-fuchsia-light": alpha('var(--mantine-color-fuchsia-4)', 0.15),
"--mantine-color-fuchsia-light-hover": alpha('var(--mantine-color-fuchsia-light)', 0.8),
"--mantine-color-fuchsia-light-color": "var(--mantine-color-fuchsia-3)",
"--mantine-color-pink-light": alpha('var(--mantine-color-pink-4)', 0.15),
"--mantine-color-pink-light-hover": alpha('var(--mantine-color-pink-light)', 0.8),
"--mantine-color-pink-light-color": "var(--mantine-color-pink-3)",
// all outline colors
"--mantine-color-zinc-outline": "var(--mantine-color-zinc-0)",
"--mantine-color-zinc-outline-hover": alpha('var(--mantine-color-zinc-4)', 0.15),
"--mantine-color-slate-outline": "var(--mantine-color-slate-0)",
"--mantine-color-slate-outline-hover": alpha('var(--mantine-color-slate-4)', 0.15),
"--mantine-color-gray-outline": "var(--mantine-color-gray-0)",
"--mantine-color-gray-outline-hover": alpha('var(--mantine-color-gray-4)', 0.15),
"--mantine-color-neutral-outline": "var(--mantine-color-neutral-0)",
"--mantine-color-neutral-outline-hover": alpha('var(--mantine-color-neutral-4)', 0.15),
"--mantine-color-stone-outline": "var(--mantine-color-stone-0)",
"--mantine-color-stone-outline-hover": alpha('var(--mantine-color-stone-4)', 0.15),
"--mantine-color-red-outline": "var(--mantine-color-red-5)",
"--mantine-color-red-outline-hover": alpha('var(--mantine-color-red-4)', 0.15),
"--mantine-color-rose-outline": "var(--mantine-color-rose-5)",
"--mantine-color-rose-outline-hover": alpha('var(--mantine-color-rose-4)', 0.15),
"--mantine-color-orange-outline": "var(--mantine-color-orange-6)",
"--mantine-color-orange-outline-hover": alpha('var(--mantine-color-orange-4)', 0.15),
"--mantine-color-amber-outline": "var(--mantine-color-amber-5)",
"--mantine-color-amber-outline-hover": alpha('var(--mantine-color-amber-4)', 0.15),
"--mantine-color-yellow-outline": "var(--mantine-color-yellow-4)",
"--mantine-color-yellow-outline-hover": alpha('var(--mantine-color-yellow-4)', 0.15),
"--mantine-color-lime-outline": "var(--mantine-color-lime-4)",
"--mantine-color-lime-outline-hover": alpha('var(--mantine-color-lime-4)', 0.15),
"--mantine-color-green-outline": "var(--mantine-color-green-5)",
"--mantine-color-green-outline-hover": alpha('var(--mantine-color-green-4)', 0.15),
"--mantine-color-emerald-outline": "var(--mantine-color-emerald-5)",
"--mantine-color-emerald-outline-hover": alpha('var(--mantine-color-emerald-4)', 0.15),
"--mantine-color-teal-outline": "var(--mantine-color-teal-4)",
"--mantine-color-teal-outline-hover": alpha('var(--mantine-color-teal-4)', 0.15),
"--mantine-color-cyan-outline": "var(--mantine-color-cyan-4)",
"--mantine-color-cyan-outline-hover": alpha('var(--mantine-color-cyan-4)', 0.15),
"--mantine-color-sky-outline": "var(--mantine-color-sky-4)",
"--mantine-color-sky-outline-hover": alpha('var(--mantine-color-sky-4)', 0.15),
"--mantine-color-blue-outline": "var(--mantine-color-blue-5)",
"--mantine-color-blue-outline-hover": alpha('var(--mantine-color-blue-4)', 0.15),
"--mantine-color-indigo-outline": "var(--mantine-color-indigo-6)",
"--mantine-color-indigo-outline-hover": alpha('var(--mantine-color-indigo-4)', 0.15),
"--mantine-color-violet-outline": "var(--mantine-color-violet-6)",
"--mantine-color-violet-outline-hover": alpha('var(--mantine-color-violet-4)', 0.15),
"--mantine-color-purple-outline": "var(--mantine-color-purple-6)",
"--mantine-color-purple-outline-hover": alpha('var(--mantine-color-purple-4)', 0.15),
"--mantine-color-fuchsia-outline": "var(--mantine-color-fuchsia-7)",
"--mantine-color-fuchsia-outline-hover": alpha('var(--mantine-color-fuchsia-4)', 0.15),
"--mantine-color-pink-outline": "var(--mantine-color-pink-6)",
"--mantine-color-pink-outline-hover": alpha('var(--mantine-color-pink-4)', 0.15),
// all contrast colors
"--mantine-color-zinc-contrast": "var(--mantine-color-zinc-8)",
"--mantine-color-slate-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-gray-contrast": "var(--mantine-color-gray-8)",
"--mantine-color-neutral-contrast": "var(--mantine-color-neutral-8)",
"--mantine-color-stone-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-red-contrast": "var(--mantine-color-red-0)",
"--mantine-color-rose-contrast": "var(--mantine-color-rose-0)",
"--mantine-color-orange-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-amber-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-yellow-contrast": "#422006",
"--mantine-color-lime-contrast": "var(--mantine-color-stone-8)",
"--mantine-color-green-contrast": "var(--mantine-color-green-9)",
"--mantine-color-emerald-contrast": "var(--mantine-color-stone-0)",
"--mantine-color-teal-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-cyan-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-sky-contrast": "var(--mantine-color-slate-8)",
"--mantine-color-blue-contrast": "var(--mantine-color-slate-0)",
"--mantine-color-indigo-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-violet-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-purple-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-fuchsia-contrast": "var(--mantine-color-gray-0)",
"--mantine-color-pink-contrast": "var(--mantine-color-gray-0)",
},
});
================================================
FILE: src/themes/test/shadcn-styles-test.css
================================================
/* Checkbox */
.mantine-Checkbox-root {
--checkbox-color: var(--mantine-primary-color-filled);
--checkbox-icon-color: var(--mantine-primary-color-contrast);
.mantine-Checkbox-input {
background-color: transparent;
border-color: var(--checkbox-color);
&[data-indeterminate],
&:checked {
background-color: var(--checkbox-color);
}
&:disabled {
opacity: 0.5;
&+.mantine-Checkbox-icon {
opacity: 0.5;
color: var(--checkbox-icon-color);
}
}
}
.mantine-Checkbox-label {
&[data-disabled] {
color: inherit;
opacity: 0.7;
}
}
&[data-variant="outline"] {
.mantine-Checkbox-input {
background-color: transparent;
&+.mantine-Checkbox-icon {
color: var(--checkbox-color);
}
}
}
}
/* Checkbox Group */
.mantine-CheckboxGroup-root {
.mantine-CheckboxGroup-error {
margin-top: 8px;
}
}
/* Chip */
.mantine-Chip-root {
--chip-color: var(--mantine-primary-color-contrast);
&[data-variant="outline"]:not([data-disabled]) {
.mantine-Chip-label {
background-color: transparent;
--chip-bd: 1px solid var(--mantine-color-default-border);
&:hover {
background-color: var(--mantine-color-default-hover);
}
&:where([data-checked]) {
--chip-icon-color: var(--chip-bg);
--chip-bd: 1px solid var(--chip-bg);
border: var(--chip-bd);
&:hover {
background-color: var(--chip-hover);
color: var(--chip-color);
--chip-bd: 1px solid var(--chip-bg);
--chip-icon-color: var(--chip-color);
}
}
&:where([data-disabled]) {
--chip-icon-color: var(--mantine-color-text);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
opacity: 0.5;
&:hover {
background-color: transparent;
color: var(--mantine-color-text);
--chip-bd: 1px solid var(--mantine-color-default-border);
--chip-icon-color: var(--mantine-color-text);
}
}
}
}
}
/* Input */
.mantine-Input-wrapper {
@mixin light {
--input-disabled-bg: alpha(var(--mantine-color-default-hover), 0.5);
--input-disabled-color: alpha(var(--mantine-color-text), 0.5);
&[data-variant='default'] {
--input-bd: var(--mantine-color-default-border);
--input-bg: transparent;
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant='filled'] {
--input-bd: transparent;
--input-bg: var(--mantine-color-default-hover);
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant='unstyled'] {
--input-bd: transparent;
--input-bg: transparent;
--input-bd-focus: transparent;
}
}
@mixin dark {
--input-disabled-bg: alpha(var(--mantine-color-default-hover), 0.5);
--input-disabled-color: alpha(var(--mantine-color-text), 0.5);
&[data-variant='default'] {
--input-bd: var(--mantine-color-default-border);
--input-bg: transparent;
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant='filled'] {
--input-bd: transparent;
--input-bg: var(--mantine-color-default-hover);
--input-bd-focus: var(--mantine-primary-color-filled);
}
&[data-variant='unstyled'] {
--input-bd: transparent;
--input-bg: transparent;
--input-bd-focus: transparent;
}
}
}
/* Color Input */
.mantine-ColorInput-dropdown {
background-color: var(--mantine-color-default);
border-color: var(--mantine-color-default-border);
}
/* Fieldset */
.mantine-Fieldset-root {
border-color: var(--mantine-color-default-border);
background-color: transparent;
&[data-variant='filled'] {
border-color: var(--mantine-color-default-border);
background-color: alpha(var(--mantine-color-default-hover), 0.4);
}
&[data-variant='unstyled'] {
border-color: transparent;
background-color: transparent;
}
}
/* Radio */
.mantine-Radio-root {
.mantine-Radio-radio {
background-color: transparent;
border-color: var(--radio-color);
&:checked {
background-color: var(--radio-color);
border-color: var(--radio-color);
}
&+.mantine-Radio-icon {
color: var(--radio-icon-color);
}
&:disabled {
opacity: 0.5;
}
}
&[data-variant='outline'] {
.mantine-Radio-radio {
background-color: transparent;
border-color: var(--radio-color);
&:checked:not(:disabled) {
background-color: transparent;
border-color: var(--radio-color);
}
&:disabled {
opacity: 0.5;
&+.mantine-Radio-icon {
color: var(--radio-color);
--radio-icon-opacity: 0.5;
}
}
}
}
}
/* Segmented Control */
.mantine-SegmentedControl-root {
background-color: var(--mantine-color-secondary-outline-hover);
.mantine-SegmentedControl-label {
color: var(--mantine-color-dimmed);
&[data-active] {
color: var(--mantine-color-text);
}
}
}
/* Switch */
/* Slider */
.mantine-Slider-root {
@mixin light {
--slider-track-bg: var(--mantine-color-secondary-outline-hover);
}
@mixin dark {
--slider-track-bg: var(--mantine-color-secondary-outline-hover);
}
.mantine-Slider-trackContainer{
&[data-disabled] {
opacity: 0.5;
}
}
.mantine-Slider-label {
background-color: var(--mantine-color-default) !important;
color: var(--mantine-color-text);
border: 1px solid var(--mantine-color-default-border) !important;
top: -45px;
}
}
/* ActionIcon */
.mantine-ActionIcon-root {
&:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
border: var(--ai-bd);
opacity: 0.5;
@mixin where-light {
background-color: var(--ai-bg);
color: var(--ai-color);
}
@mixin where-dark {
background-color: var(--ai-bg);
color: var(--ai-color);
}
&:active {
transform: none;
}
}
}
/* Button */
.mantine-Button-root {
&:where(:disabled:not([data-loading]), [data-disabled]:not([data-loading])) {
border: var(--button-bd);
opacity: 0.5;
@mixin where-light {
color: var(--button-color);
background: var(--button-bg);
}
@mixin where-dark {
color: var(--button-color);
background: var(--button-bg);
}
}
}
/* Close Button */
.mantine-CloseButton-root {
&[data-variant="subtle"]:where(:not([data-disabled], :disabled)){
@mixin hover {
@mixin where-light {
background-color: var(--mantine-color-default-hover);
}
@mixin where-dark {
background-color: var(--mantine-color-default-hover);
}
}
}
}
/* NavLink */
.mantine-NavLink-root {
@mixin hover {
@mixin where-light {
background-color: var(--mantine-color-default-hover);
}
@mixin where-dark {
background-color: var(--mantine-color-default-hover);
}
}
&:where([data-active], [aria-current='page']) {
background-color: var(--nl-bg);
color: var(--nl-color);
@mixin hover {
background-color: var(--nl-hover);
}
.description {
--description-opacity: 0.9;
--description-color: var(--nl-color);
}
}
}
/* Pagination */
.mantine-Pagination-root {
.mantine-Pagination-control {
@mixin where-light {
border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
@mixin hover {
&:where(:not(:disabled, [data-disabled])) {
background-color: var(--mantine-color-default-hover);
}
}
}
@mixin where-dark {
border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
@mixin hover {
&:where(:not(:disabled, [data-disabled])) {
background-color: var(--mantine-color-default-hover);
}
}
}
&:where([data-active]) {
background-color: var(--pagination-active-bg);
border-color: var(--pagination-active-bg);
color: var(--pagination-active-color, var(--mantine-primary-color-contrast));
@mixin hover {
background-color: rgba(from var(--pagination-active-bg) r g b / 0.9);
}
}
}
}
/* Stepper */
.mantine-Stepper-root {
.mantine-Stepper-stepIcon {
@mixin where-light {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
}
@mixin where-dark {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
color: var(--mantine-color-text);
}
&:where([data-progress]) {
border-color: var(--step-color);
}
&:where([data-completed]) {
color: var(--stepper-icon-color, var(--mantine-color-white));
background-color: var(--step-color);
border-color: var(--step-color);
}
}
}
/* Tabs */
.mantine-Tabs-root {
@mixin light {
--tab-border-color: var(--mantine-color-default-border);
}
@mixin dark {
--tab-border-color: var(--mantine-color-default-border);
}
&[data-variant='default'] {
--tabs-list-border-width: 2px;
@mixin light {
--tab-hover-color: var(--mantine-color-default-hover);
}
@mixin dark {
--tab-hover-color: var(--mantine-color-default-hover);
}
}
&[data-variant='pills'] {
--tabs-list-gap: calc(var(--mantine-spacing-sm) / 2);
--tabs-text-color: var(--mantine-color-body) !important;
@mixin light {
--tab-hover-color: var(--mantine-color-default-hover);
}
@mixin dark {
--tab-hover-color: var(--mantine-color-default-hover);
}
}
}
/* Notification */
.mantine-Notification-root {
@mixin where-light {
background-color: var(--mantine-color-secondary-filled);
}
@mixin where-dark {
background-color: var(--mantine-color-secondary-filled);
}
&:where([data-with-border]) {
@mixin where-light {
border: 1px solid var(--mantine-color-default-border);
}
@mixin where-dark {
border: 1px solid var(--mantine-color-default-border);
}
}
}
/* Progress */
.mantine-Progress-root {
@mixin where-light {
background-color: var(--mantine-color-default-hover);
}
@mixin where-dark {
background-color: var(--mantine-color-default-hover);
}
}
/* Ring Progress */
.mantine-RingProgress-root {
.mantine-RingProgress-curve {
@mixin light {
--rp-curve-root-color: var(--mantine-color-default-hover);
}
@mixin dark {
--rp-curve-root-color: var(--mantine-color-default-hover);
}
}
}
/* SemiCircle Progress */
.mantine-SemiCircleProgress-root {
@mixin where-light {
--scp-empty-segment-color: var(--mantine-color-default-hover);
}
@mixin where-dark {
--scp-empty-segment-color: var(--mantine-color-default-hover);
}
}
/* Skeleton */
.mantine-Skeleton-root {
&:where([data-visible]) {
&::after {
@mixin where-light {
background-color: var(--mantine-color-default-hover);
}
@mixin where-dark {
background-color: var(--mantine-color-default-hover);
}
}
}
}
/* Drawer */
.mantine-Drawer-root {
.mantine-Drawer-content {
border-right: 1px solid var(--mantine-color-default-border);
border-left: 1px solid var(--mantine-color-default-border);
}
}
/* Hover Card */
.mantine-HoverCard-dropdown {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
/* Menu Dropdown */
.mantine-Menu-dropdown {
background-color: var(--mantine-color-body);
border-color: var(--mantine-color-default-border);
.mantine-Menu-item {
background-color: transparent;
&:where([data-hovered]) {
background-color: var(--menu-item-hover, var(--mantine-color-default-hover));
}
}
.mantine-Menu-divider {
border-color: var(--mantine-color-default-border);
}
}
/* Modal */
.mantine-Modal-root {
.mantine-Modal-content {
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
}
}
/* Popover Start*/
.mantine-Popover-dropdown {
@mixin where-light {
--popover-border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
}
@mixin where-dark {
--popover-border-color: var(--mantine-color-default-border);
background-color: var(--mantine-color-body);
}
}
.mantine-Popover-arrow {
--popover-border-color: var(--mantine-color-default-border);
}
/* Popover End */
/* Tooltip */
.mantine-Tooltip-tooltip {
font-size: var(--mantine-font-size-xs);
padding-top: 0;
padding-bottom: 0;
}
/* Accordion */
.mantine-Accordion-root {
.mantine-Accordion-control {
color: var(--mantine-color-text);
}
.mantine-Accordion-item {
--item-border-color: var(--mantine-color-default-border);
--item-filled-color: var(--mantine-color-default-hover);
}
&[data-variant='default'] {
.mantine-Accordion-control {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
background-color: transparent;
}
}
}
.mantine-Accordion-label {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
text-decoration: underline;
}
}
}
}
&[data-variant='contained'], &[data-variant='filled'] {
.mantine-Accordion-control {
&:where(:not(:disabled, [data-disabled])) {
&:hover {
background-color: var(--mantine-color-default-hover);
}
}
}
}
}
/* Avatar */
.mantine-Avatar-root {
--avatar-bg: var(--mantine-primary-color-light);
--avatar-bd: 1px solid transparent;
--avatar-color: var(--mantine-primary-color-light-color);
}
/* Badge */
.mantine-Badge-root {
--badge-color: var(--mantine-primary-color-contrast);
&[data-variant="dot"] {
background-color: var(--mantine-color-secondary-light);
border-color: var(--mantine-color-secondary-light);
color: var(--mantine-color-text);
}
}
/* Card */
.mantine-Card-root {
background-color: var(--mantine-color-default);
.mantine-Card-section {
border-color: var(--mantine-color-default-border);
}
}
/* Timeline */
.mantine-Timeline-root {
--item-border-color: var(--mantine-color-default-border);
.mantine-Timeline-itemBullet {
border-color: var(--mantine-color-default-border);
&:where([data-with-child]) {
background-color: var(--mantine-color-secondary-light);
}
&:where([data-active]) {
border-color: var(--tli-color, var(--tl-color));
background-color: var(--mantine-color-white);
color: var(--tl-icon-color, var(--mantine-color-white));
&:where([data-with-child]) {
background-color: var(--tli-color, var(--tl-color));
color: var(--tl-icon-color, var(--mantine-color-white));
}
}
}
}
/* Code */
.mantine-Code-root{
background-color: var(--code-bg, var(--mantine-color-secondary-filled));
color: var(--mantine-color-text)
}
/* Table */
.mantine-Table-table {
@mixin where-light {
--table-hover-color: var(--mantine-color-default-hover);
--table-striped-color: var(--mantine-color-default-hover);
--table-border-color: var(--mantine-color-default-border);
}
@mixin where-dark {
--table-hover-color: var(--mantine-color-default-hover);
--table-striped-color: var(--mantine-color-default-hover);
--table-border-color: var(--mantine-color-default-border);
}
&:where([data-with-table-border]) {
border: rem(1px) solid var(--table-border-color);
}
}
/* Title */
.mantine-Title-root,
.mantine-Modal-title,
.mantine-Drawer-title {
letter-spacing: -0.025em;
}
/* Divider */
.mantine-Divider-root {
@mixin where-light {
--divider-color: var(--mantine-color-default-border);
}
@mixin where-dark {
--divider-color: var(--mantine-color-default-border);
}
}
/* Paper */
.mantine-Paper-root {
&:where([data-with-border]) {
@mixin where-light {
border: rem(1px) solid var(--mantine-color-default-border);
}
@mixin where-dark {
border: rem(1px) solid var(--mantine-color-default-border);
}
}
}
/* Date Picker */
.mantine-DatePicker-levelsGroup {
.mantine-DatePicker-calendarHeader {
--dch-control-size-xs: calc(1.25rem* var(--mantine-scale));
--dch-control-size-sm: calc(1.75rem* var(--mantine-scale));
--dch-control-size-md: calc(2.25rem* var(--mantine-scale));
--dch-control-size-lg: calc(2.5rem* var(--mantine-scale));
--dch-control-size-xl: calc(2.75rem* var(--mantine-scale));
max-width: none;
gap: var(--mantine-spacing-xs);
.mantine-DatePicker-calendarHeaderControl {
border: 1px solid var(--mantine-color-default-border);
border-radius: var(--mantine-radius-default);
&:hover {
background-color: var(--mantine-color-default-hover) !important;
}
}
.mantine-DatePicker-calendarHeaderLevel {
&:hover {
background-color: var(--mantine-color-default-hover) !important;
}
font-size: var(--mantine-font-size-sm);
}
}
.mantine-DatePicker-month {
border-collapse: separate;
border-spacing: 0 5px;
.mantine-DatePicker-weekdaysRow {
.mantine-DatePicker-weekday {
font-size: var(--mantine-font-size-xs);
}
}
.mantine-DatePicker-monthRow {
margin-top: var(--mantine-spacing-xs);
margin-bottom: var(--mantine-spacing-xs);
.mantine-DatePicker-day {
--day-size-xs: calc(1.5rem* var(--mantine-scale));
--day-size-sm: calc(2rem* var(--mantine-scale));
--day-size-md: calc(2.5rem* var(--mantine-scale));
--day-size-lg: calc(3rem* var(--mantine-scale));
--day-size-xl: calc(3.5rem* var(--mantine-scale));
font-size: calc(var(--day-size)/2.28);
&:hover:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
background-color: var(--mantine-color-default-hover) !important;
border-radius: var(--mantine-radius-default);
&[data-in-range] {
border-radius: 0;
}
}
&:where([data-selected]):hover:where(:not([data-disabled], [data-static])) {
background-color: var(--mantine-primary-color-filled-hover);
border-radius: var(--mantine-radius-default);
}
&[data-weekend] {
color: var(--mantine-color-text);
}
&[data-last-in-range],
&[data-first-in-range] {
border-radius: var(--mantine-radius-default);
}
}
}
}
.mantine-DatePicker-monthsList {
.mantine-DatePicker-monthsListControl {
--dpc-size-xs: calc(1.5rem* var(--mantine-scale));
--dpc-size-sm: calc(1.96rem* var(--mantine-scale));
--dpc-size-md: calc(2.5rem* var(--mantine-scale));
--dpc-size-lg: calc(3rem* var(--mantine-scale));
--dpc-size-xl: calc(3.5rem* var(--mantine-scale));
&:hover:where(:not([data-disabled], :disabled)) {
background-color: var(--mantine-color-default-hover) !important;
}
}
}
.mantine-DatePicker-yearsList {
.mantine-DatePicker-yearsListControl {
--dpc-size-xs: calc(1.5rem* var(--mantine-scale));
--dpc-size-sm: calc(1.96rem* var(--mantine-scale));
--dpc-size-md: calc(2.5rem* var(--mantine-scale));
--dpc-size-lg: calc(3rem* var(--mantine-scale));
--dpc-size-xl: calc(3.5rem* var(--mantine-scale));
&:hover:where(:not([data-disabled], :disabled)) {
background-color: var(--mantine-color-default-hover) !important;
}
}
}
}
/* Spotlight */
.mantine-Spotlight-root {
.mantine-Spotlight-content {
border: 1px solid var(--mantine-color-default-border);
}
.mantine-Spotlight-actionsList {
border-color: var(--mantine-color-default-border);
}
.mantine-Spotlight-action {
&:where(:not([data-selected])) {
@mixin hover {
background-color: var(--mantine-color-default-hover);
}
}
}
.mantine-Spotlight-footer {
border-color: var(--mantine-color-default-border);
}
}
/* Code Highlight */
.mantine-CodeHighlightTabs-root {
.mantine-CodeHighlightTabs-file {
color: var(--mantine-color-text);
border-color: var(--mantine-color-default-border);
&:where([data-active]) {
background-color: var(--mantine-color-default-hover);
color: var(--mantine-color-text);
}
}
}
/* Chart Tooltip */
.mantine-ChartTooltip-tooltip {
border: 1px solid var(--mantine-color-default-border);
}
================================================
FILE: src/themes/test/shadcn-theme-test.ts
================================================
import {
ActionIcon,
Alert,
Anchor,
Avatar,
Badge,
Blockquote,
Button,
Card,
Checkbox,
Chip,
Container,
createTheme,
Dialog,
Indicator,
MantineColorsTuple,
Mark,
Modal,
NavLink,
Pagination,
Paper,
Radio,
rem,
SegmentedControl,
Select,
Stepper,
Switch,
ThemeIcon,
Timeline,
Tooltip
} from "@mantine/core";
const CONTAINER_SIZES: Record = {
xxs: rem("200px"),
xs: rem("300px"),
sm: rem("400px"),
md: rem("500px"),
lg: rem("600px"),
xl: rem("1400px"),
xxl: rem("1600px"),
};
const zincColors: MantineColorsTuple = ["#fafafa","#f4f4f5","#e4e4e7","#d4d4d8","#a1a1aa","#52525b","#3f3f46","#27272a","#18181b","#09090b","#71717A"];
const slateColors: MantineColorsTuple = ["#f8fafc","#f1f5f9","#e2e8f0","#cbd5e1","#94a3b8","#475569","#334155","#1e293b","#0f172a","#020817","#64748B"];
const grayColors: MantineColorsTuple = ["#f9fafb","#f3f4f6","#e5e7eb","#d1d5db","#9ca3af","#4b5563","#374151","#1f2937","#111827","#030712","#6B7280"];
const neutralColors: MantineColorsTuple = ["#fafafa","#f5f5f5","#e5e5e5","#d4d4d4","#a3a3a3","#525252","#404040","#262626","#171717","#0a0a0a","#737373"];
const stoneColors: MantineColorsTuple = ["#fafaf9","#f5f5f4","#e7e5e4","#d6d3d1","#a8a29e","#57534e","#44403c","#292524","#1c1917","#0c0a09","#78716C"];
const redColors: MantineColorsTuple = ["#FEF2F2","#FEE2E2","#FECACA","#FCA5A5","#F87171","#DC2626","#B91C1C","#991B1B","#7F1D1D","#450A0A","#EF4444"];
const roseColors: MantineColorsTuple = ["#fff1f2","#ffe4e6","#fecdd3","#fda4af","#fb7185","#e11d48","#be123c","#9f1239","#881337","#4c0519","#F43F5E"];
const orangeColors: MantineColorsTuple = ["#fff7ed","#ffedd5","#fed7aa","#fdba74","#fb923c","#f97316","#ea580c","#9a3412","#7c2d12","#431407","#F97316"];
const amberColors: MantineColorsTuple = ["#FFFBEB","#FEF3C7","#FDE68A","#FCD34D","#FBBF24","#f59e0b","#D97706","#92400E","#78350F","#451A03","#F59E0B"];
const yellowColors: MantineColorsTuple = ["#fefce8","#fef9c3","#fef08a","#fde047","#facc15","#ca8a04","#a16207","#854d0e","#713f12","#3f2c06","#F59E0B"];
const limeColors: MantineColorsTuple = ["#f7fee7","#ecfccb","#d9f99d","#bef264","#a3e635","#4d7c0f","#3f6212","#365314","#1a2e05","#0f1903","#84CC16"];
const greenColors: MantineColorsTuple = ["#F0FDF4","#DCFCE7","#BBF7D0","#86EFAC","#4ADE80","#22c55e","#16A34A","#166534","#14532D","#052E16","#10B981"];
const emeraldColors: MantineColorsTuple = ["#ecfdf5","#d1fae5","#a7f3d0","#6ee7b7","#34d399","#059669","#047857","#065f46","#064e3b","#022c22","#10B981"];
const tealColors: MantineColorsTuple = ["#f0fdfa","#ccfbf1","#99f6e4","#5eead4","#2dd4bf","#0d9488","#0f766e","#115e59","#134e4a","#042f2e","#14B8A6"];
const cyanColors: MantineColorsTuple = ["#ecfeff","#cffafe","#a5f3fc","#67e8f9","#22d3ee","#0891b2","#0e7490","#155e75","#164e63","#083344","#06B6D4"];
const skyColors: MantineColorsTuple = ["#f0f9ff","#e0f2fe","#bae6fd","#7dd3fc","#38bdf8","#0284c7","#0369a1","#075985","#0c4a6e","#082f49","#0EA5E9"];
const blueColors: MantineColorsTuple = ["#eff6ff","#dbeafe","#bfdbfe","#93c5fd","#60a5fa","#3b82f6","#2563eb","#1e40af","#1e3a8a","#172554","#3B82F6"];
const indigoColors: MantineColorsTuple = ["#eef2ff","#e0e7ff","#c7d2fe","#a5b4fc","#818cf8","#4f46e5","#4338ca","#3730a3","#312e81","#1e1b4b","#6366F1"];
const violetColors: MantineColorsTuple = ["#f5f3ff","#ede9fe","#ddd6fe","#c4b5fd","#a78bfa","#7c3aed","#6d28d9","#5b21b6","#4c1d95","#1e1b4b","#8B5CF6"];
const purpleColors: MantineColorsTuple = ["#faf5ff","#f3e8ff","#e9d5ff","#d8b4fe","#c084fc","#9333ea","#7e22ce","#6b21a8","#581c87","#2e1065","#A855F7"];
const fuchsiaColors: MantineColorsTuple = ["#fdf4ff","#fae8ff","#f5d0fe","#f0abfc","#e879f9","#c026d3","#a21caf","#86198f","#701a75","#4a044e","#D946EF"];
const pinkColors: MantineColorsTuple = ["#fdf2f8","#fce7f3","#fbcfe8","#f9a8d4","#f472b6","#db2777","#be185d","#9d174d","#831843","#500724","#EC4899"];
export const shadcnTheme = createTheme({
colors: {
slate: slateColors,
gray: grayColors,
zinc: zincColors,
neutral: neutralColors,
stone: stoneColors,
red: redColors,
rose: roseColors,
orange: orangeColors,
amber: amberColors,
yellow: yellowColors,
lime: limeColors,
green: greenColors,
emerald: emeraldColors,
teal: tealColors,
cyan: cyanColors,
sky: skyColors,
blue: blueColors,
indigo: indigoColors,
violet: violetColors,
purple: purpleColors,
fuchsia: fuchsiaColors,
pink: pinkColors,
primary: skyColors,
secondary: slateColors,
dark: slateColors,
error: redColors as MantineColorsTuple,
success: greenColors,
info: blueColors,
warning: amberColors,
},
focusRing: "never",
scale: 1,
primaryColor: "primary",
primaryShade: {"light":5,"dark":4},
autoContrast: true,
luminanceThreshold: 0.3,
fontFamily: "Geist",
radius: {
xs: rem("6px"),
sm: rem("8px"),
md: rem("12px"),
lg: rem("16px"),
xl: rem("24px"),
},
defaultRadius: "sm",
spacing: {
"4xs": rem("2px"),
"3xs": rem("4px"),
"2xs": rem("8px"),
xs: rem("10px"),
sm: rem("12px"),
md: rem("16px"),
lg: rem("20px"),
xl: rem("24px"),
"2xl": rem("28px"),
"3xl": rem("32px"),
"4xl": rem("40px"),
},
fontSizes: {
xs: rem("12px"),
sm: rem("14px"),
md: rem("16px"),
lg: rem("18px"),
xl: rem("20px"),
"2xl": rem("24px"),
"3xl": rem("30px"),
"4xl": rem("36px"),
"5xl": rem("48px"),
},
lineHeights: {
xs: rem("18px"),
sm: rem("20px"),
md: rem("24px"),
lg: rem("28px"),
},
headings: {
fontFamily: "Geist",
sizes: {
h1: {
fontSize: rem("36px"),
lineHeight: rem("44px"),
fontWeight: "600",
},
h2: {
fontSize: rem("30px"),
lineHeight: rem("38px"),
fontWeight: "600",
},
h3: {
fontSize: rem("24px"),
lineHeight: rem("32px"),
fontWeight: "600",
},
h4: {
fontSize: rem("20px"),
lineHeight: rem("30px"),
fontWeight: "600",
},
},
},
shadows: {
xs: "0 1px 2px rgba(0, 0, 0, 0.05)",
sm: "0 1px 3px rgba(0, 0, 0, 0.1), 0 1px 2px rgba(0, 0, 0, 0.06)",
md: "0 4px 6px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06)",
lg: "0 10px 15px rgba(0, 0, 0, 0.1), 0 4px 6px rgba(0, 0, 0, 0.05)",
xl: "0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04)",
xxl: "0 25px 50px rgba(0, 0, 0, 0.25)",
},
cursorType: "pointer",
other: {
style: "shadcn",
},
components: {
Container: Container.extend({
vars: (_, { size, fluid }) => ({
root: {
"--container-size": fluid
? "100%"
: size !== undefined && size in CONTAINER_SIZES
? CONTAINER_SIZES[size]
: rem(size),
},
}),
}),
Checkbox: Checkbox.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--checkbox-color": colorKey ? `var(--mantine-color-${colorKey}-filled)` : 'var(--mantine-primary-color-filled)',
"--checkbox-icon-color": colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Chip: Chip.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "filled";
return {
root: {
"--chip-bg":
variant !== "light"
? colorKey
? `var(--mantine-color-${colorKey}-filled)`
: "var(--mantine-primary-color-filled)"
: undefined,
"--chip-color":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)"
: undefined,
},
};
},
}),
Radio: Radio.extend({
vars: (theme, props) => ({
root: {
"--radio-color": props.color
? Object.keys(theme.colors).includes(props.color)
? `var(--mantine-color-${props.color}-filled)`
: props.color
: "var(--mantine-primary-color-filled)",
"--radio-icon-color": props.color
? Object.keys(theme.colors).includes(props.color)
? `var(--mantine-color-${props.color}-contrast)`
: props.color
: "var(--mantine-primary-color-contrast)",
},
}),
}),
SegmentedControl: SegmentedControl.extend({
vars: (theme, props) => ({
root: {
"--sc-color": props.color
? Object.keys(theme.colors).includes(props.color)
? ["zinc", "slate", "gray", "neutral", "stone"].includes(props.color)
? "var(--mantine-color-body)"
: `var(--mantine-color-${props.color}-filled)`
: props.color
: "var(--mantine-color-default)",
},
}),
}),
Switch: Switch.extend({
styles: () => ({
thumb: {
backgroundColor: "var(--mantine-color-default)",
borderColor: "var(--mantine-color-default-border)",
},
track: {
borderColor: "var(--mantine-color-default-border)",
},
}),
}),
Select: Select.extend({
defaultProps: {
checkIconPosition: "right",
},
}),
ActionIcon: ActionIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ai-color": (() => {
if (variant === "filled") {
if (colorKey) {
return `var(--mantine-color-${colorKey}-contrast)`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
}
}),
Button: Button.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--button-color":(() => {
if (variant === "filled") {
if (colorKey) {
return `var(--mantine-color-${colorKey}-contrast)`;
}
return "var(--mantine-primary-color-contrast)";
}
if (variant === "white") {
if (isNeutralColor || isNeutralPrimaryColor) {
return "var(--mantine-color-black)";
}
return undefined;
}
return undefined;
})(),
},
};
},
}),
Anchor: Anchor.extend({
defaultProps: {
underline: "always",
},
}),
NavLink: NavLink.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const variant = props.variant ?? "light";
return {
root: {
"--nl-color":
variant === "filled" ? colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)' : undefined,
},
children: {},
};
},
}),
Pagination: Pagination.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--pagination-active-color": colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Stepper: Stepper.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--stepper-icon-color": colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
Alert: Alert.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--alert-color":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)"
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: undefined)
: undefined,
},
};
}
}),
Dialog: Dialog.extend({
defaultProps: {
withBorder: true,
},
}),
Modal: Modal.extend({
defaultProps: {
p: "md",
},
}),
Tooltip: Tooltip.extend({
vars: () => ({
tooltip: {
"--tooltip-bg": "var(--mantine-color-primary-color-filled)",
"--tooltip-color": "var(--mantine-color-primary-color-contrast)",
},
}),
}),
Avatar: Avatar.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "light";
return {
root: {
"--avatar-bg":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-filled)`
: "var(--mantine-primary-color-filled)"
: variant === "light"
? colorKey
? `var(--mantine-color-${colorKey}-light)`
: "var(--mantine-primary-color-light)"
: undefined,
"--avatar-color":
variant === "filled"
? colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)"
: variant === "light"
? colorKey
? `var(--mantine-color-${colorKey}-light-color)`
: "var(--mantine-primary-color-light-color)"
: variant === "white"
? isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: colorKey
? `var(--mantine-color-${colorKey}-outline)`
: "var(--mantine-primary-color-filled)"
: variant === "outline" || variant === "transparent"
? colorKey
? `var(--mantine-color-${colorKey}-outline)`
: "var(--mantine-primary-color-filled)"
: undefined,
"--avatar-bd":
variant === "outline"
? colorKey
? `1px solid var(--mantine-color-${colorKey}-outline)`
: "1px solid var(--mantine-primary-color-filled)"
: undefined,
},
};
},
}),
Badge: Badge.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--badge-bg": variant === "filled" && colorKey ? `var(--mantine-color-${colorKey}-filled)` : undefined,
"--badge-color":
variant === "filled"
? (colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)')
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: undefined)
: undefined,
},
};
},
}),
Card: Card.extend({
defaultProps: {
p: "xl",
shadow: "xl",
withBorder: true,
},
styles: (theme) => {
return {
root: {
backgroundColor:
theme.primaryColor === "rose" || theme.primaryColor === "green"
? "var(--mantine-color-secondary-filled)"
: undefined,
},
};
},
}),
Indicator: Indicator.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--indicator-text-color": colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)",
},
};
},
}),
ThemeIcon: ThemeIcon.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey)
const isNeutralPrimaryColor = !colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(theme.primaryColor);
const variant = props.variant ?? "filled";
return {
root: {
"--ti-color": variant === "filled"
? (colorKey
? `var(--mantine-color-${colorKey}-contrast)`
: "var(--mantine-primary-color-contrast)")
: variant === "white"
? (isNeutralColor || isNeutralPrimaryColor
? `var(--mantine-color-black)`
: undefined)
: undefined,
},
};
},
}),
Timeline: Timeline.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--tl-icon-color": colorKey ? `var(--mantine-color-${colorKey}-contrast)` : 'var(--mantine-primary-color-contrast)',
},
};
},
}),
Blockquote: Blockquote.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : undefined;
return {
root: {
"--bq-bg-dark": colorKey ? `var(--mantine-color-${colorKey}-light)` : 'var(--mantine-primary-color-light)',
"--bq-bg-light": colorKey ? `var(--mantine-color-${colorKey}-light)` : 'var(--mantine-primary-color-light)',
},
};
},
}),
Mark: Mark.extend({
vars: (theme, props) => {
const colorKey = props.color && Object.keys(theme.colors).includes(props.color) ? props.color : 'yellow';
const isNeutralColor = colorKey && ["zinc", "slate", "gray", "neutral", "stone"].includes(colorKey);
return {
root: {
"--mark-bg-light": `var(--mantine-color-${colorKey}-${isNeutralColor ? '3' : 'filled-hover'})`,
"--mark-bg-dark": `var(--mantine-color-${colorKey}-filled)`
},
};
},
}),
Paper: Paper.extend({
defaultProps: {
shadow: "xl",
},
}),
},
});
================================================
FILE: src/utils/colors.ts
================================================
import { MantineColorsTuple } from "@mantine/core";
// Note: 500 shade in tailwind color is not included in the color palette except for orange, green and blue
// Color shades in tailwind are 50, 100, 200, 300, 400, 600, 700, 800, 900, 950
export const zincColors: MantineColorsTuple = [
"#fafafa", // [0] -> shade 50
"#f4f4f5", // [1] -> shade 100
"#e4e4e7", // [2] -> shade 200
"#d4d4d8", // [3] -> shade 300
"#a1a1aa", // [4] -> shade 400
"#52525b", // [5] -> shade 600
"#3f3f46", // [6] -> shade 700
"#27272a", // [7] -> shade 800
"#18181b", // [8] -> shade 900
"#09090b", // [9] -> shade 950
"#71717A" // [10] -> zinc base
];
export const slateColors: MantineColorsTuple = [
"#f8fafc", // [0] -> shade 50
"#f1f5f9", // [1] -> shade 100
"#e2e8f0", // [2] -> shade 200
"#cbd5e1", // [3] -> shade 300
"#94a3b8", // [4] -> shade 400
"#475569", // [5] -> shade 600
"#334155", // [6] -> shade 700
"#1e293b", // [7] -> shade 800
"#0f172a", // [8] -> shade 900
"#020817", // [9] -> shade 950 (original tailwind color was #020617)
"#64748B" // [10] -> slate base
];
export const stoneColors: MantineColorsTuple = [
"#fafaf9", // [0] -> shade 50
"#f5f5f4", // [1] -> shade 100
"#e7e5e4", // [2] -> shade 200
"#d6d3d1", // [3] -> shade 300
"#a8a29e", // [4] -> shade 400
"#57534e", // [5] -> shade 600
"#44403c", // [6] -> shade 700
"#292524", // [7] -> shade 800
"#1c1917", // [8] -> shade 900
"#0c0a09", // [9] -> shade 950
"#78716C" // [10] -> stone base
];
export const grayColors: MantineColorsTuple = [
"#f9fafb", // [0] -> shade 50
"#f3f4f6", // [1] -> shade 100
"#e5e7eb", // [2] -> shade 200
"#d1d5db", // [3] -> shade 300
"#9ca3af", // [4] -> shade 400
"#4b5563", // [5] -> shade 600
"#374151", // [6] -> shade 700
"#1f2937", // [7] -> shade 800
"#111827", // [8] -> shade 900
"#030712", // [9] -> shade 950
"#6B7280" // [10] -> gray base
];
export const neutralColors: MantineColorsTuple = [
"#fafafa", // [0] -> shade 50
"#f5f5f5", // [1] -> shade 100
"#e5e5e5", // [2] -> shade 200
"#d4d4d4", // [3] -> shade 300
"#a3a3a3", // [4] -> shade 400
"#525252", // [5] -> shade 600
"#404040", // [6] -> shade 700
"#262626", // [7] -> shade 800
"#171717", // [8] -> shade 900
"#0a0a0a", // [9] -> shade 950
"#737373" // [10] -> neutral base
];
export const redColors: MantineColorsTuple = [
"#FEF2F2", // [0] -> shade 50
"#FEE2E2", // [1] -> shade 100
"#FECACA", // [2] -> shade 200
"#FCA5A5", // [3] -> shade 300
"#F87171", // [4] -> shade 400
"#DC2626", // [5] -> shade 600
"#B91C1C", // [6] -> shade 700
"#991B1B", // [7] -> shade 800
"#7F1D1D", // [8] -> shade 900
"#450A0A", // [9] -> shade 950
"#EF4444" // [10] -> red base
];
export const roseColors: MantineColorsTuple = [
"#fff1f2", // [0] -> shade 50
"#ffe4e6", // [1] -> shade 100
"#fecdd3", // [2] -> shade 200
"#fda4af", // [3] -> shade 300
"#fb7185", // [4] -> shade 400
"#e11d48", // [5] -> shade 600
"#be123c", // [6] -> shade 700
"#9f1239", // [7] -> shade 800
"#881337", // [8] -> shade 900
"#4c0519", // [9] -> shade 950
"#F43F5E" // [10] -> base color as rose[10]
];
export const orangeColors: MantineColorsTuple = [
"#fff7ed", // [0] -> shade 50
"#ffedd5", // [1] -> shade 100
"#fed7aa", // [2] -> shade 200
"#fdba74", // [3] -> shade 300
"#fb923c", // [4] -> shade 400
"#f97316", // [5] -> shade 500
"#ea580c", // [6] -> shade 600
"#9a3412", // [7] -> shade 800
"#7c2d12", // [8] -> shade 900
"#431407", // [9] -> shade 950
"#F97316", // [10] -> orange base
];
export const greenColors: MantineColorsTuple = [
"#F0FDF4", // [0] -> shade 50
"#DCFCE7", // [1] -> shade 100
"#BBF7D0", // [2] -> shade 200
"#86EFAC", // [3] -> shade 300
"#4ADE80", // [4] -> shade 400
"#22c55e", // [5] -> shade 500
"#16A34A", // [6] -> shade 600
"#166534", // [7] -> shade 800
"#14532D", // [8] -> shade 900
"#052E16", // [9] -> shade 950
"#10B981", // [10] -> green base
];
export const blueColors: MantineColorsTuple = [
"#eff6ff", // [0] -> shade 50
"#dbeafe", // [1] -> shade 100
"#bfdbfe", // [2] -> shade 200
"#93c5fd", // [3] -> shade 300
"#60a5fa", // [4] -> shade 400
"#3b82f6", // [5] -> shade 500
"#2563eb", // [6] -> shade 600
"#1e40af", // [7] -> shade 800
"#1e3a8a", // [8] -> shade 900
"#172554", // [9] -> shade 950
"#3B82F6", // [10] -> blue base
];
export const yellowColors: MantineColorsTuple = [
"#fefce8", // [0] -> shade 50
"#fef9c3", // [1] -> shade 100
"#fef08a", // [2] -> shade 200
"#fde047", // [3] -> shade 300
"#facc15", // [4] -> shade 400
"#ca8a04", // [5] -> shade 500
"#a16207", // [6] -> shade 600
"#854d0e", // [7] -> shade 700
"#713f12", // [8] -> shade 800
"#3f2c06", // [9] -> shade 950
"#F59E0B", // [10] -> yellow base
];
export const violetColors: MantineColorsTuple = [
"#f5f3ff", // [0] -> shade 50
"#ede9fe", // [1] -> shade 100
"#ddd6fe", // [2] -> shade 200
"#c4b5fd", // [3] -> shade 300
"#a78bfa", // [4] -> shade 400
"#7c3aed", // [5] -> shade 500
"#6d28d9", // [6] -> shade 600
"#5b21b6", // [7] -> shade 700
"#4c1d95", // [8] -> shade 800
"#1e1b4b", // [9] -> shade 950
"#8B5CF6", // [10] -> violet base
];
export const amberColors: MantineColorsTuple = [
"#FFFBEB", // [0] -> shade 50
"#FEF3C7", // [1] -> shade 100
"#FDE68A", // [2] -> shade 200
"#FCD34D", // [3] -> shade 300
"#FBBF24", // [4] -> shade 400
"#f59e0b", // [5] -> shade 500
"#D97706", // [6] -> shade 600
"#92400E", // [7] -> shade 800
"#78350F", // [8] -> shade 900
"#451A03", // [9] -> shade 950
"#F59E0B", // [10] -> amber base
];
export const limeColors: MantineColorsTuple = [
"#f7fee7", // [0] -> shade 50
"#ecfccb", // [1] -> shade 100
"#d9f99d", // [2] -> shade 200
"#bef264", // [3] -> shade 300
"#a3e635", // [4] -> shade 400
"#4d7c0f", // [5] -> shade 600
"#3f6212", // [6] -> shade 700
"#365314", // [7] -> shade 800
"#1a2e05", // [8] -> shade 900
"#0f1903", // [9] -> shade 950
"#84CC16" // [10] -> lime base
];
export const emeraldColors: MantineColorsTuple = [
"#ecfdf5", // [0] -> shade 50
"#d1fae5", // [1] -> shade 100
"#a7f3d0", // [2] -> shade 200
"#6ee7b7", // [3] -> shade 300
"#34d399", // [4] -> shade 400
"#059669", // [5] -> shade 600
"#047857", // [6] -> shade 700
"#065f46", // [7] -> shade 800
"#064e3b", // [8] -> shade 900
"#022c22", // [9] -> shade 950
"#10B981" // [10] -> emerald base
];
export const tealColors: MantineColorsTuple = [
"#f0fdfa", // [0] -> shade 50
"#ccfbf1", // [1] -> shade 100
"#99f6e4", // [2] -> shade 200
"#5eead4", // [3] -> shade 300
"#2dd4bf", // [4] -> shade 400
"#0d9488", // [5] -> shade 600
"#0f766e", // [6] -> shade 700
"#115e59", // [7] -> shade 800
"#134e4a", // [8] -> shade 900
"#042f2e", // [9] -> shade 950
"#14B8A6" // [10] -> teal base
];
export const cyanColors: MantineColorsTuple = [
"#ecfeff", // [0] -> shade 50
"#cffafe", // [1] -> shade 100
"#a5f3fc", // [2] -> shade 200
"#67e8f9", // [3] -> shade 300
"#22d3ee", // [4] -> shade 400
"#0891b2", // [5] -> shade 600
"#0e7490", // [6] -> shade 700
"#155e75", // [7] -> shade 800
"#164e63", // [8] -> shade 900
"#083344", // [9] -> shade 950
"#06B6D4" // [10] -> cyan base
];
export const skyColors: MantineColorsTuple = [
"#f0f9ff", // [0] -> shade 50
"#e0f2fe", // [1] -> shade 100
"#bae6fd", // [2] -> shade 200
"#7dd3fc", // [3] -> shade 300
"#38bdf8", // [4] -> shade 400
"#0284c7", // [5] -> shade 600
"#0369a1", // [6] -> shade 700
"#075985", // [7] -> shade 800
"#0c4a6e", // [8] -> shade 900
"#082f49", // [9] -> shade 950
"#0EA5E9" // [10] -> sky base
];
export const indigoColors: MantineColorsTuple = [
"#eef2ff", // [0] -> shade 50
"#e0e7ff", // [1] -> shade 100
"#c7d2fe", // [2] -> shade 200
"#a5b4fc", // [3] -> shade 300
"#818cf8", // [4] -> shade 400
"#4f46e5", // [5] -> shade 600
"#4338ca", // [6] -> shade 700
"#3730a3", // [7] -> shade 800
"#312e81", // [8] -> shade 900
"#1e1b4b", // [9] -> shade 950
"#6366F1" // [10] -> indigo base
];
export const purpleColors: MantineColorsTuple = [
"#faf5ff", // [0] -> shade 50
"#f3e8ff", // [1] -> shade 100
"#e9d5ff", // [2] -> shade 200
"#d8b4fe", // [3] -> shade 300
"#c084fc", // [4] -> shade 400
"#9333ea", // [5] -> shade 600
"#7e22ce", // [6] -> shade 700
"#6b21a8", // [7] -> shade 800
"#581c87", // [8] -> shade 900
"#2e1065", // [9] -> shade 950
"#A855F7" // [10] -> purple base
];
export const fuchsiaColors: MantineColorsTuple = [
"#fdf4ff", // [0] -> shade 50
"#fae8ff", // [1] -> shade 100
"#f5d0fe", // [2] -> shade 200
"#f0abfc", // [3] -> shade 300
"#e879f9", // [4] -> shade 400
"#c026d3", // [5] -> shade 600
"#a21caf", // [6] -> shade 700
"#86198f", // [7] -> shade 800
"#701a75", // [8] -> shade 900
"#4a044e", // [9] -> shade 950
"#D946EF" // [10] -> fuchsia base
];
export const pinkColors: MantineColorsTuple = [
"#fdf2f8", // [0] -> shade 50
"#fce7f3", // [1] -> shade 100
"#fbcfe8", // [2] -> shade 200
"#f9a8d4", // [3] -> shade 300
"#f472b6", // [4] -> shade 400
"#db2777", // [5] -> shade 600
"#be185d", // [6] -> shade 700
"#9d174d", // [7] -> shade 800
"#831843", // [8] -> shade 900
"#500724", // [9] -> shade 950
"#EC4899" // [10] -> pink base
];
// export const SHADCN_DEFAULT_COLORS = [
// { id: "zinc", name: "Zinc", color: "#71717A", primaryPalette: zincColors, primaryShade: { light: 8, dark: 0 }, secondary: "zinc", secondaryPalette: zincColors },
// { id: "slate", name: "Slate", color: "#64748B", primaryPalette: slateColors, primaryShade: { light: 8, dark: 0 }, secondary: "slate", secondaryPalette: slateColors },
// { id: "stone", name: "Stone", color: "#78716C", primaryPalette: stoneColors, primaryShade: { light: 8, dark: 0 }, secondary: "stone", secondaryPalette: stoneColors},
// { id: "gray", name: "Gray", color: "#6B7280", primaryPalette: grayColors, primaryShade: { light: 8, dark: 0 }, secondary: "gray", secondaryPalette: grayColors },
// { id: "neutral", name: "Neutral", color: "#737373", primaryPalette: neutralColors, primaryShade: { light: 8, dark: 0 }, secondary: "neutral", secondaryPalette: neutralColors },
// { id: "red", name: "Red", color: "#EF4444", primaryPalette: redColors, primaryShade: { light: 5, dark: 5 }, secondary: "neutral", secondaryPalette: neutralColors },
// { id: "rose", name: "Rose", color: "#F43F5E", primaryPalette: roseColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "orange", name: "Orange", color: "#F97316", primaryPalette: orangeColors, primaryShade: { light: 5, dark: 6 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "green", name: "Green", color: "#10B981", primaryPalette: greenColors, primaryShade: { light: 6, dark: 5 }, secondary: 'stone', secondaryPalette: stoneColors },
// { id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: blueColors, primaryShade: { light: 6, dark: 5 }, secondary: "slate", secondaryPalette: slateColors },
// { id: "yellow", name: "Yellow", color: "#F59E0B", primaryPalette: yellowColors, primaryShade: { light: 4, dark: 4 }, secondary: "stone", secondaryPalette: stoneColors },
// { id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: violetColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
// ];
export const MANTINE_DEFAULT_COLORS = [
{ id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "gray", name: "Gray", color: "#6B7280", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "red", name: "Red", color: "#EF4444", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "pink", name: "Pink", color: "#F43F5E", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "grape", name: "Grape", color: "#8B5CF6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "indigo", name: "Indigo", color: "#6366F1", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "cyan", name: "Cyan", color: "#22D3EE", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "teal", name: "Teal", color: "#14B8A6", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "green", name: "Green", color: "#10B981", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "lime", name: "Lime", color: "#65A30D", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "yellow", name: "Yellow", color: "#F59E0B", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
{ id: "orange", name: "Orange", color: "#F97316", primaryPalette: [], primaryShade: { light: 6, dark: 6 } },
];
export const SHADCN_DEFAULT_COLORS = [
{ id: "zinc", name: "Zinc", color: "#71717A", primaryPalette: zincColors, primaryShade: { light: 8, dark: 0 }, secondary: "zinc", secondaryPalette: zincColors },
{ id: "slate", name: "Slate", color: "#64748B", primaryPalette: slateColors, primaryShade: { light: 8, dark: 0 }, secondary: "slate", secondaryPalette: slateColors },
{ id: "gray", name: "Gray", color: "#6B7280", primaryPalette: grayColors, primaryShade: { light: 8, dark: 0 }, secondary: "gray", secondaryPalette: grayColors },
{ id: "neutral", name: "Neutral", color: "#737373", primaryPalette: neutralColors, primaryShade: { light: 8, dark: 0 }, secondary: "neutral", secondaryPalette: neutralColors },
{ id: "stone", name: "Stone", color: "#78716C", primaryPalette: stoneColors, primaryShade: { light: 8, dark: 0 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "red", name: "Red", color: "#EF4444", primaryPalette: redColors, primaryShade: { light: 5, dark: 5 }, secondary: "neutral", secondaryPalette: neutralColors },
{ id: "rose", name: "Rose", color: "#F43F5E", primaryPalette: roseColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "orange", name: "Orange", color: "#F97316", primaryPalette: orangeColors, primaryShade: { light: 5, dark: 6 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "amber", name: "Amber", color: "#F59E0B", primaryPalette: amberColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "yellow", name: "Yellow", color: "#EAB308", primaryPalette: yellowColors, primaryShade: { light: 4, dark: 4 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "lime", name: "Lime", color: "#84CC16", primaryPalette: limeColors, primaryShade: { light: 5, dark: 4 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "green", name: "Green", color: "#22C55E", primaryPalette: greenColors, primaryShade: { light: 6, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "emerald", name: "Emerald", color: "#10B981", primaryPalette: emeraldColors, primaryShade: { light: 5, dark: 5 }, secondary: "stone", secondaryPalette: stoneColors },
{ id: "teal", name: "Teal", color: "#14B8A6", primaryPalette: tealColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: slateColors },
{ id: "cyan", name: "Cyan", color: "#06B6D4", primaryPalette: cyanColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: slateColors },
{ id: "sky", name: "Sky", color: "#0EA5E9", primaryPalette: skyColors, primaryShade: { light: 5, dark: 4 }, secondary: "slate", secondaryPalette: slateColors },
{ id: "blue", name: "Blue", color: "#3B82F6", primaryPalette: blueColors, primaryShade: { light: 6, dark: 5 }, secondary: "slate", secondaryPalette: slateColors },
{ id: "indigo", name: "Indigo", color: "#6366F1", primaryPalette: indigoColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
{ id: "violet", name: "Violet", color: "#8B5CF6", primaryPalette: violetColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
{ id: "purple", name: "Purple", color: "#A855F7", primaryPalette: purpleColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
{ id: "fuchsia", name: "Fuchsia", color: "#D946EF", primaryPalette: fuchsiaColors, primaryShade: { light: 5, dark: 7 }, secondary: "gray", secondaryPalette: grayColors },
{ id: "pink", name: "Pink", color: "#EC4899", primaryPalette: pinkColors, primaryShade: { light: 5, dark: 6 }, secondary: "gray", secondaryPalette: grayColors },
];
================================================
FILE: src/utils/cssTemplate.ts
================================================
export const generateCSSTemplate = () => {
return `
.globalMantineInput {
&:focus-within {
outline: rem(1px) solid var(--mantine-primary-color-filled) ;
}
}
`;
};
================================================
FILE: src/utils/data.ts
================================================
import { actionIconDemo } from "../components/custom/components-demo/buttons/action-icon-demo";
import { buttonDemo } from "../components/custom/components-demo/buttons/button-demo";
import { closeButtonDemo } from "../components/custom/components-demo/buttons/close-button-demo";
import { areaChartDemo } from "../components/custom/components-demo/charts/area-chart-demo";
import { barchartDemo } from "../components/custom/components-demo/charts/bar-chart-demo";
import { bubbleChartDemo } from "../components/custom/components-demo/charts/bubble-chart-demo";
import { compositeChartDemo } from "../components/custom/components-demo/charts/composite-chart-demo";
import { donutChartDemo } from "../components/custom/components-demo/charts/donot-chart-demo";
import { lineChartDemo } from "../components/custom/components-demo/charts/line-chart-demo";
import { pieChartDemo } from "../components/custom/components-demo/charts/pie-chart-demo";
import { radarChartDemo } from "../components/custom/components-demo/charts/radar-chart-demo";
import { scatterChartDemo } from "../components/custom/components-demo/charts/scatter-chart-demo";
import { sparklineDemo } from "../components/custom/components-demo/charts/sparkline-demo";
import { autocompleteDemo } from "../components/custom/components-demo/combobox/autocomplete-demo";
import { multiSelectDemo } from "../components/custom/components-demo/combobox/multi-select-demo";
import { pillsInputDemo } from "../components/custom/components-demo/combobox/pills-input-demo";
import { selectDemo } from "../components/custom/components-demo/combobox/select-demo";
import { tagsInputDemo } from "../components/custom/components-demo/combobox/tags-input-demo";
import { accordionDemo } from "../components/custom/components-demo/data-display/accordion-demo";
import { avatarDemo } from "../components/custom/components-demo/data-display/avatar-demo";
import { backgroundImageDemo } from "../components/custom/components-demo/data-display/background-image-demo";
import { badgeDemo } from "../components/custom/components-demo/data-display/badge-demo";
import { cardDemo } from "../components/custom/components-demo/data-display/card-demo";
import { colorSwatchDemo } from "../components/custom/components-demo/data-display/color-swatch-demo";
import { imageDemo } from "../components/custom/components-demo/data-display/image-demo";
import { indicatorDemo } from "../components/custom/components-demo/data-display/indicator-demo";
import { spoilerDemo } from "../components/custom/components-demo/data-display/spoiler-demo";
import { themeIconDemo } from "../components/custom/components-demo/data-display/theme-icon-demo";
import { timelineDemo } from "../components/custom/components-demo/data-display/timeline-demo";
import { alertDemo } from "../components/custom/components-demo/feedback/alert-demo";
import { loaderDemo } from "../components/custom/components-demo/feedback/loader-demo";
import { notificationDemo } from "../components/custom/components-demo/feedback/notification-demo";
import { progressDemo } from "../components/custom/components-demo/feedback/progress-demo";
import { ringProgressDemo } from "../components/custom/components-demo/feedback/ring-progress-demo";
import { semiCircleProgressDemo } from "../components/custom/components-demo/feedback/semi-circle-progress-demo";
import { skeletonDemo } from "../components/custom/components-demo/feedback/skeleton-demo";
import { checkboxDemo } from "../components/custom/components-demo/inputs/checkbox-demo";
import { checkboxGroupDemo } from "../components/custom/components-demo/inputs/checkbox-group-demo";
import { chipDemo } from "../components/custom/components-demo/inputs/chip-demo";
import { colorInputDemo } from "../components/custom/components-demo/inputs/color-input-demo";
import { fieldsetDemo } from "../components/custom/components-demo/inputs/fieldset-demo";
import { fileInputDemo } from "../components/custom/components-demo/inputs/file-input";
import { nativeSelectDemo } from "../components/custom/components-demo/inputs/native-select-demo";
import { pinInputDemo } from "../components/custom/components-demo/inputs/pin-input-demo";
import { radioDemo } from "../components/custom/components-demo/inputs/radio-demo";
import { radioGroupDemo } from "../components/custom/components-demo/inputs/radio-group-demo";
import { ratingDemo } from "../components/custom/components-demo/inputs/rating-demo";
import { segmentedControlDemo } from "../components/custom/components-demo/inputs/segmented-control-demo";
import { sliderDemo } from "../components/custom/components-demo/inputs/slider-demo";
import { switchDemo } from "../components/custom/components-demo/inputs/switch-demo";
import { switchGroupDemo } from "../components/custom/components-demo/inputs/switch-group-demo";
import { textInputDemo } from "../components/custom/components-demo/inputs/text-input-demo";
import { textareaDemo } from "../components/custom/components-demo/inputs/textarea-demo";
import { dateInputDemo } from "../components/custom/components-demo/miscellaneous/date-picker-input-demo";
import { dividerDemo } from "../components/custom/components-demo/miscellaneous/divider-demo";
import { paperDemo } from "../components/custom/components-demo/miscellaneous/paper-demo";
import { scrollAreaDemo } from "../components/custom/components-demo/miscellaneous/scroll-area-demo";
import { anchorDemo } from "../components/custom/components-demo/navigation/anchor-demo";
import { navLinkDemo } from "../components/custom/components-demo/navigation/nav-link-demo";
import { paginationDemo } from "../components/custom/components-demo/navigation/pagination-demo";
import { stepperDemo } from "../components/custom/components-demo/navigation/stepper-demo";
import { tabsDemo } from "../components/custom/components-demo/navigation/tabs-demo";
import { dialogDemo } from "../components/custom/components-demo/overlays/dialog-demo";
import { drawerDemo } from "../components/custom/components-demo/overlays/drawer-demo";
import { hoverCardDemo } from "../components/custom/components-demo/overlays/hover-card-demo";
import { loadingOverlayDemo } from "../components/custom/components-demo/overlays/loading-overlay-demo";
import { menuDemo } from "../components/custom/components-demo/overlays/menu-demo";
import { modalDemo } from "../components/custom/components-demo/overlays/modal-demo";
import { overlayDemo } from "../components/custom/components-demo/overlays/overlay-demo";
import { popoverDemo } from "../components/custom/components-demo/overlays/popover-demo";
import { tooltipDemo } from "../components/custom/components-demo/overlays/tooltip-demo";
import { blockquoteDemo } from "../components/custom/components-demo/typography/blockquote-demo";
import { codeDemo } from "../components/custom/components-demo/typography/code-demo";
import { highlightDemo } from "../components/custom/components-demo/typography/highlight-demo";
import { listDemo } from "../components/custom/components-demo/typography/list-demo";
import { markDemo } from "../components/custom/components-demo/typography/mark-demo";
import { tableDemo } from "../components/custom/components-demo/typography/table-demo";
import { textDemo } from "../components/custom/components-demo/typography/text-demo";
import { titleDemo } from "../components/custom/components-demo/typography/title-demo";
export const UserProfileData = {
avatar:
"https://img.freepik.com/free-psd/3d-illustration-human-avatar-profile_23-2150671122.jpg?w=996&t=st=1728098576~exp=1728099176~hmac=df28e3a938f97c400d3747f5e9845c98314ba949932d2e786a10d0876feebc75",
name: "Mantine Dev",
email: "mantine.dev99@gmail.com",
job: "Struggling Software Engineer | Tech stack: Javascript, Typescript, React, Nextjs, Nodejs | UI/UX Designer",
};
export const skills = ["React", "Mantine", "Figma", "Bootstrap", "Typescript", "Sass/SCSS"];
export const ICON_SIZE = 16;
export const lineChartData = [
{
date: "Mar 22",
Likability: 3,
},
{
date: "Mar 23",
Likability: 6,
},
{
date: "Mar 24",
Likability: 7,
},
{
date: "Mar 25",
Likability: 4,
},
{
date: "Mar 26",
Likability: 9,
},
];
export const barChartData = [
{ month: "January", Smartphones: 1200, Laptops: 900, Tablets: 200 },
{ month: "February", Smartphones: 1900, Laptops: 1200, Tablets: 400 },
{ month: "March", Smartphones: 400, Laptops: 1000, Tablets: 200 },
{ month: "April", Smartphones: 1000, Laptops: 200, Tablets: 800 },
{ month: "May", Smartphones: 800, Laptops: 1400, Tablets: 1200 },
{ month: "June", Smartphones: 750, Laptops: 600, Tablets: 1000 },
];
export const metricData = [
{ average: 400, today: 240 },
{ average: 300, today: 139 },
{ average: 200, today: 980 },
{ average: 278, today: 390 },
{ average: 189, today: 480 },
{ average: 239, today: 380 },
{ average: 349, today: 430 },
];
export const radiusMapping: { [key: string]: string } = {
"0": "none",
"0.375": "xs",
"0.5": "sm",
"0.75": "md",
"1.0": "lg",
};
export const themeModalTabs = {
createTheme: "createTheme",
cssResolver: "cssResolver",
// createStyle: "createStyle",
};
export const demoComponentsNavbarData = [
{
label: 'Inputs',
initiallyOpened: true,
links: [
{ label: 'Checkbox', value: 'checkbox', demo: checkboxDemo },
{ label: 'Checkbox Group', value: 'checkbox-group', demo: checkboxGroupDemo },
{ label: 'Chip', value: 'chip', demo: chipDemo },
{ label: 'ColorInput', value: 'color-input', demo: colorInputDemo },
{ label: 'Fieldset', value: 'fieldset', demo: fieldsetDemo },
{ label: 'FileInput', value: 'file-input', demo: fileInputDemo },
{ label: 'Native Select', value: 'native-select', demo: nativeSelectDemo },
{ label: 'PinInput', value: 'pin-input', demo: pinInputDemo },
{ label: 'Radio', value: 'radio', demo: radioDemo },
{ label: 'Radio Group', value: 'radio-group', demo: radioGroupDemo },
{ label: 'Rating', value: 'rating', demo: ratingDemo },
{ label: 'Segmented Control', value: 'segmented-control', demo: segmentedControlDemo },
{ label: 'Slider', value: 'slider', demo: sliderDemo },
{ label: 'Switch', value: 'switch', demo: switchDemo },
{ label: 'Switch Group', value: 'switch-group', demo: switchGroupDemo },
{ label: 'Textarea', value: 'textarea', demo: textareaDemo },
{ label: 'Text Input', value: 'text-input', demo: textInputDemo },
],
},
{
label: 'Combobox',
initiallyOpened: true,
links: [
{ label: 'Autocomplete', value: 'autocomplete', demo: autocompleteDemo },
{ label: 'Multiselect', value: 'multiselect', demo: multiSelectDemo },
{ label: 'Pills Input', value: 'pills-input', demo: pillsInputDemo },
{ label: 'Select', value: 'select', demo: selectDemo },
{ label: 'Tag Input', value: 'tag-input', demo: tagsInputDemo },
],
},
{
label: 'Buttons',
initiallyOpened: true,
links: [
{ label: 'ActionIcon', value: 'action-icon', demo: actionIconDemo },
{ label: 'Button', value: 'button', demo: buttonDemo },
{ label: 'CloseButton', value: 'close-button', demo: closeButtonDemo },
],
},
{
label: 'Navigation',
initiallyOpened: true,
links: [
{ label: 'Anchor', value: 'anchor', demo: anchorDemo },
{ label: 'NavLink', value: 'nav-link', demo: navLinkDemo },
{ label: 'Pagination', value: 'pagination', demo: paginationDemo },
{ label: 'Stepper', value: 'stepper', demo: stepperDemo },
{ label: 'Tabs', value: 'tabs', demo: tabsDemo },
],
},
{
label: 'Feedback',
initiallyOpened: true,
links: [
{ label: 'Alert', value: 'alert', demo: alertDemo },
{ label: 'Loader', value: 'loader', demo: loaderDemo },
{ label: 'Notification', value: 'notification', demo: notificationDemo },
{ label: 'Progress', value: 'progress', demo: progressDemo },
{ label: 'RingProgress', value: 'ring-progress', demo: ringProgressDemo },
{ label: 'SemiCircleProgress', value: 'semi-circle-progress', demo: semiCircleProgressDemo },
{ label: 'Skeleton', value: 'skeleton', demo: skeletonDemo },
],
},
{
label: 'Overlays',
initiallyOpened: true,
links: [
{ label: 'Dialog', value: 'dialog', demo: dialogDemo },
{ label: 'Drawer', value: 'drawer', demo: drawerDemo },
{ label: 'HoverCard', value: 'hover-card', demo: hoverCardDemo },
{ label: 'Loading Overlay', value: 'loading-overlay', demo: loadingOverlayDemo },
{ label: 'Menu', value: 'menu', demo: menuDemo },
{ label: 'Modal', value: 'modal', demo: modalDemo },
{ label: 'Overlay', value: 'overlay', demo: overlayDemo },
{ label: 'Popover', value: 'popover', demo: popoverDemo },
{ label: 'Tooltip', value: 'tooltip', demo: tooltipDemo },
],
},
{
label: 'Data Display',
initiallyOpened: true,
links: [
{ label: 'Accordion', value: 'accordion', demo: accordionDemo },
{ label: 'Avatar', value: 'avatar', demo: avatarDemo },
{ label: 'BackgroundImage', value: 'background-image', demo: backgroundImageDemo },
{ label: 'Badge', value: 'badge', demo: badgeDemo },
{ label: 'Card', value: 'card', demo: cardDemo },
{ label: 'ColorSwatch', value: 'color-swatch', demo: colorSwatchDemo },
{ label: 'Image', value: 'image', demo: imageDemo },
{ label: 'Indicator', value: 'indicator', demo: indicatorDemo },
{ label: 'Spoiler', value: 'spoiler', demo: spoilerDemo },
{ label: 'ThemeIcon', value: 'theme-icon', demo: themeIconDemo },
{ label: 'Timeline', value: 'timeline', demo: timelineDemo },
],
},
{
label: 'Typography',
initiallyOpened: true,
links: [
{ label: 'Blockquote', value: 'blockquote', demo: blockquoteDemo },
{ label: 'Code', value: 'code', demo: codeDemo },
{ label: 'Highlight', value: 'highlight', demo: highlightDemo },
{ label: 'List', value: 'list', demo: listDemo },
{ label: 'Mark', value: 'mark', demo: markDemo },
{ label: 'Table', value: 'table', demo: tableDemo },
{ label: 'Text', value: 'text', demo: textDemo },
{ label: 'Title', value: 'title', demo: titleDemo },
],
},
{
label: 'Miscellaneous',
initiallyOpened: true,
links: [
{ label: 'Divider', value: 'divider', demo: dividerDemo },
{ label: 'Paper', value: 'paper', demo: paperDemo },
{ label: 'ScrollArea', value: 'scroll-area', demo: scrollAreaDemo },
{ label: 'DateInput', value: 'date-input', demo: dateInputDemo },
],
},
{
label: 'Charts',
initiallyOpened: true,
links: [
{ label: 'AreaChart', value: 'area-chart', demo: areaChartDemo },
{ label: 'BarChart', value: 'bar-chart', demo: barchartDemo },
{ label: 'LineChart', value: 'line-chart', demo: lineChartDemo },
{ label: 'CompositeChart', value: 'composite-chart', demo: compositeChartDemo },
{ label: 'DonutChart', value: 'donut-chart', demo: donutChartDemo },
{ label: 'PieChart', value: 'pie-chart', demo: pieChartDemo },
{ label: 'RadarChart', value: 'radar-chart', demo: radarChartDemo },
{ label: 'ScatterChart', value: 'scatter-chart', demo: scatterChartDemo },
{ label: 'BubbleChart', value: 'bubble-chart', demo: bubbleChartDemo },
{ label: 'Sparkline', value: 'sparkline', demo: sparklineDemo },
],
},
];
================================================
FILE: src/utils/functions.ts
================================================
import { MantinePrimaryShade, MantineThemeOverride } from "@mantine/core";
import { mantineCssVariableResolver } from "../themes/mantine/mantine-css-variable-resolver";
import { mantineTheme } from "../themes/mantine/mantine-theme";
import { shadcnCssVariableResolver } from "../themes/shadcn/shadcn-css-variable-resolver";
import { shadcnTheme } from "../themes/shadcn/shadcn-theme";
import { MANTINE_DEFAULT_COLORS, SHADCN_DEFAULT_COLORS } from "./colors";
import { generateThemeTemplate } from "./themeTemplate";
import { readLocalStorageValue } from "@mantine/hooks";
import { IThemeConfig } from "../components/custom/change-theme-section/change-theme-button";
/**
* Get the base theme based on the style.
*
* @param style - The style of the theme, e.g., "shadcn".
* @returns The base theme for the given style.
*/
export const getBaseTheme = (style: string | undefined) => {
if (style === "mantine") {
return mantineTheme;
}
return shadcnTheme;
};
/**
* Get the base primary shade based on the theme style and color.
*
* @param style - The style of the theme, e.g., "shadcn".
* @param color - The primary color of the theme.
* @returns The primary shade for the given style and color.
*/
export const getBasePrimaryShade = (style: string | undefined, color: string | undefined): MantinePrimaryShade => {
let baseColor = color;
//check for primary color
if (color === "primary") {
baseColor = style === "shadcn" ? "zinc" : "blue";
}
if (style === "mantine") {
return MANTINE_DEFAULT_COLORS.find((item) => item.id === baseColor)?.primaryShade as MantinePrimaryShade;
}
return SHADCN_DEFAULT_COLORS.find((item) => item.id === baseColor)?.primaryShade as MantinePrimaryShade;
};
// Helper function to recursively replace all matching values
const replaceCalcWithRem = (value: string) => {
// Regex to match the pattern calc(rem * var(--mantine-scale))
const regex = /calc\(([\d.]+)rem \* var\(--mantine-scale\)\)/;
// If the value is a string and matches the regex pattern
if (typeof value === "string" && regex.test(value)) {
// Replace with rem()
return value.replace(regex, (_, dynamicValue) => `rem(${dynamicValue})`);
}
// Return the value if no match is found
return value;
};
// Recursively walk through theme object and replace values matching the pattern
export const traverseAndReplace = (obj: { [key: string]: unknown }) => {
const result: { [key: string]: unknown } = {};
for (const key in obj) {
if (typeof obj[key] === "object" && obj[key] !== null && !Array.isArray(obj[key])) {
// If the value is an object or array, recursively apply the function
result[key] = traverseAndReplace(obj[key] as { [key: string]: unknown });
} else {
// Otherwise, replace the value if it matches the pattern
result[key] = replaceCalcWithRem(obj[key] as string);
}
}
return result;
};
export const formatThemeObj = (theme: MantineThemeOverride) => {
const replacedJSON = traverseAndReplace(theme);
const JSONstring = convertThemeToObj(replacedJSON);
const currentCssResolver = getCurrentCSSResolverVariables(theme);
const variableResolver = formatCssVariable(currentCssResolver);
return generateThemeTemplate(JSONstring, variableResolver);
};
export const formatCssVariable = (obj: any) => {
return JSON.stringify(obj, null, 2);
};
export const handleCopyCode = async (theme: MantineThemeOverride) => {
const prettyObject = JSON.stringify(theme, null, 2); // Pretty format with 2 spaces
await navigator.clipboard.writeText(prettyObject);
};
export const getCurrentCSSResolverVariables = (theme: any) => {
const cssResolverVars =
theme.other?.style === "shadcn" ? shadcnCssVariableResolver(theme) : mantineCssVariableResolver(theme);
return cssResolverVars;
};
/**
* Retrieves the secondary color palette based on the provided style and color.
*
* @param style - The style identifier, which can be "shadcn" or "mantine" or undefined.
* @param color - The color identifier, which can be undefined.
* @returns An array of color strings representing the secondary palette.
* If the style is "shadcn" and a matching color is found, the corresponding secondary palette is returned.
* Otherwise, a default grayscale palette is returned.
*/
export const getSecondaryPalette = (style: string | undefined, color: string | undefined) => {
if (style === "shadcn") {
return SHADCN_DEFAULT_COLORS.find((item) => item.id === color)?.secondaryPalette;
}
return [
"#C9C9C9", // dark 0
"#b8b8b8", // dark 1
"#828282", // dark 2
"#696969", // dark 3
"#424242", // dark 4
"#3b3b3b", // dark 5
"#2e2e2e", // dark 6
"#242424", // dark 7
"#1f1f1f", // dark 8
"#141414", // dark 9
];
};
export const getCssResolverVariables = (theme: any) => {
const cssResolverVars = getCurrentCSSResolverVariables(theme);
return formatCssVariable(cssResolverVars);
};
export const convertThemeToObj = (obj: any) => {
let ret = "{";
for (const k in obj) {
let v = obj[k];
if (typeof v === "function") {
// v = v.toString();
v = `${v}`;
} else if (v instanceof Array) {
v = JSON.stringify(v);
} else if (typeof v === "object") {
v = convertThemeToObj(v);
} else {
v = `"${v}"`;
}
ret += `\n ${k}: ${v},`;
}
ret += "\n}";
return ret;
};
export const getDefaultColors = (style: string | undefined) => {
if (style === "shadcn") {
return SHADCN_DEFAULT_COLORS;
}
return MANTINE_DEFAULT_COLORS;
};
export const localStorageTheme = readLocalStorageValue({
key: "mantine-theme",
defaultValue: {
style: "shadcn",
color: SHADCN_DEFAULT_COLORS[0].id,
radius: "sm",
},
});
export const removeStringPlaceholders = (css: string) => {
return css?.replace(/"{/g, "")?.replace(/}"/g, "");
};
================================================
FILE: src/utils/input-controls.ts
================================================
import { ConfiguratorControlOptions } from "../components/mantine/demo";
export const inputOnlyControls: ConfiguratorControlOptions[] = [
{
type: 'segmented',
prop: 'variant',
data: ['default', 'filled', 'unstyled'],
initialValue: 'default',
libraryValue: 'default',
},
{ type: 'size', prop: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'boolean', prop: 'disabled', initialValue: false, libraryValue: false },
{ type: 'boolean', prop: 'error', initialValue: false, libraryValue: false },
];
export const inputWrapperOnlyControls: ConfiguratorControlOptions[] = [
{ type: 'string', prop: 'label', initialValue: 'Input label', libraryValue: null },
{ type: 'boolean', prop: 'withAsterisk', initialValue: false, libraryValue: false },
{ type: 'string', prop: 'description', initialValue: 'Input description', libraryValue: null },
{ type: 'string', prop: 'error', initialValue: 'Input error', libraryValue: null },
{ type: 'size', prop: 'size', initialValue: 'sm', libraryValue: 'sm' },
];
export const inputControls: ConfiguratorControlOptions[] = [
{
type: 'segmented',
prop: 'variant',
data: ['default', 'filled', 'unstyled'],
initialValue: '',
libraryValue: '',
},
{ type: 'size', prop: 'size', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'size', prop: 'radius', initialValue: 'sm', libraryValue: 'sm' },
{ type: 'string', prop: 'label', initialValue: 'Input label', libraryValue: '' },
{ type: 'boolean', prop: 'withAsterisk', initialValue: false, libraryValue: false },
{ type: 'string', prop: 'description', initialValue: 'Input description', libraryValue: '' },
{ type: 'string', prop: 'error', initialValue: '', libraryValue: '' },
{ prop: "disabled", type: "boolean", initialValue: false, libraryValue: false },
];
================================================
FILE: src/utils/testimonials.ts
================================================
export const testimonialItems = [
//TODO: Replace with original testimonials
{
name: "Junior Mantine Shill Charlie",
text: "Great work, there's been demand for custom theme solutions for quite a while now. I can see this being heavily used especially if you introduce more themes in the future",
handle: "@_.charlie",
imageSrc: "https://avatar.iran.liara.run/public/1",
platform: "discord",
url: "https://discord.com/channels/854810300876062770/905183891541856297/1302582803380043837"
},
{
name: "Ionut-Cristian Florescu",
text: "Fantastic work! I'd say this is one of the most valuable Mantine-related projects that have appeared in the community lately.",
handle: "@icflorescu",
imageSrc: "https://avatar.iran.liara.run/public/2",
platform: "github",
url: "https://github.com/orgs/mantinedev/discussions/7056#discussioncomment-11146579"
},
{
name: "Orion",
text: "Ever since discovering mantine I've felt that this sort of complimentary tool was severely lacking, and would elevate the use of mantine, at least for me, significantly. I'm very excited to see that something is finally here, and of this quality.",
handle: "@Shadowfita",
imageSrc: "https://avatar.iran.liara.run/public/3",
platform: "github",
url: "https://github.com/orgs/mantinedev/discussions/7056#discussioncomment-11329081"
},
{
name: "Andrej",
text: "Thank you for creating such an incredible theme builder for Mantine – it’s a game-changer for my workflow!",
handle: "@AndrejNemec",
imageSrc: "https://avatar.iran.liara.run/public/4",
platform: "github",
url: "https://github.com/orgs/mantinedev/discussions/7056#discussioncomment-11116272"
},
{
name: "Vintage",
text: "This is awesome",
handle: "@vintage8",
imageSrc: "https://avatar.iran.liara.run/public/5",
featured: true, // Feature this testimonial
platform: "discord",
url: "https://discord.com/channels/854810300876062770/905183891541856297/1301627538262720562"
},
{
name: "Brokenwind",
text: "Shadcn is dead to me now.",
handle: "@broken.wind",
imageSrc: "https://avatar.iran.liara.run/public/6",
platform: "discord",
url: "https://discord.com/channels/854810300876062770/887408088800448553/1305432194080051231"
},
{
name: "Mordechai Dror",
text: "Daaamn)))) I'm more and more in love with mantine.",
handle: "@vorant94",
imageSrc: "https://avatar.iran.liara.run/public/7",
platform: "discord",
url: "https://discord.com/channels/854810300876062770/887408088800448553/1306329638439485572"
},
{
name: "Sajarin M",
text: "Nice work! 👍",
handle: "@Sajarin-M",
imageSrc: "https://avatar.iran.liara.run/public/8",
platform: "github",
url: "https://github.com/orgs/mantinedev/discussions/7056#discussioncomment-11118334"
},
{
name: "Federico Cappelletti",
text: "I literally love you.",
handle: "@federicocappelletti",
imageSrc: "https://avatar.iran.liara.run/public/9",
platform: "discord",
url: "https://discord.com/channels/854810300876062770/905183891541856297/1301611053595234415"
},
{
name: "Pedro Santos",
text: "Amazing project, very useful. congrats team 👏🏻",
handle: "@pedrocarlos-ti",
imageSrc: "https://avatar.iran.liara.run/public/10",
platform: "github",
url: "https://github.com/orgs/mantinedev/discussions/7056#discussioncomment-11213541"
},
{
name: "hjhjdev",
text: "Nice work!",
handle: "@hjhjdev",
imageSrc: "https://avatar.iran.liara.run/public/11",
platform: "github",
url: "https://github.com/orgs/mantinedev/discussions/7056#discussioncomment-11237246"
},
{
name: "Antoine",
text: "Looking forward the radix-ui version",
handle: "@antoineW",
imageSrc: "https://avatar.iran.liara.run/public/12",
platform: "discord",
url: "https://discord.com/channels/854810300876062770/905183891541856297/1301617263216164975"
},
];
================================================
FILE: src/utils/theme-functions.ts
================================================
import { alpha } from '@mantine/core';
import { SHADCN_DEFAULT_COLORS } from './colors';
export const getPrimaryContrastColorDay = (color: string) => {
const colorObj = SHADCN_DEFAULT_COLORS.find((c) => c.id === color);
if (
color === 'zinc' ||
color === 'slate' ||
color === 'stone' ||
color === 'gray' ||
color === 'neutral' ||
color === 'red' ||
color === 'rose'
) {
return `var(--mantine-color-${colorObj?.id}-0)`;
} else if (color === 'orange' || color === 'blue' || color === 'violet') {
return `var(--mantine-color-${colorObj?.secondary}-0)`;
} else if (color === 'green') {
return `var(--mantine-color-rose-0)`;
} else if (color === 'yellow') {
return '#422006';
} else {
return `var(--mantine-color-${colorObj?.id}-0)`;
}
};
export const getPrimaryContrastColorNight = (color: string) => {
const colorObj = SHADCN_DEFAULT_COLORS.find((c) => c.id === color);
if (
color === 'zinc' ||
color === ' slate' ||
color === 'stone' ||
color === 'gray' ||
color === 'neutral'
) {
return `var(--mantine-color-${colorObj?.secondary}-8)`;
} else if (color === 'red' || color === 'rose') {
return `var(--mantine-color-${colorObj?.id}-0)`;
} else if (
color === 'orange' ||
color === 'violet' ||
color === 'emerald' ||
color === 'purple' ||
color === 'indigo' ||
color === 'pink' ||
color === 'fuchsia' ||
color === 'blue'
) {
return `var(--mantine-color-${colorObj?.secondary}-0)`;
} else if (color === 'green') {
return `var(--mantine-color-${colorObj?.id}-9)`;
} else if (color === 'yellow') {
return '#422006';
} else {
return `var(--mantine-color-${colorObj?.secondary}-8)`;
}
};
export const getSecondaryLightColorDay = (color: string) => {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-zinc-1)';
} else {
return 'var(--mantine-color-secondary-1)';
}
};
export const getSecondaryLightColorNight = (color: string) => {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-secondary-7)';
} else {
return 'var(--mantine-color-secondary-7)';
}
};
export const getDefaultBorderColorDay = (color: string) => {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-zinc-2)';
} else {
return 'var(--mantine-color-secondary-2)';
}
};
export const getDefaultBorderColorNight = (color: string) => {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-zinc-7)';
} else {
return 'var(--mantine-color-secondary-7)';
}
};
export const getShadcnCardClassname = (color: string) => {
if (color === 'rose' || color === 'green') {
return 'globalMantineCardRoot__roseGreen';
} else {
return 'globalMantineCardRoot';
}
};
export const getShadcnInputBg = (color: string) => {
if (color === 'rose' || color === 'green') {
return 'var(--mantine-color-secondary-filled)';
} else {
return 'var(--mantine-color-default)';
}
};
export function generateShadcnCSSFilledColorVariables(mode: string, isGeneration = false) {
const lightMode: Record = {};
const darkMode: Record = {};
SHADCN_DEFAULT_COLORS.forEach(({ id, primaryShade }) => {
lightMode[`--mantine-color-${id}-filled`] = `var(--mantine-color-${id}-${primaryShade.light})`;
lightMode[`--mantine-color-${id}-filled-hover`] = isGeneration
? `{alpha('var(--mantine-color-${id}-${primaryShade.light})', 0.9)}`
: alpha(`var(--mantine-color-${id}-${primaryShade.light})`, 0.9);
darkMode[`--mantine-color-${id}-filled`] = `var(--mantine-color-${id}-${primaryShade.dark})`;
darkMode[`--mantine-color-${id}-filled-hover`] = isGeneration
? `{alpha('var(--mantine-color-${id}-${primaryShade.dark})', 0.9)}`
: alpha(`var(--mantine-color-${id}-${primaryShade.dark})`, 0.9);
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
export function getPrimaryColorLight(color: string) {
return `var(--mantine-color-${color}-light)`;
};
export function getPrimaryColorLightHover(color: string) {
return `var(--mantine-color-${color}-light-hover)`;
}
export function getPrimaryColorLightColor(color: string) {
return `var(--mantine-color-${color}-light-color)`;
}
export function generateShadcnCSSLightColorVariables(mode: string, isGeneration = false) {
const lightMode: Record = {};
const darkMode: Record = {};
SHADCN_DEFAULT_COLORS.forEach(({ id }) => {
lightMode[`--mantine-color-${id}-light`] = isGeneration
? `{alpha('var(--mantine-color-${id}-4)', 0.1)}`
: alpha(`var(--mantine-color-${id}-4)`, 0.1);
lightMode[`--mantine-color-${id}-light-hover`] = isGeneration
? `{alpha('var(--mantine-color-${id}-light)', 0.8)}`
: alpha(`var(--mantine-color-${id}-light)`, 0.8);
lightMode[`--mantine-color-${id}-light-color`] = `var(--mantine-color-${id}-6)`;
darkMode[`--mantine-color-${id}-light`] = isGeneration
? `{alpha('var(--mantine-color-${id}-4)', 0.15)}`
: alpha(`var(--mantine-color-${id}-4)`, 0.15);
darkMode[`--mantine-color-${id}-light-hover`] = isGeneration
? `{alpha('var(--mantine-color-${id}-light)', 0.8)}`
: alpha(`var(--mantine-color-${id}-light)`, 0.8);
darkMode[`--mantine-color-${id}-light-color`] = `var(--mantine-color-${id}-3)`;
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
export function generateShadcnCSSOutlineColorVariables(mode: string, isGeneration = false) {
const lightMode: Record = {};
const darkMode: Record = {};
SHADCN_DEFAULT_COLORS.forEach(({ id, primaryShade }) => {
lightMode[`--mantine-color-${id}-outline`] = `var(--mantine-color-${id}-${primaryShade.light})`;
lightMode[`--mantine-color-${id}-outline-hover`] = isGeneration
? `{alpha('var(--mantine-color-${id}-4)', 0.1)}`
: alpha(`var(--mantine-color-${id}-4)`, 0.1);
darkMode[`--mantine-color-${id}-outline`] = `var(--mantine-color-${id}-${primaryShade.dark})`;
darkMode[`--mantine-color-${id}-outline-hover`] = isGeneration
? `{alpha('var(--mantine-color-${id}-4)', 0.15)}`
: alpha(`var(--mantine-color-${id}-4)`, 0.15);
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
export function generateShadcnCSSContrastColorVariables(mode: string) {
const lightMode: Record = {};
const darkMode: Record = {};
SHADCN_DEFAULT_COLORS.forEach(({ id }) => {
lightMode[`--mantine-color-${id}-contrast`] = getPrimaryContrastColorDay(id);
darkMode[`--mantine-color-${id}-contrast`] = getPrimaryContrastColorNight(id);
});
if (mode === 'light') {
return lightMode;
}
return darkMode;
}
================================================
FILE: src/utils/themeTemplate.ts
================================================
export const generateThemeTemplate = (theme: string, variableResolver: string) => {
const template = `
import {
alpha,
Card,
Checkbox,
Code,
Container,
createTheme,
CSSVariablesResolver,
defaultVariantColorsResolver,
Divider,
Input,
mergeThemeOverrides,
Modal,
Paper,
Popover,
rem,
Switch,
Table,
Tooltip,
} from "@mantine/core";
import { Spotlight } from "@mantine/spotlight";
const CONTAINER_SIZES: Record = {
xxs: rem(200),
xs: rem(300),
sm: rem(400),
md: rem(500),
lg: rem(600),
xl: rem(1400),
xxl: rem(1600),
};
const theme = createTheme({
/** Put your mantine theme override here */
${theme}
});
${generateVariableResolverTemplate(variableResolver)}
`;
return template;
};
export const generateVariableResolverTemplate = (value: any) => {
const template = `
export const mantineCssVariableResolver: CSSVariablesResolver = () => ({
${value}
});
`;
return template;
};
================================================
FILE: src/utils/variants-data.ts
================================================
import { ConfiguratorControlOptions } from "../components/mantine/demo";
export const STATIC_VARIANTS = ['filled', 'light', 'outline', 'transparent', 'white', 'default'];
export const INTERACTIVE_VARIANTS = [
'default',
'filled',
'light',
'outline',
'subtle',
'transparent',
'white',
];
export const interactiveVariantsControl: ConfiguratorControlOptions = {
type: 'select',
prop: 'variant',
data: INTERACTIVE_VARIANTS,
initialValue: 'filled',
libraryValue: 'filled',
};
export const staticVariantsControl: ConfiguratorControlOptions = {
type: 'select',
prop: 'variant',
data: STATIC_VARIANTS,
initialValue: '',
libraryValue: '',
};
================================================
FILE: src/vite-env.d.ts
================================================
///
================================================
FILE: tailwind.config.js
================================================
/** @type {import('tailwindcss').Config} */
export default {
content: ["./src/**/*.{js,ts,jsx,tsx}"],
theme: {
extend: {},
},
corePlugins: { preflight: false, },
plugins: [],
};
================================================
FILE: tsconfig.app.json
================================================
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,
/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"isolatedModules": true,
"moduleDetection": "force",
"noEmit": true,
"jsx": "react-jsx",
/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src"],
"exclude": ["js"]
}
================================================
FILE: tsconfig.app.tsbuildinfo
================================================
{"root":["./src/main.tsx","./src/routetree.gen.ts","./src/theme-context.tsx","./src/vite-env.d.ts","./src/components/custom/about/about.tsx","./src/components/custom/blocks/coming-soon/coming-soon.tsx","./src/components/custom/change-theme-section/change-theme-button.tsx","./src/components/custom/change-theme-section/change-theme-section.tsx","./src/components/custom/change-theme-section/copy-theme-code-button.tsx","./src/components/custom/components-demo/components-demo.tsx","./src/components/custom/components-demo/buttons/action-icon-demo.tsx","./src/components/custom/components-demo/buttons/button-demo.tsx","./src/components/custom/components-demo/buttons/close-button-demo.tsx","./src/components/custom/components-demo/charts/area-chart-demo.tsx","./src/components/custom/components-demo/charts/bar-chart-demo.tsx","./src/components/custom/components-demo/charts/bubble-chart-demo.tsx","./src/components/custom/components-demo/charts/composite-chart-demo.tsx","./src/components/custom/components-demo/charts/donot-chart-demo.tsx","./src/components/custom/components-demo/charts/line-chart-demo.tsx","./src/components/custom/components-demo/charts/pie-chart-demo.tsx","./src/components/custom/components-demo/charts/radar-chart-demo.tsx","./src/components/custom/components-demo/charts/scatter-chart-demo.tsx","./src/components/custom/components-demo/charts/sparkline-demo.tsx","./src/components/custom/components-demo/charts/data/_area-data.ts","./src/components/custom/components-demo/charts/data/_bar-data.ts","./src/components/custom/components-demo/charts/data/_bubble-data.ts","./src/components/custom/components-demo/charts/data/_donut-data.ts","./src/components/custom/components-demo/charts/data/_pie-data.ts","./src/components/custom/components-demo/charts/data/_radar-data.ts","./src/components/custom/components-demo/charts/data/_scatter-data.ts","./src/components/custom/components-demo/combobox/autocomplete-demo.tsx","./src/components/custom/components-demo/combobox/multi-select-demo.tsx","./src/components/custom/components-demo/combobox/pills-input-demo.tsx","./src/components/custom/components-demo/combobox/select-demo.tsx","./src/components/custom/components-demo/combobox/tags-input-demo.tsx","./src/components/custom/components-demo/data-display/accordion-demo.tsx","./src/components/custom/components-demo/data-display/avatar-demo.tsx","./src/components/custom/components-demo/data-display/background-image-demo.tsx","./src/components/custom/components-demo/data-display/badge-demo.tsx","./src/components/custom/components-demo/data-display/card-demo.tsx","./src/components/custom/components-demo/data-display/color-swatch-demo.tsx","./src/components/custom/components-demo/data-display/image-demo.tsx","./src/components/custom/components-demo/data-display/indicator-demo.tsx","./src/components/custom/components-demo/data-display/spoiler-demo.tsx","./src/components/custom/components-demo/data-display/theme-icon-demo.tsx","./src/components/custom/components-demo/data-display/timeline-demo.tsx","./src/components/custom/components-demo/feedback/alert-demo.tsx","./src/components/custom/components-demo/feedback/loader-demo.tsx","./src/components/custom/components-demo/feedback/notification-demo.tsx","./src/components/custom/components-demo/feedback/progress-demo.tsx","./src/components/custom/components-demo/feedback/ring-progress-demo.tsx","./src/components/custom/components-demo/feedback/semi-circle-progress-demo.tsx","./src/components/custom/components-demo/feedback/skeleton-demo.tsx","./src/components/custom/components-demo/inputs/checkbox-demo.tsx","./src/components/custom/components-demo/inputs/checkbox-group-demo.tsx","./src/components/custom/components-demo/inputs/chip-demo.tsx","./src/components/custom/components-demo/inputs/color-input-demo.tsx","./src/components/custom/components-demo/inputs/fieldset-demo.tsx","./src/components/custom/components-demo/inputs/file-input.tsx","./src/components/custom/components-demo/inputs/native-select-demo.tsx","./src/components/custom/components-demo/inputs/pin-input-demo.tsx","./src/components/custom/components-demo/inputs/radio-demo.tsx","./src/components/custom/components-demo/inputs/radio-group-demo.tsx","./src/components/custom/components-demo/inputs/rating-demo.tsx","./src/components/custom/components-demo/inputs/segmented-control-demo.tsx","./src/components/custom/components-demo/inputs/slider-demo.tsx","./src/components/custom/components-demo/inputs/switch-demo.tsx","./src/components/custom/components-demo/inputs/switch-group-demo.tsx","./src/components/custom/components-demo/inputs/text-input-demo.tsx","./src/components/custom/components-demo/inputs/textarea-demo.tsx","./src/components/custom/components-demo/miscellaneous/date-picker-input-demo.tsx","./src/components/custom/components-demo/miscellaneous/divider-demo.tsx","./src/components/custom/components-demo/miscellaneous/paper-demo.tsx","./src/components/custom/components-demo/miscellaneous/scroll-area-demo.tsx","./src/components/custom/components-demo/navigation/anchor-demo.tsx","./src/components/custom/components-demo/navigation/nav-link-demo.tsx","./src/components/custom/components-demo/navigation/pagination-demo.tsx","./src/components/custom/components-demo/navigation/stepper-demo.tsx","./src/components/custom/components-demo/navigation/tabs-demo.tsx","./src/components/custom/components-demo/overlays/authentication-form.tsx","./src/components/custom/components-demo/overlays/dialog-demo.tsx","./src/components/custom/components-demo/overlays/drawer-demo.tsx","./src/components/custom/components-demo/overlays/hover-card-demo.tsx","./src/components/custom/components-demo/overlays/loading-overlay-demo.tsx","./src/components/custom/components-demo/overlays/menu-demo.tsx","./src/components/custom/components-demo/overlays/modal-demo.tsx","./src/components/custom/components-demo/overlays/overlay-demo.tsx","./src/components/custom/components-demo/overlays/popover-demo.tsx","./src/components/custom/components-demo/overlays/tooltip-demo.tsx","./src/components/custom/components-demo/typography/blockquote-demo.tsx","./src/components/custom/components-demo/typography/code-demo.tsx","./src/components/custom/components-demo/typography/highlight-demo.tsx","./src/components/custom/components-demo/typography/list-demo.tsx","./src/components/custom/components-demo/typography/mark-demo.tsx","./src/components/custom/components-demo/typography/table-demo.tsx","./src/components/custom/components-demo/typography/text-demo.tsx","./src/components/custom/components-demo/typography/title-demo.tsx","./src/components/custom/testimonial/testimonial-grid.tsx","./src/components/custom/testimonial/testimonial-item.tsx","./src/components/custom/theme-example-cards/activity-goal.tsx","./src/components/custom/theme-example-cards/calendar.tsx","./src/components/custom/theme-example-cards/chat.tsx","./src/components/custom/theme-example-cards/cookie-settings.tsx","./src/components/custom/theme-example-cards/create-account.tsx","./src/components/custom/theme-example-cards/data-table.tsx","./src/components/custom/theme-example-cards/mantine-cards.tsx","./src/components/custom/theme-example-cards/metric.tsx","./src/components/custom/theme-example-cards/payment-method.tsx","./src/components/custom/theme-example-cards/report-issue.tsx","./src/components/custom/theme-example-cards/share.tsx","./src/components/custom/theme-example-cards/stats.tsx","./src/components/custom/theme-example-cards/team-members.tsx","./src/components/layouts/page-layout.tsx","./src/components/mantine/demo/index.ts","./src/components/mantine/demo/codedemo/codedemo.tsx","./src/components/mantine/demo/configuratordemo/configuratordemo.tsx","./src/components/mantine/demo/configuratordemo/clear-props.ts","./src/components/mantine/demo/configuratordemo/get-code-array.ts","./src/components/mantine/demo/configuratordemo/inject-props.tsx","./src/components/mantine/demo/configuratordemo/controls/colorwheelicon.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorboolean.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorcolor.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratornumber.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorsegmented.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorselect.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorsize.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorstring.control.tsx","./src/components/mantine/demo/configuratordemo/controls/get-control-label.ts","./src/components/mantine/demo/configuratordemo/controls/index.ts","./src/components/mantine/demo/configuratordemo/controls/transform-select-data.ts","./src/components/mantine/demo/configuratordemo/controls/types.ts","./src/components/mantine/demo/demo/demo.tsx","./src/components/mantine/demo/demoarea/demoarea.tsx","./src/components/mantine/demo/demoarea/index.ts","./src/components/mantine/demo/democode/democode.tsx","./src/components/mantine/demo/democode/index.ts","./src/components/mantine/demo/democolumns/democolumns.tsx","./src/components/mantine/demo/democolumns/index.ts","./src/components/mantine/demo/demoroot/demoroot.tsx","./src/components/mantine/demo/demoroot/index.ts","./src/components/mantine/demo/stylesapidemo/stylesapidemo.tsx","./src/components/ui/chart-tooltip.tsx","./src/components/ui/icons.tsx","./src/components/ui/color-scheme-switch/color-scheme-switch.tsx","./src/components/ui/color-scheme-switch/index.ts","./src/components/ui/header/header.tsx","./src/components/ui/navbar/navbar-links-group.tsx","./src/components/ui/navbar/navbar.tsx","./src/feature/blocks/components/block-components/block-components.tsx","./src/feature/blocks/components/component-canvas/canvas-header.tsx","./src/feature/blocks/components/component-canvas/color-control.tsx","./src/feature/blocks/components/component-canvas/component-canvas.tsx","./src/feature/blocks/components/component-preview/component-preview.tsx","./src/feature/blocks/components/shell/shell.tsx","./src/feature/blocks/data/components.ts","./src/feature/blocks/data/types.ts","./src/feature/blocks/lib/index.ts","./src/feature/blocks/lib/coming-soon/coming-soon.tsx","./src/feature/blocks/lib/feature1/feature1.tsx","./src/feature/blocks/lib/hero1/hero1.tsx","./src/feature/blocks/lib/meet-our-team-1/meet-our-team-1.tsx","./src/feature/blocks/lib/pricing1/pricing1.tsx","./src/routes/__root.tsx","./src/routes/about.tsx","./src/routes/blocks.tsx","./src/routes/feedback.tsx","./src/routes/index.tsx","./src/routes/playground.tsx","./src/themes/generated/generatedmantinecssstyles.ts","./src/themes/generated/generatedmantinecssvariableresolver.ts","./src/themes/generated/generatedmantinetheme.ts","./src/themes/generated/generatedshadcncssstyles.ts","./src/themes/generated/generatedshadcncssvariableresolver.ts","./src/themes/generated/generatedshadcntheme.ts","./src/themes/mantine/mantine-css-variable-resolver.ts","./src/themes/mantine/mantine-theme.ts","./src/themes/shadcn/shadcn-css-variable-resolver.ts","./src/themes/shadcn/shadcn-theme.ts","./src/themes/test/shadcn-css-variable-resolver-test.ts","./src/themes/test/shadcn-theme-test.ts","./src/utils/colors.ts","./src/utils/csstemplate.ts","./src/utils/data.ts","./src/utils/functions.ts","./src/utils/input-controls.ts","./src/utils/testimonials.ts","./src/utils/theme-functions.ts","./src/utils/themetemplate.ts","./src/utils/variants-data.ts"],"version":"5.6.3"}
================================================
FILE: tsconfig.json
================================================
{
// "files": [],
// "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }],
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": [
"ES2020",
"DOM",
"DOM.Iterable"
],
"module": "ESNext",
"esModuleInterop": true,
"skipLibCheck": true,
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "preserve",
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true,
"allowJs": true,
"forceConsistentCasingInFileNames": true,
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"baseUrl": ".",
"paths": {
"@/*": [
"src/*"
]
}
},
"include": [
"./dist/types/**/*.ts",
"./next-env.d.ts",
"./src",
".next/types/**/*.ts"
],
"exclude": [
"./node_modules"
]
}
================================================
FILE: tsconfig.node.tsbuildinfo
================================================
{"root":["./vite.config.ts"],"version":"5.6.3"}
================================================
FILE: tsconfig.tsbuildinfo
================================================
{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./dist/types/cache-life.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/dom-events.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/lib/revalidate.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/app-render/clean-async-snapshot-instance.d.ts","./node_modules/next/dist/server/app-render/clean-async-snapshot.external.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/client/components/react-dev-overlay/types.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./src/routetree.gen.ts","./node_modules/react-remove-scroll/dist/es5/types.d.ts","./node_modules/react-remove-scroll/dist/es5/combination.d.ts","./node_modules/react-remove-scroll/dist/es5/index.d.ts","./node_modules/@mantine/core/lib/core/utils/keys/keys.d.ts","./node_modules/@mantine/core/lib/core/utils/deep-merge/deep-merge.d.ts","./node_modules/@mantine/core/lib/core/utils/camel-to-kebab-case/camel-to-kebab-case.d.ts","./node_modules/@mantine/core/lib/core/utils/units-converters/px.d.ts","./node_modules/@mantine/core/lib/core/utils/units-converters/rem.d.ts","./node_modules/@mantine/core/lib/core/utils/units-converters/index.d.ts","./node_modules/@mantine/core/lib/core/utils/filter-props/filter-props.d.ts","./node_modules/@mantine/core/lib/core/utils/is-number-like/is-number-like.d.ts","./node_modules/@mantine/core/lib/core/utils/is-element/is-element.d.ts","./node_modules/@mantine/core/lib/core/utils/create-safe-context/create-safe-context.d.ts","./node_modules/@mantine/core/lib/core/utils/create-optional-context/create-optional-context.d.ts","./node_modules/@mantine/core/lib/core/utils/get-safe-id/get-safe-id.d.ts","./node_modules/@mantine/core/lib/core/utils/create-scoped-keydown-handler/create-scoped-keydown-handler.d.ts","./node_modules/@mantine/core/lib/core/utils/find-element-ancestor/find-element-ancestor.d.ts","./node_modules/@mantine/core/lib/core/utils/get-default-z-index/get-default-z-index.d.ts","./node_modules/@mantine/core/lib/core/utils/close-on-escape/close-on-escape.d.ts","./node_modules/@mantine/core/lib/core/utils/noop/noop.d.ts","./node_modules/@mantine/core/lib/core/utils/get-size/get-size.d.ts","./node_modules/@mantine/core/lib/core/utils/create-event-handler/create-event-handler.d.ts","./node_modules/type-fest/source/primitive.d.ts","./node_modules/type-fest/source/typed-array.d.ts","./node_modules/type-fest/source/basic.d.ts","./node_modules/type-fest/source/observable-like.d.ts","./node_modules/type-fest/source/keys-of-union.d.ts","./node_modules/type-fest/source/distributed-omit.d.ts","./node_modules/type-fest/source/distributed-pick.d.ts","./node_modules/type-fest/source/empty-object.d.ts","./node_modules/type-fest/source/if-empty-object.d.ts","./node_modules/type-fest/source/required-keys-of.d.ts","./node_modules/type-fest/source/has-required-keys.d.ts","./node_modules/type-fest/source/is-equal.d.ts","./node_modules/type-fest/source/except.d.ts","./node_modules/type-fest/source/require-at-least-one.d.ts","./node_modules/type-fest/source/non-empty-object.d.ts","./node_modules/type-fest/source/unknown-record.d.ts","./node_modules/type-fest/source/unknown-array.d.ts","./node_modules/type-fest/source/tagged-union.d.ts","./node_modules/type-fest/source/simplify.d.ts","./node_modules/type-fest/source/writable.d.ts","./node_modules/type-fest/source/is-never.d.ts","./node_modules/type-fest/source/if-never.d.ts","./node_modules/type-fest/source/internal/array.d.ts","./node_modules/type-fest/source/internal/characters.d.ts","./node_modules/type-fest/source/is-any.d.ts","./node_modules/type-fest/source/is-float.d.ts","./node_modules/type-fest/source/is-integer.d.ts","./node_modules/type-fest/source/numeric.d.ts","./node_modules/type-fest/source/is-literal.d.ts","./node_modules/type-fest/source/trim.d.ts","./node_modules/type-fest/source/and.d.ts","./node_modules/type-fest/source/or.d.ts","./node_modules/type-fest/source/greater-than.d.ts","./node_modules/type-fest/source/greater-than-or-equal.d.ts","./node_modules/type-fest/source/less-than.d.ts","./node_modules/type-fest/source/internal/tuple.d.ts","./node_modules/type-fest/source/internal/string.d.ts","./node_modules/type-fest/source/internal/keys.d.ts","./node_modules/type-fest/source/internal/numeric.d.ts","./node_modules/type-fest/source/internal/type.d.ts","./node_modules/type-fest/source/internal/object.d.ts","./node_modules/type-fest/source/internal/index.d.ts","./node_modules/type-fest/source/writable-deep.d.ts","./node_modules/type-fest/source/omit-index-signature.d.ts","./node_modules/type-fest/source/pick-index-signature.d.ts","./node_modules/type-fest/source/merge.d.ts","./node_modules/type-fest/source/conditional-simplify.d.ts","./node_modules/type-fest/source/non-empty-tuple.d.ts","./node_modules/type-fest/source/array-tail.d.ts","./node_modules/type-fest/source/enforce-optional.d.ts","./node_modules/type-fest/source/simplify-deep.d.ts","./node_modules/type-fest/source/merge-deep.d.ts","./node_modules/type-fest/source/merge-exclusive.d.ts","./node_modules/type-fest/source/require-exactly-one.d.ts","./node_modules/type-fest/source/require-all-or-none.d.ts","./node_modules/type-fest/source/require-one-or-none.d.ts","./node_modules/type-fest/source/single-key-object.d.ts","./node_modules/type-fest/source/partial-deep.d.ts","./node_modules/type-fest/source/required-deep.d.ts","./node_modules/type-fest/source/sum.d.ts","./node_modules/type-fest/source/subtract.d.ts","./node_modules/type-fest/source/paths.d.ts","./node_modules/type-fest/source/union-to-intersection.d.ts","./node_modules/type-fest/source/pick-deep.d.ts","./node_modules/type-fest/source/array-splice.d.ts","./node_modules/type-fest/source/literal-union.d.ts","./node_modules/type-fest/source/shared-union-fields-deep.d.ts","./node_modules/type-fest/source/omit-deep.d.ts","./node_modules/type-fest/source/is-null.d.ts","./node_modules/type-fest/source/is-unknown.d.ts","./node_modules/type-fest/source/if-unknown.d.ts","./node_modules/type-fest/source/partial-on-undefined-deep.d.ts","./node_modules/type-fest/source/undefined-on-partial-deep.d.ts","./node_modules/type-fest/source/readonly-deep.d.ts","./node_modules/type-fest/source/promisable.d.ts","./node_modules/type-fest/source/arrayable.d.ts","./node_modules/type-fest/source/tagged.d.ts","./node_modules/type-fest/source/invariant-of.d.ts","./node_modules/type-fest/source/set-optional.d.ts","./node_modules/type-fest/source/set-readonly.d.ts","./node_modules/type-fest/source/optional-keys-of.d.ts","./node_modules/type-fest/source/set-required.d.ts","./node_modules/type-fest/source/set-required-deep.d.ts","./node_modules/type-fest/source/set-non-nullable.d.ts","./node_modules/type-fest/source/value-of.d.ts","./node_modules/type-fest/source/async-return-type.d.ts","./node_modules/type-fest/source/conditional-keys.d.ts","./node_modules/type-fest/source/conditional-except.d.ts","./node_modules/type-fest/source/conditional-pick.d.ts","./node_modules/type-fest/source/conditional-pick-deep.d.ts","./node_modules/type-fest/source/stringified.d.ts","./node_modules/type-fest/source/join.d.ts","./node_modules/type-fest/source/less-than-or-equal.d.ts","./node_modules/type-fest/source/array-slice.d.ts","./node_modules/type-fest/source/string-slice.d.ts","./node_modules/type-fest/source/fixed-length-array.d.ts","./node_modules/type-fest/source/multidimensional-array.d.ts","./node_modules/type-fest/source/multidimensional-readonly-array.d.ts","./node_modules/type-fest/source/iterable-element.d.ts","./node_modules/type-fest/source/entry.d.ts","./node_modules/type-fest/source/entries.d.ts","./node_modules/type-fest/source/set-return-type.d.ts","./node_modules/type-fest/source/set-parameter-type.d.ts","./node_modules/type-fest/source/asyncify.d.ts","./node_modules/type-fest/source/jsonify.d.ts","./node_modules/type-fest/source/jsonifiable.d.ts","./node_modules/type-fest/source/find-global-type.d.ts","./node_modules/type-fest/source/structured-cloneable.d.ts","./node_modules/type-fest/source/schema.d.ts","./node_modules/type-fest/source/literal-to-primitive.d.ts","./node_modules/type-fest/source/literal-to-primitive-deep.d.ts","./node_modules/type-fest/source/string-key-of.d.ts","./node_modules/type-fest/source/exact.d.ts","./node_modules/type-fest/source/readonly-tuple.d.ts","./node_modules/type-fest/source/override-properties.d.ts","./node_modules/type-fest/source/has-optional-keys.d.ts","./node_modules/type-fest/source/readonly-keys-of.d.ts","./node_modules/type-fest/source/has-readonly-keys.d.ts","./node_modules/type-fest/source/writable-keys-of.d.ts","./node_modules/type-fest/source/has-writable-keys.d.ts","./node_modules/type-fest/source/spread.d.ts","./node_modules/type-fest/source/tuple-to-union.d.ts","./node_modules/type-fest/source/union-to-tuple.d.ts","./node_modules/type-fest/source/int-range.d.ts","./node_modules/type-fest/source/int-closed-range.d.ts","./node_modules/type-fest/source/if-any.d.ts","./node_modules/type-fest/source/is-tuple.d.ts","./node_modules/type-fest/source/array-indices.d.ts","./node_modules/type-fest/source/array-values.d.ts","./node_modules/type-fest/source/set-field-type.d.ts","./node_modules/type-fest/source/shared-union-fields.d.ts","./node_modules/type-fest/source/if-null.d.ts","./node_modules/type-fest/source/words.d.ts","./node_modules/type-fest/source/camel-case.d.ts","./node_modules/type-fest/source/camel-cased-properties.d.ts","./node_modules/type-fest/source/camel-cased-properties-deep.d.ts","./node_modules/type-fest/source/delimiter-case.d.ts","./node_modules/type-fest/source/kebab-case.d.ts","./node_modules/type-fest/source/delimiter-cased-properties.d.ts","./node_modules/type-fest/source/kebab-cased-properties.d.ts","./node_modules/type-fest/source/delimiter-cased-properties-deep.d.ts","./node_modules/type-fest/source/kebab-cased-properties-deep.d.ts","./node_modules/type-fest/source/pascal-case.d.ts","./node_modules/type-fest/source/pascal-cased-properties.d.ts","./node_modules/type-fest/source/pascal-cased-properties-deep.d.ts","./node_modules/type-fest/source/snake-case.d.ts","./node_modules/type-fest/source/snake-cased-properties.d.ts","./node_modules/type-fest/source/snake-cased-properties-deep.d.ts","./node_modules/type-fest/source/includes.d.ts","./node_modules/type-fest/source/screaming-snake-case.d.ts","./node_modules/type-fest/source/split.d.ts","./node_modules/type-fest/source/replace.d.ts","./node_modules/type-fest/source/string-repeat.d.ts","./node_modules/type-fest/source/get.d.ts","./node_modules/type-fest/source/last-array-element.d.ts","./node_modules/type-fest/source/global-this.d.ts","./node_modules/type-fest/source/package-json.d.ts","./node_modules/type-fest/source/tsconfig-json.d.ts","./node_modules/type-fest/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/get-primary-shade/get-primary-shade.d.ts","./node_modules/@mantine/core/lib/core/box/box.types.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/style-props.types.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/extract-style-props/extract-style-props.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/border-resolver/border-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/color-resolver/color-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/font-family-resolver/font-family-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/font-size-resolver/font-size-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/identity-resolver/identity-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/line-height-resolver/line-height-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/size-resolver/size-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/spacing-resolver/spacing-resolver.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/resolvers/index.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/style-props-data.d.ts","./node_modules/@mantine/core/lib/core/inlinestyles/styles-to-string/styles-to-string.d.ts","./node_modules/@mantine/core/lib/core/inlinestyles/inlinestyles.d.ts","./node_modules/@mantine/core/lib/core/inlinestyles/index.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/parse-style-props/sort-media-queries.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/parse-style-props/parse-style-props.d.ts","./node_modules/@mantine/core/lib/core/box/style-props/index.d.ts","./node_modules/@mantine/core/lib/core/box/use-random-classname/use-random-classname.d.ts","./node_modules/@mantine/core/lib/core/box/get-style-object/get-style-object.d.ts","./node_modules/@mantine/core/lib/core/styles-api/create-vars-resolver/create-vars-resolver.d.ts","./node_modules/@mantine/core/lib/core/styles-api/styles-api.types.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/get-class-name/get-class-name.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/get-class-name/resolve-class-names/resolve-class-names.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/get-style/resolve-vars/resolve-vars.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/get-style/get-style.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/get-style/resolve-styles/resolve-styles.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-resolved-styles-api/use-resolved-styles-api.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/get-class-name/get-global-class-names/get-global-class-names.d.ts","./node_modules/@mantine/core/lib/core/styles-api/use-styles/use-styles.d.ts","./node_modules/@mantine/core/lib/core/styles-api/index.d.ts","./node_modules/@mantine/core/lib/core/factory/factory.d.ts","./node_modules/@mantine/core/lib/core/factory/create-polymorphic-component.d.ts","./node_modules/@mantine/core/lib/core/factory/polymorphic-factory.d.ts","./node_modules/@mantine/core/lib/core/factory/create-factory.d.ts","./node_modules/@mantine/core/lib/core/factory/index.d.ts","./node_modules/@mantine/core/lib/core/box/box.d.ts","./node_modules/@mantine/core/lib/core/box/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/parse-theme-color/parse-theme-color.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/get-theme-color/get-theme-color.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/default-variant-colors-resolver/default-variant-colors-resolver.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/get-gradient/get-gradient.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/to-rgba/to-rgba.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/rgba/rgba.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/darken/darken.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/lighten/lighten.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/luminance/luminance.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/get-contrast-color/get-contrast-color.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/get-auto-contrast-value/get-auto-contrast-value.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/colors-tuple/colors-tuple.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-functions/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/theme.types.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-scheme-managers/types.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-scheme-managers/local-storage-manager.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-scheme-managers/is-mantine-color-scheme.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/color-scheme-managers/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/use-mantine-color-scheme/use-mantine-color-scheme.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/use-mantine-color-scheme/use-provider-color-scheme.d.ts","./node_modules/@mantine/hooks/lib/utils/clamp/clamp.d.ts","./node_modules/@mantine/hooks/lib/utils/lower-first/lower-first.d.ts","./node_modules/@mantine/hooks/lib/utils/random-id/random-id.d.ts","./node_modules/@mantine/hooks/lib/utils/range/range.d.ts","./node_modules/@mantine/hooks/lib/utils/shallow-equal/shallow-equal.d.ts","./node_modules/@mantine/hooks/lib/utils/upper-first/upper-first.d.ts","./node_modules/@mantine/hooks/lib/utils/index.d.ts","./node_modules/@mantine/hooks/lib/use-callback-ref/use-callback-ref.d.ts","./node_modules/@mantine/hooks/lib/use-debounced-callback/use-debounced-callback.d.ts","./node_modules/@mantine/hooks/lib/use-click-outside/use-click-outside.d.ts","./node_modules/@mantine/hooks/lib/use-clipboard/use-clipboard.d.ts","./node_modules/@mantine/hooks/lib/use-media-query/use-media-query.d.ts","./node_modules/@mantine/hooks/lib/use-color-scheme/use-color-scheme.d.ts","./node_modules/@mantine/hooks/lib/use-counter/use-counter.d.ts","./node_modules/@mantine/hooks/lib/use-debounced-state/use-debounced-state.d.ts","./node_modules/@mantine/hooks/lib/use-debounced-value/use-debounced-value.d.ts","./node_modules/@mantine/hooks/lib/use-document-title/use-document-title.d.ts","./node_modules/@mantine/hooks/lib/use-document-visibility/use-document-visibility.d.ts","./node_modules/@mantine/hooks/lib/use-focus-return/use-focus-return.d.ts","./node_modules/@mantine/hooks/lib/use-did-update/use-did-update.d.ts","./node_modules/@mantine/hooks/lib/use-focus-trap/use-focus-trap.d.ts","./node_modules/@mantine/hooks/lib/use-force-update/use-force-update.d.ts","./node_modules/@mantine/hooks/lib/use-id/use-id.d.ts","./node_modules/@mantine/hooks/lib/use-idle/use-idle.d.ts","./node_modules/@mantine/hooks/lib/use-interval/use-interval.d.ts","./node_modules/@mantine/hooks/lib/use-isomorphic-effect/use-isomorphic-effect.d.ts","./node_modules/@mantine/hooks/lib/use-list-state/use-list-state.d.ts","./node_modules/@mantine/hooks/lib/use-local-storage/create-storage.d.ts","./node_modules/@mantine/hooks/lib/use-local-storage/use-local-storage.d.ts","./node_modules/@mantine/hooks/lib/use-session-storage/use-session-storage.d.ts","./node_modules/@mantine/hooks/lib/use-merged-ref/use-merged-ref.d.ts","./node_modules/@mantine/hooks/lib/use-mouse/use-mouse.d.ts","./node_modules/@mantine/hooks/lib/use-move/use-move.d.ts","./node_modules/@mantine/hooks/lib/use-pagination/use-pagination.d.ts","./node_modules/@mantine/hooks/lib/use-queue/use-queue.d.ts","./node_modules/@mantine/hooks/lib/use-page-leave/use-page-leave.d.ts","./node_modules/@mantine/hooks/lib/use-reduced-motion/use-reduced-motion.d.ts","./node_modules/@mantine/hooks/lib/use-scroll-into-view/use-scroll-into-view.d.ts","./node_modules/@mantine/hooks/lib/use-resize-observer/use-resize-observer.d.ts","./node_modules/@mantine/hooks/lib/use-shallow-effect/use-shallow-effect.d.ts","./node_modules/@mantine/hooks/lib/use-toggle/use-toggle.d.ts","./node_modules/@mantine/hooks/lib/use-uncontrolled/use-uncontrolled.d.ts","./node_modules/@mantine/hooks/lib/use-viewport-size/use-viewport-size.d.ts","./node_modules/@mantine/hooks/lib/use-window-event/use-window-event.d.ts","./node_modules/@mantine/hooks/lib/use-window-scroll/use-window-scroll.d.ts","./node_modules/@mantine/hooks/lib/use-intersection/use-intersection.d.ts","./node_modules/@mantine/hooks/lib/use-hash/use-hash.d.ts","./node_modules/@mantine/hooks/lib/use-hotkeys/parse-hotkey.d.ts","./node_modules/@mantine/hooks/lib/use-hotkeys/use-hotkeys.d.ts","./node_modules/@mantine/hooks/lib/use-fullscreen/use-fullscreen.d.ts","./node_modules/@mantine/hooks/lib/use-logger/use-logger.d.ts","./node_modules/@mantine/hooks/lib/use-hover/use-hover.d.ts","./node_modules/@mantine/hooks/lib/use-validated-state/use-validated-state.d.ts","./node_modules/@mantine/hooks/lib/use-os/use-os.d.ts","./node_modules/@mantine/hooks/lib/use-set-state/use-set-state.d.ts","./node_modules/@mantine/hooks/lib/use-input-state/use-input-state.d.ts","./node_modules/@mantine/hooks/lib/use-event-listener/use-event-listener.d.ts","./node_modules/@mantine/hooks/lib/use-disclosure/use-disclosure.d.ts","./node_modules/@mantine/hooks/lib/use-focus-within/use-focus-within.d.ts","./node_modules/@mantine/hooks/lib/use-network/use-network.d.ts","./node_modules/@mantine/hooks/lib/use-timeout/use-timeout.d.ts","./node_modules/@mantine/hooks/lib/use-text-selection/use-text-selection.d.ts","./node_modules/@mantine/hooks/lib/use-previous/use-previous.d.ts","./node_modules/@mantine/hooks/lib/use-favicon/use-favicon.d.ts","./node_modules/@mantine/hooks/lib/use-headroom/use-headroom.d.ts","./node_modules/@mantine/hooks/lib/use-eye-dropper/use-eye-dropper.d.ts","./node_modules/@mantine/hooks/lib/use-in-viewport/use-in-viewport.d.ts","./node_modules/@mantine/hooks/lib/use-mutation-observer/use-mutation-observer.d.ts","./node_modules/@mantine/hooks/lib/use-mounted/use-mounted.d.ts","./node_modules/@mantine/hooks/lib/use-state-history/use-state-history.d.ts","./node_modules/@mantine/hooks/lib/use-map/use-map.d.ts","./node_modules/@mantine/hooks/lib/use-set/use-set.d.ts","./node_modules/@mantine/hooks/lib/use-throttled-callback/use-throttled-callback.d.ts","./node_modules/@mantine/hooks/lib/use-throttled-state/use-throttled-state.d.ts","./node_modules/@mantine/hooks/lib/use-throttled-value/use-throttled-value.d.ts","./node_modules/@mantine/hooks/lib/use-is-first-render/use-is-first-render.d.ts","./node_modules/@mantine/hooks/lib/use-orientation/use-orientation.d.ts","./node_modules/@mantine/hooks/lib/use-fetch/use-fetch.d.ts","./node_modules/@mantine/hooks/lib/use-radial-move/use-radial-move.d.ts","./node_modules/@mantine/hooks/lib/use-scroll-spy/use-scroll-spy.d.ts","./node_modules/@mantine/hooks/lib/index.d.mts","./node_modules/@mantine/core/lib/core/mantineprovider/use-mantine-color-scheme/use-computed-color-scheme.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/use-mantine-color-scheme/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/colorschemescript/colorschemescript.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/colorschemescript/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/default-theme.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/merge-mantine-theme/merge-mantine-theme.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/merge-mantine-theme/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/convert-css-variables/css-variables-object-to-string.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/convert-css-variables/convert-css-variables.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/convert-css-variables/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantine.context.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinecssvariables/mantinecssvariables.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinecssvariables/default-css-variables-resolver.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinecssvariables/get-css-color-variables.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinecssvariables/virtual-color/virtual-color.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinecssvariables/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantineprovider.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinethemeprovider/mantinethemeprovider.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantinethemeprovider/index.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/use-props/use-props.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/create-theme/create-theme.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/merge-theme-overrides/merge-theme-overrides.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/use-matches/use-matches.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/mantine-html-props.d.ts","./node_modules/@mantine/core/lib/core/mantineprovider/index.d.ts","./node_modules/@mantine/core/lib/core/utils/get-breakpoint-value/get-breakpoint-value.d.ts","./node_modules/@mantine/core/lib/core/utils/get-sorted-breakpoints/get-sorted-breakpoints.d.ts","./node_modules/@mantine/core/lib/core/utils/get-base-value/get-base-value.d.ts","./node_modules/@mantine/core/lib/core/utils/get-context-item-index/get-context-item-index.d.ts","./node_modules/@mantine/core/lib/core/utils/use-hovered/use-hovered.d.ts","./node_modules/@mantine/core/lib/core/utils/create-use-external-events/create-use-external-events.d.ts","./node_modules/@mantine/core/lib/core/utils/get-env/get-env.d.ts","./node_modules/@mantine/core/lib/core/utils/memoize/memoize.d.ts","./node_modules/@mantine/core/lib/core/utils/find-closest-number/find-closest-number.d.ts","./node_modules/@mantine/core/lib/core/utils/get-ref-prop/get-ref-prop.d.ts","./node_modules/@mantine/core/lib/core/utils/index.d.ts","./node_modules/@mantine/core/lib/core/directionprovider/directionprovider.d.ts","./node_modules/@mantine/core/lib/core/directionprovider/index.d.ts","./node_modules/@mantine/core/lib/core/index.d.ts","./node_modules/@mantine/core/lib/components/collapse/collapse.d.ts","./node_modules/@mantine/core/lib/components/collapse/index.d.ts","./node_modules/@mantine/core/lib/components/scrollarea/scrollarea.d.ts","./node_modules/@mantine/core/lib/components/scrollarea/index.d.ts","./node_modules/@mantine/core/lib/components/unstyledbutton/unstyledbutton.d.ts","./node_modules/@mantine/core/lib/components/unstyledbutton/index.d.ts","./node_modules/@mantine/core/lib/components/visuallyhidden/visuallyhidden.d.ts","./node_modules/@mantine/core/lib/components/visuallyhidden/index.d.ts","./node_modules/@mantine/core/lib/components/paper/paper.d.ts","./node_modules/@mantine/core/lib/components/paper/index.d.ts","./node_modules/@mantine/core/lib/components/floating/use-delayed-hover.d.ts","./node_modules/@mantine/core/lib/components/floating/types.d.ts","./node_modules/@mantine/core/lib/components/floating/use-floating-auto-update.d.ts","./node_modules/@mantine/core/lib/components/floating/get-floating-position/get-floating-position.d.ts","./node_modules/@mantine/core/lib/components/floating/floatingarrow/floatingarrow.d.ts","./node_modules/@mantine/core/lib/components/floating/index.d.ts","./node_modules/@mantine/core/lib/components/overlay/overlay.d.ts","./node_modules/@mantine/core/lib/components/overlay/index.d.ts","./node_modules/@mantine/core/lib/components/portal/portal.d.ts","./node_modules/@mantine/core/lib/components/portal/optionalportal.d.ts","./node_modules/@mantine/core/lib/components/portal/index.d.ts","./node_modules/@mantine/core/lib/components/transition/transitions.d.ts","./node_modules/@mantine/core/lib/components/transition/transition.d.ts","./node_modules/@mantine/core/lib/components/transition/get-transition-props/get-transition-props.d.ts","./node_modules/@mantine/core/lib/components/transition/index.d.ts","./node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts","./node_modules/@floating-ui/core/dist/floating-ui.core.d.mts","./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts","./node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts","./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts","./node_modules/@floating-ui/react/dist/floating-ui.react.d.mts","./node_modules/@mantine/core/lib/components/popover/popover.types.d.ts","./node_modules/@mantine/core/lib/components/popover/popovertarget/popovertarget.d.ts","./node_modules/@mantine/core/lib/components/popover/popoverdropdown/popoverdropdown.d.ts","./node_modules/@mantine/core/lib/components/popover/popover.d.ts","./node_modules/@mantine/core/lib/components/popover/index.d.ts","./node_modules/@mantine/core/lib/components/loader/loader.types.d.ts","./node_modules/@mantine/core/lib/components/loader/loader.d.ts","./node_modules/@mantine/core/lib/components/loader/index.d.ts","./node_modules/@mantine/core/lib/components/actionicon/actionicongroup/actionicongroup.d.ts","./node_modules/@mantine/core/lib/components/actionicon/actionicongroupsection/actionicongroupsection.d.ts","./node_modules/@mantine/core/lib/components/actionicon/actionicon.d.ts","./node_modules/@mantine/core/lib/components/actionicon/index.d.ts","./node_modules/@mantine/core/lib/components/closebutton/closeicon.d.ts","./node_modules/@mantine/core/lib/components/closebutton/closebutton.d.ts","./node_modules/@mantine/core/lib/components/closebutton/index.d.ts","./node_modules/@mantine/core/lib/components/group/group.d.ts","./node_modules/@mantine/core/lib/components/group/index.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbase.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbasebody.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbaseclosebutton.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbasecontent.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbaseheader.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbaseoverlay.d.ts","./node_modules/@mantine/core/lib/components/modalbase/modalbasetitle.d.ts","./node_modules/@mantine/core/lib/components/modalbase/nativescrollarea.d.ts","./node_modules/@mantine/core/lib/components/modalbase/index.d.ts","./node_modules/@mantine/core/lib/components/input/inputclearbutton/inputclearbutton.d.ts","./node_modules/@mantine/core/lib/components/input/inputdescription/inputdescription.d.ts","./node_modules/@mantine/core/lib/components/input/inputerror/inputerror.d.ts","./node_modules/@mantine/core/lib/components/input/inputlabel/inputlabel.d.ts","./node_modules/@mantine/core/lib/components/input/inputplaceholder/inputplaceholder.d.ts","./node_modules/@mantine/core/lib/components/input/inputwrapper/inputwrapper.d.ts","./node_modules/@mantine/core/lib/components/input/input.d.ts","./node_modules/@mantine/core/lib/components/input/use-input-props.d.ts","./node_modules/@mantine/core/lib/components/input/inputwrapper.context.d.ts","./node_modules/@mantine/core/lib/components/input/index.d.ts","./node_modules/@mantine/core/lib/components/inputbase/inputbase.d.ts","./node_modules/@mantine/core/lib/components/inputbase/index.d.ts","./node_modules/@mantine/core/lib/components/flex/flex-props.d.ts","./node_modules/@mantine/core/lib/components/flex/flex.d.ts","./node_modules/@mantine/core/lib/components/flex/index.d.ts","./node_modules/@mantine/core/lib/components/floatingindicator/floatingindicator.d.ts","./node_modules/@mantine/core/lib/components/floatingindicator/index.d.ts","./node_modules/@mantine/core/lib/components/accordion/accordion.types.d.ts","./node_modules/@mantine/core/lib/components/accordion/accordionchevron.d.ts","./node_modules/@mantine/core/lib/components/accordion/accordionitem/accordionitem.d.ts","./node_modules/@mantine/core/lib/components/accordion/accordionpanel/accordionpanel.d.ts","./node_modules/@mantine/core/lib/components/accordion/accordioncontrol/accordioncontrol.d.ts","./node_modules/@mantine/core/lib/components/accordion/accordion.d.ts","./node_modules/@mantine/core/lib/components/accordion/index.d.ts","./node_modules/@mantine/core/lib/components/affix/affix.d.ts","./node_modules/@mantine/core/lib/components/affix/index.d.ts","./node_modules/@mantine/core/lib/components/alert/alert.d.ts","./node_modules/@mantine/core/lib/components/alert/index.d.ts","./node_modules/@mantine/core/lib/components/text/text.d.ts","./node_modules/@mantine/core/lib/components/text/index.d.ts","./node_modules/@mantine/core/lib/components/anchor/anchor.d.ts","./node_modules/@mantine/core/lib/components/anchor/index.d.ts","./node_modules/@mantine/core/lib/components/angleslider/angleslider.d.ts","./node_modules/@mantine/core/lib/components/angleslider/index.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshell.types.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshellaside/appshellaside.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshellfooter/appshellfooter.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshellheader/appshellheader.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshellmain/appshellmain.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshellnavbar/appshellnavbar.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshellsection/appshellsection.d.ts","./node_modules/@mantine/core/lib/components/appshell/appshell.d.ts","./node_modules/@mantine/core/lib/components/appshell/index.d.ts","./node_modules/@mantine/core/lib/components/aspectratio/aspectratio.d.ts","./node_modules/@mantine/core/lib/components/aspectratio/index.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxchevron/comboboxchevron.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxclearbutton/comboboxclearbutton.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxdropdown/comboboxdropdown.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxdropdowntarget/comboboxdropdowntarget.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxempty/comboboxempty.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxeventstarget/comboboxeventstarget.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxfooter/comboboxfooter.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxgroup/comboboxgroup.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxheader/comboboxheader.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxhiddeninput/comboboxhiddeninput.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxoption/comboboxoption.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxoptions/comboboxoptions.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxsearch/comboboxsearch.d.ts","./node_modules/@mantine/core/lib/components/combobox/comboboxtarget/comboboxtarget.d.ts","./node_modules/@mantine/core/lib/components/combobox/use-combobox/use-combobox.d.ts","./node_modules/@mantine/core/lib/components/combobox/combobox.d.ts","./node_modules/@mantine/core/lib/components/combobox/optionsdropdown/default-options-filter.d.ts","./node_modules/@mantine/core/lib/components/combobox/optionsdropdown/optionsdropdown.d.ts","./node_modules/@mantine/core/lib/components/combobox/combobox.types.d.ts","./node_modules/@mantine/core/lib/components/combobox/get-parsed-combobox-data/get-parsed-combobox-data.d.ts","./node_modules/@mantine/core/lib/components/combobox/get-options-lockup/get-options-lockup.d.ts","./node_modules/@mantine/core/lib/components/combobox/use-combobox/use-virtualized-combobox.d.ts","./node_modules/@mantine/core/lib/components/combobox/use-combobox-target-props/use-combobox-target-props.d.ts","./node_modules/@mantine/core/lib/components/combobox/optionsdropdown/is-options-group.d.ts","./node_modules/@mantine/core/lib/components/combobox/index.d.ts","./node_modules/@mantine/core/lib/components/autocomplete/autocomplete.d.ts","./node_modules/@mantine/core/lib/components/autocomplete/index.d.ts","./node_modules/@mantine/core/lib/components/avatar/avatargroup/avatargroup.d.ts","./node_modules/@mantine/core/lib/components/avatar/avatar.d.ts","./node_modules/@mantine/core/lib/components/avatar/index.d.ts","./node_modules/@mantine/core/lib/components/backgroundimage/backgroundimage.d.ts","./node_modules/@mantine/core/lib/components/backgroundimage/index.d.ts","./node_modules/@mantine/core/lib/components/badge/badge.d.ts","./node_modules/@mantine/core/lib/components/badge/index.d.ts","./node_modules/@mantine/core/lib/components/blockquote/blockquote.d.ts","./node_modules/@mantine/core/lib/components/blockquote/index.d.ts","./node_modules/@mantine/core/lib/components/breadcrumbs/breadcrumbs.d.ts","./node_modules/@mantine/core/lib/components/breadcrumbs/index.d.ts","./node_modules/@mantine/core/lib/components/burger/burger.d.ts","./node_modules/@mantine/core/lib/components/burger/index.d.ts","./node_modules/@mantine/core/lib/components/button/buttongroup/buttongroup.d.ts","./node_modules/@mantine/core/lib/components/button/buttongroupsection/buttongroupsection.d.ts","./node_modules/@mantine/core/lib/components/button/button.d.ts","./node_modules/@mantine/core/lib/components/button/index.d.ts","./node_modules/@mantine/core/lib/components/card/cardsection/cardsection.d.ts","./node_modules/@mantine/core/lib/components/card/card.d.ts","./node_modules/@mantine/core/lib/components/card/index.d.ts","./node_modules/@mantine/core/lib/components/center/center.d.ts","./node_modules/@mantine/core/lib/components/center/index.d.ts","./node_modules/@mantine/core/lib/components/inlineinput/inlineinput.d.ts","./node_modules/@mantine/core/lib/components/inlineinput/index.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkboxcard/checkboxcard.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkboxgroup/checkboxgroup.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkboxindicator/checkboxindicator.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkbox.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkicon.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkboxcard/checkboxcard.context.d.ts","./node_modules/@mantine/core/lib/components/checkbox/checkboxgroup.context.d.ts","./node_modules/@mantine/core/lib/components/checkbox/index.d.ts","./node_modules/@mantine/core/lib/components/chip/chipgroup/chipgroup.d.ts","./node_modules/@mantine/core/lib/components/chip/chip.d.ts","./node_modules/@mantine/core/lib/components/chip/index.d.ts","./node_modules/@mantine/core/lib/components/code/code.d.ts","./node_modules/@mantine/core/lib/components/code/index.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/colorpicker.types.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/colorpicker.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/colorslider/colorslider.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/alphaslider/alphaslider.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/hueslider/hueslider.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/converters/converters.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/converters/parsers.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/converters/index.d.ts","./node_modules/@mantine/core/lib/components/colorpicker/index.d.ts","./node_modules/@mantine/core/lib/components/colorinput/colorinput.d.ts","./node_modules/@mantine/core/lib/components/colorinput/index.d.ts","./node_modules/@mantine/core/lib/components/colorswatch/colorswatch.d.ts","./node_modules/@mantine/core/lib/components/colorswatch/index.d.ts","./node_modules/@mantine/core/lib/components/container/container.d.ts","./node_modules/@mantine/core/lib/components/container/index.d.ts","./node_modules/@mantine/core/lib/components/copybutton/copybutton.d.ts","./node_modules/@mantine/core/lib/components/copybutton/index.d.ts","./node_modules/@mantine/core/lib/components/dialog/dialog.d.ts","./node_modules/@mantine/core/lib/components/dialog/index.d.ts","./node_modules/@mantine/core/lib/components/divider/divider.d.ts","./node_modules/@mantine/core/lib/components/divider/index.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawerbody.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawerclosebutton.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawercontent.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawerheader.d.ts","./node_modules/@mantine/core/lib/components/drawer/draweroverlay.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawer.context.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawerroot.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawerstack.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawertitle.d.ts","./node_modules/@mantine/core/lib/components/drawer/drawer.d.ts","./node_modules/@mantine/core/lib/components/drawer/index.d.ts","./node_modules/@mantine/core/lib/components/fieldset/fieldset.d.ts","./node_modules/@mantine/core/lib/components/fieldset/index.d.ts","./node_modules/@mantine/core/lib/components/filebutton/filebutton.d.ts","./node_modules/@mantine/core/lib/components/filebutton/index.d.ts","./node_modules/@mantine/core/lib/components/fileinput/fileinput.d.ts","./node_modules/@mantine/core/lib/components/fileinput/index.d.ts","./node_modules/@mantine/core/lib/components/focustrap/focustrap.d.ts","./node_modules/@mantine/core/lib/components/focustrap/index.d.ts","./node_modules/@mantine/core/lib/components/grid/grid.context.d.ts","./node_modules/@mantine/core/lib/components/grid/gridcol/gridcol.d.ts","./node_modules/@mantine/core/lib/components/grid/grid.d.ts","./node_modules/@mantine/core/lib/components/grid/index.d.ts","./node_modules/@mantine/core/lib/components/highlight/highlight.d.ts","./node_modules/@mantine/core/lib/components/highlight/index.d.ts","./node_modules/@mantine/core/lib/components/hovercard/hovercarddropdown/hovercarddropdown.d.ts","./node_modules/@mantine/core/lib/components/hovercard/hovercardtarget/hovercardtarget.d.ts","./node_modules/@mantine/core/lib/components/hovercard/hovercard.d.ts","./node_modules/@mantine/core/lib/components/hovercard/index.d.ts","./node_modules/@mantine/core/lib/components/image/image.d.ts","./node_modules/@mantine/core/lib/components/image/index.d.ts","./node_modules/@mantine/core/lib/components/indicator/indicator.types.d.ts","./node_modules/@mantine/core/lib/components/indicator/indicator.d.ts","./node_modules/@mantine/core/lib/components/indicator/index.d.ts","./node_modules/@mantine/core/lib/components/textarea/textarea.d.ts","./node_modules/@mantine/core/lib/components/textarea/index.d.ts","./node_modules/@mantine/core/lib/components/jsoninput/jsoninput.d.ts","./node_modules/@mantine/core/lib/components/jsoninput/index.d.ts","./node_modules/@mantine/core/lib/components/kbd/kbd.d.ts","./node_modules/@mantine/core/lib/components/kbd/index.d.ts","./node_modules/@mantine/core/lib/components/list/listitem/listitem.d.ts","./node_modules/@mantine/core/lib/components/list/list.d.ts","./node_modules/@mantine/core/lib/components/list/index.d.ts","./node_modules/@mantine/core/lib/components/loadingoverlay/loadingoverlay.d.ts","./node_modules/@mantine/core/lib/components/loadingoverlay/index.d.ts","./node_modules/@mantine/core/lib/components/mark/mark.d.ts","./node_modules/@mantine/core/lib/components/mark/index.d.ts","./node_modules/@mantine/core/lib/components/menu/menuitem/menuitem.d.ts","./node_modules/@mantine/core/lib/components/menu/menulabel/menulabel.d.ts","./node_modules/@mantine/core/lib/components/menu/menudropdown/menudropdown.d.ts","./node_modules/@mantine/core/lib/components/menu/menutarget/menutarget.d.ts","./node_modules/@mantine/core/lib/components/menu/menudivider/menudivider.d.ts","./node_modules/@mantine/core/lib/components/menu/menu.d.ts","./node_modules/@mantine/core/lib/components/menu/index.d.ts","./node_modules/@mantine/core/lib/components/modal/modalbody.d.ts","./node_modules/@mantine/core/lib/components/modal/modalclosebutton.d.ts","./node_modules/@mantine/core/lib/components/modal/modalcontent.d.ts","./node_modules/@mantine/core/lib/components/modal/modalheader.d.ts","./node_modules/@mantine/core/lib/components/modal/modaloverlay.d.ts","./node_modules/@mantine/core/lib/components/modal/modal.context.d.ts","./node_modules/@mantine/core/lib/components/modal/modalroot.d.ts","./node_modules/@mantine/core/lib/components/modal/modalstack.d.ts","./node_modules/@mantine/core/lib/components/modal/modaltitle.d.ts","./node_modules/@mantine/core/lib/components/modal/modal.d.ts","./node_modules/@mantine/core/lib/components/modal/use-modals-stack.d.ts","./node_modules/@mantine/core/lib/components/modal/index.d.ts","./node_modules/@mantine/core/lib/components/multiselect/multiselect.d.ts","./node_modules/@mantine/core/lib/components/multiselect/index.d.ts","./node_modules/@mantine/core/lib/components/nativeselect/nativeselect.d.ts","./node_modules/@mantine/core/lib/components/nativeselect/index.d.ts","./node_modules/@mantine/core/lib/components/navlink/navlink.d.ts","./node_modules/@mantine/core/lib/components/navlink/index.d.ts","./node_modules/@mantine/core/lib/components/notification/notification.d.ts","./node_modules/@mantine/core/lib/components/notification/index.d.ts","./node_modules/@mantine/core/lib/components/numberformatter/numberformatter.d.ts","./node_modules/@mantine/core/lib/components/numberformatter/index.d.ts","./node_modules/react-number-format/types/types.d.ts","./node_modules/react-number-format/types/number_format_base.d.ts","./node_modules/react-number-format/types/numeric_format.d.ts","./node_modules/react-number-format/types/pattern_format.d.ts","./node_modules/react-number-format/types/index.d.ts","./node_modules/@mantine/core/lib/components/numberinput/numberinput.d.ts","./node_modules/@mantine/core/lib/components/numberinput/index.d.ts","./node_modules/@mantine/core/lib/components/pagination/pagination.icons.d.ts","./node_modules/@mantine/core/lib/components/pagination/paginationcontrol/paginationcontrol.d.ts","./node_modules/@mantine/core/lib/components/pagination/paginationdots/paginationdots.d.ts","./node_modules/@mantine/core/lib/components/pagination/paginationedges/paginationedges.d.ts","./node_modules/@mantine/core/lib/components/pagination/paginationitems/paginationitems.d.ts","./node_modules/@mantine/core/lib/components/pagination/paginationroot/paginationroot.d.ts","./node_modules/@mantine/core/lib/components/pagination/pagination.d.ts","./node_modules/@mantine/core/lib/components/pagination/index.d.ts","./node_modules/@mantine/core/lib/components/passwordinput/passwordinput.d.ts","./node_modules/@mantine/core/lib/components/passwordinput/index.d.ts","./node_modules/@mantine/core/lib/components/pill/pillgroup/pillgroup.d.ts","./node_modules/@mantine/core/lib/components/pill/pill.d.ts","./node_modules/@mantine/core/lib/components/pill/index.d.ts","./node_modules/@mantine/core/lib/components/pillsinput/pillsinputfield/pillsinputfield.d.ts","./node_modules/@mantine/core/lib/components/pillsinput/pillsinput.d.ts","./node_modules/@mantine/core/lib/components/pillsinput/index.d.ts","./node_modules/@mantine/core/lib/components/pininput/pininput.d.ts","./node_modules/@mantine/core/lib/components/pininput/index.d.ts","./node_modules/@mantine/core/lib/components/progress/progresslabel/progresslabel.d.ts","./node_modules/@mantine/core/lib/components/progress/progressroot/progressroot.d.ts","./node_modules/@mantine/core/lib/components/progress/progresssection/progresssection.d.ts","./node_modules/@mantine/core/lib/components/progress/progress.d.ts","./node_modules/@mantine/core/lib/components/progress/index.d.ts","./node_modules/@mantine/core/lib/components/radio/radiocard/radiocard.d.ts","./node_modules/@mantine/core/lib/components/radio/radiogroup/radiogroup.d.ts","./node_modules/@mantine/core/lib/components/radio/radioicon.d.ts","./node_modules/@mantine/core/lib/components/radio/radioindicator/radioindicator.d.ts","./node_modules/@mantine/core/lib/components/radio/radio.d.ts","./node_modules/@mantine/core/lib/components/radio/radiocard/radiocard.context.d.ts","./node_modules/@mantine/core/lib/components/radio/index.d.ts","./node_modules/@mantine/core/lib/components/rating/rating.d.ts","./node_modules/@mantine/core/lib/components/rating/index.d.ts","./node_modules/@mantine/core/lib/components/ringprogress/ringprogress.d.ts","./node_modules/@mantine/core/lib/components/ringprogress/index.d.ts","./node_modules/@mantine/core/lib/components/segmentedcontrol/segmentedcontrol.d.ts","./node_modules/@mantine/core/lib/components/segmentedcontrol/index.d.ts","./node_modules/@mantine/core/lib/components/select/select.d.ts","./node_modules/@mantine/core/lib/components/select/index.d.ts","./node_modules/@mantine/core/lib/components/semicircleprogress/semicircleprogress.d.ts","./node_modules/@mantine/core/lib/components/semicircleprogress/index.d.ts","./node_modules/@mantine/core/lib/components/simplegrid/simplegrid.d.ts","./node_modules/@mantine/core/lib/components/simplegrid/index.d.ts","./node_modules/@mantine/core/lib/components/skeleton/skeleton.d.ts","./node_modules/@mantine/core/lib/components/skeleton/index.d.ts","./node_modules/@mantine/core/lib/components/slider/slider.context.d.ts","./node_modules/@mantine/core/lib/components/slider/slider/slider.d.ts","./node_modules/@mantine/core/lib/components/slider/rangeslider/rangeslider.d.ts","./node_modules/@mantine/core/lib/components/slider/index.d.ts","./node_modules/@mantine/core/lib/components/space/space.d.ts","./node_modules/@mantine/core/lib/components/space/index.d.ts","./node_modules/@mantine/core/lib/components/spoiler/spoiler.d.ts","./node_modules/@mantine/core/lib/components/spoiler/index.d.ts","./node_modules/@mantine/core/lib/components/stack/stack.d.ts","./node_modules/@mantine/core/lib/components/stack/index.d.ts","./node_modules/@mantine/core/lib/components/stepper/steppercompleted/steppercompleted.d.ts","./node_modules/@mantine/core/lib/components/stepper/stepperstep/stepperstep.d.ts","./node_modules/@mantine/core/lib/components/stepper/stepper.d.ts","./node_modules/@mantine/core/lib/components/stepper/index.d.ts","./node_modules/@mantine/core/lib/components/switch/switchgroup/switchgroup.d.ts","./node_modules/@mantine/core/lib/components/switch/switch.d.ts","./node_modules/@mantine/core/lib/components/switch/index.d.ts","./node_modules/@mantine/core/lib/components/table/table.components.d.ts","./node_modules/@mantine/core/lib/components/table/tabledatarenderer.d.ts","./node_modules/@mantine/core/lib/components/table/tablescrollcontainer.d.ts","./node_modules/@mantine/core/lib/components/table/table.d.ts","./node_modules/@mantine/core/lib/components/table/index.d.ts","./node_modules/@mantine/core/lib/components/tableofcontents/tableofcontents.d.ts","./node_modules/@mantine/core/lib/components/tableofcontents/index.d.ts","./node_modules/@mantine/core/lib/components/tabs/tabslist/tabslist.d.ts","./node_modules/@mantine/core/lib/components/tabs/tabspanel/tabspanel.d.ts","./node_modules/@mantine/core/lib/components/tabs/tabstab/tabstab.d.ts","./node_modules/@mantine/core/lib/components/tabs/tabs.d.ts","./node_modules/@mantine/core/lib/components/tabs/index.d.ts","./node_modules/@mantine/core/lib/components/tagsinput/tagsinput.d.ts","./node_modules/@mantine/core/lib/components/tagsinput/index.d.ts","./node_modules/@mantine/core/lib/components/textinput/textinput.d.ts","./node_modules/@mantine/core/lib/components/textinput/index.d.ts","./node_modules/@mantine/core/lib/components/themeicon/themeicon.d.ts","./node_modules/@mantine/core/lib/components/themeicon/index.d.ts","./node_modules/@mantine/core/lib/components/timeline/timelineitem/timelineitem.d.ts","./node_modules/@mantine/core/lib/components/timeline/timeline.d.ts","./node_modules/@mantine/core/lib/components/timeline/index.d.ts","./node_modules/@mantine/core/lib/components/title/title.d.ts","./node_modules/@mantine/core/lib/components/title/index.d.ts","./node_modules/@mantine/core/lib/components/tooltip/tooltip.types.d.ts","./node_modules/@mantine/core/lib/components/tooltip/tooltipfloating/tooltipfloating.d.ts","./node_modules/@mantine/core/lib/components/tooltip/tooltipgroup/tooltipgroup.d.ts","./node_modules/@mantine/core/lib/components/tooltip/tooltip.d.ts","./node_modules/@mantine/core/lib/components/tooltip/index.d.ts","./node_modules/@mantine/core/lib/components/tree/get-all-checked-nodes/get-all-checked-nodes.d.ts","./node_modules/@mantine/core/lib/components/tree/use-tree.d.ts","./node_modules/@mantine/core/lib/components/tree/tree.d.ts","./node_modules/@mantine/core/lib/components/tree/index.d.ts","./node_modules/@mantine/core/lib/components/typographystylesprovider/typographystylesprovider.d.ts","./node_modules/@mantine/core/lib/components/typographystylesprovider/index.d.ts","./node_modules/@mantine/core/lib/components/index.d.ts","./node_modules/@mantine/core/lib/index.d.mts","./node_modules/shiki/dist/types/index.d.d.mts","./node_modules/@types/unist/index.d.ts","./node_modules/@types/hast/index.d.ts","./node_modules/@shikijs/vscode-textmate/dist/index.d.ts","./node_modules/@shikijs/types/dist/index.d.mts","./node_modules/shiki/dist/langs.d.mts","./node_modules/oniguruma-to-es/types/subclass.d.ts","./node_modules/oniguruma-to-es/types/tokenize.d.ts","./node_modules/oniguruma-to-es/types/parse.d.ts","./node_modules/oniguruma-to-es/types/index.d.ts","./node_modules/@shikijs/engine-javascript/dist/shared/engine-javascript.donzs58x.d.mts","./node_modules/@shikijs/engine-javascript/dist/engine-raw.d.mts","./node_modules/@shikijs/engine-javascript/dist/index.d.mts","./node_modules/stringify-entities/lib/util/format-smart.d.ts","./node_modules/stringify-entities/lib/core.d.ts","./node_modules/stringify-entities/lib/index.d.ts","./node_modules/stringify-entities/index.d.ts","./node_modules/property-information/lib/util/info.d.ts","./node_modules/property-information/lib/util/schema.d.ts","./node_modules/property-information/lib/find.d.ts","./node_modules/property-information/lib/hast-to-react.d.ts","./node_modules/property-information/lib/normalize.d.ts","./node_modules/property-information/index.d.ts","./node_modules/hast-util-to-html/lib/index.d.ts","./node_modules/hast-util-to-html/index.d.ts","./node_modules/@shikijs/core/dist/index.d.mts","./node_modules/shiki/dist/themes.d.mts","./node_modules/@shikijs/engine-oniguruma/dist/chunk-index.d.d.mts","./node_modules/@shikijs/engine-oniguruma/dist/wasm-inlined.d.mts","./node_modules/@shikijs/core/dist/types.d.mts","./node_modules/shiki/dist/types/wasm-dynamic.d.mts","./node_modules/shiki/dist/bundle-full.d.mts","./node_modules/shiki/dist/types.d.mts","./node_modules/shiki/dist/index.d.mts","./node_modules/@mantinex/shiki/lib/types.d.ts","./node_modules/@mantinex/shiki/lib/shikiprovider.d.ts","./node_modules/@mantinex/shiki/lib/codehighlight.d.ts","./node_modules/@mantinex/shiki/lib/codehighlighttabs.d.ts","./node_modules/@mantinex/shiki/lib/index.d.mts","./src/themes/mantine/mantine-css-variable-resolver.ts","./src/utils/colors.ts","./src/utils/theme-functions.ts","./src/themes/shadcn/shadcn-css-variable-resolver.ts","./src/themes/mantine/mantine-theme.ts","./src/themes/shadcn/shadcn-theme.ts","./src/utils/themetemplate.ts","./node_modules/@radix-ui/react-icons/dist/types.d.ts","./node_modules/@radix-ui/react-icons/dist/accessibilityicon.d.ts","./node_modules/@radix-ui/react-icons/dist/activitylogicon.d.ts","./node_modules/@radix-ui/react-icons/dist/alignbaselineicon.d.ts","./node_modules/@radix-ui/react-icons/dist/alignbottomicon.d.ts","./node_modules/@radix-ui/react-icons/dist/aligncenterhorizontallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/aligncenterverticallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/alignlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/alignrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/aligntopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/allsidesicon.d.ts","./node_modules/@radix-ui/react-icons/dist/angleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/archiveicon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowbottomlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowbottomrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowdownicon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowtoplefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowtoprighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/arrowupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/aspectratioicon.d.ts","./node_modules/@radix-ui/react-icons/dist/avataricon.d.ts","./node_modules/@radix-ui/react-icons/dist/backpackicon.d.ts","./node_modules/@radix-ui/react-icons/dist/badgeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/barcharticon.d.ts","./node_modules/@radix-ui/react-icons/dist/bellicon.d.ts","./node_modules/@radix-ui/react-icons/dist/blendingmodeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/bookmarkicon.d.ts","./node_modules/@radix-ui/react-icons/dist/bookmarkfilledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderallicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderbottomicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderdashedicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderdottedicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/bordernoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/bordersolidicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderspliticon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderstyleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/bordertopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/borderwidthicon.d.ts","./node_modules/@radix-ui/react-icons/dist/boxicon.d.ts","./node_modules/@radix-ui/react-icons/dist/boxmodelicon.d.ts","./node_modules/@radix-ui/react-icons/dist/buttonicon.d.ts","./node_modules/@radix-ui/react-icons/dist/calendaricon.d.ts","./node_modules/@radix-ui/react-icons/dist/cameraicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cardstackicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cardstackminusicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cardstackplusicon.d.ts","./node_modules/@radix-ui/react-icons/dist/caretdownicon.d.ts","./node_modules/@radix-ui/react-icons/dist/caretlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/caretrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/caretsorticon.d.ts","./node_modules/@radix-ui/react-icons/dist/caretupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/chatbubbleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/checkicon.d.ts","./node_modules/@radix-ui/react-icons/dist/checkcircledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/checkboxicon.d.ts","./node_modules/@radix-ui/react-icons/dist/chevrondownicon.d.ts","./node_modules/@radix-ui/react-icons/dist/chevronlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/chevronrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/chevronupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/circleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/circlebackslashicon.d.ts","./node_modules/@radix-ui/react-icons/dist/clipboardicon.d.ts","./node_modules/@radix-ui/react-icons/dist/clipboardcopyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/clockicon.d.ts","./node_modules/@radix-ui/react-icons/dist/codeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/codesandboxlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/colorwheelicon.d.ts","./node_modules/@radix-ui/react-icons/dist/columnspacingicon.d.ts","./node_modules/@radix-ui/react-icons/dist/columnsicon.d.ts","./node_modules/@radix-ui/react-icons/dist/commiticon.d.ts","./node_modules/@radix-ui/react-icons/dist/component1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/component2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/componentbooleanicon.d.ts","./node_modules/@radix-ui/react-icons/dist/componentinstanceicon.d.ts","./node_modules/@radix-ui/react-icons/dist/componentnoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/componentplaceholdericon.d.ts","./node_modules/@radix-ui/react-icons/dist/containericon.d.ts","./node_modules/@radix-ui/react-icons/dist/cookieicon.d.ts","./node_modules/@radix-ui/react-icons/dist/copyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cornerbottomlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/cornerbottomrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/cornertoplefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/cornertoprighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/cornersicon.d.ts","./node_modules/@radix-ui/react-icons/dist/countdowntimericon.d.ts","./node_modules/@radix-ui/react-icons/dist/counterclockwiseclockicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cropicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cross1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/cross2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/crosscircledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/crosshair1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/crosshair2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/crumpledpapericon.d.ts","./node_modules/@radix-ui/react-icons/dist/cubeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cursorarrowicon.d.ts","./node_modules/@radix-ui/react-icons/dist/cursortexticon.d.ts","./node_modules/@radix-ui/react-icons/dist/dashicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dashboardicon.d.ts","./node_modules/@radix-ui/react-icons/dist/desktopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dimensionsicon.d.ts","./node_modules/@radix-ui/react-icons/dist/discicon.d.ts","./node_modules/@radix-ui/react-icons/dist/discordlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dividerhorizontalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dividerverticalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/doticon.d.ts","./node_modules/@radix-ui/react-icons/dist/dotfilledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dotshorizontalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dotsverticalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/doublearrowdownicon.d.ts","./node_modules/@radix-ui/react-icons/dist/doublearrowlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/doublearrowrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/doublearrowupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/downloadicon.d.ts","./node_modules/@radix-ui/react-icons/dist/draghandledots1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/draghandledots2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/draghandlehorizontalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/draghandleverticalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/drawingpinicon.d.ts","./node_modules/@radix-ui/react-icons/dist/drawingpinfilledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/dropdownmenuicon.d.ts","./node_modules/@radix-ui/react-icons/dist/entericon.d.ts","./node_modules/@radix-ui/react-icons/dist/enterfullscreenicon.d.ts","./node_modules/@radix-ui/react-icons/dist/envelopeclosedicon.d.ts","./node_modules/@radix-ui/react-icons/dist/envelopeopenicon.d.ts","./node_modules/@radix-ui/react-icons/dist/erasericon.d.ts","./node_modules/@radix-ui/react-icons/dist/exclamationtriangleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/exiticon.d.ts","./node_modules/@radix-ui/react-icons/dist/exitfullscreenicon.d.ts","./node_modules/@radix-ui/react-icons/dist/externallinkicon.d.ts","./node_modules/@radix-ui/react-icons/dist/eyeclosedicon.d.ts","./node_modules/@radix-ui/react-icons/dist/eyenoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/eyeopenicon.d.ts","./node_modules/@radix-ui/react-icons/dist/faceicon.d.ts","./node_modules/@radix-ui/react-icons/dist/figmalogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fileicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fileminusicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fileplusicon.d.ts","./node_modules/@radix-ui/react-icons/dist/filetexticon.d.ts","./node_modules/@radix-ui/react-icons/dist/fontboldicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fontfamilyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fontitalicicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fontromanicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fontsizeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/fontstyleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/frameicon.d.ts","./node_modules/@radix-ui/react-icons/dist/framerlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/gearicon.d.ts","./node_modules/@radix-ui/react-icons/dist/githublogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/globeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/gridicon.d.ts","./node_modules/@radix-ui/react-icons/dist/groupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/half1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/half2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/hamburgermenuicon.d.ts","./node_modules/@radix-ui/react-icons/dist/handicon.d.ts","./node_modules/@radix-ui/react-icons/dist/headingicon.d.ts","./node_modules/@radix-ui/react-icons/dist/hearticon.d.ts","./node_modules/@radix-ui/react-icons/dist/heartfilledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/heighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/hobbyknifeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/homeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/iconjarlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/idcardicon.d.ts","./node_modules/@radix-ui/react-icons/dist/imageicon.d.ts","./node_modules/@radix-ui/react-icons/dist/infocircledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/inputicon.d.ts","./node_modules/@radix-ui/react-icons/dist/instagramlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/keyboardicon.d.ts","./node_modules/@radix-ui/react-icons/dist/laptimericon.d.ts","./node_modules/@radix-ui/react-icons/dist/laptopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/layersicon.d.ts","./node_modules/@radix-ui/react-icons/dist/layouticon.d.ts","./node_modules/@radix-ui/react-icons/dist/lettercasecapitalizeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/lettercaselowercaseicon.d.ts","./node_modules/@radix-ui/react-icons/dist/lettercasetoggleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/lettercaseuppercaseicon.d.ts","./node_modules/@radix-ui/react-icons/dist/letterspacingicon.d.ts","./node_modules/@radix-ui/react-icons/dist/lightningbolticon.d.ts","./node_modules/@radix-ui/react-icons/dist/lineheighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/link1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/link2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/linkbreak1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/linkbreak2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/linknone1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/linknone2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/linkedinlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/listbulleticon.d.ts","./node_modules/@radix-ui/react-icons/dist/lockclosedicon.d.ts","./node_modules/@radix-ui/react-icons/dist/lockopen1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/lockopen2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/loopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/magicwandicon.d.ts","./node_modules/@radix-ui/react-icons/dist/magnifyingglassicon.d.ts","./node_modules/@radix-ui/react-icons/dist/marginicon.d.ts","./node_modules/@radix-ui/react-icons/dist/maskofficon.d.ts","./node_modules/@radix-ui/react-icons/dist/maskonicon.d.ts","./node_modules/@radix-ui/react-icons/dist/minusicon.d.ts","./node_modules/@radix-ui/react-icons/dist/minuscircledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/mixicon.d.ts","./node_modules/@radix-ui/react-icons/dist/mixerhorizontalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/mixerverticalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/mobileicon.d.ts","./node_modules/@radix-ui/react-icons/dist/modulzlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/moonicon.d.ts","./node_modules/@radix-ui/react-icons/dist/moveicon.d.ts","./node_modules/@radix-ui/react-icons/dist/notionlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/opacityicon.d.ts","./node_modules/@radix-ui/react-icons/dist/openinnewwindowicon.d.ts","./node_modules/@radix-ui/react-icons/dist/overlineicon.d.ts","./node_modules/@radix-ui/react-icons/dist/paddingicon.d.ts","./node_modules/@radix-ui/react-icons/dist/paperplaneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/pauseicon.d.ts","./node_modules/@radix-ui/react-icons/dist/pencil1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/pencil2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/personicon.d.ts","./node_modules/@radix-ui/react-icons/dist/piecharticon.d.ts","./node_modules/@radix-ui/react-icons/dist/pilcrowicon.d.ts","./node_modules/@radix-ui/react-icons/dist/pinbottomicon.d.ts","./node_modules/@radix-ui/react-icons/dist/pinlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/pinrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/pintopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/playicon.d.ts","./node_modules/@radix-ui/react-icons/dist/plusicon.d.ts","./node_modules/@radix-ui/react-icons/dist/pluscircledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/questionmarkicon.d.ts","./node_modules/@radix-ui/react-icons/dist/questionmarkcircledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/quoteicon.d.ts","./node_modules/@radix-ui/react-icons/dist/radiobuttonicon.d.ts","./node_modules/@radix-ui/react-icons/dist/readericon.d.ts","./node_modules/@radix-ui/react-icons/dist/reloadicon.d.ts","./node_modules/@radix-ui/react-icons/dist/reseticon.d.ts","./node_modules/@radix-ui/react-icons/dist/resumeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/rocketicon.d.ts","./node_modules/@radix-ui/react-icons/dist/rotatecounterclockwiseicon.d.ts","./node_modules/@radix-ui/react-icons/dist/rowspacingicon.d.ts","./node_modules/@radix-ui/react-icons/dist/rowsicon.d.ts","./node_modules/@radix-ui/react-icons/dist/rulerhorizontalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/rulersquareicon.d.ts","./node_modules/@radix-ui/react-icons/dist/scissorsicon.d.ts","./node_modules/@radix-ui/react-icons/dist/sectionicon.d.ts","./node_modules/@radix-ui/react-icons/dist/sewingpinicon.d.ts","./node_modules/@radix-ui/react-icons/dist/sewingpinfilledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/shadowicon.d.ts","./node_modules/@radix-ui/react-icons/dist/shadowinnericon.d.ts","./node_modules/@radix-ui/react-icons/dist/shadownoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/shadowoutericon.d.ts","./node_modules/@radix-ui/react-icons/dist/share1icon.d.ts","./node_modules/@radix-ui/react-icons/dist/share2icon.d.ts","./node_modules/@radix-ui/react-icons/dist/shuffleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/sizeicon.d.ts","./node_modules/@radix-ui/react-icons/dist/sketchlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/slashicon.d.ts","./node_modules/@radix-ui/react-icons/dist/slidericon.d.ts","./node_modules/@radix-ui/react-icons/dist/spacebetweenhorizontallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/spacebetweenverticallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/spaceevenlyhorizontallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/spaceevenlyverticallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/speakerloudicon.d.ts","./node_modules/@radix-ui/react-icons/dist/speakermoderateicon.d.ts","./node_modules/@radix-ui/react-icons/dist/speakerofficon.d.ts","./node_modules/@radix-ui/react-icons/dist/speakerquieticon.d.ts","./node_modules/@radix-ui/react-icons/dist/squareicon.d.ts","./node_modules/@radix-ui/react-icons/dist/stackicon.d.ts","./node_modules/@radix-ui/react-icons/dist/staricon.d.ts","./node_modules/@radix-ui/react-icons/dist/starfilledicon.d.ts","./node_modules/@radix-ui/react-icons/dist/stitcheslogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/stopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/stopwatchicon.d.ts","./node_modules/@radix-ui/react-icons/dist/stretchhorizontallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/stretchverticallyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/strikethroughicon.d.ts","./node_modules/@radix-ui/react-icons/dist/sunicon.d.ts","./node_modules/@radix-ui/react-icons/dist/switchicon.d.ts","./node_modules/@radix-ui/react-icons/dist/symbolicon.d.ts","./node_modules/@radix-ui/react-icons/dist/tableicon.d.ts","./node_modules/@radix-ui/react-icons/dist/targeticon.d.ts","./node_modules/@radix-ui/react-icons/dist/texticon.d.ts","./node_modules/@radix-ui/react-icons/dist/textalignbottomicon.d.ts","./node_modules/@radix-ui/react-icons/dist/textaligncentericon.d.ts","./node_modules/@radix-ui/react-icons/dist/textalignjustifyicon.d.ts","./node_modules/@radix-ui/react-icons/dist/textalignlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/textalignmiddleicon.d.ts","./node_modules/@radix-ui/react-icons/dist/textalignrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/textaligntopicon.d.ts","./node_modules/@radix-ui/react-icons/dist/textnoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/thickarrowdownicon.d.ts","./node_modules/@radix-ui/react-icons/dist/thickarrowlefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/thickarrowrighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/thickarrowupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/timericon.d.ts","./node_modules/@radix-ui/react-icons/dist/tokensicon.d.ts","./node_modules/@radix-ui/react-icons/dist/tracknexticon.d.ts","./node_modules/@radix-ui/react-icons/dist/trackpreviousicon.d.ts","./node_modules/@radix-ui/react-icons/dist/transformicon.d.ts","./node_modules/@radix-ui/react-icons/dist/transparencygridicon.d.ts","./node_modules/@radix-ui/react-icons/dist/trashicon.d.ts","./node_modules/@radix-ui/react-icons/dist/triangledownicon.d.ts","./node_modules/@radix-ui/react-icons/dist/trianglelefticon.d.ts","./node_modules/@radix-ui/react-icons/dist/trianglerighticon.d.ts","./node_modules/@radix-ui/react-icons/dist/triangleupicon.d.ts","./node_modules/@radix-ui/react-icons/dist/twitterlogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/underlineicon.d.ts","./node_modules/@radix-ui/react-icons/dist/updateicon.d.ts","./node_modules/@radix-ui/react-icons/dist/uploadicon.d.ts","./node_modules/@radix-ui/react-icons/dist/valueicon.d.ts","./node_modules/@radix-ui/react-icons/dist/valuenoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/vercellogoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/videoicon.d.ts","./node_modules/@radix-ui/react-icons/dist/viewgridicon.d.ts","./node_modules/@radix-ui/react-icons/dist/viewhorizontalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/viewnoneicon.d.ts","./node_modules/@radix-ui/react-icons/dist/viewverticalicon.d.ts","./node_modules/@radix-ui/react-icons/dist/widthicon.d.ts","./node_modules/@radix-ui/react-icons/dist/zoominicon.d.ts","./node_modules/@radix-ui/react-icons/dist/zoomouticon.d.ts","./node_modules/@radix-ui/react-icons/dist/index.d.ts","./src/components/custom/change-theme-section/change-theme-button.tsx","./src/utils/functions.ts","./node_modules/shikiji/dist/types/langs.d.mts","./node_modules/shikiji/dist/types/normalize.d.mts","./node_modules/shikiji/dist/wasm.d.mts","./node_modules/shikiji/dist/index.d.mts","./src/theme-context.tsx","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/importmeta.d.ts","./node_modules/vite/client.d.ts","./src/vite-env.d.ts","./src/components/googleanalytics.tsx","./src/components/microsoftclarity.tsx","./src/app/layout.tsx","./src/app/loading.tsx","./node_modules/recharts/types/container/surface.d.ts","./node_modules/recharts/types/container/layer.d.ts","./node_modules/@types/d3-time/index.d.ts","./node_modules/@types/d3-scale/index.d.ts","./node_modules/victory-vendor/d3-scale.d.ts","./node_modules/recharts/types/cartesian/xaxis.d.ts","./node_modules/recharts/types/cartesian/yaxis.d.ts","./node_modules/recharts/types/util/types.d.ts","./node_modules/recharts/types/component/defaultlegendcontent.d.ts","./node_modules/recharts/types/util/payload/getuniqpayload.d.ts","./node_modules/recharts/types/component/legend.d.ts","./node_modules/recharts/types/component/defaulttooltipcontent.d.ts","./node_modules/recharts/types/component/tooltip.d.ts","./node_modules/recharts/types/component/responsivecontainer.d.ts","./node_modules/recharts/types/component/cell.d.ts","./node_modules/recharts/types/component/text.d.ts","./node_modules/recharts/types/component/label.d.ts","./node_modules/recharts/types/component/labellist.d.ts","./node_modules/recharts/types/component/customized.d.ts","./node_modules/recharts/types/shape/sector.d.ts","./node_modules/@types/d3-path/index.d.ts","./node_modules/@types/d3-shape/index.d.ts","./node_modules/victory-vendor/d3-shape.d.ts","./node_modules/recharts/types/shape/curve.d.ts","./node_modules/recharts/types/shape/rectangle.d.ts","./node_modules/recharts/types/shape/polygon.d.ts","./node_modules/recharts/types/shape/dot.d.ts","./node_modules/recharts/types/shape/cross.d.ts","./node_modules/recharts/types/shape/symbols.d.ts","./node_modules/recharts/types/polar/polargrid.d.ts","./node_modules/recharts/types/polar/polarradiusaxis.d.ts","./node_modules/recharts/types/polar/polarangleaxis.d.ts","./node_modules/recharts/types/polar/pie.d.ts","./node_modules/recharts/types/polar/radar.d.ts","./node_modules/recharts/types/polar/radialbar.d.ts","./node_modules/recharts/types/cartesian/brush.d.ts","./node_modules/recharts/types/util/ifoverflowmatches.d.ts","./node_modules/recharts/types/cartesian/referenceline.d.ts","./node_modules/recharts/types/cartesian/referencedot.d.ts","./node_modules/recharts/types/cartesian/referencearea.d.ts","./node_modules/recharts/types/cartesian/cartesianaxis.d.ts","./node_modules/recharts/types/cartesian/cartesiangrid.d.ts","./node_modules/recharts/types/cartesian/line.d.ts","./node_modules/recharts/types/cartesian/area.d.ts","./node_modules/recharts/types/util/barutils.d.ts","./node_modules/recharts/types/cartesian/bar.d.ts","./node_modules/recharts/types/cartesian/zaxis.d.ts","./node_modules/recharts/types/cartesian/errorbar.d.ts","./node_modules/recharts/types/cartesian/scatter.d.ts","./node_modules/recharts/types/util/getlegendprops.d.ts","./node_modules/recharts/types/util/chartutils.d.ts","./node_modules/recharts/types/chart/accessibilitymanager.d.ts","./node_modules/recharts/types/chart/types.d.ts","./node_modules/recharts/types/chart/generatecategoricalchart.d.ts","./node_modules/recharts/types/chart/linechart.d.ts","./node_modules/recharts/types/chart/barchart.d.ts","./node_modules/recharts/types/chart/piechart.d.ts","./node_modules/recharts/types/chart/treemap.d.ts","./node_modules/recharts/types/chart/sankey.d.ts","./node_modules/recharts/types/chart/radarchart.d.ts","./node_modules/recharts/types/chart/scatterchart.d.ts","./node_modules/recharts/types/chart/areachart.d.ts","./node_modules/recharts/types/chart/radialbarchart.d.ts","./node_modules/recharts/types/chart/composedchart.d.ts","./node_modules/recharts/types/chart/sunburstchart.d.ts","./node_modules/recharts/types/shape/trapezoid.d.ts","./node_modules/recharts/types/numberaxis/funnel.d.ts","./node_modules/recharts/types/chart/funnelchart.d.ts","./node_modules/recharts/types/util/global.d.ts","./node_modules/recharts/types/index.d.ts","./node_modules/@mantine/charts/lib/types.d.ts","./node_modules/@mantine/charts/lib/charttooltip/charttooltip.d.ts","./node_modules/@mantine/charts/lib/charttooltip/index.d.ts","./node_modules/@mantine/charts/lib/chartlegend/chartlegend.d.ts","./node_modules/@mantine/charts/lib/chartlegend/index.d.ts","./node_modules/@mantine/charts/lib/areachart/areachart.d.ts","./node_modules/@mantine/charts/lib/areachart/get-split-offset.d.ts","./node_modules/@mantine/charts/lib/areachart/areagradient.d.ts","./node_modules/@mantine/charts/lib/areachart/index.d.ts","./node_modules/@mantine/charts/lib/barchart/barchart.d.ts","./node_modules/@mantine/charts/lib/barchart/index.d.ts","./node_modules/@mantine/charts/lib/linechart/linechart.d.ts","./node_modules/@mantine/charts/lib/linechart/index.d.ts","./node_modules/@mantine/charts/lib/sparkline/sparkline.d.ts","./node_modules/@mantine/charts/lib/sparkline/index.d.ts","./node_modules/@mantine/charts/lib/donutchart/donutchart.d.ts","./node_modules/@mantine/charts/lib/donutchart/index.d.ts","./node_modules/@mantine/charts/lib/piechart/piechart.d.ts","./node_modules/@mantine/charts/lib/piechart/index.d.ts","./node_modules/@mantine/charts/lib/radarchart/radarchart.d.ts","./node_modules/@mantine/charts/lib/radarchart/index.d.ts","./node_modules/@mantine/charts/lib/scatterchart/scatterchart.d.ts","./node_modules/@mantine/charts/lib/scatterchart/index.d.ts","./node_modules/@mantine/charts/lib/bubblechart/bubblechart.d.ts","./node_modules/@mantine/charts/lib/bubblechart/index.d.ts","./node_modules/@mantine/charts/lib/compositechart/compositechart.d.ts","./node_modules/@mantine/charts/lib/compositechart/index.d.ts","./node_modules/@mantine/charts/lib/radialbarchart/radialbarchart.d.ts","./node_modules/@mantine/charts/lib/radialbarchart/index.d.ts","./node_modules/@mantine/charts/lib/funnelchart/funnelchart.d.ts","./node_modules/@mantine/charts/lib/funnelchart/index.d.ts","./node_modules/@mantine/charts/lib/index.d.mts","./src/components/custom/theme-example-cards/activity-goal.tsx","./node_modules/@mantine/dates/lib/types/generaltypes.d.ts","./node_modules/@mantine/dates/lib/types/controlsgroupsettings.d.ts","./node_modules/@mantine/dates/lib/types/datepickervalue.d.ts","./node_modules/@mantine/dates/lib/types/pickerbaseprops.d.ts","./node_modules/@mantine/dates/lib/types/index.d.ts","./node_modules/@mantine/dates/lib/utils/get-formatted-date.d.ts","./node_modules/@mantine/dates/lib/utils/handle-control-key-down.d.ts","./node_modules/@mantine/dates/lib/utils/assign-time/assign-time.d.ts","./node_modules/@mantine/dates/lib/utils/get-default-clamped-date.d.ts","./node_modules/@mantine/dates/lib/utils/shift-timezone.d.ts","./node_modules/@mantine/dates/lib/utils/index.d.ts","./node_modules/@mantine/dates/lib/components/datesprovider/datesprovider.d.ts","./node_modules/@mantine/dates/lib/components/datesprovider/use-dates-context.d.ts","./node_modules/@mantine/dates/lib/components/datesprovider/index.d.ts","./node_modules/@mantine/dates/lib/components/hiddendatesinput/hiddendatesinput.d.ts","./node_modules/@mantine/dates/lib/components/hiddendatesinput/index.d.ts","./node_modules/@mantine/dates/lib/components/timeinput/timeinput.d.ts","./node_modules/@mantine/dates/lib/components/timeinput/index.d.ts","./node_modules/@mantine/dates/lib/components/day/day.d.ts","./node_modules/@mantine/dates/lib/components/day/index.d.ts","./node_modules/@mantine/dates/lib/components/weekdaysrow/weekdaysrow.d.ts","./node_modules/@mantine/dates/lib/components/weekdaysrow/index.d.ts","./node_modules/@mantine/dates/lib/components/month/get-end-of-week/get-end-of-week.d.ts","./node_modules/@mantine/dates/lib/components/month/get-start-of-week/get-start-of-week.d.ts","./node_modules/@mantine/dates/lib/components/month/get-month-days/get-month-days.d.ts","./node_modules/@mantine/dates/lib/components/month/month.d.ts","./node_modules/@mantine/dates/lib/components/month/index.d.ts","./node_modules/@mantine/dates/lib/components/pickercontrol/pickercontrol.d.ts","./node_modules/@mantine/dates/lib/components/pickercontrol/index.d.ts","./node_modules/@mantine/dates/lib/components/yearslist/yearslist.d.ts","./node_modules/@mantine/dates/lib/components/yearslist/index.d.ts","./node_modules/@mantine/dates/lib/components/monthslist/monthslist.d.ts","./node_modules/@mantine/dates/lib/components/monthslist/index.d.ts","./node_modules/@mantine/dates/lib/components/calendarheader/calendarheader.d.ts","./node_modules/@mantine/dates/lib/components/calendarheader/index.d.ts","./node_modules/@mantine/dates/lib/components/decadelevel/decadelevel.d.ts","./node_modules/@mantine/dates/lib/components/decadelevel/index.d.ts","./node_modules/@mantine/dates/lib/components/yearlevel/yearlevel.d.ts","./node_modules/@mantine/dates/lib/components/yearlevel/index.d.ts","./node_modules/@mantine/dates/lib/components/monthlevel/monthlevel.d.ts","./node_modules/@mantine/dates/lib/components/monthlevel/index.d.ts","./node_modules/@mantine/dates/lib/components/levelsgroup/levelsgroup.d.ts","./node_modules/@mantine/dates/lib/components/levelsgroup/index.d.ts","./node_modules/@mantine/dates/lib/components/decadelevelgroup/decadelevelgroup.d.ts","./node_modules/@mantine/dates/lib/components/decadelevelgroup/index.d.ts","./node_modules/@mantine/dates/lib/components/yearlevelgroup/yearlevelgroup.d.ts","./node_modules/@mantine/dates/lib/components/yearlevelgroup/index.d.ts","./node_modules/@mantine/dates/lib/components/monthlevelgroup/monthlevelgroup.d.ts","./node_modules/@mantine/dates/lib/components/monthlevelgroup/index.d.ts","./node_modules/@mantine/dates/lib/components/pickerinputbase/pickerinputbase.d.ts","./node_modules/@mantine/dates/lib/components/pickerinputbase/index.d.ts","./node_modules/@mantine/dates/lib/components/calendar/calendar.d.ts","./node_modules/@mantine/dates/lib/components/calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts","./node_modules/@mantine/dates/lib/components/calendar/index.d.ts","./node_modules/@mantine/dates/lib/components/yearpicker/yearpicker.d.ts","./node_modules/@mantine/dates/lib/components/yearpicker/index.d.ts","./node_modules/@mantine/dates/lib/components/monthpicker/monthpicker.d.ts","./node_modules/@mantine/dates/lib/components/monthpicker/index.d.ts","./node_modules/@mantine/dates/lib/components/datepicker/datepicker.d.ts","./node_modules/@mantine/dates/lib/components/datepicker/index.d.ts","./node_modules/@mantine/dates/lib/components/dateinput/dateinput.d.ts","./node_modules/@mantine/dates/lib/components/dateinput/index.d.ts","./node_modules/@mantine/dates/lib/components/datetimepicker/datetimepicker.d.ts","./node_modules/@mantine/dates/lib/components/datetimepicker/index.d.ts","./node_modules/@mantine/dates/lib/components/yearpickerinput/yearpickerinput.d.ts","./node_modules/@mantine/dates/lib/components/yearpickerinput/index.d.ts","./node_modules/@mantine/dates/lib/components/monthpickerinput/monthpickerinput.d.ts","./node_modules/@mantine/dates/lib/components/monthpickerinput/index.d.ts","./node_modules/@mantine/dates/lib/components/datepickerinput/datepickerinput.d.ts","./node_modules/@mantine/dates/lib/components/datepickerinput/index.d.ts","./node_modules/@mantine/dates/lib/index.d.mts","./src/components/custom/theme-example-cards/calendar.tsx","./node_modules/@mantine/store/lib/store.d.ts","./node_modules/@mantine/store/lib/index.d.mts","./node_modules/@mantine/spotlight/lib/spotlight.store.d.ts","./node_modules/@mantine/spotlight/lib/spotlightaction.d.ts","./node_modules/@mantine/spotlight/lib/spotlightactionsgroup.d.ts","./node_modules/@mantine/spotlight/lib/spotlightactionslist.d.ts","./node_modules/@mantine/spotlight/lib/spotlightempty.d.ts","./node_modules/@mantine/spotlight/lib/spotlightfooter.d.ts","./node_modules/@mantine/spotlight/lib/spotlightroot.d.ts","./node_modules/@mantine/spotlight/lib/spotlightsearch.d.ts","./node_modules/@mantine/spotlight/lib/spotlight.d.ts","./node_modules/@mantine/spotlight/lib/is-actions-group.d.ts","./node_modules/@mantine/spotlight/lib/index.d.mts","./src/components/custom/theme-example-cards/chat.tsx","./node_modules/@tabler/icons-react/dist/esm/tabler-icons-react.d.ts","./src/components/mantine/demo/demoarea/demoarea.tsx","./src/components/mantine/demo/demoarea/index.ts","./node_modules/@mantinex/dev-icons/lib/types.d.ts","./node_modules/@mantinex/dev-icons/lib/discordicon.d.ts","./node_modules/@mantinex/dev-icons/lib/twittericon.d.ts","./node_modules/@mantinex/dev-icons/lib/xicon.d.ts","./node_modules/@mantinex/dev-icons/lib/githubicon.d.ts","./node_modules/@mantinex/dev-icons/lib/npmicon.d.ts","./node_modules/@mantinex/dev-icons/lib/yarnicon.d.ts","./node_modules/@mantinex/dev-icons/lib/typescripticon.d.ts","./node_modules/@mantinex/dev-icons/lib/typescriptcircleicon.d.ts","./node_modules/@mantinex/dev-icons/lib/cssicon.d.ts","./node_modules/@mantinex/dev-icons/lib/get-code-file-icon.d.ts","./node_modules/@mantinex/dev-icons/lib/index.d.mts","./node_modules/@mantine/code-highlight/lib/codehighlighttabs.d.ts","./node_modules/@mantine/code-highlight/lib/codehighlight.d.ts","./node_modules/@mantine/code-highlight/lib/inlinecodehighlight.d.ts","./node_modules/@mantine/code-highlight/lib/index.d.mts","./src/components/mantine/demo/democode/democode.tsx","./src/components/mantine/demo/democode/index.ts","./node_modules/clsx/clsx.d.mts","./src/components/mantine/demo/demoroot/demoroot.tsx","./src/components/mantine/demo/demoroot/index.ts","./src/components/mantine/demo/codedemo/codedemo.tsx","./src/components/mantine/demo/democolumns/democolumns.tsx","./src/components/mantine/demo/democolumns/index.ts","./src/components/mantine/demo/configuratordemo/controls/get-control-label.ts","./src/components/mantine/demo/configuratordemo/controls/types.ts","./src/components/mantine/demo/configuratordemo/controls/configuratorboolean.control.tsx","./src/components/mantine/demo/configuratordemo/controls/transform-select-data.ts","./src/components/mantine/demo/configuratordemo/controls/configuratorsegmented.control.tsx","./src/components/mantine/demo/configuratordemo/controls/colorwheelicon.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorcolor.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorstring.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorselect.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratorsize.control.tsx","./src/components/mantine/demo/configuratordemo/controls/configuratornumber.control.tsx","./src/components/mantine/demo/configuratordemo/controls/index.ts","./src/components/mantine/demo/configuratordemo/clear-props.ts","./src/components/mantine/demo/configuratordemo/inject-props.tsx","./src/components/mantine/demo/configuratordemo/get-code-array.ts","./src/components/mantine/demo/configuratordemo/configuratordemo.tsx","./src/components/mantine/demo/stylesapidemo/stylesapidemo.tsx","./src/components/mantine/demo/demo/demo.tsx","./src/components/mantine/demo/index.ts","./src/utils/variants-data.ts","./src/components/custom/components-demo/buttons/action-icon-demo.tsx","./src/components/custom/components-demo/buttons/button-demo.tsx","./src/components/custom/components-demo/buttons/close-button-demo.tsx","./src/components/custom/components-demo/charts/data/_area-data.ts","./src/components/custom/components-demo/charts/area-chart-demo.tsx","./src/components/custom/components-demo/charts/data/_bar-data.ts","./src/components/custom/components-demo/charts/bar-chart-demo.tsx","./src/components/custom/components-demo/charts/data/_bubble-data.ts","./src/components/custom/components-demo/charts/bubble-chart-demo.tsx","./src/components/custom/components-demo/charts/composite-chart-demo.tsx","./src/components/custom/components-demo/charts/data/_donut-data.ts","./src/components/custom/components-demo/charts/donot-chart-demo.tsx","./src/components/custom/components-demo/charts/line-chart-demo.tsx","./src/components/custom/components-demo/charts/data/_pie-data.ts","./src/components/custom/components-demo/charts/pie-chart-demo.tsx","./src/components/custom/components-demo/charts/data/_radar-data.ts","./src/components/custom/components-demo/charts/radar-chart-demo.tsx","./src/components/custom/components-demo/charts/data/_scatter-data.ts","./src/components/custom/components-demo/charts/scatter-chart-demo.tsx","./src/components/custom/components-demo/charts/sparkline-demo.tsx","./src/utils/input-controls.ts","./src/components/custom/components-demo/combobox/autocomplete-demo.tsx","./src/components/custom/components-demo/combobox/multi-select-demo.tsx","./src/components/custom/components-demo/combobox/pills-input-demo.tsx","./src/components/custom/components-demo/combobox/select-demo.tsx","./src/components/custom/components-demo/combobox/tags-input-demo.tsx","./src/components/custom/components-demo/data-display/accordion-demo.tsx","./src/components/custom/components-demo/data-display/avatar-demo.tsx","./src/components/custom/components-demo/data-display/background-image-demo.tsx","./src/components/custom/components-demo/data-display/badge-demo.tsx","./src/components/custom/components-demo/data-display/card-demo.tsx","./src/components/custom/components-demo/data-display/color-swatch-demo.tsx","./src/components/custom/components-demo/data-display/image-demo.tsx","./src/components/custom/components-demo/data-display/indicator-demo.tsx","./src/components/custom/components-demo/data-display/spoiler-demo.tsx","./src/components/custom/components-demo/data-display/theme-icon-demo.tsx","./src/components/custom/components-demo/data-display/timeline-demo.tsx","./src/components/custom/components-demo/feedback/alert-demo.tsx","./src/components/custom/components-demo/feedback/loader-demo.tsx","./src/components/custom/components-demo/feedback/notification-demo.tsx","./src/components/custom/components-demo/feedback/progress-demo.tsx","./src/components/custom/components-demo/feedback/ring-progress-demo.tsx","./src/components/custom/components-demo/feedback/semi-circle-progress-demo.tsx","./src/components/custom/components-demo/feedback/skeleton-demo.tsx","./src/components/custom/components-demo/inputs/checkbox-demo.tsx","./src/components/custom/components-demo/inputs/checkbox-group-demo.tsx","./src/components/custom/components-demo/inputs/chip-demo.tsx","./src/components/custom/components-demo/inputs/color-input-demo.tsx","./src/components/custom/components-demo/inputs/fieldset-demo.tsx","./src/components/custom/components-demo/inputs/file-input.tsx","./src/components/custom/components-demo/inputs/native-select-demo.tsx","./src/components/custom/components-demo/inputs/pin-input-demo.tsx","./src/components/custom/components-demo/inputs/radio-demo.tsx","./src/components/custom/components-demo/inputs/radio-group-demo.tsx","./src/components/custom/components-demo/inputs/rating-demo.tsx","./src/components/custom/components-demo/inputs/segmented-control-demo.tsx","./src/components/custom/components-demo/inputs/slider-demo.tsx","./src/components/custom/components-demo/inputs/switch-demo.tsx","./src/components/custom/components-demo/inputs/switch-group-demo.tsx","./src/components/custom/components-demo/inputs/text-input-demo.tsx","./src/components/custom/components-demo/inputs/textarea-demo.tsx","./src/components/custom/components-demo/miscellaneous/date-picker-input-demo.tsx","./src/components/custom/components-demo/miscellaneous/divider-demo.tsx","./src/components/custom/components-demo/miscellaneous/paper-demo.tsx","./src/components/custom/components-demo/miscellaneous/scroll-area-demo.tsx","./src/components/custom/components-demo/navigation/anchor-demo.tsx","./src/components/custom/components-demo/navigation/nav-link-demo.tsx","./src/components/custom/components-demo/navigation/pagination-demo.tsx","./src/components/custom/components-demo/navigation/stepper-demo.tsx","./src/components/custom/components-demo/navigation/tabs-demo.tsx","./src/components/custom/components-demo/overlays/dialog-demo.tsx","./node_modules/@mantine/form/lib/types.d.ts","./node_modules/@mantine/form/lib/use-form.d.ts","./node_modules/@mantine/form/lib/formprovider/formprovider.d.ts","./node_modules/@mantine/form/lib/actions/actions.d.ts","./node_modules/@mantine/form/lib/actions/index.d.ts","./node_modules/@mantine/form/lib/form/form.d.ts","./node_modules/@mantine/form/lib/form-index.d.ts","./node_modules/@mantine/form/lib/validators/is-not-empty/is-not-empty.d.ts","./node_modules/@mantine/form/lib/validators/matches/matches.d.ts","./node_modules/@mantine/form/lib/validators/is-email/is-email.d.ts","./node_modules/@mantine/form/lib/validators/has-length/has-length.d.ts","./node_modules/@mantine/form/lib/validators/is-in-range/is-in-range.d.ts","./node_modules/@mantine/form/lib/validators/matches-field/matches-field.d.ts","./node_modules/@mantine/form/lib/validators/index.d.ts","./node_modules/@mantine/form/lib/use-field.d.ts","./node_modules/@mantine/form/lib/resolvers/zod-resolver/zod-resolver.d.ts","./node_modules/@mantine/form/lib/resolvers/superstruct-resolver/superstruct-resolver.d.ts","./node_modules/@mantine/form/lib/resolvers/yup-resolver/yup-resolver.d.ts","./node_modules/@mantine/form/lib/resolvers/joi-resolver/joi-resolver.d.ts","./node_modules/@mantine/form/lib/index.d.mts","./src/components/custom/components-demo/overlays/authentication-form.tsx","./src/components/custom/components-demo/overlays/drawer-demo.tsx","./src/components/custom/components-demo/overlays/hover-card-demo.tsx","./src/components/custom/components-demo/overlays/loading-overlay-demo.tsx","./src/components/custom/components-demo/overlays/menu-demo.tsx","./src/components/custom/components-demo/overlays/modal-demo.tsx","./src/components/custom/components-demo/overlays/overlay-demo.tsx","./src/components/custom/components-demo/overlays/popover-demo.tsx","./src/components/custom/components-demo/overlays/tooltip-demo.tsx","./src/components/custom/components-demo/typography/blockquote-demo.tsx","./src/components/custom/components-demo/typography/code-demo.tsx","./src/components/custom/components-demo/typography/highlight-demo.tsx","./src/components/custom/components-demo/typography/list-demo.tsx","./src/components/custom/components-demo/typography/mark-demo.tsx","./src/components/custom/components-demo/typography/table-demo.tsx","./src/components/custom/components-demo/typography/text-demo.tsx","./src/components/custom/components-demo/typography/title-demo.tsx","./src/utils/data.ts","./src/components/ui/chart-tooltip.tsx","./src/components/custom/theme-example-cards/metric.tsx","./src/components/custom/theme-example-cards/stats.tsx","./src/components/custom/theme-example-cards/team-members.tsx","./src/components/custom/theme-example-cards/cookie-settings.tsx","./src/components/custom/theme-example-cards/payment-method.tsx","./src/components/ui/icons.tsx","./src/components/custom/theme-example-cards/create-account.tsx","./src/components/custom/theme-example-cards/report-issue.tsx","./node_modules/@tanstack/table-core/build/lib/utils.d.ts","./node_modules/@tanstack/table-core/build/lib/core/table.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnvisibility.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnordering.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnpinning.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowpinning.d.ts","./node_modules/@tanstack/table-core/build/lib/core/headers.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnfaceting.d.ts","./node_modules/@tanstack/table-core/build/lib/features/globalfaceting.d.ts","./node_modules/@tanstack/table-core/build/lib/filterfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnfiltering.d.ts","./node_modules/@tanstack/table-core/build/lib/features/globalfiltering.d.ts","./node_modules/@tanstack/table-core/build/lib/sortingfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowsorting.d.ts","./node_modules/@tanstack/table-core/build/lib/aggregationfns.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columngrouping.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowexpanding.d.ts","./node_modules/@tanstack/table-core/build/lib/features/columnsizing.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowpagination.d.ts","./node_modules/@tanstack/table-core/build/lib/features/rowselection.d.ts","./node_modules/@tanstack/table-core/build/lib/core/row.d.ts","./node_modules/@tanstack/table-core/build/lib/core/cell.d.ts","./node_modules/@tanstack/table-core/build/lib/core/column.d.ts","./node_modules/@tanstack/table-core/build/lib/types.d.ts","./node_modules/@tanstack/table-core/build/lib/columnhelper.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getcorerowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getexpandedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfacetedminmaxvalues.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfacetedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfaceteduniquevalues.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getfilteredrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getgroupedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getpaginationrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/utils/getsortedrowmodel.d.ts","./node_modules/@tanstack/table-core/build/lib/index.d.ts","./node_modules/@tanstack/react-table/build/lib/index.d.ts","./src/components/custom/theme-example-cards/data-table.tsx","./src/components/custom/theme-example-cards/share.tsx","./src/components/custom/theme-example-cards/mantine-cards.tsx","./src/components/ui/color-scheme-switch/color-scheme-switch.tsx","./src/components/ui/header/header.tsx","./src/themes/generated/generatedmantinecssstyles.ts","./src/themes/generated/generatedmantinecssvariableresolver.ts","./src/themes/generated/generatedmantinetheme.ts","./src/themes/generated/generatedshadcncssstyles.ts","./src/themes/generated/generatedshadcncssvariableresolver.ts","./src/themes/generated/generatedshadcntheme.ts","./src/components/custom/change-theme-section/copy-theme-code-button.tsx","./src/components/custom/change-theme-section/change-theme-section.tsx","./src/components/layouts/page-layout.tsx","./src/app/page.tsx","./src/app/sitemap.ts","./src/components/custom/about/about.tsx","./src/app/about/page.tsx","./src/feature/blocks/data/types.ts","./src/feature/blocks/components/categories/category-list.tsx","./src/feature/blocks/data/images/index.ts","./src/feature/blocks/data/categories.ts","./src/feature/blocks/components/block-components/block-components.tsx","./src/app/blocks/layout.tsx","./src/app/blocks/page.tsx","./src/feature/blocks/lib/hero1/hero1.tsx","./src/feature/blocks/lib/hero2/hero2.tsx","./src/feature/blocks/lib/hero3/hero3.tsx","./src/feature/blocks/lib/hero4/hero4.tsx","./src/feature/blocks/lib/hero5/hero5.tsx","./src/feature/blocks/lib/hero6/hero6.tsx","./src/feature/blocks/lib/feature1/feature1.tsx","./src/feature/blocks/lib/feature2/feature2.tsx","./src/feature/blocks/lib/feature3/feature3.tsx","./src/feature/blocks/lib/feature4/feature4.tsx","./src/feature/blocks/lib/feature5/feature5.tsx","./src/feature/blocks/lib/pricing1/pricing1.tsx","./src/feature/blocks/lib/pricing2/pricing2.tsx","./src/feature/blocks/lib/pricing3/pricing3.tsx","./src/feature/blocks/lib/pricing4/pricing4.tsx","./src/feature/blocks/lib/pricing5/pricing5.tsx","./src/feature/blocks/lib/coming-soon/coming-soon.tsx","./src/feature/blocks/lib/meet-our-team-1/meet-our-team-1.tsx","./src/feature/blocks/lib/meet-our-team-2/meet-our-team-2.tsx","./src/feature/blocks/lib/meet-our-team-3/meet-our-team-3.tsx","./src/feature/blocks/lib/meet-our-team-4/meet-our-team-4.tsx","./src/feature/blocks/lib/testimonials1/testimonials1.tsx","./src/feature/blocks/lib/testimonials2/testimonials2.tsx","./src/feature/blocks/lib/testimonials3/testimonials3.tsx","./src/feature/blocks/lib/faq1/faq1.tsx","./src/feature/blocks/lib/faq2/faq2.tsx","./src/feature/blocks/lib/faq3/faq3.tsx","./src/feature/blocks/lib/newsletter1/newsletter1.tsx","./src/feature/blocks/lib/newsletter2/newsletter2.tsx","./src/feature/blocks/lib/index.ts","./src/feature/blocks/components/component-preview/component-preview.tsx","./src/feature/blocks/components/component-canvas/color-control.tsx","./src/feature/blocks/components/component-canvas/canvas-header.tsx","./src/feature/blocks/components/component-canvas/component-canvas.tsx","./src/feature/blocks/components/categories/category-page.tsx","./src/feature/blocks/data/components.ts","./src/feature/blocks/data/fn.ts","./src/app/blocks/[slug]/page.tsx","./src/components/custom/testimonial/testimonial-item.tsx","./src/components/custom/testimonial/testimonial-grid.tsx","./src/utils/testimonials.ts","./src/app/feedback/page.tsx","./src/components/custom/how-to-use/how-to-use.tsx","./src/app/how-to-use/page.tsx","./src/components/ui/navbar/navbar-links-group.tsx","./src/components/ui/navbar/navbar.tsx","./src/components/custom/components-demo/components-demo.tsx","./src/app/playground/page.tsx","./src/components/custom/blocks/coming-soon/coming-soon.tsx","./src/components/ui/color-scheme-switch/index.ts","./src/feature/blocks/components/categories/category-card.tsx","./node_modules/@mantinex/mantine-header/lib/colorschemecontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/directioncontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/discordcontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/githubcontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/headercontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/headercontrols.d.ts","./node_modules/@mantinex/mantine-header/lib/searchmobilecontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/searchcontrol/searchcontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/searchcontrol/index.d.ts","./node_modules/@mantinex/mantine-header/lib/supportcontrol.d.ts","./node_modules/@mantinex/mantine-header/lib/index.d.mts","./src/feature/blocks/components/shell/shell.tsx","./src/themes/test/shadcn-css-variable-resolver-test.ts","./src/themes/test/shadcn-theme-test.ts","./src/utils/csstemplate.ts","./.next/types/cache-life.d.ts","./.next/types/app/page.ts","./.next/types/app/about/page.ts","./.next/types/app/blocks/page.ts","./.next/types/app/blocks/[slug]/page.ts","./.next/types/app/feedback/page.ts","./.next/types/app/how-to-use/page.ts","./.next/types/app/playground/page.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@types/babel__generator/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/@types/babel__template/index.d.ts","./node_modules/@types/babel__traverse/index.d.ts","./node_modules/@types/babel__core/index.d.ts","./node_modules/@types/d3-array/index.d.ts","./node_modules/@types/d3-color/index.d.ts","./node_modules/@types/d3-ease/index.d.ts","./node_modules/@types/d3-interpolate/index.d.ts","./node_modules/@types/d3-timer/index.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@types/mdast/index.d.ts"],"fileIdsList":[[52,70,113,297,429,433,1542,1955,2029],[52,70,113,297,429,433,1542,2000,2029],[52,70,113,297,429,433,1542,1962,2029],[52,70,113,297,429,433,1542,2004,2029],[52,70,113,297,429,433,1542,2006,2029],[52,70,113,297,429,433,1542,1952,2029],[52,70,113,297,429,433,1542,2010,2029],[48,49,50,51,52,70,113,429,433,1542],[48,49,50,51,70,113,429,433,1542,2029],[52,70,113,429,432,433,1542,2029],[52,70,113,429,433,1542,2029,2037],[52,70,113,429,433,1542,2029],[52,70,113,429,433,822,1542,2029],[52,70,113,429,433,823,824,1542,2029],[52,56,70,113,429,433,825,1542,2029],[52,56,70,113,429,433,826,1542,2029],[52,70,113,429,433,1163,1542,1617,1618,1620,1622,2029],[52,70,113,280,429,433,1542,2029],[52,70,113,429,433,1542,1618,1623,2029],[52,70,113,429,433,1542,1623,1624,1625,2029],[52,70,113,429,433,1542,1627,2029],[52,70,113,429,433,1163,1542,1617,2029],[52,70,113,429,433,1542,1641,2029],[52,70,113,429,433,1163,1542,1618,2029],[52,70,113,429,433,1542,1621,2029],[52,70,113,429,433,1542,1619,2029],[52,70,113,429,433,1542,1643,2029],[52,70,113,429,433,1542,1633,2029],[52,70,113,429,433,1542,1647,2029],[52,70,113,429,433,1542,1618,1620,1622,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,2029],[52,70,113,429,433,1542,1629,2029],[52,70,113,429,433,1542,1635,2029],[52,70,113,429,433,1542,1637,2029],[52,70,113,429,433,1542,1645,2029],[52,70,113,429,433,1542,1639,2029],[52,70,113,429,433,1542,1631,2029],[52,70,113,429,433,1163,1542,1617,1626,2029],[52,70,113,429,433,1163,1542,2029],[52,70,113,429,433,1542,1752,1753,1754,2029],[52,70,113,280,429,433,796,871,872,873,874,875,1542,2029],[52,70,113,429,433,796,1542,2029],[52,70,113,429,433,871,872,873,874,875,876,1542,2029],[52,56,70,113,429,433,650,652,796,835,836,837,1542,2029],[52,70,113,429,433,796,838,1542,2029],[52,70,113,429,433,836,837,838,1542,2029],[52,70,113,429,433,796,817,1542,2029],[52,70,113,429,433,878,1542,2029],[52,70,113,429,433,880,1542,2029],[52,56,70,113,429,433,650,652,796,883,1542,2029],[52,70,113,429,433,884,1542,2029],[52,70,113,429,433,886,1542,2029],[52,70,113,429,433,796,888,889,890,891,892,893,894,1542,2029],[52,56,70,113,429,433,650,652,796,1542,2029],[52,70,113,429,433,888,889,890,891,892,893,894,895,1542,2029],[52,70,113,429,433,897,1542,2029],[52,70,113,429,433,796,800,863,923,1542,2029],[52,70,113,429,433,924,1542,2029],[52,56,70,113,429,433,650,652,796,926,1542,2029],[52,70,113,429,433,926,927,1542,2029],[52,70,113,429,433,929,1542,2029],[52,70,113,429,433,931,1542,2029],[52,70,113,429,433,933,1542,2029],[52,70,113,429,433,935,1542,2029],[52,70,113,429,433,937,1542,2029],[52,56,70,113,429,433,650,652,796,835,939,940,1542,2029],[52,70,113,429,433,796,941,1542,2029],[52,70,113,429,433,939,940,941,1542,2029],[52,56,70,113,429,433,650,652,796,943,1542,2029],[52,70,113,429,433,943,944,1542,2029],[52,70,113,429,433,946,1542,2029],[52,70,113,429,433,796,949,950,951,952,1542,2029],[52,56,70,113,429,433,796,1542,2029],[52,70,113,429,433,796,863,1542,2029],[52,70,113,429,433,950,951,952,953,954,955,956,1542,2029],[52,70,113,429,433,796,958,1542,2029],[52,70,113,429,433,958,959,1542,2029],[52,56,70,113,429,433,1542,2029],[52,70,113,429,433,840,841,1542,2029],[52,70,113,429,433,961,1542,2029],[52,70,113,429,433,797,1542,2029],[52,70,113,429,433,796,832,863,971,1542,2029],[52,70,113,429,433,972,1542,2029],[52,56,70,113,429,433,965,1542,2029],[52,70,113,429,433,796,963,1542,2029],[52,70,113,429,433,963,1542,2029],[52,70,113,429,433,968,969,1542,2029],[52,70,113,429,433,964,966,967,970,1542,2029],[52,70,113,429,433,974,1542,2029],[52,56,70,113,280,429,433,796,832,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,1542,2029],[52,70,113,429,433,914,916,1542,2029],[52,56,70,113,429,433,796,863,1542,2029],[52,70,113,429,433,796,832,1542,2029],[52,70,113,429,433,796,860,1542,2029],[52,70,113,429,433,917,1542,2029],[52,70,113,429,433,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,1542,2029],[52,70,113,280,429,433,799,915,917,1542,2029],[52,70,113,429,433,913,1542,2029],[52,70,113,429,433,976,1542,2029],[52,70,113,429,433,978,1542,2029],[52,70,113,429,433,796,806,821,879,1542,2029],[52,70,113,429,433,980,1542,2029],[52,70,113,429,433,982,1542,2029],[52,70,113,280,429,433,796,990,1542,2029],[52,70,113,429,433,796,853,984,985,986,987,988,990,991,992,1542,2029],[52,70,113,429,433,796,853,1542,2029],[52,70,113,429,433,796,853,989,1542,2029],[52,70,113,429,433,984,985,986,987,988,990,991,992,993,1542,2029],[52,70,113,429,433,995,1542,2029],[52,70,113,429,433,997,1542,2029],[52,70,113,429,433,999,1542,2029],[52,70,113,429,433,866,867,1542,2029],[52,56,70,113,429,433,808,1542,2029],[52,70,113,429,433,808,1542,2029],[52,70,113,429,433,807,808,809,810,811,1542,2029],[52,70,113,429,433,869,1542,2029],[52,70,113,429,433,1001,1542,2029],[52,70,113,280,429,433,796,1005,1542,2029],[52,70,113,429,433,796,1003,1004,1542,2029],[52,70,113,429,433,1004,1005,1542,2029],[52,70,113,429,433,843,1542,2029],[52,70,113,429,433,1007,1542,2029],[52,56,70,113,280,429,433,650,796,831,832,1009,1010,1542,2029],[52,70,113,280,429,433,832,1542,2029],[52,56,70,113,429,433,832,1542,2029],[52,70,113,429,433,1009,1010,1011,1542,2029],[52,70,113,429,433,1013,1542,2029],[52,70,113,429,433,798,800,802,804,806,812,814,817,821,832,835,839,842,844,853,863,865,868,870,877,879,881,883,885,887,896,898,923,925,928,930,932,934,936,938,942,945,947,957,960,962,971,973,975,977,979,981,983,994,996,998,1000,1002,1006,1008,1012,1014,1017,1019,1021,1023,1026,1028,1030,1037,1049,1051,1053,1055,1057,1059,1066,1074,1076,1079,1082,1084,1089,1096,1098,1100,1102,1104,1106,1108,1110,1114,1116,1118,1120,1124,1127,1132,1134,1139,1141,1143,1145,1148,1150,1155,1159,1161,1542,2029],[52,70,113,429,433,1016,1542,2029],[52,70,113,429,433,796,1015,1542,2029],[52,70,113,429,433,948,1542,2029],[52,70,113,429,433,854,855,856,857,858,859,860,861,862,1542,2029],[52,56,70,113,429,433,650,652,796,854,855,856,857,858,859,1542,2029],[52,70,113,429,433,796,842,1542,2029],[52,70,113,280,429,433,796,859,1542,2029],[52,70,113,429,433,796,855,856,857,1542,2029],[52,56,70,113,429,433,796,860,1542,2029],[52,70,113,429,433,864,1542,2029],[52,56,70,113,429,433,650,652,796,863,1542,2029],[52,70,113,429,433,1020,1542,2029],[52,70,113,429,433,796,863,1019,1542,2029],[52,70,113,429,433,1022,1542,2029],[52,70,113,429,433,1024,1025,1542,2029],[52,70,113,429,433,796,1024,1542,2029],[52,70,113,429,433,833,834,1542,2029],[52,70,113,429,433,796,833,1542,2029],[52,70,113,429,433,1027,1542,2029],[52,70,113,429,433,796,814,821,835,1542,2029],[52,70,113,429,433,1029,1542,2029],[52,70,113,429,433,1031,1032,1033,1034,1035,1036,1542,2029],[52,56,70,113,280,429,433,650,652,796,832,1031,1032,1033,1034,1035,1542,2029],[52,70,113,429,433,1038,1039,1040,1041,1042,1044,1045,1046,1047,1048,1542,2029],[52,70,113,280,429,433,796,1044,1542,2029],[52,70,113,429,433,796,853,1038,1039,1040,1041,1042,1044,1045,1046,1542,2029],[52,70,113,429,433,796,853,1043,1542,2029],[52,70,113,429,433,845,846,847,848,849,850,851,852,1542,2029],[52,56,70,113,429,433,438,796,817,821,1542,2029],[52,56,70,113,429,433,796,842,1542,2029],[52,56,70,113,429,433,796,821,1542,2029],[52,56,70,113,429,433,796,814,821,1542,2029],[52,70,113,429,433,1050,1542,2029],[52,70,113,429,433,1052,1542,2029],[52,70,113,429,433,796,863,923,1542,2029],[52,70,113,429,433,1054,1542,2029],[52,70,113,429,433,1056,1542,2029],[52,70,113,429,433,1058,1542,2029],[52,70,113,280,429,433,796,1542,2029],[52,70,113,429,433,1065,1542,2029],[52,70,113,429,433,796,863,1064,1542,2029],[52,70,113,429,433,813,1542,2029],[52,70,113,429,433,1068,1069,1070,1071,1072,1073,1542,2029],[52,70,113,429,433,796,1067,1068,1069,1070,1071,1072,1542,2029],[52,70,113,429,433,796,1067,1542,2029],[52,56,70,113,429,433,796,1067,1542,2029],[52,70,113,280,429,433,1067,1542,2029],[52,70,113,429,433,805,1542,2029],[52,70,113,429,433,1075,1542,2029],[52,70,113,429,433,1077,1078,1542,2029],[52,70,113,429,433,796,1077,1542,2029],[52,70,113,429,433,1080,1081,1542,2029],[52,70,113,429,433,796,863,1080,1542,2029],[52,70,113,429,433,1083,1542,2029],[52,70,113,429,433,828,829,830,831,1542,2029],[52,70,113,280,429,433,650,796,812,814,817,821,828,829,830,1542,2029],[52,70,113,429,433,827,1542,2029],[52,70,113,429,433,796,831,1542,2029],[52,70,113,429,433,815,816,1542,2029],[52,70,113,280,429,433,815,1542,2029],[52,70,113,429,433,1085,1086,1087,1088,1542,2029],[52,70,113,429,433,796,1085,1086,1087,1542,2029],[52,70,113,429,433,1090,1091,1092,1093,1094,1095,1542,2029],[52,70,113,429,433,796,949,1090,1091,1092,1093,1542,2029],[52,70,113,429,433,796,1092,1542,2029],[52,70,113,429,433,1097,1542,2029],[52,70,113,429,433,1099,1542,2029],[52,70,113,429,433,799,1542,2029],[52,70,113,429,433,1101,1542,2029],[52,70,113,429,433,1103,1542,2029],[52,70,113,429,433,1105,1542,2029],[52,70,113,429,433,1107,1542,2029],[52,70,113,429,433,1109,1542,2029],[52,70,113,429,433,1111,1112,1113,1542,2029],[52,70,113,429,433,796,821,1111,1542,2029],[52,70,113,429,433,1115,1542,2029],[52,70,113,429,433,1117,1542,2029],[52,70,113,429,433,1119,1542,2029],[52,70,113,429,433,1121,1122,1123,1542,2029],[52,70,113,429,433,796,1121,1122,1542,2029],[52,70,113,429,433,796,1123,1542,2029],[52,70,113,429,433,1125,1126,1542,2029],[52,70,113,429,433,796,949,1125,1542,2029],[52,70,113,429,433,1128,1130,1131,1542,2029],[52,70,113,429,433,796,1131,1542,2029],[52,70,113,429,433,796,1128,1129,1130,1542,2029],[52,70,113,280,429,433,1131,1542,2029],[52,70,113,429,433,1133,1542,2029],[52,70,113,429,433,757,796,802,1542,2029],[52,70,113,429,433,1135,1136,1137,1138,1542,2029],[52,70,113,429,433,796,1135,1136,1137,1542,2029],[52,70,113,429,433,796,802,1542,2029],[52,70,113,429,433,1140,1542,2029],[52,70,113,429,433,882,1542,2029],[52,70,113,429,433,1018,1542,2029],[52,70,113,429,433,1142,1542,2029],[52,70,113,429,433,1144,1542,2029],[52,70,113,429,433,1146,1147,1542,2029],[52,70,113,429,433,796,1146,1542,2029],[52,70,113,429,433,1149,1542,2029],[52,70,113,429,433,1151,1152,1153,1154,1542,2029],[52,70,113,429,433,796,812,821,1151,1152,1153,1542,2029],[52,70,113,429,433,796,812,817,827,1154,1542,2029],[52,70,113,429,433,796,1151,1542,2029],[52,70,113,429,433,616,819,1542,2029],[52,70,113,429,433,818,819,820,1542,2029],[52,70,113,280,429,433,818,1542,2029],[52,70,113,429,433,1158,1542,2029],[52,70,113,429,433,1156,1157,1158,1542,2029],[52,70,113,429,433,796,1157,1542,2029],[52,70,113,429,433,1156,1158,1542,2029],[52,70,113,429,433,1160,1542,2029],[52,70,113,429,433,801,1542,2029],[52,70,113,429,433,803,1542,2029],[52,56,70,113,429,433,618,636,654,782,1542,2029],[52,70,113,429,433,782,1542,2029],[52,70,113,429,433,618,782,1542,2029],[52,70,113,429,433,618,636,637,638,655,1542,2029],[52,70,113,429,433,619,1542,2029],[52,70,113,429,433,619,620,630,635,1542,2029],[52,70,113,429,433,619,630,634,782,1542,2029],[52,70,113,429,433,633,635,1542,2029],[52,70,113,429,433,621,622,623,624,625,626,627,628,1542,2029],[52,70,113,429,433,619,629,1542,2029],[52,56,70,113,280,429,433,1542,2029],[52,70,113,429,433,794,1542,2029],[52,70,113,429,433,650,652,1542,2029],[52,70,113,429,433,649,782,1542,2029],[52,70,113,429,433,650,651,652,653,1542,2029],[52,56,70,113,429,433,650,651,1542,2029],[52,70,113,429,433,633,649,654,656,782,793,795,1542,2029],[52,70,113,429,433,631,632,1542,2029],[52,70,113,280,429,433,631,1542,2029],[52,70,113,429,433,670,1542,2029],[52,70,113,429,433,617,657,658,659,660,661,662,663,664,665,666,667,668,1542,2029],[52,70,113,429,433,656,670,1542,2029],[52,70,113,429,433,671,672,673,1542,2029],[52,70,113,429,433,671,1542,2029],[52,70,113,280,429,433,670,1542,2029],[52,70,113,429,433,760,1542,2029],[52,70,113,429,433,765,1542,2029],[52,70,113,429,433,656,1542,2029],[52,70,113,429,433,766,1542,2029],[52,70,113,429,433,669,670,674,759,761,762,764,767,768,770,773,774,776,777,778,779,780,781,1542,2029],[52,56,70,113,429,433,670,767,1542,2029],[52,70,113,429,433,670,767,1542,2029],[52,70,113,429,433,769,770,771,772,1542,2029],[52,70,113,280,429,433,670,674,768,773,1542,2029],[52,70,113,429,433,775,1542,2029],[52,56,70,113,280,429,433,670,1542,2029],[52,70,113,429,433,763,1542,2029],[52,70,113,429,433,616,669,1542,2029],[52,70,113,429,433,675,676,758,1542,2029],[52,70,113,429,433,757,1542,2029],[52,70,113,429,433,670,674,1542,2029],[52,70,113,429,433,670,757,1542,2029],[52,70,113,429,433,654,656,782,1542,2029],[52,70,113,429,433,639,640,642,645,646,647,648,1542,2029],[52,70,113,429,433,639,654,656,782,1542,2029],[52,70,113,429,433,640,654,1542,2029],[52,70,113,429,433,640,782,1542,2029],[52,70,113,429,433,641,782,1542,2029],[52,56,70,113,429,433,640,643,656,782,1542,2029],[52,70,113,429,433,644,782,1542,2029],[52,56,70,113,429,433,656,782,1542,2029],[52,56,70,113,429,433,639,640,654,656,1542,2029],[52,70,113,429,433,783,1542,2029],[52,70,113,429,433,439,440,441,444,445,446,447,448,449,450,451,452,453,454,455,456,457,783,784,785,786,787,788,789,790,791,792,1542,2029],[52,70,113,429,433,442,443,1542,2029],[52,70,113,429,433,438,796,1162,1542,2029],[52,70,113,429,433,1163,1542,1655,1687,1689,1691,1695,1697,1699,2029],[52,70,113,429,433,1542,1702,1703,2029],[52,70,113,429,433,1542,1684,2029],[52,70,113,429,433,1163,1542,1655,1687,1689,1691,1704,2029],[52,70,113,429,433,1542,1711,2029],[52,70,113,429,433,1542,1709,2029],[52,70,113,429,433,1163,1542,1655,1701,1704,1710,2029],[52,70,113,429,433,1542,1719,2029],[52,56,70,113,280,429,433,1542,1655,2029],[52,70,113,429,433,1542,1662,1663,2029],[52,70,113,429,433,1542,1655,2029],[52,70,113,429,433,1163,1542,1655,1668,1701,1704,2029],[52,70,113,429,433,1542,1713,2029],[52,70,113,429,433,1542,1669,2029],[52,70,113,429,433,1163,1542,1681,1685,2029],[52,70,113,429,433,1542,1686,2029],[52,70,113,429,433,1163,1542,1687,1693,2029],[52,70,113,429,433,1542,1694,2029],[52,70,113,280,429,433,1542,1655,2029],[52,70,113,429,433,1542,1665,2029],[52,70,113,429,433,1542,1692,2029],[52,70,113,429,433,1542,1673,1674,1675,1676,2029],[52,70,113,429,433,1163,1542,1655,1670,2029],[52,70,113,429,433,1542,1690,2029],[52,70,113,429,433,1163,1542,1677,1685,2029],[52,70,113,429,433,1542,1698,2029],[52,70,113,429,433,1163,1542,1691,1693,2029],[52,70,113,429,433,1542,1707,2029],[52,70,113,429,433,1163,1542,1655,1687,1689,1695,1697,1704,2029],[52,70,113,429,433,1542,1717,2029],[52,70,113,429,433,1163,1542,1655,1701,1708,2029],[52,70,113,429,433,1542,1682,2029],[52,70,113,429,433,1163,1542,1655,1679,2029],[52,70,113,429,433,1542,1678,2029],[52,70,113,429,433,1542,1700,2029],[52,70,113,429,433,757,1163,1542,1655,1661,1666,2029],[52,70,113,429,433,1542,1667,2029],[52,70,113,429,433,1542,1671,2029],[52,70,113,429,433,1163,1542,1655,2029],[52,70,113,429,433,1542,1688,2029],[52,70,113,429,433,1163,1542,1683,1685,2029],[52,70,113,429,433,1542,1696,2029],[52,70,113,429,433,1163,1542,1689,1693,2029],[52,70,113,429,433,1542,1705,2029],[52,70,113,429,433,1163,1542,1655,1687,1695,1704,2029],[52,70,113,429,433,1542,1715,2029],[52,70,113,429,433,1163,1542,1655,1701,1706,2029],[52,70,113,429,433,1542,1680,2029],[52,70,113,429,433,1542,1655,1661,1664,1666,1668,1670,1672,1677,1679,1681,1683,1685,1687,1689,1691,1693,1695,1697,1699,1701,1704,1706,1708,1710,1712,1714,1716,1718,1720,2029],[52,70,113,429,433,1542,1651,2029],[52,70,113,429,433,1542,1651,1652,1653,1654,2029],[52,70,113,429,433,1542,1653,2029],[52,70,113,429,433,1542,1656,1657,1658,1659,1660,2029],[52,56,70,113,429,433,1542,1855,2029],[52,70,113,429,433,1542,1858,2029],[52,70,113,429,433,1542,1855,2029],[52,70,113,429,433,1542,1855,1856,1857,1859,1860,1861,1868,1869,1870,1871,1872,1873,2029],[52,70,113,429,433,1542,1862,1863,1864,1865,1866,1867,2029],[52,70,113,429,433,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,1542,2029],[52,70,113,429,433,688,1542,2029],[52,70,113,429,433,724,1542,2029],[52,70,113,429,433,704,1542,2029],[52,70,113,429,433,677,678,679,680,681,682,1542,2029],[52,70,113,429,433,1542,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,2029],[52,70,113,429,433,1542,1733,2029],[52,70,113,429,433,1163,1542,1725,1726,1727,1728,1729,1730,1731,1732,2029],[52,70,113,429,433,1542,1724,2029],[52,70,113,429,433,1163,1542,1725,2029],[52,70,113,429,433,1542,1723,2029],[52,70,113,280,429,433,1542,1740,2029],[52,70,113,429,433,1542,1741,1742,1743,1744,1745,1746,1747,1748,1749,1750,2029],[52,56,70,113,429,433,1163,1542,2029],[52,70,113,280,429,433,1163,1542,2029],[52,70,113,429,433,1542,2014,2015,2016,2017,2018,2019,2020,2022,2023,2029],[52,70,113,429,433,1542,2021,2029],[52,70,113,429,433,1163,1198,1542,2029],[52,70,113,429,433,1198,1199,1200,1201,1542,2029],[52,70,113,280,429,433,1197,1198,1542,2029],[52,56,70,113,429,433,1210,1542,2029],[52,70,113,429,433,1211,1212,1213,1214,1215,1216,1217,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1228,1229,1230,1231,1232,1233,1234,1235,1236,1237,1238,1239,1240,1241,1242,1243,1244,1245,1246,1247,1248,1249,1250,1251,1252,1253,1254,1255,1256,1257,1258,1259,1260,1261,1262,1263,1264,1265,1266,1267,1268,1269,1270,1271,1272,1273,1274,1275,1276,1277,1278,1279,1280,1281,1282,1283,1284,1285,1286,1287,1288,1289,1290,1291,1292,1293,1294,1295,1296,1297,1298,1299,1300,1301,1302,1303,1304,1305,1306,1307,1308,1309,1310,1311,1312,1313,1314,1315,1316,1317,1318,1319,1320,1321,1322,1323,1324,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1364,1365,1366,1367,1368,1369,1370,1371,1372,1373,1374,1375,1376,1377,1378,1379,1380,1381,1382,1383,1384,1385,1386,1387,1388,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399,1400,1401,1402,1403,1404,1405,1406,1407,1408,1409,1410,1411,1412,1413,1414,1415,1416,1417,1418,1419,1420,1421,1422,1423,1424,1425,1426,1427,1428,1429,1430,1431,1432,1433,1434,1435,1436,1437,1438,1439,1440,1441,1442,1443,1444,1445,1446,1447,1448,1449,1450,1451,1452,1453,1454,1455,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1476,1477,1478,1479,1480,1481,1482,1483,1484,1485,1486,1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1515,1516,1517,1518,1519,1520,1521,1522,1523,1524,1525,1526,1527,1528,1542,2029],[52,70,113,429,433,1166,1167,1168,1176,1188,1542,2029],[52,70,113,429,433,1167,1168,1192,1542,2029],[52,70,113,429,433,1168,1542,2029],[52,70,113,429,433,1167,1168,1173,1174,1175,1542,2029],[52,70,113,429,433,1167,1168,1173,1542,2029],[52,70,113,429,433,1191,1542,2029],[52,70,113,429,433,1166,1167,1542,2029],[52,56,70,113,429,433,1542,1936,2029],[52,70,113,429,433,1542,1917,2029],[52,70,113,429,433,1542,1902,1925,2029],[52,70,113,429,433,1542,1925,2029],[52,70,113,429,433,1542,1925,1936,2029],[52,70,113,429,433,1542,1911,1925,1936,2029],[52,70,113,429,433,1542,1916,1925,1936,2029],[52,70,113,429,433,1542,1906,1925,2029],[52,70,113,429,433,1542,1914,1925,1936,2029],[52,70,113,429,433,1542,1912,2029],[52,70,113,429,433,1542,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,2029],[52,70,113,429,433,1542,1915,2029],[52,70,113,429,433,1542,1902,1903,1904,1905,1906,1907,1908,1909,1910,1912,1913,1915,1917,1918,1919,1920,1921,1922,1923,1924,2029],[52,70,113,429,433,1542,2029,2037,2038,2039,2040,2041],[52,70,113,429,433,1542,2029,2037,2039],[52,70,113,429,433,1542,2029,2044],[52,70,113,429,433,1542,1550,2029],[52,70,113,429,433,1542,1568,2029],[52,70,113,429,433,1165,1542,2029],[52,70,110,113,429,433,1542,2029],[52,70,112,113,429,433,1542,2029],[52,113,429,433,1542,2029],[52,70,113,118,148,429,433,1542,2029],[52,70,113,114,119,125,126,133,145,156,429,433,1542,2029],[52,70,113,114,115,125,133,429,433,1542,2029],[52,65,66,67,70,113,429,433,1542,2029],[52,70,113,116,157,429,433,1542,2029],[52,70,113,117,118,126,134,429,433,1542,2029],[52,70,113,118,145,153,429,433,1542,2029],[52,70,113,119,121,125,133,429,433,1542,2029],[52,70,112,113,120,429,433,1542,2029],[52,70,113,121,122,429,433,1542,2029],[52,70,113,125,429,433,1542,2029],[52,70,113,123,125,429,433,1542,2029],[52,70,112,113,125,429,433,1542,2029],[52,70,113,125,126,127,145,156,429,433,1542,2029],[52,70,113,125,126,127,140,145,148,429,433,1542,2029],[52,70,108,113,161,429,433,1542,2029],[52,70,108,113,121,125,128,133,145,156,429,433,1542,2029],[52,70,113,125,126,128,129,133,145,153,156,429,433,1542,2029],[52,70,113,128,130,145,153,156,429,433,1542,2029],[52,68,69,70,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,429,433,1542,2029],[52,70,113,125,131,429,433,1542,2029],[52,70,113,132,156,161,429,433,1542,2029],[52,70,113,121,125,133,145,429,433,1542,2029],[52,70,113,134,429,433,1542,2029],[52,70,113,135,429,433,1542,2029],[52,70,112,113,136,429,433,1542,2029],[52,70,110,111,112,113,114,115,116,117,118,119,120,121,122,123,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,429,433,1542,2029],[52,70,113,138,429,433,1542,2029],[52,70,113,139,429,433,1542,2029],[52,70,113,125,140,141,429,433,1542,2029],[52,70,113,140,142,157,159,429,433,1542,2029],[52,70,113,125,145,146,147,148,429,433,1542,2029],[52,70,113,145,147,429,433,1542,2029],[52,70,113,145,146,429,433,1542,2029],[52,70,113,148,429,433,1542,2029],[52,70,113,149,429,433,1542,2029],[52,70,110,113,145,429,433,1542,2029],[52,70,113,125,151,152,429,433,1542,2029],[52,70,113,151,152,429,433,1542,2029],[52,70,113,118,133,145,153,429,433,1542,2029],[52,70,113,154,429,433,1542,2029],[52,70,113,133,155,429,433,1542,2029],[52,70,113,128,139,156,429,433,1542,2029],[52,70,113,118,157,429,433,1542,2029],[52,70,113,145,158,429,433,1542,2029],[52,70,113,132,159,429,433,1542,2029],[52,70,113,160,429,433,1542,2029],[52,70,113,118,125,127,136,145,156,159,161,429,433,1542,2029],[52,70,113,145,162,429,433,1542,2029],[52,56,70,113,166,167,168,429,433,1542,2029],[52,56,70,113,166,167,429,433,1542,2029],[52,56,60,70,113,165,382,425,429,433,1542,2029],[52,56,60,70,113,164,382,425,429,433,1542,2029],[52,53,54,55,70,113,429,433,1542,2029],[52,70,113,429,433,1187,1542,2029],[52,70,113,429,433,1166,1180,1186,1542,2029],[52,62,70,113,429,433,1542,2029],[52,70,113,386,429,433,1542,2029],[48,49,50,51,52,70,113,429,433,1542,2029],[52,70,113,389,429,433,1542,2029],[52,70,113,172,185,186,187,189,346,429,433,1542,2029],[52,70,113,172,176,178,179,180,181,335,346,348,429,433,1542,2029],[52,70,113,346,429,433,1542,2029],[52,70,113,186,202,279,326,342,429,433,1542,2029],[52,70,113,172,429,433,1542,2029],[52,70,113,366,429,433,1542,2029],[52,70,113,346,348,365,429,433,1542,2029],[52,70,113,265,279,307,429,430,433,1542,2029],[52,70,113,272,289,326,341,429,433,1542,2029],[52,70,113,227,429,433,1542,2029],[52,70,113,330,429,433,1542,2029],[52,70,113,329,330,331,429,433,1542,2029],[52,70,113,329,429,433,1542,2029],[52,64,70,113,128,169,172,179,182,183,184,186,190,258,263,309,317,327,337,346,382,429,433,1542,2029],[52,70,113,172,188,216,261,346,362,363,429,430,433,1542,2029],[52,70,113,188,429,430,433,1542,2029],[52,70,113,261,262,263,346,429,430,433,1542,2029],[52,70,113,429,430,433,1542,2029],[52,70,113,172,188,189,429,430,433,1542,2029],[52,70,113,182,328,334,429,433,1542,2029],[52,70,113,139,280,342,429,433,1542,2029],[52,70,113,280,342,429,433,1542,2029],[52,56,70,113,259,280,281,429,433,1542,2029],[52,70,113,207,225,342,414,429,433,1542,2029],[52,70,113,323,409,410,411,412,413,429,433,1542,2029],[52,70,113,322,429,433,1542,2029],[52,70,113,322,323,429,433,1542,2029],[52,70,113,180,204,205,259,429,433,1542,2029],[52,70,113,206,207,259,429,433,1542,2029],[52,70,113,259,429,433,1542,2029],[52,56,70,113,173,403,429,433,1542,2029],[52,56,70,113,156,429,433,1542,2029],[52,56,70,113,188,214,429,433,1542,2029],[52,56,70,113,188,429,433,1542,2029],[52,70,113,212,217,429,433,1542,2029],[52,56,70,113,213,385,429,433,1542,2029],[52,56,60,70,113,128,163,164,165,382,423,424,429,433,1542,2029],[52,70,113,126,128,176,202,230,248,259,332,346,347,429,430,433,1542,2029],[52,70,113,317,333,429,433,1542,2029],[52,70,113,382,429,433,1542,2029],[52,70,113,171,429,433,1542,2029],[52,70,113,139,265,277,298,300,341,342,429,433,1542,2029],[52,70,113,139,265,277,297,298,299,341,342,429,433,1542,2029],[52,70,113,291,292,293,294,295,296,429,433,1542,2029],[52,70,113,293,429,433,1542,2029],[52,70,113,297,429,433,1542,2029],[52,56,70,113,213,280,385,429,433,1542,2029],[52,56,70,113,280,383,385,429,433,1542,2029],[52,56,70,113,280,385,429,433,1542,2029],[52,70,113,248,338,429,433,1542,2029],[52,70,113,338,429,433,1542,2029],[52,70,113,128,347,385,429,433,1542,2029],[52,70,113,285,429,433,1542,2029],[52,70,112,113,284,429,433,1542,2029],[52,70,113,198,199,201,231,259,272,273,274,276,309,341,344,347,429,433,1542,2029],[52,70,113,275,429,433,1542,2029],[52,70,113,199,207,259,429,433,1542,2029],[52,70,113,272,341,429,433,1542,2029],[52,70,113,272,281,282,283,285,286,287,288,289,290,301,302,303,304,305,306,341,342,429,430,433,1542,2029],[52,70,113,270,429,433,1542,2029],[52,70,113,128,139,176,197,199,201,202,203,207,235,248,257,258,309,337,346,347,348,382,429,430,433,1542,2029],[52,70,113,341,429,433,1542,2029],[52,70,112,113,186,201,258,274,289,337,339,340,347,429,433,1542,2029],[52,70,113,272,429,433,1542,2029],[52,70,112,113,197,231,251,266,267,268,269,270,271,429,433,1542,2029],[52,70,113,128,251,252,266,347,348,429,433,1542,2029],[52,70,113,186,248,258,259,274,337,341,347,429,433,1542,2029],[52,70,113,128,346,348,429,433,1542,2029],[52,70,113,128,145,344,347,348,429,433,1542,2029],[52,70,113,128,139,156,169,176,188,198,199,201,202,203,208,230,231,232,234,235,238,239,241,244,245,246,247,259,336,337,342,344,346,347,348,429,433,1542,2029],[52,70,113,128,145,429,433,1542,2029],[52,70,113,172,173,174,176,183,344,345,382,385,429,430,433,1542,2029],[52,70,113,128,145,156,192,364,366,367,368,429,430,433,1542,2029],[52,70,113,139,156,169,192,202,231,232,239,248,256,259,337,342,344,349,350,356,362,378,379,429,433,1542,2029],[52,70,113,182,183,258,317,328,337,346,429,433,1542,2029],[52,70,113,128,156,173,231,344,346,354,429,433,1542,2029],[52,70,113,264,429,433,1542,2029],[52,70,113,128,375,376,377,429,433,1542,2029],[52,70,113,344,346,429,433,1542,2029],[52,70,113,176,201,231,336,385,429,433,1542,2029],[52,70,113,128,139,239,248,344,350,356,358,362,378,381,429,433,1542,2029],[52,70,113,128,182,317,362,371,429,433,1542,2029],[52,70,113,172,208,336,346,373,429,433,1542,2029],[52,70,113,128,188,208,346,357,358,369,370,372,374,429,433,1542,2029],[52,64,70,113,199,200,201,382,385,429,433,1542,2029],[52,70,113,128,139,156,176,182,190,198,202,203,231,232,234,235,247,248,256,259,317,336,337,342,343,344,349,350,351,353,355,385,429,433,1542,2029],[52,70,113,128,145,182,344,356,375,380,429,433,1542,2029],[52,70,113,312,313,314,315,316,429,433,1542,2029],[52,70,113,238,240,429,433,1542,2029],[52,70,113,242,429,433,1542,2029],[52,70,113,240,429,433,1542,2029],[52,70,113,242,243,429,433,1542,2029],[52,70,113,128,176,197,347,429,433,1542,2029],[52,56,70,113,128,139,171,173,176,198,199,201,202,203,229,344,348,382,385,429,433,1542,2029],[52,70,113,128,139,156,175,180,231,343,347,429,433,1542,2029],[52,70,113,266,429,433,1542,2029],[52,70,113,267,429,433,1542,2029],[52,70,113,268,429,433,1542,2029],[52,70,113,191,195,429,433,1542,2029],[52,70,113,128,176,191,198,429,433,1542,2029],[52,70,113,194,195,429,433,1542,2029],[52,70,113,196,429,433,1542,2029],[52,70,113,191,192,429,433,1542,2029],[52,70,113,191,209,429,433,1542,2029],[52,70,113,191,429,433,1542,2029],[52,70,113,237,238,343,429,433,1542,2029],[52,70,113,236,429,433,1542,2029],[52,70,113,192,342,343,429,433,1542,2029],[52,70,113,233,343,429,433,1542,2029],[52,70,113,192,342,429,433,1542,2029],[52,70,113,309,429,433,1542,2029],[52,70,113,193,198,200,231,259,265,274,277,278,308,344,347,429,433,1542,2029],[52,70,113,207,218,221,222,223,224,225,429,433,1542,2029],[52,70,113,325,429,433,1542,2029],[52,70,113,186,200,201,252,259,272,285,289,318,319,320,321,323,324,327,336,341,346,429,433,1542,2029],[52,70,113,207,429,433,1542,2029],[52,70,113,229,429,433,1542,2029],[52,70,113,128,198,200,210,226,228,230,344,382,385,429,433,1542,2029],[52,70,113,207,218,219,220,221,222,223,224,225,383,429,433,1542,2029],[52,70,113,192,429,433,1542,2029],[52,70,113,252,253,256,337,429,433,1542,2029],[52,70,113,128,238,346,429,433,1542,2029],[52,70,113,128,429,433,1542,2029],[52,70,113,251,272,429,433,1542,2029],[52,70,113,250,429,433,1542,2029],[52,70,113,247,252,429,433,1542,2029],[52,70,113,249,251,346,429,433,1542,2029],[52,70,113,128,175,252,253,254,255,346,347,429,433,1542,2029],[52,56,70,113,204,206,259,429,433,1542,2029],[52,70,113,260,429,433,1542,2029],[52,56,70,113,173,429,433,1542,2029],[52,56,70,113,342,429,433,1542,2029],[52,56,64,70,113,201,203,382,385,429,433,1542,2029],[52,70,113,173,403,404,429,433,1542,2029],[52,56,70,113,217,429,433,1542,2029],[52,56,70,113,139,156,171,211,213,215,216,385,429,433,1542,2029],[52,70,113,188,342,347,429,433,1542,2029],[52,70,113,342,352,429,433,1542,2029],[52,56,70,113,126,128,139,171,217,261,382,383,384,429,433,1542,2029],[52,56,70,113,164,165,382,425,429,433,1542,2029],[52,56,57,58,59,60,70,113,429,433,1542,2029],[52,70,113,118,429,433,1542,2029],[52,70,113,359,360,361,429,433,1542,2029],[52,70,113,359,429,433,1542,2029],[52,56,60,70,113,128,130,139,163,164,165,166,168,169,171,235,297,348,381,385,425,429,433,1542,2029],[52,70,113,391,429,433,1542,2029],[52,70,113,393,429,433,1542,2029],[52,70,113,395,429,433,1542,2029],[52,70,113,397,429,433,1542,2029],[52,70,113,399,400,401,429,433,1542,2029],[52,70,113,405,429,1542,2029],[52,70,113,405,429,433,1542,2029],[52,61,63,70,113,387,388,390,392,394,396,398,402,406,408,416,417,419,428,429,430,431,433,1542,2029],[52,70,113,407,429,433,1542,2029],[52,70,113,415,429,433,1542,2029],[52,70,113,213,429,433,1542,2029],[52,70,113,418,429,433,1542,2029],[52,70,112,113,252,253,254,256,288,342,420,421,422,425,426,427,429,433,1542,2029],[52,70,113,163,433,1542,2029],[52,70,113,429,433,1170,1172,1542,2029],[52,70,113,429,433,1171,1542,2029],[52,70,113,429,433,1181,1182,1183,1184,1185,1542,2029],[52,70,113,429,433,1181,1182,1542,2029],[52,70,113,429,433,1181,1542,2029],[52,70,113,429,433,1060,1061,1062,1063,1542,2029],[52,56,70,113,429,433,1060,1542,2029],[52,70,113,429,433,1060,1542,2029],[52,70,113,429,433,436,1542,2029],[52,70,113,429,433,437,1542,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1571,1574,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1564,1572,1592,2029],[52,56,70,113,429,433,1542,1552,1555,2029],[52,56,70,113,429,433,1542,1555,2029],[52,56,70,113,429,433,1542,1553,1554,1555,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1590,1593,1596,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1564,1571,1574,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1564,1572,1584,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1564,1574,1584,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1564,1584,2029],[52,56,70,113,429,433,1542,1553,1554,1555,1559,1565,1571,1576,1594,1595,2029],[52,70,113,429,433,1542,1555,2029],[52,56,70,113,429,433,1542,1555,1599,1600,1601,2029],[52,56,70,113,429,433,1542,1555,1598,1599,1600,2029],[52,56,70,113,429,433,1542,1555,1572,2029],[52,56,70,113,429,433,1542,1555,1598,2029],[52,56,70,113,429,433,1542,1555,1564,2029],[52,56,70,113,429,433,1542,1555,1556,1557,2029],[52,56,70,113,429,433,1542,1555,1557,1559,2029],[52,70,113,429,433,1542,1548,1549,1553,1554,1555,1556,1558,1559,1560,1561,1562,1563,1564,1565,1566,1567,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1585,1586,1587,1588,1589,1590,1591,1593,1594,1595,1596,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,2029],[52,56,70,113,429,433,1542,1555,1613,2029],[52,56,70,113,429,433,1542,1555,1567,2029],[52,56,70,113,429,433,1542,1555,1574,1578,1579,2029],[52,56,70,113,429,433,1542,1555,1565,1567,2029],[52,56,70,113,429,433,1542,1555,1570,2029],[52,56,70,113,429,433,1542,1555,1593,2029],[52,56,70,113,429,433,1542,1555,1570,1597,2029],[52,56,70,113,429,433,1542,1558,1598,2029],[52,56,70,113,429,433,1542,1552,1553,1554,2029],[52,70,113,145,163,429,433,1542,2029],[52,70,113,429,433,1164,1168,1169,1189,1190,1193,1194,1542,2029],[52,70,113,429,433,1164,1168,1169,1176,1189,1190,1193,1194,1195,1196,1542,2029],[52,70,113,429,433,1189,1542,2029],[52,70,113,429,433,1168,1169,1189,1190,1193,1542,2029],[52,70,113,429,433,1193,1542,2029],[52,70,113,429,433,1532,1533,1534,1542,2029],[52,70,113,429,433,1532,1542,2029],[52,70,113,429,433,1179,1542,2029],[52,70,113,429,433,1177,1542,2029],[52,70,113,429,433,1177,1178,1542,2029],[52,70,113,429,433,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,482,483,484,485,486,487,488,489,490,491,492,500,501,502,503,505,506,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,1542,2029],[52,70,113,429,433,469,1542,2029],[52,70,113,429,433,469,485,488,490,491,499,517,522,550,1542,2029],[52,70,113,429,433,474,491,499,518,1542,2029],[52,70,113,429,433,499,1542,2029],[52,70,113,429,433,559,1542,2029],[52,70,113,429,433,590,1542,2029],[52,70,113,429,433,474,499,591,1542,2029],[52,70,113,429,433,591,1542,2029],[52,70,113,429,433,470,544,1542,2029],[52,70,113,429,433,479,1542,2029],[52,70,113,429,433,465,469,473,499,504,545,1542,2029],[52,70,113,429,433,544,1542,2029],[52,70,113,429,433,474,499,594,1542,2029],[52,70,113,429,433,594,1542,2029],[52,70,113,429,433,462,1542,2029],[52,70,113,429,433,476,1542,2029],[52,70,113,429,433,557,1542,2029],[52,70,113,429,433,458,462,469,499,527,1542,2029],[52,70,113,429,433,499,519,523,569,608,1542,2029],[52,70,113,429,433,490,1542,2029],[52,70,113,429,433,469,485,488,489,499,1542,2029],[52,70,113,429,433,538,1542,2029],[52,70,113,429,433,574,1542,2029],[52,70,113,429,433,467,1542,2029],[52,70,113,429,433,576,1542,2029],[52,70,113,429,433,482,1542,2029],[52,70,113,429,433,465,1542,2029],[52,70,113,429,433,478,1542,2029],[52,70,113,429,433,526,1542,2029],[52,70,113,429,433,527,1542,2029],[52,70,113,429,433,517,581,1542,2029],[52,70,113,429,433,499,518,1542,2029],[52,70,113,429,433,474,479,1542,2029],[52,70,113,429,433,480,481,493,494,495,496,497,498,1542,2029],[52,70,113,429,433,482,486,494,1542,2029],[52,70,113,429,433,474,478,494,1542,2029],[52,70,113,429,433,462,474,476,494,495,497,1542,2029],[52,70,113,429,433,481,485,487,493,1542,2029],[52,70,113,429,433,474,485,490,492,1542,2029],[52,70,113,429,433,458,478,1542,2029],[52,70,113,429,433,485,1542,2029],[52,70,113,429,433,483,485,499,1542,2029],[52,70,113,429,433,458,478,485,499,1542,2029],[52,70,113,429,433,474,479,583,1542,2029],[52,70,113,429,433,460,1542,2029],[52,70,113,429,433,459,460,465,474,478,482,485,499,527,1542,2029],[52,70,113,429,433,598,1542,2029],[52,70,113,429,433,596,1542,2029],[52,70,113,429,433,491,1542,2029],[52,70,113,429,433,501,567,1542,2029],[52,70,113,429,433,458,1542,2029],[52,70,113,429,433,473,474,499,501,502,503,504,505,506,507,508,1542,2029],[52,70,113,429,433,476,501,502,1542,2029],[52,70,113,429,433,469,518,1542,2029],[52,70,113,429,433,468,471,1542,2029],[52,70,113,429,433,483,484,1542,2029],[52,70,113,429,433,469,474,478,499,508,519,522,523,524,1542,2029],[52,70,113,429,433,503,1542,2029],[52,70,113,429,433,460,523,1542,2029],[52,70,113,429,433,499,503,528,1542,2029],[52,70,113,429,433,591,600,1542,2029],[52,70,113,429,433,465,474,482,490,499,518,1542,2029],[52,70,113,429,433,474,476,478,499,519,520,1542,2029],[52,70,113,429,433,470,1542,2029],[52,70,113,429,433,499,511,1542,2029],[52,70,113,429,433,594,603,606,1542,2029],[52,70,113,429,433,462,470,476,499,1542,2029],[52,70,113,429,433,474,499,527,1542,2029],[52,70,113,429,433,474,499,508,519,1542,2029],[52,70,113,429,433,462,470,474,476,499,538,1542,2029],[52,70,113,429,433,474,478,499,1542,2029],[52,70,113,429,433,474,476,478,499,1542,2029],[52,70,113,429,433,499,504,1542,2029],[52,70,113,429,433,466,499,1542,2029],[52,70,113,429,433,467,476,1542,2029],[52,70,113,429,433,485,518,1542,2029],[52,70,113,429,433,499,549,551,1542,2029],[52,70,113,429,433,459,564,1542,2029],[52,70,113,429,433,469,485,488,489,492,499,517,1542,2029],[52,70,113,429,433,469,485,488,489,499,518,1542,2029],[52,70,113,429,433,478,520,1542,2029],[52,70,113,429,433,470,476,1542,2029],[52,70,80,84,113,156,429,433,1542,2029],[52,70,80,113,145,156,429,433,1542,2029],[52,70,75,113,429,433,1542,2029],[52,70,77,80,113,153,156,429,433,1542,2029],[52,70,113,133,153,429,433,1542,2029],[52,70,113,163,429,433,1542,2029],[52,70,75,113,163,429,433,1542,2029],[52,70,77,80,113,133,156,429,433,1542,2029],[52,70,72,73,76,79,113,125,145,156,429,433,1542,2029],[52,70,80,87,113,429,433,1542,2029],[52,70,72,78,113,429,433,1542,2029],[52,70,80,101,102,113,429,433,1542,2029],[52,70,76,80,113,148,156,163,429,433,1542,2029],[52,70,101,113,163,429,433,1542,2029],[52,70,74,75,113,163,429,433,1542,2029],[52,70,80,113,429,433,1542,2029],[52,70,74,75,76,77,78,79,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,102,103,104,105,106,107,113,429,433,1542,2029],[52,70,80,95,113,429,433,1542,2029],[52,70,80,87,88,113,429,433,1542,2029],[52,70,78,80,88,89,113,429,433,1542,2029],[52,70,79,113,429,433,1542,2029],[52,70,72,75,80,113,429,433,1542,2029],[52,70,80,84,88,89,113,429,433,1542,2029],[52,70,84,113,429,433,1542,2029],[52,70,78,80,83,113,156,429,433,1542,2029],[52,70,72,77,80,87,113,429,433,1542,2029],[52,70,113,145,429,433,1542,2029],[52,70,75,80,101,113,161,163,429,433,1542,2029],[52,70,113,429,433,1542,1551,2029],[52,70,113,429,433,1542,1569,2029],[52,70,113,429,433,1541,2029],[52,70,113,429,433,1537,1542,2029],[52,70,113,429,433,1538,1542,2029],[52,70,113,429,433,1539,1540,1542,2029],[52,70,113,429,433,1163,1542,1951,1954,2029],[52,70,113,429,433,1163,1542,1959,1997,1999,2029],[52,70,113,429,433,1542,1951,1960,2029],[52,70,113,416,429,433,1542,1959,2029],[52,70,113,429,433,1163,1542,1951,2002,2003,2029],[52,70,113,429,433,1163,1542,1951,2005,2029],[52,70,113,429,432,433,1163,1536,1542,1544,1545,2029],[52,70,113,429,433,1163,1542,1940,1951,2029],[52,70,113,429,433,1542,1951,2009,2029],[52,56,70,113,429,433,757,1163,1204,1207,1208,1529,1531,1536,1542,2029],[52,70,113,429,433,1163,1530,1542,1949,2029],[52,70,113,429,433,757,1163,1529,1531,1536,1542,1737,1751,1755,1943,1944,1945,1946,1947,1948,2029],[52,70,113,429,433,1163,1542,1737,1782,1783,2029],[52,70,113,429,433,1163,1542,1782,1783,2029],[52,70,113,429,433,1163,1542,1782,2029],[52,70,113,429,433,1542,1649,1782,1787,2029],[52,70,113,429,433,1542,1649,1782,1789,2029],[52,70,113,429,433,1542,1649,1782,1791,2029],[52,70,113,429,433,1542,1649,1782,1794,2029],[52,70,113,429,433,1542,1649,1782,1797,2029],[52,70,113,429,433,1542,1649,1782,1799,2029],[52,70,113,429,433,1542,1649,1782,1801,2029],[52,70,113,429,433,1542,1649,1782,2029],[52,70,113,429,433,1163,1542,1782,1804,2029],[52,70,113,429,433,1163,1542,1782,1892,2008,2029],[52,70,113,429,433,1163,1542,1737,1782,2029],[52,70,113,429,433,1542,1721,1782,1804,2029],[52,56,70,113,429,433,1163,1542,1737,1782,2029],[52,56,70,113,429,433,1163,1542,1737,1874,2029],[52,70,113,429,433,757,1163,1542,1782,2029],[52,70,113,429,433,757,1163,1542,1782,1875,2029],[52,56,70,113,429,433,1163,1542,1782,2029],[52,70,113,429,433,1163,1542,1751,1755,2029],[52,70,113,429,433,1163,1542,2001,2029],[52,56,70,113,429,433,1163,1529,1542,1649,2029],[52,56,70,113,429,433,1163,1542,1721,2029],[52,56,70,113,429,433,1163,1529,1536,1542,1735,2029],[52,70,113,429,433,1163,1542,1899,2029],[52,56,70,113,429,433,1163,1542,1737,1937,2029],[52,70,113,429,433,757,1163,1542,1650,1722,1736,1894,1895,1896,1897,1898,1900,1901,1938,1939,2029],[52,70,113,429,433,1163,1542,1649,1892,1893,2029],[52,70,113,429,433,1163,1542,1649,2029],[52,70,113,429,433,1163,1529,1542,1737,2029],[52,70,113,419,429,433,1542,2029],[52,56,70,113,429,433,1163,1542,1942,1950,2029],[52,56,70,113,429,433,1163,1542,1739,1757,1760,2029],[52,70,113,429,433,1542,1779,2029],[52,56,70,113,429,433,1163,1542,1739,1757,1760,1763,1775,1778,2029],[52,70,113,429,433,1163,1542,1764,1765,2029],[52,56,70,113,429,433,1163,1531,1542,1764,1765,1769,2029],[52,70,113,429,433,1163,1542,1764,1765,1767,2029],[52,70,113,429,433,1542,1766,1768,1770,1771,1772,1773,1774,2029],[52,70,113,429,433,1542,1765,1776,1777,1779,2029],[52,70,113,429,433,1542,1761,1779,1780,2029],[52,70,113,429,433,1542,1738,2029],[52,70,113,429,433,1542,1751,1755,2029],[52,70,113,429,433,1542,1756,2029],[52,70,113,429,433,1163,1542,1739,2029],[52,70,113,429,433,1542,1762,2029],[52,70,113,429,433,1542,1758,2029],[52,70,113,429,433,1542,1759,2029],[52,70,113,429,433,1542,1779,1781,2029],[52,56,70,113,429,433,1163,1542,1739,1757,1760,1763,2029],[52,70,113,429,433,1163,1542,1737,1758,2029],[52,70,113,429,433,1542,1941,2029],[52,56,70,113,416,429,433,757,1163,1530,1542,1737,1941,2029],[52,56,70,113,429,433,1163,1542,1737,2008,2029],[52,56,70,113,429,433,1163,1542,2007,2029],[52,70,113,429,433,1163,1542,1957,1959,2029],[52,70,113,408,429,433,1163,1542,1758,1956,2029],[52,70,113,416,429,433,1163,1542,1737,1956,2029],[52,70,113,429,433,757,1163,1542,1737,1956,1996,2029],[52,70,113,429,433,1163,1542,1737,1956,1994,2029],[52,56,70,113,429,433,1163,1542,1737,2029],[52,56,70,113,429,433,1163,1542,1751,1755,1758,1956,1992,1993,1995,2029],[52,70,113,429,433,1163,1542,1956,2029],[52,70,113,429,433,1163,1542,2024,2029],[52,70,113,429,433,1542,1956,1958,2029],[52,70,113,429,433,1542,1956,1998,2029],[52,56,70,113,429,433,1163,1529,1542,2029],[52,70,113,429,433,1163,1529,1542,2029],[52,70,113,429,433,1163,1542,1737,2029],[52,70,113,429,433,1542,1963,1964,1965,1966,1967,1968,1969,1970,1971,1972,1973,1974,1975,1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,2029],[52,56,70,113,429,433,1163,1197,1202,1203,1206,1531,1535,1542,2029],[52,70,113,429,433,1163,1205,1542,2029],[52,70,113,429,433,1163,1204,1542,2029],[52,70,113,429,433,1542,1784,1785,1786,1788,1790,1792,1793,1795,1796,1798,1800,1802,1803,1805,1806,1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1854,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,2029],[52,70,113,429,433,757,1163,1203,1204,1206,1207,1208,1209,1530,1542,2029],[52,70,113,429,433,1542,1782,2029]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"51bf55bb6eb80f11b3aa59fb0a9571565a7ea304a19381f6da5630f4b2e206c4","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},"ff25d2789578679f3f1b1f5dcbb5c87a0dad6488fa583cd1fded8ae83c58b1b5",{"version":"36a2e4c9a67439aca5f91bb304611d5ae6e20d420503e96c230cf8fcdc948d94","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"65ff5a0aefd7817a03c1ad04fee85c9cdd3ec415cc3c9efec85d8008d4d5e4ee","impliedFormat":1},{"version":"b89c2ddec6bd955e8721d41e24ca667de06882338d88b183c2cdc1f41f4c5a34","affectsGlobalScope":true,"impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"a79e62f1e20467e11a904399b8b18b18c0c6eea6b50c1168bf215356d5bebfaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fd06258805d26c72f5997e07a23155d322d5f05387adb3744a791fe6a0b042d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"ba97261afafe85aafe76d988e65e531da8e8cf791c49caf0531f5dd1689bd91b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f52e8dacc97d71dcc96af29e49584353f9c54cb916d132e3e768d8b8129c928d","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0","impliedFormat":1},{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true,"impliedFormat":1},{"version":"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","impliedFormat":1},{"version":"115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","impliedFormat":1},{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true,"impliedFormat":1},{"version":"24642567d3729bcc545bacb65ee7c0db423400c7f1ef757cab25d05650064f98","impliedFormat":1},{"version":"e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","impliedFormat":1},{"version":"a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","impliedFormat":1},{"version":"e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true,"impliedFormat":1},{"version":"88bc59b32d0d5b4e5d9632ac38edea23454057e643684c3c0b94511296f2998c","affectsGlobalScope":true,"impliedFormat":1},{"version":"e9ad08a376ac84948fcca0013d6f1d4ae4f9522e26b91f87945b97c99d7cc30b","impliedFormat":1},{"version":"eaf9ee1d90a35d56264f0bf39842282c58b9219e112ac7d0c1bce98c6c5da672","impliedFormat":1},{"version":"c15c4427ae7fd1dcd7f312a8a447ac93581b0d4664ddf151ecd07de4bf2bb9d7","impliedFormat":1},{"version":"5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","impliedFormat":1},{"version":"4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","impliedFormat":1},{"version":"6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6","impliedFormat":1},{"version":"aeac7c51bde4658c192bc45819344eb20fc64743264b0465be6025201220a6b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4047ed87e765bd3bcc316a0c4c4c8b0061628460d8a5412d1c4b53a4658665a","impliedFormat":1},{"version":"b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"3eb62baae4df08c9173e6903d3ca45942ccec8c3659b0565684a75f3292cffbb","affectsGlobalScope":true,"impliedFormat":1},{"version":"a85683ef86875f4ad4c6b7301bbcc63fb379a8d80d3d3fd735ee57f48ef8a47e","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","impliedFormat":1},{"version":"fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","impliedFormat":1},{"version":"8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","impliedFormat":1},{"version":"e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","impliedFormat":1},{"version":"15c5e91b5f08be34a78e3d976179bf5b7a9cc28dc0ef1ffebffeb3c7812a2dca","impliedFormat":1},{"version":"58832ded29e0094047596544ac391d68c799d7bd7d35936f47221857141628f1","impliedFormat":1},{"version":"553870e516f8c772b89f3820576152ebc70181d7994d96917bb943e37da7f8a7","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","impliedFormat":1},{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true,"impliedFormat":1},{"version":"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada","impliedFormat":1},{"version":"9212c6e9d80cb45441a3614e95afd7235a55a18584c2ed32d6c1aca5a0c53d93","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","impliedFormat":1},{"version":"5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true,"impliedFormat":1},{"version":"6bd91a2a356600dee28eb0438082d0799a18a974a6537c4410a796bab749813c","affectsGlobalScope":true,"impliedFormat":1},{"version":"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","impliedFormat":1},{"version":"ae25afbbf1ed5df63a177d67b9048bf7481067f1b8dc9c39212e59db94fc9fc6","impliedFormat":1},{"version":"ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a","impliedFormat":1},{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true,"impliedFormat":1},{"version":"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","impliedFormat":1},{"version":"ad90122e1cb599b3bc06a11710eb5489101be678f2920f2322b0ac3e195af78d","impliedFormat":1},{"version":"3609e455ffcba8176c8ce0aa57f8258fe10cf03987e27f1fab68f702b4426521","impliedFormat":1},{"version":"d1bd4e51810d159899aad1660ccb859da54e27e08b8c9862b40cd36c1d9ff00f","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"5dbf2a502a7fcd85bfe753b585cfc6c9f60294570ee6a18084e574cf93be3fa0","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"3da0083607976261730c44908eab1b6262f727747ef3230a65ecd0153d9e8639","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"dd721e5707f241e4ef4ab36570d9e2a79f66aad63a339e3cbdbac7d9164d2431","impliedFormat":1},{"version":"24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","impliedFormat":1},{"version":"bf331b8593ad461052b37d83f37269b56e446f0aa8dd77440f96802470b5601d","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"57d6ac03382e30e9213641ff4f18cf9402bb246b77c13c8e848c0b1ca2b7ef92","impliedFormat":1},{"version":"f040772329d757ecd38479991101ef7bc9bf8d8f4dd8ee5d96fe00aa264f2a2b","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"57e47d02e88abef89d214cdf52b478104dc17997015746e288cbb580beaef266","impliedFormat":1},{"version":"04a2d0bd8166f057cc980608bd5898bfc91198636af3c1eb6cb4eb5e8652fbea","impliedFormat":1},{"version":"376c21ad92ca004531807ea4498f90a740fd04598b45a19335a865408180eddd","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","impliedFormat":1},{"version":"48d37b90a04e753a925228f50304d02c4f95d57bf682f8bb688621c3cd9d32ec","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","impliedFormat":1},{"version":"24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","impliedFormat":1},{"version":"b68c4ed987ef5693d3dccd85222d60769463aca404f2ffca1c4c42781dce388e","impliedFormat":1},{"version":"cfb5b5d514eb4ad0ee25f313b197f3baa493eee31f27613facd71efb68206720","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"9715fe982fccf375c88ac4d3cc8f6a126a7b7596be8d60190a0c7d22b45b4be4","impliedFormat":1},{"version":"1fe24e25a00c7dd689cb8c0fb4f1048b4a6d1c50f76aaca2ca5c6cdb44e01442","impliedFormat":1},{"version":"672f293c53a07b8c1c1940797cd5c7984482a0df3dd9c1f14aaee8d3474c2d83","impliedFormat":1},{"version":"0a66cb2511fa8e3e0e6ba9c09923f664a0a00896f486e6f09fc11ff806a12b0c","impliedFormat":1},{"version":"d703f98676a44f90d63b3ffc791faac42c2af0dd2b4a312f4afdb5db471df3de","impliedFormat":1},{"version":"0cfe1d0b90d24f5c105db5a2117192d082f7d048801d22a9ea5c62fae07b80a0","impliedFormat":1},{"version":"ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"414cc05e215b7fc5a4a6ece431985e05e03762c8eb5bf1e0972d477f97832956","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"5c2e5ca7d53236bbf483a81ae283e2695e291fe69490cd139b33fa9e71838a69","impliedFormat":1},{"version":"a73bee51e3820392023252c36348e62dd72e6bae30a345166e9c78360f1aba7e","impliedFormat":1},{"version":"6ea68b3b7d342d1716cc4293813410d3f09ff1d1ca4be14c42e6d51e810962e1","impliedFormat":1},{"version":"c319e82ac16a5a5da9e28dfdefdad72cebb5e1e67cbdcc63cce8ae86be1e454f","impliedFormat":1},{"version":"a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a020158a317c07774393974d26723af551e569f1ba4d6524e8e245f10e11b976","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"8bba776476c48b0e319d243f353190f24096057acede3c2f620fee17ff885dba","impliedFormat":1},{"version":"a3abe92070fbd33714bd837806030b39cfb1f8283a98c7c1f55fffeea388809e","impliedFormat":1},{"version":"ceb6696b98a72f2dae802260c5b0940ea338de65edd372ff9e13ab0a410c3a88","impliedFormat":1},{"version":"2cd914e04d403bdc7263074c63168335d44ce9367e8a74f6896c77d4d26a1038","impliedFormat":1},{"version":"ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"3bc8605900fd1668f6d93ce8e14386478b6caa6fda41be633ee0fe4d0c716e62","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"9f31420a5040dbfb49ab94bcaaa5103a9a464e607cabe288958f53303f1da32e","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"f11d0dcaa4a1cba6d6513b04ceb31a262f223f56e18b289c0ba3133b4d3cd9a6","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","impliedFormat":1},{"version":"56013416784a6b754f3855f8f2bf6ce132320679b8a435389aca0361bce4df6b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"9c066f3b46cf016e5d072b464821c5b21cc9adcc44743de0f6c75e2509a357ab","impliedFormat":1},{"version":"002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","impliedFormat":1},{"version":"c51641ab4bfa31b7a50a0ca37edff67f56fab3149881024345b13f2b48b7d2de","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"52abbd5035a97ebfb4240ec8ade2741229a7c26450c84eb73490dc5ea048b911","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"4360ad4de54de2d5c642c4375d5eab0e7fe94ebe8adca907e6c186bbef75a54d","impliedFormat":1},{"version":"c338dff3233675f87a3869417aaea8b8bf590505106d38907dc1d0144f6402ef","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"9c9cae45dc94c2192c7d25f80649414fa13c425d0399a2c7cb2b979e4e50af42","impliedFormat":1},{"version":"068f063c2420b20f8845afadb38a14c640aed6bb01063df224edb24af92b4550","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"b8719d4483ebef35e9cb67cd5677b7e0103cf2ed8973df6aba6fdd02896ddc6e","impliedFormat":1},{"version":"643672ce383e1c58ea665a92c5481f8441edbd3e91db36e535abccbc9035adeb","impliedFormat":1},{"version":"6dd9bcf10678b889842d467706836a0ab42e6c58711e33918ed127073807ee65","impliedFormat":1},{"version":"8fa022ea514ce0ea78ac9b7092a9f97f08ead20c839c779891019e110fce8307","impliedFormat":1},{"version":"c93235337600b786fd7d0ff9c71a00f37ca65c4d63e5d695fc75153be2690f09","impliedFormat":1},{"version":"10179c817a384983f6925f778a2dac2c9427817f7d79e27d3e9b1c8d0564f1f4","impliedFormat":1},{"version":"ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"c0a666b005521f52e2db0b685d659d7ee9b0b60bc0d347dfc5e826c7957bdb83","impliedFormat":1},{"version":"807d38d00ce6ab9395380c0f64e52f2f158cc804ac22745d8f05f0efdec87c33","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","impliedFormat":1},{"version":"d05fb434f4ba073aed74b6c62eff1723c835de2a963dbb091e000a2decb5a691","impliedFormat":1},{"version":"10e6166be454ddb8c81000019ce1069b476b478c316e7c25965a91904ec5c1e3","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"703989a003790524b4e34a1758941d05c121d5d352bccca55a5cfb0c76bca592","impliedFormat":1},{"version":"a58abf1f5c8feb335475097abeddd32fd71c4dc2065a3d28cf15cacabad9654a","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"671aeae7130038566a8d00affeb1b3e3b131edf93cbcfff6f55ed68f1ca4c1b3","impliedFormat":1},{"version":"f0f05149debcf31b3a717ce8dd16e0323a789905cb9e27239167b604153b8885","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"955c69dde189d5f47a886ed454ff50c69d4d8aaec3a454c9ab9c3551db727861","impliedFormat":1},{"version":"cec8b16ff98600e4f6777d1e1d4ddf815a5556a9c59bc08cc16db4fd4ae2cf00","impliedFormat":1},{"version":"9e21f8e2c0cfea713a4a372f284b60089c0841eb90bf3610539d89dbcd12d65a","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"c226288bda11cee97850f0149cc4ff5a244d42ed3f5a9f6e9b02f1162bf1e3f4","impliedFormat":1},{"version":"210a4ec6fd58f6c0358e68f69501a74aef547c82deb920c1dec7fa04f737915a","impliedFormat":1},{"version":"8eea4cc42d04d26bcbcaf209366956e9f7abaf56b0601c101016bb773730c5fe","impliedFormat":1},{"version":"f5319e38724c54dff74ee734950926a745c203dcce00bb0343cb08fbb2f6b546","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"12b8dfed70961bea1861e5d39e433580e71323abb5d33da6605182ec569db584","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"7e560f533aaf88cf9d3b427dcf6c112dd3f2ee26d610e2587583b6c354c753db","impliedFormat":1},{"version":"71e0082342008e4dfb43202df85ea0986ef8e003c921a1e49999d0234a3019da","impliedFormat":1},{"version":"27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"e71e103fb212e015394def7f1379706fce637fec9f91aa88410a73b7c5cbd4e3","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"794998dc1c5a19ce77a75086fe829fb9c92f2fd07b5631c7d5e0d04fd9bc540c","impliedFormat":1},{"version":"2b0b12d0ee52373b1e7b09226eae8fbf6a2043916b7c19e2c39b15243f32bde2","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","impliedFormat":1},{"version":"bdc5fd605a6d315ded648abf2c691a22d0b0c774b78c15512c40ddf138e51950","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"6cd4b0986c638d92f7204d1407b1cb3e0a79d7a2d23b0f141c1a0829540ce7ef","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"d58265e159fc3cb30aa8878ba5e986a314b1759c824ff66d777b9fe42117231a","impliedFormat":1},{"version":"ff8fccaae640b0bb364340216dcc7423e55b6bb182ca2334837fee38636ad32e","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"59ee66cf96b093b18c90a8f6dbb3f0e3b65c758fba7b8b980af9f2726c32c1a2","impliedFormat":1},{"version":"c590195790d7fa35b4abed577a605d283b8336b9e01fa9bf4ae4be49855940f9","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"026a43d8239b8f12d2fc4fa5a7acbc2ad06dd989d8c71286d791d9f57ca22b78","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"14cf3683955f914b4695e92c93aae5f3fe1e60f3321d712605164bfe53b34334","impliedFormat":1},{"version":"12f0fb50e28b9d48fe5b7580580efe7cc0bd38e4b8c02d21c175aa9a4fd839b0","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"7cd657e359eac7829db5f02c856993e8945ffccc71999cdfb4ab3bf801a1bbc6","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"29c2aa0712786a4a504fce3acd50928f086027276f7490965cb467d2ce638bae","impliedFormat":1},{"version":"f14e63395b54caecc486f00a39953ab00b7e4d428a4e2c38325154b08eb5dcc2","impliedFormat":1},{"version":"e749bbd37dadf82c9833278780527c717226e1e2c9bc7b2576c8ec1c40ec5647","impliedFormat":1},{"version":"7b4a7f4def7b300d5382747a7aa31de37e5f3bf36b92a1b538412ea604601715","impliedFormat":1},{"version":"08f52a9edaabeda3b2ea19a54730174861ceed637c5ca1c1b0c39459fdc0853e","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"29164fb428c851bc35b632761daad3ae075993a0bf9c43e9e3bc6468b32d9aa5","impliedFormat":1},{"version":"3c01539405051bffccacffd617254c8d0f665cdce00ec568c6f66ccb712b734f","impliedFormat":1},{"version":"ef9021bdfe54f4df005d0b81170bd2da9bfd86ef552cde2a049ba85c9649658f","impliedFormat":1},{"version":"17a1a0d1c492d73017c6e9a8feb79e9c8a2d41ef08b0fe51debc093a0b2e9459","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"96e1caae9b78cde35c62fee46c1ec9fa5f12c16bc1e2ab08d48e5921e29a6958","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"9e0327857503a958348d9e8e9dd57ed155a1e6ec0071eb5eb946fe06ccdf7680","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","impliedFormat":1},{"version":"397f568f996f8ffcf12d9156342552b0da42f6571eadba6bce61c99e1651977d","impliedFormat":1},{"version":"e2fd426f3cbc5bbff7860378784037c8fa9c1644785eed83c47c902b99b6cda9","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"a52674bc98da7979607e0f44d4c015c59c1b1d264c83fc50ec79ff2cfea06723","impliedFormat":1},{"version":"bcca16e60015db8bbf6bd117e88c5f7269337aebb05fc2b0701ae658a458c9c3","impliedFormat":1},{"version":"5e1246644fab20200cdc7c66348f3c861772669e945f2888ef58b461b81e1cd8","impliedFormat":1},{"version":"eb39550e2485298d91099e8ab2a1f7b32777d9a5ba34e9028ea8df2e64891172","impliedFormat":1},{"version":"e108f38a04a607f9386d68a4c6f3fdae1b712960f11f6482c6f1769bab056c2e","impliedFormat":1},{"version":"a3128a84a9568762a2996df79717d92154d18dd894681fc0ab3a098fa7f8ee3b","affectsGlobalScope":true,"impliedFormat":1},{"version":"347791f3792f436950396dd6171d6450234358001ae7c94ca209f1406566ccbf","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"714d8ebb298c7acc9bd1f34bd479c57d12b73371078a0c5a1883a68b8f1b9389","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"02f8ef78d46c5b27f108dbb56709daa0aff625c20247abb0e6bb67cd73439f9f","impliedFormat":1},{"version":"b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"6812502cc640de74782ce9121592ae3765deb1c5c8e795b179736b308dd65e90","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","impliedFormat":1},{"version":"8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","impliedFormat":1},{"version":"44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"b10bc147143031b250dc36815fd835543f67278245bf2d0a46dca765f215124e","impliedFormat":1},{"version":"87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"1e4c6ac595b6d734c056ac285b9ee50d27a2c7afe7d15bd14ed16210e71593b0","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"3c7b3aecd652169787b3c512d8f274a3511c475f84dcd6cead164e40cad64480","impliedFormat":1},{"version":"9a01f12466488eccd8d9eafc8fecb9926c175a4bf4a8f73a07c3bcf8b3363282","impliedFormat":1},{"version":"b80f624162276f24a4ec78b8e86fbee80ca255938e12f8b58e7a8f1a6937120b","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","impliedFormat":99},{"version":"c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","impliedFormat":99},{"version":"b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"00b0f43b3770f66aa1e105327980c0ff17a868d0e5d9f5689f15f8d6bf4fb1f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"272a7e7dbe05e8aaba1662ef1a16bbd57975cc352648b24e7a61b7798f3a0ad7","affectsGlobalScope":true,"impliedFormat":1},{"version":"a1219ee18b9282b4c6a31f1f0bcc9255b425e99363268ba6752a932cf76662f0","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"9a964c445118d72402f630b029a9f48cb1b5682c49df14ec08e66513096929ec",{"version":"1f3070855648c6ebaf602d63c14c7a5ac396f1796c8a187784329f8a6a6ea660","signature":"38993fc2f922c09c4f73f0d9c710b4be56c99a9fba660449b9e6d93258f33c53"},{"version":"fcef1b04b9ae4137ff898d94cf22eb7fad835115cf306cc213b9fcb6253c1ae3","impliedFormat":1},{"version":"8866afaa7858b07a45e8c3c9c7994a1f4bdb33d6a09f267d106be8a77e9faf7b","impliedFormat":1},{"version":"a53ba117a718d7db256e67b4d89987b060e7b6e8e883d91869a227acb8fc8fb9","impliedFormat":1},{"version":"2db8a13c115d5eac1a8c10be830daa7d9ed4a31a82eedd075f081cfe31dd7b94","impliedFormat":1},{"version":"fe2ae8a4f780c2d9a5eb5014c035f10faf98d1def481216b221a6d6a9b98a98a","impliedFormat":1},{"version":"75e99bd36b61d98f1564fc8fbdef0db955ef4b9c11cc488a903377c92f0f409b","impliedFormat":1},{"version":"18bcc01d17e7fed441eb045beb5ab1fb5376ec8c108d0cb9f3e56bc924e48508","impliedFormat":1},{"version":"638964c5c016a3894c1c0cdf707bde1c9230da7a9b94de17f8f70a79a1276448","impliedFormat":1},{"version":"cdec1dc6c2a50a450f399b90be53eebe478a203e3a892e338af0d7ea1f7bf95e","impliedFormat":1},{"version":"19d6bb75afaf19057fda9eea52f5e9b2904ad5ce074208e26a85a0a2ef02967f","impliedFormat":1},{"version":"081958260123f1dd58dd802407aae1f7e25d49e8f1d955a7b888cb8e5e388265","impliedFormat":1},{"version":"fe3c210949a6b5cc1f6b12f07fd795cad35f418009a92e8f65c7d40637804bd9","impliedFormat":1},{"version":"98fcb83e9d921ddf10aac30dbf0471b46024d65c52b886458e036f90f6dd2cd2","impliedFormat":1},{"version":"0fd37a5a5c182a9b9cd5ff651106189fd85f23b0d14bb762f2b2c57e12f2face","impliedFormat":1},{"version":"b3828dcce5209e5b76fcd1a60b3c52c84735f56df7513a5d4412743771e62180","impliedFormat":1},{"version":"e2ecc557255d05f4bbdfd515f6687e6ccd144a7731c90bca1fcb66ac5162992c","impliedFormat":1},{"version":"a555bea0935f3d2d3f5a20141665207c575912a4bd4cdfbc49a817f149b1dd0e","impliedFormat":1},{"version":"3533374d0f9c64f4da2a7c12b12bb771000b91a2442ad551a332f266976f38fc","impliedFormat":1},{"version":"33334027e91752b315bd13747060ca55d7f4713e6004ebd319cb3deb80b6cad5","impliedFormat":1},{"version":"311f919487e8c40f67cba3784a9af8c2adfb79eb01bd8bc821cc07a565c0b148","impliedFormat":1},{"version":"5338ae2d47ffc8be0821ceee5eb2698782ed847f9a321de4e74cdbebbd77c71a","impliedFormat":1},{"version":"59960cbe61b4fd7addd512bf89f3c04cab511312255b9aad431fa356d89b29e0","impliedFormat":1},{"version":"cd51ceafea7762ad639afb3ca5b68e1e4ffeaacaa402d7ef2cae17016e29e098","impliedFormat":1},{"version":"1b8357b3fef5be61b5de6d6a4805a534d68fe3e040c11f1944e27d4aec85936a","impliedFormat":1},{"version":"130ec22c8432ade59047e0225e552c62a47683d870d44785bee95594c8d65408","impliedFormat":1},{"version":"4f24c2781b21b6cd65eede543669327d68a8cf0c6d9cf106a1146b164a7c8ef9","affectsGlobalScope":true,"impliedFormat":1},{"version":"8c44636cd32c9f5279e967d56e67d7623341d90382871adf63eb9ba427a3f820","impliedFormat":1},{"version":"d9720d542df1d7feba0aa80ed11b4584854951f9064232e8d7a76e65dc676136","impliedFormat":1},{"version":"d0fb3d0c64beba3b9ab25916cc018150d78ccb4952fac755c53721d9d624ba0d","impliedFormat":1},{"version":"86b484bcf6344a27a9ee19dd5cef1a5afbbd96aeb07708cc6d8b43d7dfa8466c","impliedFormat":1},{"version":"ba93f0192c9c30d895bee1141dd0c307b75df16245deef7134ac0152294788cc","impliedFormat":1},{"version":"75a7db3b7ddf0ca49651629bb665e0294fda8d19ba04fddc8a14d32bb35eb248","impliedFormat":1},{"version":"eb31477c87de3309cbe4e9984fa74a052f31581edb89103f8590f01874b4e271","impliedFormat":1},{"version":"892abbe1081799073183bab5dc771db813938e888cf49eb166f0e0102c0c1473","impliedFormat":1},{"version":"6ff14b0a89cb61cef9424434ee740f91b239c09272c02031db85d388b84b7442","impliedFormat":1},{"version":"865f3db83300a1303349cc49ed80943775a858e0596e7e5a052cc65ac03b10bb","impliedFormat":1},{"version":"28fa41063a242eafcf51e1a62013fccdd9fd5d6760ded6e3ff5ce10a13c2ab31","impliedFormat":1},{"version":"ada60ff3698e7fd0c7ed0e4d93286ee28aed87f648f6748e668a57308fde5a67","impliedFormat":1},{"version":"1a67ba5891772a62706335b59a50720d89905196c90719dad7cec9c81c2990e6","impliedFormat":1},{"version":"5d6f919e1966d45ea297c2478c1985d213e41e2f9a6789964cdb53669e3f7a6f","impliedFormat":1},{"version":"a8289d1d525cf4a3a2d5a8db6b8e14e19f43d122cc47f8fb6b894b0aa2e2bde6","impliedFormat":1},{"version":"d7735a9ccd17767352ab6e799d76735016209aadd5c038a2fc07a29e7b235f02","impliedFormat":1},{"version":"4e251317bb109337e4918e5d7bcda7ef2d88f106cac531dcea03f7eee1dd2240","impliedFormat":1},{"version":"0f2c77683296ca2d0e0bee84f8aa944a05df23bc4c5b5fef31dda757e75f660f","impliedFormat":1},{"version":"cf41091fcbf45daff9aba653406b83d11a3ec163ff9d7a71890035117e733d98","impliedFormat":1},{"version":"742be2239f1a967692c4562a16973a08a1177663f972cbb4e1ef2b21bc97c9cf","impliedFormat":1},{"version":"ce92e662f86a36fc38c5aaa2ec6e6d6eed0bc6cf231bd06a9cb64cc652487550","impliedFormat":1},{"version":"bcf177e80d5a2c3499f587886b4a190391fc9ad4388f74ae6aa935a1c22cd623","impliedFormat":1},{"version":"521f9f4dd927972ed9867e3eb2f0dd6990151f9edbb608ce59911864a9a2712d","impliedFormat":1},{"version":"b2a793bde18962a2e1e0f9fa5dce43dd3e801331d36d3e96a7451727185fb16f","impliedFormat":1},{"version":"c71b7d61c20bce394784daa24afcff1a0be74bac91195a61ee47b851851d18fe","impliedFormat":1},{"version":"8504003e88870caa5474ab8bd270f318d0985ba7ede4ee30fe37646768b5362a","impliedFormat":1},{"version":"65465a64d5ee2f989ad4cf8db05f875204a9178f36b07a1e4d3a09a39f762e2e","impliedFormat":1},{"version":"2878f694f7d3a13a88a5e511da7ac084491ca0ddde9539e5dad76737ead9a5a9","impliedFormat":1},{"version":"1c0c6bd0d9b697040f43723d5b1dd6bb9feb743459ff9f95fda9adb6c97c9b37","impliedFormat":1},{"version":"0915ce92bb54e905387b7907e98982620cb7143f7b44291974fb2e592602fe00","impliedFormat":1},{"version":"3cd6df04a43858a6d18402c87a22a68534425e1c8c2fc5bb53fead29af027fcc","impliedFormat":1},{"version":"3aeae89ee20d53e08727a4eb5b5055211a6389a54a9a0a10f800a97616b5cd1b","impliedFormat":1},{"version":"4733c832fb758f546a4246bc62f2e9d68880eb8abf0f08c6bec484decb774dc9","impliedFormat":1},{"version":"58d91c410f31f4dd6fa8d50ad10b4ae9a8d1789306e73a5fbe8abea6a593099b","impliedFormat":1},{"version":"7ca6bb19f016eadcff4eb8993a37ba89be7b42bdf0dbc630d0b0db34e5fc7df0","impliedFormat":1},{"version":"d8d5061cb4521772457a2a3f0fcec028669990daceea78068bc968620641cd25","impliedFormat":1},{"version":"81671608efe86adf90b9037cb6ea0f97c03bd1ae654d4974e511b682bf7658ea","impliedFormat":1},{"version":"1f129869a0ee2dcb7ea9a92d6bc8ddf2c2cdaf2d244eec18c3a78efeb5e05c83","impliedFormat":1},{"version":"843e98d09268e2b5b9e6ff60487cf68f4643a72c2e55f7c29b35d1091a4ee4e9","impliedFormat":1},{"version":"4502caaa3fff6c9766bfc145b1b586ef26d53e5f104271db046122b8eef57fd1","impliedFormat":1},{"version":"382f061a24f63ef8bfb1f7a748e1a2568ea62fb91ed1328901a6cf5ad129d61c","impliedFormat":1},{"version":"6927ceeb41bb451f47593de0180c8ff1be7403965d10dc9147ee8d5c91372fff","impliedFormat":1},{"version":"ef4c9ef3ec432ccbf6508f8aa12fbb8b7f4d535c8b484258a3888476de2c6c36","impliedFormat":1},{"version":"77ff2aeb024d9e1679c00705067159c1b98ccac8310987a0bdaf0e38a6ca7333","impliedFormat":1},{"version":"1b609b28df5d753bb0ba20c7eb674fa93298fa268c9b20f40176f088878caef3","impliedFormat":1},{"version":"952c4a8d2338e19ef26c1c0758815b1de6c082a485f88368f5bece1e555f39d4","impliedFormat":1},{"version":"1d953cb875c69aeb1ec8c58298a5226241c6139123b1ff885cedf48ac57b435c","impliedFormat":1},{"version":"1a80e164acd9ee4f3e2a919f9a92bfcdb3412d1fe680b15d60e85eadbaa460f8","impliedFormat":1},{"version":"f981ffdbd651f67db134479a5352dac96648ca195f981284e79dc0a1dbc53fd5","impliedFormat":1},{"version":"a1c85a61ff2b66291676ab84ae03c1b1ff7139ffde1942173f6aee8dc4ee357b","impliedFormat":1},{"version":"ee1969bda02bd6c3172c259d33e9ea5456f1662a74e0acf9fa422bb38263f535","impliedFormat":1},{"version":"f1a5a12e04ad1471647484e7ff11e36eef7960f54740f2e60e17799d99d6f5ab","impliedFormat":1},{"version":"672c1ebc4fa15a1c9b4911f1c68de2bc889f4d166a68c5be8f1e61f94014e9d8","impliedFormat":1},{"version":"88293260a4744980874bdc1fd796db707374d852b8031599197408bc77563d1c","impliedFormat":1},{"version":"5a0d920468aa4e792285943cadad77bcb312ba2acf1c665e364ada1b1ee56264","impliedFormat":1},{"version":"de54198142e582c1e26baa21c72321bcdde2a7c38b34cf18e246c7ff95bafd18","impliedFormat":1},{"version":"eccffdb59d6d42e3e773756e8bbe1fa8c23f261ef0cef052f3a8c0194dc6a0e0","impliedFormat":1},{"version":"2d98be5066df3ec9f217b93ef40abab987ec3b55b8f8756a43a081362a356e61","impliedFormat":1},{"version":"928f96b9948742cbaec33e1c34c406c127c2dad5906edb7df08e92b963500a41","impliedFormat":1},{"version":"a2e4333bf0c330ae26b90c68e395ad0a8af06121f1c977979c75c4a5f9f6bc29","impliedFormat":1},{"version":"f29768cdfdf7120ace7341b42cdcf1a215933b65da9b64784e9d5b8c7b0e1d3d","impliedFormat":1},{"version":"2cbf557a03f80df74106cb7cfb38386db82725b720b859e511bdead881171c32","impliedFormat":1},{"version":"520e09c896f218d5871ba109df4fcf006642084cf6e6cd677897f7b93139ce46","impliedFormat":1},{"version":"5718274a266c16d3fbe9cd44c0e591ca981c374904137807e0ee7d601524deda","impliedFormat":1},{"version":"dd9694eecd70a405490ad23940ccd8979a628f1d26928090a4b05a943ac61714","impliedFormat":1},{"version":"42ca885a3c8ffdffcd9df252582aef9433438cf545a148e3a5e7568ca8575a56","impliedFormat":1},{"version":"309586820e31406ed70bb03ea8bca88b7ec15215e82d0aa85392da25d0b68630","impliedFormat":1},{"version":"98245fec2e886e8eb5398ce8f734bd0d0b05558c6633aefc09b48c4169596e4e","impliedFormat":1},{"version":"1410d60fe495685e97ed7ca6ff8ac6552b8c609ebe63bd97e51b7afe3c75b563","impliedFormat":1},{"version":"c6843fd4514c67ab4caf76efab7772ceb990fbb1a09085fbcf72b4437a307cf7","impliedFormat":1},{"version":"03ed68319c97cd4ce8f1c4ded110d9b40b8a283c3242b9fe934ccfa834e45572","impliedFormat":1},{"version":"956618754d139c7beb3c97df423347433473163d424ff8248af18851dd7d772a","impliedFormat":1},{"version":"7d8f40a7c4cc81db66ac8eaf88f192996c8a5542c192fdebb7a7f2498c18427d","impliedFormat":1},{"version":"c69ecf92a8a9fb3e4019e6c520260e4074dc6cb0044a71909807b8e7cc05bb65","impliedFormat":1},{"version":"6807ed1978fef907bc36bec5724e0ab83f12142498b10a5fe21accccc28bf27c","impliedFormat":1},{"version":"1f9e8df7616803167f2e4a2ed9ea86bea7c1fd57b3360edfd38ebdbef44b689b","impliedFormat":1},{"version":"1edc9192dfc277c60b92525cdfa1980e1bfd161ae77286c96777d10db36be73c","impliedFormat":1},{"version":"6a30254801f254c5a70546cb72858a2717373ea42e2acc532325b02e6762caa3","impliedFormat":1},{"version":"1a5bc1c39650022f57b7fe7142d1e6952d8cdc46e4e8e3cdf02f5c5bd3aef373","impliedFormat":1},{"version":"1f0ee5ddb64540632c6f9a5b63e242b06e49dd6472f3f5bd7dfeb96d12543e15","impliedFormat":1},{"version":"18b86125c67d99150f54225df07349ddd07acde086b55f3eeac1c34c81e424d8","impliedFormat":1},{"version":"2d3f23c577a913d0f396184f31998507e18c8712bc74303a433cf47f94fd7e07","impliedFormat":1},{"version":"b848b40bfeb73dfe2e782c5b7588ef521010a3d595297e69386670cbde6b4d82","impliedFormat":1},{"version":"aa79b64f5b3690c66892f292e63dfe3e84eb678a886df86521f67c109d57a0c5","impliedFormat":1},{"version":"a692e092c3b9860c9554698d84baf308ba51fc8f32ddd6646e01a287810b16c6","impliedFormat":1},{"version":"64df9b13259fe3e3fea8ed9cdce950b7a0d40859d706c010eeea8c8d353d53fd","impliedFormat":1},{"version":"1848ebe5252ccb5ca1ca4ff52114516bdbbc7512589d6d0839beeea768bfb400","impliedFormat":1},{"version":"d2e3a1de4fde9291f9fb3b43672a8975a83e79896466f1af0f50066f78dbf39e","impliedFormat":1},{"version":"e37650b39727a6cf036c45a2b6df055e9c69a0afdd6dbab833ab957eb7f1a389","impliedFormat":1},{"version":"b848c5cd9ba9a70d6933e9bafde26b9fe442bfbeb4bef2427b9d9cf09375553d","impliedFormat":1},{"version":"dd8ded51112dedf953e09e211e423bcc9c8a3943b4b42d0c66c89466e55635a6","impliedFormat":1},{"version":"31073e7d0e51f33b1456ff2ab7f06546c95e24e11c29d5b39a634bc51f86d914","impliedFormat":1},{"version":"9ce0473b0fbaf7287afb01b6a91bd38f73a31093e59ee86de1fd3f352f3fc817","impliedFormat":1},{"version":"6f0d708924c3c4ee64b0fef8f10ad2b4cb87aa70b015eb758848c1ea02db0ed7","impliedFormat":1},{"version":"6addbb18f70100a2de900bace1c800b8d760421cdd33c1d69ee290b71e28003d","impliedFormat":1},{"version":"37569cc8f21262ca62ec9d3aa8eb5740f96e1f325fad3d6aa00a19403bd27b96","impliedFormat":1},{"version":"e0ef70ca30cdc08f55a9511c51a91415e814f53fcc355b14fc8947d32ce9e1aa","impliedFormat":1},{"version":"14be139e0f6d380a3d24aaf9b67972add107bea35cf7f2b1b1febac6553c3ede","impliedFormat":1},{"version":"23195b09849686462875673042a12b7f4cd34b4e27d38e40ca9c408dae8e6656","impliedFormat":1},{"version":"ff1731974600a4dad7ec87770e95fc86ca3d329b1ce200032766340f83585e47","impliedFormat":1},{"version":"91bc53a57079cf32e1a10ccf1a1e4a068e9820aa2fc6abc9af6bd6a52f590ffb","impliedFormat":1},{"version":"8dd284442b56814717e70f11ca22f4ea5b35feeca680f475bfcf8f65ba4ba296","impliedFormat":1},{"version":"a304e0af52f81bd7e6491e890fd480f3dc2cb0541dec3c7bd440dba9fea5c34e","impliedFormat":1},{"version":"c60fd0d7a1ba07631dfae8b757be0bffd5ef329e563f9a213e4a5402351c679f","impliedFormat":1},{"version":"02687b095a01969e6e300d246c9566a62fa87029ce2c7634439af940f3b09334","impliedFormat":1},{"version":"e79e530a8216ee171b4aca8fc7b99bd37f5e84555cba57dc3de4cd57580ff21a","impliedFormat":1},{"version":"ceb2c0bc630cca2d0fdd48b0f48915d1e768785efaabf50e31c8399926fee5b1","impliedFormat":1},{"version":"f351eaa598ba2046e3078e5480a7533be7051e4db9212bb40f4eeb84279aa24d","impliedFormat":1},{"version":"12aeda564ee3f1d96ac759553d6749534fafeb2e5142ea2867f22ed39f9d3260","impliedFormat":1},{"version":"4ce53edb8fb1d2f8b2f6814084b773cdf5846f49bf5a426fbe4029327bda95bf","impliedFormat":1},{"version":"85d63aaff358e8390b666a6bc68d3f56985f18764ab05f750cb67910f7bccb1a","impliedFormat":1},{"version":"0a0bf0cb43af5e0ac1703b48325ebc18ad86f6bf796bdbe96a429c0e95ca4486","impliedFormat":1},{"version":"22fcfd509683e3edfaf0150c255f6afdf437fec04f033f56b43d66fe392e2ad3","impliedFormat":1},{"version":"f08d2151bd91cdaa152532d51af04e29201cfc5d1ea40f8f7cfca0eb4f0b7cf3","impliedFormat":1},{"version":"3d5d9aa6266ea07199ce0a1e1f9268a56579526fad4b511949ddb9f974644202","impliedFormat":1},{"version":"b9c889d8a4595d02ebb3d3a72a335900b2fe9e5b5c54965da404379002b4ac44","impliedFormat":1},{"version":"a3cd30ebae3d0217b6b3204245719fc2c2f29d03b626905cac7127e1fb70e79c","impliedFormat":1},{"version":"1502a23e43fd7e9976a83195dc4eaf54acaff044687e0988a3bd4f19fc26b02b","impliedFormat":1},{"version":"918956b37f3870f02f0659d14bba32f7b0e374fd9c06a241db9da7f5214dcd79","impliedFormat":1},{"version":"5faa3d4b828440882a089a3f8514f13067957f6e5e06ec21ddd0bc2395df1c33","impliedFormat":1},{"version":"f0f95d40b0b5a485b3b97bd99931230e7bf3cbbe1c692bd4d65c69d0cdd6fa9d","impliedFormat":1},{"version":"d9c6f10eebf03d123396d4fee1efbe88bc967a47655ec040ffe7e94271a34fc7","impliedFormat":1},{"version":"8dd21a3054ca0c046840c308b014aec4cc5be0824a2504e365c4d499ea206ba8","impliedFormat":1},{"version":"380b4fe5dac74984ac6a58a116f7726bede1bdca7cec5362034c0b12971ac9c1","impliedFormat":1},{"version":"00de72aa7abede86b016f0b3bfbf767a08b5cff060991b0722d78b594a4c2105","impliedFormat":1},{"version":"fdf949030336b31644def7e6529d500301fb2b235a51691de84c36ffdaf8a2db","impliedFormat":1},{"version":"5208bf3184136d545f7a68a3991f68f15c8319ae35a86a51c93c9bc7cc04b6e6","impliedFormat":1},{"version":"4f5bbef956920cfd90f2cbffccb3c34f8dfc64faaba368d9d41a46925511b6b0","impliedFormat":1},{"version":"dd7a3e1f2a79a6fa8e08b00c8f9095b6102b814492106a62062c845c3696975d","impliedFormat":1},{"version":"fd53b02b51f3b38b6c57bc7a2af7d766d9b0dbbf7376d9ec5027339a478438b5","impliedFormat":1},{"version":"7b7f39411329342a28ea19a4ca3aa4c7f7d888c9f01a411b05e4126280026ea6","impliedFormat":1},{"version":"ba3ef8ea20ac0186dc0d58c1e96ffaf84327d09c377fd82f0ae99236e3430c3a","impliedFormat":1},{"version":"d66e97aa992c0fe797878bcad6257562829582f5f3a2842df71e613e60f7b778","impliedFormat":1},{"version":"a86492d82baf906c071536e8de073e601eaa5deed138c2d9c42d471d72395d7e","impliedFormat":1},{"version":"789110b95e963c99ace4e9ad8b60901201ddc4cab59f32bde5458c1359a4d887","impliedFormat":1},{"version":"92eb8a98444729aa61be5e6e489602363d763da27d1bcfdf89356c1d360484da","impliedFormat":1},{"version":"72bbfa838556113625a605be08f9fed6a4aed73ba03ab787badb317ab6f3bcd7","impliedFormat":1},{"version":"d729b8b400507b9b51ff40d11e012379dbf0acd6e2f66bf596a3bc59444d9bf1","impliedFormat":1},{"version":"32ac4394bb4b0348d46211f2575f22ab762babb399aca1e34cf77998cdef73b2","impliedFormat":1},{"version":"665c7850d78c30326b541d50c4dfad08cea616a7f58df6bb9c4872dd36778ad0","impliedFormat":1},{"version":"1567c6dcf728b0c1044606f830aafd404c00590af56d375399edef82e9ddce92","impliedFormat":1},{"version":"c00b402135ef36fb09d59519e34d03445fd6541c09e68b189abb64151f211b12","impliedFormat":1},{"version":"e08e58ac493a27b29ceee80da90bb31ec64341b520907d480df6244cdbec01f8","impliedFormat":1},{"version":"c0fe2b1135ca803efa203408c953e1e12645b8065e1a4c1336ad8bb11ea1101b","impliedFormat":1},{"version":"d82c245bfb76da44dd573948eca299ff75759b9714f8410468d2d055145a4b64","impliedFormat":1},{"version":"25b1108faedaf2043a97a76218240b1b537459bbca5ae9e2207c236c40dcfdef","impliedFormat":1},{"version":"5a4d0b09de173c391d5d50064fc20166becc194248b1ce738e8a56af5196d28c","impliedFormat":1},{"version":"0e0b8353d6d7f7cc3344adbabf3866e64f2f2813b23477254ba51f69e8fdf0eb","impliedFormat":1},{"version":"fc9ed6f3665b53b9b258ae7eda6394d8387e17fab6d85f48f4603d19633b006b","impliedFormat":1},{"version":"18012cb157b4eaa861284a3d7ed19d4f3c4d708859e5b20d5208966688a67922","impliedFormat":1},{"version":"db08c1807e3ae065930d88a3449d926273816d019e6c2a534e82da14e796686d","impliedFormat":1},{"version":"9e5c7463fc0259a38938c9afbdeda92e802cff87560277fd3e385ad24663f214","impliedFormat":1},{"version":"ef83477cca76be1c2d0539408c32b0a2118abcd25c9004f197421155a4649c37","impliedFormat":1},{"version":"93962f33d5f95ebfe4a8299843b6a76d119e45d0e16ed8550da2667dbaf1928d","impliedFormat":1},{"version":"3f0997c4d9dc2ba4b6e069ca70f54bc2207f496631ff8a44fd99b9bad67a84a0","impliedFormat":1},{"version":"2f0f0c0aac4234f866a40a66c3e2a01756c9b93198f546c60beaa64bcc6da95c","impliedFormat":1},{"version":"5645b5782f36293cdb3f0a129dd24c396c87ba6fc215def42ce0448e4bebeb9e","impliedFormat":1},{"version":"78f6a5a6d3bc9fc8554b25046db35b6d338d028484400fa04a226c5226eb4f45","impliedFormat":1},{"version":"1df7dc6ab774ac73be75d5788a724a8f2294d0527d257b7f086d1bee340986cf","impliedFormat":1},{"version":"a944e24b25527b44fafff67d7e1038c704306fda7e655382ba7dad0871ec70c1","impliedFormat":1},{"version":"bef348ef12bc0c368abcd4ba4a46cf48dc84679b265f0fe8752aa25270ce97e4","impliedFormat":1},{"version":"df7ec168ca2e4847bc90a57b813c8a0cf9609daf38bfb9d488db7edb7f74c9b5","impliedFormat":1},{"version":"a2b93a57c516c75e604f694e4fead11b71bf16352edac9f38aa7831333876b7d","impliedFormat":1},{"version":"dfc0fae1c0ed3f71dbf79d9dca1b1e8d6fbc26adcbe7d56577ee10d4b8e3fcd1","impliedFormat":1},{"version":"e43442b9f2f7c3b49c22f09ab7fe07f29a31cf0711f72cb5cc8198746ce004ca","impliedFormat":1},{"version":"b6a475edb1b080fe58ffaa50d672126612a8c536e940b3f7cc11a15c75758d7b","impliedFormat":1},{"version":"274184f91c17faaea7b9e1671e52eadb75444f6d1aa6b44e7c81573e0bddbcc6","impliedFormat":1},{"version":"3baf84a638667601ee13d9dfe0fa99f353331436578ecd70ffce93e11ccb374f","impliedFormat":1},{"version":"102bf558d8b0cefe17368ef277689ec77b82a5349fa3f6bf465bf53ed53121fe","impliedFormat":1},{"version":"669bf6064fa08699786182ec19678fefe17a0590cccb35e6b3ecadf7735bd015","impliedFormat":1},{"version":"1db60f08679219a09bf0e9ebf4e5a91c1f35c84b40f3329bd93ad9332be556bf","impliedFormat":1},{"version":"15dbe6ce66935c1f9926df889ca0a08c4430b666ac6898debcea0adc36ad47fa","impliedFormat":1},{"version":"03515beeb4f5e6858c23b9455afefdffb5cd47a525f5b2e4cb00cd5c06c0e62c","impliedFormat":1},{"version":"8216f59c279cf432a8a66f6fd73c3c54d118aec82b7e3aba645e3e8007ad1b83","impliedFormat":1},{"version":"d09a7550d9ad3fc8a5809e0f7f903378fff314eb246a68d9e9aea649d8eff025","impliedFormat":1},{"version":"d9061115b4192c52f99d5066ec91cbb6224345b623034965d5855d7d763f296d","impliedFormat":1},{"version":"917a52afeaf513d289cafc53c19c1825573d887995be20acdd7bb12425a429ec","impliedFormat":1},{"version":"8215cdc97dddfec6d1441d2766dd7f9281efbab65924bd056bd9687e128eb970","impliedFormat":1},{"version":"5bec6d38ed4ae1380ce23dec5a30499a7820e00050f5d8fa2ab52ddd36bd867b","impliedFormat":1},{"version":"b76cba0aa74ec977479930f779a36e890fdc2d13964aed239895838be4425a96","impliedFormat":1},{"version":"60ee8194bc8fed1cb9fb12d54bd8816732b85217d3faeba5eb1719b8fc1734aa","impliedFormat":1},{"version":"e5fe59d781b28e3686f7e260cec28fb25c52f02692d0e59437f6e65672fc36c4","impliedFormat":1},{"version":"de3648f0192036c46b0313af3dde52be9fc93ce1cab5a79d0ffec1f4e3d4e2f8","impliedFormat":1},{"version":"dad49cebf65104c23f67dc31f394d8cb356a604c7146994f4d711b4838a37d43","impliedFormat":1},{"version":"f851a5f903d8912a4db5f60aff0638ef398756e5665aebb97f589977695fec56","impliedFormat":1},{"version":"3f8fec494776c860f8e0cf490ede6f9afddec3e8663f4001ce2a101ebf7ea796","impliedFormat":1},{"version":"11e78e95120bc55e0ea18e37b67c5e27b96409518c509f90ed5002107b528e64","impliedFormat":1},{"version":"1a70db46c17bb7fcafcc991e1717ab94b78208c9d7b18c6e79f4227734bab841","impliedFormat":1},{"version":"18a9a51df44b3c9bd293c23f617090e4dedfcfba7ab27fd33d206e15f5c0001b","impliedFormat":1},{"version":"a2dab2f35e2c669ae708f5a5d360a7aae5b11565dfdd90fe748848922b4a8c85","impliedFormat":1},{"version":"24b8d7275fd4ca5fd5401095c62d4b07cd085d55509368f79f5994b2009cccea","impliedFormat":1},{"version":"7c7b49e40da80da0e5e015c1911b2836179232d4dd98be2c094f338e04ba0b6e","impliedFormat":1},{"version":"746c0ce00badeb9f778868aafe4396c40761a69fd54b3148afc8b37d047d873b","impliedFormat":1},{"version":"fab3bcecef5082b095979ec056c8f2fa4e31ed91e3f259ef6f9621323371acbe","impliedFormat":1},{"version":"6b82d98d1e1b78337186011496c0175281aac57dd34f877f339dedc135a6df06","impliedFormat":1},{"version":"5391f9721dfc92f337dfccc3eab4e23265c7f3668367dc97dde138e56a62e215","impliedFormat":1},{"version":"3052bd27bc371e5d61887a85b6f23151c7bbf8f801a3d521d35a971f0d9b0e1b","impliedFormat":1},{"version":"a27ae33e8f2563aa6fc853c5f5d8d80d734ef7ba9f2e2f4a110be8b3e3cfb870","impliedFormat":1},{"version":"ab1d0382851564c048a263ee44a48f20c724c59696cc97858dba17402d402cca","impliedFormat":1},{"version":"604ed425c45aed8fae34aeecfdeefff7eed0563359bce8baa068545e6cb0d235","impliedFormat":1},{"version":"0c9f8d2ca427004ee5a8f08464e7086b897a22cd586fd718988e0a7f287ec3c6","impliedFormat":1},{"version":"7eb4277ce0b3094c105c2d72a6f348255c851a5c6bc45f97c6418d3d4883a3fa","impliedFormat":1},{"version":"76c0591d5a59f0e9c33bda36ee8ab60bdef71d7b0f03be065010e5aaa44037a5","impliedFormat":1},{"version":"8cab7683337e440accc4c005b9bebad0336ff14ce2b1c592d8a0341ec33367e4","impliedFormat":1},{"version":"d0a965bdfdb6a6a8f7b04997c23079e28f3cea3a27c8e577103900e09487f9fd","impliedFormat":1},{"version":"754132fe6044269fc1af78408c5758d3fe26fdbf508718c0d5ff82c03c978675","impliedFormat":1},{"version":"d55d49516f0890085a63ee2b49e0dbee04e11506600a1dfd51b5c2d76661c9dd","impliedFormat":1},{"version":"c7b2cc6a533df8e99c2417d3959b012169c975619ef9331972fcd4b1766f4198","impliedFormat":1},{"version":"d68a447e87437ba34c27cdbfb59ae1af3a9ee8111c02e4585b70b074f9396934","impliedFormat":1},{"version":"f6717ce65b9ea9c85912e617810c196391b30d460ee8bfbd57e41fd9b93f57f5","impliedFormat":1},{"version":"7c7b7e252e1c958ae44c6f78d507fd3c55a2b0c66e26c7ccf535d2d20ccc150a","impliedFormat":1},{"version":"8c9bee59cf478fe07c4740daca80aa508ef54688e9f021a96d17a14ac60e31ac","impliedFormat":1},{"version":"9b90af66ca3f6844250d2b731aceee869991571a095ec9a7259619520a305f3d","impliedFormat":1},{"version":"4149a3671c4712052252dba067f128ba9d085bf1a66e1d7c339ada9c3f0e2fdb","impliedFormat":1},{"version":"16b1adb96e04923703236245679ecc8aa2749980a24391cd7a6a9f793b460119","impliedFormat":1},{"version":"67fc8c4fa5dc0abf1ef6d3ab348a2c43be354d0b29aa04a2f16cdc1525e12cab","impliedFormat":1},{"version":"74240832859d68a0211296b55c8c47b18e37e36872142157fccd0a12b6df4228","impliedFormat":1},{"version":"a94bb7523194a2dd872d493ee97f63fb0454d6e2856f9a8b67011b4bb06a4bb4","impliedFormat":1},{"version":"dcb180cd664f848da2c40f98ee75e84989e9d9f46b513fd331fa4999971c182b","impliedFormat":1},{"version":"83d83ce5d0a00b88ede49cdce3743654a4ed831d4b87e7511a0b4844cd9252f9","impliedFormat":1},{"version":"d93846e922ddd54f9dcef91e0d742007aaf3c01bd511e5aaa019ac2c02c4cea9","impliedFormat":1},{"version":"af1f935833138b708676aa5716e4a2b30a1b9b431033fd27ddcebca7100bf5f0","impliedFormat":1},{"version":"ee104fc3be3ffda23a66e638167c346ef853b33b5083ce7e0a150a6b41b5479f","impliedFormat":1},{"version":"e2b3e47db37188e41c6fb3e2a3fcd48527a7aaa690e4d279474cf345bd631116","impliedFormat":1},{"version":"d932ca6ac75f4c41053b94dfc713d3f58fc7419dbe2a76cb591cf83c03e05375","impliedFormat":1},{"version":"5f48cead1e6d7250daefc2f31b96481f209f4921b7bc9f04b33542327140dd80","impliedFormat":1},{"version":"15bd5b96b8d796e79c7a4c4babf4bd865c24bcf4093dd2c53ba496bd242e1f3d","impliedFormat":1},{"version":"69dd472a6f506ab72b0b8f7107288b349dcaf76f30b829639c74f70cbc71011f","impliedFormat":1},{"version":"d64a3f0853a570b529d33949dccd64dd6a6f8e9a6869c39aa8cddef77ad0259d","impliedFormat":1},{"version":"98fc6830fbedcf0ef5b1c621fcf88dd4a48d1a5e5db769946e209df3aa085098","impliedFormat":1},{"version":"e95cedc21ce1e44567ca69520c3fa03e45be7b4179e9c8d2e074232b8fb0b35d","impliedFormat":1},{"version":"399777df73e6232a296fc530b8c818323ade7259b03bec7ea51375b281f7294e","impliedFormat":1},{"version":"cfe0fca98caccf52574306b086998c8a2f4d0421ee5c846a0e6ea7b62c45641a","impliedFormat":1},{"version":"3dc41e9e459a6f6753d69aedf535a5b8d0fa389f25eb0e581727ff64560d8bd9","impliedFormat":1},{"version":"619b6f08f7e95a0bd6ff85621de92d24f65c2f2dc4a109dc78ae1939540b145d","impliedFormat":1},{"version":"ca9a6449ffb4ad480984c051c2fbb26087f40a2fb93fbe03052fb3d81c44876b","impliedFormat":1},{"version":"276ef457a9533ca700bdd152c88cfd1ebf2b468da7c535d9b4fcde96d9869f19","impliedFormat":1},{"version":"6ed7cc71d4668957e00e622ec36718d7de93f8b2bdb764bdeb97d23dc463ef06","impliedFormat":1},{"version":"354cc5f6ed65fe2ff6fb8b117716eff61275ecb04e637e8e9798dc3222154f14","impliedFormat":1},{"version":"c22a75475a993a409f4fb255b359587b6d3c62585008631f9e748f77c9c949a2","impliedFormat":1},{"version":"263134d9d5993987860b8bd7af82ded88d0330f50426600de4500d734a6beaa8","impliedFormat":1},{"version":"45f46d363e85c5a0d84b4430ccbc13f479660b85412a105f7dc7b4259b5ae574","impliedFormat":1},{"version":"3d8e9cb24ac960272358cb19942678dfe3fe9d8c237e72aa5d336b58d53dc9ac","impliedFormat":1},{"version":"85ee8f20aaf08c33903ec25df9219fa488cdd2fe37a400a8dd8103c7fc3dbc07","impliedFormat":1},{"version":"37290e84fde86f35f7aa0cfe306b085e90e2f349ef859f02ac54d8dc149074a0","impliedFormat":1},{"version":"515f1ccce6cabcf55b0bcdb4cab779a7c438221e2ef935527593316186d12e16","impliedFormat":1},{"version":"eae62192d1b137aaf1b03bda424b03ed72000481d4c584b9eafb0f2fc8b9cc2f","impliedFormat":1},{"version":"a025415e5526fb04a20f05979126721681f317a01f3341853e69490cb4bc44e6","impliedFormat":1},{"version":"ad2ed280e2a994ccdb9f5e1021c7cc27fbb4344bcea7dff819c7e3486b48f149","impliedFormat":1},{"version":"fd2caaf40cb9b030fe1c79f6fb1190341c1228d1ed15bd30fc32accc5319c0fa","impliedFormat":1},{"version":"08ab867725d9790c6e9fb013d090966def2173af60a5d30a76c38b0aa9b18d3c","impliedFormat":1},{"version":"ef3e33fd47b06c910ef5e22644348ae472e375dada57101377dfba2471bf14ee","impliedFormat":1},{"version":"c9090788cab814e2a3e1e4e40d6277d9546062522488238d6662907008357ef3","impliedFormat":1},{"version":"3fbde796370d305e3feedc8f095d60ad27984d5e83c4a4fec9a8b0c6aade4977","impliedFormat":1},{"version":"b12225e53b8475702d06e223104b29d1b89d6853d4aaea1bf3af8d6728cebfd8","impliedFormat":1},{"version":"0601b30571203b3b772322fcda631ab43d17fb291d93b33ed32bb303f0cc8629","impliedFormat":1},{"version":"01cf8d1d4314d15b2d1a254b3f7bd1b0180b3e5b3a519131773c41d7640d26b5","impliedFormat":1},{"version":"9821b950ecfaa879470f8777fb5d6477c4cbf51535e75a5481f580984bdf1b00","impliedFormat":1},{"version":"b0b4b43979a1ee3fcdc7a171f4458c9829e44e0dc34825ab0b8ad17678108a9c","impliedFormat":1},{"version":"4cf4a3d33ef2ab41bba5ba8353320534225bcc41298e352195b48f3b1dd590bb","impliedFormat":1},{"version":"f2af499d4e77b209916282c0e89afc19f9badedeb12438ae8fc8deda7c26f79a","impliedFormat":1},{"version":"b89874c3f3a851d840e2a02fcd50f37531468f64236a6698d7b4e45921cdae54","impliedFormat":1},{"version":"f08bacdf8a2d9585656a106f70e39f17f4493e57b27d74789508783b31059d0c","impliedFormat":1},{"version":"39e52f6556dfd29ebe4c27cc80dff0e1f39bc4aee15e9f2d7e2566d6305ae489","impliedFormat":1},{"version":"6dc3b7c621df1de66372c10590c577cc78b2b8f400d6b73760deab45e900f37d","impliedFormat":1},{"version":"ba55a2c857a7b7be6f1ca56de28e572278102e1c4f0c0adb82fd7189a1f72087","impliedFormat":1},{"version":"75633295ee912fc9bc2cc97c6d49467194d3a7efd508299fdf49d3150ce5d0f7","impliedFormat":1},{"version":"6389044fd4b1e197f2909735cfc4c9c36ab60997765211e4729d3eb084514a14","impliedFormat":1},{"version":"a249e0267f67aa9d17a34d4f6f66ba497c35f4794dbac7a9562867f9058cc94e","impliedFormat":1},{"version":"bc27229d3ead574431746469ac795fe2d26f92d8c17bfd32c6b7d5a87ac21d40","impliedFormat":1},{"version":"a59d770774302bfbb714d8efdbd2f1ebf0ebeac394d4691da865d91e1568b21a","impliedFormat":1},{"version":"e7a01b1ff34b58ba4c32ec27926e968545a788bd3842370dffd82f7ed53880c1","impliedFormat":1},{"version":"4389d61584635554575e08bbc742c9f9396b014d4020c529ee2e0fa6ea33e0da","impliedFormat":1},{"version":"ae35726394b78565c1e31596327b39ef093f10553a9d93211820430e3eb12f30","impliedFormat":1},{"version":"79e2b7c326f5597657beec5b7fde02230212c4e90387fa2ee786c2706c98381b","impliedFormat":1},{"version":"2344010e666a4f71021b4daeddb495a7006cc37193052f37ac3ffd4057347f1a","impliedFormat":1},{"version":"9883753dbf22048978896802ffa68c45979fcf1a733c2d2c8d5b0af20fafefbd","impliedFormat":1},{"version":"140f114921466842827a6e6b9bb2e685660265f32704824842e781cc6db89d6a","impliedFormat":1},{"version":"5ac147fb256db95d00eed0057967e11ce2b7760e46ef1cf465688ea24b6e336b","impliedFormat":1},{"version":"a256fde44cb4caa9c777b1bb241140ac145eaf1e479f8dbc4a20dc88d99520fa","impliedFormat":1},{"version":"3942de1dc8901b3d0bcb247085e575a9ecc2478995b0e7c95b7633a4fa0710c3","impliedFormat":1},{"version":"63d3bbc2250a9c1c75e76189c7189d377bd373aca084df9e837e3f0cc56301fa","impliedFormat":1},{"version":"44089c1eac8a3c20895d837960e7beba59f1d1088070235e51e21eb8caf6dd1e","impliedFormat":1},{"version":"0d52bcbc2d3d7f47943e26ddb6c4684aa891613dbb637e060306e3dcfbd552ec","impliedFormat":1},{"version":"573fa9e2ccddd27806fa0f9b4d76114a5ce7b9c9f3105571c43b377a8282ae3a","impliedFormat":1},{"version":"ea3da74c3e88e818a8f7974f57f9c0b921b6b41e40e1f02857a4237b8988ce3a","impliedFormat":1},{"version":"371017fd09598f4baff5b75c567e5138881371de3ba15373e76e3afda6c144b2","impliedFormat":1},{"version":"e67b317f7f4c1d652031d95101b24e9308bb6632af012c3c0d36d0d5f530b681","impliedFormat":1},{"version":"0fe44ad59c1fb3d1e50bf08664fc0935e13b0c30c4151bfc755849bcf1d8606f","impliedFormat":1},{"version":"e297d939c9cfac7759ecd817c6a9b47daa8c8b0b2498ad580f0676fcceba015b","impliedFormat":1},{"version":"6b08e3337d3f7a7b750628dec75bbae297ab9f6a241ba61c5ac51e33e4c321f1","impliedFormat":1},{"version":"af5707944609de999aa103f481c68cde34d99059236d55e896d2f53ff584bbe7","impliedFormat":1},{"version":"b9b1008d26fd9c55d66a2f0021a96a4c673e631c448ce73d37b75e8213866cb0","impliedFormat":1},{"version":"79d53bcf828132e443efc26ab5ea14b46e8da033c50c535b18950851bf46e3a4","impliedFormat":1},{"version":"26361031b7d8c04e90cc69d25e8234d7efb246b363b301a29f807a6a0526478d","impliedFormat":1},{"version":"c5f76a999743e5e03a7d311876ab5ba8e3eb0a6ba9ab549f57ee58981153a31e","impliedFormat":99},{"version":"637d1579a6a5abcd1c66e8fa2eaad33665d3e7623f3f9a0ff417cf7b4b48aa62","impliedFormat":1},{"version":"2620da3a2a92c6e732bbec8a0c5780ac4883364a69dc401eb3ebf4a9b7289b83","impliedFormat":1},{"version":"df40a4e649303feb4cf654e1aa1bce8ad636ee3baa5a19bd9ce6721b9c15c81d","impliedFormat":1},{"version":"f71d3bf8981c88cbbb4bbc4f03b8d59fd1fa2fa05facd33e896e3fbc3eaf5b0c","impliedFormat":1},{"version":"7f6336d3d4e26d3767a61011da85d8f87e730b37dfbec75826d1f8cf8672459c","impliedFormat":1},{"version":"274d8c8bfe030fe6beaa4138a1fb6d8e415646f203c8082bca2bcb05ba3bfb2f","impliedFormat":1},{"version":"095c09bce79ffd9a72b151f8c7141d3dc26431d66eaeeed801a3578032f94ba7","impliedFormat":1},{"version":"9c9f786ae50f360045e3b830851797d9776ffc6c5e80ca24290be9ab677a111e","impliedFormat":1},{"version":"77881c56ac351b035b825ea663519286b6741956c20269c7024e2dbc0197d18d","impliedFormat":1},{"version":"cb59a36e74dabb46f6665c207726d2e8c9a3830e984971daa4dbeeeb937c8a76","impliedFormat":1},{"version":"19d94c4070065d8c90862591f32ad30dda305bc6152c2aeee69a5df773a453ea","impliedFormat":1},{"version":"15f352860078ad388aa61a4521eacbd0f92d760eb0e37630f6d283c2c28af354","impliedFormat":1},{"version":"44a0f94cfc395675ae8b3885086511a1839651cb489ebdf87bdf28247d29a16d","impliedFormat":1},{"version":"f28fc3d405e388904cd977a7ddce5a51a9a6d3649a49552cdeeac9c76bb25503","impliedFormat":1},{"version":"296b35cb5bcce1b804f498b6fda7451f8ea0e8cb429c756904c72c2c91e25531","impliedFormat":1},{"version":"e8a112d3b8b9813ed17fa006b7a1956cedaf3815f4cf51384ceb2854288a4dfb","impliedFormat":1},{"version":"46cefd63181e6d876878b34ad3b91902f2c1c1fa276a943694af0599f031124c","impliedFormat":1},{"version":"70a1e1be28ddfd8d3b255659ebde5563c52905ae6e4ea7474021cedb36f7d22e","impliedFormat":1},{"version":"b77b6311babfa69decf3b7cccbf088e538aaea504f4cad4b4b841af2689ac011","impliedFormat":1},{"version":"b2dc35c6e03b2a395a1d1ea0b62bc59dc271a3e75c566d6c51a8a4fcd54f910c","impliedFormat":1},{"version":"033cef0aad2bb8fd84e0ed77a10993e93e2dbca0f407ce80b8e89bdcdcb7f896","impliedFormat":1},{"version":"865d9b81fd3b2102f65fe9e2e843776b558132d250a926a16b38aff9e696d6a5","impliedFormat":1},{"version":"b6fffbee1aed5dce3a2b28ba9ce570a6121bdb5a34faba58290efce589cb6754","impliedFormat":1},{"version":"d4c99dc22131b1e65f84d19240e325421bc19dfcc08f5ce088b335d4f1fe34f4","impliedFormat":1},{"version":"57fa0095c2859094691afcd8349073e1147d306c65b287efa0d75b42588553a8","impliedFormat":1},{"version":"84d1bd0e6c584c23052096ffcc6f1a8e14f7f1ca11d4f525128b2c4bd893c7d6","impliedFormat":1},{"version":"7a2dece5296b8d1801c70836cc77e08c5ccf9ce9133de7834f80cc35b606dffc","impliedFormat":1},{"version":"f8dbafc8d21974edd45f290a6a250aa956f0691658539e0d45d4ce36e661c0a3","impliedFormat":1},{"version":"49b67b3a1c43f0c7bec6d4268d5fb93dd590b8b75c9eb3da52e387b180dd1c9a","impliedFormat":1},{"version":"51f28791fbe5e70fdb9c91d5d27b43e56517c36bf08b83686f62d134e5d6716f","impliedFormat":1},{"version":"088358ebbc20cc651cc64f748206745b75bb1ac6a6571636a0d6020277375a79","impliedFormat":1},{"version":"6a16e01a93b287a8064ae4bacaeb5925ae41509811c1a406669f62efc2dab864","impliedFormat":1},{"version":"34e27bde53149ee00fd355588ed4f1e1e665ff50b15be6476b7f240cccef369f","impliedFormat":1},{"version":"44ff06bf0587621fc5c8f8575621be621cbc4df5b2b80a06a16e5dccb9876385","impliedFormat":1},{"version":"087c591ebb3628e364f84a3be45e1c7ca9b469c120ea15339a6dadf7ebd56358","impliedFormat":1},{"version":"bb2f7056499934287778363c2640001fe2ee160d290f5e7cc08dad9e4029d45a","impliedFormat":1},{"version":"d7df55e515de47bee8c0766b0512f043ae93752b1689a0cce23e6b8a42f18dcd","impliedFormat":1},{"version":"5ee1e4fc68a82343ef3837e99cd1fce0bdbaba1271da68016cdbbae362ad816e","impliedFormat":1},{"version":"22ebd8a51d1783aff423067fdd88fbc96fb17ebadfb117ad2b25d21e4e22cb34","impliedFormat":1},{"version":"4ac88a143c9342db6e1599d9dfe47f0e0f53554dbad2dfca5dbe7ae5952546a3","impliedFormat":1},{"version":"d06fe49a2691f85081f2b7af3996418803fedb123c03a8ebb3c03c61aecbf5c8","impliedFormat":1},{"version":"43d0e5bd24b58b109989af4d57dad2b06bda3151ec27e1ce8fa10b773f433d57","impliedFormat":1},{"version":"ebd1db93fddac1aa841af2feafbd2a5d7bd0637801c2ccf27ad2fff8c9477bce","impliedFormat":1},{"version":"a66f2c7689b5f2fbeca5da73cfdece848a7a2edd300d7830dc80b25e5a831202","impliedFormat":1},{"version":"c64fc4296727ef52b8b97a80379202e413c88ed7e6a7453819f7b518b2bf4adf","impliedFormat":1},{"version":"b93b56199cf18da92bacdf43f8921fd11fc476f3c46bf2cc0f6af7b7aef6021a","impliedFormat":1},{"version":"a4649460693aa20f2b38b7791f8a2f5c845fca83f8757c23e8b493b957412daa","impliedFormat":1},{"version":"aa1e9c8569995c48933afea506f9fd7c0d52baa548cff03848a3ec5719a4d9bf","impliedFormat":1},{"version":"c7e140402ae4daebf77f2865a5cc4dc9b1412e1ae109c88724ffdeb1bf19e77f","impliedFormat":1},{"version":"40914857500f0460eaa6fa424307ef17c35b3b98f609eff38f9f819259b10423","impliedFormat":1},{"version":"b2f515c722221fb526a969837a175a13a61845acfb5596733660cf07d24a7022","impliedFormat":1},{"version":"5ebfabee94730d299111e2b974d66713cdfbb61b594932a6d2bd28e72bba05a1","impliedFormat":1},{"version":"647a9474f10624fa95a211a862084d02c8fc4e649dbc273d43e922d352d98ee6","impliedFormat":1},{"version":"0741f2f6c55083ae6d94604961e6c0c76746d807bd6e315e87746f3165b8df96","impliedFormat":1},{"version":"999bd1e06ec3d1f87e771d6272d4cfa090d7319bb78ddee80873a2c7180b385b","impliedFormat":1},{"version":"75d36e8ab96636bb2ce9b3dbc8bfaccce006a407ddfeab60b9b08fde4181621e","impliedFormat":1},{"version":"2b9a98fde032318fcf4360444686e9bf7959df7361eb308375c37a6dc7a10e49","impliedFormat":1},{"version":"d4cd6138593ee229ccbb5a069d34a66e4340c958370e5e927a51a49460619aa4","impliedFormat":1},{"version":"e46d624cc7dbb89bfdcbd1c86113c3e79cb130c7f6168877d389da9b4471bcbb","impliedFormat":1},{"version":"e7aebccd51d863f0a0c08c5413f5b50c2fa92c7ecfe55ee828a40b8aa7e1813d","impliedFormat":1},{"version":"234921da5ae27a2f3778f1ee259a74c46b1e082a9cd3b531b055e16f1b96c80f","impliedFormat":1},{"version":"09cb2afd863f361790aab536656a19a4f6394569a15f675a07313ce3e892590b","impliedFormat":1},{"version":"a71a47995ee00b1ca76e8b9ba1957cb102decfbeecc18d95a475304b98fdb391","impliedFormat":1},{"version":"6b6578ca4f466032fdd81d47d967a2efa1b1d3f6d8f928f7d75cf99426a26ca9","impliedFormat":1},{"version":"2b4276dde46aa2faf0dd86119999c76b81e6488cd6b0d0fcf9fb985769cd11c0","impliedFormat":99},{"version":"56a37fc13e7a1756e3964204c146a056b48cbec22f74d8253b67901b271f9900","impliedFormat":99},{"version":"5ecea63968444d55f7c3cf677cbec9525db9229953b34f06be0386a24b0fffd2","impliedFormat":99},{"version":"b50ee4bde16b52ecb08e2407dca49a5649b38e046e353485335aa024f6efb8ef","impliedFormat":99},{"version":"0eb4089c3ae7e97d85c04dc70d78bac4b1e8ada6e9510f109fe8a86cdb42bb69","impliedFormat":99},{"version":"324869b470cb6aa2bc54e8fb057b90d972f90d24c7059c027869b2587efe01aa","impliedFormat":99},{"version":"06362d62344786440c6c9eabd8e4f3240d3001c51480e4113072629782a8ecd6","impliedFormat":1},{"version":"fe1b2a01afdff9810a5205ef2d74384b815a8d5694286346f62d3cf1bd987fa3","impliedFormat":1},{"version":"6f9a2f44098f7f2340ff3244a6e2dfc59c3d6bbce3988e6cc8ea8d3a979e09e3","impliedFormat":1},{"version":"a0a6e788cbcdc34a7cfe08731ebdfba8d3f28d5a118727e687bb535f8098cef6","impliedFormat":1},{"version":"14b11a1eb2cc1bd72e21718e6a8e1d112fc2502cffab7f6606ad8338e5cc7917","impliedFormat":1},{"version":"f3576b01b35c48ec5aeb01ce767ff580777ae89c75874131127b7c184fcbde3b","impliedFormat":1},{"version":"835b0b230e615a3169c9fdedfc7ce319b41bb3e1f80db7d86704061aff8fc3be","impliedFormat":1},{"version":"198a3f36621a082b8beaa87c71ee354f1a87afcd03350c03ad9afc151c076035","impliedFormat":1},{"version":"fc963da723bddd0988a0fc5dfa5a48ab1f69c39ce6befe19d2d527c4fef846d6","impliedFormat":1},{"version":"2bc118f5a59cc35119df56a1513e9a16d6f21a160159572cac8cd28ab90e60a4","impliedFormat":1},{"version":"6f5b42baed63275ff1da3231e345ddfef5e2b475b870e50b5712e53d5242de5e","impliedFormat":1},{"version":"283320f9a1580b51e4118b98813e1f5d69deeca076a5d830537230a21f1fb2cf","impliedFormat":1},{"version":"33d8fbdb3ff691d7a53f7b742b3a72f251fe2000470d3262116f4b0672c5a611","impliedFormat":1},{"version":"1b955a96bc1dee61a0421c673a8dae977beb2194cc822f48524b88e771a849c9","impliedFormat":1},{"version":"7bdcec3771afbbdebe314cc60ad960d7845f127db64e85538540c6032c312602","impliedFormat":1},{"version":"9b37fe8dc52ac68bf4c8e52a15254b2ba050095755abd9fdf0ff579569434640","impliedFormat":1},{"version":"40cc0750399520779410d43371ece355213e3632c97582f85b96687b9a1a9720","impliedFormat":1},{"version":"bafa3a2902c31224238427ba4bdc724078a1386d3b0f2ad701ac990d87e25a59","impliedFormat":1},{"version":"850762649df344a1f0be56b02417b7fd0d291fc013832463b401252d4a066a80","impliedFormat":1},{"version":"b599c33e84efe8ef19d4cc8baec02545c3b13e9a6e742fe74b63812a23565d59","impliedFormat":1},{"version":"c30e42955d53ac30915db7efe63d42728f6d5e48dc943e401ce8f590392bef3d","impliedFormat":1},{"version":"598768ca4e74fec68d944b4a7a9632cdba65a174cfc91ac864fbec156a08d7c5","impliedFormat":1},{"version":"761315b2203408afc92f352b89084b778564edbcfd8a8e331d8c00a4df349f5c","impliedFormat":1},{"version":"acd3086fff0acc16aa47bb586eabdf66195f032c4d13a0becf42a9f39161b02a","impliedFormat":1},{"version":"768c5ef2ca6b0ad181ab7555b13e4717b28ce1caf880a1491774d65d2da7ebd1","impliedFormat":1},{"version":"04889d694c35559b1a777d3029ea1e9307bf7f07e16c133028096d09f946303c","impliedFormat":1},{"version":"d94d916d47de77384fd9516972d03907fe196c5180bb2fd09a7797e5ce93a2b8","impliedFormat":1},{"version":"9b95cc27ce2686fdc4cedb5ece9bd8cc70f82ba95923047988eed340884f2290","impliedFormat":1},{"version":"8ebb5e6c99376202c4b4e6c4fb905eba7cb7539077c0a3034960bc93e19e8c9c","impliedFormat":1},{"version":"df1f9f8ab8d2c301a267d8c70bf64682d23020c122cfba9aa3be3293bb04500e","impliedFormat":1},{"version":"2d0ae5a8bb6397a4306c03d85e7ac436b07890d81fa5842c62e89cf0d810b121","impliedFormat":1},{"version":"32b092854679630de093aacbd7c51156edc3102b24f17fbab4552cc4fad9a877","impliedFormat":1},{"version":"064c6a3df6f5f84a5b07bdc2716beace698365006f7403cc1bcd61ea6528a0f8","impliedFormat":1},{"version":"7a524185e188d3e9116e6f961d6fc4029176c0a221e8fabeae9f04608aac89f1","impliedFormat":1},{"version":"6d32dfe3de306d93457cac9836d9a89c656a0617eb95a1079104870511b2d69b","impliedFormat":1},{"version":"718a1f87ca358fba66ddb3410716701cc81003adc441e9e40e679668b7d9df89","impliedFormat":1},{"version":"e6eba37107781fd2a62cb46786c0509c07fd7dc89cc21b1b6ca2e4740759fb51","impliedFormat":1},{"version":"3b5a12e4b65bcc0e6415c36fc4a8368a3f66dd18dc7ff0fa7e27c91a6c7ddbca","impliedFormat":1},{"version":"29e80bfceba601f27829ac9629d745149044f63b87ed891b2a9c4b35e7457e23","impliedFormat":1},{"version":"6fca4b8dd1efdb4f997bf4c57becffd45312b6f777030600a63619666a9fcf1d","impliedFormat":1},{"version":"0a88c1ecb8b7c0775e157c221585d212dee9f014e54a8378e72ede082c16a8d9","impliedFormat":1},{"version":"1db498c9973a6ffd01cd20504b36174e42991586aae0e19961322a0155c94a8e","impliedFormat":1},{"version":"5ccc6e237dfad556def12cbf9f84bc5c1e94702b4aa18dc6999972505182023e","impliedFormat":1},{"version":"8118c802f483b10debb45b5306c02667d5c65574451be70b560efac9978bb758","impliedFormat":1},{"version":"3bc39f97d28b31bb398dd27f9a2861f8d627b77a7c55b03a89549ba41f627faf","impliedFormat":1},{"version":"2b63832175fa9063307150dfbc0a2d12d13a6b16c09a0b98a0ea5def042c5cda","impliedFormat":1},{"version":"695797b3aa347f615fde45f36a2ea1d6585e300bdc638449ea22006b0b022129","impliedFormat":1},{"version":"c7ca45a0b2618fe005938aa83a760e0fd01c7a1910848e56c618198fdcc67e44","impliedFormat":1},{"version":"7cb32e72717cb00d0eeb810c758369e032b32821f717a69f18b208284c1f1a4e","impliedFormat":1},{"version":"03e1487f89a5453b307e339d841baf9aa1cdb907208daf0652ae283f4c2ef4d4","impliedFormat":1},{"version":"d856eb2a877870b84bfadfdcdca1e063320e9fbb226a3e43c488f37bbeae5b4a","impliedFormat":1},{"version":"61a555bac5913f95a70ba03c4f4b9a1a6fd848952414db0cbee789b461bad64e","impliedFormat":1},{"version":"5247db87131b6a5a35bf58c41fc28e16f6c3eca74483a3abeafa66fc582bf81d","impliedFormat":1},{"version":"7ddfd0956433fa94e61c79ba0141db44eacd047e308511b05333f74c91084d56","impliedFormat":1},{"version":"eac167cdbad8ea8143f9a5b131f9a571d4dc72bcd8e27a55078605bf3b150a88","impliedFormat":1},{"version":"6c64aed8127779052d27a86422ab87b97cb0cfa1250e7804b65d516b931e58c6","impliedFormat":1},{"version":"fc5f833dc8a68d152587d18260d5714c58388092d5e72568b188a607e43924c9","impliedFormat":1},{"version":"09cdb8388c30eb5c85aef42c36525f64b908e2ce86434c5628b2e16399d01444","impliedFormat":1},{"version":"81ef937077c0bf467ecde4a37f851e4e8fc883d4ac4c33aa33e93739909edb5a","impliedFormat":1},{"version":"d0089c1f21f2907041849cb625c097d30e9a38c2b0ba5c34e280095d0fe2a6cd","impliedFormat":1},{"version":"3860e9a6ba8dd10a422f7d40a04888eda236f62e571bac1c14102ce021e061ff","impliedFormat":1},{"version":"0d5bcca9de4cece992b2550c927ef8bcc186b5c557d1f5516a86fd7c7920a1b1","impliedFormat":1},{"version":"886d0af9e8537c6b80a02f81e49c4cea7de528ae0bdb5377f8f367d22cd86aac","impliedFormat":1},{"version":"15541a129f98c5977b53a414223ef0c8800a0f0b59a9831a385670054f05caeb","impliedFormat":1},{"version":"84b4906e3617e69f2e89eb56463030133070ee20f6bed2307eab7e1fc80e4fd5","impliedFormat":1},{"version":"04952c268ba2fec5977f78d91932fa55806d46969be7e23a06fc5843131cfd60","impliedFormat":1},{"version":"665b86c34152149f732b195251b3790c2d75b7126fe414e7d9b06590e85f7ed2","impliedFormat":1},{"version":"6f16b918051907a7b20e0e76901cdbcdca106a3534692adf024ad28256858048","impliedFormat":1},{"version":"6be3bca801a5c75eb4c0b4739be1bdd98f616de6664434a34e7cb2915174a8ef","impliedFormat":1},{"version":"0b41c5852fd91c138bc9fa6c81922bf9936fee5a8a80443ddea0747f385dd71a","impliedFormat":1},{"version":"bf6ddb8eaf63c9ad2a75f1f8c6f4ca6bed688997cdf9d095e1e1dd06daed8fc2","impliedFormat":1},{"version":"f46b0df1b069fa5a94a2a3fca63500d855debf30e67d26e0958432a3c370ca94","impliedFormat":1},{"version":"93119e8543d30477698737f87933ec5936777273db5e91076b469bf2d4fa7fcc","impliedFormat":1},{"version":"6f85da996b39f9b780d3e4c28a5f56027f0bdc4a95c7a5cabc9c97b270359bb8","impliedFormat":1},{"version":"65b719d0c65ca3e2dbcb55cd0011bf75b8eb35f9a26690a1f615daadde72c345","impliedFormat":1},{"version":"c724dffc190e0705f2d1ade7c3f060611eb3a342ab6b3766be0ce564466d6794","impliedFormat":1},{"version":"43c3c8c96662bd8cd7a985903ef5de42205bf04fea2ef6a0da6213264ba3651b","impliedFormat":1},{"version":"95146fdfa6e6b507cad8b3f64613e569ad28e8ab4eec8cc635e3b348eb18026e","impliedFormat":1},{"version":"27c1fe6fbec929ae885d8adcfc6cdb0cf34e9926ddabeeb4679c7e1840250284","impliedFormat":1},{"version":"f8d0836f149026ccc242d3b9454ca4781d379891d86d747be69ecd9cf1cd2a61","impliedFormat":1},{"version":"d918bf67eb9ed0492512103b8939667a76ed8a81c8a966669405d50d52b0e060","impliedFormat":1},{"version":"5ef0dbcf0650406475449c5f84982ee401f3ce4d1ada5259db00c918469285dd","impliedFormat":1},{"version":"84f40b3fdcdac181470bfc3abc88372e651f42a51d848d99d57de802a5fb41eb","impliedFormat":1},{"version":"dfc251f05aef5da52339653209abf2d2528648b794cfce0bb53057a3390500d6","impliedFormat":1},{"version":"8df170e5ca5e7bf1e0bd004a69d3bc734a8f211e6322ee4a954c75e3e2b1e923","impliedFormat":1},{"version":"961c3890c28004edd8aa7dff87372aeddf1da987055f45a106433871406e6ba0","impliedFormat":1},{"version":"134b5baba9e9cd3ebeed89ba77324529c2971d82da38963a118a9fb08108b653","impliedFormat":1},{"version":"75c95ece00973f1a62b02deccd1383f14e4a5331ed073e5db154cb752ce363c4","impliedFormat":1},{"version":"97e4ddd31b1bdd7975fef7ab279d31e54af46521c9fef7e4c62df7246064a320","impliedFormat":1},{"version":"5ec8b00d1d11f8257abd6e83e900d88a9e27e3651707000d78b4b156156328c5","impliedFormat":1},{"version":"f85344ec18d06d0bdc9896496732a443bed4e85612d2da8f52c6cc80ab4ddcdc","impliedFormat":1},{"version":"b1a4f40bdbd7faab72d2b68975fd65cd1d7479d3a12cd5e54c050edbeaa7bb2e","impliedFormat":1},{"version":"bdcaeb9b57cb7a0a226458daad96c322d1dfe178662ad5e11bd771ee2c5dd68f","impliedFormat":1},{"version":"7c00a265aae4dcdc077b9effbd906802b96b5226bc2a8de0bd6f40bb05a4c16e","impliedFormat":1},{"version":"aad3d08eb519d6b808831d9f717e81d8dff1bc5536d99b4a3c5473fc8b26f4d1","impliedFormat":1},{"version":"5c8c0bc6f8d0af518dc87aaaed7db876b1d18eb95b10ff3add313482587e4586","impliedFormat":1},{"version":"8c9cd152f35bc2606e611f912f44d52787078c76c9fc3c8cd6872929b0637798","impliedFormat":1},{"version":"a849f2a2a82646bd37ba9c3834e596d83c4fa668fed381dd6aaf127d60722902","impliedFormat":1},{"version":"0fe612176b473c888064f4bb64012b15d31c0c9c85c1f408fea7c4e7adbfb0de","impliedFormat":1},{"version":"094146d9ecaf99bb7fc29a3496d7c062c1475b8aeca2841d2790a80c9ceedd18","impliedFormat":1},{"version":"0fe06c0e28f105f97b56c2e733702da151c927b7ad2bc0d1ddb7dd785cf39d50","impliedFormat":1},{"version":"9e24325e5b7560a9cee65b8a7ae66437664347bed29afbc06137e0297f2a9053","impliedFormat":1},{"version":"7d5245f52669b20a801036b7af35ccd0b74824d029fbcdfb4fea4c743cfb3a08","impliedFormat":1},{"version":"83ae364c1156a128a5424a810fffd9d171ea378079005b1079f21293aaa71116","impliedFormat":1},{"version":"0b4ed95561c7fc7c5dd635e19db0db176c091e1bff4112deb91de7890354a442","impliedFormat":1},{"version":"87eb77f815b106f18f8fcef9c64e5aa8c3d19473e0ad4f60fec317cad5212a8f","impliedFormat":1},{"version":"cf2fce2fdbd89ce14209d697442d8b93bc07dbaa6f8d9c7128abf25f7b078f5d","impliedFormat":1},{"version":"b1f9dfc56c5666891ab36f780d7a356b436caa5e6e9e13a57bcd1582451b0d1c","impliedFormat":1},{"version":"8c3bcc591bfa51b0bede2acc39a100d73793c1dcd1c3de73cb558c7ff8fd4e2d","impliedFormat":1},{"version":"7da78cd965ca1ec3d7ce35ddb80ac3aa449aa8083379ba949a3954e1b75f275f","impliedFormat":1},{"version":"037efd9859bd99adfc052cdcf7fa2e0735b1e467f408d675b57eff978308b754","impliedFormat":1},{"version":"d08d3836dc621640fe49a7e9080dee0d9b97f6ed3bbe7f88eb2a5470ac76d5a2","impliedFormat":1},{"version":"db9b5b1fb5b6262ac098241f3c95ecd14162b1ea7d8133e88193b9902c90a979","impliedFormat":1},{"version":"0f2938aac77bad209857658943bb6466a78975a9933723d44e01e9af7d361115","impliedFormat":1},{"version":"90320bd2323f5eee550a489d6b28080fdea25824bef6051b4fbd41f6c79985ad","impliedFormat":1},{"version":"87f702cb937d327eca520a532d4d4a9479727984bbe3816e9696c959b85bb45d","impliedFormat":1},{"version":"21599e66c92c95c9477b6615d9d6299f86efba2d4370e8b9fc1bc720f19f8e68","impliedFormat":1},{"version":"138136faa1d2a757ca9daac4ba28ea1ccf78997fb88b9d9812a9973a2da5edfd","impliedFormat":1},{"version":"aa80a5573920e685f6596cadb9599a9a95bf9fd66f6b42099814050d7b6573eb","impliedFormat":1},{"version":"4c863f17a9b79c05a2bc31f7298b57632caa221aac7b1d9a7bf32bf1bde40c88","impliedFormat":1},{"version":"a49fe8107cabe8162b9e6afd49faef6ea356eb0d601b3fd1cdb7d7dbb4225c02","impliedFormat":1},{"version":"5570d06cac2d2f5ace1688aabafbd8a9b055da4fb1f9b2e8d7e99c88606a6a85","impliedFormat":1},{"version":"8f5014da164cec4f1e3ea3b9c99191096848d8022ec2823198a1855188ce769d","impliedFormat":1},{"version":"bc15829f674f5b2d9b80dd1f70c42c51f2639f6e791d4c1c4b68a0d3fe3b1624","impliedFormat":1},{"version":"f6b14d235ef38813e577b9e9d71aceb78df8eb318da30f7d3063ef04c2abed10","impliedFormat":1},{"version":"3a318dc56e4d6ce19906e30257a221502dee9e93098c4fb46beccbbc1877dcc4","impliedFormat":1},{"version":"9978a63eac52515366816a16b410d71f90a4e8900162acb4ca9215b76f2fa422","impliedFormat":1},{"version":"30033a24ae44146b647e8aea2c84d51856dcde62870add5df230a27d796ab3ee","impliedFormat":1},{"version":"33d05825e45719f49376995d1819866dd0f9d862f7c3219dd429cd1488efcde2","impliedFormat":1},{"version":"4b859a4d3e2185e22ab2d2ed52c0177939a67b7d4b90210edc13875a8438e2fd","impliedFormat":1},{"version":"04317c46d01f39649647b24a30f74f3ca3a84df6539a9ba3f44b378359328b49","impliedFormat":1},{"version":"0f4b6e6ad4bdc91d3f1d51ff724bcb8f6d70ad7be8a47877b374435162ac50e7","impliedFormat":1},{"version":"e7999757805ca7730c8796eabce3693db1b7195f2cfc9d891a5a22bf9222a02c","impliedFormat":1},{"version":"425db27d592f27e5cd6ebde7449f6524084abd27f1708c386858ac1bf97d1811","impliedFormat":1},{"version":"49ce5bb440fd2121b63e8b439bca3f938016be36f75663768fb6767a705d8762","impliedFormat":1},{"version":"728476e63bcda1ff1a6ae45454f89d0e343dce10e02f687b272f4269c9c103ec","impliedFormat":1},{"version":"ec1cd98780871a6918394f5d1a65890444fa9d2aee8422c54311143c9fcda52b","impliedFormat":1},{"version":"36d51eb7f0dd075e2edc79f120ff6e8d5eda25dfb86bb5886b3036b87ef3f24d","impliedFormat":1},{"version":"f588b174666a77d3f871fb2cea30316f7cdcd59ca9148c721e24315f9d625fd7","impliedFormat":1},{"version":"86bc9ab3bcb4fc16c2df22866b0a0f64bde339b382d527526ebe6cb92b6aa0f3","impliedFormat":1},{"version":"eb03810a18568809259901e2737728372f999e330880bfe7052b80d13615676b","impliedFormat":1},{"version":"19dee02a574e1ead3ad9f7c8321b720d9c727887fd63dbc9b0b91f01386b0f4c","impliedFormat":1},{"version":"090ebdf72416c86118c0733412462c567398da93f517d3cfd97cd919e2264e42","impliedFormat":1},{"version":"ebf2b142ba0777cbeab6e8c2f056abcc2662bca4c5064b9b1b1bd03a992f46f9","impliedFormat":1},{"version":"72ab518e157804db34f49939b3635c6cdb585739d26ca64ba98d7f3e0fc1c2ef","impliedFormat":1},{"version":"0582b30435ff9e8b3ba440a0965a288da33f78783a8f454658d532720d93c7b0","impliedFormat":1},{"version":"dda0f983a92c574b5d20cf5a67b9b23df68ae24dd0836aa97f2631d03ccb97e5","impliedFormat":1},{"version":"c3a01082b6053df1422e2028260f4093005049e397464ed23bc39466feecafd4","impliedFormat":1},{"version":"749944f8007bd777eb35e3f9c087c0cd828cff493ea2714f9541cc72574ab0f3","impliedFormat":1},{"version":"699bab4ea75eb4b52152faa4edc3f456c01a06082fc4f265bbb9c6a52e5f958b","impliedFormat":1},{"version":"32c09e1ecfcdb9337bf2e04448d52429b7154689058f366fc6261a2b4f2aad3b","impliedFormat":1},{"version":"8c514d50eea9e613dc787aa529e1ce54874996c2157b92aed232598f2c50b3c0","impliedFormat":1},{"version":"94e742180c5e32c6e066ab74ba134ce0bb34f4367a9b37ed64320e87387a4034","impliedFormat":1},{"version":"63127c044e6dcb388e50ae9ba7febee7d5960af37220392fc551bc8b301f0ecc","impliedFormat":1},{"version":"1729eb2fcd3bd12fe08cf72266fd7f88698d75af4c9c237235ae1a385645f563","impliedFormat":1},{"version":"3736cbfae05a123623354d1ed19faecace899c362db8ab22059cbfbc556f27c2","impliedFormat":1},{"version":"2705c60e43ccb13b1d1952d807fa6574747b34356ff145b6ce6b425df416918b","impliedFormat":1},{"version":"bea4b2fe46628439fe70cf8884ae15386f9a070f5c36c18c33405f94802c97b2","impliedFormat":1},{"version":"d6b9d3709bca425ceda2fdcdd91b1dfe823ef3a92ee01b029a09bd2b585efb95","impliedFormat":1},{"version":"1e02c721f18ee42e234d2744ee08b5b69ad206c4fcdb97b31eca55cc880de378","impliedFormat":1},{"version":"f359648a230e3b09eeebd086a9045f4bcde21413492f4bc6f0f0fa71daabe846","impliedFormat":1},{"version":"abf49444d7806281cc8fd2e207ba2f907648c713fe9492eeb6c99d2de6cd72d4","impliedFormat":1},{"version":"1179a845e016cdeae7058a3c3cd44257d56740ebd19ccfa7aaf65c9cf3a9a7d6","impliedFormat":1},{"version":"611c98ea642429f3954449db38a966d9d28fc4df64f9639ffdcbb9aa36e9a12a","impliedFormat":1},{"version":"6c3f6300cf66ed5ef36c58134e969616246c987fb05623f8d6c83f7e230da91f","impliedFormat":1},{"version":"0140c8335ba27a27f264138c29992982ea18fe2203c4700729739324d2deb7c6","impliedFormat":1},{"version":"74eeeaac8a1ad64033c0bda3cc1235ef9cd5a28d01b272778d777eb7beeca1cd","impliedFormat":1},{"version":"b2562a59a59a2717021ae25138f3fab6b7d2e235e53df29180fda7910b5c2096","impliedFormat":1},{"version":"5518d8c2dcbdc43c9c20eee3373e1180549e4df4767a8a3b4b70d55dfec63d6c","impliedFormat":1},{"version":"a0f8f6e52af01be903c99f8329d39d248bd5edc504f7ec862a548d6709de50da","impliedFormat":1},{"version":"4f95388cc4b8be42d2b39cb5c6c2a59bc7a5d5667248ddec118af922147c0ccb","impliedFormat":1},{"version":"fb34f3d282c923febd21cf770d7843f8551ca4b34a1d725ff7d680620712bc7c","impliedFormat":1},{"version":"9e8466532555167a58f9831d92ff5bdee391384056ba6561aa469a9d520b5a80","impliedFormat":1},{"version":"2f73554f8f6e14173d1ca37173c589d762b5c0a0e25555845df99e57b5503426","impliedFormat":1},{"version":"a09e34b42390e1a0344eb4e30fb27a88c9bfb54566185d3b35682748ab3abddf","impliedFormat":1},{"version":"a4ab2460fa4a9ce2a35757fd11380f358629763189d8d92cd3357f94d5bd04f2","impliedFormat":1},{"version":"dd353f0d5802b7e2e07be9efd3f913e36ddde9ddc58235f06584e566246537dc","impliedFormat":1},{"version":"6a6a951c0ba0f2b35176a19a8996a1166f925e574e209eecf89798c41de956b2","impliedFormat":1},{"version":"38465754297b45b53bbe3e654ab9ec0765c2b67d7da1159b21d2be9d3bc043ea","impliedFormat":1},{"version":"4115f37f1436b240288156ff5abb4bde910483e32282f525872c72e788310794","impliedFormat":1},{"version":"f6cf6de46ca7f334ba1818ba90c63dc508bb3fddbe0ebecbc5c78e677d4995da","impliedFormat":1},{"version":"b6bb54aeb3dcd320e640a84ef042c730dec827a1862df9fbb783736055e9f80b","impliedFormat":1},{"version":"e60dcb3a5d56b68cccf0d6bb98c60aa697ea6f9adbeb005867a6e3ad1e32faf9","impliedFormat":1},{"version":"00ce17123f6690981ba3a278f44b7814a9cc7d42aeb3f60c971ae6a51a37c5c0","impliedFormat":1},{"version":"f5703ab74bf1cea4dac2f81a7afdd774505827521d7ed94a76c77c89cf0ac281","impliedFormat":1},{"version":"d3c3d571b3f91c6e544ecafe0965a8d77a1fd06dcdd5ee0ee6c6b24b4eb3fda9","impliedFormat":1},{"version":"22375d31eb387aa3b67c8ca275879082ae08de75c467d9b736393f5553452864","impliedFormat":1},{"version":"e83100a75dfb09a0e6b73ea26587deac836ab698689c59a39e9f91675d45d23f","impliedFormat":1},{"version":"f4a526b8949637fd747544c723cffabe6f72007ce530c6d7496b1fe8afd70729","impliedFormat":1},{"version":"17586879ccf720491e967cd56fb085eb10e7c09ff54e37bdbabcf2d821448e75","impliedFormat":1},{"version":"0211c737ac63dbd9720da2a20e8824b781bc4e79ab384cd305e940c10b832125","impliedFormat":1},{"version":"ca1eecf52a09dade7fff2997b736ebb23ff317f731a13dd5d351f2dd320c2dd9","impliedFormat":1},{"version":"e6617c14cdfc166477e31d3ccde0e034d59f3fd7059ee62f4f05f8972a77c562","impliedFormat":1},{"version":"f99d4d104a08536e230de3c8bd41e84e05b543150379922b6c1ad27fb83357d1","impliedFormat":1},{"version":"caed030b8c04a9bbbcbafba4d80d66e2a6e2da71988b4a89517f0392d7c2a75e","impliedFormat":1},{"version":"037644e9dbdd94a0abcf27ea876c21bffb59aaf7c6cda1ed28e5acd15cdd61c3","impliedFormat":1},{"version":"c6d53e72e57283a476ddd7438c46c3e85fa94c6c138f77d938ae4e3be73e6f84","impliedFormat":1},{"version":"fd319f15cfbc8c5769c3e348bee974e57251930a3cedcafaad3da9720e567195","impliedFormat":1},{"version":"9a7a92e25463ca26e227d84b29894fb279f0bff3a9f5aa579f2088da886e5162","impliedFormat":1},{"version":"c42a17777a2dcdea9cadf5646a69be53f1720e88e9d5b8a8bb245dc3c3c12ef1","impliedFormat":1},{"version":"bc12f6ed06b3553cc1710713c99028a7f6ce3559d034c28c94dafbe697008616","impliedFormat":1},{"version":"744ee65e33f2adef0b16ca18f5f8054564e20aad240939013f6a77ef36aee96d","impliedFormat":1},{"version":"711af00b68464254936dfc9f6b1e5ed5a543540fa63d1b2c89caecab8cb72dcf","impliedFormat":1},{"version":"1bd8fb602e764ad20376595004c286de65c090586f62dd72498dd33165627d9a","impliedFormat":1},{"version":"3a3e09ec678551c7a8c806ad9aa89220fa7a00073e5e01ff99878c145d69fc0c","impliedFormat":1},{"version":"836486568e39d661299a712efa51fde68f40decd67d2d543194780d8f7d75c4b","impliedFormat":1},{"version":"043cb83903bd760b175bf5c389f2b75cd1d277b500d44f7e274cf805ad56ba2e","impliedFormat":1},{"version":"f3db28774395eb5f37a0783a1a2725a95d96165ddf8b2aab8e01a9876262e6a2","impliedFormat":1},{"version":"8658278f83b8dd4796ed05a61a4df5854e9c5d488808fca765cd0f8e135e5ecc","impliedFormat":1},{"version":"11bbb15d2f0469812ea87c2f386b89f42277581335d6fe4938e4ad05970844b0","impliedFormat":1},{"version":"f906b794549aff5237189181f9129f69cb32f2a2a596db4a6adcbd6348a03524","impliedFormat":1},{"version":"41f2186aa5576a7b91b9e50d29846f000ceec938e88c3f6de701a8c80884a27d","impliedFormat":1},{"version":"a86e9fc8769e0991485ef4cac75c1f7d95de3a573b4c26bf726f76bb54189282","impliedFormat":1},{"version":"671b7c1e832cd23f099a410795dcaa1b0f6d7918b3e5ad4288fe5f2ca70363ea","impliedFormat":1},{"version":"c37aeeb018203098e573136bd33533aa598827a1ff954d012b1ea5e2779ed4b1","impliedFormat":1},{"version":"5421f3d14a6cc34ad1310891bbcd0334c8f7e6046d9b1ae6a44138100991d29e","impliedFormat":1},{"version":"90216ef6bdb17cf6660c02891b23d8920a3110e34eeab9dfb3af6bc870b54882","impliedFormat":1},{"version":"3da544e2e868ffc280a412f70e3166feb3e532aaeed49bc089e9236eabd1fdff","impliedFormat":1},{"version":"3b6a704d2be44715023552846bff366205322ab5cb41311e81681abb32bd7771","impliedFormat":1},{"version":"c9037a5244dd45009826976e80ca7900bb6d3b737fd00c3048f2851236407daf","impliedFormat":1},{"version":"a8d1a808ef94f4cac920914c98071ca152a832eddb863927c1a8c93c2039b950","impliedFormat":1},{"version":"f168b572534469204094d5d6090f3f4dea231f00cdf0233a17a3287d51336cf9","impliedFormat":1},{"version":"afce5a1faff6d07f1fad1c433eb37c5c1f4037cadc72b520506d0fddcd06b777","impliedFormat":1},{"version":"a257e6a76f44f0a4e93ca3c87f9ed9228bf3a914c268dfd576ac4f846ebc4cc6","impliedFormat":1},{"version":"5f1cf73871b9e11522c6f9430799a05cfe4b6c91770c1b79797d8e1b6b921903","impliedFormat":1},{"version":"3178e24a2bdce6cb5d460618f80006ccaef659c80a76f3091c6f5ea816bb1671","impliedFormat":1},{"version":"871feb6824179e83a9a6be65addedfff1d4852eb3f81a7e77d2befb4c3855da0","impliedFormat":1},{"version":"0814033fb2d08eb0a0323ddfd8ce4cc81cd0fb6f9f21c7f90e9e8fe142345572","impliedFormat":1},{"version":"6b762d13f3e3485b4c998facedd164d34af99130281686e94f47ed8ed1a51604","impliedFormat":1},{"version":"7a084721a0e26fb741b5b383a6f0b8c5e35192bea79312f1e70c07fd4178e654","impliedFormat":1},{"version":"787400c5ff8459a67cdffdd3155170d2df51915291fcb04f8013223bf2b86df1","impliedFormat":1},{"version":"9a74b5844ed0feaca598f1ae3fe35f1b744e7da1fdb38c2c6806d9214be30ecc","impliedFormat":1},{"version":"be6dc42511f3688c9ea8128cf5ff6d837dbd16be9a26ac00494fba083f37be16","impliedFormat":1},{"version":"95cc53af11026e524c5cfda7357ca62d3adcd31e331a1a525706670a1bdd6ce7","impliedFormat":1},{"version":"880c399c8c1d92f38c8deec3843fae22657e4cbdf327a7f1fd25e3cd412a4497","impliedFormat":1},{"version":"2583fae98ef1e5916588f5017d247127c42c81654c0e2c3e7da9e4d510a7c531","impliedFormat":1},{"version":"4d76a55d828081394b7c38d66c2e1af869126b31fbd7b3d9f10a6f514e922bbb","impliedFormat":1},{"version":"4014566b362dd3af27a9d656cd3dbea27cbee7c6797ccf659e6e8ec58b797142","impliedFormat":1},{"version":"0838212ead569085b5922726e4313e82fb0269ddb6af52eeb751b7ea44a8e427","impliedFormat":1},{"version":"f758d8c5d966ee28c3716e4da245c3b536584f74361c22e9e681bc59f7f8a451","impliedFormat":1},{"version":"bb6f706e06a8d2d3ff0e7f7731aaab4d6b09dd0ea2d192f396bd5473464a66ab","impliedFormat":1},{"version":"fc129b75a043e2ac178293d1580d213d425ab4f73b5f18291daebd40948fad42","impliedFormat":1},{"version":"3cdc38249208e220a83bc40705da8911059365572321d0449312eecd62faaa13","impliedFormat":1},{"version":"1b33a30638c4e1c8fbadb75f1d879b228634be6a12422941b578bc71ba10907d","impliedFormat":1},{"version":"5ef6d0db24eae5f680c47604958fd5797ee0668fbf82edddfe006d8ae75e3ac1","impliedFormat":1},{"version":"c0600f7108e1f3dc58a42595b9bf37837c67d71ca279a55c451f9315ac157f98","impliedFormat":1},{"version":"accdba9e04c62fdd890644ad633eda9d8c31adaad615851e8499ae62432657da","impliedFormat":1},{"version":"9bd7841c330a9c1972f36b3567fcee4254b4ee0bddf67f04a787afe716bf4f3e","impliedFormat":1},{"version":"81e1c99558202a9bd2092115663f87ee834dcd41b500f33481556d2e5088c680","impliedFormat":1},{"version":"01e4586bc6b819a612e4f81b5f3ed5c82387fdddab9d6689b3ba8fcf0fbb5100","impliedFormat":1},{"version":"8b833046a611be53bf060136de476623b6d67f27afc44d667f17a152ec290e2d","impliedFormat":1},{"version":"da8c88b7860ca2c202f9f7eb015ef0f9ca3a02868f73971046a413ae872d4ae5","impliedFormat":1},{"version":"9b8d0d464ac8e9c882f1cef50424b9be7b942c94fe6a8e45431cd794aa76f4c8","impliedFormat":1},{"version":"62a16e3acf8b789e9ed8873d067af558053a231c80920fbef508fbb18c48c3f9","impliedFormat":1},{"version":"5c5cd3d5dc2837d28a64235051b2ed820d069324a83a0fdabf886daefb476347","impliedFormat":1},{"version":"4233b38ff908d3650aa7f558a396a658c389709fb71ea13d7ca1ef733fee0746","impliedFormat":1},{"version":"4626b85c40a665e576632324424a7021b04f28affb4e6a8c536049d6054468d9","impliedFormat":1},{"version":"07849aa54c0d64e27d639283dc5bad6e0470a835cc0deee0053f647984eda66e","impliedFormat":1},{"version":"15fcb6019af09d7db5e897b4ce6719a6676802c408e00fa4d59f74cfe4aba827","impliedFormat":1},{"version":"dfc9c798f90a9e474787e899cff613d659e9c02a9e5956e3595fd06f6118cf77","impliedFormat":1},{"version":"e46c735e3943f3f6756c910ac3d4ff17c4c723c3c106f2d3bc501996433d8757","impliedFormat":1},{"version":"a15c0ffea8fc0bcab41f93ef19517787d88b8451b54b1a628babe80c999fde2a","impliedFormat":1},{"version":"0222e7fbfd57abaf92e64fc15893973f689899d0e18c745ba8dfbe138cec0ad4","impliedFormat":1},{"version":"39997a9c2d25d33c07cb17f5735c362e8d6ecbb2042d5edc58563a6ef7d2d80f","impliedFormat":1},{"version":"b0b093b7609f06929af7fe8dff9d4fc609f01ca94aeae5d2e70632d7dde6132d","impliedFormat":1},{"version":"f44d9171a0c7b3a6d2144d91feb4d52de8b0ac1769c8c166fab438465725b400","impliedFormat":1},{"version":"ee9c754834c432b19721a0e960ce9c528ba5842bd1b6f4ff010763b0c8c034af","impliedFormat":1},{"version":"9b4fc8ef6e05241acd037f64f3257c38e981963ba070303f14bfcd7bfd94af5f","impliedFormat":1},{"version":"ba66efe3500db15451979bcf522846b27b6919a836f4cb54aeff00dbf53eec24","impliedFormat":1},{"version":"684ba911ddaa2d6e8303e70e11edb689ea1d746b9c0892f137b85d67a2d9da7c","impliedFormat":1},{"version":"8c18fa97c238733aaf36ee179461e9698456023c79e546a1366b1b362b82b25b","impliedFormat":1},{"version":"09767f6c3c0e60da6da44e1016d73bb7c265af42960e949cd02d41b62772136d","impliedFormat":1},{"version":"0fd182b4143c5577c227a465a7459fa5c4eb69905b58d1c47d97d7fc74ec2118","impliedFormat":1},{"version":"e7865c880892031c2910fd18b45154019407eff3927ad223cd733f3039329e39","impliedFormat":1},{"version":"f8e9db071525f68d5756dbfe23045a77e0fb3934cbeda7352d7e49608bcfe3f7","impliedFormat":1},{"version":"d97f23122b7a6bd7ae423bde7a52b9e270ab009eaecc4bbe086d9efdb6d51a19","impliedFormat":1},{"version":"e48e3afa7e59a50dc3be76cdc301c63d20eaa2c068d43309642cd3c6390bbd09","impliedFormat":1},{"version":"9d9baebd32e09604b81facf900ad69592adcf17c9b0f170ecfc1690844148e4e","impliedFormat":1},{"version":"d325f9b167ab12e1628e2bfb771a6b009e0fff4853d5645a6b59776a0215c8d4","impliedFormat":1},{"version":"f442b4d08fc5d83a1331806336aacd2ff64273f9e6bc5f0eee71a0c2e1d45e8e","impliedFormat":1},{"version":"5bb41f37ca3585a63795c9ac246058b3bd33a2323debca8cd7cd46e8ffe5c920","impliedFormat":1},{"version":"f61310a2c40cc3929b78b126e2ae1350b83b59cceac0ef1d8ea3a66c88f9dc9f","impliedFormat":1},{"version":"6ca8fc56eb6806632f89c2fff494df6de9e6d23b67722a86f71cc096957aa4f8","impliedFormat":1},{"version":"176b99ef80eae6c251a60f16fa3f5a90533ae08de0e8e742d07bc378565397e3","impliedFormat":1},{"version":"ab485b9d1fd0bec36a8ce894ae9b3f60e0fe01e2173787bafbd8e2ab38cb20bf","impliedFormat":1},{"version":"f44536a3f0fa53d0e2deb440a4922a6c5044ce7af2b63de51a19583235f505f0","impliedFormat":1},{"version":"9e8b92d6b441f9841801029ac2232ff3ea22c9e6c5f6c5c763c6538845410455","impliedFormat":1},{"version":"f3f0b30f04975375e8ebb900d21d59e27d169830f8a2ea7acfc8b56e9eb76d46","impliedFormat":1},{"version":"053badc6c363257712cc1eecdd8bfa96e662a46402a46d945672849e1703f73e","impliedFormat":1},{"version":"19403809b68311eaec2273ae203c56c5e6d752d3ee613b7838afe74639688d49","impliedFormat":1},{"version":"c1ea9a03a44568ece3a09b369a8ff11834d56608b471021d4c1dcee8105c1857","impliedFormat":1},{"version":"9b200fb6dd92b39c50dbef32b5990bb8766744191a39f6a9fe538a4d7722907b","impliedFormat":1},{"version":"e7793cba27829d41c6a1018ebbb122a440af69cef66ae5c000fdfac355e86500","impliedFormat":1},{"version":"6955b6f14e9857dd08fe56fa0dad1f26a09fd190bd94f898c07451f320babcc9","impliedFormat":1},{"version":"3ded839b327e0c7fc8d959189380648a83366cf92253c69f7a5ea51fd04aef9c","impliedFormat":1},{"version":"c2361eddc491d4202d81ce4de6e5ea4562f9ce5976181e31d95ba5054ee442aa","impliedFormat":1},{"version":"f22b2decc38ed2a4bc1e65d218fa71edc2b6f133d33c2b4f6ecbfe7083ec1eca","impliedFormat":1},{"version":"96b512768194f0a4ce3a3cacaeb4f583692a24a8e3003b13d9281819ce967416","impliedFormat":1},{"version":"e9c5103bc110d1ba6676695939971ec5f6fd4b117ad5cefafc7af0f889189fda","impliedFormat":1},{"version":"58bb8584ef98c5eab05cae3be7ce0fa6cc9d70b0507849f881d32b95fff341ee","impliedFormat":1},{"version":"776617d216d5f1404efde32cb5a458a8378c1540e3d22fa972daed4f1a39fd27","impliedFormat":1},{"version":"ccf4a37e89a4e45f1a07f978e9c5bdbdaa9bbe62a489b78203af8a1046a4e0e0","impliedFormat":1},{"version":"bf33feac62dba27ac615089d07fa3cb7d8963e5569f59cd109aac7b68b710dbf","impliedFormat":1},{"version":"ffc4ec6317c5ed7ebe18fc516f35ad6b4b7bce532b8caf4e5c4c3e1fd3deb940","impliedFormat":1},{"version":"9eb31bda544214dc696a6cdd01d54e1fceceab6f3f79239132445dfb689a33ce","impliedFormat":1},{"version":"f6558dde981c70ccce263785d245be1729ca7e268487da354ae5961874565788","impliedFormat":1},{"version":"998d115540014fab3581b4e3cb2821a25a8b421051f40ab334f00d31c30809bf","impliedFormat":1},{"version":"96f228be050d866c47239798c1929ec240067485fe0458b578c468aab1c86a7e","impliedFormat":1},{"version":"de1cd59fc33b9cb93d0eedc3f0172d5f1224a9820028e625fba48520e3e26a99","impliedFormat":1},{"version":"e7fcaa00b42304cbd07cf238a44110cce83f0122305c354a6108834ec58f9336","impliedFormat":1},{"version":"6e3521f6d6fb05ced11f795ab36851bf7255aff25e6e8ab9734b5762d2fe354f","impliedFormat":1},{"version":"7a5e3dd8b47efa6b169f3ab590d35feae7cc3b7736354f293a3db270bce157ea","impliedFormat":1},{"version":"7d09ddf0a790bf9e5bee0a1d60b9a6a6b182cadd9d641b57a1c66b33a7cca0db","impliedFormat":1},{"version":"e661056dbddc29170f23873bf7501f894a36d27fd05bbdaa87dad5d3eca3b89f","impliedFormat":1},{"version":"5181637779b51588afa3503dc8c9c7ebd8ff2935ca47db5f16f058cccfb50e10","impliedFormat":1},{"version":"f24d0147b9727db751661a6a68e64bdcbaf6a83dc327edcf9f50c6fbe4dc9ea5","impliedFormat":1},{"version":"bd734a28e08dd842d9c17ae9fa05a304737498873ca58883eb815dba162766c4","impliedFormat":1},{"version":"f800aa633781abd71dc7012885ed75b7cbb5fc840cd3b81c86eabe2a352b166b","impliedFormat":1},{"version":"c295139d69307216461e137b77a57edc4b4d937dd7923b4f00f6af09cf853def","impliedFormat":1},{"version":"75f0a687671ea05684097af85a7361fa20834a0d1d0e718454ee5fca61696b73","impliedFormat":1},{"version":"887c56417f3713d48dae84e1a5c661f0d3a8c7dd9291b2a6742e7169c9b92ec3","impliedFormat":1},{"version":"73f6bd6d88383ed8597bb606a39965fba4a2069e84096ea4a51ee68f9746eb19","impliedFormat":1},{"version":"1b4f8b1186080ecea68f0b9b2a97a7fc019952a4111dd4cfb25910a5e4a0e284","impliedFormat":1},{"version":"bdcdfbdded3940ca7d79dc112e834c4cf78ca18c5a7c6530f58d0bd1fa4156d7","impliedFormat":1},{"version":"da7f531ecba0c3df4d93fbb8168559add0b2a5dee12a6a934ad52472e0f5880a","impliedFormat":1},{"version":"5162f6a406eefd805d4fc0e9f66dfb717cc29c04bfabb6eaee324d10510806cc","impliedFormat":1},{"version":"75945afc83947f9adb1fc5f0035c14818bae1aedd0f2e8ac8528fd73070d6258","impliedFormat":1},{"version":"bf427212e92b227fadf80c4bef4de91c38653492c0778ce103afc8010c77ea7f","impliedFormat":1},{"version":"d4a0fcd0048b161cea04a170b27ce1b9a82fb098de82693cdf434f792e45fdf4","impliedFormat":1},{"version":"6c103d333c86871bee90cf1343f2011fd28c4d6ab93b1967c62daa6c227e1988","impliedFormat":1},{"version":"e591afd10115ffbdf6acd2ca3c1438088a18e3e470f5bc0f761f9973490ae03d","impliedFormat":1},{"version":"7af440443e86ff0cadafe671608aafa2cddab2b2c2832c233c2814bef711af7a","impliedFormat":1},{"version":"4fc58c40c4f4ace53bdf71ad1589f77b34340078fa112ac9e0a3110afe17e38b","impliedFormat":1},{"version":"07f933da44e08208560b7748f391573171527c2f2fc677b115095c603f3c3e25","impliedFormat":1},{"version":"f60e8e154ee63b304ef0e657ed2a075bd76f7fb7045335609072a2c84cef886a","impliedFormat":1},{"version":"019bd8300e43034142742595f8daa0b585ae598e61154b273ef5869494c17640","impliedFormat":99},{"version":"25f693cdc14cc24359f09fea5dfac017729230984ee363cf0b4792cd280b3d34","impliedFormat":99},{"version":"89121c1bf2990f5219bfd802a3e7fc557de447c62058d6af68d6b6348d64499a","impliedFormat":1},{"version":"79b4369233a12c6fa4a07301ecb7085802c98f3a77cf9ab97eee27e1656f82e6","impliedFormat":1},{"version":"f1322aed80dbd4c1de2adaf8d13acdd2e46a0daccabd65a80bb773531290fd17","impliedFormat":99},{"version":"adf1b13aabf2c9e545211d21af585be9bd63195b0d40c62aa30898bb402c26af","impliedFormat":99},{"version":"05cb8f89adfc889b1f81aa4b90ff0c4e1b432e7fbbdfd66471746e5ffee7171e","impliedFormat":99},{"version":"4b723bd83ec19cdc91b8042f10cb681f61a0d6a50dcbb3858cfb220a5f275c56","impliedFormat":99},{"version":"0767c68e53507a97d975d3df2d4f54874a81af136487c6707ea2d130f2151f68","impliedFormat":99},{"version":"0c4b46320738e6b21c87e502bbe8efeab76d66d9a6a834183a47860bcb7b6d24","impliedFormat":99},{"version":"6fdd68b51f7e162a7980e5c6d1d466d1b79a09223ede6ee8a229f4320b80996c","impliedFormat":99},{"version":"06d304d7ca13044eff36ce0a43e20510544ae30ec423d14f5667b4cc0a0b2dbc","impliedFormat":99},{"version":"6bf8aa6ed64228b4d065f334b8fe11bc11f59952fd15015b690dfb3301c94484","impliedFormat":99},{"version":"d7651177aa673fb2592fc1d18d1afedc7c5401ad2ea3c5c0d01e441df4306717","impliedFormat":99},{"version":"a65735a086ae8b401c1c41b51b41546532670c919fd2cedc1606fd186fcee2d7","impliedFormat":99},{"version":"fe021dbde66bd0d6195d4116dcb4c257966ebc8cfba0f34441839415e9e913e1","impliedFormat":99},{"version":"d52a4b1cabee2c94ed18c741c480a45dd9fed32477dd94a9cc8630a8bc263426","impliedFormat":99},{"version":"d059a52684789e6ef30f8052244cb7c52fb786e4066ac415c50642174cc76d14","impliedFormat":99},{"version":"f1226c85c75dba57bf83b0df3fcf20af9c8d8a6f1043f33a637425bc41abda85","impliedFormat":99},{"version":"f2d80ce361931836b85db164e993b2770538c0ca2c13119dcbcdbc8962e2fdaf","impliedFormat":99},{"version":"a38fbe9176d15bbdfc75bec1e64c8adee2fdc1a3c9c65c1fb15d66ce764cc881","impliedFormat":99},{"version":"7a819c7133551418f5dcdbf7038879edcf2392baefde8296389f5c3c20cec2e7","impliedFormat":99},{"version":"a458446a6e4ef3db8be5f214f42490acd6d2bebc9c15c397077b0aae75da6a74","impliedFormat":99},{"version":"0413281c480cbe10fc6de715e912bf05688c53024884c57d0433981c06e5eb7d","impliedFormat":99},{"version":"addca1bb7478ebc3f1c67b710755acc945329875207a3c9befd6b5cbcab12574","impliedFormat":99},{"version":"50b565f4771b6b150cbf3ae31eb815c31f15e2e0f45518958a5f4348a1a01660","impliedFormat":99},{"version":"8a3a48acbd5f140a76091570de63f5f78030f4fe52c543cef0b6246d0761bbba","impliedFormat":99},{"version":"477062c92372593685fb03ff1db77a6874ec94f12a4b7c84547566bba233af9e","impliedFormat":99},{"version":"f4498a2ac4186466abe5f9641c9279a3458fa5992dc10ed4581c265469b118d4","impliedFormat":99},{"version":"79cd08c59476d15a53b33b29b47d0b5835780262e1a3ad114b3398883ba5fa3b","impliedFormat":99},{"version":"03e7bdd9fa3480b3d30ff298db744d2d924e2def8785285549b08f5efbfb65af","impliedFormat":99},{"version":"ad39dcbfb8bce20b7e4e4da743f4ca333c36d139efd9643e7ef68a65023c3db3","impliedFormat":99},{"version":"bb0d9b708244199bc91db637fabb54b29dc01578ce38e1dfc7f7c18080c1c443","impliedFormat":99},{"version":"762449600e9ec2bb63ce9dfe782ea22325c180b02e1fa82e50666b930dbe16d6","impliedFormat":99},{"version":"7c4a878d31b8a3a11f6cee4f79fa4185787f7eb4aa30cbe808ac4e6091fe5ef7","impliedFormat":99},{"version":"ce46068df963cd8ccacfd7b37fac513abed3afd0c0cfb258de7fcf62d5f91065","impliedFormat":1},{"version":"796f70e24a3067d8446713b75bea0cc4a041c38af8d4fb7ed73611b8b9d9a912","impliedFormat":1},{"version":"378e7c94b99d8d424cf2ba7b9bc6b9322d2666c9b5ec7305d0b008aedf253553","impliedFormat":1},{"version":"db33ffdc93c1b5e29b12b26bda723676f5e1a9ce4066bc7fa8c85d84cc598260","impliedFormat":1},{"version":"a58742c1d8f0e05117139b6e994f2609388120ba2a59f150b1691f358f46307c","impliedFormat":99},{"version":"0b031a6ddf6efe7301d3f08b0d189754c88f4d643826f58ce22a3f776a086a04","signature":"62de9db5fe8248fd2247e4366fa43f9b05beb67e217ad66772b4e0ca24e566fa"},{"version":"88ccdc972b888dc50eaa8e4551fbcc705deef4bd0d18a1e1ad5920f0d217b42a","signature":"deed06ab179d6b2534f681ed9237e9a835f67bf62d5b6f5c32ab247367de1ab9"},{"version":"cc8f0288a09f8c3050abe248d3f89b9eab27f44ced9ba1f0ca1c0e77eba8235f","signature":"e74d31c589a0dd99d46e0449c36def196e02d668eb21087c5b9895fa47a03a46"},{"version":"ee3ecfaf4d08c561898b117881f2c8dff1a289804783a152020fd02a9181d4ab","signature":"af42e75aef3f0a7fbc7e523d6dc0083511aaaae77465ea0d5f6986e76ec78bb6"},{"version":"6d5dc9c1359a54beb2dc69f3b3f5cbd8822c835e10bba922d5f1e943a4cabfd8","signature":"e24030691681d60c7655eeb5694bae3ad5173e4f9bca929628aee01b3d81ffe4"},{"version":"d299fd06f6496030d49396a092c58b816dcccd57944c05baee9cdf17457f6518","signature":"96f487431a8525c42663f3481f80d4675ee5d9719d3db356155a942c93a63816"},{"version":"db0f926e5bf869914caecd08b91eae2b612309ab1487b8ba30a7ac2408804a14","signature":"b411e5f1844b8646eb758795168e1989bbd15c967b491f8f6df8a6534ec6674b"},{"version":"a58825dfef3de2927244c5337ff2845674d1d1a794fb76d37e1378e156302b90","impliedFormat":1},{"version":"1a458765deab35824b11b67f22b1a56e9a882da9f907bfbf9ce0dfaedc11d8fc","impliedFormat":1},{"version":"a48553595da584120091fb7615ed8d3b48aaea4b2a7f5bc5451c1247110be41a","impliedFormat":1},{"version":"ebba1c614e81bf35da8d88a130e7a2924058a9ad140abe79ef4c275d4aa47b0d","impliedFormat":1},{"version":"3f3cfb6d0795d076c62fca9fa90e61e1a1dd9ba1601cd28b30b21af0b989b85a","impliedFormat":1},{"version":"2647c7b6ad90f146f26f3cdf0477eed1cefb1826e8de3f61c584cc727e2e4496","impliedFormat":1},{"version":"891faf74d5399bee0d216314ecf7a0000ba56194ffd16b2b225e4e61706192fb","impliedFormat":1},{"version":"c1227e0b571469c249e7b152e98268b3ccdfd67b5324f55448fad877ba6dbbff","impliedFormat":1},{"version":"230a4cc1df158d6e6e29567bfa2bc88511822a068da08f8761cc4df5d2328dcc","impliedFormat":1},{"version":"c6ee2448a0c52942198242ec9d05251ff5abfb18b26a27970710cf85e3b62e50","impliedFormat":1},{"version":"39525087f91a6f9a246c2d5c947a90d4b80d67efb96e60f0398226827ae9161e","impliedFormat":1},{"version":"1bf429877d50f454b60c081c00b17be4b0e55132517ac322beffe6288b6e7cf6","impliedFormat":1},{"version":"b139b4ed2c853858184aed5798880633c290b680d22aee459b1a7cf9626a540d","impliedFormat":1},{"version":"037a9dab60c22cda0cd6c502a27b2ecfb1ac5199efe5e8c8d939591f32bd73c9","impliedFormat":1},{"version":"a21eaf3dc3388fae4bdd0556eb14c9e737e77b6f1b387d68c3ed01ca05439619","impliedFormat":1},{"version":"60931d8fb8f91afacbb005180092f4f745d2af8b8a9c0957c44c42409ec758e7","impliedFormat":1},{"version":"70e88656db130df927e0c98edcdb4e8beeb2779ac0e650b889ab3a1a3aa71d3d","impliedFormat":1},{"version":"a6473d7b874c3cffc1cb18f5d08dd18ac880b97ec0a651348739ade3b3730272","impliedFormat":1},{"version":"89720b54046b31371a2c18f7c7a35956f1bf497370f4e1b890622078718875b1","impliedFormat":1},{"version":"281637d0a9a4b617138c505610540583676347c856e414121a5552b9e4aeb818","impliedFormat":1},{"version":"87612b346018721fa0ee2c0cb06de4182d86c5c8b55476131612636aac448444","impliedFormat":1},{"version":"c0b2ae1fea13046b9c66df05dd8d36f9b1c9fcea88d822899339183e6ef1b952","impliedFormat":1},{"version":"8c7b41fd103b70c3a65b7ace9f16cd00570b405916d0e3bd63e9986ce91e6156","impliedFormat":1},{"version":"0e51075b769786db5e581e43a64529dca371040256e23d779603a2c8283af7d6","impliedFormat":1},{"version":"54fd7300c6ba1c98cda49b50c215cde3aa5dbae6786eaf05655abf818000954c","impliedFormat":1},{"version":"01a265adad025aa93f619b5521a9cb08b88f3c328b1d3e59c0394a41e5977d43","impliedFormat":1},{"version":"af6082823144bd943323a50c844b3dc0e37099a3a19e7d15c687cd85b3985790","impliedFormat":1},{"version":"241f5b92543efc1557ddb6c27b4941a5e0bb2f4af8dc5dd250d8ee6ca67ad67c","impliedFormat":1},{"version":"55e8db543ceaedfdd244182b3363613143ca19fc9dbc466e6307f687d100e1c8","impliedFormat":1},{"version":"27de37ad829c1672e5d1adf0c6a5be6587cbe405584e9a9a319a4214b795f83a","impliedFormat":1},{"version":"2d39120fb1d7e13f8141fa089543a817a94102bba05b2b9d14b6f33a97de4e0c","impliedFormat":1},{"version":"51c1a42c27ae22f5a2f7a26afcf9aa8e3fd155ba8ecc081c6199a5ce6239b5f4","impliedFormat":1},{"version":"72fb41649e77c743e03740d1fd8e18c824bd859a313a7caeba6ba313a84a79a9","impliedFormat":1},{"version":"6ee51191c0df1ec11db3fbc71c39a7dee2b3e77dcaab974348eaf04b2f22307d","impliedFormat":1},{"version":"b8a996130883aaffdee89e0a3e241d4674a380bde95f8270a8517e118350def7","impliedFormat":1},{"version":"a3dce310d0bd772f93e0303bb364c09fc595cc996b840566e8ef8df7ab0e5360","impliedFormat":1},{"version":"eb9fa21119013a1c7566d2154f6686c468e9675083ef39f211cd537c9560eb53","impliedFormat":1},{"version":"c6b5695ccff3ceab8c7a1fe5c5e1c37667c8e46b6fc9c3c953d53aa17f6e2e59","impliedFormat":1},{"version":"d08d0d4b4a47cc80dbea459bb1830c15ec8d5d7056742ae5ccc16dd4729047d0","impliedFormat":1},{"version":"975c1ef08d7f7d9a2f7bc279508cc47ddfdfe6186c37ac98acbf302cf20e7bb1","impliedFormat":1},{"version":"bd53b46bab84955dc0f83afc10237036facbc7e086125f81f13fd8e02b43a0d5","impliedFormat":1},{"version":"3c68d3e9cd1b250f52d16d5fbbd40a0ccbbe8b2d9dbd117bfd25acc2e1a60ebc","impliedFormat":1},{"version":"88f4763dddd0f685397f1f6e6e486b0297c049196b3d3531c48743e6334ddfcb","impliedFormat":1},{"version":"8f0ab3468882aba7a39acbc1f3b76589a1ef517bfb2ef62e2dd896f25db7fba6","impliedFormat":1},{"version":"407b6b015a9cf880756296a91142e72b3e6810f27f117130992a1138d3256740","impliedFormat":1},{"version":"0bee9708164899b64512c066ba4de189e6decd4527010cc325f550451a32e5ab","impliedFormat":1},{"version":"2472ae6554b4e997ec35ae5ad5f91ab605f4e30b97af860ced3a18ab8651fb89","impliedFormat":1},{"version":"df0e9f64d5facaa59fca31367be5e020e785335679aa088af6df0d63b7c7b3df","impliedFormat":1},{"version":"07ce90ffcac490edb66dfcb3f09f1ffa7415ecf4845f525272b53971c07ad284","impliedFormat":1},{"version":"801a0aa3e78ef62277f712aefb7455a023063f87577df019dde7412d2bc01df9","impliedFormat":1},{"version":"ab457e1e513214ba8d7d13040e404aea11a3e6e547d10a2cbbd926cccd756213","impliedFormat":1},{"version":"d62fbef71a36476326671f182368aed0d77b6577c607e6597d080e05ce49cf9e","impliedFormat":1},{"version":"2a72354cb43930dc8482bd6f623f948d932250c5358ec502a47e7b060ed3bbb6","impliedFormat":1},{"version":"cff4d73049d4fbcd270f6d2b3a6212bf17512722f8a9dfcc7a3ff1b8a8eef1f0","impliedFormat":1},{"version":"f9a7c0d530affbd3a38853818a8c739fbf042a376b7deca9230e65de7b65ee34","impliedFormat":1},{"version":"c024252e3e524fcebaeed916ccb8ede5d487eb8d705c6080dc009df3c87dd066","impliedFormat":1},{"version":"641448b49461f3e6936e82b901a48f2d956a70e75e20c6a688f8303e9604b2ff","impliedFormat":1},{"version":"0d923bfc7b397b8142db7c351ba6f59f118c4fe820c1e4a0b6641ac4b7ab533d","impliedFormat":1},{"version":"13737fae5d9116556c56b3fc01ffae01f31d77748bc419185514568d43aae9be","impliedFormat":1},{"version":"4224758de259543c154b95f11c683da9ac6735e1d53c05ae9a38835425782979","impliedFormat":1},{"version":"2704fd2c7b0e4df05a072202bfcc87b5e60a228853df055f35c5ea71455def95","impliedFormat":1},{"version":"cb52c3b46277570f9eb2ef6d24a9732c94daf83761d9940e10147ebb28fbbb8e","impliedFormat":1},{"version":"1bc305881078821daa054e3cb80272dc7528e0a51c91bf3b5f548d7f1cf13c2b","impliedFormat":1},{"version":"ba53329809c073b86270ebd0423f6e7659418c5bd48160de23f120c32b5ceccc","impliedFormat":1},{"version":"f0a86f692166c5d2b153db200e84bb3d65e0c43deb8f560e33f9f70045821ec9","impliedFormat":1},{"version":"b163773a303feb2cbfc9de37a66ce0a01110f2fb059bc86ea3475399f2c4d888","impliedFormat":1},{"version":"cf781f174469444530756c85b6c9d297af460bf228380ed65a9e5d38b2e8c669","impliedFormat":1},{"version":"cbe1b33356dbcf9f0e706d170f3edf9896a2abc9bc1be12a28440bdbb48f16b1","impliedFormat":1},{"version":"d8498ad8a1aa7416b1ebfec256149f369c4642b48eca37cd1ea85229b0ca00d6","impliedFormat":1},{"version":"d054294baaab34083b56c038027919d470b5c5b26c639720a50b1814d18c5ee4","impliedFormat":1},{"version":"4532f2906ba87ae0c4a63f572e8180a78fd612da56f54d6d20c2506324158c08","impliedFormat":1},{"version":"878bf2fc1bbed99db0c0aa2f1200af4f2a77913a9ba9aafe80b3d75fd2de6ccc","impliedFormat":1},{"version":"039d6e764bb46e433c29c86be0542755035fc7a93aa2e1d230767dd54d7307c2","impliedFormat":1},{"version":"f80195273b09618979ad43009ca9ad7d01461cce7f000dc5b7516080e1bca959","impliedFormat":1},{"version":"16a7f250b6db202acc93d9f1402f1049f0b3b1b94135b4f65c7a7b770a030083","impliedFormat":1},{"version":"d15e9aaeef9ff4e4f8887060c0f0430b7d4767deafb422b7e474d3a61be541b9","impliedFormat":1},{"version":"777ddacdcb4fb6c3e423d3f020419ae3460b283fc5fa65c894a62dff367f9ad2","impliedFormat":1},{"version":"9a02117e0da8889421c322a2650711788622c28b69ed6d70893824a1183a45a8","impliedFormat":1},{"version":"9e30d7ef1a67ddb4b3f304b5ee2873f8e39ed22e409e1b6374819348c1e06dfa","impliedFormat":1},{"version":"ddeb300b9cf256fb7f11e54ce409f6b862681c96cc240360ab180f2f094c038b","impliedFormat":1},{"version":"0dbdd4be29dfc4f317711269757792ccde60140386721bee714d3710f3fbbd66","impliedFormat":1},{"version":"1f92e3e35de7c7ddb5420320a5f4be7c71f5ce481c393b9a6316c0f3aaa8b5e4","impliedFormat":1},{"version":"b721dc785a4d747a8dabc82962b07e25080e9b194ba945f6ff401782e81d1cef","impliedFormat":1},{"version":"f88b42ae60eb60621eec477610a8f457930af3cb83f0bebc5b6ece0a8cc17126","impliedFormat":1},{"version":"97c89e7e4e301d6db3e35e33d541b8ab9751523a0def016d5d7375a632465346","impliedFormat":1},{"version":"29ab360e8b7560cf55b6fb67d0ed81aae9f787427cf2887378fdecf386887e07","impliedFormat":1},{"version":"009bfb8cd24c1a1d5170ba1c1ccfa946c5082d929d1994dcf80b9ebebe6be026","impliedFormat":1},{"version":"654ee5d98b93d5d1a5d9ad4f0571de66c37367e2d86bae3513ea8befb9ed3cac","impliedFormat":1},{"version":"83c14b1b0b4e3d42e440c6da39065ab0050f1556788dfd241643430d9d870cf3","impliedFormat":1},{"version":"d96dfcef148bd4b06fa3c765c24cb07ff20a264e7f208ec4c5a9cbb3f028a346","impliedFormat":1},{"version":"f65550bf87be517c3178ae5372f91f9165aa2f7fc8d05a833e56edc588331bb0","impliedFormat":1},{"version":"9f4031322535a054dcdd801bc39e2ed1cdeef567f83631af473a4994717358e1","impliedFormat":1},{"version":"e6ef5df7f413a8ede8b53f351aac7138908253d8497a6f3150df49270b1e7831","impliedFormat":1},{"version":"b5b3104513449d4937a542fb56ba0c1eb470713ec351922e7c42ac695618e6a4","impliedFormat":1},{"version":"2b117d7401af4b064388acbb26a745c707cbe3420a599dc55f5f8e0fd8dd5baa","impliedFormat":1},{"version":"7d768eb1b419748eec264eff74b384d3c71063c967ac04c55303c9acc0a6c5dd","impliedFormat":1},{"version":"2f1bf6397cecf50211d082f338f3885d290fb838576f71ed4f265e8c698317f9","impliedFormat":1},{"version":"54f0d5e59a56e6ba1f345896b2b79acf897dfbd5736cbd327d88aafbef26ac28","impliedFormat":1},{"version":"760f3a50c7a9a1bc41e514a3282fe88c667fbca83ce5255d89da7a7ffb573b18","impliedFormat":1},{"version":"e966c134cdad68fb5126af8065a5d6608255ed0e9a008b63cf2509940c13660c","impliedFormat":1},{"version":"64a39a5d4bcbe5c8d9e5d32d7eb22dd35ae12cd89542ecb76567334306070f73","impliedFormat":1},{"version":"c1cc0ffa5bca057cc50256964882f462f714e5a76b86d9e23eb9ff1dfa14768d","impliedFormat":1},{"version":"08ab3ecce59aceee88b0c88eb8f4f8f6931f0cfd32b8ad0e163ef30f46e35283","impliedFormat":1},{"version":"0736d054796bb2215f457464811691bf994c0244498f1bb3119c7f4a73c2f99a","impliedFormat":1},{"version":"23bc9533664545d3ba2681eb0816b3f57e6ed2f8dce2e43e8f36745eafd984d4","impliedFormat":1},{"version":"689cbcf3764917b0a1392c94e26dd7ac7b467d84dc6206e3d71a66a4094bf080","impliedFormat":1},{"version":"a9f4de411d2edff59e85dd16cde3d382c3c490cbde0a984bf15533cfed6a8539","impliedFormat":1},{"version":"e30c1cf178412030c123b16dbbee1d59c312678593a0b3622c9f6d487c7e08ba","impliedFormat":1},{"version":"837033f34e1d4b56eab73998c5a0b64ee97db7f6ee9203c649e4cd17572614d8","impliedFormat":1},{"version":"cc8d033897f386df54c65c97c8bb23cfb6912954aa8128bff472d6f99352bb80","impliedFormat":1},{"version":"ca5820f82654abe3a72170fb04bbbb65bb492c397ecce8df3be87155b4a35852","impliedFormat":1},{"version":"9badb725e63229b86fa35d822846af78321a84de4a363da4fe6b5a3262fa31f2","impliedFormat":1},{"version":"f8e96a237b01a2b696b5b31172339d50c77bef996b225e8be043478a3f4a9be5","impliedFormat":1},{"version":"7d048c0fbdb740ae3fa64225653304fdb8d8bb7d905facf14f62e72f3e0ba21a","impliedFormat":1},{"version":"c59b8fb44e6ad7dc3e80359b43821026730a82d98856b690506ba39b5b03789b","impliedFormat":1},{"version":"bd86b749fb17c6596803ace4cae1b6474d820fd680c157e66d884e7c43ef1b24","impliedFormat":1},{"version":"879ba0ae1e59ec935b82af4f3f5ca62cbddecb3eb750c7f5ab28180d3180ec86","impliedFormat":1},{"version":"14fb829e7830df3e326af086bb665fd8dc383b1da2cde92e8ef67b6c49b13980","impliedFormat":1},{"version":"ec14ef5e67a6522f967a17eeedb0b8214c17b5ae3214f1434fcfa0ea66e25756","impliedFormat":1},{"version":"b38474dee55446b3b65ea107bc05ea15b5b5ca3a5fa534371daed44610181303","impliedFormat":1},{"version":"511db7e798d39b067ea149b0025ad2198cfe13ce284a789ef87f0a629942d52f","impliedFormat":1},{"version":"0e50ecb8433db4570ed22f3f56fd7372ebddb01f4e94346f043eeb42b4ada566","impliedFormat":1},{"version":"2beccefff361c478d57f45279478baeb7b7bcdac48c6108bec3a2d662344e1ea","impliedFormat":1},{"version":"b5c984f3e386c7c7c736ed7667b94d00a66f115920e82e9fa450dc27ccc0301e","impliedFormat":1},{"version":"acdd01e74c36396d3743b0caf0b4c7801297ca7301fa5db8ce7dbced64ec5732","impliedFormat":1},{"version":"82da8b99d0030a3babb7adfe3bb77bc8f89cc7d0737b622f4f9554abdc53cd89","impliedFormat":1},{"version":"80e11385ab5c1b042e02d64c65972fff234806525bf4916a32221d1baebfe2f9","impliedFormat":1},{"version":"a894178e9f79a38124f70afb869468bace08d789925fd22f5f671d9fb2f68307","impliedFormat":1},{"version":"b44237286e4f346a7151d33ff98f11a3582e669e2c08ec8b7def892ad7803f84","impliedFormat":1},{"version":"910c0d9ce9a39acafc16f6ca56bdbdb46c558ef44a9aa1ee385257f236498ee1","impliedFormat":1},{"version":"fed512983a39b9f0c6f1f0f04cc926aca2096e81570ae8cd84cad8c348e5e619","impliedFormat":1},{"version":"2ebf8f17b91314ec8167507ee29ebeb8be62a385348a0b8a1e7f433a7fb2cf89","impliedFormat":1},{"version":"cb48d9c290927137bfbd9cd93f98fca80a3704d0a1a26a4609542a3ab416c638","impliedFormat":1},{"version":"9ab3d74792d40971106685fb08a1c0e4b9b80d41e3408aa831e8a19fedc61ab8","impliedFormat":1},{"version":"394f9d6dc566055724626b455a9b5c86c27eeb1fdbd499c3788ab763585f5c41","impliedFormat":1},{"version":"9bc0ab4b8cb98cd3cb314b341e5aaab3475e5385beafb79706a497ebddc71b5d","impliedFormat":1},{"version":"35433c5ee1603dcac929defe439eec773772fab8e51b10eeb71e6296a44d9acb","impliedFormat":1},{"version":"aeee9ba5f764cea87c2b9905beb82cfdf36f9726f8dea4352fc233b308ba2169","impliedFormat":1},{"version":"35ea8672448e71ffa3538648f47603b4f872683e6b9db63168d7e5e032e095ef","impliedFormat":1},{"version":"8e63b8db999c7ad92c668969d0e26d486744175426157964771c65580638740d","impliedFormat":1},{"version":"f9da6129c006c79d6029dc34c49da453b1fe274e3022275bcdecaa02895034a0","impliedFormat":1},{"version":"2e9694d05015feb762a5dc7052dd51f66f692c07394b15f6aff612a9fb186f60","impliedFormat":1},{"version":"f570c4e30ea43aecf6fc7dc038cf0a964cf589111498b7dd735a97bf17837e3a","impliedFormat":1},{"version":"cdad25d233b377dd852eaa9cf396f48d916c1f8fd2193969fcafa8fe7c3387cb","impliedFormat":1},{"version":"243b9e4bcd123a332cb99e4e7913114181b484c0bb6a3b1458dcb5eb08cffdc4","impliedFormat":1},{"version":"ada76d272991b9fa901b2fbd538f748a9294f7b9b4bc2764c03c0c9723739fd1","impliedFormat":1},{"version":"6409389a0fa9db5334e8fbcb1046f0a1f9775abce0da901a5bc4fec1e458917c","impliedFormat":1},{"version":"af8d9efb2a64e68ac4c224724ac213dbc559bcfc165ce545d498b1c2d5b2d161","impliedFormat":1},{"version":"094faf910367cc178228cafe86f5c2bd94a99446f51e38d9c2a4eb4c0dec534d","impliedFormat":1},{"version":"dc4cf53cebe96ef6b569db81e9572f55490bd8a0e4f860aac02b7a0e45292c71","impliedFormat":1},{"version":"2c23e2a6219fbce2801b2689a9920548673d7ca0e53859200d55a0d5d05ea599","impliedFormat":1},{"version":"62491ce05a8e3508c8f7366208287c5fded66aad2ba81854aa65067d328281cc","impliedFormat":1},{"version":"8be1b9d5a186383e435c71d371e85016f92aa25e7a6a91f29aa7fd47651abf55","impliedFormat":1},{"version":"95a1b43dfa67963bd60eb50a556e3b08a9aea65a9ffa45504e5d92d34f58087a","impliedFormat":1},{"version":"b872dcd2b627694001616ab82e6aaec5a970de72512173201aae23f7e3f6503d","impliedFormat":1},{"version":"13517c2e04de0bbf4b33ff0dde160b0281ee47d1bf8690f7836ba99adc56294b","impliedFormat":1},{"version":"a9babac4cb35b319253dfc0f48097bcb9e7897f4f5762a5b1e883c425332d010","impliedFormat":1},{"version":"3d97a5744e12e54d735e7755eabc719f88f9d651e936ff532d56bdd038889fc4","impliedFormat":1},{"version":"7fffc8f7842b7c4df1ae19df7cc18cd4b1447780117fca5f014e6eb9b1a7215e","impliedFormat":1},{"version":"aaea91db3f0d14aca3d8b57c5ffb40e8d6d7232e65947ca6c00ae0c82f0a45dc","impliedFormat":1},{"version":"c62eefdcc2e2266350340ffaa43c249d447890617b037205ac6bb45bb7f5a170","impliedFormat":1},{"version":"9924ad46287d634cf4454fdbbccd03e0b7cd2e0112b95397c70d859ae00a5062","impliedFormat":1},{"version":"b940719c852fd3d759e123b29ace8bbd2ec9c5e4933c10749b13426b096a96a1","impliedFormat":1},{"version":"2745055e3218662533fbaddfb8e2e3186f50babe9fb09e697e73de5340c2ad40","impliedFormat":1},{"version":"5d6b6e6a7626621372d2d3bbe9e66b8168dcd5a40f93ae36ee339a68272a0d8b","impliedFormat":1},{"version":"64868d7db2d9a4fde65524147730a0cccdbd1911ada98d04d69f865ea93723d8","impliedFormat":1},{"version":"368b06a0dd2a29a35794eaa02c2823269a418761d38fdb5e1ac0ad2d7fdd0166","impliedFormat":1},{"version":"20164fb31ecfad1a980bd183405c389149a32e1106993d8224aaa93aae5bfbb9","impliedFormat":1},{"version":"bb4b51c75ee079268a127b19bf386eb979ab370ce9853c7d94c0aca9b75aff26","impliedFormat":1},{"version":"f0ef6f1a7e7de521846c163161b0ec7e52ce6c2665a4e0924e1be73e5e103ed3","impliedFormat":1},{"version":"84ab3c956ae925b57e098e33bd6648c30cdab7eca38f5e5b3512d46f6462b348","impliedFormat":1},{"version":"70d6692d0723d6a8b2c6853ed9ab6baaa277362bb861cf049cb12529bd04f68e","impliedFormat":1},{"version":"b35dc79960a69cd311a7c1da15ee30a8ab966e6db26ec99c2cc339b93b028ff6","impliedFormat":1},{"version":"29d571c13d8daae4a1a41d269ec09b9d17b2e06e95efd6d6dc2eeb4ff3a8c2ef","impliedFormat":1},{"version":"5f8a5619e6ae3fb52aaaa727b305c9b8cbe5ff91fa1509ffa61e32f804b55bd8","impliedFormat":1},{"version":"15becc25682fa4c93d45d92eab97bc5d1bb0563b8c075d98f4156e91652eec86","impliedFormat":1},{"version":"702f5c10b38e8c223e1d055d3e6a3f8c572aa421969c5d8699220fbc4f664901","impliedFormat":1},{"version":"4db15f744ba0cd3ae6b8ac9f6d043bf73d8300c10bbe4d489b86496e3eb1870b","impliedFormat":1},{"version":"80841050a3081b1803dbee94ff18c8b1770d1d629b0b6ebaf3b0351a8f42790b","impliedFormat":1},{"version":"9b7987f332830a7e99a4a067e34d082d992073a4dcf26acd3ecf41ca7b538ed5","impliedFormat":1},{"version":"e95b8e0dc325174c9cb961a5e38eccfe2ac15f979b202b0e40fa7e699751b4e9","impliedFormat":1},{"version":"21360a9fd6895e97cbbd36b7ce74202548710c8e833a36a2f48133b3341c2e8f","impliedFormat":1},{"version":"d74ac436397aa26367b37aa24bdae7c1933d2fed4108ff93c9620383a7f65855","impliedFormat":1},{"version":"65825f8fda7104efe682278afec0a63aeb3c95584781845c58d040d537d3cfed","impliedFormat":1},{"version":"1f467a5e086701edf716e93064f672536fc084bba6fc44c3de7c6ae41b91ac77","impliedFormat":1},{"version":"7e12b5758df0e645592f8252284bfb18d04f0c93e6a2bf7a8663974c88ef01de","impliedFormat":1},{"version":"47dbc4b0afb6bc4c131b086f2a75e35cbae88fb68991df2075ca0feb67bbe45b","impliedFormat":1},{"version":"146d8745ed5d4c6028d9a9be2ecf857da6c241bbbf031976a3dc9b0e17efc8a1","impliedFormat":1},{"version":"c4be9442e9de9ee24a506128453cba1bdf2217dbc88d86ed33baf2c4cbfc3e84","impliedFormat":1},{"version":"c9b42fef8c9d035e9ee3be41b99aae7b1bc1a853a04ec206bf0b3134f4491ec8","impliedFormat":1},{"version":"e6a958ab1e50a3bda4857734954cd122872e6deea7930d720afeebd9058dbaa5","impliedFormat":1},{"version":"088adb4a27dab77e99484a4a5d381f09420b9d7466fce775d9fbd3c931e3e773","impliedFormat":1},{"version":"ddf3d7751343800454d755371aa580f4c5065b21c38a716502a91fbb6f0ef92b","impliedFormat":1},{"version":"9b93adcccd155b01b56b55049028baac649d9917379c9c50c0291d316c6b9cdd","impliedFormat":1},{"version":"b48c56cc948cdf5bc711c3250a7ccbdd41f24f5bbbca8784de4c46f15b3a1e27","impliedFormat":1},{"version":"9eeee88a8f1eed92c11aea07551456a0b450da36711c742668cf0495ffb9149c","impliedFormat":1},{"version":"aeb081443dadcb4a66573dba7c772511e6c3f11c8fa8d734d6b0739e5048eb37","impliedFormat":1},{"version":"acf16021a0b863117ff497c2be4135f3c2d6528e4166582d306c4acb306cb639","impliedFormat":1},{"version":"13fbdad6e115524e50af76b560999459b3afd2810c1cbaa52c08cdc1286d2564","impliedFormat":1},{"version":"d3972149b50cdea8e6631a9b4429a5a9983c6f2453070fb8298a5d685911dc46","impliedFormat":1},{"version":"e2dcfcb61b582c2e1fa1a83e3639e2cc295c79be4c8fcbcbeef9233a50b71f7b","impliedFormat":1},{"version":"4e49b8864a54c0dcde72d637ca1c5718f5c017f378f8c9024eff5738cd84738f","impliedFormat":1},{"version":"8db9eaf81db0fc93f4329f79dd05ea6de5654cabf6526adb0b473d6d1cd1f331","impliedFormat":1},{"version":"f76d2001e2c456b814761f2057874dd775e2f661646a5b4bacdcc4cdaf00c3e6","impliedFormat":1},{"version":"d95afdd2f35228db20ec312cb7a014454c80e53a8726906bd222a9ad56f58297","impliedFormat":1},{"version":"8302bf7d5a3cb0dc5c943f77c43748a683f174fa5fae95ad87c004bf128950ce","impliedFormat":1},{"version":"ced33b4c97c0c078254a2a2c1b223a68a79157d1707957d18b0b04f7450d1ad5","impliedFormat":1},{"version":"0e31e4ec65a4d12b088ecf5213c4660cb7d37181b4e7f1f2b99fe58b1ba93956","impliedFormat":1},{"version":"3028552149f473c2dcf073c9e463d18722a9b179a70403edf8b588fcea88f615","impliedFormat":1},{"version":"0ccbcaa5cb885ad2981e4d56ed6845d65e8d59aba9036796c476ca152bc2ee37","impliedFormat":1},{"version":"cb86555aef01e7aa1602fce619da6de970bb63f84f8cffc4d21a12e60cd33a8c","impliedFormat":1},{"version":"a23c3bb0aecfbb593df6b8cb4ba3f0d5fc1bf93c48cc068944f4c1bdb940cb11","impliedFormat":1},{"version":"544c1aa6fcc2166e7b627581fdd9795fc844fa66a568bfa3a1bc600207d74472","impliedFormat":1},{"version":"745c7e4f6e3666df51143ed05a1200032f57d71a180652b3528c5859a062e083","impliedFormat":1},{"version":"0308b7494aa630c6ecc0e4f848f85fcad5b5d6ef811d5c04673b78cf3f87041c","impliedFormat":1},{"version":"c540aea897a749517aea1c08aeb2562b8b6fc9e70f938f55b50624602cc8b2e4","impliedFormat":1},{"version":"a1ab0c6b4400a900efd4cd97d834a72b7aeaa4b146a165043e718335f23f9a5f","impliedFormat":1},{"version":"89ebe83d44d78b6585dfd547b898a2a36759bc815c87afdf7256204ab453bd08","impliedFormat":1},{"version":"e6a29b3b1ac19c5cdf422685ac0892908eb19993c65057ec4fd3405ebf62f03d","impliedFormat":1},{"version":"c43912d69f1d4e949b0b1ce3156ad7bc169589c11f23db7e9b010248fdd384fa","impliedFormat":1},{"version":"d585b623240793e85c71b537b8326b5506ec4e0dcbb88c95b39c2a308f0e81ba","impliedFormat":1},{"version":"aac094f538d04801ebf7ea02d4e1d6a6b91932dbce4894acb3b8d023fdaa1304","impliedFormat":1},{"version":"da0d796387b08a117070c20ec46cc1c6f93584b47f43f69503581d4d95da2a1e","impliedFormat":1},{"version":"f2307295b088c3da1afb0e5a390b313d0d9b7ff94c7ba3107b2cdaf6fca9f9e6","impliedFormat":1},{"version":"d00bd133e0907b71464cbb0adae6353ebbec6977671d34d3266d75f11b9591a8","impliedFormat":1},{"version":"c3616c3b6a33defc62d98f1339468f6066842a811c6f7419e1ee9cae9db39184","impliedFormat":1},{"version":"7d068fc64450fc5080da3772705441a48016e1022d15d1d738defa50cac446b8","impliedFormat":1},{"version":"4c3c31fba20394c26a8cfc2a0554ae3d7c9ba9a1bc5365ee6a268669851cfe19","impliedFormat":1},{"version":"584e168e0939271bcec62393e2faa74cff7a2f58341c356b3792157be90ea0f7","impliedFormat":1},{"version":"50b6829d9ef8cf6954e0adf0456720dd3fd16f01620105072bae6be3963054d1","impliedFormat":1},{"version":"a72a2dd0145eaf64aa537c22af8a25972c0acf9db1a7187fa00e46df240e4bb0","impliedFormat":1},{"version":"0008a9f24fcd300259f8a8cd31af280663554b67bf0a60e1f481294615e4c6aa","impliedFormat":1},{"version":"21738ef7b3baf3065f0f186623f8af2d695009856a51e1d2edf9873cee60fe3a","impliedFormat":1},{"version":"19c9f153e001fb7ab760e0e3a5df96fa8b7890fc13fc848c3b759453e3965bf0","impliedFormat":1},{"version":"5d3a82cef667a1cff179a0a72465a34a6f1e31d3cdba3adce27b70b85d69b071","impliedFormat":1},{"version":"38763534c4b9928cd33e7d1c2141bc16a8d6719e856bf88fda57ef2308939d82","impliedFormat":1},{"version":"292ec7e47dfc1f6539308adc8a406badff6aa98c246f57616b5fa412d58067f8","impliedFormat":1},{"version":"a11ee86b5bc726da1a2de014b71873b613699cfab8247d26a09e027dee35e438","impliedFormat":1},{"version":"95a595935eecbce6cc8615c20fafc9a2d94cf5407a5b7ff9fa69850bbef57169","impliedFormat":1},{"version":"c42fc2b9cf0b6923a473d9c85170f1e22aa098a2c95761f552ec0b9e0a620d69","impliedFormat":1},{"version":"8c9a55357196961a07563ac00bb6434c380b0b1be85d70921cd110b5e6db832d","impliedFormat":1},{"version":"73149a58ebc75929db972ab9940d4d0069d25714e369b1bc6e33bc63f1f8f094","impliedFormat":1},{"version":"c98f5a640ffecf1848baf321429964c9db6c2e943c0a07e32e8215921b6c36c3","impliedFormat":1},{"version":"43738308660af5cb4a34985a2bd18e5e2ded1b2c8f8b9c148fca208c5d2768a6","impliedFormat":1},{"version":"bb4fa3df2764387395f30de00e17d484a51b679b315d4c22316d2d0cd76095d6","impliedFormat":1},{"version":"0498a3d27ec7107ba49ecc951e38c7726af555f438bab1267385677c6918d8ec","impliedFormat":1},{"version":"fe24f95741e98d4903772dc308156562ae7e4da4f3845e27a10fab9017edae75","impliedFormat":1},{"version":"b63482acb91346b325c20087e1f2533dc620350bf7d0aa0c52967d3d79549523","impliedFormat":1},{"version":"2aef798b8572df98418a7ac4259b315df06839b968e2042f2b53434ee1dc2da4","impliedFormat":1},{"version":"249c41965bd0c7c5b987f242ac9948a2564ef92d39dde6af1c4d032b368738b0","impliedFormat":1},{"version":"7141b7ffd1dcd8575c4b8e30e465dd28e5ae4130ff9abd1a8f27c68245388039","impliedFormat":1},{"version":"d1dd80825d527d2729f4581b7da45478cdaaa0c71e377fd2684fb477761ea480","impliedFormat":1},{"version":"e78b1ba3e800a558899aba1a50704553cf9dc148036952f0b5c66d30b599776d","impliedFormat":1},{"version":"be4ccea4deb9339ca73a5e6a8331f644a6b8a77d857d21728e911eb3271a963c","impliedFormat":1},{"version":"3ee5a61ffc7b633157279afd7b3bd70daa989c8172b469d358aed96f81a078ef","impliedFormat":1},{"version":"23c63869293ca315c9e8eb9359752704068cc5fff98419e49058838125d59b1e","impliedFormat":1},{"version":"af0a68781958ab1c73d87e610953bd70c062ddb2ab761491f3e125eadef2a256","impliedFormat":1},{"version":"c20c624f1b803a54c5c12fdd065ae0f1677f04ffd1a21b94dddee50f2e23f8ec","impliedFormat":1},{"version":"49ef6d2d93b793cc3365a79f31729c0dc7fc2e789425b416b1a4a5654edb41ac","impliedFormat":1},{"version":"c2151736e5df2bdc8b38656b2e59a4bb0d7717f7da08b0ae9f5ddd1e429d90a1","impliedFormat":1},{"version":"3f1baacc3fc5e125f260c89c1d2a940cdccb65d6adef97c9936a3ac34701d414","impliedFormat":1},{"version":"3603cbabe151a2bea84325ce1ea57ca8e89f9eb96546818834d18fb7be5d4232","impliedFormat":1},{"version":"989762adfa2de753042a15514f5ccc4ed799b88bdc6ac562648972b26bc5bc60","impliedFormat":1},{"version":"a23f251635f89a1cc7363cae91e578073132dc5b65f6956967069b2b425a646a","impliedFormat":1},{"version":"995ed46b1839b3fc9b9a0bd5e7572120eac3ba959fa8f5a633be9bcded1f87ae","impliedFormat":1},{"version":"ddabaf119da03258aa0a33128401bbb91c54ef483e9de0f87be1243dd3565144","impliedFormat":1},{"version":"4e79855295a233d75415685fa4e8f686a380763e78a472e3c6c52551c6b74fd3","impliedFormat":1},{"version":"3b036f77ed5cbb981e433f886a07ec719cf51dd6c513ef31e32fd095c9720028","impliedFormat":1},{"version":"ee58f8fca40561d30c9b5e195f39dbc9305a6f2c8e1ff2bf53204cacb2cb15c0","impliedFormat":1},{"version":"83ac7ceab438470b6ddeffce2c13d3cf7d22f4b293d1e6cdf8f322edcd87a393","impliedFormat":1},{"version":"ef0e7387c15b5864b04dd9358513832d1c93b15f4f07c5226321f5f17993a0e2","impliedFormat":1},{"version":"86b6a71515872d5286fbcc408695c57176f0f7e941c8638bcd608b3718a1e28c","impliedFormat":1},{"version":"be59c70c4576ea08eee55cf1083e9d1f9891912ef0b555835b411bc4488464d4","impliedFormat":1},{"version":"57c97195e8efcfc808c41c1b73787b85588974181349b6074375eb19cc3bba91","impliedFormat":1},{"version":"d7cafcc0d3147486b39ac4ad02d879559dd3aa8ac4d0600a0c5db66ab621bdf3","impliedFormat":1},{"version":"b5c8e50e4b06f504513ca8c379f2decb459d9b8185bdcd1ee88d3f7e69725d3b","impliedFormat":1},{"version":"122621159b4443b4e14a955cf5f1a23411e6a59d2124d9f0d59f3465eddc97ec","impliedFormat":1},{"version":"c4889859626d56785246179388e5f2332c89fa4972de680b9b810ab89a9502cd","impliedFormat":1},{"version":"e9395973e2a57933fcf27b0e95b72cb45df8ecc720929ce039fc1c9013c5c0dc","impliedFormat":1},{"version":"a81723e440f533b0678ce5a3e7f5046a6bb514e086e712f9be98ebef74bd39b8","impliedFormat":1},{"version":"298d10f0561c6d3eb40f30001d7a2c8a5aa1e1e7e5d1babafb0af51cc27d2c81","impliedFormat":1},{"version":"e256d96239faffddf27f67ff61ab186ad3adaa7d925eeaf20ba084d90af1df19","impliedFormat":1},{"version":"8357843758edd0a0bd1ef4283fcabb50916663cf64a6a0675bd0996ae5204f3d","impliedFormat":1},{"version":"1525d7dd58aad8573ae1305cc30607d35c9164a8e2b0b14c7d2eaea44143f44b","impliedFormat":1},{"version":"fd19dff6b77e377451a1beacb74f0becfee4e7f4c2906d723570f6e7382bd46f","impliedFormat":1},{"version":"3f3ef670792214404589b74e790e7347e4e4478249ca09db51dc8a7fca6c1990","impliedFormat":1},{"version":"0da423d17493690db0f1adc8bf69065511c22dd99c478d9a2b59df704f77301b","impliedFormat":1},{"version":"ba627cd6215902dbe012e96f33bd4bf9ad0eefc6b14611789c52568cf679dc07","impliedFormat":1},{"version":"5fce817227cd56cb5642263709b441f118e19a64af6b0ed520f19fa032bdb49e","impliedFormat":1},{"version":"754107d580b33acc15edffaa6ac63d3cdf40fb11b1b728a2023105ca31fcb1a8","impliedFormat":1},{"version":"03cbeabd581d540021829397436423086e09081d41e3387c7f50df8c92d93b35","impliedFormat":1},{"version":"91322bf698c0c547383d3d1a368e5f1f001d50b9c3c177de84ab488ead82a1b8","impliedFormat":1},{"version":"79337611e64395512cad3eb04c8b9f50a2b803fa0ae17f8614f19c1e4a7eef8d","impliedFormat":1},{"version":"6835fc8e288c1a4c7168a72a33cb8a162f5f52d8e1c64e7683fc94f427335934","impliedFormat":1},{"version":"a90a83f007a1dece225eb2fd59b41a16e65587270bd405a2eb5f45aa3d2b2044","impliedFormat":1},{"version":"320333b36a5e801c0e6cee69fb6edc2bcc9d192cd71ee1d28c4b46467c69d0b4","impliedFormat":1},{"version":"e4e2457e74c4dc9e0bb7483113a6ba18b91defc39d6a84e64b532ad8a4c9951c","impliedFormat":1},{"version":"c39fb1745e021b123b512b86c41a96497bf60e3c8152b167da11836a6e418fd7","impliedFormat":1},{"version":"95ab9fb3b863c4f05999f131c0d2bd44a9de8e7a36bb18be890362aafa9f0a26","impliedFormat":1},{"version":"c95da8d445b765b3f704c264370ac3c92450cefd9ec5033a12f2b4e0fca3f0f4","impliedFormat":1},{"version":"ac534eb4f4c86e7bef6ed3412e7f072ec83fe36a73e79cbf8f3acb623a2447bb","impliedFormat":1},{"version":"a2a295f55159b84ca69eb642b99e06deb33263b4253c32b4119ea01e4e06a681","impliedFormat":1},{"version":"271584dd56ae5c033542a2788411e62a53075708f51ee4229c7f4f7804b46f98","impliedFormat":1},{"version":"f8fe7bba5c4b19c5e84c614ffcd3a76243049898678208f7af0d0a9752f17429","impliedFormat":1},{"version":"bad7d161bfe5943cb98c90ec486a46bf2ebc539bd3b9dbc3976968246d8c801d","impliedFormat":1},{"version":"be1f9104fa3890f1379e88fdbb9e104e5447ac85887ce5c124df4e3b3bc3fece","impliedFormat":1},{"version":"2d38259c049a6e5f2ea960ff4ad0b2fb1f8d303535afb9d0e590bb4482b26861","impliedFormat":1},{"version":"ae07140e803da03cc30c595a32bb098e790423629ab94fdb211a22c37171af5a","impliedFormat":1},{"version":"b0b6206f9b779be692beab655c1e99ec016d62c9ea6982c7c0108716d3ebb2ec","impliedFormat":1},{"version":"cc39605bf23068cbec34169b69ef3eb1c0585311247ceedf7a2029cf9d9711bd","impliedFormat":1},{"version":"132d600b779fb52dba5873aadc1e7cf491996c9e5abe50bcbc34f5e82c7bfe8a","impliedFormat":1},{"version":"429a4b07e9b7ff8090cc67db4c5d7d7e0a9ee5b9e5cd4c293fd80fca84238f14","impliedFormat":1},{"version":"4ffb10b4813cdca45715d9a8fc8f54c4610def1820fae0e4e80a469056e3c3d5","impliedFormat":1},{"version":"673a5aa23532b1d47a324a6945e73a3e20a6ec32c7599e0a55b2374afd1b098d","impliedFormat":1},{"version":"a70d616684949fdff06a57c7006950592a897413b2d76ec930606c284f89e0b9","impliedFormat":1},{"version":"ddfff10877e34d7c341cb85e4e9752679f9d1dd03e4c20bf2a8d175eda58d05b","impliedFormat":1},{"version":"d4afbe82fbc4e92c18f6c6e4007c68e4971aca82b887249fdcb292b6ae376153","impliedFormat":1},{"version":"9a6a791ca7ed8eaa9a3953cbf58ec5a4211e55c90dcd48301c010590a68b945e","impliedFormat":1},{"version":"10098d13345d8014bbfd83a3f610989946b3c22cdec1e6b1af60693ab6c9f575","impliedFormat":1},{"version":"0b5880de43560e2c042c5337f376b1a0bdae07b764a4e7f252f5f9767ebad590","impliedFormat":1},{"version":"f59d20459fc94738ae1ab6604a2a5968f9daa89fc9ffd10900e10e362435b87a","signature":"ec575b31af8dd9b98e6ef3b5b7723578aa3ddc9b0bbea6097c28827b130d609e"},{"version":"efc3fc0a47a7f8916e90c73bebfcdf1ade15d2a31ccb1023b1ed5971e46d1e33","signature":"0713dc3ffa813067185be740fc895a6e645bead60ad8a755b03f29c9916d4fe0"},{"version":"49485b343f7c537cda77ea8d29296c7acd879c13eed6cf4e7da09e0c4d8bd1cb","impliedFormat":99},{"version":"43a6dcae1be5871beee3038634fdeef1bf0dda73a5208edb2b59f0c9cc9db5b6","impliedFormat":99},{"version":"fcb37e98e6cf4788cd667c5b0719e936c0f7644690a9b18d14ffb0e18d4bfc10","impliedFormat":99},{"version":"9ca99a94eafaab11debdd20ec46cebabe7b86f8f3b9b62f6647235845f94baca","impliedFormat":99},{"version":"2168cf3865c30f5ed01e3179f6871ed85b96d3020e8bcdb45f1f5b5c4c3746c0","signature":"b92443bb36e155a7eab444cb37bb3e4c2e973325d096313da7bba8f7f02bf3e6"},{"version":"282f98006ed7fa9bb2cd9bdbe2524595cfc4bcd58a0bb3232e4519f2138df811","impliedFormat":1},{"version":"6222e987b58abfe92597e1273ad7233626285bc2d78409d4a7b113d81a83496b","impliedFormat":1},{"version":"cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","impliedFormat":1},{"version":"7f698624bbbb060ece7c0e51b7236520ebada74b747d7523c7df376453ed6fea","impliedFormat":1},{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true,"impliedFormat":1},{"version":"984c09345059b76fc4221c2c54e53511f4c27a0794dfd6e9f81dc60f0b564e05","affectsGlobalScope":true,"impliedFormat":99},"65996936fbb042915f7b74a200fcdde7e410f32a669b1ab9597cfaa4b0faddb5",{"version":"ba75823dfe1e526b7e7ea2962d417de8dbaec0436f95f2b326c289f15809b937","signature":"271b83dd677a0a94edfcb2abd3f8d7b8c8cc0fa2477c4f540880471dd2252626"},{"version":"a3d72a03dc264268e7d7af07ca0fd6bfef039a2abd99fd09da9dd0161f02a15b","signature":"0d16d5177ebb88728e1317e3ba3b90e33b26d5ac5846959a6348e770324ed934"},{"version":"0a6cb422f881d7c94f6f307a1064026e1f6087cf05ccecbd23a3e566fac396b7","signature":"bd304a6aa79d2b45c3a2c34aaf6ee37024f75b4d03d9b3c759706f31673977ad"},{"version":"d25cc2a93ae8a5737c3808a2ef4cd8c27fe25773a5cab8bb774e1a29168ee60d","signature":"b41568086cbc802ee04927ceeb92f5d5567d49322e016891f11df778f4bdf603"},{"version":"7e3373dde2bba74076250204bd2af3aa44225717435e46396ef076b1954d2729","impliedFormat":1},{"version":"1c3dfad66ff0ba98b41c98c6f41af096fc56e959150bc3f44b2141fb278082fd","impliedFormat":1},{"version":"56208c500dcb5f42be7e18e8cb578f257a1a89b94b3280c506818fed06391805","impliedFormat":1},{"version":"1ba55e9efbea1dcf7a6563969ff406de1a9a865cbbdaea2714f090fff163e2b5","impliedFormat":1},{"version":"eb9271b3c585ea9dc7b19b906a921bf93f30f22330408ffec6df6a22057f3296","impliedFormat":1},{"version":"82b7bf38f1bc606dc662c35b8c80905e40956e4c2212d523402ae925bd75de63","impliedFormat":1},{"version":"81be14ad77be99cea7343fdc92a0f4058bcdebaa789d944e04ce4f86f0ca5fbb","impliedFormat":1},{"version":"9f1e00eab512de990ba27afa8634ca07362192063315be1f8166bc3dcc7f0e0f","impliedFormat":1},{"version":"1cdbf5cc31860b39bd1881f19809357ee3600331ff1317f9d700c21665649aa8","impliedFormat":1},{"version":"86dac6ce3fcd0a069b67a1ac9abdbce28588ea547fd2b42d73c1a2b7841cf182","impliedFormat":1},{"version":"4d34fbeadba0009ed3a1a5e77c99a1feedec65d88c4d9640910ff905e4e679f7","impliedFormat":1},{"version":"2f3ec8a345eefed1af66b5975da98ccf3178d13ba9308359d34d2f7f87dd4c9c","impliedFormat":1},{"version":"8fcc5571404796a8fe56e5c4d05049acdeac9c7a72205ac15b35cb463916d614","impliedFormat":1},{"version":"a3b3a1712610260c7ab96e270aad82bd7b28a53e5776f25a9a538831057ff44c","impliedFormat":1},{"version":"33a2af54111b3888415e1d81a7a803d37fada1ed2f419c427413742de3948ff5","impliedFormat":1},{"version":"d5a4fca3b69f2f740e447efb9565eecdbbe4e13f170b74dd4a829c5c9a5b8ebf","impliedFormat":1},{"version":"56f1e1a0c56efce87b94501a354729d0a0898508197cb50ab3e18322eb822199","impliedFormat":1},{"version":"8960e8c1730aa7efb87fcf1c02886865229fdbf3a8120dd08bb2305d2241bd7e","impliedFormat":1},{"version":"27bf82d1d38ea76a590cbe56873846103958cae2b6f4023dc59dd8282b66a38a","impliedFormat":1},{"version":"0daaab2afb95d5e1b75f87f59ee26f85a5f8d3005a799ac48b38976b9b521e69","impliedFormat":1},{"version":"f94362be0203351e67499c41bd1f3c91f4dabf6872e5c880f269d5ad7ffda603","impliedFormat":1},{"version":"bb220eaac1677e2ad82ac4e7fd3e609a0c7b6f2d6d9c673a35068c97f9fcd5cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"c60b14c297cc569c648ddaea70bc1540903b7f4da416edd46687e88a543515a1","impliedFormat":1},{"version":"d03cf6cd011da250c9a67c35a3378de326f6136c4192a90dd11f3a84627b4ef6","impliedFormat":1},{"version":"9c0217750253e3bf9c7e3821e51cff04551c00e63258d5e190cf8bd3181d5d4a","impliedFormat":1},{"version":"5c2e7f800b757863f3ddf1a98d7521b8da892a95c1b2eafb48d652a782891677","impliedFormat":1},{"version":"73ed3ff18ca862b9d7272de3b0d137d284a0c40e1c94cbf37acd5270ce9b7cd6","impliedFormat":1},{"version":"c61d8275c35a76cb12c271b5fa8707bb46b1e5778a370fd6037c244c4df6a725","impliedFormat":1},{"version":"c7793cb5cd2bef461059ca340fbcd19d7ddac7ab3dcc6cd1c90432fca260a6ae","impliedFormat":1},{"version":"fd3bf6d545e796ebd31acc33c3b20255a5bc61d963787fc8473035ea1c09d870","impliedFormat":1},{"version":"c7af51101b509721c540c86bb5fc952094404d22e8a18ced30c38a79619916fa","impliedFormat":1},{"version":"59c8f7d68f79c6e3015f8aee218282d47d3f15b85e5defc2d9d1961b6ffed7a0","impliedFormat":1},{"version":"93a2049cbc80c66aa33582ec2648e1df2df59d2b353d6b4a97c9afcbb111ccab","impliedFormat":1},{"version":"d04d359e40db3ae8a8c23d0f096ad3f9f73a9ef980f7cb252a1fdc1e7b3a2fb9","impliedFormat":1},{"version":"84aa4f0c33c729557185805aae6e0df3bd084e311da67a10972bbcf400321ff0","impliedFormat":1},{"version":"cf6cbe50e3f87b2f4fd1f39c0dc746b452d7ce41b48aadfdb724f44da5b6f6ed","impliedFormat":1},{"version":"3cf494506a50b60bf506175dead23f43716a088c031d3aa00f7220b3fbcd56c9","impliedFormat":1},{"version":"f2d47126f1544c40f2b16fc82a66f97a97beac2085053cf89b49730a0e34d231","impliedFormat":1},{"version":"724ac138ba41e752ae562072920ddee03ba69fe4de5dafb812e0a35ef7fb2c7e","impliedFormat":1},{"version":"e4eb3f8a4e2728c3f2c3cb8e6b60cadeb9a189605ee53184d02d265e2820865c","impliedFormat":1},{"version":"f16cb1b503f1a64b371d80a0018949135fbe06fb4c5f78d4f637b17921a49ee8","impliedFormat":1},{"version":"f4808c828723e236a4b35a1415f8f550ff5dec621f81deea79bf3a051a84ffd0","impliedFormat":1},{"version":"3b810aa3410a680b1850ab478d479c2f03ed4318d1e5bf7972b49c4d82bacd8d","impliedFormat":1},{"version":"0ce7166bff5669fcb826bc6b54b246b1cf559837ea9cc87c3414cc70858e6097","impliedFormat":1},{"version":"90ae889ba2396d54fe9c517fcb0d5a8923d3023c3e6cbd44676748045853d433","impliedFormat":1},{"version":"3549400d56ee2625bb5cc51074d3237702f1f9ffa984d61d9a2db2a116786c22","impliedFormat":1},{"version":"5ffe02488a8ffd06804b75084ecc66b512f85186508e7c9b57b5335283b1f487","impliedFormat":1},{"version":"b60f6734309d20efb9b0e0c7e6e68282ee451592b9c079dd1a988bb7a5eeb5e7","impliedFormat":1},{"version":"f4187a4e2973251fd9655598aa7e6e8bba879939a73188ee3290bb090cc46b15","impliedFormat":1},{"version":"44c1a26f578277f8ccef3215a4bd642a0a4fbbaf187cf9ae3053591c891fdc9c","impliedFormat":1},{"version":"a5989cd5e1e4ca9b327d2f93f43e7c981f25ee12a81c2ebde85ec7eb30f34213","impliedFormat":1},{"version":"f65b8fa1532dfe0ef2c261d63e72c46fe5f089b28edcd35b3526328d42b412b8","impliedFormat":1},{"version":"1060083aacfc46e7b7b766557bff5dafb99de3128e7bab772240877e5bfe849d","impliedFormat":1},{"version":"1b32f14ef9e26be36776d6115d3661747508a3437f5bb2528a39ce60f622b5aa","impliedFormat":1},{"version":"9ee50ea4e24ac33273880940358802dd98baddf27173f19ea061752eb192c44d","impliedFormat":1},{"version":"111e1ef247e53abc607bd921154a477a4b19b3e876abb79c672012f06f69b368","impliedFormat":1},{"version":"7ec569bb000dbd2ae79f6e5888fa16765a7c579936054a4f50b021eaf31b0998","impliedFormat":1},{"version":"dd0b9b00a39436c1d9f7358be8b1f32571b327c05b5ed0e88cc91f9d6b6bc3c9","impliedFormat":1},{"version":"a951a7b2224a4e48963762f155f5ad44ca1145f23655dde623ae312d8faeb2f2","impliedFormat":1},{"version":"f7eb7fc7e7c956605835e5bbbdfc4b6d1c36f1d41a162bfffba4540eae5d4257","impliedFormat":1},{"version":"cf7698e227b8f0e3373106ef29db72fc52661c0fdaa823205fbfc357985ec219","impliedFormat":1},{"version":"9f20de1b5776e653764e55f059d02ef460d7e2c064c304bfda1d7ba2dda43886","impliedFormat":1},{"version":"890ed5cccf66fdced5795066488cd006379dfc84b1670e459f03d40c625341ca","impliedFormat":1},{"version":"d8e8ab0dbaee5220b21dfbbb33fefc684ef4d87b07743a998f39e9d88ffe9776","impliedFormat":1},{"version":"977aeb024f773799d20985c6817a4c0db8fed3f601982a52d4093e0c60aba85f","impliedFormat":1},{"version":"d59cf5116848e162c7d3d954694f215b276ad10047c2854ed2ee6d14a481411f","impliedFormat":1},{"version":"50098be78e7cbfc324dfc04983571c80539e55e11a0428f83a090c13c41824a2","impliedFormat":1},{"version":"40894bcf307f326ec4d371cd2ff304dac0fa303d1c6c71ad7dc65742239114da","impliedFormat":1},{"version":"dd6051c7b02af0d521857069c49897adb8595d1f0e94487d53ebc157294ef864","impliedFormat":1},{"version":"79c6a11f75a62151848da39f6098549af0dd13b22206244961048326f451b2a8","impliedFormat":1},{"version":"055c773f8f3ebf07c31e4ec2c7680dacaa56b31be05e2ee26bcfde65bded32e4","impliedFormat":1},{"version":"164de4d1ba25770efd614ac51e2b6807beba14d105bff3d3ec3077d1158e3596","impliedFormat":1},{"version":"ef6589e16e7807ed79874f2e843a303420062e6ccafba4576abbf4a028f4bb8c","impliedFormat":1},{"version":"ae244634fcab156eecd3e8c5e08578ea3dd7360d5b59d1ad7cd0ca2e6473bfe9","impliedFormat":1},{"version":"b8c9a7ed3a645d01aadbd064301bc588460530a8171dd94047097aa7fa302ce0","impliedFormat":1},{"version":"0d61fcf35a827188cac406187288e4125d6f83fdfa7c7a0f7a883301c1b48d7c","impliedFormat":1},{"version":"73c73698b1d17cb0f602d20eb181e6480e0f750cad513a6382b9761eb1c8c93a","impliedFormat":1},{"version":"740e00f895e90d38014aeb5873c184b7b7cf1ec20e2d40a16cca3dbfc6a52899","impliedFormat":1},{"version":"be81b29cbc030367a07612a5963a1947b0448ad3cd2a8244342f85e49613414a","impliedFormat":1},{"version":"5c957962ffe316f16d33671f9d7a97106beb455a1edd7ed6e6048d1cf95192b9","impliedFormat":1},{"version":"899b8a2c266dc2766672ede46221df767f897ad3a05a96a01a321057f1761dfb","impliedFormat":1},{"version":"0b5d5ea0cb8ac07bffdab146b4b94aea2f87d6be1e1878a19bcedde44f13c684","impliedFormat":1},{"version":"2dc9dbd1bbb80014b82b258421e988275e2928459ea69ea1dcf6a3f1fd5fea77","impliedFormat":1},{"version":"eb9638792c2f4f2bfa106927b71bbe9e13adfd1f51525a15f345e8b38358d294","impliedFormat":1},{"version":"fac1596a64a2b8ab8c23577e2386f3a8aff5bb40835304574e2f637e0cae2501","impliedFormat":1},{"version":"c9a7d6cc10cf3af717a3ff83b0ed8d81f7aa93abec128425487bdc844bd05b15","impliedFormat":1},{"version":"5239adcd03e28be28cdd40382bab42324d55aeebc14a8dd2397e72ee85e4ef7d","impliedFormat":1},{"version":"a58173d695bc09510d157cba133352521a8834a3cb9c87e4c9548e1c32479eb8","impliedFormat":1},{"version":"78f5b19fe7c26f01b6153e2151419e7c8421d81c29411f3fd226b02b202f219d","impliedFormat":1},{"version":"74ef61ded6a59d98a3b38a8951f291787aa23512e106e14db34e60ad8199d5ea","impliedFormat":1},{"version":"fab7d7ad49886b49bdbed8d7c0126a0cd9d9e2f50e91640b8f01bdd2cb5f4087","impliedFormat":1},{"version":"6c6b21ab604698865c53d9a33680448387edb6ff72cbc67c47b60480ab9b072d","impliedFormat":1},{"version":"9938d40ed139770cc157a9ac7a2b791bf075f8c8ddfa8be735bdc8d86e483fca","impliedFormat":1},{"version":"7a1ef4774895eb5d8bc20b7777de4650a3c73a432b7db35a99d4dae8a8b509a2","impliedFormat":1},{"version":"60ecd48bbd08a062689ee88b986de1c0fb2034aa0a657ffe4e3aa9867d96af51","impliedFormat":1},{"version":"d0338b756b79bc3b755b47c439e4fdc099e67ee3c74c0ab241b09c85ab596217","impliedFormat":1},{"version":"ff84d6f67f2ff047b5ae687c02bd7f0f1537f3a7edf94211f6c27123be2ecf90","impliedFormat":1},{"version":"74e486c453c63a944169d405e4e82fcb0c10ad87f213481333a36a6c221d59d8","impliedFormat":1},{"version":"45ec2fcc6ee9d42007e14cdc6f8a6f9eb564ad82a537a6136bb4e14277f4df2d","impliedFormat":1},{"version":"e1274e1cca2bd5d81a4c3d2786a92b62dbe1592a17e401076185fcb4ff207a1f","impliedFormat":1},{"version":"4434e2a58ebca62a10697c684b16fc124886894922ea27a79065563e6e4099b2","impliedFormat":1},{"version":"d1b67e2315cf70f1518138bce0b912b16fd6828abb7828ea2eb9e43d893836ad","impliedFormat":99},{"version":"e2abbdbdbc47b734ea01edc309be660437c250e778b4db5b6b677016530500d3","signature":"0c221ff3a2db5bf1d1b071bc2ea73343d733419e680b8c3d76501864c8735a62"},{"version":"76594cc2f4300d3ab29ae33095e4b3a887e0de6dd666deea85fdbb8ed19a233f","impliedFormat":1},{"version":"b81060e196fb4f68647702e19ad78d056c15ffa9d67b690a82b42cbb4b48bd1a","impliedFormat":1},{"version":"c861b5476e96c09bd9943d233270951f4179d704adf11ed723ffa00fea2d9342","impliedFormat":1},{"version":"5527394a526d66ebfac46288b6966981930a4e28a05cac9cc6297ec6d55d8d5a","impliedFormat":1},{"version":"64c624160a6a24816ad8ac9cb314b127f96c3ad7178e7f93d52c3130d1a956fe","impliedFormat":1},{"version":"23b07eea490d41718cd20e23153450c88b1be5ba4c497a5d14cc852560167e19","impliedFormat":1},{"version":"f34c0fbf3fb40dd5051a4eadee7b6d81740e014e33c23c9f39770f940190f4a5","impliedFormat":1},{"version":"8fa351f5283c2e4ef4410354c3889138d3d73a990e3b8d951390137ff18e622a","impliedFormat":1},{"version":"4305ebf2e8bb8f7230ba5d421f30b0d7bc372435d9e8e6a41605397a46d35ff1","impliedFormat":1},{"version":"01c2313e438fed7da00f3ede4b0b5542ada33a1f8c976c0c705d645f1a8a0108","impliedFormat":1},{"version":"8a66a1d8b90c27751a78d379dfbbc4ca0019881807c880f4174f7842d22cb663","impliedFormat":1},{"version":"0daf674c4d7fb1eaa5fb04f5fe9a811f24babf66076ddc82ad99bc172aba7351","impliedFormat":1},{"version":"2c349bed9445b9a0ceb393b031a6d2dcdcddd4e763f8213418185267a8a9a8ad","impliedFormat":1},{"version":"d9a2bd6925be8a228e7478c181672032cb130b97df16e1e83cd34610d24ba57b","impliedFormat":1},{"version":"011ec8ad00d970c27e092e1ec3ae88acc70d33aeae5f49a844646d2a5eea5ec2","impliedFormat":1},{"version":"da1013dc5825f1d62bce45f2a5b8f4183c131d890c056825e37d34109c4e28c7","impliedFormat":1},{"version":"94644a2478ddcdce9418fb5d4985257a78fa3b8c9e7c1a4ac15c0ecffa5940f3","impliedFormat":1},{"version":"125a7fda53537ee95a72fdc38ce97411774624006025674d8fad3a3cfdca59a2","impliedFormat":1},{"version":"5252acc597a4d180af675eb2334e60bdd59e9107732c3f9f8aabc998ff2374e2","impliedFormat":1},{"version":"f91179e42ad82bdc37c8c7557a42e04486c9db5d548e96dff75c6f3f73cd5981","impliedFormat":1},{"version":"20dfe36f121b04dc5ea06d68183c339e8bd82869a090f38fe7394e9edbea4de8","impliedFormat":1},{"version":"653e8f816cd2217f0d8396424c0191c7c47c260943f7e824c0f8e9e502b3d933","impliedFormat":1},{"version":"3460d14c944a90519f5f641094e39d358a9ca820bc59c996047640738ea7485e","impliedFormat":1},{"version":"88d75a3e2de88dde5be5a0cedf94ce89ed88a2651fd402335cb07f8f924e1a47","impliedFormat":1},{"version":"63c1cf823e9ae8db0fa67e90a12a42c564be969bcb22d6c42635652bc7308f66","impliedFormat":1},{"version":"e38cb4791b19ac27437ab734e38768a18c9f28ebbf13daf1b4ca3995e7b7ab95","impliedFormat":1},{"version":"ca7e6ca2c7628d57a7b60eba5e025eec2732600fc13301147d6828d5fe63e54c","impliedFormat":1},{"version":"cd21fba6480895d49bdf2ddd931a03ded8710193991f57fc3a433f926d33ed40","impliedFormat":1},{"version":"e8166bb3355248fd4048effe69b0bd285c683136ceb08bcebde4dde8e712ffaa","impliedFormat":1},{"version":"9d97c75818bde14a0c9efa7bc23aec20546c859fcb62cbb1a51ee3bee89fdb13","impliedFormat":1},{"version":"71648ac80c957fed94416cc862257724c7d93c12a6eb00cff8b32d32bc9bf202","impliedFormat":1},{"version":"cd508502b41004759813c2f5a4e8fa055fe3748dc2761cc2ce57e51fa7d3f4de","impliedFormat":1},{"version":"eb9b60ed6be03c13cdc192569fb3f5d855b9ede9ec6981aca346d7b9b3aaabbc","impliedFormat":1},{"version":"e424af220d50c30730e52f25d1297b62f75212a51795f182fcb7bb776b951e14","impliedFormat":1},{"version":"58a2ea9df9c9b1f12224848625a4a8f409f06bbd5270f6f6a7d67231248bee2f","impliedFormat":1},{"version":"64f2e9fc5d6939c7a50d984b6109e64063a0826b47f4e6e120d0f39c273be53e","impliedFormat":1},{"version":"d1b31798f63cf7ae8860d4d4d2487bef8b31debda0f2a7fad1288d8ca5ad6015","impliedFormat":1},{"version":"47b4ba5c2d1140197e2773fd28265906069b7370d1b598e60d4a63ea7d4bfba3","impliedFormat":1},{"version":"070e607b2d5f20f8fe1cc2dfdd3b6317ee566c40f2090be9478b6589a747cd39","impliedFormat":1},{"version":"b888b054070be6ba4d27ec47ea9846a967cc3d9cc5e89069596358c2917b5b94","impliedFormat":1},{"version":"c7b6a16c305228e8fd996b900f68e4443dd3ae3b147405b6839abcbfdea07f68","impliedFormat":1},{"version":"3cc14d29b418fded7397a2d620032daba854b97cecf8b3f1c452179724b75bef","impliedFormat":1},{"version":"173a3d0eef60a2bd8adc7d4c86dfe092766ae04246449a72326aa4921109c512","impliedFormat":1},{"version":"f487c42de76e540e71c6ce5ccd489c8db817099ede0b2449b433ec3eb0bbc340","impliedFormat":1},{"version":"9bd6d26f5cc73d9b617ec3090ef3a8ff32812c8aa287e6d71388dca6076bfa47","impliedFormat":1},{"version":"9037d7c677a4ee302a23038d42b4bd2787705c6eaa2d2a87d6866fb042ea3382","impliedFormat":1},{"version":"abbceb2488220c6349bffec4fce933cc863068f5a8cf142847b5150dd98d7c93","impliedFormat":1},{"version":"d555206ba1396d5805d88f024e8d2a3cf6460d106e03dda8c1338aca7a8cb6dc","impliedFormat":1},{"version":"5f45bd7856a00579a6ace756eae7b51a2149c78b86e531707b5e90b88e5a5d71","impliedFormat":1},{"version":"e74ff5e42dc02950415be64767d3a635e82d4e31e61266dacd7b8f8affad7f81","impliedFormat":1},{"version":"d7aa3d341082cf9fef2c496ee45346541252df3a3ba0354ba7a5ed457942d3db","impliedFormat":1},{"version":"24b901c997a85a4fcce7c436eaadf82a06d70512b6e32ed5d991a8c78c95bf7f","impliedFormat":1},{"version":"7f3b87a0df6e86132c708084d3ebfd609704cd370ad4bb710a893f9a23b0afc6","impliedFormat":1},{"version":"208584a939d639cf311d14e343dd71c5c02c005a50c9a1a719c0f45a679fec7e","impliedFormat":1},{"version":"47e8482cd4300100c58f555a3925f965fb7411f39fa3949d1423bed59d6d7295","impliedFormat":1},{"version":"d4d30e7d3c590372a449bf32f1a34acb5a05b77b3bc572c51d44fe642a52baf8","impliedFormat":1},{"version":"dd79d3f9231293ca26b37a95a9862c88e0c7f5f91d2eafb655bb5dd705eef34e","impliedFormat":1},{"version":"fe36180b0f167fd14e744a770f11e5e63b1ba15be65a0c6ccffe1c8a2aff0710","impliedFormat":1},{"version":"263e01f6a6a5ae57afd2ebaeddba3bfd0102c92f75bf9e0377e7df2ffcda3d6d","impliedFormat":1},{"version":"a5c28e2790487f3519df09964ea444bd1e37e1f7035a6b909338c87df6527c79","impliedFormat":1},{"version":"cee16b849d493c3c100e359efb5e7f945656d68bae6161c17497c36e39d8687a","impliedFormat":1},{"version":"05a89a4705cfac243efb3d4e77bbcd9ad1a038b63fe44b4055e42911379058e4","impliedFormat":1},{"version":"d8d6dc2b46539a90abf586da07a4a568ab48b43848a3f64b01b56b949392c687","impliedFormat":1},{"version":"bff157b21d583a023bb33dcba9f0ca9e710dfaaf2385ad36b87bc6cc0a3a5e71","impliedFormat":1},{"version":"810bf53a49a776451abea88d00621aecdce8a6dd2b0e3f2508eab1174a277763","impliedFormat":1},{"version":"9d0711ac5ef9a1e3e6ee0afbf473fccfbf3a225ccff30d4f3ca84c286b77ac61","impliedFormat":1},{"version":"2c914c4a83e68f835e7faf24d76f240b1056607c0ce9a397703ad3caa1244499","impliedFormat":1},{"version":"c9135b40ad908c9bcbd057fbcc5cac4a6b28a90375bf2fc628b6d5f1ac56887f","impliedFormat":1},{"version":"bd2087598f5413861c5358326703db1b384accbcdda7e965f56c580cdee5d1e0","impliedFormat":1},{"version":"82be000e2de747568057ffc8c1a1bf13433b717cac96cf88591b688fe13f341c","impliedFormat":1},{"version":"56fce0d7452aec12143016aab37f6e246b88d94900a7dcca549eb7469920fe71","impliedFormat":99},{"version":"731319a3d2bda6de55f7d60dff7aaf7e2051c3bc93ad8b373a84bb23e1c835bf","signature":"b43b2b63a1888f673ed645731ef28844fd73ec01f270407168d3c76e840d1a7a"},{"version":"3194fceb3d60c9e0639244f277251d0fb95f7b4bd0d387d0452c7526215c9b46","impliedFormat":1},{"version":"cf6d473b7fe9a0b8c07ce73ed46483cd8714519eab1487a8e368e882f3209321","impliedFormat":99},{"version":"0c39fde3b5eccac6230638bea8b9b40c0e304e552d06fb6b983351f1e86f7d5a","impliedFormat":1},{"version":"1c72265261202a2b9c6065a51b2d713701b7e7634a745859e0f0cb9e3f670358","impliedFormat":1},{"version":"efc8b894008e3832de3d7792a174c0d44d15c849245542df8cac201192f255f1","impliedFormat":1},{"version":"32c1487a620d129965883daf2a760cc84bacdc88a7ce2b91a02e274cbf23b9c6","impliedFormat":1},{"version":"55d9d843b158d0b045628b10660e0f186156d84c944ca64afdada7f4df5c7786","impliedFormat":1},{"version":"603b0b1a28102fa244e39e40fbad8283a5721827c0f3fc07ef308cdadae140ee","impliedFormat":1},{"version":"e7f934a755ed3f5719d4f25037f18dedd13465ba4d52881d6e2610f3b13b2320","impliedFormat":1},{"version":"b1289d41b8bbfede401d6407b48cd797b98c9e01acbb9d7c0f5c297588fd69ae","impliedFormat":1},{"version":"e064d609610798bf4aa21a3f4dbdc26ba4fbddbee59325aa9c928364d4cb9e6c","impliedFormat":1},{"version":"e0f8df60467d4837fc9c5fc18cf64c4ad3a15d9bc7820d8d8db66547980c20a2","impliedFormat":1},{"version":"32ab0d80e1c181c8771ddce5604323ae280e28df2edf457925d2864074db8cea","impliedFormat":99},{"version":"66bf5b324fe0b82ce4f92b7a40e24e3e2130e6b899f399433c27c9ceead6804d","signature":"0440f49f5c31e5d29f48f856a63633b9a23a2c060fce48a1cc5a93d3acad1d8f"},{"version":"bb9a61f67ee332384e93d240852e1b17ca991b066201c4a8062780b067d52004","impliedFormat":1},{"version":"eb2351f667c07b2d27963e518d14e0261fc0e636b2d8dddcdcb763fc11da1316","signature":"7cbf674e4895466db9a6ac53683ac0e027db0dc08839a5f4775865518e83f29e"},{"version":"10549cec7f02b271d301bed259f9050215a02b47de202004960515ac0b01f6e3","signature":"75a120604e8c27ea3e3b8a01e4276b6cd2bb1816f78d294a00f3ebb21e8a3cc0"},{"version":"54a427603f1bc87898d15d3d6ad47a8e6c7764987038bbe4a280c4c6d7d2fb83","impliedFormat":1},{"version":"2a85708686bd16134b36c11e87e7c0c605ab311978c261d83467bae119015b72","impliedFormat":1},{"version":"767a804830cd7caca51b17eec09d968cc98987b3bcea796afc8d26ac6b8472d0","impliedFormat":1},{"version":"3b3083a48b5da2997d0c366ffb2fb90be90939295b4a7996f0c1326a17be1de4","impliedFormat":1},{"version":"b2c9dd7698344dd542b66073b821d5723222893ae4658929c3f614c3be4fa821","impliedFormat":1},{"version":"749e4e4106aa9a794e777fc77e16e9f049b72fb147cde2fa127ab4fb4df11db2","impliedFormat":1},{"version":"1d74eea9d098cb69b73412a76f403a017cfeb8f53fd6fef1aaad2a0fab169cad","impliedFormat":1},{"version":"049a6e81d3176483bcd7225d1dd7224563dcb1bbe3695078598fa98674f75bf7","impliedFormat":1},{"version":"ab800a7a33e3db3a6487e230dbc8a9c77c9e50599a09ea5a0099699de8f912e7","impliedFormat":1},{"version":"b7f5b244ed1443c8bad5e3b66abea6b43a207548d1c08004e64e5a9a229dc870","impliedFormat":1},{"version":"d4082b416d98c0d4b80408d70226f8561a6f534339f88ecbce2915a32512cedf","impliedFormat":1},{"version":"766fd010dd03337f5d8925f361d2a956861918b6758023f234652597a4ff79f6","impliedFormat":99},{"version":"b264e36b2a73d01f29094d43c5637c840555be91b9616ff339f0e50c119dd389","impliedFormat":1},{"version":"9ffae368c5c92cbf5d4ce77a5fd8fe2d727928bf64b9f5e007d96a9eda0a47e7","impliedFormat":1},{"version":"6b28766609ae7dbb0a515f7de95235357b17321706c5495e8d607356420ae9d6","impliedFormat":1},{"version":"80353f5bf2b5377e02d8d3d078fbe1a0cd372ec78e266d1d2755c54b06b17f67","impliedFormat":99},{"version":"e450f97fae5ea27ee333a06306a456045918c5ed2bc41aaba3f864d80241cdfa","signature":"89d6d9b2b87dab5af89b595e3eeb1f2dfefa452378754b1dd2195268b56224ce"},{"version":"53036e2516fac6408dd818cef9c013c5aabc4cccd7afc44fc08dd9d45e6f23ab","signature":"22deb53d422da7bd2382609404902e4e1096a31aca60e3f35d7502915df36d50"},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"003cb1972f44e71bf790baf3d443a838a04313a1b1ec0ce24def82d1e4221ef3","signature":"e4f5dd170c61672981f6d2d781c7a19a56f4235ac0807515b9d76e4b33cfc57d"},{"version":"1280cdf878eed6be4e9ba8a824953f73515ac1915cb096e8da82df7e9f6a6ca0","signature":"e5c86af9b14b5d8ff1a5ceec6abb4068240fd9e7c17053a0252a5c3cda53b346"},{"version":"2b4df9d4a7a085e0cb87c84d18c33b35c2f017ad9e2d1bf4f0a579e0acbeb6a5","signature":"48dc58118cbd61f262e2fcc85957a6f8fd8f6ee07026d46ddb7a13cb5731671f"},{"version":"169dd13a3fee91c32db0cf463f46ed1024ae5a55379fa17f7df086bfd9f2e8ce","signature":"84a9427e7a36da7a20aa6c8cdad3012849d08f2c22761e28fa2e109ea015d73e"},{"version":"d7d6953dce5557e0fe30fd91d71805c0c6e5076f6947f17b567cf17019913047","signature":"46a833e1ce032b4845d49c3e7b1ca641d05b1e202970ec365866c1224792a1f4"},{"version":"b12bc87099eac6cbc96b0f3635340885fb5ac3dbf53f2c18158d4496ffc4cc84","signature":"6756dc80ec5b4ea34b06a13e0e2ff47ca8f699c7e8087d4760a2bd697da6e420"},{"version":"51a67e783c0c43c09c57a147f87d7568a6d301680608904a1a2f9b2d03891112","signature":"8dccd697e2f3a50198d0ecb8a93ab9a63a9b0d17d2db49991ce80b1c02ec7303"},{"version":"70cb71c77efe796a078fc30f92fcc1f185edc65875f5445c487864fddd5475a9","signature":"e3a4e4c95410ef74a58e109437e3fbee7d903063b32c5c0ef2a2db632a24efee"},{"version":"1117b2f58f096a2488d3472a44a0420fedd945b5183c229a44ecd9887954006a","signature":"0d45bc740b82612244852f1b02df8eda90d5df5382713c6850869e0098bbd819"},{"version":"ca0d91f7e4ee3e1d708c2063fa23270a090c7cb089cf0bbc3fa545308396b48d","signature":"8f532a55cc4ee549296da5c3553553aa5d261177bcb4f4c7086ffbbfafae643f"},{"version":"f071ddb8bcb1ed96b83cdb773b8e87c8c38786bf4ebe56f3f09386e48c938d19","signature":"6884b1e18dbe568cf81ce0e25c8c10df16a17fcbf6c8fb4384ff58e5e3998885"},{"version":"aaa49aa7b9faae50678d1904d0cd0565d47782d296b609a313c1aaed951e8f9b","signature":"af68a309c3bfd11b71b0ddb18e056f950c9f87637cac1ecab3eae200d509a2f4"},{"version":"493e9f302cbc8ac66d058bd0fb9b4f0e9c39aa65b11aa74ff51c7ee327e362ac","signature":"81971a173809da2c81f96515de329c0beb4e3027b225b3106f4580f75df0e429"},{"version":"b1f394ea7fc98582d66d3e863945e57c4bbabdcb511b588cc94542ac96127841","signature":"3799a9261ba006f6ec90165f19a5318f184ed72199badc7faa9683815407c06c"},{"version":"cd6fc6fadf6eee1bc1af09fd7335cbb72c0f40f401b55db488bce360bb1d20e3","signature":"6ae476037457c520b5b7ac3e6903e1966205c7dfea29847c9dafcb8f56e71d46"},{"version":"4860b6ad372b2e5146daab72c51c205f3982be2f1a576a40da652df7ba5deeef","signature":"06711bfe65b14b62911ebd752f2bda431033f550c12b63df43a3f1b37e384207"},{"version":"94a92e6b6ce255addd92eb9188dee47739b2577b979bff67a1c4a5de4f9b8d3c","signature":"893041bf8e8132591addb42b0c43029a12ac3087dc448c0a18d14b4f3b51eeba"},{"version":"66025a0eecb09438febca2db9b75c8e9199eccc865ea05635e59378d44f29e8c","signature":"cb7c9317cb008cac5c3f780879082dfe118bf06bd859f80e7e6f3594f5021bf6"},{"version":"de62862f58564ece6a8b97ef126aea028264069a8f875c7461d440a169fde8a8","signature":"b12249bf40dad0e0e6dea2a35b7ab1e4cc6423ae21b93b83f137f9e3f55e6ad3"},{"version":"4cc41cfb033baec0602aa82850f88b4f121fb510c790502bc2d6768ccfa4e517","signature":"2d9b71a5b13b4f89360ab3bc0706ddd563a484437d6693c563bd7a338efe13c9"},{"version":"ecf1fed33e55495aa1bd5d161b96758f6d67246896597abdcb91128500d047db","signature":"67fc3de45cb5db494eeeb688693c2c467cc2cf01997dbbe7040dc11f770360f4"},{"version":"966ec0ef95f4b3335db6bc0357de8154cd9a6d8335cefef5614f5a7a1bc1cf37","signature":"5f3e899aa2d3f5e09cd13b7a3696a0a573d36fd2cc9c18e11689bf982aa32bad"},{"version":"5bdc6f406769426dce7b684cb4ce10f900abe5ea39b1e8f6ee0b53c3f7ca8880","signature":"0a9a594b0fd4ddec34e5c5bb3b7bf2573156f4c1bd6c48596fe234b0987c7eaa"},{"version":"2affc6c81dd99e571eb76ed74711d5900dec7e47d02fe3aed3d9309e82cad3a7","signature":"53137351ab8b456338c24829114efbc68a2dcc43f15198d2a1a0b7541bdb7d69"},{"version":"e1586c31efedc7f85c9d4b28e4d579eb2e868486e5d2f6ff207353b7e978dda6","signature":"172d9ec315edaf085f41e24fcde6881510e90df561bbea5bf97600f0ea5b5b1c"},{"version":"6c9dbf068ff87925ca7b6da74d2db7a057d2ef51a1f008b6e9a18f0bc71306e3","signature":"21d6966ef9639c56ac00d42b8be725a6bcac579b873da603963d8854091ec155"},{"version":"1710cb21c5548491b3b6edbafdb1c539b9cd2ad737884512337c3fdd52d63850","signature":"5f5da7b328898454b9a05ae0d0d4952a1f09f79c90de90bebab83987b5d70c11"},{"version":"22dc6a9a6408d5cdb0dcefdc48a7729d940b2658ceb0e3a85f092e464da0d4ce","signature":"116698332fe902cb9ae5e8731e8650c81a126df30a751e7e1942a646312064a6"},{"version":"10b751315e6ce75c60656c3ea685a8b96559b9e685da24c3e36ca4bd818a9931","signature":"c228d0838a5f9baec3e77d02244c05367d30b1dfc1c11d64c147bb67c4d304e8"},{"version":"00838788415333afcad252b68a66a5a18a024467090683a694372307ff73f027","signature":"2be1928847000d1518c148a4dd09523f12e8f44e6963f5a7328ff47d2392c35a"},{"version":"f09e290710accba92b24ad93624571e73b6c98e712103cbb5bfa00c0d92db940","signature":"3f6bad04f7b67eca5932fe772036a17800d6eb29b6ee3a55f57a7e93c91aed75"},{"version":"7106fea4f455036e661e400bccfa87c9386ce373acc4fb1fb96e7138f06b5ae0","signature":"dd7e1a19b54007686b053943812f437a520ceddc66fb3abd3db9c1ca19e8f715"},{"version":"b223749cd4a25dfa5412b923a00e4d4393d338c63bb17ae730c7cf90c25e8e2c","signature":"bbb1345f0c854005a4e21cdb19eccb6ab307e7cd07c8482545f556a101bd657b"},{"version":"f944d98c45abb8124ce26d323d8e26a66c2638d4ae227fdc5f15af3917ed4172","signature":"8a0079b5e95c6f8a9a17aca38b0974ea4d174af5cf1a1430c2f51fbc755d1b6e"},{"version":"b3b0cd049732b2a204fef11f37497a9bf8354a582c4edd15d8359b9ab91104f0","signature":"dc9373bc70b78bff264dda19e15a252cb4922bc6ae86e6f661ee33c04746d84c"},{"version":"9798beba4a9c6167a41495e20aefdfc38a93f13aac029d59918e2f830830f24b","signature":"763c9e3f1d5c066475a8c76ff2a1fe8d8f04c12b0abb02415189bb140504db3c"},{"version":"06c4d326b09521e6ef3c1b287fc5db471f5e58735f4a15e9498fd1e5aae04f0e","signature":"7cfb14bc09daa7141d51fe39acea6aeb0f2f368d8704b63512f6df750fff394b"},{"version":"07eb4c5b91c9a1e72568ccbd62676955b06f564b6cb3e097ad637b095c13bc89","signature":"917fd6202c896b6d212549d496ab4cf478ecdb0da34a4822b43bcd0899d7dbc1"},{"version":"e7f58617362cd3a2404e72149777365dec00ac30b3202d8e9b69412e8343332f","signature":"3817cc1b4badf902ecfc956744e1624fc0dbaadddc427b3677c55dd15ffec81f"},{"version":"6be5a9a32a6ce357000898f6433bf0f8442374f4051e0b7c4f02bb08d54aca08","signature":"7e8cf9bc65feb8602a216f6a0024b212fe087e819cf618523964a87bc44222fe"},{"version":"0cbaf6f23429120473aa04e2c6ae48a4d36252e3a442b20f1a54f2c7c11ce323","signature":"650c466df9275c0437d29be320bda81681285727a15f22b46c5894929ffefbe8"},{"version":"d46d18645cbdb69a38be36a323bbf444ec5bb8d4f605a32b56ccb79649ccadfe","signature":"0724785a999d8cc328897f7dd7e956d2fa686f4d77fdfc46f605f5f7ccf8b5b1"},{"version":"79ef18ed2f1bc600ad40f6f0587d5b6527071d0d2f92b48b37f75de2127abee3","signature":"380684155853c5765d7ca41e7ba92b6050dffbd99471436d5ce0ad4d55e4a7eb"},{"version":"c350fff30c03cd4c4d461b37e38a7dad15ca32c725322859be29c6baafcb7933","signature":"a8779fbea77b460a12cb3b12081233ce36d3df96f1adad636e6a4c98b1b34664"},{"version":"ab5e8dfe664d04a052f6aa98b5b17387592f9764a9746cabb2a3cfa1c9b97988","signature":"fa1d9e44d468c92edbebea99054c035f637dfd07235db5095967141f893a712e"},{"version":"0e186287a034df88938e9d4aecbca4efff90e397cc449ffe461047426ee140fc","signature":"155456d2f401de6e9306a76298ca3779ef70097a9000fde4218d0e48edf82b9d"},{"version":"dc0e6d515dd35f5a6b6a146e86335f785adcf89f53c772111d697f4312685b9b","signature":"64fb0c3ca4760a3a4208f174f475ca026d660d4818d5ef5f1e1db26c40bf9d8f"},{"version":"0aa60395f58326deee6a2462617ca56292aa5eae06d0bd1772802f317dee397a","signature":"41b3d51bf751a76fd89d98b22910d4ae6315f6dec1e4266da48ceeab86f41ed2"},{"version":"1448a1379ffa310c8ce137193556be955af2d4203d3c1bab814e5e4c6d32e4f5","signature":"45fbae76529a354e221bd4f26f57343023245af63dc9865b9a2289d98ecfda80"},{"version":"40a1d0e4b9d2145011055aabb3f65f0646cd2de3c69f4835bfb80b58589adcd5","signature":"b79275b8f164e9a67b254fe348a6a5d55e818177d45255e767d84e6605d0627f"},{"version":"3d392428f01fe085c2980621f79f5557c27bd1b2e65e34df609749b482690f77","signature":"19960caa971b70e5f99432b598be2b47d18e3a1c2a1e6cea093fd4fb6dc7a94a"},{"version":"1f54f3b777e3de86816f36f2f893736c9ccd8f767ddd025c858b344a325c5890","signature":"6ef61acd32fbfe861e1f8515f1420f3960b1c42861f4e2610e69067920168dd8"},{"version":"1dd6fbb9a5b025a117fe2f386cc581e07aaea1eb787483bcb84cd0128918716c","signature":"11991240745d5a35bb3601931f9d50ad193ee4210bd2bb77d4b194c6d12f8fa7"},{"version":"a2a1bb7432ab9dc4f023851ce0cd44e94ded7ce9d66b803f243996ce1fd9bdb6","signature":"d1dd712053d552ce0d93d6a9f0c22f3c43b3e093632a66bdc1cfe4e95322fbbc"},{"version":"e234589b3b165c6e13d1547ef84c2d91adaa9becfe15e1d7177e35a43b10b778","signature":"7309854f71391a9a77fda795900d0b50e166a688d466df99015c526ed6e44d35"},{"version":"c314f832c0a25545584b0f725ff64644c3096521f9bff42d336591aee0aa2020","signature":"00f3ea9ea5b96cd096807e844efb7702effa8e4e75e7c124671ac96019398122"},{"version":"c11da68bbac5bbef3811a196e507b32853ca36fa4b9e1aa0f3101c09ce08bfd4","signature":"d80a2decb6a3998ea644d5b702a37b74f0c34e2a7982bcd93e0f00547d2a2811"},{"version":"b13de6f9262dedc717518f564fda8bff23d15e72ffa2f9dddb60bc8d76276b0c","signature":"5c24a24ed4d0b8b66b632c52ab051dc5a45a3b6b875f4dcab5a6d80489f67312"},{"version":"7ea59043e47b56ad3b6a4f9b2247e75cb638dca02a8ca67753e8b04bc3888353","signature":"8813b0ffd625ad2c0a059569715b1755cbc030de98ce683a78290b1ab4b3bc26"},{"version":"756eb3854412e6ee00e3d9c6d0f81782512f1357f36f001d7cd7eeec566da3b7","signature":"b77c3082ffe9940b46959f6bc1f97c66a9956d1e29b1a897700b1e30199551e3"},{"version":"ce83e4bcf43236124284c0f0239353c39600f823a4fc5c9084872baadaeae2c3","signature":"8f51223a77c814a8de1c79b3ede869848e552445486b37b2bc54a3cd71cbd24f"},{"version":"40f9fcd4b495b6459ff29bbd12dc171fb4d5680ce1de742b1d085b69e06dd451","signature":"1943871e4378061b86266cba4470cdfbc823270262d9068f65bf32e1fa453aeb"},{"version":"f1e887349ea2e4e73ca9742707972ff472e75b91b5bf2b7c0f222d7e24f79f3c","signature":"29f3fd04f720e6fbf124dbbb14629e1075a74315fdf8aa920d2ba77b309f4125"},{"version":"54d63a633088d175f9f3371ab10276aefd43b1f32833bf1962c2ed1859e8156a","signature":"5bf8d173f9a9f77d0f6ce77ad3faa2939fb57797df3fbfc15c0126315715bb25"},{"version":"afa396df31d6f2b9b860ac41f863703e6e6c0093b61f852fd55817dfe9f30022","signature":"185a2450fa0316163ceca6bd16ab723776428b1f5596c10d83381656bca3e9fa"},{"version":"dec27de74f666b389ff6938aeb8d62dff0cdd8ea87274945521e84c10844aef0","signature":"9456f1ff5e2a45679a1c3f1e804050a98ed4cbbea7a2c581fe42fb51fcaeddcb"},{"version":"7c9e363f5bdde5cfcc6dd44a4162d2074afa780e74ea51c218503068e4cc33d4","signature":"56288aa782807a47b7b48a37786382b15cbeee8fb86fe40dd15e69b8ab3cbfa5"},{"version":"3af7307412e5a5a62dd839bbd281df57b2ac5b9f849a73627e157f3d66f37898","signature":"0fa37c4a467e9328e322bc55019801a0ed0a198082fc9100c26ce989db5f9981"},{"version":"232da4c2fa4f7e2904775824eeb0ef1e3a593f05704769e3e1bbfc8aeec7afe3","signature":"6ecd77e286d4301444bf0b3570defdea0af6091213703965bc975d97dfd777d6"},{"version":"f8f5cd2af24348b5ca940e0f08fde78a49f35437f1ce001b40c6723a6f650988","signature":"6cec96f71367f2c482b227e4e9c8623aa570b4d633c1a50f86f54b5c80d253b5"},{"version":"82dfe66ad32fc2a67079d64973698e003920c3c97cd4c968a59ab3adb1fa12f2","signature":"6702ad0d52cadeee41c52f35f2c6c24d0145ea22f779b47a28d4d289ac4654be"},{"version":"94524f88aba47363d757fdf6d5a4aa928d101d6ec9b5964fa76f02637c7f9ada","signature":"2a28c7499e8dfb839b0d8581d615e6d504c4bedef1682584e4fd21e5b6baa487"},{"version":"f3346880098db0f5776940b2d1cf7ce0e537cf3179f09473f10fdbe9ff41ceb2","signature":"d84a60cb5e1b7c30e70b42bf20cef5ba053ba58e363021c8fce25bb211f204e5"},{"version":"e83a46bc441ec90c6f1e42add126e57711c3713d9dae3bbd414de1893e073503","signature":"c90cc394bd1af5659943fe58e4901cfb0a527683301c9359e8692f89f536568a"},{"version":"214af7eb6e243c6c58cb9d0a8314ef2cd136cae315d87f8f7e264918deed9907","signature":"d957d87cf2d4bdb51a045c5357b51c881dde064207ede0eee6c1168d449a7644"},{"version":"f7e95123317c00fc1e237a2ff9867db8949c6ba1b3391fe1dd188b810ef7c84c","signature":"10329f7bda537727bd607a3ea738264742d5a053084e14ab74d3f81e689d99e2"},{"version":"6e06f9567e134d38162bf2de8e1e6d05bcbe4f5ffafefef0bd83960d5ad66a5d","signature":"5fce68179f94be9d39b667421743722872e44f12cae803caad32a1e0c3dbb139"},{"version":"5a57887c75309eba12bda1beedeffb126260853128535df13b9b19bcd96c0155","signature":"5a6c8ce89c751fd1259e9325fbde9cbd38ffcf4e065504d6067b5f55e95403e7"},{"version":"3bcb0d087dcc93c26d11347927d653b5aaaa14148835e132fe8be6223d8f8c34","signature":"fe5521d91e73f10d5047503025e15b65b24b38e04b3456ec2017b364e99e8475"},{"version":"959efa70f5e7459b303bdf482ec127c294e84d8a913bc2ce6a4dc78219f3e17c","signature":"ea021da7927448c5cb19a9e2b003f18668d4a9077658899132b83371dee88763"},{"version":"b5f36c1ea14e38a8b9c92d670dbcda97818db73f0b500f539ae54dff803438ad","signature":"2d5a3e54c739dcf918d0e4490f08564b9d412fbb6a6dd268bdc115aafefa31cc"},{"version":"21c58be9c8134510ca00b62a63800bb9872bd643ce98433f2b64f2b1b9a0187d","signature":"6c06df2919c352df62337400bbe2c83dc785d86f5be1e2d2e25df4475420ff6e"},{"version":"935babfa098710162b07b6162a78c7b7d810e7d1d2035a17dee29e6c47ed1b08","signature":"a44053cfc285d19957f9a1ddb5e2bf34e25651959f4c811a9674bb9820eec472"},{"version":"1842eb2121e8481e3b29a2586044880213cf0c518f112e31f206ef679ba0fca2","signature":"5a786bac8e7bf7491ce5f98566bf35a7134e2c2b4cbc24da498f5afb224df0de"},{"version":"ea628fcb3131efc3de7fa3ce191533f139c53a22336ef04630f09e61d13cbb92","signature":"bdf2e96da25e433244eae4cc2964d82710a21523be318db1d14036413365eb0c"},{"version":"0f773bab814f8d7087d6d4a569d867dc6ccf668fe3cd23a63a0c2e15ee0e8c56","signature":"aa006b67fa314a270ea78897f5d3cb908506f17077af7fb1d544effdb5547285"},{"version":"d8d8a09b87b45df05bf811f61ddd51bf16226f20d0a1ac7d4549d7987e9931cf","signature":"187e67b49b61448a7a1e521f1435120d10af6bd154730938080aa0c824ce0948"},{"version":"19059329f16fa2f1686fc6abfe5bec35046ad5a7b832495c1245e2e216d21183","signature":"fd8dfac75eceb563f2d7281514947557f445006631eba1f0bb3cd040ab01ece5"},{"version":"d58c99cded737ea03eb03d6c61b8ab73f8b473e0806a71d823c1c2937b36f442","signature":"1c873545ea62f1e7b5293c90d389adf3bb5a53b51683ab8fa47489d3a6b494d6"},{"version":"c25d1d3945bd4621fa5d60aff0477c6a06432952a8b4e5db1ead8a916b053942","signature":"a779dd73e6430962783050a4a43410dbdf13048926c132b9de33e774e79db5cc"},{"version":"3e552beef4179e44750bbc1bb5569a132580e2d2283c4b106d68c1ea6694b010","signature":"4987a8b5cf0da4dd0d66d7a3db6e5e09173bf030538f5503ab40230c0b2c33c7"},{"version":"ef7cc1e5c22fb9e078581208b0dda8e929586882ba59c97b6544a47bdc1979e9","signature":"e4cbd9533fb720a6b719ba8a9dd9eaf935da177dc8380587fecbd8bfa6551dbd"},{"version":"dbe59de695eb0ade482c0834d11cb885d9c8f2e3116f45e07c529a817feb637a","signature":"55ed12aaa45c34b8cb347083e69df1503a5af369b186118fdcdc18c57773eeaf"},{"version":"7c541a71d7cf8b8c1aa718dbf5816ef347ecb8aee0a21b366e0ae542ee06d06b","signature":"a0006b1ffbd1e0766544c1b3136d7df0e17fc43c4dcc76ea98a4edde784d466f"},{"version":"d31b7c93b5ea50b761523ccbe0e87908385ee7d3dbd72c8a09fbe9053c458f98","signature":"9f2ae452b5b2519240cf86709242c63626605a59b82302577f3f0f33ec74bf45"},{"version":"5f2bc3585dccaaf450327fe7dd8aab6eb00c941bcdea550cde21c68de11f2d1c","signature":"94de5d14f6d110d5cbbf883c1b171cdc9fd368027bd92f629168caae8605e27b"},{"version":"41011fe38b16f186286bc7aa9d0dde8b8146400f36119446bb11f803f30f5bdc","impliedFormat":1},{"version":"3aa09ad5afb392cb657c04b9a95449711d5128ced84e40dd81311cd75910da44","impliedFormat":1},{"version":"551c4114ff981a7b638aad56c4323a7de0e9ee4b90b185d9bf0ddf0d935b306d","impliedFormat":1},{"version":"8d56dfb278d9de4cddbc90bbc6fa7dfd58396244e881bd796d2e8b3a13052d3c","impliedFormat":1},{"version":"cba61e9d9f2ad00723eea35b20c70f6088f3c4a31f78bd02afe97c52e6e255ec","impliedFormat":1},{"version":"5c8052e06dd1ca3993bed0acdfcc72328c469583ea6b1ba249d06706113af31e","impliedFormat":1},{"version":"e338ffd5bb361ed60b45249580b332fcbaf020a8c9d1bcfd318870625ea21f1d","impliedFormat":1},{"version":"80ececabf7a1b5a148b942cf1fadd8162740b3d780caead312c6692318e62a2a","impliedFormat":1},{"version":"57957d2097e0f2c7429a7146f97e9189f76118ac97761c7f3db5d4424bde9f85","impliedFormat":1},{"version":"9b68a7ce7c879478a7c430aa05039a837f49b02e12b62dd55d5a02c77d25f4ee","impliedFormat":1},{"version":"b2d659a65c343501101f36bfc20911d7e5da3ed0cad583a5a439282561c691d3","impliedFormat":1},{"version":"99bb2a53f63ba4a20831fb57ad5a17eca24d47125529b07891ee432b52bf467c","impliedFormat":1},{"version":"afea423fe586ed84600062baed707980ba999fb7205e4b68633430c61740bb5c","impliedFormat":1},{"version":"425efe620625667a211ca64dff34833cb8de6660bd9e9a76be05a3d39800181a","impliedFormat":1},{"version":"302cbd2561fd755192ffdbecb5d7a5613a7243fc2b75ae69733195996f3f7b6c","impliedFormat":1},{"version":"22886dcd82e927b4312f572f12fbd59f118410f109e65c542a45c75927504d42","impliedFormat":1},{"version":"be269c41a59691f84ac96c9499fed93542054b2b49b3e9cb86632e74fed54a96","impliedFormat":1},{"version":"3071c78b11b23bed6024c7075641b782694d9187c6c675d5a4eb0ecd2f18b6e3","impliedFormat":1},{"version":"81ef095aef28edf3e2ba1ae027fa9995580ac97d80dcb28fd775258110f7bf34","impliedFormat":1},{"version":"5e4787a48cfad299d5029a49d4c6de78dfa56b570651093c2f279f58af199d68","impliedFormat":99},{"version":"8f45fda75c1bfa9afe5032907bd5f1a9280da5bfc433fcb480a4ab3836c71518","signature":"ce988ab07491216351fdc6423c10b70207770193231886520207ab674dcaf59a"},{"version":"f7ccea78fa368d2bcef88331aeaa05808993d01ad309b1d0a7f8a3b11073d122","signature":"340f6fd2ef79f0b1496bbcd199a00048cb6a2a5dbd7818b3a1f413a907906ecb"},{"version":"23885854ef2cb6bb018d47f6dc812944c8f6af04f48eb57bf961bd7da2adaae4","signature":"cfb30ec04e9bc57022dd4dd342d15953fb2a5e0cf9beae44da30c22a8163436a"},{"version":"b0b15afb14572fde8ecab26c1386fa169ff85488a1c7e945804af8ff448da873","signature":"dd0e65cf1fc3bb9b962bd2402a64c793851399edb5198acc3f0a82c91acbfcc1"},{"version":"d463b54c0d33d9fea6f3df43e80d8f427c0148039b8bbdd70b0352b221b15fc6","signature":"e171301355dc30b59b06f8a0b4a754fe60eb73995293d67ec063cdcfb03b150d"},{"version":"5ea15d75281772b51603281edc39ca5e028fe988f6087a564c9df083d5d80ab0","signature":"02a2ca62196c30463ad83578e24604ddd6eb49c1ec0e5fdd564f10842511c526"},{"version":"28efe0737ecc8d7ba98d2300863860e7826ea21680d71481b100a9e1648959ab","signature":"5081e87a626f27261e8f66375e290dcce268c5ad8fde5ae31ed4fdf29e7f88cf"},{"version":"03625d79f0f8f17182737506d3e1392bf1f1004b775f8bbc93af653e53b375ef","signature":"e0188a73333e82a43a2a81a4545e57776d56e94ff79b8fe99cebc787a335615f"},{"version":"540c5fede1d73c250b77a08b98a7880560b8ae66b3588f8f41c2fa4ed711653b","signature":"560c0927eb98e282cebbc45973287daed5c8a33077a0fb33f84fa50aae11ea25"},{"version":"63fd8b8059c3377e5c5b9ec28ee2513d92fe52c4202ee8814268a8296880cb8b","signature":"5fc568abdd95c5e16cf46055bf8d0ff913ed34718b3de9f2bede16e610a0b523"},{"version":"5f44b55ef79f85e4f4d34676e1d17962cd5c76308e94cf9ead6e059f6ef1c248","signature":"8a13b82397ac47f014e1942d5aa777d28b4ceb0f23172fa039711229828b480f"},{"version":"9b725df6d55ccb7686e8174e437fb1b7a24bd8af01940ee52879ebedb06e3e32","signature":"8f1675d9df1d489a1d59c9f2c3de30a9715103261e6b347460890cd89b0fbbe2"},{"version":"de77beecbc24167bf08f87ec765221704bb03d7a39b23eedf1ecadb01968057d","signature":"d771bc1f1c04d7fd98f8f9ae0d4f0ffd1c8d176213907973b48180880de4cbdd"},{"version":"fac6807ac2fa2fa1d07eca5b9e81296c2477802eb745aba755ecd4ab7803fa26","signature":"f39eb9db401b1fdcd1784bcdd9050e89de8bad46df94ba64c0e9d093951ed769"},{"version":"4bed47973995b70b09082ed768742e72f1b1fd638db6ac3b730022eeef9aac7e","signature":"4334661ec2f4e59663a0f9726d0c4a19258d49b7f4cc71aa4d25d9924f5bb17f"},{"version":"e4ea132be6df53906c41985e14429ac9dd4233c10d03bfaf8d66022fa1d6614c","signature":"685206f5fcc13ba2cd92fe598618325e75bbb7f9859ae111375605cb47b26902"},{"version":"57106c06a4491233a1109534f77ffa5a52be5372df9726f862c9fd7ecb04b7d6","signature":"f778b46c56191227bd45099d6a0458afa6170ba7157560cbc07f7a1dc518e3ea"},{"version":"530917811be703daf67c2232a42f54f8aa97172c85e7ab39b0e2f2dbffa181a7","signature":"916336298bd5bf339a63cbafcf025131bcfe13163f5e0b59bc5c9409ded37591"},{"version":"6ffbffd6c13f1a7fd1252b462898a85350ff3048aa8961a492314ee970502152","signature":"c447cabacc9818fb6084c1c8df633edfc00ea07425fde407be8751a23ebbf72a"},{"version":"b50265e36471aca69b35a75e01d0a92e47e74c953a93f0c340da36f241cf573e","signature":"f230ec54895bf25e7620f20c61b7a04502ee4c918fc3508a678d83dddf58e703"},{"version":"1585f41a2783b304d1c74ccfaafc7f95b4f84e06597d85d4cf856d5650999069","signature":"98bac9d5b11527aec7aea343f786cabdd9217bb07f2919f9b9819d45576007d3"},{"version":"b7ad805e4ec53742109151f3293cdc1f4d1f08c308b096dd539d402ae411a375","signature":"2c7e20ebbc0281eab0229895e899e6adbfa33f264497fc91ed51e7fdfbcd476f"},{"version":"461b87615452f128600535bf8b43825cd680d9fecbd0de037d2e79fd8b22f49e","signature":"0878b5b5390eced830a5ed23a2bb908ec1e338695c68353b5ae3eb55cfb3b42c"},{"version":"80e970b95ab3d4782f4c54de1f79e728ac5d3eb8c2eae8f08b925d39a008aa7e","signature":"300d8773b1a65854403791e8841244631ae5d0baedd176169501d59060a8e886"},{"version":"5817df9b41a701286e9801ffe59afa87eb95664e16be1c664113ece2603dbb1b","signature":"4f52846334bf6abeb3c73f950277579aa73e85a2c855a6c233dd1f48e01aea1f"},{"version":"b699b33a49cb16a66c28ea4fabf600c368017ff4b6e74c88b9ed32e6e637bf56","signature":"bd85967e91eec4d5f08340309e3f66794b100cefda9870bea8e30ac39c52e84e"},{"version":"2a2a50b9e5f388c6402ef772ba10a67fe9243634ce6e93d0f864a9c52924eed6","signature":"1f6588c841b7ab869b0921d732dbf13304ea808eb37d3c984174ad96fe0b7d92"},{"version":"e7c2f40dc99121500ad108a4f86541d29cac105ed018f994c7c5a2836e77b257","impliedFormat":1},{"version":"90e930283286ab117ab89f00589cf89ab5e9992bc57e79f303b36ee14649bdd9","impliedFormat":1},{"version":"6d48a6c907c668a6d6eda66acec4242e367c983e073100e35c1e234c424ad1a4","impliedFormat":1},{"version":"68a0e898d6c39160f1326ef922508914498c7a2d0b5a0d9222b7928d343214eb","impliedFormat":1},{"version":"69d96a8522b301a9e923ac4e42dd37fc942763740b183dffa3d51aca87f978d5","impliedFormat":1},{"version":"ff2fadad64868f1542a69edeadf5c5519e9c89e33bec267605298f8d172417c7","impliedFormat":1},{"version":"2866ae69517d6605a28d0c8d5dff4f15a0b876eeb8e5a1cbc51631d9c6793d3f","impliedFormat":1},{"version":"f8c4434aa8cbd4ede2a75cbc5532b6a12c9cac67c3095ed907e54f3f89d2e628","impliedFormat":1},{"version":"0b8adc0ae60a47acf65575952eee568b3d497f9975e3162f408052a99e65f488","impliedFormat":1},{"version":"ede9879d22f7ce68a8c99e455acab32fc45091c6eed9625549742b03e1f1ac1a","impliedFormat":1},{"version":"0e8c007c6e404da951c3d98a489ac0a3e9b6567648b997c03445ac69d7938c1c","impliedFormat":1},{"version":"f2a4866bed198a7c804b58ee39efe74c66ecdcf2dfebef0b9895d534a50790c4","impliedFormat":1},{"version":"ad72538d0c5e417ee6621e1b54691c274bcacaa1807c9895c5fa6d40b45fb631","impliedFormat":1},{"version":"4f851c59f3112702f6178e76204f839e3156daa98b5b7d7e3fc407a6c5764118","impliedFormat":1},{"version":"57511f723968d2f41dd2d55b9fbc5d0f3107af4e4227db0fb357c904bd34e690","impliedFormat":1},{"version":"9585df69c074d82dda33eadd6e5dccd164659f59b09bd5a0d25874770cf6042d","impliedFormat":1},{"version":"f6f6ce3e3718c2e7592e09d91c43b44318d47bca8ee353426252c694127f2dcb","impliedFormat":1},{"version":"4f70076586b8e194ef3d1b9679d626a9a61d449ba7e91dfc73cbe3904b538aa0","impliedFormat":1},{"version":"6d5838c172ff503ef37765b86019b80e3abe370105b2e1c4510d6098b0e84414","impliedFormat":1},{"version":"1876dac2baa902e2b7ebed5e03b95f338192dc03a6e4b0731733d675ba4048f3","impliedFormat":1},{"version":"8086407dd2a53ce700125037abf419bddcce43c14b3cf5ea3ac1ebded5cad011","impliedFormat":1},{"version":"c2501eb4c4e05c2d4de551a4bace9c28d06a0d89b228443f69eb3d7f9049fbd6","impliedFormat":1},{"version":"1829f790849d54ea3d736c61fdefd3237bede9c5784f4c15dfdafb7e0a9b8f63","impliedFormat":1},{"version":"5392feeda1bf0a1cc755f7339ea486b7a4d0d019774da8057ddc85347359ed63","impliedFormat":1},{"version":"c998117afca3af8432598c7e8d530d8376d0ca4871a34137db8caa1e94d94818","impliedFormat":1},{"version":"4e465f7e9a161a5a5248a18af79dbfbf06e8e1255bfdc8f63ab15475a2ba48bd","impliedFormat":1},{"version":"e0353c5070349846fe9835d782a8ce338d6d4172c603d14a6b364d6354957a4e","impliedFormat":1},{"version":"323133630008263f857a6d8350e36fb7f6e8d221ec0a425b075c20290570c020","impliedFormat":1},{"version":"c04e691d64b97e264ca4d000c287a53f2a75527556962cdbe3e8e2b301dac906","impliedFormat":1},{"version":"3733dba5107de9152f98da9bcb21bf6c91ac385f3b22f30ed08d0dc5e74c966f","impliedFormat":1},{"version":"d3ec922ddd9677696ee0552f10e95c4e59f85bb8c93fd76cd41b2dd93988ff39","impliedFormat":1},{"version":"0492c0d35e05c0fdd638980e02f3a7cdec18b311959fc730d85ed7e1d4ff38a7","impliedFormat":1},{"version":"c7122ba860d3497fa04a112d424ee88b50c482360042972bcf0917c5b82f4484","impliedFormat":1},{"version":"838f52090a0d39dce3c42e0ccb0db8db250c712c1fa2cd36799910c8f8a7f7bf","impliedFormat":1},{"version":"116ec624095373939de9edb03619916226f5e5b6e93cd761c4bda4efecb104fc","impliedFormat":1},{"version":"8e6b8259bfd8c8c3d6ed79349b7f2f69476d255aede2cd6c0acb0869ad8c6fdd","impliedFormat":1},{"version":"8f317041acf44e86dc49a1783e3b5e2a2e082a26fc7980be268a05dd458cc123","signature":"c0fc0e806380641b7186ed9a09af0e7c86e4948d72183a4af74aa9073384f24e"},{"version":"c8478e644fe4cd21614067461634c639fad88c0e0e42e3f0c2c9704c3f55fed2","signature":"1dddbf843cd484cb66ea2a5bdf49aa98e62102d9003f6ff4a255aff0a67f01ba"},{"version":"608cb6b72284bc5e836e998db2d4a0a0d60c05980db1849fc19c2b779c1cdc2b","signature":"82b2b4b6d146ed51567d380ac5cedc5b7349bbd3368436ca549190d5cc6aaf69"},{"version":"d8f2e65ff4839c5f00a2c5f3a216dc40660370c26f803c47726ff92642b8456b","signature":"37e897f56094eb88f5b6adae620ac8ce2e35366cd34a6956c85ecf9dd5749d71"},{"version":"a38b9959186f609c96bfdb264871f7d8c2fddcedafe91248a90682cba50ed734","signature":"965c7e0e67c257e6b3eebcd52817fdc988b124e0796a45b0c64bfca986394380"},{"version":"1968ea5c7fb016530de02b2297ab37e8eac848fca7e0cb11ee1d2dc9da8b4744","signature":"c9a2fcaffd0aeb3a121bfb26928bf4d19d5bc5cd85a4a06d99ee9317e22f706e"},{"version":"e7d66b206e9ea1c13fe98969e6a6054a1612bddf77a7224f5f7f8d8ee0b16731","signature":"0ca712d795c38d949f141de1786b5d27ede4be988d927637e4e2704a8603bb56"},{"version":"f13331001b2e26ee63614f5f55145f2c5c150293fe0267130711df7ca3381316","signature":"01c4f5f7c568679881675cb60dd5aa7c9601fe64604b855652995654a341a713"},{"version":"f1f170a87a5e9816defd6a9bfd670ce92c194313d2e251f3a41c6db7f7986b46","signature":"fe8705aba0ed4d0c87e305e6f3e282071c5ba1ee7e52d86b5557cf746144c411"},{"version":"8c832fff3c7dee83357bc9189cf16cbb7c19f59c2c9e0b04541721c4a823f42b","signature":"1766bbbe06a86ac09ea7f307981d170b48680c570c67729c432d888c0900be47"},{"version":"9a3e8809e2f11a9bb266c86ec5b8c170583890fbe04c9c8fbb49e153ba9e9f37","signature":"aa4e24a2e52b15c8be7999386cbd01fff1860ab9b948c5493c361ee6b42cc663"},{"version":"3a490f3436b11bbc56864dcea618e9a50e201eabde7f253162db219ef02bb664","signature":"41fa2e8b351d308c845737a382da3281a4668ea07d8701d0625880780cbd87db"},{"version":"4868e3ee3214bdad991629216be76c2b92fb417dfb27e05de723a9562b45e622","signature":"b7eecf0b33b514de9eaa113d09cf82a57876e78d1b4a1e0268f46a7f8ad6c223"},{"version":"99d0b71bba70af81f8152728645cae286659f165a7f7b84a5e94f73e42b43868","signature":"a7610cdf34d602c127cfdae5cae8241bc594513265f39a9d3f55f032a8ae924f"},{"version":"03b372743f2ab098da78e0885c4e86ad0a4d1ed4e8f132edf093335cfea18062","signature":"fa06f32059aa78c29008252e32a5ebdf91334fdfcb366330e17af17a3f752b6a"},{"version":"c925f04f4beefe182e9e119cef0925789d02fa9e7b936b07142982f490ca35d8","signature":"f6d55b3975c0c29e570936590f9ecb1fb2518810f5451db971ea022b38b9f71d"},{"version":"d9db965a6e7c58e719e02c231be404ea1b0d53756d5b03df1b4a8c67ed4f5c45","signature":"157ccd9dddb62b913e04ee63506cf4e268d5be44b973001c25c0f6b7385e9c9c"},{"version":"79bcac3a667770e26b25bb8fe67a071cafb971f725198e3ccecb8f137e5dfd29","signature":"fa06f32059aa78c29008252e32a5ebdf91334fdfcb366330e17af17a3f752b6a"},{"version":"82e1dd43f4a8e6a2ee27578b200d4b0e609ec1c1b3559db2c8faeb7cedd85271","signature":"ebf68c667acbf3e8ec5ef8786ea51c09934e12e1fe3b75ecd866066c83f43e08"},{"version":"0d90dddddaa2b454f1aa01e15b733c6c4f14494855fdea7fe7d033eff9589efc","signature":"afe56af6ef277b925fb82c0af25135fdefcbd5300ce26b907b7e7dd0661ef87e"},{"version":"98da0e73ae4e24eed21bd8db34f973fc0418e159d180bd417a630e9c145b982b","signature":"ffc081eba90415fbbecd264aee712980b88f6582c6f2d8e299228bd9310e400b"},{"version":"8e63b99de89bcbc72f159c20ba7c8f8e98d207a470c083548fecdb18bcc71dc3","signature":"08863131b8b28dc0997cd8c229751ee660655ed03558ac3826789c1c9b7ebf42"},{"version":"ab8aeb188beeda4625f8ec76588441d3cee7dfd8145866b0152140bc54cc1b3c","signature":"5a5aa5f76c4355f704ae8af2dee1af633db17cfef71935932ed77f6a022aa45d"},{"version":"5c77f9c4e19445cfaf9823d538ebaf388830f1daf1ff9809a916fba2ae17880c","signature":"80f23cfeae9c456d94bd07eb09f465ce8e66cd819d4ae1aa7868ce75f73d4bde"},{"version":"d5b6819bcf39c37b07f17580ded8932287ed64c53560d2ce43648a0f59c47d65","signature":"fa06f32059aa78c29008252e32a5ebdf91334fdfcb366330e17af17a3f752b6a"},{"version":"fa5b99354e1bff3168fe14bc601f7d8757d89767430e4164f78cf96464b42afa","signature":"1f6eb42018dbe1405a243efb68187951aca12c341b49055c306f0bc845366cdd"},{"version":"487c7f6aac3e65f1f170c34b3a6f7a26a6028ccbaa0d9eb984ccfe3928cef1d9","signature":"a4118d9286834f4e3db60a4dbd723f20801864b74b6bc93e130072670edb7a2d"},{"version":"7617fb3fd049907e7ca1ef8bb5be73aedc570f5bd337151af41f32d1f6080ce0","signature":"97396746b445b2873c6027ce7c843a527e262be74ee03b609b8c3a9139718655"},{"version":"9a60a4739fabbb3f154212832dd7dde0f2558ba2f35442577477e7c9fe59349a","signature":"ea5d3aa24398521bfd55ef127e641d895980a59e70f3c00100c0f75d3cc00297"},{"version":"4e21c212841ec34b58e95fc3226821516ce3fe6463885c94aa746767ad19742f","signature":"619d36feb7fc398ed6cc19ae59202b3dd7a79d9b6c66c10f99211f498b19d395"},{"version":"470f32ac6599894044b67c757cc010024666fc092e9e35e53c4bbaa796790077","signature":"0cf4a4fedc15a1ad3ace467782e448a408a1604fbd763df9d96150304ebd28bb"},{"version":"7c38cb090fdbf1863b148bb271847121bb6aa4a395b29d3b73c2d495d20b98d4","signature":"40e3e40dd5781618e64ec85ef45157a3335d68e4b0f0f8fddef2b73eb310c656"},{"version":"27104bfe38edaa44baa30f08f1cc534619bbcda35d21ba680150c5b4bdc35da2","signature":"968679a225f4c72bc84680ef45fca0e9d2a32d3154791f4adef3256c3b0a8662"},{"version":"efae298fcc92ebcef1747bcf6b34c4c694def4e848d4000ad751bc71dc2838ca","signature":"ba0c66cdfbd25579c1f83fabc2fdf93ee30b91e9a0d8abcbb25f6b610f3f5ab7"},{"version":"9450fcc081d7cdae8b58b5f30ae7011ebf74472543db913417774a6f6a1b43f6","signature":"5eb3af160f011043896714733aa3924ddaebb59eda40fe6c6002e44f528bdfb7"},{"version":"54d4ed8df683c3e44d733c6f5b162029b1678dda793e0fa6798747cbab2954b5","signature":"5ac4e296a8b6509b8ae4778348781fc201fd26f161f185172c22cbaab9483e64"},{"version":"fede697f10581a93a765fd8680bf8969803eade548803740c58d08fc820ac354","signature":"a4a0a4d4844aecf88a7b48c5752e57069e745ab678d7150a8f4fde9fe2327311"},{"version":"fd912324b809c96b7ab73f8e0bb60928c697ad58cd34adb0815ba9d306c40ed8","signature":"a9cdf333f1bd95118018ed54ce201522ae70c7232667e8a4b2ec900c4e7d1989"},{"version":"786a7c2127fd4a5d1feaaf93a921975e70dfe0a5500aa5756be2967f5b063965","signature":"0e51b9bc44b04ca07fe3da59d9c58c9ee6e6363ec3e1d1cdc1b761c164406054"},{"version":"45325f719e497ce2bac905e384d79827dae5f524ea64f796966960050ded471b","signature":"6b4add0cba8a57cc8e791ab1f563893297850fbfb5569a5f7b9c04ce12424f38"},{"version":"f250bd84923e58e1c9c8adbe569a41a8400106e66b83a418b34a3eb9535d655d","signature":"59877318a8cb7ce325251fc2b6943344621daf8cd78acd2e32309911666cbdc9"},{"version":"5b9ac080acb11a07406bc851728c1ffeb85d3b2949d7df8d963911273d4b3061","signature":"e921250a7b26328eb363a844c80c35425ebf6c6584655686acfa0a15cf028198"},{"version":"197a57b92537c8c40cd9a76edc0e255c8b1ccdc4ec41d0194f14129cf3617494","signature":"e79a0ef83fd55ed8f187cc292272b807dbda4e29bf372880e57af81f07a63abd"},{"version":"4a1b4296c77419296f6f91967e9e7d5028b3e29c3fb113c034eb5cea074fc135","signature":"bc839cd7eb96ee2a66719d9c7199e49557c188594ef359609321d2c0437291a3"},{"version":"b8b4fd75a3795604cf591a9ed05f3c7209b059321aca25ff999c9d2db2be2f5e","signature":"be54e9ce67cec8a1c1627a88b50856c07794d7b32caf61065bfde7a1a1aa0781"},{"version":"25d606a0a9f4a41d22563b5e6f279073d19539bc0a5a27ebeabe3aeef7a4370b","signature":"1924f8858f56538d83cefdaa19dcaa9dffb06e00aa19d7ac387667ca2b978344"},{"version":"b8792d30b84ffbc267fd9c5fc45af25feec9f01fa1f2ab2f9455013a05405350","signature":"94b4b6749bb9735db62afe5ad86178ea75ced6c8312b06489ee44103afa923df"},{"version":"f09831adf3a02a4ab224136cae593d2fdf7d870ed9dc3572e68764071ca80438","signature":"45f3b7a75ad8e864b826a58a4e3a4249344ac2824885ff5d82c72147b0e9847d"},{"version":"4321bedff21b3d7001825795a0d41c9b38f76062c6af53f58a0227f037d10b9d","signature":"4be1e640304a1827f91c05132510b202413d90f9a76ee645ff49cb196d615173"},{"version":"a48c1c60ed71316b27814963588d4b7edce2c137e38b9079dc5c5b25c9fd6431","signature":"3f11a65458fe4d58dd5272478f56df4d6db42c764b2f0511f73e9e8e62ee9e6b"},{"version":"c992a0565a1b1db7fa9c45653f37f7af905d7de1ca5509fabfa72ab8b66a774a","signature":"d739a4c1920a52abf925e7fdaeb511823175a660df9ecf3f06364c9f593bd994"},{"version":"8f04404d3a4da712ed906cfe16416f8af30ef4f976c9c9a16e12284e3c032fdc","signature":"6dda9d6c5e79e985ff0e596a2dc881b4616035ee24ab31a3235d6f30ffe4c6a1"},{"version":"1de71e40a74caa530678383f45f7e188e46f01ccd346fa227e442cea2c8efe75","signature":"18e04ba930509b204b5c1a87e9f66ab4696c3aef6a617a256420bf5a660c7c80"},{"version":"bc871e581bca4f64e36e80acf2e4a07fbc9369fa04e9250a10400b3fedb8cc23","signature":"2b86b87906314a51e501fcd287704784b9c3340c293dba4832b98cb599be054b"},{"version":"e0ee4ae9dbefe63b0906e5070bed5e88adaca301f5e39a20108fd2a6589811ed","signature":"fe81c6ea9151116190381e10a61501a87e7dbffa873c7c04c12567fa38f03681"},{"version":"2658e6e931a6fa07480e3730c3896d85f65cf49f982a38f792e2ad769c3138e0","signature":"bf23f7f739f2595c942e438c052d277f12757c5915d516a2be727e7f26d81b2e"},{"version":"a4ba5bb9feff64a5ec6a96ba0b66a7a40adf2d2de4b3457c9a626b39f737082b","signature":"a67658835a6c3d33fc9e868182beb7061317947080a161cf69a9bd92a51d67d4"},{"version":"ba195a97c08ad2dea73a9f8a50c6aefcdf71dbb2514124fccd723a8d05ceed55","signature":"aecbd18067a34b7ab8527e3c16eb77a75a2aa8087310afbd5dace43fa7b55a9d"},{"version":"5212594438bc980e4116102315101b39ba2dc076d48875f0f30e3f226e685d8f","signature":"a079b54d640d13e2edde7454ee84d3074a7cbcd7437709e391fc6d07472a78af"},{"version":"76556d6222379cae709ed0b5a6fb2bae6464e5ede7a8130b8f744cf0157ec076","signature":"285a46c017ab94f44f23369ac4dd6589eec9bdc31d960b8b8e4195d23d611cfa"},{"version":"2f6c900069c1e804a6e355132ef0b9cfaca8123f2314a05b1f349e375f99fba0","signature":"4d67d67fd089e46ab2c8d685d24a48c5d9b1639b7d62799787c9d11d2b791376"},{"version":"97899a6db8aa46e151f0fd4ad1f567a8cc0a91ca819f8c25c4400b0c217ddfee","signature":"8c91d8f65fa803fa92650ee803b7a95afe76794693f50fc324b70b3b628dfd10"},{"version":"b94d9e2f830221ace78a8babb21b38ca2940277a624eae8dbbfbbc542a647593","signature":"a31dc9096592a0e87e6463b5f0a560be15b47dd45f7e3f48ce7adb8de9fa6d34"},{"version":"172d6e8daa29acde58d328a8979abdf1986db9a716cbf758cd0bdef628839c47","signature":"8185aeb05b72cd0d779c8e562289036148894b38ad979cc2ee9d763430fac737"},{"version":"20fb2677d981b58e76521e9804cf3ec6658815255e49a7a477d34254beba8abd","signature":"1e70d60a18ab04eeaed5e630a1621a97f4cf19bc245fbaf26dec94abe9a898aa"},{"version":"46891ae94d51db56cd357a977d8db423a750f1db2d985638e5bf99eabc021bfa","signature":"792fd1174679baaa0fec54deaa359e078aba52c8654247e014837913b4d2d8f9"},{"version":"4c818a55f48271509a0598b6ed6f3baf478ca591a90fc1bfc81fd2710102db3a","signature":"fa06f32059aa78c29008252e32a5ebdf91334fdfcb366330e17af17a3f752b6a"},{"version":"91ee493d8965136adbb66d3399ad012e4f02ad9b705f52a8248837e65246b8f9","signature":"af730634e91f27493a7d0d4916b27dac8a1e4aae325c7d3e5277d5400ce60344"},{"version":"8a19d4bcac7affb721c9e6ecfa9fa2f24f7acfc84516104fdd3f27d6776f54fb","signature":"fa06f32059aa78c29008252e32a5ebdf91334fdfcb366330e17af17a3f752b6a"},{"version":"e0c66d6ab869b402c93be1bac270a263d61c12a2da2ba491e1d93bc4f8a6b928","signature":"1b7e73021b35c162601359eeab37017bb6c577d36eb22c98b94ca56b26c572a8"},{"version":"14383cbfd126aba80500cf4e494b446a2cfb35898211025c58d2f790dff9f17e","signature":"b80fa67f8d935d4ddac2ef0c63818388e07bcec3633017ef6dcca88c32429ff7"},{"version":"51a09fc1acb467cb8412fda8251323bc33c921d9b0af23e80da6dc35780bd344","signature":"87378056146bd7ec0caeb2b613f8711ea45eb256c52afc94c4ce665025930430"},{"version":"d016b583243dfd3326a92fe806d3c4ff81d9ea9c0eae28b63ee3b0b321fe7d87","signature":"fa06f32059aa78c29008252e32a5ebdf91334fdfcb366330e17af17a3f752b6a"},{"version":"b8b21fe80d39a5805e275d715bcccf6990376cf364ccc528876760caa1dedff2","signature":"e921250a7b26328eb363a844c80c35425ebf6c6584655686acfa0a15cf028198"},{"version":"26b989f8c90ed12b992442d8226086ef84e9546e1d7fed9ef21359cffdfd2dcc","signature":"3e2265557ae16bfc9279d3fa6860f5ba5736894e0c6472300ffbdb940478810b"},{"version":"edd5ee79ff8a7b6aa2c1c7d63f9eeae0b7a10f5e912ee937f88b2bff32fac8bd","signature":"97c7bf56f31926c7399bb557549969996595c544635ba1d6dc89827f0f3f7f4b"},{"version":"ab1576c018099d7492413beee87c7767fb20f8b65f53b650503dbed090792a0d","impliedFormat":1},{"version":"08ccc491b92a22529c95d438b12afc0789c9057e9d053d3c2f5e5e880605820e","impliedFormat":1},{"version":"0cd323c3f68984182e1bca4ebbf835a9888cfdcf0948cb0d89a755efce2414d3","impliedFormat":1},{"version":"08fd0c952a9ce7e4bdbc975713abbdb72eb46f18c2734b0aa79167b5548551bd","impliedFormat":1},{"version":"0247b465494f02a8579294d8907b87f1bbcf8f3ab1358f59969595aa9dd2b858","impliedFormat":1},{"version":"5124eb2b8ba20e186317c302d616951066c058bd7d39632a50e4590d5fc3bf32","impliedFormat":1},{"version":"78aa491a3906f472dcd579c99cf356108aba053428f17958969c431a96957c6a","impliedFormat":1},{"version":"7b0a7d109fc5618458ca6d7cc35879c44d2310009597b076241f6b41579e90cb","impliedFormat":1},{"version":"272ff1cd79455127cee1e04c36591ad089e34246dc93935d954a4c7e026ac559","impliedFormat":1},{"version":"fc696e192ac15ee5805fc50ec836df762d5e59cbfa725d1ee668a2da15660370","impliedFormat":1},{"version":"2617ceb9c8c3cf2227800da96321e195bb55f8184fb1c4c13b402e5eec9c9039","impliedFormat":99},{"version":"b1ca2cd4cbe1aeae7ab8de7e6cb14997c97761138aa827db126dd05c35dbec82","signature":"400a7464e2ab9f8c50bf0bc8288ca445ff381a4328dd2f216f285badfd31c19b"},{"version":"4652b9e0909228e9b6d4ec37097871dfd16ae2e9c1238bf5637ae6d440913276","signature":"af42e75aef3f0a7fbc7e523d6dc0083511aaaae77465ea0d5f6986e76ec78bb6"},{"version":"bd71c8b587fc83cb158231ef471ed9ffac0f722f29e94be7388dc802298d95e7","signature":"9e9f34f266f57afad78180a97c387060b936200c65edd925bc1a34115410f738"},{"version":"05df77e612cd5c0a7e987e52d80a781a4875938a70eb7ddb915bbf1206b527ba","signature":"a9f046129a7975ae2a37ad1b45066dbe1b659fa9eadc950a99ce2272cb221c75"},"ff25d2789578679f3f1b1f5dcbb5c87a0dad6488fa583cd1fded8ae83c58b1b5",{"version":"adc69d9f5559e64354648989d9ef89be3af7b24ace616ad6abe9c95adfe9872c","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"f7698bd0f47ddb16c355d446e775844f5d276a6a0aea2b89bb7195475798404a","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"43396c5a78d659238296312d7149a2ee961f9e2c64f796fba9f2bffba7813e22","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"10afa48ad6e5e3fa7024bda809bb294fb7cfe83bac3c6b7e0db788a4e4a38cab","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"b5fcb0e9152dcdbb128902fc2c3f41a6ae6364afcc6dc0d7d6f7219f0e96e085","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"097bd489965f6873a3b97b11f89dad2b474371bad23665c74bd4a20c3dad8079","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"4243870330ff778cc487cfe9980d3c90b868cd24399e59c4d9582aded0b36299","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"24c7a9a510502af1de311e9a5a7253b60a560ae6306631198c5fe8469df1369e","impliedFormat":1},{"version":"2c8e55457aaf4902941dfdba4061935922e8ee6e120539c9801cd7b400fae050","impliedFormat":1},{"version":"3a9313fe5ace558b8b18e85f931da10b259e738775f411c061e5f15787b138eb","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"9e0cf651e8e2c5b9bebbabdff2f7c6f8cedd91b1d9afcc0a854cdff053a88f1b","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"e0c868a08451c879984ccf4d4e3c1240b3be15af8988d230214977a3a3dad4ce","impliedFormat":1},{"version":"6fc1a4f64372593767a9b7b774e9b3b92bf04e8785c3f9ea98973aa9f4bbe490","impliedFormat":1},{"version":"ff09b6fbdcf74d8af4e131b8866925c5e18d225540b9b19ce9485ca93e574d84","impliedFormat":1},{"version":"d5895252efa27a50f134a9b580aa61f7def5ab73d0a8071f9b5bf9a317c01c2d","impliedFormat":1},{"version":"1f366bde16e0513fa7b64f87f86689c4d36efd85afce7eb24753e9c99b91c319","impliedFormat":1},{"version":"785b9d575b49124ce01b46f5b9402157c7611e6532effa562ac6aebec0074dfc","impliedFormat":1},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"d4a22007b481fe2a2e6bfd3a42c00cd62d41edb36d30fc4697df2692e9891fc8","impliedFormat":1}],"root":[52,434,435,[1203,1209],1530,1531,1536,[1543,1547],1650,1722,1736,1738,1739,1756,1757,[1759,1854],[1875,1901],[1938,2013],[2025,2036]],"options":{"allowImportingTsExtensions":true,"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noUnusedLocals":true,"noUnusedParameters":true,"skipLibCheck":true,"strict":true,"target":7,"useDefineForClassFields":true},"referencedMap":[[2031,1],[2033,2],[2032,3],[2034,4],[2035,5],[2030,6],[2036,7],[2029,8],[52,9],[434,10],[2039,11],[2037,12],[823,13],[825,14],[826,15],[827,16],[822,12],[824,12],[1623,17],[1625,18],[1624,19],[1626,20],[1627,17],[1628,21],[1641,22],[1642,23],[1621,24],[1622,25],[1619,24],[1620,26],[1643,17],[1644,27],[1633,22],[1634,28],[1647,22],[1648,29],[1649,30],[1630,31],[1629,17],[1636,32],[1635,22],[1638,33],[1637,22],[1646,34],[1645,22],[1640,35],[1639,17],[1632,36],[1631,37],[1618,22],[1753,38],[1752,38],[1755,39],[1754,38],[876,40],[871,12],[872,18],[875,41],[873,41],[874,41],[877,42],[838,43],[836,41],[837,44],[839,45],[878,46],[879,47],[880,41],[881,48],[884,49],[885,50],[886,41],[887,51],[895,52],[888,41],[889,41],[890,41],[891,41],[892,41],[893,41],[894,53],[896,54],[897,41],[898,55],[924,56],[925,57],[927,58],[926,41],[928,59],[929,53],[930,60],[931,53],[932,61],[933,41],[934,62],[935,41],[936,63],[937,41],[938,64],[941,65],[939,41],[940,66],[942,67],[944,68],[943,53],[945,69],[946,53],[947,70],[953,71],[955,18],[950,41],[956,72],[951,73],[952,41],[954,18],[957,74],[959,75],[958,18],[960,76],[841,53],[840,77],[842,78],[961,41],[962,79],[797,41],[798,80],[972,81],[973,82],[966,83],[964,84],[963,12],[965,41],[968,85],[970,86],[969,85],[967,83],[971,87],[974,53],[975,88],[914,89],[917,90],[899,41],[900,91],[901,92],[902,41],[903,41],[904,41],[905,41],[906,41],[907,41],[908,18],[909,41],[910,41],[911,93],[912,41],[919,94],[918,94],[923,95],[915,94],[922,94],[916,96],[921,12],[913,12],[920,97],[976,41],[977,98],[978,18],[979,99],[980,100],[981,101],[982,41],[983,102],[989,103],[993,104],[984,105],[985,105],[986,105],[987,105],[988,105],[990,106],[991,18],[992,105],[994,107],[995,41],[996,108],[997,12],[998,109],[999,73],[1000,110],[866,41],[867,53],[868,111],[811,112],[810,113],[812,114],[808,12],[807,12],[809,113],[869,41],[870,115],[1001,18],[1002,116],[1003,117],[1005,118],[1004,41],[1006,119],[843,41],[844,120],[1007,49],[1008,121],[1011,122],[1009,123],[1010,124],[1012,125],[1013,53],[1014,126],[1162,127],[1017,128],[1016,129],[1015,12],[949,130],[948,72],[863,131],[860,132],[854,133],[855,41],[856,41],[857,41],[858,41],[862,134],[859,135],[861,136],[865,137],[864,138],[1021,139],[1020,140],[1023,141],[1022,41],[1026,142],[1025,143],[1024,41],[835,144],[834,145],[833,12],[1028,146],[1027,147],[1030,148],[1029,41],[1037,149],[1036,150],[1035,41],[1033,41],[1031,53],[1032,41],[1034,77],[1049,151],[1043,152],[1047,153],[1038,105],[1039,105],[1040,105],[1041,105],[1042,105],[1044,154],[1045,18],[1046,105],[1048,12],[853,155],[845,156],[846,72],[847,157],[848,158],[849,72],[850,159],[851,72],[852,18],[1051,160],[1050,56],[1053,161],[1052,162],[1055,163],[1054,53],[1057,164],[1056,41],[1059,165],[1058,166],[1066,167],[1065,168],[814,169],[813,53],[1074,170],[1073,171],[1067,18],[1068,41],[1069,172],[1070,173],[1071,174],[1072,41],[806,175],[805,53],[1076,176],[1075,73],[1079,177],[1078,178],[1077,41],[1082,179],[1081,180],[1080,41],[1084,181],[1083,73],[832,182],[831,183],[828,184],[830,185],[829,41],[817,186],[816,187],[815,77],[1089,188],[1088,189],[1085,41],[1086,41],[1087,41],[1096,190],[1094,191],[1095,18],[1090,41],[1091,73],[1092,18],[1093,192],[1098,193],[1097,41],[1100,194],[1099,41],[800,195],[799,41],[1102,196],[1101,41],[1104,197],[1103,56],[1106,198],[1105,41],[1108,199],[1107,41],[1110,200],[1109,41],[1114,201],[1113,202],[1111,166],[1112,202],[1116,203],[1115,41],[1118,204],[1117,41],[1120,205],[1119,41],[1124,206],[1123,207],[1121,12],[1122,208],[1127,209],[1126,210],[1125,73],[1132,211],[1128,212],[1131,213],[1129,214],[1130,41],[1134,215],[1133,216],[1139,217],[1138,218],[1135,41],[1136,41],[1137,219],[1141,220],[1140,56],[883,221],[882,53],[1019,222],[1018,73],[1143,223],[1142,73],[1145,224],[1144,41],[1148,225],[1147,226],[1146,41],[1150,227],[1149,41],[1155,228],[1154,229],[1151,230],[1152,231],[1153,166],[820,232],[821,233],[819,234],[818,12],[1156,235],[1159,236],[1158,237],[1157,238],[1161,239],[1160,41],[802,240],[801,53],[804,241],[803,41],[655,242],[618,243],[638,244],[656,245],[620,246],[636,247],[635,248],[634,249],[621,243],[622,243],[623,12],[624,243],[625,12],[629,250],[626,243],[627,12],[628,243],[630,251],[619,243],[637,12],[794,252],[795,253],[653,254],[651,77],[650,255],[654,256],[652,257],[796,258],[633,259],[632,260],[631,12],[668,261],[663,12],[659,261],[667,261],[666,261],[660,261],[617,261],[658,261],[669,262],[664,12],[665,12],[657,263],[662,12],[661,12],[674,264],[673,261],[672,265],[671,261],[760,266],[761,267],[766,268],[765,269],[767,270],[778,261],[762,261],[782,271],[781,12],[768,272],[770,273],[771,261],[773,274],[769,18],[772,261],[774,275],[776,276],[775,277],[764,278],[763,261],[779,261],[670,279],[759,280],[758,281],[675,261],[676,282],[780,283],[777,12],[639,284],[649,285],[640,286],[646,287],[641,288],[647,288],[642,289],[644,290],[645,291],[643,292],[648,293],[441,12],[454,12],[457,12],[449,18],[448,18],[451,12],[788,12],[440,12],[445,12],[791,12],[452,12],[785,269],[783,243],[786,12],[453,12],[789,12],[792,12],[450,12],[456,12],[784,294],[793,295],[447,12],[446,12],[439,12],[790,12],[455,12],[444,296],[442,12],[443,12],[787,77],[1163,297],[1702,298],[1704,299],[1703,12],[1684,38],[1685,300],[1711,301],[1712,302],[1709,301],[1710,303],[1719,304],[1720,305],[1662,306],[1664,307],[1663,308],[1713,309],[1714,310],[1669,38],[1670,311],[1686,312],[1687,313],[1694,314],[1695,315],[1665,316],[1666,317],[1693,318],[1692,38],[1673,308],[1675,308],[1674,308],[1677,319],[1676,320],[1691,321],[1690,322],[1699,323],[1698,324],[1708,325],[1707,326],[1718,327],[1717,328],[1683,329],[1682,330],[1679,331],[1678,38],[1701,332],[1700,333],[1668,334],[1667,38],[1672,335],[1671,336],[1689,337],[1688,338],[1697,339],[1696,340],[1706,341],[1705,342],[1716,343],[1715,344],[1681,345],[1680,330],[1721,346],[1652,347],[1653,12],[1651,12],[1655,348],[1654,349],[1658,12],[1659,12],[1656,308],[1657,77],[1661,350],[1660,308],[1858,351],[1859,352],[1861,12],[1860,353],[1857,353],[1874,354],[1873,353],[1871,353],[1872,353],[1870,353],[1855,12],[1869,353],[1856,353],[1865,12],[1868,355],[1864,12],[1866,12],[1862,12],[1867,12],[1863,12],[757,356],[684,12],[686,77],[687,12],[689,357],[690,12],[685,12],[691,77],[692,12],[696,77],[734,12],[693,12],[694,12],[733,77],[742,12],[740,12],[754,12],[695,12],[697,12],[735,12],[698,12],[726,12],[723,12],[741,12],[724,12],[725,358],[728,77],[699,12],[700,12],[743,12],[732,12],[722,12],[701,12],[752,12],[702,77],[703,12],[704,12],[705,359],[727,12],[747,12],[688,12],[707,77],[745,12],[708,77],[709,77],[744,77],[736,12],[753,12],[730,12],[712,12],[710,12],[739,12],[711,12],[755,77],[713,357],[715,77],[714,12],[756,12],[706,359],[731,12],[748,12],[716,12],[746,12],[738,12],[749,12],[750,77],[751,12],[737,12],[717,12],[718,12],[729,12],[719,12],[720,12],[721,12],[677,12],[683,360],[678,12],[679,12],[680,12],[681,12],[682,12],[1735,361],[1734,362],[1733,363],[1725,364],[1726,38],[1727,38],[1728,38],[1729,38],[1730,38],[1731,365],[1732,38],[1724,366],[1723,12],[1749,367],[1741,367],[1750,18],[1744,367],[1751,368],[1745,367],[1742,367],[1740,38],[1748,367],[1747,367],[1743,367],[1746,367],[2014,18],[2015,18],[2016,18],[2017,18],[2018,369],[2019,370],[2024,371],[2022,372],[2021,370],[2020,18],[2023,18],[1200,373],[1201,373],[1202,374],[1199,375],[1198,12],[384,12],[1211,376],[1212,376],[1213,376],[1214,376],[1215,376],[1216,376],[1217,376],[1218,376],[1219,376],[1220,376],[1221,376],[1222,376],[1223,376],[1224,376],[1225,376],[1226,376],[1227,376],[1228,376],[1229,376],[1230,376],[1231,376],[1232,376],[1233,376],[1234,376],[1235,376],[1236,376],[1237,376],[1239,376],[1238,376],[1240,376],[1241,376],[1242,376],[1243,376],[1244,376],[1245,376],[1246,376],[1247,376],[1248,376],[1249,376],[1250,376],[1251,376],[1252,376],[1253,376],[1254,376],[1255,376],[1256,376],[1257,376],[1258,376],[1259,376],[1260,376],[1261,376],[1262,376],[1263,376],[1264,376],[1265,376],[1268,376],[1267,376],[1266,376],[1269,376],[1270,376],[1271,376],[1272,376],[1274,376],[1273,376],[1276,376],[1275,376],[1277,376],[1278,376],[1279,376],[1280,376],[1282,376],[1281,376],[1283,376],[1284,376],[1285,376],[1286,376],[1287,376],[1288,376],[1289,376],[1290,376],[1291,376],[1292,376],[1293,376],[1294,376],[1297,376],[1295,376],[1296,376],[1298,376],[1299,376],[1300,376],[1301,376],[1302,376],[1303,376],[1304,376],[1305,376],[1306,376],[1307,376],[1308,376],[1309,376],[1311,376],[1310,376],[1312,376],[1313,376],[1314,376],[1315,376],[1316,376],[1317,376],[1319,376],[1318,376],[1320,376],[1321,376],[1322,376],[1323,376],[1324,376],[1325,376],[1326,376],[1327,376],[1328,376],[1329,376],[1330,376],[1332,376],[1331,376],[1333,376],[1335,376],[1334,376],[1336,376],[1337,376],[1338,376],[1339,376],[1341,376],[1340,376],[1342,376],[1343,376],[1344,376],[1345,376],[1346,376],[1347,376],[1348,376],[1349,376],[1350,376],[1351,376],[1352,376],[1353,376],[1354,376],[1355,376],[1356,376],[1357,376],[1358,376],[1359,376],[1360,376],[1361,376],[1362,376],[1363,376],[1364,376],[1365,376],[1366,376],[1367,376],[1368,376],[1369,376],[1371,376],[1370,376],[1372,376],[1373,376],[1374,376],[1375,376],[1376,376],[1377,376],[1529,377],[1378,376],[1379,376],[1380,376],[1381,376],[1382,376],[1383,376],[1384,376],[1385,376],[1386,376],[1387,376],[1388,376],[1389,376],[1390,376],[1391,376],[1392,376],[1393,376],[1394,376],[1395,376],[1396,376],[1399,376],[1397,376],[1398,376],[1400,376],[1401,376],[1402,376],[1403,376],[1404,376],[1405,376],[1406,376],[1407,376],[1408,376],[1409,376],[1411,376],[1410,376],[1413,376],[1414,376],[1412,376],[1415,376],[1416,376],[1417,376],[1418,376],[1419,376],[1420,376],[1421,376],[1422,376],[1423,376],[1424,376],[1425,376],[1426,376],[1427,376],[1428,376],[1429,376],[1430,376],[1431,376],[1432,376],[1433,376],[1434,376],[1435,376],[1437,376],[1436,376],[1439,376],[1438,376],[1440,376],[1441,376],[1442,376],[1443,376],[1444,376],[1445,376],[1446,376],[1447,376],[1449,376],[1448,376],[1450,376],[1451,376],[1452,376],[1453,376],[1455,376],[1454,376],[1456,376],[1457,376],[1458,376],[1459,376],[1460,376],[1461,376],[1462,376],[1463,376],[1464,376],[1465,376],[1466,376],[1467,376],[1468,376],[1469,376],[1470,376],[1471,376],[1472,376],[1473,376],[1474,376],[1475,376],[1476,376],[1478,376],[1477,376],[1479,376],[1480,376],[1481,376],[1482,376],[1483,376],[1484,376],[1485,376],[1486,376],[1487,376],[1488,376],[1489,376],[1491,376],[1492,376],[1493,376],[1494,376],[1495,376],[1496,376],[1497,376],[1490,376],[1498,376],[1499,376],[1500,376],[1501,376],[1502,376],[1503,376],[1504,376],[1505,376],[1506,376],[1507,376],[1508,376],[1509,376],[1510,376],[1511,376],[1512,376],[1513,376],[1514,376],[1210,77],[1515,376],[1516,376],[1517,376],[1518,376],[1519,376],[1520,376],[1521,376],[1522,376],[1523,376],[1524,376],[1525,376],[1526,376],[1527,376],[1528,376],[1189,378],[1193,379],[1175,380],[1176,381],[1174,382],[1191,12],[1192,383],[1168,384],[1167,12],[1737,77],[1937,385],[1916,386],[1926,387],[1923,387],[1924,388],[1908,388],[1922,388],[1903,387],[1909,389],[1912,390],[1917,391],[1905,389],[1906,388],[1919,392],[1904,389],[1910,389],[1913,389],[1918,389],[1920,388],[1907,388],[1921,388],[1915,393],[1911,394],[1936,395],[1914,396],[1925,397],[1902,388],[1927,388],[1928,388],[1929,388],[1930,388],[1931,388],[1932,388],[1933,388],[1934,388],[1935,388],[2042,398],[2038,11],[2040,399],[2041,11],[2043,12],[2044,12],[2045,12],[2046,400],[1568,12],[1551,401],[1569,402],[1550,12],[2047,12],[2048,12],[1166,403],[2049,12],[2050,403],[110,404],[111,404],[112,405],[70,406],[113,407],[114,408],[115,409],[65,12],[68,410],[66,12],[67,12],[116,411],[117,412],[118,413],[119,414],[120,415],[121,416],[122,416],[124,417],[123,418],[125,419],[126,420],[127,421],[109,422],[69,12],[128,423],[129,424],[130,425],[163,426],[131,427],[132,428],[133,429],[134,430],[135,431],[136,432],[137,433],[138,434],[139,435],[140,436],[141,436],[142,437],[143,12],[144,12],[145,438],[147,439],[146,440],[148,441],[149,442],[150,443],[151,444],[152,445],[153,446],[154,447],[155,448],[156,449],[157,450],[158,451],[159,452],[160,453],[161,454],[162,455],[55,12],[167,456],[168,457],[166,77],[164,458],[165,459],[53,12],[56,460],[280,77],[1165,12],[71,12],[1758,12],[54,12],[1188,461],[1187,462],[63,463],[387,464],[388,465],[390,466],[188,467],[336,468],[363,469],[263,12],[181,12],[186,12],[327,470],[255,471],[187,12],[365,472],[366,473],[308,474],[324,475],[228,476],[331,477],[332,478],[330,479],[329,12],[328,480],[364,481],[189,482],[262,12],[264,483],[184,12],[199,484],[190,485],[203,484],[232,484],[174,484],[335,486],[345,12],[180,12],[286,487],[287,488],[281,252],[411,12],[289,12],[290,252],[282,489],[415,490],[414,491],[410,12],[368,12],[323,492],[322,12],[409,493],[283,77],[206,494],[204,495],[412,12],[413,12],[205,496],[404,497],[407,498],[215,499],[214,500],[213,501],[418,77],[212,502],[250,12],[421,12],[424,12],[423,77],[425,503],[170,12],[333,504],[334,505],[357,12],[179,506],[169,12],[172,507],[302,77],[301,508],[300,509],[291,12],[292,12],[299,12],[294,12],[297,510],[293,12],[295,511],[298,512],[296,511],[185,12],[177,12],[178,484],[386,513],[391,514],[395,515],[339,516],[338,12],[247,12],[426,517],[348,518],[284,519],[285,520],[277,521],[269,12],[275,12],[276,522],[306,523],[270,524],[307,525],[304,526],[303,12],[305,12],[259,527],[340,528],[341,529],[271,530],[272,531],[267,532],[319,533],[347,534],[350,535],[248,536],[175,537],[346,538],[171,469],[369,539],[380,540],[367,12],[379,541],[64,12],[355,542],[235,12],[265,543],[351,12],[194,12],[378,544],[183,12],[238,545],[337,546],[377,12],[371,547],[176,12],[372,548],[374,549],[375,550],[358,12],[376,537],[202,551],[356,552],[381,553],[311,12],[314,12],[312,12],[316,12],[313,12],[315,12],[317,554],[310,12],[241,555],[240,12],[246,556],[242,557],[245,558],[244,558],[243,557],[198,559],[230,560],[344,561],[427,12],[399,562],[401,563],[274,12],[400,564],[342,528],[288,528],[182,12],[231,565],[195,566],[196,567],[197,568],[193,569],[318,569],[209,569],[233,570],[210,570],[192,571],[191,12],[239,572],[237,573],[236,574],[234,575],[343,576],[279,577],[309,578],[278,579],[326,580],[325,581],[321,582],[227,583],[229,584],[226,585],[200,586],[258,12],[51,12],[257,587],[320,12],[249,588],[268,589],[266,590],[251,591],[253,592],[422,12],[252,593],[254,593],[49,12],[48,12],[50,12],[420,12],[256,594],[224,77],[62,12],[207,595],[216,12],[261,596],[201,12],[393,77],[403,597],[223,77],[397,252],[222,598],[383,599],[221,597],[173,12],[405,600],[219,77],[220,77],[211,12],[260,12],[218,601],[217,602],[208,603],[273,435],[349,435],[373,12],[353,604],[352,12],[389,12],[225,77],[385,605],[57,77],[60,606],[61,607],[58,77],[59,12],[370,608],[362,609],[361,12],[360,610],[359,12],[382,611],[392,612],[394,613],[396,614],[398,615],[402,616],[433,617],[406,618],[432,619],[408,620],[416,621],[417,622],[419,623],[428,624],[431,506],[430,12],[429,625],[1173,626],[1172,627],[1170,12],[1171,12],[1186,628],[1183,629],[1184,12],[1185,12],[1181,12],[1182,630],[1064,631],[1061,632],[1062,633],[1063,633],[1060,77],[437,634],[438,635],[436,77],[1591,636],[1593,637],[1583,638],[1588,639],[1589,640],[1595,641],[1590,642],[1587,643],[1586,644],[1585,645],[1596,646],[1553,639],[1554,639],[1594,639],[1599,647],[1609,648],[1603,648],[1611,648],[1615,648],[1601,649],[1602,648],[1604,648],[1607,648],[1610,648],[1606,650],[1608,648],[1612,77],[1605,639],[1600,651],[1562,77],[1566,77],[1556,639],[1559,77],[1564,639],[1565,652],[1558,653],[1561,77],[1563,77],[1560,654],[1549,77],[1548,77],[1617,655],[1614,656],[1580,657],[1579,639],[1577,77],[1578,639],[1581,658],[1582,659],[1575,77],[1571,660],[1574,639],[1573,639],[1572,639],[1567,639],[1576,660],[1613,639],[1592,661],[1598,662],[1597,663],[1616,12],[1584,12],[1557,12],[1555,664],[354,665],[1195,666],[1197,667],[1169,380],[1190,668],[1196,669],[1164,12],[1194,670],[1535,671],[1532,12],[1533,672],[1534,12],[1180,673],[1178,674],[1179,675],[1177,12],[616,676],[488,677],[585,12],[551,678],[522,679],[506,680],[586,12],[533,12],[543,12],[561,681],[460,12],[591,682],[593,683],[592,684],[545,685],[544,686],[547,687],[546,688],[504,12],[594,680],[598,689],[596,690],[463,691],[464,691],[465,12],[507,692],[558,693],[557,12],[570,694],[470,677],[564,12],[553,12],[611,695],[613,12],[491,696],[490,697],[573,698],[575,699],[468,700],[577,701],[583,702],[466,703],[479,704],[589,705],[528,706],[606,677],[582,707],[581,708],[480,709],[481,12],[499,710],[495,711],[496,712],[498,713],[494,714],[493,715],[497,716],[535,12],[482,12],[469,12],[483,717],[484,718],[486,719],[478,12],[526,12],[584,720],[527,705],[556,12],[549,12],[563,721],[562,722],[595,690],[599,723],[597,724],[462,12],[612,12],[550,696],[492,725],[568,726],[567,12],[523,727],[509,728],[510,12],[503,729],[554,730],[555,730],[472,731],[505,12],[485,732],[461,12],[525,733],[501,12],[538,12],[489,677],[572,734],[614,735],[515,680],[529,736],[600,684],[602,737],[601,737],[519,738],[521,739],[502,12],[458,12],[532,12],[531,680],[574,677],[571,12],[609,12],[512,680],[471,740],[511,12],[513,741],[516,680],[467,12],[566,12],[607,742],[587,692],[541,12],[536,743],[560,744],[537,743],[540,745],[539,746],[559,706],[524,747],[588,748],[508,749],[476,12],[514,750],[603,690],[605,723],[604,724],[608,12],[578,751],[569,12],[610,752],[552,753],[548,12],[565,754],[518,755],[517,756],[475,12],[534,12],[487,680],[615,12],[579,12],[459,12],[530,680],[520,12],[580,757],[474,12],[473,12],[542,12],[590,680],[500,680],[576,677],[477,758],[46,12],[47,12],[8,12],[9,12],[11,12],[10,12],[2,12],[12,12],[13,12],[14,12],[15,12],[16,12],[17,12],[18,12],[19,12],[3,12],[20,12],[21,12],[4,12],[22,12],[26,12],[23,12],[24,12],[25,12],[27,12],[28,12],[29,12],[5,12],[30,12],[31,12],[32,12],[33,12],[6,12],[37,12],[34,12],[35,12],[36,12],[38,12],[7,12],[39,12],[44,12],[45,12],[40,12],[41,12],[42,12],[43,12],[1,12],[87,759],[97,760],[86,759],[107,761],[78,762],[77,763],[106,764],[100,765],[105,766],[80,767],[94,768],[79,769],[103,770],[75,771],[74,764],[104,772],[76,773],[81,774],[82,12],[85,774],[72,12],[108,775],[98,776],[89,777],[90,778],[92,779],[88,780],[91,781],[101,764],[83,782],[84,783],[93,784],[73,785],[96,776],[95,774],[99,12],[102,786],[1552,787],[1570,788],[1542,789],[1538,790],[1537,12],[1539,791],[1540,12],[1541,792],[1955,793],[2000,794],[1961,795],[1962,796],[2004,797],[2006,798],[1546,799],[1547,38],[1952,800],[2010,801],[1953,10],[1954,38],[2011,38],[1530,802],[1950,803],[1949,804],[1784,805],[1785,806],[1786,807],[1788,808],[1790,809],[1792,810],[1793,808],[1787,12],[1789,12],[1791,12],[1794,12],[1797,12],[1799,12],[1801,12],[1795,811],[1796,808],[1798,812],[1800,813],[1802,814],[1803,815],[1805,816],[1806,816],[1807,816],[1808,816],[1809,816],[2009,817],[1810,807],[1811,806],[1812,807],[1813,807],[1814,807],[1815,807],[1816,807],[1817,807],[1818,807],[1819,818],[1820,818],[1821,805],[1822,807],[1823,807],[1824,807],[1825,807],[1826,807],[1827,807],[1828,807],[1829,807],[1830,807],[1831,816],[1832,807],[1833,816],[1834,816],[1835,807],[1836,807],[1837,807],[1838,807],[1839,807],[1840,807],[1841,807],[1842,807],[1843,816],[1844,816],[1845,819],[1846,807],[1847,807],[1848,807],[1849,807],[1850,820],[1851,807],[1852,807],[1853,818],[1875,821],[1854,822],[1876,823],[1877,807],[1878,823],[1879,818],[1880,823],[1881,824],[1882,807],[1883,807],[1884,818],[1885,807],[1886,807],[1887,807],[1888,807],[1889,807],[1890,807],[1891,807],[2005,825],[2002,826],[2001,38],[1650,827],[1722,828],[1736,829],[1897,38],[1900,830],[1938,831],[1940,832],[1894,833],[1898,369],[1901,369],[1939,38],[1895,834],[1896,835],[1544,836],[1951,837],[1761,838],[1776,839],[1779,840],[1769,38],[1766,841],[1770,842],[1774,841],[1768,843],[1772,843],[1773,841],[1771,841],[1764,281],[1775,844],[1767,281],[1765,12],[1778,845],[1777,12],[1781,846],[1738,38],[1739,847],[1756,848],[1757,849],[1762,850],[1763,851],[1759,852],[1760,853],[1782,854],[1780,855],[1545,836],[1893,38],[1941,856],[2012,857],[1942,858],[1899,12],[2007,859],[2008,860],[1960,861],[2013,862],[1957,863],[1997,864],[1995,865],[1994,866],[1996,867],[1993,868],[2025,869],[1959,870],[1998,12],[1999,871],[1958,12],[1956,12],[1979,38],[1987,38],[1988,872],[1989,873],[1969,873],[1970,874],[1971,874],[1972,874],[1973,874],[1963,873],[1964,873],[1965,873],[1966,873],[1967,873],[1968,873],[1992,875],[1980,873],[1981,874],[1982,874],[1983,874],[1990,873],[1991,873],[1974,872],[1975,873],[1976,873],[1977,872],[1978,872],[1984,873],[1985,873],[1986,872],[435,12],[1536,876],[1943,12],[1944,12],[1945,12],[1946,12],[1947,12],[1948,12],[1203,38],[1207,38],[1206,877],[1208,878],[2026,38],[2027,38],[1204,38],[2028,12],[1892,879],[1531,880],[1804,881],[2003,12],[1205,878],[1209,12],[1783,881],[1543,12]],"affectedFilesPendingEmit":[2031,2033,2032,2034,2035,2030,2036,1955,2000,1961,1962,2004,2006,1546,1547,1952,2010,1953,1954,2011,1530,1950,1949,1784,1785,1786,1788,1790,1792,1793,1787,1789,1791,1794,1797,1799,1801,1795,1796,1798,1800,1802,1803,1805,1806,1807,1808,1809,2009,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843,1844,1845,1846,1847,1848,1849,1850,1851,1852,1853,1875,1854,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,2005,2002,2001,1650,1722,1736,1897,1900,1938,1940,1894,1898,1901,1939,1895,1896,1544,1951,1761,1776,1779,1769,1766,1770,1774,1768,1772,1773,1771,1764,1775,1767,1765,1778,1777,1781,1738,1739,1756,1757,1762,1763,1759,1760,1782,1780,1545,1893,1941,2012,1942,1899,2007,2008,1960,2013,1957,1997,1995,1994,1996,1993,2025,1959,1998,1999,1958,1956,1979,1987,1988,1989,1969,1970,1971,1972,1973,1963,1964,1965,1966,1967,1968,1992,1980,1981,1982,1983,1990,1991,1974,1975,1976,1977,1978,1984,1985,1986,435,1536,1943,1944,1945,1946,1947,1948,1203,1207,1206,1208,2026,2027,1204,2028,1892,1531,1804,2003,1205,1209,1783],"version":"5.7.3"}